物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

基于 ARM 的 RFID 中间件系统设计

作者:齐欣乐,袁巍,刘威,张强 华中科技大学
来源:单片机与嵌入式系统
日期:2009-08-20 18:01:47
摘要:RFID中间件在RFID读写器和应用程序之间起桥梁作用。应用程序端使用中间件所提供一组通用的应用程序接口(API),即能连到RFID读写器,采集RFID标签数据。即使存储RFID标签情报的数据库软件或后端应用程序增加或改由其他软件取代,或者读写 RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。
引 言

    RFID中间件在RFID读写器和应用程序之间起桥梁作用。应用程序端使用中间件所提供一组通用的应用程序接口(API),即能连到RFID读写器,采集RFID标签数据。即使存储RFID标签情报的数据库软件或后端应用程序增加或改由其他软件取代,或者读写 RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。嵌入式RFID中间件在RFID的大规模应用中将扮演重要的角色。在具体应用部署过程中,会有大量的嵌入式设备充当边缘中间件的硬件平台。对于众多有意从事中高端RFID读写器开发的硬件厂商而言,借助嵌入式 RFID中间件迅速实现硬件集成基础之上的软件集成,是帮助硬件厂商快速升级产品系列,满足企业拓展市场和业务范围需要的有效举措。通透性是这种系统整个应用的关键,正确抓取数据、确保数据读取的可靠性,以及有效地将数据传送到后端系统都是必须考虑的问题。

    ARM处理器是当今应用最为广泛的处理器芯片之一,低功耗、低成本、高性能等特点使其在消费电子类产品中的竞争力日趋显著。本文提出了一种基于ARM的支持多通信平台的RFID中间件系统设计,可以更广泛、更丰富地推动RFID应用。

1 硬件设计

    AutO_ID中心曾提出了名为Savant的RFID中间件概念的雏形,并制定出相应的1.0规范草案、技术手册和原型系统,明确了RFID中间件的最原始功能。在此基础上,本系统应有以下功能:
    ①管理读写设备,支持多种读写器(包括不同厂商、不同类型)。
    ②采集、过滤并缓存数据。
    ③提供应用开发接口。
    ④与EPC体系标准服务交互:ONS、PML。
    ⑤支持多通信平台,如Internet、GSM、GRPS和CDMA。
    ⑥外设的集成控制与协同,实现嵌入式RFID中间件的柔性设备控制。

1.1 ARM核微处理器

    本系统在功能上分为有线通信模块、无线通信模块、人机交互模块和核心模块。本设计采用Samscmg公司203 MHz的ARM920T内核的处理器S3C2410。
    S3C2410微处理器是一个多用途的通用芯片,内部集成了微处理器和常用外围组件,可用于各种领域,指令处理速度达到200MIPS。其特性包括:扩展总线最高频率为100MHz,32位数据,27位外部地址线,存储控制器(8个存储体)包含RAM(SDRAM)控制器、NAND控制器;复位时引导芯片选择(8、16位存储或NAND可供选择);4个带有PWM的16位定时器,多达55个中断源的中断控制器;3个UART,支持IrDA 1.O;4个DMA通道(支持外设DMA);支持STN与TFTL LCD控制器;2个 USB口;I2C-Bus接口;2个串行外围接口电路(SPI)和SD卡接口。此外,S3C2410上可以移植标准Linux操作系统,使得程序开发更加简单。

1.2 主板模块

    系统内存部分由1片8M×16位数据宽度的Flash,共16 MB Flash(Intel E28F128J3C),读写周期150 ns;2片16M×16位数据宽度的SDRAM(HY57V561620BT)构成,共64 MB SDRAM。

    S3C2410提供8路片选nGCSn[0~7],每个片选都指定了固定的地址,每个片选固定间隔为128 MB。系统内存由2片16M×16位数据宽度的SDRAM拼成32位模式,公用nGCS6。共64 MB RAM。起始地址为Ox30000000。nGCS0接的是一片8M×16位数据宽度的Intel E28F128 Flash,安装在BANK0,起始地址为0x0。其中内核烧写的起始地址为Ox40000,根文件系统RAM~DISK烧写的起始地址为 Oxl40000。

1.3 人机交互模块

    系统利用GPIO口提供4个按键,以便能够响应按键中断,并获取键值。利用EINT4使用。 PS2键盘。S3C2410自带LCD控制器和触摸屏接口。本系统使用型号为LQ035Q7DB02的LCD液晶显示屏,采用MAX1664.作为电源驱动器。MAX1664是美国Maxim公司生产的有源矩阵液晶显示器开关电源,具有升压、双路输出锁相等特点,还提供一个LCD底板驱动器。

1.4 有线通信模块

    该模块包括RS-232串行接口和1个10/100M自适应以太网接口。本系统采用一种单电源、低功耗RS-232芯片MAX3232。13、8脚接收:RS-232电平,最大值可达±25 V,从而12、9脚输出TTL电平,低电平不大于O.4V,高电平不低于Vcc-O.6 V;11、10脚输入TTL电平,14、7脚输出RS-232电平,最小幅值大于±5.0 V,典型值为±5.4 V。当向外发送数据时,TXD1有一个下降沿,指示灯LED亮,经过MAX3232,TTL电平转化为RS-232电平。当接收外部数据时,RXD1有一个下降沿,指示灯LED亮,外部RS-232电平经过MAX3232转化为TTL电平进入微处理器。

    系统通过外接1片DM9000以太网MAC芯片扩展了一个10/100M自适应的以太网接口,占用资源nGCS1/EINTO。DM9000是 Davicom公司的一个全双工高速以太网控制处理器,内部集成了10/100M PHY、MAC、MMU和4 KB Dword SRAM。兼容3.3 V和5 V供电。它提供8位、16位和32位3种接口,4路多功能GPIO。此外DM9000还集成有接收缓冲区。S3C2410X支持2路USB HOST接口,支持高速、低速USB设备。

