Loading
新闻中心库存中心价格中心PDF中心图片中心
ICGLE 电子技术支持中心,为电气人员和相关企业提供全面的信息(IC技术\IC库存\IC图片\PDF资料等)服务
总线设计PCB设计单片机DSPARM
JAVA驱动设计C/C++汇编J2EE网络协议中间件技术嵌入式系统无线通信通信网络模拟技术接口电路显示光电传感与控制EDA/PLD
气流体控制电子产品电机及工具通信设备仪器仪表电线电缆建筑电气低压电器高压电器电源工控自动化广电设备医疗器械More..
电源设计仪器仪表技术专递电路图片电子专栏储存技术汽车电子测量测试音响技术家用电器
成功方案市场分析行业标准应用前沿芯片应用综合专区
基于嵌入式Linux的便携式RFID信息采集与处理系统
来源:电子技术应用   作者:武国强,吕柏权
字体大小:[大][中][小]

class=content style=display:block;padding:0px 10px>

射频识别(RFID)是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别过程无需人工干预,可工作于各种恶劣环境。RFID技术在许多领域得到应用,如停车场管理、集装箱运输管理系统等。在大多数应用中,只要求有固定的阅读器,但在某些特殊系统中(如集装箱运输管理系统),不仅要求有固定的阅读器,而且还要求有手持式读卡器。
  TagMaster AB公司是世界知名的RFID读卡器制造商。它提供性能优良的固定式阅读器,也提供一种手持式阅读器。手持式读卡器由Caiso公司的工业级PDA(Personal Digital Assistants)和TagMaster AB公司的S1510组成。PDA虽然功能强大,但有如下缺点:(1)提供的触摸屏输入方式过于精细,不适合工作人员现场操作;(2)TFT液晶显示屏在强光下显示效果差,耗电量大,并且在低温下(0℃以下)无法工作,因此不适合室外工作;(3)采用Microsoft公司的商用系统WinCE,成本高。
  本文介绍一种基于嵌入式Linux的便携式RFID信息采集与处理系统。它采用高性能的32位ARM920T系列微处理器、8键的键盘及OLED显示屏,结合S1510实现了对电子标签卡信息的采集、处理及实时显示,很好地解决了上述问题。
1 系统组成
  系统采用Atmel公司的AT91RM9200 32位高性能处理器、TagMaster公司的S1510及OLED显示模块等实现电子标签卡信息的采集、处理、实时显示及与上位机通信等功能。系统组成如图1。


1.1 微处理器
  系统采用Atmel公司以ARM920T为核心的AT91系列微处理器AT91RM9200。它最高主频可达180MHz,具有先进的节电技术,集成了SDRAM、Flash、红外、USB等接口。系统采用USB(Universal Serial Bus)及红外方式与上位机通信。红外方式采用Agilent公司的HSDL-3602红外收发器实现。
1.2 射频识别模块
  射频识别模块采用瑞典TagMaster AB公司的2.4GHz产品S1510。该模块体积小,专为手持设备设计,可以采集1米内各种电子标签上的数据。它通过USART串口与处理器通信,接口简单,易于硬件实现。为了保证数据的可靠传输,模块与微处理器通信采用TagMaster AB公司开发的应答式串口通信协议ConfiTalk。
ConfiTalk协议是一种面向字符的应答式串行通信协议。它每次传输一定长度的数据块(帧),每个帧包含帧头(STX)和帧尾(ETX)。为了提高数据传输的可靠性,每帧又加入了8位的校验位(CS)及地址位(ADR)。帧的结构如图2。


  MESSAGE代表任意长度的信息。协议规定微处理器发送给S1510的帧为命令帧,返回的帧为应答帧。本系统使用的S1510是TagMaster AB公司的最新产品,它支持基于ConfiTalk协议的MAIL命令方式的数据传输。MAIL命令方式通信也就是把帧中的MESSAGE域统一成四种格式,其中命令帧有MAIL_SEND和MAIL_RECEIVE两种,分别表示S1510接收用户信息和返回卡信息(包括卡号、卡状态和卡存储的数据),如图3。
  应答帧有两种:MAIL_SEND的应答帧和MAIL_RECEIVE的应答帧,如图4。

 


  图4中,36表示S1510使用MAIL方式处理命令帧和应答帧,而4、5表示S1510命令帧的类型(MAIL_SEND或MAIL_RECEIVE);Status表示该命令的执行状态(成功或失败);MAIL_SEND命令帧中的Data域表示用户要进行的操作及参数,如使Data=WRITE:参数:数据,即表示用户要将数据写入电子标签卡;MAIL_RECEIVE的应答帧中的Data域为用户所要求得到的数据。
  当使用MAIL命令方式读写标签卡时,用户只需要按帧的格式填充各域,然后利用ConfiTalk协议提供的API函数发送到S1510即可。命令清晰明了,大大方便了用户的开发。
