射频身份识别(RFID,Radio Frequency Identification),是一种非接触式的自动识别技术,它主要由读写器和标签组成,具有读写距离远、使用寿命高、读写方便、快捷等优点。随着RFID技术的深入研究,RFID系列电子产品逐渐应用到千家万户,UHF是超高频段,此频段读写器读写距离远、读写速度快,已应用在供应链管理、航空管理和后勤管理等行业。
本文介绍一种UHF频段的RFID读写器设计,单片机采用飞利浦的LPC2103,设计简单,基于ISO/IEC 18000-6C协议,可以做到多标签环境下成功识别标签并与其进行数据交互。本文对协议做了大体介绍,阐述了整个系统设计的硬件架构,重点介绍了软件设计中的数据基带处理部分,对防碰撞部分、脉冲间隔编码(PIE编码)和双向间隔解码(FMO解码)做了详细介绍。
1 ISO/IEC 18000-6C协议
1.1 ISO/IEC 18000-6C协议简介
ISO/IEC 18000是基于物品管理的射频识别(RFID)的国际标准,按工作频率的不同分为7部分,第6部分频率为860~930 MHz,即UHF频段。ISO/IEC 18000-6系列标准包括了ISO/IEC 18000-6A,ISO/IEC 18000-6B和ISC/IEC 18000-6C三种类型,6B主要应用于交通领域,6C主要应用于物流、生产管理和供应链管理领域。由于生产销售的数量远远超过B类,C类有逐步替代B类的趋势,成为目前RFID研究的热点。
ISO/IEC18000-6C协议规定了读写器与标签的物理和逻辑要求,采用读写器先发言的形式。表1为此规定的读写器和标签通信部分参数。
读写器与标签通信过程中滨写器的状态分为Select、Inventory和Access 3个状态,而标签状态则分为Ready、Arbitrate、Reply等7个状态。
1.2 防碰撞算法
ISO/IEC 18000-6C协议采用随机槽时隙防碰撞算法,标签用槽计数器值决定与读写器通信与否,读写器用QueryRep来设置标签槽时隙计数器的值,用QueryAdjust设置Q值大小,从而决定标签槽时隙计数器的范围,图1为选择Q值的算法。
参数Q、Qfp和C均为正整数,信息帧长度为F=2^Q-1,Q是动态变化的,初值取round(Qfp)。一个时隙后,若该时隙是冲突时隙,则将Qfp加上参数C;若是空闲时隙,则将Qfp减去参数C;若是成功时隙,则Qfp保持不变。阅读器根据新的Q=round(Qfp)来决定是继续发送下一个时隙还是重新开启一个新的帧。
2 读写器硬件设计
读写器射频前端设计中发射通路采用射频芯片,接收通路采用I、Q相干解调,利用两级放大器和比较器。
依据协议,拟定了此设计中读写器与标签通信的主要参数。
为保证能够达到预期通信参数,设计选用飞利浦的LPC2103,此芯片价格便宜,带串口,资源非常丰富,具有8 KRAM,32 K Flash,32 bit和16 bit的定时器,30个可用I/O口,时钟频率最高可达70 MHz。
射频发送芯片选用SI4031,此芯片是一款可编程的锁相环芯片,低功耗,支持FSK、GFSK和OOK调制,数据率为1~128 Kb/s,可以通过数字编程控制其输出频率,在240~930 MHz的频率范围内的跳频操作。接收回路采用相关解调,并用分离元件搭建解调电路,I、Q两路返回信息依次经过惰性电路、滤波电路,再经过两级具有恒流源补偿的差分放大电路,最后经过比较器,完成解调。
3 读写器软件设计
3.1 数字基带处理模块
数字基带处理模块是整个软件设计的核心,它包括编解码、数据分析、防碰撞等部分,数字基带处理部分基本框图。
3.2 读写器防碰撞流程
数字基带处理部分中,防碰撞部分是重中之重,也是整个读写器设计的关键部分。此设计中采用随机槽时隙仲裁防碰撞算法,解决了读写器在多标签环境下无法识别标签的问题,读写器防碰撞大体流程。
3.3 读写器PIE编码设计
PIE(Pulse interval encoding)编码,即脉冲间隔编码,通过定义脉冲下降沿之间的不同时间宽度来表示数据。在标准中定义一个名称为“Tari”的时间间隔,也成为基准时间间隔,该时间段为相邻两个脉冲下降沿的时间宽度,持续时间为25μs。此设计中数据0和1的PIE编码与“Tari”时间按段的关系如表3所示。设计中使用定时器进行较精确的PIE编码。
PIE编码过程:首先设置编码逻辑,即定时器中的值大于等于T时输出为1,小于T时为输出0,然后等待编码信号来临。在编码信号来临后,从FIFO中取数据,如果为0,则设置定时器值为2T,时钟每来一次做自减运算;数据为1时则设置定时器中的值为4T,时钟每来一次做自减运算。
3.4 读写器解码设计
FMO(Bi-Phase Space)解码,即双相间隔解码,工作原理是在一个位窗内采用电平变化来表示逻辑。如果电平只从位窗的起始处翻转,则表示逻辑“1”,如果电平除了在位窗的起始处翻转,还在位窗中间翻转则表示逻辑“0”,如图7所示。一个位窗的持续时间是25μs。
FMO解码大体过程:首先读写器同时对I和Q两路信号进行采样,利用状态机检测返回帧头的正确性,读写器根据帧头的正确性来决定对I或Q路信号进行解码。针对FMO编码的特点可知,FMO每个数据单元的起始处发生翻转,由此可以根据起始处的上升沿或下降沿以及位窗中的采样点来判断出此位窗所表示的数据。设定一个位窗时间长度为T,一种情况是位窗起始处为下降沿,在该位窗3/4T处采样,采样为1则位窗表示数据“0”,采样为0则位窗表示数据“1”;另一种情况是位窗起始处为上升沿,在该位窗3/4T处采样,采样为1则位窗表示数据“1”,采样为0则位窗表示数据“0”。
4 结束语
本文中设计主芯片采用LPC2103与Si4031,硬件电路简单易于实现;基于ISO/IEC 18000-6C,利用防碰撞算法设计实现了UHF频段读写器在多标签环境下顺利与标签进行通信,增强了读写器的读写性能;最后通过简单分析,介绍了PIE编码和FMO解码的过程。