基于FPGA的RFID读写器设计
从波形中可以看出,若输入1,则64个时钟后输出一个脉冲,若输入0,则128个时钟内没有脉冲输出,而当有两个连续的0输入时,则在第二个0起始处输出一个脉冲。通过对照理论波形,可以看出编码完全正确,符合设计要求。 2 系统软件设计 2.2 防碰撞算法 3 结束语
1.3.2 接收解码模块
在射频收发模块中进行解调处理而得到的基带信号将被送入FPGA进行Manchester解码、CRC校验,并在主控状态机的控制下通过RS232将数据传送给上位机。在ISO/IECl4443 Type A协议中,电子标签到读写器的通信采用Manchester编码方式,其编码规则是:某比特位的值由该比特长度内半个比特周期时电平的变化来表示,负跳变表示‘1’,正跳变表示‘0’。Manchester解码即对Manchester编码信号位的1/4和3/4处采样,若采样结果为(1,0),则解码数据为1;若采样结果为(0,1),则解码数据为0。如图3所示Manchester解码波形。输入数据为
l00100l1,解码所得数据为147,用二进制表示也即100100ll,可见解码完全正确,符合设计要求。
2.1 主程序
读写器上电复位后,对各功能模块进行初始化,然后发出询卡/应答指令寻找有效范围内的电子标签。电子标签在读写器的阅读范围外为无电状态,不能进行任何操作。当进入读写器的载波有效范围内时,电子标签上电复位,进入等待接收询卡/应答指令的状态。收到询卡
指令后,电子标签会发出自己独有的ID码,读写器根据收到的IDR码发出选卡指令,选择该标签进行下一步的通信。
在应用中可能会遇到多个电子标签同时在读写器的有效工作范围内的情况,这些标签就会在收到询卡指令后,同时发出自己的ID码时发生互相冲突,因此就要求系统能够具有防冲突的机制,才能从多个标签中选择出其中一个。主程序流程见图4。
A型射频卡采用了ISO/IECl4443系列协议,配合读写器共同实现防碰撞的快速交互通信。为了从多张电子标签中快速识别出一张来单独进行通信,A型卡采用了位碰撞监测协议实现防碰撞过程,即阅读器对卡返回的唯一识别号(即UID)数据帧中的每一位进行冲突监测。当多张A型射频卡在同一时刻向读写器传送UID数据帧时,一定会在同时返回的某一位上有不同的位值。根据Manchester编码规则,这一位正负边沿抵消了,故读写器无法识别的该数据位即为碰撞位。碰撞位监测到后马上启动防碰撞过程。读写器主动地发出一系列命令数据帧,主要是ANTICOLLISION命令和SELECT命令。射频卡被动地响应每一条指令完成交互的会话过程。
本设计在Modelsim SE6.1和Altera Quartus II 7.2中进行了功能仿真和综合,结果表明能够满足设计的需求。
- 基于FPGA的短波通信接收机(11-19)
- FPGA的低功耗设计(07-06)
- EDA环境衔接测量软件(06-25)
- Altera 28nm FPGA助力NEC提升LTE基站性能(11-19)
- 基于FPGA的BPSK信号载频估计单元设计(09-02)
- FPGA推动5G异构无线网络(09-28)