1.3 OLED显示模块
  系统采用莱宝科技有限公司的OLED显示模块RGS24128064YW001。有机发光显示器OLED(Organic Light Emitting Display)被誉为“梦幻显示器”。与液晶屏相比,OLED显示屏更轻更薄、可视角度更大,能够显著节省电能,并且在-40℃的低温下仍可以正常工作。RGS24128064YW001具有串行和8位并行数据接口。系统采用8位并行接口与微处理器通信。
1.4 SDRAM和Flash及自定义键盘
  系统采用32位的同步动态随机存储器(SDRAM)作为系统内存,16位的Flash作为不可丢失数据存储器。用户可以通过8键的键盘进行各种操作,如读卡、写卡等。
2 系统软件设计
  系统软件是整个系统的灵魂,其设计的好坏直接影响系统的稳定性和可扩展性等性能。系统设计将软件分为两层结构,如图5所示。最下面一层为操作系统层,主要实现对Linux操作系统的移植和各种设备驱动程序的编写,包括OLED模块、USB Device、红外、键盘等设备驱动程序。上一层为应用程序层,主要实现卡信息显示、键盘扫描、电子标签卡读写、文件传输、时钟以及电池电量检测等功能。


2.1 嵌入式Linux
  Linux是一种公开源码的多任务操作系统,具有开放度高、安全性好、稳定性强、可移植性好等特点,在嵌入式操作系统中被大量采用。
  本设计采用的Linux内核是在ARM-Linux的基础上,编写了OLED显示模块、USB 设备、红外收发器及键盘的设备驱动程序。在Linux系统中,设备驱动程序占有很重要的位置,它提供了在用户空间操作硬件设备的接口。Linux系统将设备分为字符设备、块设备及网络设备三种,并给出针对不同设备的数据结构及注册函数。当用户开发设备驱动程序时,只需按硬件操作的方法填充设备数据结构,并将它注册到内核中即可。
  为了方便用户应用程序的编写,把USB设备实现为CDC(Communication Device Class)类设备,其驱动程序分为两层,最底层操作AT91RM9200上的USB设备控制器,如处理硬件中断、读写寄存器及操作I/O口来检测设备的插拔;上层实现了底层与TCP/IP协议层的连接,主要是模拟物理网卡,并注册到内核。这样,在应用程序的USB设备就是一个标准的网络设备,用户不需要了解驱动程序的接口,而直接使用Linux提供的套接字进行网络通信程序的开发。当用户进行二次开发时,可以不加修改地将上位机开发好的网络通信程序直接移植到本系统中,而且可以通过上位机的Telnet等工具对嵌入式系统进行一定的操作。
  其他驱动程序(如OLED显示模块、键盘、红外收发器)都作为Linux下的标准字符设备编写,使用register_chrdev( )函数进行注册,提供了读、写和控制操作。在Linux系统中,应用程序对字符设备的操作与文件的操作相同。
  Linux中设备驱动程序可以通过模块方式动态地加载和卸载,也可以直接编译到内核中。前者使用灵活,可以减小内核,但因嵌入式系统要求所有设备在初始化后全部就绪,不能在使用时加载设备的驱动模块。所以,本系统中所有的设备驱动程序都直接编译进内核。
  每个设备驱动程序在用户空间对应一个设备文件,由文件系统管理。本系统使用ext2作为根文件系统。为了开发和升级方便,首先将根文件系统做成RAMDISK格式,所谓RAMDISK就是系统启动后将压缩的文件解压到内存,形成一个虚拟硬盘;然后,将引导程序、内核映像及根文件系统烧写到Flash中。
  系统加电后,引导程序将内核映像从Flash中调入内存,然后从核入口开始执行:首先初始化CPU,然后加载各个设备驱动程序,最后挂载文件系统,执行应用程序。
