2.1 读写模块硬件中间件
参考中间件的通用定义,结合嵌入式系统特点,设计了本读写模块硬件中间件结构,如图2所示。向下屏蔽了电子标签、射频基站芯片等硬件环境的差异,向上为RFID应用层提供标准的软、硬件接口。应用层的开发基于该接口进行,无需考虑RFID的实现细节,且不管底层的硬件怎样更新换代,只需将中间件升级更新,并保持该中间件的对外接口定义不变,应用软件几乎不需做任何修改,从而提供了一个相对稳定的高层应用环境。
图2 读写模块硬件中间件结构
(1) 微控制器与射频基站芯片的连接
系统选用MF RC531作为射频基站芯片。该芯片是NXP公司生产的应用于13.56 MHz非接触式通信的高集成IC读写芯片系列中的一员[3]。选用Freescale公司低价位、高性能的MC68HC908JB8(简称JB8)作为模块微控制器,它通过SPI通信方式与射频基站芯片MF RC531连接,控制其完成读取电子标签UID信息的工作。MF RC531支持SPI通信方式,在通信期间作为从机。控制芯片JB8内部并没有集成SPI模块,其通信功能由I/O口软件模拟完成。
(2) 天线设计
RFID系统中,射频基站芯片(如MF RC531)通过天线发射能量,并与电子标签进行数据通信。天线的设计对通信的稳定性非常重要[4],本设计采用直接匹配天线法,电路设计如图3所示。
图3 射频天线电路原理
2.2 主控系统硬件设计
主控系统与读写模块通过SPI接口连接,获取该模块控制芯片内存中存储的电子标签信息,然后通过以太网通信接口将信息传送给计算机管理系统处理。系统采用Freescale公司16位MCU MC9S12NE64为主控芯片,其内部集成EMAC(Ethernet Media Access Controller,以太网媒体访问控制器)和EPHY(Ethernet Physical Transceiver,以太网物理层收发器),可配合第三方TCP/IP协议栈实现以太网的通信功能,从而实现单芯片的以太网连接方案。
3 系统软件设计
系统的软件设计主要包括读写模块的软件设计及嵌入式以太网的软件设计两部分。读写模块主要实现对TYPE A & B电子标签的UID识别;嵌入式以太网部分实现以太网的通信。
3.1 读写模块软件设计
读写模块被设计成硬件中间件,为应用系统和电子标签提供数据交互的接口。模块微控制器MC68HC908JB8的主函数流程如图4所示。
系统上电后首先执行MCU以及相关模块的初始化操作,然后进入主循环。如图4所示,主循环中不断地切换读卡模式,以满足读取TYPE A & B两种电子标签UID的需求。一旦读取成功,将UID赋给全局字节型数组变量Card_inform[ ]。Card_inform[0]存放电子标签的类型,即“A”或“B”的ASCII码,其后依次存放该类型的UID。主控系统可以通过读写模块硬件中间件的SPI通信接口获取Card_inform[ ]中的内容,获取完毕后JB8将Card_inform[ ]数组清零。对RC531的复位和寄存器初始化操作原本放置在主循环之前,即每次JB8复位后只执行一次。但是在实际测试过程中,当RC531长时间运行后会出现不稳定的情况,因此将这两步操作放在主循环中,以提高系统的鲁棒性。
图4 读写模块主函数流程