一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种超高频RFID标签的反向链路编码方法与流程

2022-04-25 04:31:09 来源:中国专利 TAG:

一种超高频rfid标签的反向链路编码方法
技术领域
1.本发明涉及射频识别(rfid,radio frequency identification)领域,尤其涉及一种超高频rfid标签的反向链路编码方法。


背景技术:

2.射频识别技术(radio frequency identification,rfid),是一种利用射频通道实现的非接触式自动识别技术,应用于物流、制造、公共信息服务等行业,可大幅度提高管理与运作效率、降低成本。近年来,物联网的发展给射频识别技术的发展带来了机遇,rfid产业已成为新兴的高新技术产业。rfid芯片在物资、物流和装备管理方面也有着广泛的应用前景。
3.超高频rfid标签的反向链路编码存在多种编码方式,每种编码方式又对应着多种编码速率。标签反向链路编码存在着编码方式多和实现复杂的情况,实现起来具有一定难度。


技术实现要素:

4.针对以上情况,本发明提供一种超高频rfid标签的反向链路编码方法。本方法通过合理划分返回数据,以同步编码的方式对返回数据进行编码,使返回链路编码过程清晰且易于实现。
5.为实现上述发明目的,本发明采用的技术方案为:一种超高频rfid标签的反向链路编码方法,包括以下步骤:步骤1,标签根据前向链路基准时间指示符tc和反向链路基准时钟周期数据域dr的值确定反向链路编码时钟doub_blf,步骤2,标签根据反向链路编码选择位m的值确定反向链路的编码方式;步骤3,根据返回数据包的结构,将待编码数据分为前导信号pilot、前导码dout_head、数据data和结束位dum四部分,各部分数据在编码时钟doub_blf下由状态机cur_state和状态机enc_state控制生成单比特编码数据dout,再经由射频模块调制输出,得到反向链路编码信号demo_f。
6.进一步的,步骤1中,反向链路编码时钟doub_blf由2.56mhz的系统时钟分频而来,分频比受前向链路基准时间指示符tc和反向链路基准时钟周期数据域dr确定,具体方式如下:当tc=1时:当dr=2’b00时,doub_blf为系统时钟的4分频;当dr=2’b01时,doub_blf为系统时钟的8分频;当dr=2’b10时,doub_blf为系统时钟的16分频;当tc=0时:当dr=2’b00时,doub_blf为系统时钟的2分频;
当dr=2’b01时,doub_blf为系统时钟的4分频;当dr=2’b10时,doub_blf为系统时钟的8分频。
7.进一步的,步骤2的具体方式如下:当m=2’b00时,反向链路编码方式为fm0编码;当m=2’b01时,反向链路编码方式为副载波系数为2的米勒编码;当m=2’b10时,反向链路编码方式为副载波系数为4的米勒编码;当m=2’b11时,反向链路编码方式为副载波系数为8的米勒编码。
8.进一步的,步骤3中,状态机cur_state用于控制编码进度,当编码方式为米勒编码时,状态机cur_state按照m_pilot、dout_head、data和dum的顺序依次对返回数据进行编码;当编码方式为fm0编码时,状态机cur_state按照f_pilot、dout_head、data和dum的顺序依次对返回数据进行编码;其中,m_pilot为米勒编码下的前导信号,f_pilot为fm0编码下的前导信号;待编码数据存储在移位寄存器bsc_buf中,通过移位输出的方式对bsc_buf的数据逐位编码;当cur_state处于f_pilot状态时,标签对返回数据进行fm0编码,寄存器bit值为0,返回数据包的前导信号,即12个0;当cur_state处于m_pilot状态时,标签对返回数据进行米勒编码,寄存器bit值为0,返回数据包的前导信号,前导信号的值由trext确定:trext=0时,前导信号为4个0;trext=1时,前导信号为16个0;当cur_state处于dout_head状态时,标签对返回数据的前导码进行编码;对于fm0编码,前导码的值为8’b11100001;对于米勒编码,前导码的值为8’b00111101;当cur_state处于data状态时,标签对返回数据包进行编码;当cur_state处于dum状态时,标签对返回数据包的结束位进行编码,即对单比特1进行编码。
9.进一步的,状态机cur_state的跳转受计数器cnt_m_pilot、cnt_f_pilot、cnt_head和data_cnt的控制;其中,计数器cnt_f_pilot负责计数fm0编码的前导信号位数,cnt_m_pilot负责计数米勒编码miller2、miller4和miller8的前导信号位数,cnt_head负责计数前导码的位数,data_cnt负责计数返回数据包数据部分的位数;状态机cur_state的跳转方式为:当计数器的值小于当前状态需要返回的数据位数时,cur_state保持当前状态不变,否则cur_state跳到下一状态;当cnt_f_pilot=时,状态机cur_state由f_pilot跳到dout_head;当cnt_m_pilot=时,状态机cur_state由m_pilot跳到dout_head;当cnt_head=时,状态机cur_state由dout_head跳到data;当data_cnt=时,状态机cur_state由data跳到dum;、、、为各寄存器对应的当前状态返回数据位数的阈值。
10.进一步的,步骤3中,状态机enc_state各个状态的跳转受单比特寄存器bit当前值和编码模式m以及cur_state的控制,具体如下;
当enc_state处于enc_rdy状态时,当bit=1时,enc_state状态机跳到pos_one,当bit=0时,enc_state状态机跳到pos_zero;当enc_state处于pos_one状态时,当bit=1时,enc_state状态机跳到neg_one,当bit=0时,enc_state状态机跳到neg_zero;当enc_state处于pos_zero状态时,enc_state的状态跳转受前导码符号位v、编码类型标志m和bit值控制,具体如下:当bit=1,v=1时,enc_state状态机跳转到neg_one状态;当bit=1,v=0时,enc_state状态机跳转到pos_one状态;当bit=0,m=2’b0,即fm0编码时,enc_state状态维持在pose_zero状态;当bit=0,m不为0,即米勒编码时,enc_state状态跳转到neg_zero状态;当enc_state处于neg_zero状态时,enc_state的状态跳转受前导码符号位v、编码类型标志m和bit值控制,具体如下:当bit=1时,enc_state状态机跳转到neg_one状态;当bit=0,并且m和v为0时,enc_state状态机保持在neg_zero状态;当bit=0,m或v不为0时,enc_state状态机跳转到pos_zero状态。
11.当enc_state状态机处于neg_one状态时,当bit=1时,enc_state状态机跳转到pos_one状态;当bit=0时,enc_state状态机跳转到pos_zero状态。
12.进一步的,步骤3中,单比特编码数据dout的生成受状态机cur_sate、enc_state和信号beg_pulse和mid_pulse的控制;其中beg_pulse和mid_pulse由时钟data_clk和data_clk_rev生成,而data_clk由编码时钟doub_blf分频生成,其分频比受m的控制,data_clk_rev由data_clk在doub_blf下延迟一个时钟周期产生;data_clk与doub_blf的关系如下:当m=2’b00时,data_clk由doub_blf2分频得到;当m=2’b01时,data_clk由doub_blf4分频得到;当m=2’b10时,data_clk由doub_blf8分频得到;当m=2’b11时,data_clk由doub_blf16分频得到;beg_pulse和mid_pulse信号的生成方式如下:beg_pulse=data_clk && (~data_clk_rev);mid_pulse=(~data_clk) && data_clk_rev;单比特编码数据dout在编码时钟doub_blf下生成,具体如下:当beg_pulse为1时,如果enc_state为pose_zero或者neg_one,则dout=1,否则,dout=0;当beg_pulse为0并且mid_pulse为1时,dout值由m和enc_state决定;当m=2’b0时,当enc_state为pos_one或者neg_zero时,dout=1,其他状态下dout=0,当m不为0时,当enc_state为pos_zero或者neg_one时,dout=1,其他状态下dout=0;当beg_pulse和mid_pulse为其他情况时,dout=~dout,即dout在时钟doub_blf下取反。
13.本发明的有益效果在于:1、与已有异步编码的方式相比,实现简单。
14.2、对返回链路数据包分段编码,编码过程易于控制。
15.3、可实现fm0,miller2,miller4,miller8四种方式的编码。
附图说明
16.图1为本发明实施例中状态机cur_state 的跳转示意图;图2为本发明实施例中状态机enc_state的跳转示意图。
具体实施方式
17.下面结合附图和具体实施例对本发明做进一步阐述。
18.一种超高频rfid标签的反向链路编码实现方法,该方法中返回链路的编码实现由两套状态机控制,enc_state状态机和cur_state状态机;enc_state状态机控制fm0,miller2,miller4和miller8编码的实现,cur_state状态机控制返回数据包的编码进度;enc_state状态机通过单比特寄存器bit的值确定不同编码方式下(fm0,miller2,miller4和miller8)标签需要返回的值dout,即实现不同的编码方式。
19.本方法将要返回的数据分成三个部分:dout_head,bsc_buf和结束位固定值1’b1中,分别对应返回数据包的头,有效数据和结束位。
20.寄存器bit数据的生成过程如下:由寄存器dout_head和bsc_buf在编码时钟下向高位进行移位寄存,并将最高位赋值给寄存器bit;根据协议要求结束位固定为单比特1’b1,即在编码结束位时bit=1’b1。
21.标签在时钟下依次对寄存器中的最高位进行编码,然后将比特流数据送入射频模块进行调制和发射。
22.返回链路的编码由状态机cur_state和状态机enc_state控制,cur_state的状态共有ready,m_pilot,f_pilot,dout_head,data和dum五个状态,具体控制方式如下:当cur_state处于m_pilot状态,返回链路进行米勒编码;当cur_state处于f_pilot状态,返回链路进行fm0编码;当cur_state处于dout_head状态,标签对返回数据包的头进行编码;当cur_state处于data状态,标签对返回数据包中的数据信息进行编码;当cur_state处于dum状态,标签对返回数据包的结束位进行编码。
23.状态机cur_state的跳转受计数器cnt_f_pilot,cnt_m_pilot,cnt_head和计数器data_cnt以及当前标签返回状态bsc的控制。
24.cnt_f_pilot用于计数fm0编码的前导信号位数;cnt_m_pilot用于计数米勒编码的前导信号位数;cnt_head用于计数前导码的位数;data_cnt用于计数返回数据的位数,即计数除数据包头外的数据的位数,bsc为标签的返回状态,即标示标签当前在响应哪条指令,状态机cur_state的具体状态跳转如图1所示。
25.data_cnt 的值与标签响应的指令有关,响应每条命令的data_cnt的值是可以确定的。
26.状态机enc_state共有enc_rdy,pose_one,pose_zero,neg_one,neg_zero五个状
态,其状态跳转受编码方式和单比特寄存器bit的当前值控制,在不同的编码方式下,enc_state的状态跳转不同,具体状态跳转如图2所示。
27.编码时钟doub_blf由功耗控制模块生成,编码时钟频率受前向链路基准时间tc和反向链路基准时钟周期数据域dr两个变量控制,具体如下:tc=6.25us当dr=2’b00时,doub_blf时钟频率为1.28mhz;当dr=2’b01时,doub_blf时钟频率为640khz;当dr=2’b10时,doub_blf时钟频率为320khz。
28.tc=12.5us当dr=2’b00时,doub_blf时钟频率为640khz;当dr=2’b01时,doub_blf时钟频率为320khz;当dr=2’b10时,doub_blf时钟频率为160khz。
29.本方法中,编码电路得到的编码信号dout经射频部分调制后,得到反向链路编码信号demo_f;反向链路的编码由两套状态机enc_state和cur_state控制;反向链路编码时钟为doub_blf,由2.56mhz的系统时钟分频而来,分频比受前向链路基准时间指示符tc和反向链路基准时钟周期数据域dr确定;反向链路的编码将要编码的数据帧分为m_pilot,f_pilot,dout_head,data和dum五部分;反向链路编码数据存储在移位寄存器bsc_buf中,通过移位输出的方式对bsc_buf的数据逐位编码;状态机cur_state各个状态的跳转受计数器cnt_m_pilot,cnt_f_pilot,cnt_head和data_cnt的控制,它们分别用来计数数据帧m_pilot,f_pilot,dout_head和data的长度;状态机enc_state各个状态的跳转受单比特寄存器bit当前值和编码模式m以及cur_state的控制。
30.反向链路编码由两套状态机控制:状态机cur_state控制编码进度,具体为将待编码数据分为m_pilot,f_pilot,dout_head,data和dum五部分;当编码方式为米勒编码时,状态机cur_state按照m_pilot,dout_head,data和dum的顺序依次对返回数据进行编码;当编码方式为fm0编码是,状态机cur_state按照f_pilot,dout_head,data和dum的顺序依次对返回数据进行编码;状态机enc_state控制最终的编码输出dout,它由状态机enc_state当前状态以及编码数据bit确定;单比特编码数据由移位寄存器bsc_buf在编码时钟下移位输出生成。
31.根据cur_state的状态将各个命令将要返回的数据存储在寄存器bsc_buf中,通过移位输出的方式,对待返回数据逐位编码。
32.状态机cur_state的跳转受计数器cnt_m_pilot,cnt_f_pilot,cnt_head和data_cnt的控制,具体为:当0cnt_m_pilot时,cur_state处于m_pilot状态;当0cnt_f_pilot时,cur_state处于f_pilot状态;当0cnt_f_pilot时,cur_state处于dout_head状态;当0时,cur_state处于data状态;
上述计数器的值为定值,的值根据超高频协议中不同命令的返回数据确定。
33.状态机enc_state控制最终编码生成的数据dout。
34.状态机enc_state共包含enc_rdy、pose_one、pose_zero、neg_one、neg_zero五个状态,其状态的跳转如图2所示。
35.以下为一个更具体的例子:一种超高频rfid标签的反向链路编码方法,包括:标签根据tc和dr的值确定反向链路编码时钟doub_blf,具体选择过程如下:tc=6.25us的情况下,当dr=2’b00时,doub_blf时钟频率为1.28mhz;当dr=2’b01时,doub_blf时钟频率为640khz;当dr=2’b10时,doub_blf时钟频率为320khz。
36.tc=12.5us的情况下,当dr=2’b00时,doub_blf时钟频率为640khz;当dr=2’b01时,doub_blf时钟频率为320khz;当dr=2’b10时,doub_blf时钟频率为160khz。
37.标签根据反向链路编码选择位m的值确定反向链路的编码方式,具体选择如下:当m=2’b00时,反向链路编码方式为fm0编码;当m=2’b01时,反向链路编码方式为副载波系数为2的米勒编码;当m=2’b10时,反向链路编码方式为副载波系数为4的米勒编码;当m=2’b11时,反向链路编码方式为副载波系数为8的米勒编码;根据返回数据包的结构,将返回数据包分为前导信号,前导码,数据和结束位四部分,各部分数据在编码时钟doub_blf下由状态机cur_state和状态机enc_state控制生成单比特编码数据dout,再经由射频模块调制输出。
38.上述cur_state处于f_pilot状态时,标签对返回数据进行fm0编码,寄存器bit值为0,返回数据包的前导信号(12个0);cur_state处于m_pilot状态时,标签对返回数据进行米勒编码,寄存器bit值为0,返回数据包的前导信号,前导信号的值由trext确定:trext=0时,前导信号为4个0;trext=1时,前导信号为16个0;cur_state处于dout_head状态时,标签对返回数据的前导码进行编码;上述前导码,对于fm0编码,其值为8’b11100001;对于米勒编码,其值为8’b00111101;cur_state处于data状态时,标签对返回数据包进行编码;cur_state处于dum状态时,标签对返回数据包的结束位进行编码,即对单比特1进行编码;本方法通过计数器cnt_f_pilot,cnt_m_pilot,cnt_head和data_cnt的值确定cur_state的状态跳转,具体方式为当计数器的值小于当前状态需要返回的数据位数时,cur_state保持当前状态不变,否则cur_state跳到下一状态;各寄存器对应的当前状态返回数据位数的阈值为,,,,则有:
当cnt_f_pilot=时,状态机cur_state由f_pilot跳到dout_head;当cnt_m_pilot=时,状态机cur_state由m_pilot跳到dout_head;当cnt_head=时,状态机cur_state由dout_head跳到data;当data_cnt=时,状态机cur_state由data跳到dum;计数器cnt_f_pilot负责计数fm0编码的前导信号位数,cnt_m_pilot负责计数米勒编码(miller2,miller4和miller8)的前导信号位数,cnt_head负责计数前导码的位数,data_cnt负责计数返回数据包数据部分的位数;enc_state状态机处于enc_rdy状态时,当bit=1时,状态机跳到pos_one,当bit=0时,状态机跳到pos_zero;当enc_state处于pos_one状态时,当bit=1时,状态机跳到neg_one,当bit=0时,状态机跳到neg_zero;当enc_state处于pos_zero状态时,enc_state的状态跳转受前导码符号位v,编码类型标志m和bit值控制,具体如下:当bit=1,v=1时,状态机跳转到neg_one状态;当bit=1,v=0时,状态机跳转到pos_one状态;当bit=0,m=2’b0(fm0编码)时,状态维持在pose_zero状态;当bit=0,m不为0(米勒编码)时,状态跳转到neg_zero状态;当enc_state处于neg_zero状态时,enc_state的状态跳转受前导码符号位v,编码类型标志m和bit值控制,具体如下:当bit=1时,状态机跳转到neg_one状态;当bit=0,并且m和v为0时,enc_state保持在neg_zero状态;当bit=0,m或v不为0时,状态机跳转到pos_zero状态。
39.当enc_state处于neg_one状态时,当bit=1时,状态机跳转到pos_one状态;当bit=0时,状态机跳转到pos_zero状态。
40.单比特编码数据dout的生成受状态机cur_sate,enc_state和信号beg_pulse和mid_pulse的控制。其中beg_pulse和mid_pulse由时钟data_clk和data_clk_rev生成,而data_clk由编码时钟doub_blf分频生成,其分频比受m的控制,data_clk_rev由data_clk在doub_blf下延迟一个时钟周期产生。
41.data_clk与doub_blf的关系如下所示:当m=2’b00时,data_clk由doub_blf2分频得到;当m=2’b01时,data_clk由doub_blf4分频得到;当m=2’b10时,data_clk由doub_blf8分频得到;当m=2’b11时,data_clk由doub_blf16分频得到。
42.beg_pulse和mid_pulse信号的生成如下:beg_pulse=data_clk && (~data_clk_rev);mid_pulse=(~data_clk) && data_clk_rev。
43.编码数据dout在编码时钟doub_blf下生成,具体如下:当beg_pulse为1时,如果enc_state为pose_zero或者neg_one,则dout=1,否则,dout=0;当beg_pulse为0并且mid_pulse为1时,dout值由m和enc_state决定。当m=2’b0时,
当enc_state为pos_one或者neg_zero时,dout=1,其他状态下dout=0,当m不为0时,当enc_state为pos_zero或者neg_one时,dout=1,其他状态下dout=0;当beg_pulse和mid_pulse为其他情况时,dout=~dout,即dout在时钟doub_blf下取反。
44.本方法将待返回数据放在移位寄存器bsc_buf中,在编码时钟下移位输出,在状态机cur_state和状态机enc_state的控制下对移位输出的单bit数据进行编码生成编码后数据dout,再经过射频调制后返回给阅读器。本方法根据返回数据包的结构将返回数据分为m_pilot、f_pilot、dout_head、data和dum五部分。反向链路编码时钟由2.56mhz的系统时钟分频而来,分频比由前向链路基准时间指示符tc和反向链路基准时钟周期数据域dr确定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献