2.2 应用程序设计
  Linux是多任务系统,支持多线程及多进程。多线程的优点是线程比进程小,可以使应用更轻便,线程间通信方便;缺点是所有线程使用同一个地址空间,如果一个线程出现问题,整个系统将受影响;而进程各自占有一份内存空间,可以增强系统的稳定性,但是多进程增加了系统开销,进程间通信复杂。为此,根据实际情况,考虑到系统稳定性,本系统采取两者相结合的方式分别完成数据采集处理及文件传输功能。
2.2.1 数据采集处理
  数据采集处理是一个进程,它包括主线程和辅线程。主线程完成电子标签卡信息的读取、写入、实时显示及查询;辅线程实现一个时钟以提供用户当前时间,并定时对电池的电量进行检测和动态显示,在电量过低时发出警告。
  应用程序用MAIL命令方式完成电子标签卡的读写。该进程首先初始化屏幕,然后等待按键中断,当有键按下时,根据键值执行相应的工作;当指定时间内没有键按下,系统则进入休眠状态,从而达到省电的目的。程序流程图如图6。


  当成功采集到标签卡信息后,应用程序将卡信息(包括卡号、卡状态、用户数据及当前时间)通过OLED显示屏提供给用户,并写入一个文件进行记录。由于文件传输进程会将该文件传输到上位机,所以当读写文件时要将文件上锁。Linux提供了文件锁以防止不同进程同时访问同一个文件。本文使用flock()函数对文件上锁和解锁。
  由于OLED是图形点阵式显示屏,而且Flash容量有限,所以不可能直接使用汉字字库。系统预先提取所有用到的汉字、数字及字母的点阵数据,然后建立自己的字库文件,从而使应用程序可以对汉字、数字及字母进行显示。
2.2.2 文件传输
  文件传输是一个进程,完成卡信息的上传及其他数据的下载。与上位机通信采用Clinet/Server模型。该进程实质上是一个服务器端(本系统)的应用程序,它循环等待客户端(上位机)的连接请求。当请求到达时,首先判断请求来自哪个接口(USB或者红外接口),然后根据请求的类型执行相应的上传或下载。考虑到实际应用中可能会使用多台手持式阅读器,为了方便上位机对信息的管理,规定文件名由手持式阅读器编号和文件上传序号组成,程序在上传文件时自动将其编号及上传序号加入文件名。该进程的流程如图7。


3 系统电源管理
  本系统使用锂电池为系统供电。为了延长电池的续航能力,将应用程序设计为三种运行状态:上电空闲状态、程序执行状态及系统睡眠状态。当用户不进行任何操作时,系统将进入睡眠状态以达到省电目的。系统的睡眠是基于微处理器的电源管理功能实现的,进入睡眠的步骤如下:
  (1)关闭所有外设;
  (2)保存当前系统状态;
  (3)使SDRAM进入自刷新模式;
  (4)设置唤醒事件,使微处理器进入睡眠状态。
  当唤醒事件发生时,如有键按下,则执行系统复位。过程如下:
  (1)恢复部分微处理器的寄存器;
  (2)唤醒外部设备,系统开始运行。
  本文介绍了在AT91RM9200高性能ARM芯片上运行嵌入式Linux,结合TagMaster AB公司功能强大的射频识别模块S1510实现便携式标签卡的信息采集和处理。系统使用方便、灵活。另外,为克服LCD低温无法工作、亮度不够及耗电大的缺点,采用OLED显示模块使系统可以在恶劣环境下应用,并增加了电池的续航能力;为使系统与上位机通信方便,采用了支持热插拔的USB接口。
参考文献
1 Rubini A著,魏永明译.LINUX设备驱动程序(第二版)[M].北京:中国电力出版社,2002
2 张 娟,吴大伟.应用RFID的便携式数据采集与处理系统的研究[J].微型电脑应用,2005;21(6)
3 蔡 震,蒋辉柏,周利华.Linux系统下USB设备驱动程序的开发[J].计算机测量与控制,2003;11(2)
4 TagMaster AB. Sweden.Handheld Confi Talk Reference Manual[Z].2003
5 TagMaster AB.Programmer′s Guide LockTag Handheld[Z].2005
6 Robert Love.Linux Kernel Development(Second Edition)[M].北京:机械工业出版社,2005

