張鵬程,張紅雨,鄧一文
(電子科技大學電子工程學院,四川成都611731)
非接觸式IC卡是RFID領(lǐng)域的一項新興的技術(shù),它是射頻識別技術(shù)和IC卡技術(shù)相結(jié)合的產(chǎn)物。由于非接觸式IC卡具有操作快捷、讀寫卡速度快、抗干擾性強、安全性高、壽命長、便于一卡多用等優(yōu)點,在自動收費、身份識別和電子錢包等領(lǐng)域具有接觸式所無法比擬的優(yōu)越性,具有廣闊的市場前景[1]。非接觸式IC讀卡器是非接觸式IC卡應用系統(tǒng)的關(guān)鍵設(shè)備之一,目前市場上絕大多數(shù)讀卡器都采用傳統(tǒng)的RS232接口與計算機串行口連接。在本文中將討論基于SN8P2204芯片的USB接口非接觸式IC卡讀卡器的實現(xiàn)方法和符合ISO14443A規(guī)范的防沖突算法。
系統(tǒng)主要由:控制模塊(SN8P2204)、射頻模塊(RC500)、天線及Mifare1型卡(IC卡)及蜂鳴器(Buzzer)和顯示燈(LED)組成。其系統(tǒng)構(gòu)成如圖1所示。
控制模塊中單片機選用臺灣松瀚科技設(shè)計的一款帶USB接口的控制芯片SN8P2204,其特點有:采用RSIC精簡指令集,指令長度在1個指令周期;指令周期短,大部分指令在1個指令周期內(nèi)完成;高度工作可靠性:高抗交流干擾內(nèi)力,高可靠上電、掉電復位能力;高速,低功耗特性。控制模塊中還包括USB通信接口,用來完成系統(tǒng)與上位機的數(shù)據(jù)交互傳輸工作;蜂鳴器和LED燈,用來完成系統(tǒng)狀態(tài)的指示和報警。

圖1 系統(tǒng)框圖Fig.1 System block diagram
射頻模塊的核心模塊是MF RC500射頻芯片,該模塊是應用于13.56 MHz的非接觸式通信中的高集成度讀寫芯片,它利用了先進的調(diào)制和解調(diào)概念完全集成了在13.56 MHz下所有類型的被動非接觸通信方式和協(xié)議;MF RC500支持ISO/IEC l4443A的所有層;內(nèi)部的發(fā)送器部分不需要有源電路就能夠直接驅(qū)動近距離操作的天線,操作距離可達100 mm;接收部分提供一個有效的解調(diào)和解碼電路用于和ISO/IEC l4443A相兼容的電子標簽[2];數(shù)據(jù)處理部分可處理符合ISO/IEC l4443A協(xié)議的數(shù)據(jù)幀和錯誤檢測(CRC和奇偶校驗);支持用于驗證Mifare1系列應答器的快速crypto1加密算法,用于Mifare1經(jīng)典產(chǎn)品的安全認證;此外它還具有方便的并行接口可直接連接任何一種8位微處理器,這樣給讀卡器終端的設(shè)計提供了極大的靈活性。SN8P2204與MF RC500的引腳連接如圖2所示。

