摘要:对基于通信器S1503的门禁系统的实现技术及组成部件进行了简要描述;介绍了系统核心部件——通信器S1503的特点、结构及应用原理以及标签S1251的结构和工作原理,并对该系统的具体设计过程进行了分析和讨论;最后对该系统进行了必要的说明。 关键词:门禁系统 S1503 通信器 通信编程门禁系统是对出入口通道进行管制的系统。近年来,随着数字技术和网络技术的飞速发展,特别是射频通信识别技术、智能卡技术和生物识别技术的发展,门禁系统也得到了飞跃式的发展,出现了智能卡门禁系统、指纹门禁系统和面部识别门禁系统等各种系统。它们在安全性、方便性和易管理性等方面各有特长,是确保各重要部门出入口安全的有效措施,现已广泛应用于各领域。本文设计的门禁系统是武警部队车辆信息综合管理系统课题(武警部队立项课题)的一部分。该系统是基于射频通信识别技术的单机控制型门禁系统。它以CONFIDENT自动识别系统为基础,对部队单位的车辆进出停车场实现自动管理。CONFIDENT系统的基本部件包括电子标签、通信器和主机。在本系统中,通信器采用瑞典TagMastr AB公司生产的S1503,电子标签采用S1251,主机是车场调度室的计算机。CONFIDENT系统结构示意图如图1所示。
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写入器、缺少方便的界面。
(2)利用Confilib库函数开发的主机应用程序在该方式中,通信器S1503利用Confilib库函数或其它软件开发的主机程序进行控制,系统的智能部分在主机,通信器不做任何逻辑判断。当主机应用程序调用Confilib函数时,自动将Confilib命令翻译成ConfiTalk命令,然后传递给S1503,S1503根据该命令执行对应的Confilib命令。这种方式的优点是:与通信器应用程序Pyramid控制方式相比,拥有更加方便的界面,主机应用程序更加便于开发、调试;缺点是:执行速度慢。(3)利用主机应用程序与标准通信器应用程序Pyramid通信这种方式与第二种方式相似,主要区别在于主机与S1503的标准应用程序Pyramid通信,而不是直接同Confilib通信。主机应用程序与通信器标准应用程序通过互送邮件实现通信。采用这种方式,其优点是:主机应用程序简单,部分逻辑判断可交给通信器应用程序,从而获得较快的运行速度;缺点是:Pyramid邮件不支持写标签和数据库管理功能。不过,这些功能可通过Confilib/Confitalk命令实现。(4)利用用户协议这种方式除了通信器中的Confilib之外,所有软件均由用户编写。当系统使用ConfiTalk以外的协议时,采用这种方式。该方式的优点是:可实现通信器ConfiTalk以外的协议通信;缺点是编写程序量大、开发周期长。在实际应用中,可根据用户实际需求,选择适合要求的编程控制方式。在本系统中,采用了主机应用程序与标准通信器应用程序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等来使用邮件交换系统。使用邮件交换系统的前提是系统至少有一个空闲的动态缓冲区。在初始化邮件系统时,函数将占据编号最高的动态缓冲区。