1.5 无线通信模块

    无线技术是目前通信发展中最具有活力和前景的技术,支持无线接人的RFID中间件可以部署于无固定网络基础设施的场景,降低有线网络部署成本。RFID中间件还可以用无线通信方式向用户传输信息,提高信息传递的实时性。通过在系统中实现GPRS (General Packet Radio Service)模块,使系统具备移动通信功能。GPRS是通用分组无线业务的简称,以分组模式在PLMN和与外部网络互联的内部网上传输。理论上, GPRS可提供高达115 kbps的传输速率,但实际上用户用到的带宽大约为40 KB
~100KB。GPRS分组交换接人时间小于1 s,广泛支持IP协议。GPRS的这些特点提供了一个完备的基于TCP/IP协议的通信解决方案。

    GPRS通信模块使用Sony Ericsson公司的GR47来实现GPRS上网的功能。GR47是GSM/GPRS全套语音和数据功能的工业级的先进无线模块,所有的功能都集中在一块集成的芯片内,内嵌TCP/IP协议栈。

1.6 电源设计

    系统的核心模块工作电源为单一的3.3 V/0.5 A直流。由于核心模块电源消耗功率较小,因此系统采用LT10856线性稳压芯片,使用电路板上下面铜箔作为散热面,用9 V/0.8 A直流电源供电。

    在其他的应用设计中根据不同的电源消耗需求,可以选择线性稳压源方案和开关稳压源方案。对于前一种选择,可以获得低噪声、廉价等益处,但同时也有效率低、发热较大等缺点;对于开关电源方案,正好与线性电源的优缺点相反。

1.7 其他外设
    系统提供了2个USB HOST接口,可支持U盘、USB摄像头等多种USB设备,只需开发不同的设备驱动就可有效扩展。
    使用UDA1380音频编解码器可有效支持MD、CD、MP3格式的音频文件的播放。

2 软件设计

    Linux性能强大,开源免费,有极强的平台可伸缩性,符合POSIX标准,且有强大的网络功能。这些特点使其近年来在嵌入式领域发展迅速,广泛渗透到信息家电、网络设备和手持终端等市场,因此本系统以Linux操作系统为依托,在其上开发应用程序。中间件软件是一个多层次多模块的软件系统,共分为3个层次,如图3所示。 

    系统配置层:实现系统配置功能,调用下层提供的一些功能接口,不仅可以添加下层的基本处理单元,而且可以对处理单元的一些参数进行有效配置。它包括Web Server接口模块和远程控制信息台模块。

    数据逻辑层:实现该软件系统的基本功能,包括读写器命令处理、标签过滤处理、对象域名服务(ONS)接口、企业级服务器接口交互(可能改为和PC中间件进行交互)。该层次完成系统的逻辑功能,包括设备管理模块、数据过滤模块、ONS查询模块(保留)、企业级别服务器接口模块。
    基础设施层:提供系统运行所需要的基本功能,如数据库访问功能、内存管理功能,它们为其他模块提供统一稳定的接口,屏蔽一些差异性。该层次包括网络管理模块、内存管理模块(保留)、数据库访问模块。

2.1 Linux的移植

    在嵌入式开发中,把操作系统移植到开发板是进行嵌入式应用程序开发的前提和基础。ARM Linux是针对ARM体系结构的嵌入式Linux操作系统。在编译Linux内核之前,首先要针对具体的硬件对内核进行配置,包括系统类型的配置。本系统选择ARM system type。在配置好通用内核选项、块设备和文件系统之后,即可编译修改后的内核文件,生成一个内核映像的自解压压缩文件。通过运行make clean dep zImage对该文件进行依赖编译,系统将在/arch/armnommu/boot目录下生成内核映像zImage,并将zImage下载到Flash 中的64K地址处。运行时,将U-Boot复制到SDRAM中的OxOc300000地址处并启动zImage;zImage会自行解压缩,将其解压缩到 SDRAM中的OxOc080000地址处并开始运行。内核启动后,系统会将romfs作为根文件系统。在linux-dist目录下运行make menuconfig命令可配置Linux的文件系统。

2.2 RFID标签数据处理

    系统读取的RFID标签数据在中间件中主要经历数据管理、编码管理和过滤规则管理,之后存入本地数据库。其中数据管理包括数据校验、数据处理和数据存储;编码管理即设定编码规范,可配置支持不同数据编码规范;过滤规则管理能支持用户配置数据过滤规则。系统基本流程如图4所示。 

    用户的参数配置信息通过消息队列发送给中间件软件,软件分析发送过来的数据,对系统工作状态作出一定的调整。同时,系统通过网络处理模块接收从网口上读写器发送过来的数据,把这些数据分为标签数据和读写器管理数据两类。系统每个读写器实例都有自己的数据处理线程,它分析自己独特的数据格式形成统一的数据,并且调用该种读写器的处理方法,对解析后的数据结合该读写器特定的数据处理参数,对标签数据进行过滤、转发等工作。整个系统中有唯一一个管理命令处理线程,它轮询每个读写器的管理命令处理队列。如果有命令数据,那么调用该读写器特定的处理方法对这些数据进行处理。

结 语

    本文提供了一种支持多通信平台的嵌入式RFID中间件系统设计方案。支持无线接入的RFID中间件可以部署于无固定网络基础设施的场景,降低有线网络部署成本。RFID中间件还可以用无线通信方式向用户或者系统传输信息,提高了信息传递的实时性。