基于EPC C1G2协议的RFID系统数据解码

2017-10-27 17:08:30 重庆诺塔斯智能科技有限公司 541

基于EPC C1G2协议的RFID系统数据解码

1 前向链路数据解码 

EPC C1G2 协议下的 UHF RFID 系统读写器到电子标签90 的通信(即前向链路通信)编码方式为脉冲间隔编码(PIE, Pulse-interval encoding)。该码的编码方式是通过定义下降沿之间的不同宽度来表示不同的数据信号。具体编码规则可查阅 EPC C1G2 协议,下面将讨论 PIE 码的解码方法。

1.1  PIE码的解码

EPC C1G2 协议之所以采用 PIE 码, 是因为 PIE 码解码具有唯一性,它通过脉冲间隔(Pulse Interval)长度的不同来区分逻辑“0”和“1”,并且在任意一个字符数据的中间产生一次相位翻转。极性翻转特性使得编码数据可以无二义性地进行解码,脉冲宽度大于参考脉冲宽度判为逻辑“1”;小于参考脉冲宽度判为逻辑“0”。参考脉冲宽度为逻辑“0”和“1” 脉冲宽度之和的一半[1]。所以在解码的时候,需要不断的获得 PIE 码数据中两个下降沿(即低电平“0”)之间的间隔来进行判断,如果间隔为系统时钟的一倍(即系统时钟的二倍频信号的两倍),则接收数据为“0”;如果间隔为系统时钟的二倍(即系统时钟的二倍频信号的四倍),则接收数据为 “1”[2]。因此,利用数字逻辑的基本原理实现 PIE 码解码还比较困难的。但可以利用两个下降沿之间的间隔和系统的时钟之间的关系采用 VHDL 程序实现 PIE 码的解码,再下载到器件调试运行。该方法已经被广泛的应用,具体可参考相关文献。

 

2 反向链路数据解码

该系统电子标签RFID读写器的通信(即反向链路通信) 编码方式要么采用 FM0 码(bi-phase space,其全称为双向间隔码),要么采用密勒码(Miller)以数据速率对子载波进行

调制。具体至于采用何种编码方式,这取决于读写器[3]。其中 FM0 码工作原理是在一个位窗内采用电平变化来表示逻辑。如果电平从位窗的起始处翻转,则表示逻辑“1”。如果电平除了在位窗的起始处翻转,还在位窗中间翻转则表示逻辑 “0”[4]。而 Miller 码也称延迟调制码,是一种变形双向码。其编码规则:对原始符号“1”码元起始不跃变,中心点出现跃变来表示,即用 10 或 01 表示。

2.1 FM0码的解码实现及仿真

传统的 FM0 码解码一般利用数据“0”在信号周期中心有电平翻转,而数据“1”在整个信号周期都没有电平翻转,从而进行解码。本文提出了一种新的 FM0 解码方法,基本思想是将收到的每个数据信号前半周期和后半周期分别看作一个信号,将收到的每个数据信号的前半周期合成一路信号 X,将收到的每个数据信号的后半周期合成一路信号 Y, 具体来说分别将收到的信号与时钟信号进行逻辑与运算和将收到的信号延时半个周期再与时钟信号进行逻辑与运算,得到两路信号 X 和 Y;再将 X、Y 两路信号取逻辑与得到信

C1,与此同时X (X 的逻辑非)与Y (Y 的逻辑非)也进行逻辑与运算得到信号 C2;最后将 C1 和 C2 两路信号合并就得到了 FM0 码的译码。如图 1 所示为 simulink 平台下 FM0 码分解为两路信号的实现模型,如图 2 所示为 FM0 码的整个编解码实现的仿真模型。图 3 所示为整个编解码模型的 Scope 扫描波形。从图中可知,该方案很好的实现了 FM0 的解码,不过解码后的信号与输入信号之间存在两个周期的时间延迟,但对整个解码没有大的影响

2.2 Miller码的解码实现及仿真

传统的密勒码解码是根据一个同步时钟和一个计数器计值来判断输出,通过对输入信号进行异或运算,结合编码特征,判断输出,实现比较复杂[6-7]。结合 Miller 码编码规则,运用前面提出的方法,先将每位包含多个副载波周期的 Miller 码与时钟信号进行逻辑异或运算得到基带 Miller 码,然后将每个基带 Miller 码的前半个周期和后半个周期分为两路信号,再借助基本的逻辑器件即可实现译码。这比传统的译码方式简单且高效。 如图 4 为将包含多个副载波周期的Miller码变换为基带Miller码的仿真模型。