一种ISO 18000-6C协议中FM0回波的解码方法及ARM实现

2011-03-26 07:32黄丽亚王鹏飞
电子设计工程 2011年14期
关键词:码元基带阅读器

黄丽亚,王鹏飞

(南京邮电大学电子科学与工程学院,江苏南京210003)

RFID(radio frequency identification)技术是指以识别和数据交换为目的,利用感应、无线电波或微波进行非接触双向通信的自动识别技术,利用这种技术可以实现对所有物理对象的追踪和管理[1]。而一个最基本的RFID系统包含标签和阅读器两部分。其中标签可以存储数据,包含了相关物理对象的某些信息;阅读器利用射频技术与标签通信,向标签发送指令、写入或读取标签数据,也可将数据向后台传输。其中,阅读器发送指令后,标签回波采用FM0编码方式。笔者提出了一种新的FM0解码方法,将回波数据采样与判决分开进行,防止了处理器进行中断所可能带来的解码错误,提高了效率。

1 FM0编码原理

FM0(即Bi-Phase Space)编码的全称为双相间隔码编码。它在一个码元宽度内用不同的电平变化方式来表示不同的数据。如果电平码元的起始处翻转,则表示数据“1”;如果电平除了在码元的起始处翻转,还在码元中间翻转则表示数据“0”。即在FM0编码中,电平翻转发生在所有的符号位边界,电平翻转同时发生在被发送的数据0的正中间,生成的FM0序列如图1所示[2]。

图1 FM0编码数据图Fig.1 Schematic diagram of FM0 coding

ISO 18000-6C协议中规定,标签到读写器的通信中参数可按需求设定。笔者用到的参数设定为:链路频率LF=160 kHz,TRext=0,M=1。这样,选定的码元周期为6.25 μs,不加入12个连续0引导信号的FM0回波信号。

回波信号的导引头如图2所示[2],其中v码是一个“坏”码元,它本应在码元起始位置发生电平翻转。但这个v码电平不翻转从而表示这是导引头,导引头后是传输的信息数据。

2 阅读器构成及工作原理

图2 FM0导引头Fig.2 FM0 preamble code

本文用到的阅读器由天线、射频调制解调模块、基带信号处理模块3部分构成。其中天线及射频解调模块工作原理框图如图3所示[3]。射频接收机将标签反馈的回波射频信号直接下变频到基带,IQ两路输出数据接基带信号处理模块输入引脚。

图3 零中频解调框图Fig.3 Block diagram of zero-IF demodulator

基带信号处理模块核心芯片采用三星公司的S3C2440。它是以ARM9为核心的芯片组,工作频率可达到200 MHz以上,内部时钟工作在100 MHz,具有较强的数据处理能力[4]。利用S3C2440的GPIO引脚作为命令发送、FM0回波数据接收引脚。另外利用S3C2440的外部边沿中断引脚作为接收数据采样的触发引脚。最终构成的整个RFID系统框图如图4所示[3]。

图4 RFID系统框图Fig.4 Block diagram of RFID system

3 标签回波的FM0解码方法及程序设计

3.1 传统解码方法存在的问题

若码元宽度T=6.25 μs,即数据1的持续时间为6.25 μs,数据0在第3.125 μs处出现电平翻转。根据FM0码的编码特性,目前有两种比较常用的解码方法。

方法一是以电平翻转的时刻为起点,首先延时T/4,采样I/O口电平,保存该电平值,以用作后续判断电平是否跳变,然后延时T/2后再次采样I/O电平,并与前一次的采样值进行比较,若电平翻转则接收值为“0”,否则接收值为“1”。接收数据移位,通过检测跳变获知一位数据接收完成,数据移位8次接收一字节数据,重复上述操作直至接收完所有数据[5]。

这种方法的缺点很明显。因为阅读器频段频率很高,当在接收过程中出现频率偏移的情况时,会造成位宽时间T较大的变化,而程序仍以固定的时间间隔3/4T去解码,所以每次都会发生一定的偏移。根据协议,阅读器将接收到标签传送过来的1个128字节的数据,这样在解码过程中,将出现累积偏移过多导致漏读或多读情况,从而产生误判[6]。

方法二是利用芯片内部时钟计数器,电平翻转的瞬间边沿触发外部中断,定时器计数寄存器开始计数。电平再次翻转引发下一次中断,此时通过计算定时器计数寄存器的值就可得到两次翻转之间的电平持续时间。从而判断出该信号是数据1还是数据0[6]。

但是以上两种方法还都存在一个问题:FM0回波信号的传输速率是160 kHz,即电平翻转时间间隔是μs级的,而以上两种方法均是采样(定时)的同时判决信号数据,即需要在几μs的时间内先后完成中断→采样(定时)→判决3个任务,如果处理器出现延迟过高,就会出现再次中断而前一次数据还未判决结束的情况。因此,以上两种方法的解码都是存在风险的。

3.2 新的FM0解码方法

笔者提出一种新的方法:将采样和判决分离开来,避免出现由以上原因出现的误码。新方法的采样流程图如图5所示。一旦标签回波反馈数据引起中断,即开始采样,直至采样到标签反馈数据的最后一位。将采样后数据存入数组data[n],然后对data[n]中的数据进行判决,得到最终的反馈数据。将判决与采样分离,减少误码。

图5 数据采样流程图Fig.5 Flow chart of data sampling

3.3 数据判决程序设计

3.3.1 采 样间隔时间的选取

