一种智能门禁控制器的软件设计
3 软件的实现
门禁系统的软件主要由管理中心计算机上的软件和门禁控制器上的软件组成. 为叙述方便,以下门禁控制器简称为门控器.
在门禁系统中,门控器上的软件所执行的主要功能有建表,添加、更改和删除表内容,对读卡事件做判断处理和存储各种事件. 与门禁系统有关的任务有门禁系统任务(也就是读卡事件处理任务) 、网络数据接收任务、数据存储任务、系统间联动任务,还有数据采集的中断服务程序. 另外,还有个根任务,它执行硬件设备的初始化,定义几个表的结构数组,创建各任务、信号量、消息队列、实时数据缓冲池. 根任务完成这些事情后把自己删除掉,使当前优先级最高的就绪任务进入运行态[3 ] .
3. 1 读卡事件处理任务
读卡事件处理任务的过程:首先,采集数据的中断服务程序发来的事件标志激活该任务,从缓冲池中读取卡号和读卡器号,或者还有密码;其次,根据卡号、读卡器号和当前的读卡时间,到持卡人信息表、读卡器表、群组表里去检索信息;然后,根据群组表里的门屏蔽字去查门的时段表、门的时段属性;最后,根据所得信息执行命令并保存事件内容、修改使用次数和人员位置数据等. 该任务的优先级为200 ,用获取信号量的办法与网络接收数据任务互斥开. 因为该任务涉及到几个表,数据量比较大,所以堆栈空间较大,为500 K.通过发巡更事件与巡更任务通信[3 ] . 超级卡程序比普通卡的程序少一项时段判断的过程,其它的与普通卡程序一样;维护卡程序实现解除门控器防拆报警使之恢复正常工作状态;巡更卡程序发送巡更标志给巡更任务. 关于是否违反防反传规定,要视具体工程和客户的要求而定.
3. 2 巡更任务
操作员在监控管理中心设置巡更路线和巡更时间表,而后下传到门控器上. 巡更任务通过接收读卡事件处理任务发来的巡更事件标志,根据当前时间和巡更时间表,判断巡更是否到位,并向监控管理中心计算机发送信息,决定是否报警. 巡更站就是读卡机,在规定的时刻和误差范围内读卡,表示巡更到位,否则表示巡更不到位. 巡更任务的优先级较低, 取100 , 堆栈取6 000 ,该任务可抢占,时间片为50 ns.
3. 3 网络数据接收任务
网络数据接收任务的功能为接收管理中心计算机或其它门控器发来的数据和命令,根据这些命令和数据,执行相应的建表、添加、更改、删除、维护和读事件等操作. 该任务的优先级取190 ,堆栈设为600 K,可抢占. 采用客户/ 服务器的通信模式,接受数据的门控器为服务器,发送数据的管理中心计算机为客户.为了通信方便,我们自己定义了一套数据传输的格式,具体格式如下:
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/159718_3_0.jpg)
因为不能对flash 存储器进行单个字节的擦除和改写,只能一个一个模块整块擦除,再重新写,所以门禁控制器上的数据表只采用新建和重建两个命令(flash 的擦除次数可达100 万次) .
3. 4 数据存储任务和系统间联动任务
数据存储任务的主要功能是定期把SDRAM 里的事件数据保存到flash 存储器和管理计算机上. 系统间联动任务主要是响应其它系统的要求,比如火灾报警系统报警时要求把有关的门打开,而安全防范系统在遇盗时,需把有关的门关闭. 该任务的优先级要求比较高,取230.
持卡人信息表、群组表、时段属性表和读卡器表的数据结构定义的程序清单如下
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/159718_3_1.jpg)
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/159718_3_2.jpg)
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/159718_3_3.jpg)
![](http://m.amcfsurvey.com/editerupload/fetch/20130823/159718_3_4.jpg)
4 结 语
本文主要阐述了门禁控制器软件的设计及实现.详细说明了门禁控制系统的组成、基本结构、工作方式及功能功述;系统分析了门禁控制系统的工作原理. 门禁控制器系统应用于出入口管理系统,提供了较高的安防保障,并日益被推广.
评论