Upload by 小刘(2008-8-13)
IC
·嵌入式网络智能控制系统的研究
·蜂窝/WLAN多模终端的设计考虑
·基于HMS30C7202嵌入式系统的..
·基于SEP3203的嵌入式以太网口的..
·利用CAN收发器提高CAN网络的安全..
·高性能T比特路由器高可用性的研究与实..
·Linux串口上网的简单实现
·从以太网供电中获取更多的电力
·串行ATA总线应用技术
·基于GPS的嵌入式公交自动报站系统的..
·基于USB2.0与FPGA技术的高速..
·SDH、同步以太网设备时钟的高效率实..
·滑动相关法伪码捕获的FPGA实现
·基于嵌入式Linux的智能手机系统设..
·电源应用中场效应晶体管的崩溃效应
·基于AD7888的高稳定度激光器多路..
·一种高速低压低静态功耗欠压锁定电路
·MAX2140内部ESD二极管的保护..
·电流测量的原理和产品
·利用PCI1510实现PCI板卡的热..
·基于VC的USB接口通信程序设计
·基于I2C总线技术的USB接口设计
·LCD控制器驱动的24位TFT真彩屏..
·GPS99808模块在汽车防盗系统中..
·热插拔可靠性的新标准
·基于LT1641的双路热插拔电路设计
·四通道I2C多路复用器提供了地址扩展..
·基于PCI总线和DSP芯片的图像处理..
·Linux 2.6 内核中的最新电源..
·高功率以太网供电不再困难
·采用UCC28051的100W通用线..
·电压不足期间支持电信电源的小电容
·负载管理与负载开关的设计与实现
·交叉耦合门防止推挽驱动器交叠
·台式电源测试的革命
·锂电池组的主动电荷平衡
·绿色动力新潮流——燃料电池
·输出电容器的等效串联电阻对滞环控制功..
·动态电源路径管理简化了太阳能板对电池..
·今天的绿色 POL DC/DC 转换..
IC
推荐技术文章:
·使用LXI加强汽车电子测试..
·针对无线宽带相位噪声的测试方案..
·在低成本测试夹具上实现对表面贴装射频....
·基于CC1100的无线手持终端的设计..
·核磁共振系统中微波射频开关的设计与应....
·基于无线传感器网络的电机运行状态监测....
·Zigbee无线传感器网络平台的设计....
·利用红外技术解决音频无线传输难题..
·温度传感器TMP275在家庭环境监控....
·CF+插槽宿主的供电及热插拔控制设计..
·一种新型的高压变频分布式控制系统..
·固定翼飞机竖直飞行控制系统的设计..
·霍尔效应技术提供紧凑型电流测量传感器..
·语音控制的智能小车设计..
·高精度超声波测距系统的设计与实现..
·基于PLC的玩具整体燃烧自动测试仪的....
·用于各类摄像应用的高速CMOS图像传....
·设计下一代自动化测试系统..
·基本电能质量测量方法和常见问题原因..
·基于FPGA的通用开关电源控制器硬件....
·FPGA器件的设计实现、设计优化与模..
·ARM的位置无关程序设计在Bootl..
·基于OV6630图像传感器和DSP的..
·基于DSP和CPLD的软开关电源数字..
·解决DSP设计面临的终极挑战
·基于P89C52RD2和FPGA的可..
·单片机的图形化编程方法探讨
·单片机系统多串行口设计技术研究
·51单片机红外遥控解码程序
·基于16位单片机的无刷直流电动机控制..
·PIC单片机控制lcd12864液晶..
·用PIC单片机实现LCD显示单个B字
·AVR内部EEPROM读写范例
·AVR模拟比较器使用范例
·用51单片机做的拉幕式数码显示课程设..
·用AT89S51单片机来制作的手动计..
·用AT89S51单片机多路开关状态指..
·单片机AT89S51与ADC0809..
·报警产生器-课程设计
·USB总线在光栅位移传感器检测系统中..
IC
IC

©2007 版权归ICGLE所有   页面执行时间:62.500毫秒