由于数据0在数据中央电平翻转,因此要求采样间隔小于T/2,否则会出现数据0判决为数据1的情况。为方便推导,在码元周期是采样间隔整数倍的数值,即T/3、T/4、T/5…一系列值中选取采样间隔。在实验中发现,由于噪声干扰或者信号不稳定带来的FM0回波失真,会让T/3、T/4这两个值得到的判决结果出现误码,因此本文选择采样间隔为T/5。

3.3.2 解 码算法分析及编程思路

首先分析采样数据。由FM0的编码规则可知,正常的数据1的电平保持时间是数据0保持时间的两倍(数据0的电平翻转在正中央),又由于采样的时间间隔是T/5,可以推得采样后一个数据1是由4个或者5个连0或者连1表示的,即采样后将会出现以下的4种情况,它们可以表示数据1:1)0000;2)1111;3)00000;4)11111。其中后两种是极限情况,即数据1的第一次采样时间恰好是电平翻转的瞬间,因此5个连1或0的情况一般是在回波信号失真,即回波中数据1的脉冲宽度由于其他干扰被拉长了的情况下才会出现,其概率非常低。同理可得以下6种情况可表示数据0:1)0011;2)00111;3)00011;4)1100;5)11000;6)11100。其中2)、3)、5)、6)4种情况也是在回波信号失真的极限情况下才会发生,概率同样很低。又由于ISO 18000-6C协议中规定,FM0回波的引导头中有一个不按编码规律进行电平翻转的“v”码,如图2所示。此v码的长度为1.5T,易知v码采样后,只会有以下两种情况:1)0000000;2)1111111。

由以上对数据1、0和v的分析可以得到以下结论:按本文所述方法采样后,对采样数据进行判决时,连续电平采样数据保持不变的个数小于等于3,则此数据应判决为0;大于等于6的应判决为v;其余为1。经以上分析可以得到数据判决程序Judge(data[],data_length)。例如采样后的数据1111001100001100000001111经过Judge(data[],data_length)函数后生成的判决数据为1010v1,即FM0引导头。

此算法应注意的是在判决数据0时,由于数据0的采样数据是由两段小于等于3的连1或0构成的,因此需要在编程时忽略第二段连1或0,否则判决后会出现一个不应存在的0。同样需要注意的是在v码之前的那个数据0的判决。

4 实验及结果分析

针对以上FM0解码方法,本文进行了实验验证。RFID读卡器基带编解码模块的硬件环境是由两块三星公司的S3C2440芯片开发板所构成的,如图6所示。其中的ARM1(位于图6上部)作为RFID读写器的基带数据处理模块。将ARM2用来模拟标签反馈信号的信号源,模拟标签的FM0回波反馈信号,将其输出的反馈信号分别接ARM1的外部边沿中断引脚及数据输入引脚,循环发送FM0信号的引导头,示波器截得模拟的标签反馈信号波形如图7所示。

图6 硬件环境Fig.6 Hardware environment

图7 循环发送的FM0信号的导引头Fig.7 Preamble code of circulating sent signal FM0

ARM1对接收信号进行数据处理,将得到的解码后的结果通过串口发送到PC机上,如图8所示。实验结果显示,本文的FM0解码算法能正确的将FM0信号解码。

图8 数据处理信息Fig.8 Data processing information

5 结束语

在RFID系统的设计中,标签回波信号的正确解码是至关重要的。这要求读写器基带模块采样和判决时误码率要尽可能低。利用本文提出的解码算法进行循环发送FM0导引头而后对其解码的实验,结果显示误码率低于2‰。此算法的核心思路是将数据采样和数据判决分离开来,并在判决时利用不同数据采样值保持不变的个数相互不同的特点而进行正确的解码,从而避免了由于采样和判决相互影响所带来的误码,而且判决方法快速简单,因此读卡效率也得以提高。

[1]游战清,李苏剑.无线射频识别技术(RFID)理论与应用[M].北京:电子工业出版社,2004.

[2]ISO/IEC JTC//SC31N.ISO/IEC 1800-6 C.Information technology-Radio frequency identification foritem management part 6 Parameters for air interface cormmunications at 860 MHz 960 MHz[S].2006.

[3]王圣礼.超高频射频识别(RFID)阅读器的设计与实现[D].杭州:浙江大学,2008.

[4]杨水清,张剑,施云飞.ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2008.

[5]山宝银,陈俊杰.ETC电子标签的FM0编解码设计与实现[J].微计算机信息,2010,26(35):151-152,94.

SHAN Bao-yin,CHEN Jun-jie.Design and implementation of FM0 encode and decode applied in ETC tag[J].Microcompute Information,2010,26(35):151-152,94.

[6]梁飞,张红雨,陈友平.UHF读写器设计中的FM0解码技术[J].电子设计工程,2010,18(11):172-174.

LIANG Fei,ZHANG Hong-yu,CHEN You-ping.Decoding FM0 technology in UHF interrogator design[J].Electronic Design Engineering,2010,18(11):172-174.

猜你喜欢
码元基带阅读器
基于反向权重的阅读器防碰撞算法
Ag元素对Ni-7at.%W合金基带织构形成的影响
LFM-BPSK复合调制参数快速估计及码元恢复
The Magna Carta
Winner Takes All
苹果10亿美元为5G买“芯”
基于极大似然准则的短猝发信号盲解调
基于FPGA的IRIG-B码解码器设计
一种RFID网络系统中消除冗余阅读器的高效算法
基于FPGA的WSN数字基带成形滤波器设计