您的位置 首页 电路

根据嵌入式Linux 的便携式RFID 信息收集与处理系统

本文介绍了在AT91RM9200高性能ARM芯片上运行嵌入式Linux,结合TagMasterAB公司功能强大的射频识别模块S1510实现便携式标签卡的信息采集和处理。

射频辨认( 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℃的低温下仍能够正常作业。

RGS24128064YW00

1 具有串行和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 接口。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/221929.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部