UHF RFID" title="RFID">RFID技术将广泛应用于各个行业领域, 可靠的阅读器是UHF RFID系统的重要组成部分, 而基带处理芯片能够为阅读器设计提供基带信号处理解决方案。结合UHF RFID技术本身所固有的特点, 本文的阅读器设计采用了IQ 两路正交调制解调的零中频方案。整个阅读器由射频前端和基带处理两个部分组成, 射频前端对发送基带信号进行上变频和功率放大等处理后发射给电子标签, 然后在接收到标签的返回信号时, 对接收信号进行放大、滤波、下变频等处理后将基带信号传输给基带处理芯片。
本文介绍基于ISO / IEC 18000 6C 协议的UHF RF ID阅读器基带处理芯片接收端电路的设计, 该电路可以与基带处理发送端、中央处理器( CPU )集成, 共同构成整个基带处理芯片。
1 电路总体结构
UHF RFID阅读器" title="RFID阅读器">RFID阅读器基带处理接收端电路的总体结构如图1所示, 主要包括输入基带信号低通滤波器、解调器、解码器、数据串并转换模块、信息传递接口(MPI)模块和接收机控制模块六个功能模块。
从ADC 采样进来的两路基带正交信号i_data i和i_dataq首先经过低通滤波器FIR _ filter进行滤波, 以便后级电路对信号进行处理。
UHF RFID阅读器基带处理" title="RFID阅读器基带处理">RFID阅读器基带处理接收端电路框图
图1 UHF RFID阅读器基带处理接收端电路框图
滤波后的I和Q信号进入解调器demodu lator, 调制方式自动识别子模块mode_d iscrim inator首先识别接收信号的调制方式, 之后选择对接收信号进行ASK或者PSK 解调得到没有实现位同步的信号, 最后位同步子模块bit_synchrono izer从该信号提取出位同步时钟并判决得到同步二进制数据流。解调后数据流与提取出来的同步时钟脉冲一起输出到解码器decoder, 按照FM0或M iller编码规则对数据进行解码,同时检查编码规则并对编码规则错误进行计数。若没有出现编码规则错误, 还将在CRC 校验子模块crc_verifier中对解码后的数据进行CRC 16校验。
解码出来的信号是串行的, 而在信息传递接口模块rx_mp i中的接收缓存是并行输入的, 所以将数据存入缓存中之前由数据串并转换模块serial_to_para lle l完成串行数据转换为并行数据。该模块产生接收缓存的写数据、写地址和写使能信号, 并对接收到的数据进行计数, 计数结果放在rx_mp i中指定的寄存器中供CPU 查询。数据串并转换模块同时检测缓存是否溢出并给出缓存溢出错误标志信号,在每一帧数据结束处给出帧结束脉冲信号。
信息传递接口模块rx_mp i主要负责基带处理电路(包括接收端、发送端)和CPU 之间的数据通信。
该模块首先把接收到的数据写入接收缓存中, 并在结束时置数据准备好标志寄存器DATA _RDY 有效(在出现帧起始检测发生超时错误时也置数据准备好标志寄存器DATA _RDY 有效)以通知CPU 取走数据,同时寄存各种错误标志信号和错误计数值到相应寄存器供CPU 查询。除此, rx _mp i还负责接收来自CPU的指令信息并配置相应的控制寄存器。
接收机控制模块receiver_ctrl是接收部分的中央控制模块, 根据控制寄存器中的配置信息输出各个模块需要的控制信号, 用以配置各个功能模块的工作模式。
2 解调器设计
解调器主要包括ASK 解调、PSK解调、解调模式识别和位同步四个子模块。解调模式识别子模块根据CPU 的配置或接收信号的特征决定采用ASK 或PSK 解调方法对信号进行解调, 位同步子模块从接收数据中提取位时钟信号用来重新同步接收数据。
2. 1 ASK解调子模块
当阅读器接收来自电子标签的信号采用ASK调制时, 接收信号可以用如下表达式表示:
式中, am 为输入码元, 取0或1; g ( n - m )是幅度为1、宽度为单个码元持续时间的波形函数; 接收信号的载波频率ω‘c与接收机本地载波频率ωc 存在频率偏移, 且两者之间还有相位差△φ, 与阅读器发射天线和电子标签之间的距离有关; n0 为接收到的加性噪声。
一般的ASK解调在对S ( n )进行正交分解得同相和正交分量I 和Q 后, 求其平方和与开方。可得:
即: 对A ( n )进行抽取判决, 便可以恢复出码元信号。
本文根据UHF RFID 技术的特殊性, 采用如下方法对ASK 调制信号进行解调: 虽然I’和Q‘随着阅读器与标签之间距离的改变而变化, 变化时强时弱,但是I’和Q‘具有功率互补性, 即在I’最弱的时候Q‘最强或者相反。根据这个特点, 本文在每帧标签返回信号的帧前导序列出现时比较I’和Q‘的强度, 然后选择信号比较强的一路分量进行判决。
ASK 解调示意图
图2 ASK 解调示意图
2. 2 PSK 解调子模块
当阅读器接收来自电子标签的信号采用PSK调制时, 接收信号可以用如下表达式表示:
式中A0 为信号稳定幅度值, Φm 为调制相位值(BPSK调制时取0或π), g ( n - m )、频率偏移、相位差△φ 、n0 与对式( 1)的描述相同。
载波频偏和相差将会影响PSK 信号的正确解调, 所以在对PSK 信号进行解调时必须进行载波同步。PSK 解调的具体实现电路如图3所示, 由相位旋转、相位误差提取和二阶相位跟踪环三部分组成。
PSK解调示意图
图3 PSK解调示意图
在相位旋转过程中有四个乘法运算, 而若在用硬件实现时直接调用四个硬件乘法器, 将会消耗很大的硬件资源。所以本文在设计中只使用一个乘法器, 然后用一个计数器来控制分时复用, 从而节省资源。
为实现相位跟踪, 相位误差提取部分根据MAP算法来估计得到相位误差信号θe ( n )。θe ( n )反映了环路跟踪相位的程度, 但不能直接用于相位旋转,因为: 1.存在噪声干扰; 2.由于存在载波频率偏移,载波相位误差会随时间积累。所以需要对θe ( n)进行滤波和积分, 进而实现相位跟踪, 其实现如图3中的二阶相位跟踪环部分所示。
设计中, K 1、K 2 分别取值1 /256、1 /8。用硬件实现时, 乘K 1、K 2 的运算可以用简单的右移运算来完成, 而不必调用复杂的硬件除法器。
3 解码器设计
解码器包括FM0解码器、M iller解码器、CRC 校验器、帧起始超时检测和解码结果同步输出控制五个主要子模块。FM 0 /M iller解码后的数据data 若需要进行CRC 校验, 则进入CRC 校验器进行CRC校验并输出校验结果。由于帧结束在有的情况下不能完全确定, 而需要借助CRC 校验来确定帧的结尾, 所以在解码器r中还有一个解码结果同步输出子模块用来控制同步解码结果输出。帧起始超时检测模块是用来进行帧起始超时检测的, 当输入有效数据后超过规定时间没有检测到正确的帧起始序列, 则输出错误标志脉冲。
3. 1 FM0解码子模块
FM0解码子模块由帧起始检测、FM0 解码/编码规则检测/帧结束检测以及输出同步脉冲产生三部分组成, 如图4所示。
FM0解码子模块框图
图4 FM0解码子模块框图
帧起始检测部分中设有一个十八位的移位寄存器data_ r[ 17: 0] , 当检测到帧起始序列(即data_ r[ 11: 0] = “ 110 100 100 011”) 时, 帧起始信号o _start输出一个脉冲, 并置indecode有效, 表示开始接收到新的帧数据; FM0 解码/编码规则检测/帧结束检测部分, 在indecode有效时, 在解码同步脉冲信号o_pu lse的同步下对data _r[ 2: 0]进行分析判断, 若data_r[ 0]与data_r[ 1]相同则输出o_data= ?1 , 反之则输出o_data= “0”; 同时检测da ta_r[ 1]与data_r[ 2] , 若两个相同, 则出现了不符合FM0编码规则的情况, 输出编码规则错误标志信号o _code_err为“1”; 在o_start脉冲后对i_pu lse进行二分频得解码输出同步脉冲o _pulse, o_pu lse 用于同步解码过程和解码后数据输出。
帧结束检测采用计数检测和帧结尾序列检测结合的方法, 当data_r[ 7: 0] = “00 000 000”或接收到的数据比特数到达帧数据长度length则表示检测到了帧结尾。但是注意若采用后者的方法, 由于结尾有一个比特的模糊, 即可能会多接收一个多余的?1 。
3. 2 M iller解码子模块
密勒解码子模块包括帧前导序列检测与副载波解调部分、密勒解码部分, 如图5所示。电子标签返回阅读器的数据是突发传输的, 每一次数据传输前有帧前导序列, 所以在进行解码之前需检测到该序列。帧前导序列检测与副载波解调部分在检测帧前导序列后, 对信号进行副载波解调, 得到密勒编码基带波形。密勒解码部分根据密勒编码规则, 对密勒编码基带波形进行解码, 并检查传输数据是否违反编码规则, 从而统计数据传输质量。
M iller解码子模块框图
图5 M iller解码子模块框图
帧前导序列检测与副载波解调部分首先对接收数据码流进行相位翻转检测, 于相位翻转(码流中出现大凹槽或大凸槽)处在相位翻转标志信号phase_invert上输出一个脉冲。在帧前导序列中, 只有传输比特“1 ”时符号中间发生相位翻转, 所以在进行帧前导序列检测时若检测到phase_ invert上有一个脉冲, 便可认为码流中出现了一个“1” 。为增强抗干扰能力, 还需结合使用一个计数器cnt_ ipu l_sta对输入数据同步脉冲i_pulse 进行计数以计量相邻两个相位翻转的时间间隔, 当遇见phase _ invert脉冲或cnt_ipul_sta计数到2×M 时便清零重新计数。整个解调过程用一个有限状态机控制。
经过副载波解调, 得到密勒编码基带数据data及其同步脉冲信号data_pu lse。在密勒解码模块, 设置长度为10的移位寄存器data_r[ 9: 0], 在data_pulse的同步下将data 逐位移入data_r[ 9: 0]。随后根据data_r[ 9: 0]的内容进行密勒解码。解码过程中有一个计数器对解码后的比特进行计数, 当计数结果和帧数据长度相同或者检测到帧结尾序列(即data _ r[ 7: 0] =8’b01 000 000或8’b10 111 111)时, 则输出o_end脉冲表示解码结束, 停止解码, 等待下一帧数据的到来。
4 设计实现与仿真验证
以上设计方案采用V er ilog HDL实现, 并在NCVerilog中进行功能仿真。对解调器模块和解码器模块的仿真结果分别如下图6、图7、图8、图9所示。
ASK解调模块仿真结果——相位偏移为10°
图6 ASK解调模块仿真结果——相位偏移为10°
PSK解调模块仿真结果
图7 PSK解调模块仿真结果
FM 0解码模块仿真结果—— 解码正确
图8 FM 0解码模块仿真结果—— 解码正确
M iller解码模块仿真结果——解码正确
图9 M iller解码模块仿真结果——解码正确
本文还选用A ltera的EP3C16Q240C8N FPGA,根据具体应用开发了阅读器的基带处理电路板, FPGA 中包括了嵌入式处理器软核N IOS II、基带处理接收端电路RTL和发送端电路RTL代码, 由该基带处理板与射频前端电路一起组成UHF RFID 阅读器的验证平台。通过该验证平台本文完成了基带处理接收端电路RTL设计的原型验证。
软件仿真结果表明, 解调器能在各种不同相位偏移情况下对接收到的ASK 信号进行正确解调, 对频率偏移量处于快捕带内的PSK 调制信号能够很快实现载波相位跟踪进而实现正确解调; 解码器能够对正确的FM0 /M iller输入数据进行解码, 并且可以检测到帧起始检测超时错误和违反FM0 /M iller编码规则错误的情况。FPGA 原型验证结果表明,整个阅读器基带处理电路包括其接收端电路可以满足设计要求。