基于S3C6410的航空用RFID读卡器设计方案
ID的典型协议有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应用程序流程。
射频驱动程序在收到应用程序发来的报文后,除去报头与校验位,通过case语句判断命令代码,然后跳转到相应的子程序,子函数通过驱动程序对RC632的寄存器进行设置,实现射频操作。读取RC632数据时,MOSI线的第一个字节设置模式与地址:具体来说,第0位设置为1,第1位到第6位为地址,第7位设置为0,MOSI线的其他字节均按此设置。MISO线的第一个字节保留,从第二个字节开始为从RC632返回的数据。对RC632写入数据时,MOSI线的第一字节代表地址,从第二个字节开始为写入RC632的数据,此时MISO线没有启用。
驱动RC632时,首先设置信道校验寄存器,把第0,2比特置1(启用奇偶校验与CRC校验),然后把控制寄存器第3比特清零(不启用数据加密),接着把0x07写入比特结构控制器,最后一步是设置发射控制寄存器为0x03(在管脚TX2发送未经调制的13.56MHz连续载波)。设置完寄存器状态后,RC632便可与电子铅封进行通信。通信过程中的寄存器操作包含以下几个步骤:
1)置中断使能与中断请求2个寄存器为0x07,设置命令寄存器,取消当前命令;2)清除FIFO BUF读写指针(即FIFO[6:0]清零),设置中断使能寄存器,提示标志位已经设置;3)依次把数据写入到FIFO BUF,把数据从天线发送出去;4)设置命令寄存器,激活要执行的命令,读取错误标志寄存器,判断是否出错;5)等待规定的时间,然后读FIFO BUF,把天线接收的数据读取到RC632中;6)置中断时能与中断请求2个寄存器为0x07,设置控制寄存器,停止定时器,设置命令寄存器,取消当前命令。
3 现场实测和上位机SQL数据库通信实例
在现场测试过程中,分别对电子铅封的扇区4,扇区16,扇区33各进行了20次操作,其中只有对扇区16的一个写过程中出现了数据丢失情况,这显示出了稳定的操作性能。表2是读卡器对货物的电子铅封进行数据写入与读出的实例:先写入内容11220003,然后再把写入的内容读出,其操作的扇区为04号,设置密码为FFFFFFFFFF.
读出的数据传输到上位机SQL 数据库后的界面如图4所示。
表2 现场实测电子铅封读写数据。
图4 数据传输到数据库的界面
4 结 论
提出了基于S3C6410微处理器的高主频射频识别读卡器,实现了读卡、写卡与上传数据到数据库的功能。实验表明该读卡器具有良好的稳定性与实用性,适合于民用航空领域的应用。该读卡器系统对于民航物流的发展提高具有一定的参考价值和应用前景。
参考文献:
[1].GPRSdatasheethttp://www.dzsc.com/datasheet/GPRS_1594650.html.
[2].24C64 datasheethttp://www.dzsc.com/datasheet/24C64+_32293.html.
[3].SIM300datasheethttp://www.dzsc.com/datasheet/SIM300_1135859.html.
[4].CS-1datasheethttp://www.dzsc.com/datasheet/CS-1_2525798.html.
[5].ISO15693datasheethttp://www.dzsc.com/datasheet/ISO15693.html.
[6].EMCdatasheethttp://www.dzsc.com/datasheet/EMC_2342312.html.
[7].PCBdatasheethttp://www.dzsc.com/datasheet/PCB_1201640.html.
- 基于ARM11的家用智能垃圾桶的设计与实现(11-12)
- S3C6410启动模式介绍(11-28)
- S3C2440和S3C6410性能比较(11-28)
- S3C6410学习——MemoryMap(11-28)
- 搭建S3C6410嵌入式linux平台(11-28)
- ARM11(s3c6410)和ARM9(2440)的区别(11-26)