基于ARM7的多路韦根信号采集与处理
扫描二维码
随时随地手机看文章
在门禁、安防、楼宇自动化等领域中,各类身份识别卡(如磁卡、射频IC卡)包含的ID信息经读卡器(Reader)读取后转化为二进制数据,一般采用标准韦根(Wiegand)接口或串行通信方式与各类控制设备相连,以实现相应的管理和控制功能。与串行通信相比,韦根信号具有响应速度快、数据保密性及兼容性好的优点,应用较为普遍。本文介绍了一种基于ARM7的多路韦根信号采集与处理的方法,具有实现方便、功能强的特点。 1 韦根信号简介 韦根信号是一种单工的串行异步通信协议。它的每个信息帧由一串不定长的二进制数据位构成。根据所表达的ID信息的长短,帧长度有26、34、42和66位4种常见的格式。其中,首位和末位为奇偶校验位,所以实际对应的ID信息字长分别为3、4、5和8个字节。韦根信号接口采用2线制输出,如图1所示。D0/D1分为“0”数据线和“1”数据线,信号高电平为+5 V,低电平有效(逻辑“1”)。例如,D1出现一次低电平表示1;D0出现一次低电平表示0。信号的脉冲宽度为40~100μs,脉冲周期为0.8~1.6 ms,相邻两帧发送时间间隔(帧间距)≥250 ms,通信距离小于150 m。 2 接口硬件构成 接收韦根信号的上层控制设备通常是一个单片机控制系统,承担了I/O口驱动、以太网通信、数据处理、液晶显示等任务。韦根信号脉冲宽度仅为40~100μs,如果采用扫描I/O口的方式,只有满足扫描周期<40 μs的条件(即采样频率高于25 kHz),才能够捕获一个信息帧内所有的下降脉冲信号,否则将因出现“脉冲遗漏”造成读数错误。如此高的扫描速度将极大地消耗CPU资源,阻塞单片机系统其他任务的正常执行,所以一般通过外部中断控制线INT接入韦根信号。每个韦根接头都连接到CPU的一个中断信号引脚上,以中断触发的方式处理。由于CPU外部中断数量的限制,一台控制设备最多只能接入1~2路韦根信号。 为了能够接收多路信号,可以由另一个独立的单片机构成一个从机系统,以循环扫描数据总线的方式工作,专门负责多路信号的采集与处理,并将处理后的ID信息通过串行或并行方式发给主控单片机。但是这种方式增加了系统的复杂度,从而给可靠性带来隐患,同时也增加了成本。 本设计中主控制器是NXP2214,采用中断触发综合扫描I/O的新方法,只用一个CPU的中断信号,实现多路韦根接口信号的采集。韦根接口硬件电路如图2所示。韦根接口是5 V的电平,而ARM内核的CPU是3.3 V的电平,因此韦根信号首先通过芯片SN74LVC4245转换成3.3 V电平。然后,输入到NXP2214的P0.8~P0.15引脚上,这些引脚通过I/O方式扫描信号。每个韦根信号通过8输入与非门SN74HC30D得到一个中断信号,输入到NXP2214的外部中断P0.16引脚。 当有任何一路韦根接口产生低电平时,经过SN74-HC30D都会产生中断;微控制器立刻响应中断,扫描输入信号获取完整的信号帧后退出中断。这样,只需要一个中断信号,只在有信号时扫描I/O,不但不会阻塞系统其他任务的正常执行,而且可以扩展出更多的韦根接口。 3 接口软件设计 为了快速响应,使用最高级的中断优先级,当外部4路韦根接口有任何一路信号产生有效电平时,NXP2214都可以产生中断。在中断处理程序中,并行扫描4路韦根接口,并分别保存到变量。如果大于脉冲周期的时间间隔内(如2.5 ms),都没有发现任何一路信号产生有效电平,则认为传输完毕。接着处理数据和发送消息通知其他任务,然后退出中断。并行I/O扫描的流程如图3所示。其中,WG[0]~WG[3]为全局变量;外部中断处理函数使用中断句柄调用。 具体的扫描判断过程如下:在定时器没有超时时,首先读入韦根信号引脚的电平到cur变量;接着判断pre是否等于(cur&pre),即判断是否产生1到0变化的有效电平,通过下降沿判断的方式,防止误把1次0当成多个0读入。如果产生了下降沿,则判断信号是哪路韦根信号,对应存入变量WG[0]~wG[3]。如果是DATA0产生,则直接把变量左移1位;如果是DATA1产生,则变量加1后再左移。 该并行扫描处理的方法,能够保证韦根接口在同时有多路信号产生的情况下,也可以正确操作。中断触发扫描过程,一个扫描结束后信号都保存到WG[0]~WG[3]中。 本文采用的是标准韦根输出,信号帧由26位二进制数组成,帧格式如下: 奇偶校验判断正确后,将变量中的数据去除校验位变成有效数据;然后调用OSMboxPost函数发送消息,以通知其他任务处理。 4 结 论 本文的程序和硬件均在实际产品中调试通过。实验表明,在8个通道同时完成输入连续的韦根信号的情况下,微控制器NXP2214不仅能够全部正确接收读卡器的韦根数据,还能同时完成处理TCP/IP、液晶显示以及其他任务,达到了设计要求。单中断触发并行I/O扫描的方法,不仅可满足应用要求,扩展出多个韦根接口,而且具有成本低、易实现、功能强等特点。 | ||||