DIY编程器网
标题:
基于ARM7的多路韦根信号采集与处理
[打印本页]
作者:
liyf
时间:
2012-1-17 23:38
标题:
基于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口的方式,只有满足扫描周期
当有任何一路韦根接口产生低电平时,经过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扫描的方法,不仅可满足应用要求,扩展出多个韦根接口,而且具有成本低、易实现、功能强等特点。
[/td][/tr]
[tr]
[td] [/td][/tr][/table]
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2