張鵬程,張紅雨,鄧一文
(電子科技大學(xué)電子工程學(xué)院,四川成都611731)
非接觸式IC卡是RFID領(lǐng)域的一項(xiàng)新興的技術(shù),它是射頻識(shí)別技術(shù)和IC卡技術(shù)相結(jié)合的產(chǎn)物。由于非接觸式IC卡具有操作快捷、讀寫卡速度快、抗干擾性強(qiáng)、安全性高、壽命長(zhǎng)、便于一卡多用等優(yōu)點(diǎn),在自動(dòng)收費(fèi)、身份識(shí)別和電子錢包等領(lǐng)域具有接觸式所無法比擬的優(yōu)越性,具有廣闊的市場(chǎng)前景[1]。非接觸式IC讀卡器是非接觸式IC卡應(yīng)用系統(tǒng)的關(guān)鍵設(shè)備之一,目前市場(chǎng)上絕大多數(shù)讀卡器都采用傳統(tǒng)的RS232接口與計(jì)算機(jī)串行口連接。在本文中將討論基于SN8P2204芯片的USB接口非接觸式IC卡讀卡器的實(shí)現(xiàn)方法和符合ISO14443A規(guī)范的防沖突算法。
系統(tǒng)主要由:控制模塊(SN8P2204)、射頻模塊(RC500)、天線及Mifare1型卡(IC卡)及蜂鳴器(Buzzer)和顯示燈(LED)組成。其系統(tǒng)構(gòu)成如圖1所示。
控制模塊中單片機(jī)選用臺(tái)灣松瀚科技設(shè)計(jì)的一款帶USB接口的控制芯片SN8P2204,其特點(diǎn)有:采用RSIC精簡(jiǎn)指令集,指令長(zhǎng)度在1個(gè)指令周期;指令周期短,大部分指令在1個(gè)指令周期內(nèi)完成;高度工作可靠性:高抗交流干擾內(nèi)力,高可靠上電、掉電復(fù)位能力;高速,低功耗特性??刂颇K中還包括USB通信接口,用來完成系統(tǒng)與上位機(jī)的數(shù)據(jù)交互傳輸工作;蜂鳴器和LED燈,用來完成系統(tǒng)狀態(tài)的指示和報(bào)警。
圖1 系統(tǒng)框圖Fig.1 System block diagram
射頻模塊的核心模塊是MF RC500射頻芯片,該模塊是應(yīng)用于13.56 MHz的非接觸式通信中的高集成度讀寫芯片,它利用了先進(jìn)的調(diào)制和解調(diào)概念完全集成了在13.56 MHz下所有類型的被動(dòng)非接觸通信方式和協(xié)議;MF RC500支持ISO/IEC l4443A的所有層;內(nèi)部的發(fā)送器部分不需要有源電路就能夠直接驅(qū)動(dòng)近距離操作的天線,操作距離可達(dá)100 mm;接收部分提供一個(gè)有效的解調(diào)和解碼電路用于和ISO/IEC l4443A相兼容的電子標(biāo)簽[2];數(shù)據(jù)處理部分可處理符合ISO/IEC l4443A協(xié)議的數(shù)據(jù)幀和錯(cuò)誤檢測(cè)(CRC和奇偶校驗(yàn));支持用于驗(yàn)證Mifare1系列應(yīng)答器的快速crypto1加密算法,用于Mifare1經(jīng)典產(chǎn)品的安全認(rèn)證;此外它還具有方便的并行接口可直接連接任何一種8位微處理器,這樣給讀卡器終端的設(shè)計(jì)提供了極大的靈活性。SN8P2204與MF RC500的引腳連接如圖2所示。
圖2 SN8P2204和RC500連接圖Fig.2 The connection of SN8P2204 and RC500
應(yīng)答器PICC(Mifare1卡)是射頻識(shí)別系統(tǒng)真正的數(shù)據(jù)載體,即我們通常所說的IC卡。應(yīng)答器由耦合元件以及微電子芯片組成。在讀卡器的響應(yīng)范圍之外,應(yīng)答器處于無源狀態(tài)。通常,應(yīng)答器沒有自己供電電源。只是在讀卡器的響應(yīng)范圍之內(nèi),應(yīng)答器才是有源的。應(yīng)答器工作所需的能量,如同時(shí)鐘脈沖和數(shù)據(jù)一樣,是通過耦合單元(非接觸的)傳輸給應(yīng)答器的。
MF RC500和天線部分的引腳連接如圖3所示。讀寫芯片是通過天線與IC卡交換數(shù)的,讀寫芯片是通過天線與IC卡交換數(shù)據(jù)的,MF RC500通過TX1和TX2引腳提供13.56 MHz的能量載波,并根據(jù)內(nèi)部寄存器的設(shè)定對(duì)發(fā)送數(shù)據(jù)進(jìn)行調(diào)制而得到發(fā)送信號(hào)。天線采用直接匹配電路。其中低通濾波電路由L1、L2、C19、C20組成,它們的典型取值為電感2.2 μH,電容47 pF。MF RC500的內(nèi)部接收單元采取新的接收概念,它使用了卡的子載波引導(dǎo)調(diào)制生成的雙邊帶信號(hào)。使用內(nèi)部RC500內(nèi)部產(chǎn)生的VMID電位作為RX管腳的輸入電位。為減少擾動(dòng),需用電容將VMID接地。讀卡器的輸入單元需要在RX和VMID間增加電源驅(qū)動(dòng),此外,在天線線圈和電壓驅(qū)動(dòng)之間使用了串聯(lián)電容C18。接收電路包括R7、R8、C17、C18。天線電路的剩下部分就是線圈和外面的電容電阻構(gòu)成的一個(gè)RLC諧振網(wǎng)絡(luò),適當(dāng)調(diào)整其中的電容電阻值,可以使天線網(wǎng)絡(luò)在13.56 MHz諧振,這時(shí)讀卡距離可以達(dá)到最大[3]。
布線制版應(yīng)采用雙層板以降低成本,同時(shí)又能滿足要求,板厚要求為1.6 mm;天線采用PCB線圈的形式,但由于板面積的減少,就要求多畫幾圈,天線的鍍銅厚度要求為35 μm;低通濾波電路模塊是用來過濾MF RC500的輸出信號(hào),所以L1、L2、C19、C20必須緊靠在MF RC500的Tx1和Tx2管腳,C19、C20的接地線應(yīng)該非常短并且到MF RC500的TGND管腳的組織應(yīng)該非常小,這些原件應(yīng)精密排布以抑制載頻的高次諧波;天線線圈采用4圈PCB線圈,線寬為1 mm并且內(nèi)外線圈間距和線寬相等,線圈應(yīng)在位于PCB的同一面,并且繞著PCB的邊緣纏繞;其他元件應(yīng)盡量拍位于天線線圈的內(nèi)部,這樣可以減少對(duì)天線的干擾,增大讀寫距離。
實(shí)用RFID系統(tǒng)為無源系統(tǒng),即射頻卡內(nèi)不含電池,射頻卡的能量由讀寫器發(fā)出的射頻脈沖提供。系統(tǒng)工作過程如下[4];
1)讀卡器在一個(gè)區(qū)域內(nèi)發(fā)射能量形成電磁場(chǎng),區(qū)域大小取決于發(fā)射功率、工作頻率和天線尺寸等因素;
2)IC卡進(jìn)入這個(gè)區(qū)域時(shí),接收到讀卡器的射頻脈沖,經(jīng)過橋式整流后給電容充電。電容電壓經(jīng)過穩(wěn)壓后作為其工作電壓;
圖3 RC500和天線連接圖Fig.3 The connection of RC500 and antenna
3)數(shù)據(jù)解調(diào)部分從接收到的射頻脈沖中解調(diào)出命令和數(shù)據(jù)并送到控制邏輯,控制邏輯接受指令完成存儲(chǔ)、發(fā)送數(shù)據(jù)或其他操作;
4)如需要發(fā)送數(shù)據(jù),則將數(shù)據(jù)調(diào)試后從收發(fā)模塊發(fā)送出去;
5)讀卡器接收到返回的數(shù)據(jù)后,解碼并進(jìn)行錯(cuò)誤校驗(yàn)來決定數(shù)據(jù)的有效性,然后進(jìn)行處理,然后通過USB接口將數(shù)據(jù)發(fā)送到計(jì)算機(jī)。
讀寫器發(fā)送的射頻信號(hào)除提供給非接觸式IC卡能量外,通常還提供時(shí)鐘信號(hào),使數(shù)據(jù)保持同步。
本系統(tǒng)采用針對(duì)Mifare1型智能卡進(jìn)行設(shè)計(jì),該卡的主要技術(shù)指標(biāo)有如下:
1)容量為8 k位(bits)=1 k字節(jié)(bytes)EEPROM,分為16個(gè)扇區(qū),每個(gè)扇區(qū)為4塊,每塊16個(gè)字節(jié),以塊為存取單位;
2)每個(gè)扇區(qū)有獨(dú)立的一組密碼及訪問控制,每張卡有唯一的32位序列號(hào),具有防沖突機(jī)制,支持多卡操作;
3)無電源且自帶天線,內(nèi)含加密控制邏輯和通訊邏輯電路,數(shù)據(jù)保存期為10年,可改寫10萬次,讀無限次;
4)工作溫度為-20~50℃(濕度為90%),工作頻率13.56MHz,通信速率106 kb/s,讀寫距離:10 cm以內(nèi)(與讀寫器有關(guān))。
第0扇區(qū)的塊0(即絕對(duì)地址0塊),它用于存放廠商代碼,已經(jīng)固化,不可更改;每個(gè)扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,可用于存貯數(shù)據(jù);每個(gè)扇區(qū)的塊3為控制塊,包括了密碼A、存取控制、密碼B。本設(shè)計(jì)采用密碼A型設(shè)計(jì),未使用到密碼B。
其工作原理為[5]:讀寫器向M1卡發(fā)一組固定頻率的電磁波,卡片內(nèi)有一個(gè)LC串聯(lián)諧振電路,其頻率與讀寫器發(fā)射的頻率相同,在電磁波的激勵(lì)下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個(gè)電容的另一端,接有一個(gè)單向?qū)ǖ碾娮颖茫瑢㈦娙輧?nèi)的電荷送到另一個(gè)電容內(nèi)儲(chǔ)存,當(dāng)所積累的電荷達(dá)到2 V時(shí),此電容可作為電源為其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接取讀寫器的數(shù)據(jù)。系統(tǒng)軟件設(shè)流程如圖4所示。
1)復(fù)位應(yīng)答:M1射頻卡的通信協(xié)議和通信波特率是預(yù)先定義好的,當(dāng)有卡片進(jìn)入讀寫器的操作范圍內(nèi)時(shí),讀寫器以特定的協(xié)議和它通信,從而確定該卡是否為M1型射頻卡;
2)防沖突機(jī)制:當(dāng)有多張卡進(jìn)入讀寫器的操作范圍內(nèi)時(shí),防沖突機(jī)制會(huì)從中選擇出一張卡進(jìn)行操作,未選中的則進(jìn)入空閑模式等待下一次選卡,該過程返回被選卡的序列號(hào);
3)卡片選擇:選擇被選中卡的序列號(hào),并同時(shí)返回卡的容量代碼;
4)3次相互驗(yàn)證:選定要處理的卡片后,讀寫器就要確定要返回的扇區(qū)號(hào),并對(duì)該扇區(qū)密碼進(jìn)行密碼校驗(yàn),在3次相互認(rèn)證后就可以通過加密流進(jìn)行通信(在重新選擇另外的扇區(qū)時(shí),必須對(duì)另外的扇區(qū)密碼進(jìn)行密碼校驗(yàn));
5)對(duì)數(shù)據(jù)塊的操作:讀,即讀一個(gè)塊中的數(shù)據(jù);寫,即向一個(gè)塊寫入數(shù)據(jù);加,對(duì)數(shù)值塊進(jìn)行加值;減,對(duì)數(shù)值塊進(jìn)行減值;存儲(chǔ),將塊中的內(nèi)容存到數(shù)據(jù)寄存器中;傳輸,將數(shù)據(jù)寄存器中的內(nèi)容寫入到塊中;中止,將卡置于暫停工作狀態(tài)[6]。
根據(jù)ISO14443協(xié)議,M1型卡傳統(tǒng)的防沖突算法是動(dòng)態(tài)二進(jìn)制檢索樹算法。它首先利用MANCH ESTER編碼“沒有變化”的狀態(tài)來檢測(cè)碰撞位,然后把碰撞位設(shè)為二進(jìn)制“1”,用SELECT命令發(fā)送碰撞前接收的部分卡片序列號(hào)和碰撞位,如果卡片開頭部分序列號(hào)與其相同,則作出應(yīng)答,不相同則沒有響應(yīng)。以此來縮小卡片范圍,最終達(dá)到無碰撞。但是,傳統(tǒng)的防碰撞方法要求所有應(yīng)答器準(zhǔn)確同步,應(yīng)答器必須準(zhǔn)確地在同一時(shí)刻開始傳輸它們的序列號(hào)。然而,在實(shí)際使用中,應(yīng)答器由用戶控制,可能產(chǎn)生異步發(fā)送數(shù)據(jù),如果仍然采用傳統(tǒng)防沖突算法,有可能導(dǎo)致死循環(huán)。為了解決死循環(huán)問題[7],在傳統(tǒng)算法的基礎(chǔ)上設(shè)置了一個(gè)記錄碰撞位數(shù)的變量,如果第二次碰撞位數(shù)和第一次相等,則把SELECT發(fā)送的部分卡號(hào)增加一位,設(shè)為二進(jìn)制數(shù)“1”發(fā)送出去。如果在規(guī)定時(shí)間內(nèi)沒有收到應(yīng)答,則把增加位設(shè)為“0”發(fā)送出去??梢杂行ьA(yù)防由于應(yīng)答器異步導(dǎo)致的死循環(huán)問題。改進(jìn)流程如圖5所示。
圖5 改進(jìn)的防沖突算法Fig.5 The improved anti-collision algorithm
通過測(cè)試,所涉及的基于SN8P2204的RFID高頻閱讀器能夠按照系統(tǒng)要求進(jìn)行復(fù)位、選卡、防沖突驗(yàn)證,寫卡等相關(guān)操作。若配合上層應(yīng)用軟件,能夠和銀行系統(tǒng)對(duì)接,能夠?qū)崿F(xiàn)相關(guān)的收費(fèi)系統(tǒng)的設(shè)計(jì),能夠應(yīng)用于網(wǎng)吧、公交系統(tǒng)、門禁、監(jiān)控等行業(yè)。按照本文所提出的方法所設(shè)計(jì)出的IC閱讀器現(xiàn)在已生產(chǎn)出幾百臺(tái),并應(yīng)用于四川西昌市的蠶繭收購(gòu)中,到目前為止還未出現(xiàn)設(shè)計(jì)問題。IC卡以其高度的信息集成及安全性已經(jīng)融入當(dāng)今信息技術(shù)的主流,越來越受到人們的青睞。筆者提出了一種基于Philips公司的MF RC500射頻芯片與臺(tái)灣松瀚科技的SN8P2204控制芯片相結(jié)合的低成本,低功耗的IC讀卡器設(shè)計(jì)方案。對(duì)IC卡系統(tǒng)的推廣和研究有積極的推廣意義。
[1] 朗為民.射頻識(shí)別技術(shù)(RFID)技術(shù)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[2] Finkenzeller K.射頻識(shí)別(RFID)技術(shù)[M].陳大才,譯.北京:電子工業(yè)出版社,2001.
[3] 任路,孫運(yùn)強(qiáng),姚愛琴.煤礦非接觸式智能考勤定位系統(tǒng)研究[J].煤炭技術(shù),2010,29(9):237-239.REN Lu,SUN Yun-qiang,YAO Ai-qin.Research on noncontact intelligent attendance and location systemin coal mine[J].Coal Technology,2010,29(9):237-239.
[4] 黃從貴.基于TCP/IP協(xié)議的非接觸式網(wǎng)絡(luò)讀寫器設(shè)計(jì)[J].儀器儀表用戶,2005,12(2):64-66.HUANG Cong-gui.The design of non-contact-type network PCD based on TCP/IP agreement[J].Electronic Instrumentation Customer,2005,12(2):64-66.
[5] 陳振,劉年生,李琳,等.一種適用于RFID讀寫器的加密算法及其實(shí)現(xiàn)[J].信息與電子工程,2009,7(4):349-353.CHEN Zhen,LIU Nian-sheng,LI Lin,et al.Encryption algorithm for RFID reader and its implementation[J].Information and Electronic Engineering,2009,7(4):349-353.
[6] 項(xiàng)磊.基于RF的無線巡更系統(tǒng)研究[D].天津:天津大學(xué),2007.
[7] 孫恩巖.射頻卡讀寫器的研究與應(yīng)用[D].沈陽:沈陽航空工業(yè)學(xué)院,2007.