- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于S3C6410的航空用RFID读卡器设计方案
随着国民经济的发展,航空日益成为民众所依赖的出行方式。航空货运物流系统中食品与商品种类多,安全要求高,交接手续繁杂,急需引入信息化管理,RFID技术的出现对于改善民航的物流管理有着积极的意义。航空物流RFID系统主要由电子铅封、读卡器和数据库管理系统等组成,现有的读卡器一般采用单片机系统(如STC89C54或MC9S12X128)或者STM32系列,它们的普遍缺点是:主频偏低,不支持操作系统且用户体验不佳,满足不了航空货运物流系统日益增长的应用需求。在航空食品和免税商品物流系统中,地勤与空乘人员急需操作简洁,反应快速,可随时通过无线网络上传数据的手持读卡器,从而加快物流速度,提高机场工作人员的工作效率。基于上述情况,提出了基于S3C6410的高主频的射频识别读卡器,它支持linux操作系统,支持多线程操作,操作人员可在多个读卡界面之间切换并且能随时随地通过GPRS上传数据到SQL数据库,不但大大降低机场工作人员的工作量,而且提高了航空物流的速度与安全性。
1 硬件设计方案
系统结构如图1所示,系统采用了S3C6410微处理器,其稳定主频667MHz,最高主频可达800MHz.S3C6410集成了许多外设接口,如Camera接口、TFT-24bit真彩色LCD控制器、电源系统管理、4通道UART、32通道DMA、4通道定时器、通用I/O 端口、IIS、IIC 总线接口、USBHost、USB OTG(480Mbps)、3通道SD/MMC Host控制器及时钟生成PLL等。此外采用90nm COMS工艺,低功耗、简洁、精美且全静态设计使得S3C6410非常适合对成本、功耗敏感的应用。
系统的显示屏采用3.5寸24位的真彩触摸TFT-LCD,分辨率最大可支持到1 024×1 024,本读卡器的分辨率为480×272.存储外设为Nand flash、24C64 和SD 卡。
LINUX的Uboot、内核、开机图片和文件系统都烧写到nand flash中,24C64用于保存触摸屏校正参数和从电子标签中读取的数据。系统启动时S3C6410自动从24C64中读取校正参数,避免每次开机需校正屏幕。SD卡用于储存从电子铅封中读取的数据,此外汉字库与图标等文件也存放在SD卡中。
图1 系统结构
S3C6410通过串口1驱动GPRS模块(SIM300)与上位机SQL数据库进行无线通信。SIM300是一款3频段GSM/GPRS模块,可在全球范围内的EGSM 900 MHz、DCS 1 800MHz、PCS 1 900MHz 3种频率下工作,能够提供GPRS多信道类型多达10个,并且支持CS-1、CS-2、CS-3和CS-4 4种GPRS编码方案。
射频芯片采用NXP公司的CLRC632,它是一款针对13.56MHz的高集成无线射频IC,其管脚与MF RC500,MF RC530,MF RC531和SL RC 400均可兼容,可读写符合ISO14443协议的Type A 卡和Type B 卡,以及支持ISO15693协议的电子标签。RC632提供了2种通信接口,第一种是8位并口,可直接与各种8位微处理器相连接;第二种是SPI接口,本系统即采用了此通信接口,微处理器通过设置RC632的寄存器,便可实现射频操作(见图2)。
图2 CL RC632原理
SPI总线是一种高速全双工同步的通信总线,它使用4条线:MISO 、MOSI、SCLK 、CS.其主要特点有:同时发出和接收串行数据;可当主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
RC632总共有32个管脚,其中管脚22、23、24是寄存器的地址线,管脚13到管脚20是8位并口。当采用SPI方式通信时,管脚13即数据位D0为MISO,管脚22即地址线A0为MOSI,管脚24即地址线A2为CLK,D1到D7则不需要连接。此外,必须把A1与NCS置底电平,NRD与NWR置高电平。
RC632与天线之间通过3个管脚DTX1、DTX2与DRX进行通信,它会把调制好的13.56MHz的能量载波通过管脚DTX1、DTX2传输到天线,而天线则通过管脚DRX把13.56MHz的能量载波传输回RC632.一般采用2种方法将天线连接到RC632:直接匹配天线和50Ω匹配天线,本系统采用直接匹配的方式将RC632与天线连接,其包括了EMC低通滤波器、天线匹配电路与接收电路。
系统采用PCB环形天线,它的EMC低通滤波器用于滤除高频电磁波,天线匹配电路与天线进行阻抗匹配,以获得最大的功率传输,增大读卡距离,同时避免阻抗失配可能对电路造成的损害。经实测,天线的可操作距离为5~10cm.
2 读卡器的软件设计
读卡器的操作系统采用较稳定的Linux-2.6.30内核,文件系统为yaffs文件系统。软件分为2大部分:第一部分为QT程序,主要的功能是接受用户指令与显示图形界面;第二部分为射频驱动程序,它负责对RC632的寄存器进行操作,实现具体的射频功能。在编写射频读卡的QT应用程序之后,需把它整合到yaffs文件系统中。此外,还需裁剪linux内核,把驱动配置到内核配置单中。
13.56MHz的RFID的典型协议有ISO-14443协议和ISO-15693协议。其中ISO-14443协议是非接触式IC卡标准协议,应用较ISO-15693更为广泛。下面将主要分析ISO-14443协议,ISO-14443由4个部分组成:第一部分,物理特性;第二部分,频谱功率和信号接口;第三部分,初始化和防碰撞算法;第四部分,通讯协议。
ISO-14443通信协议的报文可分成6个部分,如表1所示:
表1 ISO-14443通信协议的报文数据格式
报头2字节固定为AABB,报文长度代表从节点到校验的字节之和,命令代码指明了报文的功能。常用的命令代码有0201(寻卡)、0202(防冲突)、0203(选卡)、0206(密码认证)、0208(读卡)、0209(写卡)等。
QT程序在启动后,会在TFT-LCD上显示一系列的图标,分别为:寻卡、读卡、写卡、选择扇区等,在寻卡中包含了防冲突检测,它是读卡过程中非常重要的一个步骤[10-11].其流程如下,当用户点击TFT-LCD的寻卡图标时,触摸屏上会产生触摸点的位置信号,系统根据触摸点坐标判断其所在的区域,依据触摸的区域,系统做出相应的处理。QT程序把ISO-14443协议中的寻卡(0201),防冲突(0202),选卡(0203),密码认证(0206)都整合到1个子函数中。寻卡过程分为4个过程:
1)搜索标签-即S3C6410通过串口1发送指令给RC632操作其中的相关寄存器进行天线操作。无论是否有卡在天线感应区域范围之内,RC632都会S3C6410回传相关数据,S3C6410收到数据后,进行判断是否有电子标签存在。
2)防冲突-如果在天线感应区域范围之内有一张以上的电子标签,那么读卡器就需要进行选择。RC632在防冲突后,将给微处理器传回4个字节的电子标签卡号。
3)选择标签-如果要对相应卡号的电子标签进行操作,则微处理器就会发送命令给RC632,使其选中这张电子标签,以便进行下一步的读写操作。
4)密码认证-只有拥有正确密码的读卡器才能读写相应的电子标签。
选择扇区后,如进行读卡操作,则直接点击读卡图标,如进行写卡操作的话,则还需用输入数据。如图3所示。
图3 QT应用程序流程