符合ISO/IEC 18000-6C标准的UHF RFID读写器设计
文章出处:http://www.nexussmartsolutions.com 作者:林曦, 王敬超, 张春 人气: 发表时间:2011年10月16日
引言
RFID (radio frequency identification) 是指以识别或数据交换为目的, 利用感应、无线电波或微波进行非接触双向通信的自动识别技术, 利用这种技术可以实现对所有物理对象的追踪和管理。RFID 有着广泛的应用, 尤其可以对企业的供应链进行高效的管理 。
2006 年EPC Gen2 纳入ISO/ IEC 18000-6 标准,称为ISO/ IEC 18000-6C。在超高频(UHF) 频段,ISO/ IEC 18000-6 标准中B 类多用于交通领域, 而C类主要用于物流、生产管理和供应链管理领域。但C 类标签的速度高、价格低, 生产销售的数量远远超过B 类, 有逐步替代B 类的趋势, 成为目前RFID 研究的热点。
本文介绍了一种符合ISO/ IEC 18000-6C 标准的读卡器设计。射频前端模块采用零中频收发结构,数字基带处理模块在单片机系统上实现, 并通过UART 和USB 与计算机(主机) 进行通信。所设计的读写器完成测试后实现了产品化。
1 ISO/ IEC 18000 协议
1、1 ISO/ IEC 18000-6C 协议简介
ISO/ IEC 18000-6C 在数据传输时, 规定先传输高字节, 其前向链路的调制方式都是ASK, 采用PIE 编码, 防冲突算法使用基于概率、分槽算法;其后向链路是通过反向散射调制技术来实现传送数据, 可以选择FM0 编码或者密勒编码。为防止在读写器获取标签信息的过程中, 把敏感数据扩散出去, 6C 标准采用了相对简单的加密算法, 该算法仅对读写器传送到标签的数据信息进行加密, 标签传送到读写器的数据信息不进行加密, 其实现过程是读写器首先从标签获得一个16 bit宽随机数, 然后将要传送的16 bit宽数据与该随机数进行模2 和计算得到密文, 最后标签解密获得读写器发送的原始数据。
ISO/ IEC 18000-6C 标准具备多次写入能力, 并增加了部分存储空间用于存储用户的附加数据; 允许加入安全与访问控制、传感器网络和Ad Hoc 网络等功能支持; 具有随时更新标签内容的能力, 保证标签始终保存最新信息, 其链路频率范围可以在40~640 kHz 内调整。在本文的设计中, 考虑到模拟前端的解调能力, 采用了50 kb/ s 的传输速率,后向链路采用FM0 编码。
1、2 ISO/ IEC 18000-6C 防冲突机制
询问机采用图所示的三个基本操作管理标签群。每个操作均由一个或一个以上的命令组成。三个基本定义[3 ]如下。
读卡器/ 标签操作和标签状态
(1) 选择: 读写器选择标签群以便于盘存和访问的过程。询问机可以用一个或一个以上的选择命令在盘存之前选择特定的标签群。
(2) 盘存: 询问机识别标签的过程。询问机在四个通话的其中一个通话中传输查询命令, 开始一个盘存周期, 一个或一个以上的标签可以应答, 询问机检查某个标签应答, 请求该标签发出PC、EPC和CRC216。
(3) 访问: 询问机与各标签交易(读取或写入标签) 的过程。访问前必须要对标签进行识别, 访问由多个命令组成, 其中有些命令执行R ≥T 链的一次活页加密。
为解决防冲突算法问题, 标签内应具有一个16 位的随机数发生器。查询命令含有槽计数器参数Q。收到查询命令后, 参与标签应在(0 , 2Q - 1)范围内挑选一个随机数值, 并应将该数值载入其计数器, 挑选零数值的标签应转换成应答状态, 并立即应答; 挑选非零数值的标签应转换成仲裁状态,并等待发出查询调整或查询命令。
若多个标签应答但读卡机通过检测和解决波形一级的冲突, 可以解决其中一个标签发来的16 bit密钥, 未解决的标签收到错误的16 bit 密钥, 并返回仲裁状态, 不反向散射其PC、EPC 和CRC216。发出查询命令启动一个盘存周期后, 询问机一般要发出一个或一个以上的查询调整或重复查询命令。查询调整命令重复以前的查询命令, 可以令Q 增值或减值, 但不将新的标签引入该盘存周期内。重复查询以前的查询命令, 参数不变, 也不将新的标签引入该盘存周期。处于仲裁或应答状态的收到查询调整命令的标签首先调整Q (增值、减值或保持不变) , 然后在(0 , 2Q - 1) 挑选一个随机数值, 将该数值载到槽计数器内。挑选零数值的标签应转换到应答状态并立即应答; 挑选非零数值的标签应转换到仲裁状态, 并等待下次命令。
2 读写器的硬件设计
采用直接射频调制的发射机和零中频结构的接收机实现读写器的射频前端, 发送和接收通路隔离采用多天线技术。频率综合器产生所需要的射频信号, 经过功分器得到两路载波信号, 分别用于发送和接收通路。发送通路采用OOK调制, 基带信号通过开关通断控制载波是否经过功放, 并由天线发送; 接收通路中接收信号先经过功、放大等操作, 然后分别送到混频器和两路正交的载波信号进行混频, 对混频之后的信号经过滤波、放大、电平比较等操作, 恢复出数字基带信号。相干解调采用正交I 和Q 两路接收信号, 由于两路接收信号相差90°相位, 无论接收信号和混频信号相位差是多少, 总有一路能解调出有用信号, 避免了盲点的出现。
读写器的数字基带处理模块主要包括一个单片机、两个转换芯片、外部接口以及蜂鸣器。单片机为PHILIPS 公司的P89LPC932A1 , 采用了高性能处理器结构, 指令执行只需2~4 个时钟周期, 6 倍于标准80C51 , 具有512B 片内附RAM, 8KB FLASH程序存储器以及增强型UART[4 ] 。外部时钟频率为12 MHz。该数字模块主要完成协议指令处理、防冲突算法以及通信数据的编解码和校验。
3 读写器的软件设计
3、1 数字基带的整体设计
读写器数字基带整体结构包括指令译码模块、串口通信模块、数据编解码模块以及返回数据处理模块。
读写器是在计算机(主机) 监控之下进行工作, 两者之间形成主从通信模式。读写器接收到主机发来的指令, 由译码模块确定读写器的具体操作。操作分为两大类, 一类是对读写器操作。包括读版本信息、设置工作频率模式(固定频率和跳变频率) 和IAP 软件升级等, 处理完成后将信息通过UART 返回给主机; 另一类是对标签操作, 其中包括防冲突读卡号、读标签和写标签等, 该操作指令通过PIE 编码器发送后, 等待回波。返回数据通过FM0 解码器后进入回波处理模块, 数据正确则通过UART 返回给主机。
3、2 防冲突算法的实现
根据ISO/ IEC 18000-6C 防冲突算法, 针对读写器特定的应用要求, 完成防冲突读卡号。首先读写器发送选择指令, 场区内符合条件的标签返回就绪状态; 接着发送查询指令开启新盘存周期, 符合条件的标签进入仲裁状态; 经过多次查询系列指令后, 计数器槽变为0 的标签进入应答状态并返回16 bit密钥, 读写器解码正确后, 用其特有16 bit密钥对其进行读写操作, 其他标签返回就绪状态, 不再进行防冲突过程, 继续读卡; 读卡完成后, 已读取标签退出盘存周期, 对剩下的标签进行防冲突读卡; 如果连续5 次没有回波相应, 则认为场区无卡, 结束防冲突读卡。
3、3 发送链路PIE 编码器设计
如图所示, 发送R ≥T 链路应采用PIE 编码。Tari 为询问机对标签发信的基准时间间隔, 是数据0 的持续时间。
PIE 编码波形图
根据其特点, 编码过程如下: 每次从读取缓冲中取8 bit数据, 循环左移, 根据移出位判断0 或1 并利用分频模块进行编码操作, 左移8 次后, 取下一个数据, 重复上述操作, 直到发送完所有数据, 编码结束。
3、4 发送链路命令流程
以对单标签进行读写操作为例, 读写器首先发送选择命令(标签进入就绪状态) , 然后发送查询系列命令(当槽随机数为0 时, 标签进入应答状态, 返回16 bit随机密钥) ; 在解码16 bit密钥波形后, 读写器发送ACK 命令(标签判定16 bit密钥正确, 标签进入确认状态, 返回PC 和UII) ; 在确认接收到PC 和UII 数据后, 读写器发送Req2RN 命令(如果标签判定16 bit密钥正确, 进入保护状态, 返回新密钥) ; 读写器解码新的16 bit密钥之后, 发送读/ 写命令(标签判定16 bit密钥正确, 标签保持状态, 返回读取数据或者执行对指定数据区写入数据) ; 读写器对接收到的回波信号进行解码, CRC216 校验正确后对主机返回对应数据(其中查询系列命令采用前同步码为帧头, 其他用帧同步码为帧头)
3、5 CRC16 校验设计
根据ISO/ IEC 18000-6C 标准的规定, 要编码CRC216 , 首先要用FFFFh 预先载入整个CRC 寄存器(即C [15∶0 ]) , 然后将编为输入标签数据的数据位记录下来, MSB 优先。将所有数据位记录下来后, C [15∶0 ]取反得到CRC216 值。要解码CRC216 , 首先要用FFFFh 预先载入整个CRC 寄存器(C [15∶0 ]) , 然后将收到的数据和CRC25 {数据, CRC216} 位记入数据位, 高字节优先。若C [15∶0 ] = 1D0Fh , 则CRC216 解码成功。软件设计中, 即将16 bitCRC 寄存器根据输入数据长度按位左移, 同时判断输入数据位与CRC寄存器最高位是否相异, 如果相异则将寄存器与0x1021 按位相异或。
3、6 FM0 解码器设计
FM0 编码是在1 个位窗内采用电平变化来表示逻辑, 如果电平只在位窗的起始处翻转则表示数据“1”; 如果电平除了在位窗的起始处翻转, 还在位窗的中间翻转则表示为数据“0”。解码过程: 首先读写器同时对I 和Q 两路信号进行采样, 利用状态机检测返回帧头的正确性,读写器根据帧头的正确性来决定对I 或Q 路信号进行解码。针对FM0 编码的特点可知, FM0 每个数据单元的起始处发生翻转, 由此可以根据起始处的上升沿或下降沿以及位窗中的采样点来判断出此位窗所表示的数据。设定一个位窗时间长度为T ,一种情况是位窗起始处为下降沿, 在该位窗3/ 4 T处采样, 采样为1 则位窗表示数据“0”, 采样为0则位窗表示数据“1”; 另一种情况是位窗起始处为上升沿, 在该位窗3/ 4 T 处采样, 采样为1 则位窗表示数据“1”, 采样为0 则位窗表示数据“0”。
4 结语
本文设计的读写器实现了对UHF 频段下的ISO/ IEC 18000-6C 标签的防冲突读卡号以及读写标签数据的功能。读写器可以在800~960 MHz 频率范围内跳频工作, 同时可以使用IAP 功能实现应用中在线升级, 读写距离为8~10 m , 可以防冲突识别200 个卡以上, 最终实现了产品化。之后考虑到将来加入数字信号处理的需要, 在DSP 系统上做了对应移植, 为研究RFID 读写器的SOC 设计提供了一定的参考价值。
参考文献:
[1 ] 游战清,李苏剑1 无线射频识别技术(RFID) 理论及应用[M]1 北京: 电子工业出版社, 2004
[2 ] FINKENZELLER K1 射频识别(RFID) 技术(第2 版) [M]1陈大才编译1 北京:电子工业出版社,2001
[3 ] ISO1800026C220042FDAM 1 :2006 (E) [ S]
[4 ] User manual of P89LPC932A1 microcontroller [ K]
作者简介:
林曦(1984 —) ,男,研究生,研究方向为超高频RFID 读写器的关键技术研究;
王敬超(1982 —) ,男,研究生,从事RFID 读写器的系统设计及其小型化研究;
张春(1972 —) ,男, 工学博士,副教授,研究方向包括数模混合信号集成电路设计、嵌入式微处理器设计、数字信号处理系统、射频识别等。