嵌入式平台下的RFID数据处理终端
2009-07-31
作者:高富强1, 须民健2, 邹 恒
摘 要: 介绍一种以AT91SAM9260处理器和Linux嵌入式操作系统为平台的RFID信息采集与处理系统。该系统充分利用AT91SAM9260芯片丰富的标准接口资源,集门禁、考勤、监控为一体,以Linux操作系统为软件平台,完成了RFID数据信息和USB摄像头照片数据的采集、保存与TCP/IP远程数据传输等。介绍了系统的硬件组成原理、软件设计方案和实现方法,为射频识别技术在智能一卡通系统中的应用提供了一种先进的解决方案。
关键词: 嵌入式系统; 射频识别; USB摄像头; 一卡通
随着射频识别RFID(Radio Frequency Identification)技术和计算机技术的不断发展,RFID广泛应用于城市、住宅小区、企业公司、学校、医院等一卡通系统中,极大提高了人们的生活水平和工作质量。目前的RFID信息采集与处理多数采用8位单片机系统,如各种考勤机、门禁控制器、售饭机等,其功能单一化,数据处理能力有限。本设计采用ATMEL公司生产的ARM9系列芯片AT91SAM9260为核心处理器,实时采集RFID模块的数据信息,并对数据进行筛选、识别、保存,最后以TCP/IP、FTP方式上传至服务器供管理系统处理。外置USB摄像头可运行于实时视频监控或图片抓拍,抓拍的图片可保存于本地Flash存储器或SD卡中,方便管理人员对采集的信息进行核查,能有效监控在考勤或门禁系统中的作弊代刷卡现象,是有别于指纹考勤系统的另一种有效替代方案。下面介绍系统各组成模块的功能和实现方法。
1 系统硬件设计
1.1 ARM处理器AT91SAM9260
AT91SAM9260采用ARM926EJ-S内核,最高频率200 MIPS,具有7个USART,96个可编程I/O口,10 M/100 M以太网卡MAC层,12 Mb/s USB-DEVICE及USB-HOST,支持SDRAM的外部总线接口、闪存、NAND闪存。处理器的系统控制器提供完整的监视功能,其中包括8级优先级中断控制器、RC振荡器、PLL、实时周期中断和看门狗定时器、复位和关机控制器及备份寄存器[1]。该处理器件的这些特性使得系统硬件电路变得异常简洁。
1.2 系统构成
系统包括1个用于采集USB摄像头数据的USB-HOST接口,1个语音信息提示的IIS音频接口,1个RS232调试串口,2个用于接收RFID模块数据的UART1、UART2串行接口,1个以太网接口以及存储器接口和其他普通I/O接口。系统组成结构如图1所示。
1.3 外围接口
根据图1的系统结构图,着重介绍门禁控制、RFID模块和存储器接口的硬件实现。
1.3.1 门禁控制
在门禁控制系统中,RFID数据信息主要来自于韦根读卡器。其特点是数据传输可靠,传输距离远,在200 m范围内能可靠传输,其Wiegand(韦根)协议是由Motorola公司制定的一种通信协议,数据输出由2根线组成,分别为DATA0和DATA1,2根线分别将0或1输出:输出0时,DATA0线上出现负脉冲;输出1时,DATA1线上出现负脉冲。DATA0与DATA1分别与处理器的I/O口相连接,并将I/O口配置为输入电平变化中断方式,保证数据帧的可靠完整接收。
门禁输出控制采用MOSFET功率场效应管IFRZ44代替目前流行使用的继电器控制方式,克服了继电器所有的“灵敏度差”、“有动作噪音”、“开闭次数多减少寿命”等缺点。IFRZ44的驱动电路如图2所示,其中IFRZ44工作于开关状态,将电控锁的电源连接到J4的两端,通过控制IFRZ44的开/关状态即可实现门闸的开/闭。
1.3.2 RFID模块
RFID数据采集模块包括:天线、RF发送电路及RF接收电路、解调电路、DSP处理电路、电源、外部通信接口等,其外部通信接口最终输出正确的卡片ID信息[2]。在一卡通系统中,通常采用成品模块,目前国内多采用支持频率为125 kHz的EM卡和13.56 MHz的Mifare卡的读卡模块。其中,Mifare卡内芯片可读/写数据,每个扇区独立加密,具备更好的安全性。
在本设计中,选用中国台湾Smart-way品牌的125 kHz-K4模块。该模块体积小,是专门设计用来读取EM 卡的读卡模块,射频距离约10 cm,外部通信接口采用RS232通信方式,通过电平转换电路后可直接与处理器的UART接口连接。根据不同的应用和需求,可将该模块更换为RS232通信方式的Mifare(M1)读写模块、远距离读卡模块、电子标签阅读器等,应用程序根据模块生产厂家提供的通信格式对卡片、电子标签等数据载体进行读写操作。
1.3.3 存储接口
系统使用2片SDRAM-K4S561632H组成32位64 MB的内存,以运行Linux操作系统和其他临时数据;使用1片64 MB的NandFlash-K8F1208作为物理存储器,存储系统程序代码、文件系统、配置参数等。NandFlash掉电数据不丢失,写(编程)和擦除速度快,适合大数据量的读取。在设计中,NandFlash的地址空间分配如图3所示。
图中,Cramfs为系统的启动根文件系统,是一个压缩格式的只读文件系统,当系统需要访问某个位置的数据时,马上计算出该数据在Cramfs中的位置,将它实时地解压缩到内存之中,然后通过对内存的访问来获取文件系统中需要读取的数据,节省了大部分的内存空间[3];Yaffs2文件系统是一种专门针对NandFlash的可读写文件系统,在意外断电等情况下不会丢失数据,此处用于保存人员档案数据、照片、RFID信息、系统配置参数等。
1.3.4 其他接口
采用简单的4×4矩阵键盘和128×64字符型液晶FM12864M作为人机界面,以减少系统成本。
系统的电源采用模块开关电源,输出+5V/3A和+12 V/1.2 A两组电源,用于控制系统供电和电锁供电。UPS电源可用于门禁系统中,以便在市电断开的情况下能继续维持整个系统的正常运行,提高门禁安全性。
2 系统软件设计
在嵌入式系统中,Linux操作系统以源代码开放、可裁剪、占用内存少、效率高、稳定、良好的移植性、优秀的网络功能、对各种文件系统完备的支持和标准丰富的API等众多优点,成为嵌入式软件平台的首选[4]。本设计采用Linux-2.6.22为内核的Linux操作系统为软件平台,在此基础上编写系统需要的各种驱动程序和应用程序。
2.1 USB摄像头驱动的移植
开源驱动spca5xx/gspca提供了对大部分主流摄像头的支持,还为摄像头提供了一个完整的网络应用程序,即servfox和spcaview程序,通过在Linux服务器端运行servfox,即可实时显示客户端spcaview程序采集USB摄相头视频流。由于gspca驱动不支持本系统采用的“罗技灵迅版”USB摄像头型号,所以要添加修改相应的驱动程序。gspca驱动程序的核心代码是gspca_core.c和gspca.h两个文件,包括了设备注册、注销、各种操作方法集(定义了所支持的摄像头设备列表,设备检测和初始化,设备打开、参数设置、关闭等各种操作函数) [5]。由于“罗技灵迅版”的VendorID(0x046d, 0x08af)、DSP型号(ZC3XX)、CMOS传感器型号(SENSOR_HV7131R)在gspca.h中均有定义,也有相关的芯片头文件,因此,只需改动gspca_core.c,把Easy/Cool摄像头的信息加入到其中即可。在摄像头型号检测的函数spcaDetectCamera( )中添加如下代码:
case 0x08af:
spca50x->desc =LogitechQC_EasyCool;
spca50x->bridge = BRIDGE_ZC3XX;
spca50x->sensor = SENSOR_HV7131B;
break;
即完成了对未知USB摄像头型号的扩展使用。
2.2 RFID数据采集与处理
RFID数据采集与处理流程图如图4所示。人员档案数据(如姓名、门禁权限等)统一存储在一个file.txt的文件中,作为数据识别进程的数据依据。假设采集到的RFID卡片ID信息为:1123776758,执行如下查找程序:
system('grep 1123776758 /user/file.txt');
判断该卡片ID信息是否合法。如果查找结果是该卡片ID信息为NULL,则应进行报警提示等处理;如果查找到的是该卡片ID信息对应的人员档案数据,则进行数据保存、开门、照片抓拍等。
RFID信息、采集时间、地点等数据按格式保存在一个*.txt 文件中,所采集的照片以.jpg文件格式保存。
最后,服务器通过以太网,与终端设备建立TCP/IP、FTP连接,终端设备将保存的文件上传至服务器供管理系统处理。上传成功的文件将从本地Flash中删除,本地Flash由于容量有限,采用轮循存储的办法,保存的数据超出50 MB后,将从存储范围的开始处往后覆盖原来的文件。
键盘、LCD12864、韦根接口、门禁控制接口均需在Linux下编写I/O口驱动程序,以模块动态加载的方式调试成功后,保存到Cramfs或Yaffs2文件系统中,启动时在/etc/init.d/rcS文件中执行动态加载命令insmod[6],使用mknod建立设备支点,这样应用程序便可以访问这些设备。
人机交互除了使用LCD和键盘外,本设计还采用了基于Web浏览器的交互方式,在用户端只需要通过Web浏览器输入设备的IP地址,就可以对嵌入式设备进行管理和监控,非常方便实用。在Linux环境下,Boa服务器是一个非常小巧和适用于嵌入式系统的Web服务器,支持CGI程序的执行。
本设计充分利用AT92SAM9260片上资源与智能一卡通系统终端的硬件需求相一致的优势,再以Linux为软件开发平台,实现了整个系统的集成化,具有通用性、低成本、体积小、操作方便、稳定可靠等优势。本系统还可扩展到餐饮消费、车库管理、会议签到等应用中,也适用于一般的嵌入式数据采集系统、监控系统等。
参考文献
[1] Atmel Co.AT91SAM9260 user’s mannual(revision 6221D)[M]. 2007.
[2] 武国强,吕伯权. 基于嵌入式Linux的便携式RFID信息采集与处理系统[J]. 电子技术应用,2006,32(10).
[3] 冯国进. 嵌入式Linux设备驱动程序从入门到精通[M].北京:清华大学出版社,2008.
[4] 孙琼. Linux应用程序开发详解[M]. 北京:人民邮电出版社,2006.
[5] 徐伟,谭树人. 基于AT91RM9260的图像采集系统设计[J]. 微计算机信息,2006(12).
[6] CONRBET J, RUBINI A, HARTMAN G K. Linux device drivers third editon[M]. O’Reilly Media, 2005.