读卡器号用于读卡器地址和门号的对照;物理源地址表示持卡人所在区的区号;目的地址表示持卡人要前往区的区号;逻辑源地址是在要防反传时用的 , 表示持卡人可直接从这些区到该读卡器读卡 。 每1bit 表示一个区 , 为1 时表示有效 , 为0 表示无效 , 最多可表示64 个区 。
(5) 事件表:
事件表用于存放每一条事件信息 。 包括以下几部分:
卡号(3 个字节) 门地址(1 个字节) 事件种类(1 个字节) 读卡时刻
其中 , 门地址一个字节可表示250 个门(只用32个门) ;
事件种类可表示32 种事件 , 现已定义的事件如下:
读卡引发事件:1. 介质出门;2. 介质开门;3. 维护;4. 超时限;5. 巡更;6. 挂失
非读卡引发事件:7. 非法开门;8. 遥控开门;9. 机箱打开;10. 机箱关闭;11. 读卡器防拆; 12. 读卡器恢复;13. 设防;14. 撤防;15. 电池失效;16. 电池投入;17.市电掉电;18. 进入常开;19. 退出常开;20. 超时未关;21. 关门 。
每条事件消息将占用6 个字节(不超过4 min) , 或12 个字节(超过4 min) ;
读卡时刻的表示方法如下:
读卡时刻字节存储的是本次读卡时刻和上一次读卡时刻的差值 , 若差值大于254 (4. 2 min) , 则将此字节置为255 (FF) , 同时在下一个连续的6 个字节存放本次读卡的绝对时刻(年月日时分秒) 。
3 软件的实现
门禁系统的软件主要由管理中心计算机上的软件和门禁控制器上的软件组成 。 为叙述方便 , 以下门禁控制器简称为门控器 。
在门禁系统中 , 门控器上的软件所执行的主要功能有建表 , 添加、更改和删除表内容 , 对读卡事件做判断处理和存储各种事件 。 与门禁系统有关的任务有门禁系统任务(也就是读卡事件处理任务) 、网络数据接收任务、数据存储任务、系统间联动任务 , 还有数据采集的中断服务程序 。 另外 , 还有个根任务 , 它执行硬件设备的初始化 , 定义几个表的结构数组 , 创建各任务、信号量、消息队列、实时数据缓冲池 。 根任务完成这些事情后把自己删除掉 , 使当前优先级最高的就绪任务进入运行态 。
3. 1 读卡事件处理任务
读卡事件处理任务的过程:首先 , 采集数据的中断服务程序发来的事件标志激活该任务 , 从缓冲池中读取卡号和读卡器号 , 或者还有密码;其次 , 根据卡号、读卡器号和当前的读卡时间 , 到持卡人信息表、读卡器表、群组表里去检索信息;然后 , 根据群组表里的门屏蔽字去查门的时段表、门的时段属性;最后 , 根据所得信息执行命令并保存事件内容、修改使用次数和人员位置数据等 。 该任务的优先级为200 , 用获取信号量的办法与网络接收数据任务互斥开 。 因为该任务涉及到几个表 , 数据量比较大 , 所以堆栈空间较大 , 为500 K.通过发巡更事件与巡更任务通信[3 ] 。 超级卡程序比普通卡的程序少一项时段判断的过程 , 其它的与普通卡程序一样;维护卡程序实现解除门控器防拆报警使之恢复正常工作状态;巡更卡程序发送巡更标志给巡更任务 。 关于是否违反防反传规定 , 要视具体工程和客户的要求而定 。
3. 2 巡更任务
操作员在监控管理中心设置巡更路线和巡更时间表 , 而后下传到门控器上 。 巡更任务通过接收读卡事件处理任务发来的巡更事件标志 , 根据当前时间和巡更时间表 , 判断巡更是否到位 , 并向监控管理中心计算机发送信息 , 决定是否报警 。 巡更站就是读卡机 , 在规定的时刻和误差范围内读卡 , 表示巡更到位 , 否则表示巡更不到位 。 巡更任务的优先级较低 , 取100 , 堆栈取6 000 , 该任务可抢占 , 时间片为50 ns.
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
