两种UHF RFID标准标签数据结构差异对读写器设计的影响
扫描二维码
随时随地手机看文章
引言
由国家质量监督检验检疫总局和国家标准化管理委员会发布,于2014年5月1日实施的GB/T29768-2013《信息技术射频识别800/900MHz空中接口协议》规定了840〜845MHz和920〜925MHz频段射频识别系统空中接口的物理层和媒体访问控制层参数以及协议工作方式。该标准是由2011年颁布的国军标GJB7377.1-2011《军用射频识别空中接口第一部分:800/900MHz参数》转化而来,两者在前向前导码和反向链接频率以及启动查询和分类命令结构有些差异,但是查询机制两者完全相同,它们的数据结构的标签与符合ISO18000-6C标准1的标签在媒体访问控制层和协议工作方式上有比较大的差异。所以目前这三种标准在标签数据结构上可以分为两类,为了适应这种差异,在读写器软件设计上需要有些对应措施。
1标签数据结构差异
ISO18000-6C标签数据结构如图1所示,完整电子标签由USER、TID、EPC和RESERVED四个Bank组成,其中EPC部分包含CRC、PC和EPC数据三个部分。CRC由标签本身自动对PC和EPC两部分计算得到,在写标签时不需要特意单独写入CRC内容。
GB/T29768标签数据结构4如图2所示,完整电子标签由也是用户区、安全区、编码区和标签信息区四个空间组成,其中编码区由编码长度和编码头组成。
两种标签构成相似,但是在密集标签分群盘点方面,ISO18000-6C标签的数据结构相对更容易在存储空间有限的基于微控制器读写器设计中实现。
2微控制器读写器解码的可行性分析
在读写器设计中,通常采用微控制器实现对电子标签的解码识别,当使用比较快的反向链接频率时,标签的应答信号脉冲间隔只有几微秒甚至更短,受微控制器处理速度限制,如果微控制器带有时钟定时器等中断,处理这样快速脉冲可能会因为中断占用识别处理的时间从而丢失脉冲信号导致解码失败,因此不使用定时器中断可以减少高反向链接频率时的解码失败可能性。在盘点标签的解码周期中,无论ISO18000-6C还是GB/T29768都规范了标签命令间隔,在ISO18000-6C和GB/T29768中都定义了相同的时间参数T2数值范围3Tpri~20Tpri。超过规范时间,标签会反转内部标志,在ISO18000-6C中,因为反向链接频率为40~640kHz,相应T2数值范围最大允许值为500~32.5μs,在GB/T29768标准中反向链接频率为64~640kHz,相应T2数值范围最大允许值为325~32.5μs,所以当设计高速的反向链接频率读写器时,使用微控制器解码标签的过程中,没法将刚刚解码的标签传给上位机以便腾出空间,只能先缓存在微控制器的数据存储空间中。由于微控制器系统存储空间容量有限,这限制了基于微控制器的读写器每轮最多识别标签的容量。如果期望使用带有外部扩展SDRAM的嵌入式控制系统,因为系统都带有节拍定时器,存在中断处理开销,这在识别高反向链接频率标签是不可接受的,即使使用双微控制器,其中一个控制器专用于标签识别,也会受指令执行速度影响,不能设计出高反向链接速度的读写器。
3标签分群解码的实现比较
读写器还有缓存标签数据能力,以便转给上位机控制器,受微控制器存储容量的限制,设计中可以考虑把标签分群分批次识别来解决微控制器存储容量的瓶颈。在分群方面,ISO18000-6C标签数据结构相对GB/T29768的标签数据结构有些优势。
ISO18000-6C标签数据结构(图1),包含的CRC部分所占地址是固定在00h~0Fh这16个位空间处,分群所用SELECT命令构成参见图3所示。
对于随机的或是编号成序列的一群标签,利用标签的CRC存放中的几个位作为分群SELECT命令的掩码Mask,结合指示位置的Pointer和指示匹配长度的Length,如果用CRC的二进制高三位,Pointre=00h,Length=03h,Mask依次可配置成000b〜111b,可以把标签分成8个子群来进行盘点,作为对比评估,如果用标签EPC部分做掩码来分群,假如选标签大致成序列,而且选中的是序列的二进制最低三位,那可以最均匀地分配出8个子群,但是如果在另外一个识别场合,标签群的序列号定义是新的格式,那就不幸可能标签全集中到一个群中,但是利用CRC部分的数据却可以相对均匀地把成序列的标签群拆分。这方面的比较说明了利用EPC部分位来分群的局限性,而利用CRC存放部分的数据位来分群可以在不确认标签数据格式前提下,相对均匀的把标签分成小群。
GB/T29768标签数据结构(图2)缺少CRC部分,故编码头部分在GB/T297683中没有描述,通过参考GJB7377-2011和GJB7382-20115等类似标准,得知其不具有序列性质,由于缺少固定位置相对随机的的数据结构,GB/T29768标签分群能力大大弱于ISO18000-6C标签,不利于存储容量有限的微控制器的读写器盘点大群标签。
4基于FPGA实现的读写器解决方案
前面分析了基于微控制器的读写器在实现高速盘点大群标签特别是盘点GB/T29768标准标签的困境,如果采用并行操作的FPGA代替指令串行执行的微控制器,利用FPGA设计多个并行工作的状态机,通过先进先出寄存器就可以在新命令发出过程中把前面命令获得的标签返回数据通过接口转移到外部嵌入式控制器,不用进行分群盘点方式就可以实现大容量的记录处理。
基于FPGA代替微控制器的读写器结构框图如图4所示,其中FPGA中的控制状态机是整个系统的核心,它通过接口控制器、命令状态机、解码状态机、频率控制器、FIFO控制器等部分实现读卡功能。
图4基于FPGA代替微控制器的读写器结构框图
接口控制器包含同步串行接口SPI从控制器,可以使FPGA通过SPI接口与外部嵌入式微控制器通讯,接受嵌入式控制器命令并返回得到的标签数据,是对外交互通道。
命令状态机根据控制状态机处理的接口命令和解码状态机解调的信息,把新的命令序列处理成串行数据送给外部数字模拟转换器,进而输出IQ两路模拟信号供给调制器。
解码器把来自外部模拟数字转换器的数据,根据解码规则处理出标签信息,转给控制状态机去控制命令状态机,并把需要输出的数据放入FIFO存储器中缓存,等待外部嵌入式控制器取走。
频率控制器根据控制状态机的命令,输出相应命令串驱动外部频率合成器产生所需要的射频载波,再给后级调制解调输出。
FPGA可以并行处理数据,在控制状态机让命令状态机发送命令或是解码状态机在处理返回信息同时还可以处理接口控制器的事务,把前面缓冲在FIFO存储器的数据通过接口传给外部嵌入式控制器,外部的嵌入式控制器外挂大容量的SDRAM,其与FPGA之间的SPI通讯接口接口传送的速率要高于标签响应速率,所以只要外部嵌入式控制器与FPGA配合好,突发性地把FIFO存储器中的缓冲数据取走,就能实现基于微控制器的读写器无法实现的高反向链接频率下的巨大读卡容量。
在基于FPGA的读写器中,设计为最高640kHz的反向链接频率时,因为操作的并行性,不同于基于微控制器的指令方式,处理前述标签标准中的&参数没有任何压力,同时解码处理方式是依靠模拟数字转换器输入,可以对数据先进行滤波再进行边沿识别,利用相对微控制器更完善的识别判断手段,提高对弱信噪比信号识别的成功率。而基于微控制器的读写器,最高处理反向链接速度是320kHz,速度很快,因为识别代码指令执行需要时间,过短的数据间隔导致前面没处理完成后面新数据就到达的状况,这时数据会丢失导致解码失败,另外一个性能限制是命令之间时间参数&问题,已经处理的数据没有充足时间传给上位机只能先放到RAM中缓存,容量受限。
5结语
在对GB/T29768与ISO18000-6C两种标签的数据结构差异对比分析基础上,分析了基于微控制器实现读写器的局限性和基于FPGA结构的读写器实现的优越性,当然,后者开发难度,器件成本、功耗和体积都会有所增加。在应用场合,可以根据需求,有针对性地采用高性能或是适当降低读取指标关注小体积低成本的方案。