《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模拟设计 > 设计应用 > TYPE B非接触式IC卡防冲突原理的研究与实现
TYPE B非接触式IC卡防冲突原理的研究与实现
摘要: 非接触IC卡又称射频卡,是近几年发展起来的一项新技术,同时也是射频识别技术和IC卡技术有机结合的产物。非接触IC卡与条码卡、磁卡、接触式IC卡比较,具有高安全性、高可靠性、使用方便快捷等特点。卡与读写器在相对运动的情况下也可完成操作,在读写器天线的可识别范围之内,可能会同时出现多张卡片。如何完成每张可工作卡片的识别,并且进行正确的通信,这正是非接触智能卡的防冲突技术要解决的问题。
Abstract:
Key words :

前 言

  非接觸IC卡又稱射頻卡,是近幾年發(fā)展起來的一項(xiàng)新技術(shù),同時(shí)也是射頻識(shí)別技術(shù)和IC卡技術(shù)有機(jī)結(jié)合的產(chǎn)物。非接觸IC卡與條碼卡、磁卡、接觸式IC卡比較,具有高安全性、高可靠性、使用方便快捷等特點(diǎn)。卡與讀寫器在相對(duì)運(yùn)動(dòng)的情況下也可完成操作,在讀寫器天線的可識(shí)別范圍之內(nèi),可能會(huì)同時(shí)出現(xiàn)多張卡片。如何完成每張可工作卡片的識(shí)別,并且進(jìn)行正確的通信,這正是非接觸智能卡的防沖突技術(shù)要解決的問題。

  2 TYPE B非接觸IC卡工作原理

  非接觸式IC卡由包括電感線圈或小型高頻收發(fā)天線組成的射頻電路、能量轉(zhuǎn)換模塊與微處理器系統(tǒng)組成。射頻電路主要用來完成卡與讀寫設(shè)備的通信;能量轉(zhuǎn)換模塊用來從接收的射頻信號(hào)中產(chǎn)生卡片工作所需的時(shí)鐘信號(hào)和電源能量,其基本的工作原理是基于射頻識(shí)別技術(shù)RF ID, RF場(chǎng)的工作頻率為13. 56 MHz,讀寫器與卡之間采用異步半雙工方式進(jìn)行通信,采用的是調(diào)幅的調(diào)制方式。在ISO1443 - 2國際標(biāo)準(zhǔn)中定義的TYPE B 通信協(xié)議規(guī)定,從讀寫器到卡的信號(hào)調(diào)制方式采用ASK 10%,編碼采用NRZ方式。從卡到讀寫器的信號(hào)調(diào)制方式采用BPSK,編碼采用BPSK曼徹斯特方式。TYPE B 采用的ASK 10%的調(diào)制方式信號(hào)無載波休止,因此更加穩(wěn)定,并且可以滿足將來高速通信的要求。

  3 多張卡片同時(shí)出現(xiàn)在終端操作范圍內(nèi)時(shí)防碰撞的實(shí)現(xiàn)方法

  3. 1 防沖突過程的指令

  TYPE B的防沖突是讀卡器對(duì)進(jìn)入其讀寫范圍內(nèi)的有效卡片按一定的順序進(jìn)行有條不紊的操作。在這個(gè)過程中,讀卡器始終處于主動(dòng)狀態(tài),通過一個(gè)命令集來管理與多張卡片的通信??ㄆ瑑?nèi)部的操作系統(tǒng),能夠?qū)ψx卡器發(fā)出的這組命令集進(jìn)行處理。當(dāng)讀寫器在檢測(cè)到?jīng)_突發(fā)生時(shí),讀寫器必須執(zhí)行相應(yīng)的防沖突(Anticollision)過程,以識(shí)別出每一張工作卡片,并準(zhǔn)備進(jìn)入傳輸協(xié)議的更高層, 以進(jìn)行后續(xù)的通信過程。ISO /IEC14443 - 3協(xié)議中TYPE B用于防沖突過程的指令如下:

  REQB /WUPB:用于查詢天線工作區(qū)中的卡片,在指令中包含了AFI應(yīng)用類標(biāo)識(shí)符和時(shí)隙個(gè)數(shù)N 的信息,WUPB也可用于喚醒處于掛起狀態(tài)的卡片。

  SLOTMARKER:用于對(duì)處于指令中所包含的時(shí)隙N 的卡片發(fā)出查詢命令。

  ATQB:用于對(duì)卡片接收到的REQB /WUPB和SLOTMARKER指令進(jìn)行響應(yīng)。它除了給出應(yīng)用數(shù)據(jù)和卡上支持的協(xié)議信息以外,還給出了在防沖突過程中用于區(qū)分卡片的4個(gè)字節(jié)的卡片唯一標(biāo)識(shí)號(hào)PUP I。

  ATTR IB:用于選擇指令中的PUP I所指定的卡片。同時(shí)也給出了讀寫器端的協(xié)議信息和用于多卡片通信環(huán)境下的唯一信道標(biāo)識(shí)CID。ATB:卡片發(fā)出的對(duì)于ATTR IB指令的響應(yīng)。

  HLTB:用于將卡片置于HALT掛起狀態(tài),處于掛起狀態(tài)的卡片只對(duì)WUPB響應(yīng)。

  ATH:卡片發(fā)出的對(duì)于HLTB指令的響應(yīng)。

  3. 2 防沖突過程中的狀態(tài)

  為了與讀卡器的命令相配合,卡片操作系統(tǒng)(COS)以狀態(tài)機(jī)的形式處理讀卡器發(fā)來的命令,為此,卡片內(nèi)部定義了5種處理狀態(tài),即POWEROFF狀態(tài)、IDLE 狀態(tài)、READY狀態(tài)、ACTIVE 狀態(tài)和HALT狀態(tài)。

  POWER OFF狀態(tài):由于沒有載波能量,卡片沒有能量。

  IDLE狀態(tài): 卡片上電復(fù)位后,進(jìn)入IDLE狀態(tài),這是卡片只對(duì)讀卡器發(fā)送的有效的并與卡片本身AF I匹配的REQB或WUPB命令進(jìn)行處理。

  READY狀態(tài):在這種狀態(tài)下卡片只處理有效的ATTR IB或者HLTB。

  ACTIVE狀態(tài):在這種狀態(tài)下卡片可以接收高層命令并進(jìn)行處理。

  HALT狀態(tài):在這種狀態(tài)下只接受WUPB 命令。

  圖1 防沖突過程實(shí)例圖

  3. 3 防沖突過程

  第一步:若有多張卡片進(jìn)入RF場(chǎng),當(dāng)讀卡器檢測(cè)到?jīng)_突之后,發(fā)送多時(shí)隙帶AF I應(yīng)用標(biāo)識(shí)符的REQB或者WUPB命令,那些與AF I相匹配的卡片,產(chǎn)生一個(gè)內(nèi)部隨機(jī)數(shù)R, R 的取值范圍在1~N 之間, R = 1的卡片即除在1時(shí)隙的卡片,回ATQB給讀卡器。若在1時(shí)隙內(nèi)有多于一張卡片回復(fù)ATQB,則發(fā)生新的沖突,這些卡片無法在此次防沖突循環(huán)中被識(shí)別出來,等待下次的防沖突循環(huán);若僅有一張卡片且正確回復(fù)ATQB,則讀卡器可接著發(fā)出ATTR IB或者HALT命令;若發(fā)AT2TR IB命令,則選定此卡進(jìn)入ACTIVE狀態(tài),此時(shí)卡片可接受高層命令并進(jìn)行處理, REQB 及WUPB命令無效,直至卡片離開射頻場(chǎng)內(nèi);若發(fā)出HLTB命令,則卡片進(jìn)入HALT狀態(tài),此時(shí)卡片只接受WUPB命令,直至卡片離開射頻場(chǎng)內(nèi)。

  第二步:讀卡器發(fā)SLOTMARKER命令,由小到大依次檢查2~N 這N - 1個(gè)時(shí)隙,選取卡片的原理和過程同第一步。

  第三步:若一次防沖突循環(huán)之后,還有卡片未被識(shí)別出來,則繼續(xù)執(zhí)行步驟1和步驟2,直至所有卡片被識(shí)別出來。

  防沖突循環(huán)允許在任何時(shí)間選擇一張或者多張卡進(jìn)行進(jìn)一步的高層通信。

  3. 4 防沖突過程實(shí)例

  實(shí)例如圖1所示。設(shè)同時(shí)有3張卡進(jìn)入RF場(chǎng)中, 3張卡片的應(yīng)用類型各不相同。首先讀卡器發(fā)單時(shí)隙REQB命令,卡片1和卡片3都回復(fù)了ATQB,讀卡器檢測(cè)到?jīng)_突后,改發(fā)4 時(shí)隙的REQB命令,卡片1 選擇了時(shí)隙2,這次不回復(fù)ATQB;卡片3選擇了1時(shí)隙,馬上回復(fù)ATQB;卡片2類型符不對(duì),所以不做反應(yīng)。然后讀卡器發(fā)時(shí)隙2的SLOTMARKER命令,卡片1回復(fù)AT2QB;卡片2類型不符,還是不做回復(fù),卡片3時(shí)隙不符也不做回復(fù)。讀卡器接著發(fā)出時(shí)隙3和時(shí)隙4的SLOTMARKER命令,卡片1和3不在這2個(gè)時(shí)隙內(nèi),不做回復(fù);卡片2 類型不對(duì),也不做回復(fù);此時(shí)卡片1和3等待著HLTB或者ATTR IB,所以這2個(gè)時(shí)隙內(nèi)沒有回復(fù)。讀卡器接著發(fā)時(shí)隙3和時(shí)隙4的SLOTMARKER命令,卡片1和3不在這2個(gè)時(shí)隙內(nèi),不做回復(fù);卡片2 類型不對(duì),也不做回復(fù);此時(shí)卡片1和3等待著HLTB或者ATTR IB,所以這2個(gè)時(shí)隙內(nèi)沒有回復(fù)。

  4 實(shí) 驗(yàn)

  讀卡器的設(shè)計(jì)采用P IC16F876單片機(jī),以及符合ISO14443 - A和ISO14443 - B協(xié)議的PH IL2IP公司的MF RC531 ISO14443讀卡芯片。RC531可以讀TYPE A 和TYPE B 卡,能完成產(chǎn)生RF場(chǎng)、收發(fā)數(shù)據(jù)、檢查CRC等所有與IC卡對(duì)話所需的工作。它根據(jù)單片機(jī)發(fā)出的命令進(jìn)行相應(yīng)的操作, 在編程語言上采用C語言。

  5 結(jié) 論

  在絕大多數(shù)實(shí)際應(yīng)用中,同一時(shí)間內(nèi)RF場(chǎng)中一般都只會(huì)出現(xiàn)一張卡片(如考勤機(jī)) ,所以整個(gè)系統(tǒng)在默認(rèn)的狀態(tài)下是不停地發(fā)送單時(shí)隙的讀卡命令。當(dāng)檢測(cè)到有沖突時(shí),考慮到RF場(chǎng)的作用范圍(10 cm)和實(shí)際應(yīng)用情況,這時(shí)改發(fā)4時(shí)隙的讀卡命令,執(zhí)行防沖突循環(huán)。這樣的設(shè)計(jì)方式既保證了絕大多數(shù)情況下讀卡器準(zhǔn)確、迅速地識(shí)別卡片,又保證了沖突發(fā)生時(shí)對(duì)多張卡片的正確識(shí)別。另外由于軟件編寫采用的是C語言,因而代碼效率高,可移植性好。對(duì)于其他單片機(jī)控制RC531的設(shè)計(jì)可以不做大的修改加以應(yīng)用。根據(jù)防沖突模型,在PH IL IP公司的RC531非接觸式IC卡芯片上實(shí)現(xiàn)了防沖突協(xié)議,實(shí)際應(yīng)用證明系統(tǒng)運(yùn)行高效、正確。


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。