圖2 SN8P2204和RC500連接圖Fig.2 The connection of SN8P2204 and RC500
應答器PICC(Mifare1卡)是射頻識別系統(tǒng)真正的數(shù)據(jù)載體,即我們通常所說的IC卡。應答器由耦合元件以及微電子芯片組成。在讀卡器的響應范圍之外,應答器處于無源狀態(tài)。通常,應答器沒有自己供電電源。只是在讀卡器的響應范圍之內(nèi),應答器才是有源的。應答器工作所需的能量,如同時鐘脈沖和數(shù)據(jù)一樣,是通過耦合單元(非接觸的)傳輸給應答器的。
MF RC500和天線部分的引腳連接如圖3所示。讀寫芯片是通過天線與IC卡交換數(shù)的,讀寫芯片是通過天線與IC卡交換數(shù)據(jù)的,MF RC500通過TX1和TX2引腳提供13.56 MHz的能量載波,并根據(jù)內(nèi)部寄存器的設(shè)定對發(fā)送數(shù)據(jù)進行調(diào)制而得到發(fā)送信號。天線采用直接匹配電路。其中低通濾波電路由L1、L2、C19、C20組成,它們的典型取值為電感2.2 μH,電容47 pF。MF RC500的內(nèi)部接收單元采取新的接收概念,它使用了卡的子載波引導調(diào)制生成的雙邊帶信號。使用內(nèi)部RC500內(nèi)部產(chǎn)生的VMID電位作為RX管腳的輸入電位。為減少擾動,需用電容將VMID接地。讀卡器的輸入單元需要在RX和VMID間增加電源驅(qū)動,此外,在天線線圈和電壓驅(qū)動之間使用了串聯(lián)電容C18。接收電路包括R7、R8、C17、C18。天線電路的剩下部分就是線圈和外面的電容電阻構(gòu)成的一個RLC諧振網(wǎng)絡(luò),適當調(diào)整其中的電容電阻值,可以使天線網(wǎng)絡(luò)在13.56 MHz諧振,這時讀卡距離可以達到最大[3]。
布線制版應采用雙層板以降低成本,同時又能滿足要求,板厚要求為1.6 mm;天線采用PCB線圈的形式,但由于板面積的減少,就要求多畫幾圈,天線的鍍銅厚度要求為35 μm;低通濾波電路模塊是用來過濾MF RC500的輸出信號,所以L1、L2、C19、C20必須緊靠在MF RC500的Tx1和Tx2管腳,C19、C20的接地線應該非常短并且到MF RC500的TGND管腳的組織應該非常小,這些原件應精密排布以抑制載頻的高次諧波;天線線圈采用4圈PCB線圈,線寬為1 mm并且內(nèi)外線圈間距和線寬相等,線圈應在位于PCB的同一面,并且繞著PCB的邊緣纏繞;其他元件應盡量拍位于天線線圈的內(nèi)部,這樣可以減少對天線的干擾,增大讀寫距離。
實用RFID系統(tǒng)為無源系統(tǒng),即射頻卡內(nèi)不含電池,射頻卡的能量由讀寫器發(fā)出的射頻脈沖提供。系統(tǒng)工作過程如下[4];
1)讀卡器在一個區(qū)域內(nèi)發(fā)射能量形成電磁場,區(qū)域大小取決于發(fā)射功率、工作頻率和天線尺寸等因素;
2)IC卡進入這個區(qū)域時,接收到讀卡器的射頻脈沖,經(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ù)并送到控制邏輯,控制邏輯接受指令完成存儲、發(fā)送數(shù)據(jù)或其他操作;
4)如需要發(fā)送數(shù)據(jù),則將數(shù)據(jù)調(diào)試后從收發(fā)模塊發(fā)送出去;
5)讀卡器接收到返回的數(shù)據(jù)后,解碼并進行錯誤校驗來決定數(shù)據(jù)的有效性,然后進行處理,然后通過USB接口將數(shù)據(jù)發(fā)送到計算機。
讀寫器發(fā)送的射頻信號除提供給非接觸式IC卡能量外,通常還提供時鐘信號,使數(shù)據(jù)保持同步。
本系統(tǒng)采用針對Mifare1型智能卡進行設(shè)計,該卡的主要技術(shù)指標有如下:
1)容量為8 k位(bits)=1 k字節(jié)(bytes)EEPROM,分為16個扇區(qū),每個扇區(qū)為4塊,每塊16個字節(jié),以塊為存取單位;
2)每個扇區(qū)有獨立的一組密碼及訪問控制,每張卡有唯一的32位序列號,具有防沖突機制,支持多卡操作;
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(即絕對地址0塊),它用于存放廠商代碼,已經(jīng)固化,不可更改;每個扇區(qū)的塊0、塊1、塊2為數(shù)據(jù)塊,可用于存貯數(shù)據(jù);每個扇區(qū)的塊3為控制塊,包括了密碼A、存取控制、密碼B。本設(shè)計采用密碼A型設(shè)計,未使用到密碼B。
其工作原理為[5]:讀寫器向M1卡發(fā)一組固定頻率的電磁波,卡片內(nèi)有一個LC串聯(lián)諧振電路,其頻率與讀寫器發(fā)射的頻率相同,在電磁波的激勵下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個電容的另一端,接有一個單向?qū)ǖ碾娮颖茫瑢㈦娙輧?nèi)的電荷送到另一個電容內(nèi)儲存,當所積累的電荷達到2 V時,此電容可作為電源為其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或接取讀寫器的數(shù)據(jù)。系統(tǒng)軟件設(shè)流程如圖4所示。
1)復位應答:M1射頻卡的通信協(xié)議和通信波特率是預先定義好的,當有卡片進入讀寫器的操作范圍內(nèi)時,讀寫器以特定的協(xié)議和它通信,從而確定該卡是否為M1型射頻卡;
2)防沖突機制:當有多張卡進入讀寫器的操作范圍內(nèi)時,防沖突機制會從中選擇出一張卡進行操作,未選中的則進入空閑模式等待下一次選卡,該過程返回被選卡的序列號;
3)卡片選擇:選擇被選中卡的序列號,并同時返回卡的容量代碼;
4)3次相互驗證:選定要處理的卡片后,讀寫器就要確定要返回的扇區(qū)號,并對該扇區(qū)密碼進行密碼校驗,在3次相互認證后就可以通過加密流進行通信(在重新選擇另外的扇區(qū)時,必須對另外的扇區(qū)密碼進行密碼校驗);
5)對數(shù)據(jù)塊的操作:讀,即讀一個塊中的數(shù)據(jù);寫,即向一個塊寫入數(shù)據(jù);加,對數(shù)值塊進行加值;減,對數(shù)值塊進行減值;存儲,將塊中的內(nèi)容存到數(shù)據(jù)寄存器中;傳輸,將數(shù)據(jù)寄存器中的內(nèi)容寫入到塊中;中止,將卡置于暫停工作狀態(tài)[6]。
根據(jù)ISO14443協(xié)議,M1型卡傳統(tǒng)的防沖突算法是動態(tài)二進制檢索樹算法。它首先利用MANCH ESTER編碼“沒有變化”的狀態(tài)來檢測碰撞位,然后把碰撞位設(shè)為二進制“1”,用SELECT命令發(fā)送碰撞前接收的部分卡片序列號和碰撞位,如果卡片開頭部分序列號與其相同,則作出應答,不相同則沒有響應。以此來縮小卡片范圍,最終達到無碰撞。但是,傳統(tǒng)的防碰撞方法要求所有應答器準確同步,應答器必須準確地在同一時刻開始傳輸它們的序列號。然而,在實際使用中,應答器由用戶控制,可能產(chǎn)生異步發(fā)送數(shù)據(jù),如果仍然采用傳統(tǒng)防沖突算法,有可能導致死循環(huán)。為了解決死循環(huán)問題[7],在傳統(tǒng)算法的基礎(chǔ)上設(shè)置了一個記錄碰撞位數(shù)的變量,如果第二次碰撞位數(shù)和第一次相等,則把SELECT發(fā)送的部分卡號增加一位,設(shè)為二進制數(shù)“1”發(fā)送出去。如果在規(guī)定時間內(nèi)沒有收到應答,則把增加位設(shè)為“0”發(fā)送出去。可以有效預防由于應答器異步導致的死循環(huán)問題。改進流程如圖5所示。

