RFID 技术目前广泛应用于身份识别、防伪应用、供应链应用、公共交通管理、物流管理、生产线自动化与过程控制、容器识别等领域。由于手持式RFID读写器的存储器容量有限,保存在读写器中的数据可以通过USB 等接口传送到计算机中进行处理,但为更方便快捷地将读写器中的数据传送到远程的计算机系统中,将便携设备网络化是解决上述问题的有效途径之一。但目前的手持式RIFD 读写器并不具备与互联网进行网络连接的网络接口。另外,手持式RFID 读写器是通过内部所装有的电池进行供电,所以降低其工作功耗也是主要问题之一。而MSP430F149 单片机是一款16 位超低功耗的处理芯片,它将多个不同功能的模拟电路,数字电路模块集成于一身,适合应用与需要电池供电的便携式仪器仪表中。
因此,文中主要介绍手持式RFID 读写器中MSP430F149 单片机与以太网控制器RTL8139 接口的硬件设计的方法,以及相应的硬件设备驱动程序的设计和TCP /IP 协议栈的处理方法。
1 网络接口硬件结构。
1. 1 网络接口
手持式RFID 读写器是便携式射频识别系统的主要设备,其网络接口主要由MSP430 单片机与以太网控制器RTL8139 块等组成。其网络接口硬件结构如图1 所示。
图1 网络接口框图
根据便携设备的低功耗要求,MSP430 单片机采用MSP430F149,具有超低功耗、强大处理能力、丰富片上外围模块及多种存储器形式等功能,其中有2 个具有中断功能的8 位并行端口P1与P2和4 个8 位的通用并行端口P3、P4、P5与P6,可以满足和以太网控制器的接口,而且能够实现RFID 读写器的其他接口功能。
隔离变压器选用PM34 - 1006M10 /100 /1000M 变压器。采用RTL8139 以太网控制器作为网络接口。
由于RTL8139 是PCI 总线接口,不能直接与8 位的MCU 接口,需要一个PCI 接口进行转接。单片机在进行外部存储器操作时采用的信号有P0口、P2口、ALE以及RD 和WR 信号。其中,P0口为地址( 低8 位) /数据复用,P2口为高8 位地址信号; ALE 为地址锁存信号,为高电平时将P0口的值锁存到低8 位数据线上; RD 和WR 为读写有效信号,低电平有效。因此,PCI 接口实际上是起到一个从单片机读写时序到32位PCI 读写时序转换的作用。
1. 2 RTL8139 的结构及编程接口
RTL8139 是台湾Realtek 公司生产的一种高度集成的全面支持IEEE802. 3 标准的以太网控制器芯片,支持微软的PnP 规范。利用双绞线可以和全双工网络交换机相连接,能够同时接收和发送数据。支持UTP( Unshielded Twisted Paired) ,AUI( Attachment UnitInterface) 自动侦测。支持IO 地址全解码模式。其主要特性如下:
( 1 ) 符合Ethernet Ⅱ 和IEEE802. 3 ( 10Base5,10Base2,10BaseT) 标准。
( 2) 支持跳线和免跳线两种工作方式。
( 3) 全双工,收发可同时达到100 Mbit·s - 1 的速率。
( 4) 支持32 位数据PCI 总线。
( 5) 允许3 个诊断LED 可编程输出。
( 6) 128 脚LQFP 封装,缩小了PCB 尺寸。
如图2 所示,RTL8139 内部已经包含有整个网络接口层的协议,因此应用起来较简单。用户不必考虑链路控制问题,而只需考虑单片机如何从RTL8139 中去读TCP /IP 协议的数据即可。
图2 RTL8139AS 内部结构图
PCI 总线信号有3. 3 V 标准和5 V 标准,信号线众多,但并不是所有的PCI 设备都使用全部的PCI 接口信号,实际只使用需要的即可。RTL8139AS 以太网控制器遵循3 V 标准,并且只使用了PCI 总线信号中的以下部分: AD[31: 0]为数据信号复用总线。
FRAME 为帧周期信号,由当前主设备驱动,表示一次访问的开始和持续时间。IRDY 为主设备准备好信号。
TRDY 为从设备准备好信号。C /BE 为总线命令和字节使能复用信号。地址期是总线命令,数据期是字节使能。IDSEL 为初始化设备选择信号。在参数配置读写传输期间,用作片选。对于只有一个PCI 设备的情况,它可以总接高电平。RST 为复位信号。CLK 为系统时钟信号,频率范围DC ~ 33 MHz.以上信号都在CLK 的上升沿有效。INTA 为中断请求信号,RTL8139数据准备好后可以用来向主控制器发出中断。
DEVSEL 为设备选择信号,表明驱动它的设备已成当前访问的设备,由于系统中,RTL8139 是单一的PCI 设备,因此该信号可以不用。
2 网络接口软件结构
RFID 读写器系统网络接口软件主要包括硬件设备驱动程序、TCP /IP 协议栈、应用协议和其他用户应用程序。网络接口软件的流程如图3 所示。
图3 网络接口软件流程图。
其中应用协议和其他用户应用程序将在二次开发时根据RFID 读写器的具体功能要求进行设计,这里主要介绍硬件设备驱动程序、TCP /IP 协议栈的实现方法。
2. 1 硬件设备驱动程序
硬件设备驱动是将PCI 接口当作单片机的外部存储器看待,单片机以读写外部存储器的时序对PCI 接口进行读写,再由PCI 接口将这种读写操作时序转换成PCI 时序对以太网控制器进行操作。主要包括3 个部分,网络初始化,发送控制和接收控制。主要完成对CR,TCR,RCR IMR ISR,RBSTART,MAR 等寄存器操作。
发送控制过程在网络中,帧传输的过程是发送方将待发送的数据按帧格式要求封装成帧,然后同过网卡发送到网络的传输线上。发送程序框图如图4所示。
图4 RTL8139 数据发送流程图。
接收控制过程分成2 步,第1 步是根据哈稀算法判断数据包是否是本地的数据包,如果是则接收放入FIFO,如果FIFO 里的数据包达到了RCR 寄存器预先设定阈值,把数据报放入RX_BUFF.第2 步主机程序将RX_BUFF 里的数据读取到内存进行处理。
2. 2 TCP /IP 协议栈
如图5 所示,以太网控制器提供了逻辑链路层协议,TCP /IP 协议栈则通过底层的硬件设备驱动程序来接收和发送数据,对接收到的以太帧数据进行协议的分析,并给其上层应用提供一些简单、易用的函数。
图5 RTL8139 数据接收流程图。
TCP /IP 实质上是一系列协议的总称,是实现Internet通讯必不可少的部分,包括十几个协议标准,在这里要实现的是通过网络读取居民用表的读数,传输的数据量少且对实时性要求不高,不需要全部的协议,只要实现几个必备的即可,权衡之下,求在最小代码、最小资源需求和功能实现间取得一个平衡: 只实现了ICMP、TCP、IP、ARP 4 个协议,组成一个小型化的TCP /IP 协议。因为任何一个以太网数据帧要发送时都必须要知道对方的物理地址,这能过ARP 协议获得,所以要实现ARP 协议。而IP 协议是TCP, ICMP协议数据的传输格式; TCP 协议提供可靠的,可重组服务; 而ICMP 协议是调试时所不可缺少的。另外,在实现重发功能时,大多的做法是应用层不参与,当需要重发时,由TCP /IP 协议把存储在数据缓冲区的数据再发送一次即可,但在以单片机为主处理器的情况下,因为单片机自身的资源有限,为了减少RAM 的使用,可以在需要重发时再由应用层产生这一帧数据即可,这无需太多的时间。这样也不必每发送一帧数据都要存在缓冲区中以备重发时使用,进一步节省了RAM。
3 实验结果及分析
将手持式RFID 读写器通过网线连入局域网交换机,预先将读写器的IP 地址设置为192. 168. 1. 37,启动读写器、交换机及电脑,在电脑的命令终端输入ping192. 168. 1. 37 命令,其结果如图6 所示。
图6 RFID 连入局域网结果。
由图6 可知,手持式RFID 读写器已通过交换机成功连入局域网,与电脑建立网络连接。
在电脑中打开RFID 综合管理系统,将实验用RFID 卡放入手持式RFID 读写器后,综合管理系统读到信息如图7 所示。
图7 综合管理系统接收信息。
由图7 可知,手持式RFID 读写器将读到的实验卡信息,通过局域网交换机成功地传输到电脑的综合管理系统当中,实现了网络接口的功能。
4 结束语
设计的手持式RFID 读写器网络接口硬件采用MSP430F149 作为控制芯片,选用PM34 - 1 006M10 /100 /1 000M 变压器作为隔离变压器,以及全面支持IEEE802. 3 标准高度集成的RTL8139 作为以太网控制器芯片,整个系统具有超低功耗等优点,实现了RFID 读写器的网络化功能,为提高产品的竞争力创造了条件。同时,网络接口驱动程序及TCP /IP C 语言进行开发,具有较好的可读性和移植性,可以提高开发效率,缩短开发周期。