基于通信器S1503的门禁系统的设计
摘要:对基于通信器S1503的门禁系统的实现技术及组成部件进行了简要描述;介绍了系统核心部件——通信器S1503的特点、结构及应用原理以及标签S1251的结构和工作原理,并对该系统的具体设计过程进行了分析和讨论;最后对该系统进行了必要的说明。
关键词:门禁系统 S1503 通信器 通信编程
门禁系统是对出入口通道进行管制的系统。近年来,随着数字技术和网络技术的飞速发展,特别是射频通信识别技术、智能卡技术和生物识别技术的发展,门禁系统也得到了飞跃式的发展,出现了智能卡门禁系统、指纹门禁系统和面部识别门禁系统等各种系统。它们在安全性、方便性和易管理性等方面各有特长,是确保各重要部门出入口安全的有效措施,现已广泛应用于各领域。
本文设计的门禁系统是武警部队车辆信息综合管理系统课题(武警部队立项课题)的一部分。该系统是基于射频通信识别技术的单机控制型门禁系统。它以CONFIDENT自动识别系统为基础,对部队单位的车辆进出停车场实现自动管理。CONFIDENT系统的基本部件包括电子标签、通信器和主机。在本系统中,通信器采用瑞典TagMastr AB公司生产的S1503,电子标签采用S1251,主机是车场调度室的计算机。CONFIDENT系统结构示意图如图1所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 通信器S1503
通信器是门禁系统的核心部件,直接管理和控制门禁系统的所事务;此外,还负责与主机进行通信来交换信息。本系统采用的S1503是长距离通信器,工作频率为2.45GHz,具有圆极化天线波束的读写工作站,用于读写CONFIDENT系统中射频识别标签,在车辆收费管理、车场车辆进出口管理以及列车车次识别等系统中有着广泛的应用。其主要特点是:(1)具有6m的长阅读距离;(2)能进行5m范围内的运动监测;(3)提供C、Delphi以及VB的驱动接口程序;(4)提供与主机通信的RS232和2/4线制的RS485接口。S1503的内部结构示意图如图2所示。
1.1 S1503软件系统
S1503的软件系统结构示意图如图3所示。
Confilib:CONFIDENT函数库名,该库中包含几百个通信器管理函数以及ConfiTalk通信协议接口函数。同时提供适合于DOS、Windows3.1以及Windwos 95/NT等不同平台要求的Confilib版本。PC平台的Confilib应用程序接口以C/C++动态链接库(DLL)的形式提供,同时也提供Visual Basic、Delphi语言接口,适用于通信器的Confilib是C语言库。这些函数库包含诸如阅读、写入、格式化标签,读、写、检索数据库,软、硬件设备,读、写I/O接口,发送、接收ConfiTalk命令,定时器,缓存区管理和邮件管理等函数。
图2 S1503硬件结构方框图
ConfiTalk:标准通信协议。该协议规定通信器传送和接收数据、处理数据流、重复传送、校验以及数据透明的方式。该协议还可用于点对点通信和多点网络通信,并采用查询方式。用户可自己编写通信协议来替代ConfiTalk。
Pyramid:通信器S1503出厂时预装的标准应用程序。安装了Pyramid的S1503在阅读在标签或检测到运动时,能够自己作出判断和决定。S1503还可以通过串行接口接收并执行ConfiTalk命令。
1.2 S1503编程控制原理
在CONFIDENT系统中,如何编程控制通信器是关键,有四种控制方式可供选择。
(1)利用用户编写的通信器应用程序
该方式是利用用户在Confilib库函数基础上编写的应用程序取代标准通信器应用程序Pyramid,所有逻辑判断均由用户所编写的通信应用程序完成。主机可不定期地连接到通信器上读取通信器记录信息,并更新通信器数据库。该方式的优点是:运行速度快、可单机运行;缺点是:需要PROM写入器、缺少方便的界面。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(2)利用Confilib库函数开发的主机应用程序
在该方式中,通信器S1503利用Confilib库函数或其它软件开发的主机程序进行控制,系统的智能部分在主机,通信器不做任何逻辑判断。当主机应用程序调用Confilib函数时,自动将Confilib命令翻译成ConfiTalk命令,然后传递给S1503,S1503根据该命令执行对应的Confilib命令。这种方式的优点是:与通信器应用程序Pyramid控制方式相比,拥有更加方便的界面,主机应用程序更加便于开发、调试;缺点是:执行速度慢。
(3)利用主机应用程序与标准通信器应用程序Pyramid通信
这种方式与第二种方式相似,主要区别在于主机与S1503的标准应用程序Pyramid通信,而不是直接同Confilib通信。主机应用程序与通信器标准应用程序通过互送邮件实现通信。采用这种方式,其优点是:主机应用程序简单,部分逻辑判断可交给通信器应用程序,从而获得较快的运行速度;缺点是:Pyramid邮件不支持写标签和数据库管理功能。不过,这些功能可通过Confilib/Confitalk命令实现。
(4)利用用户协议
这种方式除了通信器中的Confilib之外,所有软件均由用户编写。当系统使用ConfiTalk以外的协议时,采用这种方式。该方式的优点是:可实现通信器ConfiTalk以外的协议通信;缺点是编写程序量大、开发周期长。
在实际应用中,可根据用户实际需求,javascript:window.open(this.src);" style="cursor:pointer;"/>选择适合要求的编程控制方式。在本系统中,采用了主机应用程序与标准通信器应用程序Pyramid通信的控制方式,既保证了系统有较快的执行速度,又实现了主机与S1503的信息交换。
1.3 S1503应用编程
S1503程序库的核心是一个被称作事件器的模块,其绝大部分应用是由事件驱动的。事件是指正常程序运行以外不定期定义的事件,事件的产生可以来自外部(如按键),也可以来自内部(如定时器)。Confilib库中有七个模块产生事件,可能产生的事件包括:DTMF(双音多频接口输入)、Push_Button(通信器控制盘上的按键被按下)、Doppler_Radar(多谱勒雷达检测到运动物体)、Par_In(并行输入口输入)、Timer(设置的计时器到达时间)、Tag(成功阅读到一个标签)、Tamper_Switch(防护开关动作)、Null_Event(自上次查询后,没有事件发生)、Reset_Event(系统复位)。除防护开关动作外,其它所有事件模块必须经过初始化后才能够产生事件。当事件产生时,系统及时响应并存入通信器事件处理器,应用程序通过调用Bsw_Event_Handler_Get_Event()从通信器读取事件,若有事件发生,该函数返回其事件类型、相应数据,否则返回Null_Event。因此,通信器应用程序应是一个等待事件的死循环,当事件发生时,应用程序调用适当的事件处理程序来响应该事件。在本系统中,考虑到实现情况和需求,S1503的应用程序采用了通信器自带的标准应用程序Pyramid,这样既保证了系统有较快的运行速度,同时也降低了应用编程的难度。
1.4 S1503通信编程
当通信器S1503与主机连接时,其与主机要进行通信并交换信息,主要有三种方法:(1)利用CONFIDENT库函数所支持的动态缓冲区;(2)利用用户通过所提供的串行通信接口字节级设备驱动函数自定义的通信协议;(3)利用CONFIDENT软件库提供的邮件交换系统。在本系统中,采用了第三种方法。通信器通过调用函数Msw_Mail_Init、Mws_Mail_Send以及Msw_Mail_Receive等来使用邮件交换系统。使用邮件交换系统的前提是系统至少有一个空闲的动态缓冲区。在初始化邮件系统时,函数将占据编号最高的动态缓冲区。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 电子标签S1251
S1251是一种形似信用卡的电子标签,其结构示意图如图4所示。其工作频率为2.45GHz,可通过微波与通信器通信,能够存储606位数据,相当于82个7位ASCII字符和32位校验和。该标签还可通过微波器进行格式化,用户可根据对内存模式、响应时间、响应模式以及数据速率等的要求设置标签的工作模式。该标签使用对环境无害的锂电池供电,具有阅读距离长和阅读速度快的特点,且同时可阅读多个标签。在该系统中,每一车辆都有唯一的电子标签与之一一对应。车辆的有关信息(包括唯一标识号)存储在电子标签中,通信器通过与电子标签进行微波通信来识别标签并对车辆进行管理。
电子标签S1251不停地将数据反射到任何CONFIDENT通信器(在该系统中为S1503),不管通信器工作在工作频率为2.435~2.465GHz范围内的哪一个频道,javascript:window.open(this.src);" style="cursor:pointer;"/>只要S1251在通信器天线波束范围内,则通信器均能够读到标签信息。标签反馈到通信器的信息包括出厂前指定的标签的唯一标识号、读/写标签的“数据”以及标签的“状态”域。上述标识号、数据以及状态域构成标签的“识别信息帧”。标签的识别信息帧格式化由固定的间隔或随机的间隔隔开。两个相邻的识别信息帧连同其中的间隔称为“信息时间”。当S1251被格式化为随机间隔时,在同一天线波束内可同时阅读多个标签;若同一通信器天线波束内有四个以上的标签时,则应将标签的识别信息帧之间的间隔设置长一些,以免发生识别错误(主要指替代错误)。
3 门禁系统设计
门禁系统的设计涉及到硬件组装和软件编程。硬件组装主要包括车场调度室计算机与通信器的连接,通信器、电子标签以及电动门的安装等。通信器与主机最好采用屏蔽电缆连接。通信器的安装应注意使通信器天线波束覆盖整个车场大门,最好安装在门口旁边;电子标签安装在车辆前面的挡风玻璃下方,以便与通信器进行通信。电子标签在安装前最好进行初始化,在该系统中,初始化工作是通过通信器自带的标准应用程序Pyramid手工输入完成的。为了确保系统有较快的处理速度,通信器由自带的标准应用程序Pyramid控制,主要完成系统和电子标签的初始化以及电子标签的检测等。故在该系统中,软件编程主要是指通信器与主机的通信编程。
3.1 硬件连接结构
门禁系统包括通信器(S1503)、电动门和若干标签(S1251)。硬件连接结构示意图如图5所示。S1503通过串行口与主机相连,并且通过继电器对电动门实现控制。
3.2 工作原理
通信器内有数据库,内部存有合法车辆的车牌号信息和车辆唯一标识码,电子标签安装在车辆前挡风玻璃内适当位置并与车辆一一对应,主要是记录每个车辆的信息数据(包括唯一标识码)。在通信器的控制范围内,电子标签能与通信器进行实时通信,传递所存储的信息。通信器通过微波通信监控电子标签来监视车辆的进出场动作。当监测到有车辆出入时,通信器接收电子标签所送的信息数据,将所收到的数据与数据库中的数据进行比较,确认是合适车辆后,继电器闭合,接通电动门电源,电动门打开,给予放行,并向主机发送车辆的进出场信息;当检测到不合法车辆或陌生车辆时,通信器不接通电动门电源,而是向主机发送提示信息,发出声音警告。
3.3 软件编程的实现
软件编程主要实现的功能是:通信器检测到电子标签后,生成标签记录;将标签记录以邮件的形式提交给主机;主机接收到邮件后,对邮件内容进行处理,并将处理结果显示在主机屏幕上。
在该系统中,利用CONFIDENT软件库提供的邮件交换系统实现通信器S1503与主机的通信。使用邮件交换系统的程序流程图如图6和图7所示。其实现功能是主机接收到通信器送来标签邮件后,立即对邮件内容进行处理,并将与标签对应车牌号显示在屏幕上。为了避免主机和通信器同时控制串行口而产生矛盾,系统规定:每当空格键被按下时,改变通信器的安静模式。
图7 通信器通信程序流程图
通信器在安静格式时阅读标签事件。并将标签数据通过邮件发送给主机,主机通过邮件将通信器设置为非安静模式并在通信器为非安静模式时读取标签数据邮件。在程序实现时,利用定时器事件,主机应用程序每隔30秒自动输入空格键来达到此目的。