圖5 改進的防沖突算法Fig.5 The improved anti-collision algorithm
通過測試,所涉及的基于SN8P2204的RFID高頻閱讀器能夠按照系統(tǒng)要求進行復位、選卡、防沖突驗證,寫卡等相關(guān)操作。若配合上層應用軟件,能夠和銀行系統(tǒng)對接,能夠?qū)崿F(xiàn)相關(guān)的收費系統(tǒng)的設(shè)計,能夠應用于網(wǎng)吧、公交系統(tǒng)、門禁、監(jiān)控等行業(yè)。按照本文所提出的方法所設(shè)計出的IC閱讀器現(xiàn)在已生產(chǎn)出幾百臺,并應用于四川西昌市的蠶繭收購中,到目前為止還未出現(xiàn)設(shè)計問題。IC卡以其高度的信息集成及安全性已經(jīng)融入當今信息技術(shù)的主流,越來越受到人們的青睞。筆者提出了一種基于Philips公司的MF RC500射頻芯片與臺灣松瀚科技的SN8P2204控制芯片相結(jié)合的低成本,低功耗的IC讀卡器設(shè)計方案。對IC卡系統(tǒng)的推廣和研究有積極的推廣意義。
[1] 朗為民.射頻識別技術(shù)(RFID)技術(shù)原理與應用[M].北京:機械工業(yè)出版社,2006.
[2] Finkenzeller K.射頻識別(RFID)技術(shù)[M].陳大才,譯.北京:電子工業(yè)出版社,2001.
[3] 任路,孫運強,姚愛琴.煤礦非接觸式智能考勤定位系統(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].儀器儀表用戶,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讀寫器的加密算法及其實現(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] 項磊.基于RF的無線巡更系統(tǒng)研究[D].天津:天津大學,2007.
[7] 孫恩巖.射頻卡讀寫器的研究與應用[D].沈陽:沈陽航空工業(yè)學院,2007.