微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频识别(RFID) > UHF RFID读写器编解码模块的FPGA实现

UHF RFID读写器编解码模块的FPGA实现

时间:11-29 来源:电子科技大学 点击:

码模块,与该标签进行进一步的信息交互或选择重新读取另外的标签。

同时,为了准确获取标签信息,必须将读写器与PC机相连。读写器通过由FPGA实现的串口模块与PC机相连,对读取到的标签信息做必要的显示,如标签返回的RN16、EPC、UII等。

4、FPGA实现电路

为了实现FPGA部分的功能,在Altera公司的EP1C3T100C6芯片上,利用Quartus II软件进行设计,PIE编码模块设计如图6所示。

 \

图6 PIE编码模块设计框图

41 编码模块设计
PIE编码由pie_encode模块实现。该模块接收命令产生模块并行发来的8位数据,按照协议规定及设置,先给命令数据添加特定的帧头,并根据数据传输速率,对命令数据及其CRC5/16校验位进行PIE编码,编码完成后输出给射频发射模块调制,然后通过天线发送出去。其设计框图如图6所示。

PIE编码模块由编码状态机作为控制模块。状态机的状态由命令帧头和数据0和1组成,即idle、delimiter、tari、rtcal、trcal、data_ sendl、data_send0 7个状态,其中idle是空闲状态,接收到开始信号后跳转到其他状态。状态机的流程按照命令的组成依次进行,每个状态按照协议要求保持特定的时间,直至命令编码完成。由于Query命令和其他命令的帧头不同,query_cmd_flag_in信号用于指示此次发送来的数据是否为Query命令数据,如果是,则在编码时加入TRcal命令段;否则,跳过TRcal状态。

在接收部分数据开始发送指示信号rx_cmd_start与要发送的数据rx_cmd、rx_cmd_num保持同步,编码模块中的命令数据计数器和命令数据移位寄存器根据rx_cmd_start信号将8位数据并行送入各自的寄存器。

接收完成后,数据寄存器会根据计数器中的值进行相应的移位,将无效数据移出,保证有效数据是从命令寄存器中的最高位开始。同时,每完成一位数据的编码,计数器自减1,移位寄存器也自动左移一位,将下一个要编码的数据放入待编码数据寄存器中,该寄存器由此去控制状态机的下一个流程。

发送部分主要由一个命令长度计数器组成,该计数器根据命令参数的设置以及所处的状态进行计数,控制状态机在某个状态保持的时间当一位数据编码完成,计数器清0,并开始对下一位数据计数,同时状态机也跳转到下一个状态,而编码数据则根据状态机的状态以及计数器的值拉高或拉低,并由锁存器将编码后的命令锁存输出。这样就实现了边编码边调制的目的,提升了命令发送的速率,也节省了硬件资源。

42 解码模块设计
解码部分由data_pre_process、fm_and_miller_decode、data_post_decode 3个模块组成。data_pre_process是解码数据预处理模块,接收射频模块解调后的数据。因为射频发射和接收使用的是同一根天线,发射的数据信息以及其他杂波信号经常会泄露进解码模块。该模块主要是去除信号中的毛刺,并对接收数据的高低电平长度进行判断,看是否符合编码规则,如果均在合适的范围内,则视为成功。同时产生待解码数据的采样信号,以及其他指示信号,以便解码模块的数据处理;若不符合要求则丢弃这部分数据,重新检查分析新来的数据信息。

data_post_process是解码数据确认及串并转换模块。解调后的数据经过了解码预处理模块的初步判断,只是符合了一定的编码规则,在解码过程中还可能会出现诸如帧头出错、结尾数据不为1等其他错误。该模块通过判断解码模块的error和data_success信号,确认此次解码是否成功,若成功,将接收解码数据,同时考虑到串行数据传输速度较慢,本模块会对解码数据进行串并转换,然后8位并行地将解码后的数据传输给其他模块。

fm_and_miller_decode是解码模块。其组成框图如图7所示。

 \

图7 miller2 解码结构图

该解码模块主要由解码状态机控制。状态机的状态由初始态、数据解码态,以及最后的解码成功和解码失败状态组成。接收到解码开始信号时,状态机由初始态跳转到数据解码态开始解码,在解码过程中,如果发现输入的数据违背了编码规则或不符合命令的设置,则直接跳入失败状态。在该状态下,会有一个解码失败信号error产生并输出。如果解码顺利进行到结束,则跳转到解码成功状态,会有一个解码成功信号data_success产生并输出,控制下一个模块的工作。这样解码状态机一边接收待解码数据,进行解码处理,一边将前面处理完的数据输出给CRC5/16校验模块,实现了类似于流水线的工作,节省了解码时间。

解码模块接收部分通过采样信号接收待解码数据,这样便只需检测采样信号,节省了计数器的消耗。采样到的数据首先进行帧头检测,判断使用的帧头类型及编码形式,若帧头检测正确,则实施去帧头处理,将有效

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top