背景技术
射频识别(RFID,RadioFrequencyIdentification)技术,是上世纪40年代由于雷达技术的改进和应用产生的一种自动识别技术,作为新一代物联网的关键技术,已逐渐成为世界信息产业最重要和最实用的新技术之一,其从最初的单纯用于军事领域,到现在逐步应用到各行各业中,RFID的发展历史,是世界信息产业的发展历史,也是人类文明进程的发展历史。RFID应用领域包括制造、零售、物流、医疗、身份识别、军事、防伪安全、交通、食品、动物、图书、资产管理和金融等领域,RFID的产品种类十分丰富,已经逐渐成为我们生活中的一部分,在未来,我们相信RFID作为新一代物联网的核心技术,其发展必然可以掀起一场新的技术革命,势必推动我国的金融、安全、医疗、科技等多个方面的长久发展。
RFID读写器作为RFID系统中基本的组成部分之一,是读取和写入电子标签内部存储信息的设备,读写器可以通过天线与电子标签进行通讯,同时可以跟计算机网络进行连接,辅助计算机网络完成数据信息的存储、管理和控制。
RFID读写器通过耦合线圈与RFID电子标签进行无线通信,可以实现对电子标签内部UID(用户识别码)和内部存储数据的读出或写入操作,典型的RFID读写器包含有RFID射频模块(发送器和接收器)、智能模块、基带信号处理模块以及读写器天线。
射频识别系统中,电子标签作为数据载体来标识某个物体;读写器作为读写装置来传递主机的命令到电子标签,电子标签与读写器之间通过无线电波实现射频信号的数据交换,读写器将主机的命令传送给电子标签,再把电子标签应答的信息发回到主机。
而RFID读写器与电子标签之间的通讯,首先是由RFID读写器发送询卡命令给电子标签开始,RFID读写器要发送询卡命令,就必须按照ISO/IEC14443通讯协议规定采用的改进型米勒编码方式将询卡命令的二进制信息转换成编码波形,这个过程至关重要,编码脉冲的时间长短,如果出现偏差,那么后续的模拟调制发送给电子标签芯片,会造成解调解码失败,严重影响RFID的正常通讯。
ISO/IEC14443协议TypeA编码方式采用改进型米勒编码,所有波形使用X、Y、Z三种序列来表示,即逻辑“1”使用X序列表示;逻辑“0”使用Y序列表示;起始位或者连续多个逻辑“0”从第二个开始的位都使用Z序列表示,比如:二进制信息“01110001”转换成对应的序列即为“ZXXXYZZX”。
已有的一种数字编码方法是首先将系统时钟分频得到106Khz时钟,并将二进制编码变成NRZ编码,通过异或运算之后得到曼彻斯特编码,利用其下降沿来触发产生凹槽,得出对应的改进型米勒编码,这种编码方式中数据信号与时钟信号进行异或运算,容易产生毛刺,造成后续信号下降沿的误触发,容易导致编码错误。
发明内容
针对以上的不足,本发明提供了一种低功耗、低成本、高准确度的读写器芯片数字编码装置及应用该装置的编码方法,本发明的读写器芯片数字编码装置包括:
用于将发送的并行数据转换成为串行数据输出的串并转换模块;
用于在串行数据中加入奇偶校验位的奇偶校验模块;
用于在串行数据帧发送完成后加入CRC校验位的CRC校验模块,
还包括计数器和状态转换模块,所述状态转换模块将改进型米勒编码方式的X、Y和Z序列依次划分为四种状态,即位周期开始处到Z序列位周期凹槽结束处、Z序列位周期凹槽结束处到位周期中间位置、位周期中间位置到X序列位周期凹槽结束处、X序列位周期凹槽结束处到位周期结尾处,计数器通过计数值的比较,控制输出状态从发送数据的起始位时间位置到中间位时间位置,再到凹槽位时间位置,最后到结束位时间位置,每种状态输出一种电平。
所述计数器的计数值比较过程为:
1)a处通过计数器的计数值是否等于0,即判断是否为位周期开始位置:如果此位同时又是发送数据的起始位,则直接输出为低电平;如果是八位数据的最低位,则输出对应数据的逻辑电平;如果是八位数据的高七位,则输出当前数据位与低一数据位的或运算之后的值;
2)b处通过计数器的计数值是否等于P,即判断是否为Z序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平;
3)c处通过计数器的计数值是否等于63,即判断是否为位周期中间位置:如果此位同时又是发送数据的起始位,则串行输出的数据为高电平;否则输出对应数据的逻辑电平的反向电平;
4)d处通过计数器的计数值是否等于63+P,即判断是否为X序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平,
其中,P为凹槽时间,a为位周期开始位置,b为Z序列位周期凹槽结束处,c为位周期中间位置,d为X序列位周期凹槽结束处。
所述计数器为八位计数器,它利用13.56Mhz时钟信号计时。
本发明的RFID读写器芯片数字编码方法包括:
1)对输入的数据利用改进型米勒编码方式进行编码;
2)将编码后的并行数据转换成为串行数据;
3)编码输出,
所述步骤1)与步骤2)之间还包括:
a1)将改进型米勒编码方式的X、Y和Z序列依次划分为四种状态,即位周期开始处到Z序列位周期凹槽结束处、Z序列位周期凹槽结束处到位周期中间位置、位周期中间位置到X序列位周期凹槽结束处、X序列位周期凹槽结束处到位周期结尾处;
a2)利用计数器进行计数值的比较,控制输出状态从发送数据的起始位时间位置到中间位时间位置,再到凹槽位时间位置,最后到结束位时间位置,每种状态输出一种电平。
所述计数器的计数值比较过程为:
1)a处通过计数器的计数值是否等于0,即判断是否为位周期开始位置:如果此位同时又是发送数据的起始位,则直接输出为低电平;如果是八位数据的最低位,则输出对应数据的逻辑电平;如果是八位数据的高七位,则输出当前数据位与低一数据位的或运算之后的值;
2)b处通过计数器的计数值是否等于P,即判断是否为Z序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平;
3)c处通过计数器的计数值是否等于63,即判断是否为位周期中间位置:如果此位同时又是发送数据的起始位,则串行输出的数据为高电平;否则输出对应数据的逻辑电平的反向电平;
4)d处通过计数器的计数值是否等于63+P,即判断是否为X序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平,
其中,P为凹槽时间,a为位周期开始位置,b为Z序列位周期凹槽结束处,c为位周期中间位置,d为X序列位周期凹槽结束处。
所述计数器为八位计数器,它利用13.56Mhz时钟信号计时。
所述步骤2)与步骤3)之间还包括:
b1)在串行数据中加入奇偶校验位。
还包括步骤4)在串行数据帧发送完成后加入CRC校验位。
本发明的有益效果:本发明的状态转移输出是通过系统时钟信号来计数判断,所有输出结果与系统时钟相关,而系统时钟信号是由芯片外部稳定的晶振震荡提供,晶振频率的误差范围小于正负1%,输入到数字电路中经过施密特触发器整形,变成规则而且精确的方波,然后去触发对应的寄存器的时钟端,所有状态转换的条件判断都是由寄存器输出值的逻辑组合,寄存器在时钟上升沿才会加载新的数据,其他时间将保持上一状态,从而保证了数据的同步性、一致性和高准确度,同时避免误触发和防止编码出现错误,将二进制编码转换为对应的编码波形的过程安全稳定。
具体实施方式
下面结合附图对本发明进行进一步阐述。
如图1、图3和图4所示,本发明的读写器芯片数字编码装置是基于ISO/IEC14443协议TypeA编码方式,它包括串并转换模块1、奇偶校验模块2、CRC校验模块3、计数器4和状态转换模块5,串并转换模块1将发送的并行数据转换成为串行数据输出,奇偶校验模块2在串行数据中加入奇偶校验位,CRC校验模块3在串行数据帧发送完成后加入CRC校验位,状态转换模块5将改进型米勒编码方式的X、Y和Z序列依次划分为位周期开始处到Z序列位周期凹槽结束处、Z序列位周期凹槽结束处到位周期中间位置、位周期中间位置到X序列位周期凹槽结束处、X序列位周期凹槽结束处到位周期结尾处四种状态,计数器4通过计数值的比较,控制输出状态从发送数据的起始位时间位置到中间位时间位置,再到凹槽位时间位置,最后到结束位时间位置,每种状态输出一种电平(每段时间的控制都是由一个8位计数器精确计数,然后通过比较计数值,在每段开始处进行判断,可以准确输出对应的编码波形)。
其中,如图4所示,根据ISO/IEC14443协议TypeA的定义,读写器发送给电子标签的编码方式采用改进型米勒编码方式,X、Y序列分别代表逻辑“1”、“0”,Z序列代表起始位或者是连续逻辑“0”除第一个逻辑“0”的多位逻辑“0”,通过时序图4可以看出:cnt计数从0到127可以分为4段时间。其中,串行发送的数据为1位输出,缓存的并行数据为8位的寄存器,凹槽时间计数值为P(在27~46之间)。计数器4的计数值比较过程为:
1)a处通过计数器4的计数值是否等于0,即判断是否为位周期开始位置:如果此位同时又是发送数据的起始位,则直接输出为低电平;如果是八位数据的最低位,则输出对应数据的逻辑电平;如果是八位数据的高七位,则输出当前数据位与低一数据位的或运算之后的值。
2)b处通过计数器4的计数值是否等于P,即判断是否为Z序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平。
3)c处通过计数器4的计数值是否等于63,即判断是否为位周期中间位置:如果此位同时又是发送数据的起始位,则串行输出的数据为高电平;否则输出对应数据的逻辑电平的反向电平。
4)d处通过计数器4的计数值是否等于63+P,即判断是否为X序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平。
其中,P为凹槽时间,P的值一般在27~46个clk之间,clk为13.56Mhz的时钟信号,a为位周期开始位置,b为Z序列位周期凹槽结束处,c为位周期中间位置,d为X序列位周期凹槽结束处。
通过以上的计数值比较,可以控制状态转换模块5跳转到对应的状态,并且可以将当前状态输出,在状态转换模块5运行中,如果需要发送CRC校验位,状态会跳转到发送CRC校验位状态,并且开启CRC校验模块3,计算得出对应的CRC校验位;如果发送到奇偶校验位,则开启奇偶校验模块2,计算得出对应的奇偶校验位;之后,需要发送的数据、CRC校验位和奇偶校验位都会通过串并转换模块1依次输出到串行编码输出端口。
下面对各单元进行进一步阐述:
串并转换模块1用于将发送的并行数据转换成为串行数据,该模块采用移位寄存器将需要发送的并行数据一个接一个串行输出。
奇偶校验模块2用于在串行数据中加入奇偶校验位,根据ISO/IEC14443协议TypeA编码方式的规定,每个字节后的最后一位(bit)为校验位。该模块利用时钟的上升沿采样每个字节的8位,循环异或算出8位异或之后的偶校验位,取反之后为奇校验位,正反信号接入二选一电路,通过选择信号来选择奇偶校验位。
CRC校验模块3用于在串行数据帧发送完成后加入CRC校验位,根据ISO/IEC14443协议TypeA编码方式的规定,会计算出CRC8或者CRC16供选择,根据对应多项式的定义,分别计算得出各位寄存器的值,最后输出CRC校验位的高低字节。
计数器4为八位计数器,它利用13.56Mhz时钟信号计时,由图3可以看出,计数器4由八个寄存器组成,图中是低四位寄存器,clk为13.56Mhz的时钟信号,cnt_en为计数器的使能信号,当cnt_en信号为1时,计数器被开启,每经过一个时钟上升沿,cnt[0]翻转一次,并且依次向上进位,引起cnt[1]、cnt[2]和cnt[3]等信号的翻转;当cnt_en信号为0时,计数器被关闭,此时无论经过多少时钟上升沿,寄存器的值都将保持不变。
以4位计数器的计数过程为例说明一下计数器的操作过程:初始状态4个寄存器输出都为低电平,即输出值cnt[3:0]为0000,当使能信号cnt_en为高电平时,由图3可以看出,经过反相器以及二选一电路,二选一电路的选择信号为:
sel[0]=cnt_en;
sel[1]=~(sel[0]&cnt[0]);
sel[2]=~(sel[1]|cnt[1]);
sel[3]=~(sel[2]&cnt[2]);
选择信号sel[3:0]=1011,则寄存器的下一输出值:
next_cnt[0]=~cnt[0]=1;
next_cnt[1]=cnt[1]=0;
next_cnt[2]=cnt[2]=0;
next_cnt[3]=cnt[3]=0;
当时钟上升沿到来之后,寄存器的输出值就会发生变化,即:输出值cnt[3:0]变为0001(十进制1)。
然后选择信号sel[3:0]=1001,则寄存器的下一输出值:
next_cnt[0]=~cnt[0]=0;
next_cnt[1]=~cnt[1]=1;
next_cnt[2]=cnt[2]=0;
next_cnt[3]=cnt[3]=0;
当又一个时钟上升沿到来之后,寄存器的输出值就会发生变化,即:输出值cnt[3:0]变为0010(十进制2)。
然后选择信号sel[3:0]=1011,则寄存器的下一输出值:
next_cnt[0]=~cnt[0]=1;
next_cnt[1]=cnt[1]=1;
next_cnt[2]=cnt[2]=0;
next_cnt[3]=cnt[3]=0;
时钟上升沿来到之后,输出值cnt[3:0]变为0011(十进制3)。
依次类推,每经过一个时钟上升沿,计数器的输出值就加一。计数器的关键在于每次每位寄存器的翻转行为由计数器的当前值与低一位的值组合运算得出,二选一电路实际是代表该位是否翻转。对于二进制的计数器,实际上就是0到1的翻转,然后1到0时向高一位进位,最终实现计数器的功能。
状态转换模块5用于控制发送过程中的状态转移,该模块通过一个8位计数器4计数,状态从发送数据的起始位时间位置到中间位时间位置,再到凹槽位时间位置,最后到结束位时间位置,每种状态输出一种电平,最终输出对应的改进型米勒编码方式的信号。
如图2所示,本发明的RFID读写器芯片数字编码方法包括:
11)对输入的数据利用改进型米勒编码方式进行编码,
12)将改进型米勒编码方式的X、Y和Z序列依次划分为四种状态,即位周期开始处到Z序列位周期凹槽结束处、Z序列位周期凹槽结束处到位周期中间位置、位周期中间位置到X序列位周期凹槽结束处、X序列位周期凹槽结束处到位周期结尾处,
13)利用计数器进行计数值的比较,控制输出状态从发送数据的起始位时间位置到中间位时间位置,再到凹槽位时间位置,最后到结束位时间位置,每种状态输出一种电平,计数器为八位计数器,它利用13.56Mhz时钟信号计时,
14)将编码后的并行数据转换成为串行数据,
15)在串行数据中加入奇偶校验位,
16)编码输出,
17)在串行数据帧发送完成后加入CRC校验位。
其中,如图4所示,计数器的计数值比较过程为:
1)a处通过计数器的计数值是否等于0,即判断是否为位周期开始位置:如果此位同时又是发送数据的起始位,则直接输出为低电平;如果是八位数据的最低位,则输出对应数据的逻辑电平;如果是八位数据的高七位,则输出当前数据位与低一数据位的或运算之后的值;
2)b处通过计数器的计数值是否等于P,即判断是否为Z序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平;
3)c处通过计数器的计数值是否等于63,即判断是否为位周期中间位置:如果此位同时又是发送数据的起始位,则串行输出的数据为高电平;否则输出对应数据的逻辑电平的反向电平;
4)d处通过计数器的计数值是否等于63+P,即判断是否为X序列位周期凹槽结束位置:如果此时处于凹槽结束位置,串行输出的数据为高电平。
其中,P为凹槽时间,a为位周期开始位置,b为Z序列位周期凹槽结束处,c为位周期中间位置,d为X序列位周期凹槽结束处。
本发明的低成本设计:本发明对于数字电路的实现进行了优化,包括基本单元的复用、功能函数的化简和冗余电路的删除等,另外,绘制版图时,采用手动设计与自动设计相结合的方法,在由软件自动综合并布局布线的基础上,对一些模块进行手动优化,精简了数字电路的版图面积,使得总的芯片面积减小,通常集成电路芯片都是制作在一片晶圆上,如果单个芯片面积更小,那么一片晶圆上所能制作的芯片数量就越多,平均下来单个芯片的成本就会降低。
本发明的高准确度设计:本发明的状态转移是通过时钟信号来计数判断,而时钟信号是由芯片外部稳定的晶振震荡提供,晶振频率的误差范围小于正负1%,输入到数字电路中经过施密特触发器整形,变成规则而且精确的方波,然后去触发对应的寄存器的时钟端。所有状态转换的条件判断都是由寄存器输出值的逻辑组合,寄存器在时钟上升沿才会加载新的数据,其他时间将保持上一状态,从而保证了数据的同步性、一致性、以及高准确度。
本发明的低功耗设计:本发明采用了时钟同步计数器,由使能信号cnt_en来开启或关闭,当cnt_en为高电平时,计数器开启,在时钟上升沿寄存器的值发生翻转;当cnt_en为低电平时,计数器关闭,在时钟上升沿寄存器的值不变。集成电路中,寄存器内部的CMOS管的导通与截止,就会产生动态功耗,如果CMOS管不发生翻转行为,就只有很小的静态功耗。通过这种设计方法,芯片总的功耗就会得到大幅度降低。
以上所述仅为本发明的较佳实施方式,本发明并不局限于上述实施方式,在实施过程中可能存在局部微小的结构改动,如果对本发明的各种改动或变型不脱离本发明的精神和范围,且属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变型。