CN103106379A - 一种具有鲁棒性的非接触式ic卡收数方法 - Google Patents

一种具有鲁棒性的非接触式ic卡收数方法 Download PDF

Info

Publication number
CN103106379A
CN103106379A CN 201310007250 CN201310007250A CN103106379A CN 103106379 A CN103106379 A CN 103106379A CN 201310007250 CN201310007250 CN 201310007250 CN 201310007250 A CN201310007250 A CN 201310007250A CN 103106379 A CN103106379 A CN 103106379A
Authority
CN
China
Prior art keywords
bit
sequence
data
clock
center
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201310007250
Other languages
English (en)
Other versions
CN103106379B (zh
Inventor
魏元珍
林平分
万培元
庄晓青
吴旭文
周成冲
王素琴
李鑫辉
张阳
王长弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201310007250.3A priority Critical patent/CN103106379B/zh
Publication of CN103106379A publication Critical patent/CN103106379A/zh
Application granted granted Critical
Publication of CN103106379B publication Critical patent/CN103106379B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

一种具有鲁棒性的非接触式IC卡的收数方法,属于IC卡接收数据的技术领域,其特征在于适应不同的数据解调宽度,校正时钟偏差。用恢复的载波时钟过采样解调数据,并存入128+16位的数据缓存中;检测数据缓存中连续零,并记录连续零的中心位置和最长连续零的长度;通过判断数据缓存中前、后64位中零的个数和最长连续零长度的关系来判断序列,以适应不同的数据解调宽度;将检测到的第一串较长连续零的中心位置作为位同步基准,以此为通信起始位;其后每128个时钟周期进行序列判断,并比较Z或X序列中零的中心位置与数据缓存第32~63位或第96~127位的中的位置的偏差,用以调整位同步基准,从而校正时钟偏差。

Description

一种具有鲁棒性的非接触式IC卡收数方法
技术领域
本发明涉及符合ISO/IEC14443Type A协议的非接触式IC卡的收数模块实现,尤其是针对适用数据解调宽度有变化,采样时钟有偏差,具有鲁棒性的收数方法。
背景技术
IC卡的概念是20世纪70年代初提出来的,法国布尔(BULL)公司于1976年首先创造出智能卡样品,并将这项技术应用于金融、交通、医疗和身份证明等多个行业,它将微电子技术和计算机技术结合在一起,提高了人们生活和工作的现代化程度。
根据卡与外界数据传送的形式,IC卡可以分为接触式IC卡和非接触式IC卡。非接触式IC卡的国际标准有ISO/I EC10536、ISO/IEC14443和ISO/IEC15693及ISO/IEC7816中对非接触式IC卡也适用的部分标准。非接触式卡国际标准中主要讨论了卡的物理特性、发射/接受电信号、防冲突机制、复位应答和传输协议。
ISO/IEC14443协议规定了两种信号接口:Type A和Type B。本文讨论的非接触式IC卡遵从ISO/IEC14443type A协议。
根据ISO/IEC14443-2A协议规定,智能卡读卡器产生耦合到IC卡的RF电磁场,用以传送能量和双向通信。IC卡获得能量后将其转化成直流电压。RF场的场强范围是1·5A/m~7·5A/m,载波频率fc为13·56MHz±7kHz。数据传输率=13·56MHz/128=106Kb/s,一位数据所占的时间周期为9·4us。如图1所示,智能卡读卡器向非接触式IC读传送信号(01001)。调制方式采用100%的ASK,在RF场中创造一个“间隙(pause)”来传输二进制数据。Pause波形如图2所示。
编码方式采用变形米勒编码,如图3所示,有三种时序:时序X,在64/fc之处产生一个pause;时序Y,在整个位期间不发生调制;时序Z,在位期间的开始产生一个pause。每位数据占9·4us,调制信号在载波满幅时为1,在pause期间为0,其中pause持续的时间宽度可参考图2中的参数。
编码的逻辑1为时序X。逻辑0为时序Y。假如相邻有两个或更多的0,从第二个0开始采用时序Z。假如帧的起始位后的第一位为0,则用时序Z来表示这一位和直接跟随其后的0。通信开始:时序Z;通信结束:逻辑0,跟随其后为时序Y;无信息:至少有两个时序Y。
图4和图5表示了传输的帧格式。图4表示的是短帧,用于初始化通信,其包含通信起始位S,7位数据(最低有效位低位LSB先发送)和通信结束位S。图5表示的是标准帧,用于数据交换,其组成为通信起始位S,N*(8个数据位+奇校验位)和通信结束位E。其中数据字节的最低有效位先发送,每一数据字节后有一奇校验位。
根据协议规定,100%ASK调制的,pause波形有一定的参数范围(如图2),RF射频场强有一定范围(1·5~7·5A/m)。对于不同参数的pause解调的数据宽度不同。另外随着RF场强不同,天线包络不同,因此解调的数据宽度也不同。而且解调的数据可能有一定的毛刺或噪声影响有一定抖动。
另一方面,在pause期间天线上没有载波,这样非接触式IC卡在pause期间不能提取出载波时钟。不论是用时钟恢复电路或用时钟切换电路,得到的时钟与载波时钟比都有一定的偏差。
为了让非接触式IC更具有鲁棒性,必须能在协议规定的各种情况下收到数据,并且能在协议范围上留有一定裕度。
发明内容
为了能适用于ISO/IEC14443Type A协议不同pause形状,不同RF场强下解调的数据宽度变化,并且能解决时钟偏差的影响,本发明提供一种具有鲁棒性的非接触式IC卡的收数方法。
本发明的特征在于,在非接触式IC卡中依次按以下步骤实现的:
步骤(1),模拟前端中的整流稳压电路从天线RF接收的RF载波信号中获取非接触式IC卡工作所需的直流电压;
步骤(2),模拟前端中的载波提取电路从所述载波中提取RF载波时钟RF_CLK,输入时钟恢复或切换电路;
步骤(3),模拟前端的所述时钟恢复或切换电路接收到载波时钟RF_CLK后,在间隙pause期间切换为频率接近13·56MHz的时钟,以此作为采样时钟CLK_S输入到收数模块中的128+16位的数据缓存中,
步骤(4),所述解调电路过采样从RF载波中解调的数据RF_DIN,在所述采样时钟CLK_S同步下,将其移入所述128+16位数据缓存中;
步骤(5),所述收数模块利用数据缓存中的数据去检测通信起始位:当检测到至少连续三个零时认为数据为“0”,检测到的第一串连续“0”作为通信起始位,并以此连续“0”的中心位置作为位同步的基准,记录最长连续“0”的长度;
步骤(6),当连续“0”的中心位置移到数据缓存中,用X序列、Y序列和Z序列表示的三种变形米勒编码序列中任何一个序列中,用第32~63位的中心位置作为前64位半位周期的中心位置,用第96~127位的中心位置作为后64位半位周期的中心位置:当前64位半位周期、后64位半位周期中“0”的个数都小于最长连续“0”长度的一半时,则整个位周期没有“0”,数据为所述的Y序列,当所述前64位半位周期中“0”的个数大于所述后64位半位周期中“0”的个数时,数据为Z序列,其他情况下认为是X序列;
步骤(7),所述收数模块中的状态机在收到步骤(5)中的所得到的通信起始位和位同步基准后,隔128个时钟周期判断所述通信起始位后的第一位数据:若第一位数据是Y序列,则返回步骤(5),重新检测通信起始位;
步骤(8),所述状态机在位同步基准后,每隔128个时钟周期进行所述变形米勒编码的序列判断,判断方法同步骤(6);
步骤(9),以所述位同步基准为中心,开启一个32个时钟周期的校正“窗”,来检测下一位数据的连续“0”的中心位置:
若为Z序列,比较连续“0”的中心位置与对应的数据缓存中第96~127位的中的位置之差,
若为X序列,比较连续“0”的中的位置与对应的数据缓存中第32~63位的中的位置之差,若为Y序列,认为整个位周期没有“0”,不去比较位置偏差,
在所述校正“窗”结束时用所述的中心位置的偏差调整位同步基准,校正范围为±8个时钟周期,
步骤(10),在所述校正“窗”结束时,用步骤(8)判断的序列,判定序列缓存seq_buf[3:0],X序列写1101,Y序列写1111,Z序列写0111,并置起序列有效标志seq_val;
步骤(11),解码后,得到:当前位cur_bit,当前位的有效标志bit_en在seq_buf[3:0]=1101时,cur_bit为1,其他情况下cur_bit为0,在seq_buf[7:0]=0111-1111或1111-1111时,结束标识end_flag为1。
本发明的有益效果是,能解调出pause解调宽度0·37~6·3us,每位时钟偏差±8个周期的数据,并且能很好的抵抗解调数据的毛刺和抖动,具有很好的鲁棒性。
附图说明
图1为ISO/IEC14443Type A协议的接口通信信号举例,调制方式采用ASK100%,编码方式为变形米勒编码,数据传输率为106k bit/s。
图2为ISO/IEC14443Type A协议100%ASK调制的pause波形图。
图3为ISO/IEC14443Type A协议变形米勒编码的三种序列。
图4为ISO/IEC14443Type A协议的数据传输的短帧格式。
图5为ISO/IEC14443Type A协议的数据传输的标准帧格式。
图6为本发明的收数模块和模拟前端的结构框图。
图7为模拟前端从RF获得的解调数据RF_DIN和载波时钟RF_CLK。
图8为天线载波时钟RF_CLK和时钟恢复后的采样时钟CLK_S。
图9为128+16位的数据缓存data_buf。
图10为检测连续“0”的时序图。
图11为状态机。
图12为起始位检测、状态机变化和时钟校正的关键时序图。
图13为起始位检测、状态机变化和时钟校正时对应的数据缓存data_buf中“0”位置变化图。
图14为测试的pause解调宽度和对应pause期间允许的最小时钟频率。
图中RF表示接收到的天线波形,RF_CLK表示提取的载波时钟,VDD表示整流稳压后的直流电压,RF_DIN表示解调的数据,CLK_S表示载波时钟填补缺失后的采样时钟,data_buf表示128+16位的数据缓存,data_0表示检测到连续零的标志,zero_ptr表示连续零的中心位置在数据缓存中的位置,max_len0表示最长连续零长度,half1_cnt表示前半位周期中的零个数,half2_cnt表示后半位周期中的零个数,start_flag表示通信起始位标志,seq_x表示检测的序列为X序列,seq_y表示检测的序列为Y序列,seq_z表示检测的序列为Z序列,bit_cnt表示位计数器,cnt表示计数器,window表示“窗”状态标志,rec_cnt表示校正计数器,seq_val表示序列有效标志,seq_buf表示序列缓存,state表示状态机状态,end_flag表示通信结束位标志,cur_bit表示位数据,bit_en表示位数据有效标志,IDLE表示初始化状态,FIRST_CNT表示第一位数据位计数状态,FIRST_WIN表示第一位数据时钟校正“窗”状态,FIRST_SEQ表示第一位数据序列判断状态,BIT_CNT表示数据位计数状态,REC_WIN表示时钟校正“窗”状态,JUDGE_SEQ表示序列判断状态。
具体实施方式
本发明解决其技术问题所采用的技术方案是:
首先,将从RF解调的数据用载波时钟过采样,存入128+16位的数据缓存data_buf中。其中采样的载波时钟是从RF提取的载波时钟,在pause期间切换为接近载波频率13·56MHz的时钟。根据协议ISO/IEC14443Type A规定,一位数据占128个载波周期,这样就可以用128+16位数据缓存中的数据来判断收到的是什么序列。变形米勒编码有三种序列:X序列(1101)、Y序列(1111)和Z序列(0111)。每个序列由四个数组成,记为“S3S2S1S0”。这样可以用数据缓存data_buf的0~31位表示S0,32~63位表示S1,64~95位表示S2,96~127位表示S3。
然后,用数据缓存data_buf中的数据去检测通信起始位。因为解调的数据可能有一定的毛刺或噪声影响有抖动,所以在判断序列的时候,认为一串连续“0”才为数据“0”,并且以连续“0”的中心位置作为位同步的基准。在没有信息的时候,天线为满幅,当收到第一串连续“0”的时候,认为检测到了通信起始位。当第一串连续0的中心位置移到S3中心位置时,数据缓存表示的序列为“0111”,即通信起始位,以此作为位同步基准。
接着判断后续序列和检测通信结束位。在位同步基准后,隔128个时钟周期,下一个序列刚好移入数据缓存data_buf中,可以判断其对应的序列。根据ISO/IEC14443Type A协议的规定,如图2所示,间隙pause有不同波形,从而解调的数据宽度有一定范围。为了既能适用于比较宽的解调宽度,又能适用于比较窄的解调宽度,我们认为如果前半位周期有零,数据为X序列;如果后半位周期有零,数据为Z序列;如果整个位周期没有零,数据为Y序列。这里用两个计数器,分别记录数据缓存data_buf中以S3和S1为中心的64位数据中0的个数。将收到数据中的最长连续0长度的一半,作为判断半位周期中有没有零的阈值。如果两个序列为“YY”或“ZY”,则为通信结束位。
时钟偏差校正。在位同步起点后,隔128个时钟周期,下一个序列刚好移入数据缓存data_buf中。如果没有时钟偏差,X序列“0”中心位置应该在数据缓存data_buf的S1的中心,Z序列“0”中心位置应该在数据缓存data_buf的S3的中心。如果有时钟偏差,比较“0”中心位置与S3,S1的中心位置的偏差,就可以知道丢失了或增加了几个时钟,在下一位数据位同步的时候可以进行时钟偏差校正。如果是Y序列就不能判断时钟偏差,但是通信期间,不会有两个连续的Y序列,除非是通信结束位,因此可Y序列的前一位和后一位都能进行时钟校正。本专利中,用一个32位的“窗”进行时钟校正,每次能校正±16的时钟偏差,考虑Y序列时不能校正时钟偏差,因此能校正的时钟偏差数为±8。
本发明提出一种具有鲁棒性的非接触式IC卡的收数方法,能适用于不同pause形状,不同RF场强下解调的数据宽度变化,并且能解决时钟偏差。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
图6是本专利的非接触式IC卡的收数模块和模拟前端的结构框图。
1·模拟前端
非接触式IC卡是无源的,从天线RF接收的载波信号中获取能量,模拟前端通过整流稳压电路得到IC卡工作所需的直流电压VDD。通过天线RF的载波包络解调出数据RF_DIN,通过时钟提取时钟电路获得载波时钟RF_CLK,如图7所示。由于调制方式为100%ASK,所以在间隙pause期间,载波时钟RF_CLK有一定缺失。载波时钟RF_CLK通过时钟恢复电路或时钟切换电路,在间隙pause期间填补接近13·56MHz的时钟,作为采样时钟CLK_S,如图8所示。最终的采样时钟CLK_S有一定的时钟缺失,并在间隙pause期间钟频率有变化。
在图7中,从RF解调出的数据RF_DIN,在天线波形满幅时,为高电平1,在pause期间为低电平0。根据14443A协议的规定,pause的波形由四个参数t1,t2,t3,t4确定(参考图2)。对于不同参数的pause解调出的数据宽度tpause不同。另外随着RF场强不同,天线包络也有变化,从而影响pause的解调宽度tpause。因此,解调的数据宽度tpause随RF场强和pause参数的变化而变化。从理论上来讲,根据图2,pause解调宽度tpause,最宽不超过t1max+t3max=3·0+1·5=4·5(us),最窄不窄于t2min=0·5us,即0·5us≤tpause≤4·5us,换句话说pause解调的连续零的时间为6到60个时钟周期。
2·数据缓存
模拟前端解调的数据RF_DIN,用采样时钟CLK_S同步采样,移入数据缓存data_buf中。
根据ISO/IEC14443Type A协议规定,数据传输率为13·56MHz/128=106Kb/s,这样一位数据占128个载波周期。变形米勒编码有三种序列:X序列(1101)、Y序列(1111)和Z序列(0111)。每个序列由四个数组成,记为“S3S2S1S0”。一个序列占128个载波周期,因此序列中每一个数占32个载波周期。这样就可以用数据缓存data_buf的0~31位表示S0,32~63位表示S1,64~95位表示S2,96~127位表示S3,如图9所示。
3·检测连续零、记录连续零的长度和位置
如图10所示,此当data_buf最低位data_buf[0]连续出现3个0,将data_0置为高,然后记录连续零的长度zero_len和最长的连续零个数max_len0。由于连续“0”的两边可能有毛刺或抖动,但连续“0”的中心位置是比较准确的,因此在判断序列和位同步的时候都是以连续“0”的中心位置作为基准去判断。所以在连续“0”结束后,用计数器zero_ptr记录连续“0”的中心位置在数据缓存data buf的位置。在满一位周期前,如果出现更长的连续零,zero_ptr将记录更长的连续零的中心位置。
4·半位周期零计数器与序列判断
观察三种序列:X序列(1101)、Y序列(1111)和Z序列(0111),可以发现X序列只有S1是0,Z序列只有S3是0,而Y序列没有零。可见判断序列关键是判断“0”的位置,也就是pause的位置。根据前面介绍pause的解调宽度tpause为0·5us~4·5us。因此“0”的宽度可能会大于四分之一的位周期2·36us,但是不会大于一半的位周期4·7us。为了适用于不同的解调宽度,所以我们认为如果“0”出现在前半位周期,数据为X序列;若“0”出现在后半位周期,数据为Z序列;若没有零,则数据位Y序列。
在判断序列时,我们已经将“0”的中心位置移到数据缓存S3或S1的中心位置。所以只需要判断如图所示的计数器half1_cnt和half2_cnt,它们分别计算了前半位周期和后半位周期中的零的个数。有数据“0”的时候,比较half1_cnt和half2_cnt的大小就可以知道是序列X还是Z。没有数据“0”,序列为Z序列。在判断有没有数据“0”的时候,因为一些毛刺或前后序列中比较宽的“0”影响,Z序列中half1_cnt和half2_cnt不会为0。因此需要一个阈值去判断有没有数据“0”。我们认为在一次收数的过程中,pause的解调宽度基本保持不变,因此可以用最大连续零的长度max_len0的一半half_len0作为阈值。
综上,判断序列:当half1_cnt和half2_cnt均小于max_len0的一半,序列为Y;否则,当half1_cnt大于half2_cnt时,序列为Y;其他情况下,序列为Z。
5·起始位判断
在没有信息的时候,天线为满幅(Y序列)。当收到一串数据,先有通信起始位,即Z序列。所以当检测到第一个Z序列,就开始收数了。当第一串连续“0”的中心位置移到data_buf的S3的中心位置的时候,可能找到了起始位,所以将start_flag置为高。然后以此为位同步起点,进行后面序列的判断。
6·状态机与时钟校正
本专利用状态机去控制序列判断和时钟校正。如图11所示,状态机共有七个状态分别是:初始化状态IDLE,第一位数据位计数状态FIRST_CNT,第一位数据的时钟校正“窗”状态FIRST_WIN,第一位数据序列判断状态FIRST_SEQ,其他位数据位计数状态BIT_CNT,时钟校正“窗”状态REC_WIN和序列判断状态JUDGE_SEQ。
初始化的时候,状态机为IDLE状态。当检测到通信起始位,start_flag置为1,状态机进入FIRST_CNT状态,位计数器bit_cnt开始计数。这样就以start_flag置起的时刻为起点,进行位同步。起始位后等128个时钟周期,data_buf中的序列为起始位后的第一位数据。因此当位计数器bit_cnt计到128时,第一位数据刚好完全移入data_buf中,此时可以判断第一位数据。因此在bit_cnt=128时,判断half1_cnt,half2_cnt和max_len0/2的关系,从而判断是什么序列:若为X序列置起seq_x,若为Y序列置起seq_y,若为Z序列置起seq_z。同时,在bit_cnt=128时,检测下一位数据零的中心位置zero_ptr,用于校正时钟偏差。当下一个序列为Z序列,中心位置应该为128-16=112,但若丢失时钟,zero_ptr会大于112,若增加了时钟周期,zero_ptr会小于112。考虑到zero_ptr有大有小,直接跟112相减比较差值,会有负数出现,为了表示方便,zero_ptr加16肯定比112大,所记校正计数器rec_cnt=(zero_ptr+16)-(128-16)=zero_ptr-96。这样就可以用rec_cnt表示时钟偏差数了。同理当下一个序列为X序列,记为rec_cnt=(zero_ptr+16)-(64-16)=zero_ptr-32。
由于pause期间时钟有一定偏差,所以我们在位计数器计bit_cnt=128前后,开启一个以128为中心的32个时钟周期的“窗”,来检测下一位数据连续“0”的中心位置,从而校正时钟偏差。这个“窗”就用时钟纠正“窗”状态FIRST_WIN来表示。当位计数器bit_cnt计到127-16=111时,进入FIRST_WIN状态;当bit_cnt计到127+16=134时,结束FIRST_WIN状态。只有下一序列为X、Z序列时才能校正时钟偏差,而且一次校正能校正的时钟偏差数为±16。如果下一序列为Y序列,没有连续零“0”,不能校正这一位的时钟偏差。在通信过程中,不会出现连续两个Y序列,除非是通信结束位。因此32个时钟周期长度的窗可以校正时钟个数偏差为±8。换句话说,一位数据中时钟多8个周期或少8个周期都可以纠正回来。
当位计数器bit_cnt计到127+16=134时,状态机进入FIRST_SEQ状态,根据已判断的序列做相应处理。如果在bit_cnt=128时,判断的序列为seq_x或seq_z,在seq_buf低4位写入1101或0111,并置起序列有效标志seq_val。若判断的序列为seq_y,由于起始位后只能是,此时起始位有可能判断错误,所以将状态回到IDLE状态。同时在FIRST_SEQ状态下,将校正计数器rec_cnt中的数给bit_cnt,开始下一序列的判断,这样就完成了时钟偏差纠正。
若序列不为Y序列,状态机进入位计数状态BIT_CNT,与FIRST_CNT相同。然后当bit_cnt=127-16时,状态进入校正“窗”状态REC_WIN,与FIRST_WIN相同。再当bit_cnt=127+16时,状态进入序列判断状态JUDGE_SEQ,与FIRST_SEQ相似。不同的是JUDGE_SEQ状态中判断的序列可以有Y序列,当序列为Y序列时,seq_buf后四位标记为1111。另外,因为两个连续序列为“ZY”或“YY”是通信结束位,所以当seq_buf为“0111-1111”或“1111-1111”时,将置起通信结束标志end_flag,回到IDLE状态。若没有end_flag,状态机继续到BIT_CNT进行下一位数据的判断,直到检测到通信结束位为止。
如图12和图13,举例说明判断起始位,第一位数据的判断和时钟校正时关键信号的变化和数据缓存中数据的变化。①时刻,第一个长度为n的连续“0”刚好完全移入data_buf中,“0”的中心位置指针zero_ptr表示的是[n/2+1]([]取整操作)。②时刻,第一个连续“0”的中心位置移到了data_buf的S3的中心位置的,检测到了通信起始位,置起起始位标识start_flag。③时刻,bit_cnt=127-16,状态机进入第一个时钟矫正“窗”状态FIRST_WIN。④时刻,bit_cnt=128,进行序列判断和时钟偏差判断。如例中,前半位周期中的零个数half1_cnt大于最长零长度max_len0的一半,且前半位周期中的零个数half1_cnt大于后半位周期中的零个数half0_cnt,因此序列为Z序列,置起seq_z。此时,如果时钟没有偏差,第二个序列的“0”中心位置应在S3或S1的中心位置。但此例中zero_ptr=116,第二个序列“0”中心位置距S3中心位置差4位,所以丢失了4个时钟周期的时钟。rec_cnt=zero_ptr-96=116-96=20。⑤时刻,cnt=127+16,时钟校正“窗”结束,将校正计数器rec_cnt的值赋给bit_cnt,开始下一位数据的计数。如果没有时钟丢失,此时bit_cnt应从16开始。而此例中bit_cn从20开始,这样起点推后了4个时钟周期,相当于弥补了丢失的4个时钟。
7·解码
通过变形米勒编码,逻辑1可表示为X序列(1101),逻辑0可表示为Y序列(1111)或Z序列(0111)。因此当seq_val有效时,若seq_buf低4位为“1101”时,数据为“1”,其他情况下,数据为“0”。即seq_buf[3:0]=1101时,cur_bit为1,其他情况下,cur_bit为0。同时置起bit_en,标志当前数据有效。
本实施例在台湾积体电路制造股份有限公司180nm工艺下进行设计,最终芯片测可知,根据协议改变pause的不同参数,改变天线RF的不同场强,本实例能解出的正确的数据。如图14为pause期间的解调宽度和对应pause期间时钟允许的最小频率,本实例能解出pause解调宽度在范围是0·37~6·2us,在协议范围上还能留有一定裕度。,因此pause解调宽度从6·2~1·1us,解调宽度越小,允许的最小时钟频率越低,因为能纠正的时钟偏差个数一定。当pause解调宽度小于1·1us后,pause期间允许的时最小时钟频率反而增大,因为至少采到三个连续零才认为是数据零。所以pause。另外在测试过程中,在天线RF加入一定的噪声,本实例也能很好的解调出正确的数据。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (1)

1.一种具有鲁棒性的非接触式IC卡的收数方法,其特征在于,是在非接触式IC卡中依次按以下步骤实现的:
步骤(1),模拟前端中的整流稳压电路从天线RF接收的RF载波信号中获取非接触式IC卡工作所需的直流电压;
步骤(2),模拟前端中的载波提取电路从所述载波中提取RF载波时钟RF_CLK,输入时钟恢复或切换电路;
步骤(3),模拟前端的所述时钟恢复或切换电路接收到载波时钟RF_CLK后,在间隙pause期间切换为频率接近13.56MHz的时钟,以此作为采样时钟CLK_S输入到收数模块中的128+16位的数据缓存中,
步骤(4),所述解调电路过采样从RF载波中解调的数据RF_DIN,在所述采样时钟CLK_S同步下,将其移入所述128+16位数据缓存中;
步骤(5),所述收数模块利用数据缓存中的数据去检测通信起始位:当检测到至少连续三个零时认为数据为“0”,检测到的第一串连续“0”作为通信起始位,并以此连续“0”的中心位置作为位同步的基准,记录最长连续“0”的长度;
步骤(6),当连续“0”的中心位置移到数据缓存中,用X序列、Y序列和Z序列表示的三种变形米勒编码序列中任何一个序列中,用第32~63位的中心位置作为前64位半位周期的中心位置,用第96~127位的中心位置作为后64位半位周期的中心位置:当前64位半位周期、后64位半位周期中“0”的个数都小于最长连续“0”长度的一半时,则整个位周期没有“0”,数据为所述的Y序列,当所述前64位半位周期中“0”的个数大于所述后64位半位周期中“0”的个数时,数据为Z序列,其他情况下认为是X序列;
步骤(7),所述收数模块中的状态机在收到步骤(5)中的所得到的通信起始位和位同步基准后,隔128个时钟周期判断所述通信起始位后的第一位数据:若第一位数据是Y序列,则返回步骤(5),重新检测通信起始位;
步骤(8),所述状态机在位同步基准后,每隔128个时钟周期进行所述变形米勒编码的序列判断,判断方法同步骤(6);
步骤(9),以所述位同步基准为中心,开启一个32个时钟周期的校正“窗”,来检测下一位数据的连续“0”的中心位置:
若为Z序列,比较连续“0”的中心位置与对应的数据缓存中第96~127位的中的位置之差,
若为X序列,比较连续“0”的中的位置与对应的数据缓存中第32~63位的中的位置之差,
若为Y序列,认为整个位周期没有“0”,不去比较位置偏差,
在所述校正“窗”结束时用所述的中心位置的偏差调整位同步基准,校正范围为±8个时钟周期,
步骤(10),在所述校正“窗”结束时,用步骤(8)判断的序列,判定序列缓存seq_buf[3:0],X序列写1101,Y序列写1111,Z序列写0111,并置起序列有效标志seq_val;
步骤(11),解码后,得到:当前位cur_bit,当前位的有效标志bit_en在seq_buf[3:0]=1101时,cur_bit为1,其他情况下cur_bit为0,在seq_buf[7:0]=0111-1111或1111-1111时,结束标识end_flag为1。
CN201310007250.3A 2013-01-09 2013-01-09 一种具有鲁棒性的非接触式ic卡收数方法 Expired - Fee Related CN103106379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310007250.3A CN103106379B (zh) 2013-01-09 2013-01-09 一种具有鲁棒性的非接触式ic卡收数方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310007250.3A CN103106379B (zh) 2013-01-09 2013-01-09 一种具有鲁棒性的非接触式ic卡收数方法

Publications (2)

Publication Number Publication Date
CN103106379A true CN103106379A (zh) 2013-05-15
CN103106379B CN103106379B (zh) 2016-03-09

Family

ID=48314229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310007250.3A Expired - Fee Related CN103106379B (zh) 2013-01-09 2013-01-09 一种具有鲁棒性的非接触式ic卡收数方法

Country Status (1)

Country Link
CN (1) CN103106379B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104242954A (zh) * 2013-06-21 2014-12-24 上海华虹集成电路有限责任公司 双副载波模式信号解码器
CN104242955A (zh) * 2013-06-21 2014-12-24 上海华虹集成电路有限责任公司 单副载波模式信号解码器
CN104980149A (zh) * 2014-04-14 2015-10-14 北京工业大学 一种应用于非接触式智能ic卡的自校准振荡器
CN112291170A (zh) * 2020-11-17 2021-01-29 四川科道芯国智能技术股份有限公司 改进型米勒码解码方法、装置及设备
CN114050957A (zh) * 2022-01-17 2022-02-15 北京为准智能科技有限公司 一种无线通信测试***的符号同步装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573563C (zh) * 2006-05-16 2009-12-23 张敏 一种非接触ic卡通用编码解码及读写装置和方法
CN102468988A (zh) * 2010-11-11 2012-05-23 上海华虹集成电路有限责任公司 自动检测iso/iec14443协议中信号协议类型的装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104242954A (zh) * 2013-06-21 2014-12-24 上海华虹集成电路有限责任公司 双副载波模式信号解码器
CN104242955A (zh) * 2013-06-21 2014-12-24 上海华虹集成电路有限责任公司 单副载波模式信号解码器
CN104242955B (zh) * 2013-06-21 2017-03-15 上海华虹集成电路有限责任公司 单副载波模式信号解码器
CN104242954B (zh) * 2013-06-21 2017-03-15 上海华虹集成电路有限责任公司 双副载波模式信号解码器
CN104980149A (zh) * 2014-04-14 2015-10-14 北京工业大学 一种应用于非接触式智能ic卡的自校准振荡器
CN104980149B (zh) * 2014-04-14 2017-12-29 北京工业大学 一种应用于非接触式智能ic卡的自校准振荡器
CN112291170A (zh) * 2020-11-17 2021-01-29 四川科道芯国智能技术股份有限公司 改进型米勒码解码方法、装置及设备
CN114050957A (zh) * 2022-01-17 2022-02-15 北京为准智能科技有限公司 一种无线通信测试***的符号同步装置
CN114050957B (zh) * 2022-01-17 2022-03-15 北京为准智能科技有限公司 一种无线通信测试***的符号同步装置

Also Published As

Publication number Publication date
CN103106379B (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
CN103106379B (zh) 一种具有鲁棒性的非接触式ic卡收数方法
US20090262866A1 (en) Data carrier provided with at least two decoding stages
CA2914226C (en) Non-contact communication method determination circuit, non-contact communication circuit, and ic card
CN103297060B (zh) 一种适用于高速率修正miller编码信号的解码电路
CN102262738A (zh) 信息处理设备、接收方法和无线通信***
CN1912900A (zh) 一种解码器及射频卡
CN106295451B (zh) 低信噪比下的rfid信号miller解码方法
CN101252411B (zh) 射频识别数据通信中数据帧结尾的检测方法
KR100512182B1 (ko) 비접촉식 집적 회로 카드의 클럭 신호 생성 및 데이터신호 디코딩 회로
US6908037B2 (en) Circuit for generating clock signal and decoding data signal for use in contactless integrated circuit card
CN103646224A (zh) 一种非接触式ic卡解码电路
US7126994B2 (en) Communication station and data carrier with improved acknowledgement measures
CN201392538Y (zh) 适用于pie编码的解码器
CN101847200B (zh) Rfid标签芯片的凹槽识别装置
CN103065188A (zh) 一种非接触式ic卡的解码电路
CN101594200B (zh) 数据序列的检测方法及从数据序列中恢复信息的方法
CN112633023B (zh) 一种国军标rfid标签的解码方法及装置
CN102522998A (zh) 一种适用于nrz编码信号的typeb全速率解码电路
CN105718835A (zh) 一种数字整形电路
CN110649941B (zh) 一种非接触读卡器识别噪声的方法
CN104702399B (zh) Sof、eof和egt的解码电路
CN104639483A (zh) 基于14443-bpsk副载波数字相关解调电路
JP2005151075A (ja) Rfid通信におけるパルスギャップ信号による非同期通信方式
JP3917006B2 (ja) 復調回路およびそれを用いる非接触式icカードの端末装置
JP2000059261A (ja) 非接触データ送受信装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160309

Termination date: 20220109