版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第3章非接觸式IC卡技術(shù)3.1實訓(xùn)4:非接觸式IC卡的訪問操作與存儲結(jié)構(gòu)3.2非接觸式IC卡概述3.3非接觸式IC卡的工作原理3.4非接觸式IC卡芯片技術(shù)3.5非接觸式IC卡接口設(shè)備內(nèi)核技術(shù)3.6實訓(xùn)5:非接觸式IC卡的讀寫控制3.7其他類非接觸式IC卡技術(shù)思考題13.1實訓(xùn)4:非接觸式IC卡的訪問操作與存儲結(jié)構(gòu)1.實訓(xùn)目的(1)建立對非接觸式IC卡的感性認(rèn)識。(2)理解和掌握MIFARE1卡(M1卡)的存儲結(jié)構(gòu)。(3)通過MIFARE非接觸式IC卡開發(fā)系統(tǒng)的使用,了解MIFARE卡的基本操作方法。2
2.實訓(xùn)設(shè)備與器件(1)實訓(xùn)設(shè)備:MIFARE系列非接觸式IC卡開發(fā)板,586電腦,MIFARE系列非接觸式IC卡開發(fā)系統(tǒng)演示軟件。(2)實訓(xùn)器件:MIFARE1卡。3
3.實訓(xùn)步驟與要求1)RF系列非接觸式IC卡開發(fā)系統(tǒng)的安裝(1)按系統(tǒng)提示安裝MIFARE系列非接觸式IC卡開發(fā)系統(tǒng)演示軟件MWRF。(2)按標(biāo)志連接MIFARE系列非接觸式IC卡開發(fā)板的電源線及串口線,注意電源+5V與地不可接反。42)使用MIFARE系列接觸式IC卡開發(fā)系統(tǒng)演示軟件MWRF訪問MIFARE1卡(1)按使用手冊的說明操作演示軟件,對MIFARE非接觸式IC卡開發(fā)板的MCM進行建立連接/裝載密碼(LoadKey)操作。實驗用MIFARE1卡所有扇區(qū)的初始密碼被設(shè)置為FFFFFFH。在演示軟件界面中選擇密碼集0,密碼A,將扇區(qū)0~14的密碼A設(shè)置為FFFFFFH,而將扇區(qū)15的密碼A設(shè)置為000000H。啟動密碼下載,下載過程中紅色指示燈點亮;下載完畢后紅色指示燈熄滅。這一步驟與卡無關(guān)。5(2)將MIFARE1卡按任意方向置入MIFARE開發(fā)板天線有效工作范圍內(nèi),對MIFARE1卡的各扇區(qū)的塊0、1、2進行讀/寫操作,操作界面如圖3.1所示。在表3.1中記錄讀取的卡數(shù)據(jù)并分析其存儲結(jié)構(gòu),標(biāo)明各塊的類型及卡的類型號、序列號、容量及各扇區(qū)的密碼和訪問權(quán)限。注意:不得隨意修改各扇區(qū)塊3的數(shù)據(jù),特別是訪問權(quán)限字節(jié),以免造成扇區(qū)被鎖死。6圖3.1RF系列非接觸式IC卡開發(fā)系統(tǒng)演示軟件MWRF操作界面7表3.1MIFARE1存儲結(jié)構(gòu)記錄與數(shù)據(jù)分析表83)測試防沖突功能(1)分別讀出并記錄兩張MIFARE1卡的序列號。(2)分別將這兩張MIFARE1卡的扇區(qū)0塊1的數(shù)據(jù)修改為FFFFFFFFFFFFFFFFH。(3)將兩張MIFARE1卡同時放置在讀寫器天線有效工作范圍內(nèi),讀出扇區(qū)0塊0的數(shù)據(jù),找出被選中的卡(記為1#卡)的序列號,將扇區(qū)0塊1的數(shù)據(jù)修改為00000H。(4)將被選中的卡撤離讀寫器天線的有效工作范圍,讀出下一張被選中的卡(記為2#卡)的序列號,并讀出其扇區(qū)0塊1的數(shù)據(jù),在表3.2中記入數(shù)據(jù)1。(5)取走2#卡,重新讀出1#卡的扇區(qū)0塊1的數(shù)據(jù),在表3.2中記入數(shù)據(jù)2。9表3.2防沖突測試記錄表10
4.實訓(xùn)總結(jié)與分析(1)由步驟2的操作及表3.1的數(shù)據(jù)分析可以看到,MIFARE1卡的存儲容量為8Kb(1KB),并劃分為16個扇區(qū),每個扇區(qū)劃分為4個數(shù)據(jù)存儲塊,每個數(shù)據(jù)塊有16B。每個扇區(qū)的塊3存放著該扇區(qū)的密碼和存取控制條件,即每個扇區(qū)可有不同的密碼和多種密碼管理方式。(2)每個扇區(qū)無論讀/寫都必須先通過密碼認(rèn)證。(3)每張卡具有惟一的卡片序列號,沒有相同的兩張MIFARE卡片。由上述分析可以看到,MIFARE卡具有極高的安全性,能夠?qū)崿F(xiàn)一卡多用。11(4)由步驟3的操作及表3.2的數(shù)據(jù)分析可以看到MIFARE卡片具備防沖突功能。當(dāng)一張以上的卡同時處在讀寫器天線的有效工作范圍內(nèi)(發(fā)生沖突)時,讀寫器可根據(jù)卡片的全球惟一的序列號選擇其中一張卡并使之激活,能且僅能對這張卡進行下一步的操作;而其他卡不會同時被選中,不能進行下一步的操作。這樣就避免了對重疊卡的誤操作。由于采用了非接觸式操作,有可能出現(xiàn)多張卡同時處在讀寫器天線的有效工作范圍內(nèi)的情況,稱之為“沖突”,因此防沖突是各種非接觸式IC卡首先要解決的問題之一。關(guān)于防沖突的詳細介紹參見3.3節(jié)。12
5.思考與接觸式IC卡門禁系統(tǒng)相比較,由MIFARE1卡及其讀寫器構(gòu)成的非接觸式門禁系統(tǒng)有何優(yōu)勝之處?采用MIFARE1卡作為門鑰匙時,應(yīng)以卡中的哪個數(shù)據(jù)作為其惟一的身份標(biāo)志?133.2非接觸式IC卡概述3.2.1非接觸式IC卡系統(tǒng)的構(gòu)成與特點1.非接觸式IC卡系統(tǒng)的構(gòu)成1)非接觸式IC卡非接觸式IC卡(也稱為“應(yīng)答器”)是射頻識別系統(tǒng)的電子數(shù)據(jù)載體,卡中嵌有耦合元件和微電子芯片,其結(jié)構(gòu)如圖3.2所示。在讀寫器的響應(yīng)范圍之外,非接觸式IC卡處于無源狀態(tài)。通常,非接觸式IC卡沒有自己的供電電源(電池),只是在讀寫器響應(yīng)范圍之內(nèi),卡才是有源的,卡所需要的能量以及時鐘脈沖、數(shù)據(jù),都是通過耦合單元的電磁耦合作用傳輸給卡的。14圖3.2非接觸式IC卡的基本結(jié)構(gòu)15非接觸式IC卡的外形尺寸符合國際標(biāo)準(zhǔn)ISO7810對ID-1型卡的規(guī)定(85.72mm×54.03mm×0.76mm),其制造工藝是在四層PVC薄膜(兩層嵌入薄膜和兩層覆蓋薄膜)之間粘合一個非接觸式IC卡模塊及耦合元件而構(gòu)成的,其中,耦合元件一般為電磁感應(yīng)天線線圈,起電感耦合作用。將設(shè)計成線圈狀的天線安放在承載薄膜的上面,且用適當(dāng)?shù)倪B接技術(shù)將其與芯片模塊連接在一起。天線的制造主要采用以下四種方法:繞制工藝、布線工藝、絲網(wǎng)印刷工藝和蝕刻工藝。非接觸式IC卡的薄膜結(jié)構(gòu)如圖3.3所示。16圖3.3非接觸式IC卡的薄膜結(jié)構(gòu)172)非接觸式IC卡讀寫器典型的非接觸式IC卡讀寫器(也稱為“閱讀器”)包含有高頻模塊(發(fā)送器和接收器)、控制單元以及與卡連接的耦合元件,如圖3.4所示。由高頻模塊和耦合元件發(fā)送電磁場,以提供非接觸式IC卡所需要的工作能量以及發(fā)送數(shù)據(jù)給卡,同時接收來自卡的數(shù)據(jù)。此外,大多數(shù)非接觸式IC卡讀寫器都配有上傳接口,以便將所獲取的數(shù)據(jù)上傳給另外的系統(tǒng)(個人計算機、機器人控制裝置等)。18圖3.4非接觸式IC卡系統(tǒng)的基本組成19
2.非接觸式IC卡的特點(1)可靠性高、壽命長。由于讀寫之間無機械接觸,避免了因接觸讀寫而產(chǎn)生的各種故障;且非接觸式IC卡及讀寫器表面均無裸露的觸點,無須擔(dān)心觸點損壞或脫落、卡彎曲損害所致之卡片失效;卡和讀寫器均為全封閉防水、防塵結(jié)構(gòu),既避免靜電、塵污對卡的影響,也可防止粗暴插卡、異物插入讀寫器插槽以及讀寫器“吃卡”等問題。這些都將大大提高卡及機具的可靠性和使用壽命。20(2)操作快捷便利。無接觸通信使讀寫器在10cm范圍內(nèi)就可以對卡片操作,無需插拔;且非接觸式IC卡使用時無方向性,卡片可以任意方向掠過讀寫器表面完成操作,既方便又提高了使用速度。(3)動態(tài)處理。由于非接觸式IC卡與讀寫器之間通信時處于相對運動的狀態(tài),對電路的處理速度、可靠性等都提出了更高的要求,因此,對應(yīng)用于安全性要求較高的場合,目前仍主要采用接觸式CPU卡,非接觸式CPU卡正處于發(fā)展中。(4)成本較高。顯然,由于卡和讀寫器都需要將射頻技術(shù)結(jié)合進去,因此必然會增加其成本。213.2.2非接觸式IC卡的分類和國際標(biāo)準(zhǔn)1.非接觸式IC卡的分類關(guān)于接觸式IC卡的國際標(biāo)準(zhǔn)ISO/IEC7816已相對成熟,但是關(guān)于非接觸式IC卡的標(biāo)準(zhǔn)ISO/IEC14443和ISO/IEC15693尚未完成,因此,目前市面上多種類型的非接觸式IC卡并存。(1)與接觸式IC卡相類似,按卡內(nèi)集成電路的不同可分為存儲器卡(片內(nèi)只含有EEPROM存儲介質(zhì)),邏輯加密卡(內(nèi)含加密邏輯和EEPROM,如Philips的MIFARESTAND/LIGHT、Siemens的SLE44R31/35),CPU卡(內(nèi)含CPU、EEPROM、RAM及固化于ROM中的片內(nèi)操作系統(tǒng)COS,甚至用于密碼運算的寫處理器CAU,如OTI的EYECON)。22表3.3非接觸式IC卡分類23表中,ICC為集成電路卡;CICC為Close-coupledICC,即緊密(密耦合)卡;PICC為ProximityICC,稱為接近(近耦合)卡;VICC為VicinityICC,稱為鄰近(疏耦合)卡;CD為CouplingDevice,是讀寫器中發(fā)射電磁波的部分。此外,還有遠距離系統(tǒng),其作用距離是1~10m,個別系統(tǒng)也有更遠的距離。所有遠距離系統(tǒng)都是在微波范圍內(nèi)用電磁波工作的,發(fā)送頻率為5.8GHz,也有些系統(tǒng)使用915MHz(在歐洲是不允許的)、5.8GHz和24.125GHz。24(3)按工作頻率的高低分為125kHz的低頻卡(30~300kHz),13.56MHz的高頻(或射頻)卡(3~30MHz),915MHz、2.45GHz的超高頻卡(300MHz~3GHz)以及5.8GHz的微波卡(大于3GHz)。頻率越高,通信速率越快,系統(tǒng)工作時間越短。(4)按卡內(nèi)芯片供電方式可分為卡內(nèi)帶電池的有源卡和卡內(nèi)無電池、由讀寫器以無線感應(yīng)方式供電的無源卡。前者通信距離較遠,但體積相對較大,目前實際應(yīng)用較為廣泛的為后者。(5)按使用過程中的讀寫方式分為只讀卡和讀寫卡。只讀卡只讀不寫,僅供(或主要供)對象識別用,多被封裝為電子標(biāo)簽、鑰匙扣(圈)甚至手表等形式,因此有的文獻將這種卡通稱為應(yīng)答器。25表3.4非接觸式IC卡系統(tǒng)概覽26續(xù)表27續(xù)表28
2.非接觸式IC卡的國際標(biāo)準(zhǔn)非接觸式IC卡的國際標(biāo)準(zhǔn)包括ISO/IEC10536、ISO/IEC14443和ISO/IEC15693,如表3.3所示。其中ISO/IEC10536-1/2/3已討論通過,定為正式標(biāo)準(zhǔn),而ISO/IEC14443和ISO/IEC15693尚為草案。由于目前使用的非接觸式IC卡大多為PICC(近耦合卡),因此近年來國際標(biāo)準(zhǔn)化組織多次舉行國際會議以推進ISO/IEC14443的正式實施。29現(xiàn)階段ISO/IEC14443(草案)主要有兩個體系并存:ISO/IEC14443-TYPEA和ISO/IEC14443-TYPEB。其中TYPEA以Philips公司為代表,包括Siemens、Hitachi、Gemplus、G&D和Schlumberger等公司,并已推出包括存儲器卡、邏輯加密卡、CPU卡和組合卡在內(nèi)的各種產(chǎn)品;TYPEB以ST(意法半導(dǎo)體)、Motorola、韓國Samsung和日本的NEC等公司為代表。也有其他大公司力圖再建議其他類別,如日本Sony公司的Felica卡、以色列的OTI卡、瑞士的Legic卡等。303.3非接觸式IC卡的工作原理相對于接觸式IC卡,非接觸式IC卡需要解決的問題主要有以下三個方面:(1)非接觸式IC卡如何取得工作電壓。(2)讀寫器與IC卡之間如何交換信息。(3)防沖突問題:多張卡同時進入讀寫器發(fā)射的能量區(qū)域(即發(fā)生沖突)時如何對卡逐一進行處理。313.3.1非接觸式IC卡的信息與能量傳遞非接觸式IC卡在卡的表面上無觸點,IC卡與讀寫器之間通過無線方式(即發(fā)射和接收電磁波)進行通信,因此非接觸式IC卡的使用依賴于射頻識別(RFD)技術(shù)的發(fā)展,故又將非接觸式IC卡稱為射頻卡(RFC)。典型的射頻識別系統(tǒng)由應(yīng)答器和尋呼器組成,非接觸式IC卡的讀寫器就是尋呼器,而卡則是應(yīng)答器。非接觸式IC卡和讀寫器均設(shè)有發(fā)射和接收射頻用的線圈(天線)。由于卡內(nèi)無電源,因此IC卡工作所需的電壓和功率也是通過線圈發(fā)送的(如圖3.5所示)。32圖3.5非接觸式IC卡與讀寫器接口的電路概況33讀寫器和IC卡之間的工作關(guān)系如下:(1)讀寫器發(fā)射激勵信號(一組固定頻率的電磁波)。(2)IC卡進入讀寫器工作區(qū)內(nèi),被讀寫器信號激勵。在電磁波的激勵下,卡內(nèi)的LC串聯(lián)諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷,在這個電容的另一端,接有一個單向?qū)ǖ碾娮颖?,將電容?nèi)的電荷送到另一個電容內(nèi)儲存,當(dāng)所積累的電荷達到2V時,此電容可以作為電源為其他電路提供工作電壓,供卡內(nèi)集成電路工作所需。(3)同時卡內(nèi)的電路對接收到的信息進行分析,判斷發(fā)自讀寫器的命令,如需在EEPROM中寫入或修改內(nèi)容,還需將2V電壓提升到15V左右,以滿足寫入EEPROM的電壓要求。(4)IC卡對讀寫器的命令進行處理后,發(fā)射應(yīng)答信息給讀寫器。(5)讀寫器接收IC卡的應(yīng)答信息。343.3.2非接觸式IC卡與讀寫器的信號接口圖3.6TYPEA和TYPEB卡與讀寫器之間的信號35圖中陰影部分為fc=13.56MHz載波,數(shù)據(jù)傳輸速率=13.56MHz/128=106kb/s(9.4μs/b),從PICC發(fā)向PCD的信號用副載波(subcarrier)調(diào)制,副載波的頻率fs=fc/16=847kHz。一個位時間等于8個副載波周期??梢钥吹?,兩種方式最主要的分別在于載波調(diào)制程度的不同(如圖3.6(a)所示)以及二進制數(shù)據(jù)的編碼方法不同(如圖3.6(b)所示)。36從TYPEA和TYPEB的比較可以看出以下幾點:(1)從讀寫器到卡的調(diào)制,TYPEA用100%ASK,因此其信號區(qū)別明顯,易于檢測,抗干擾能力強;但在每一位的傳送(傳送速率為106kb/s時,傳送周期為9.4μs)中,有約3μs的信號間歇,這時的讀寫器到卡的能量供應(yīng)中斷,必須在卡內(nèi)電路中加一個大容量電容以維持一定的能量供應(yīng);而TYPEB用10%ASK,卡片可以從讀寫器獲得持續(xù)的能量;但信號區(qū)別不明顯,容易造成誤讀/寫,抗干擾能力較差。(2)TYPEA卡片能量的中斷會導(dǎo)致卡片時鐘的中斷,而回避時鐘中斷問題又可能留一個“后門”,讓“單步跟蹤”有機可乘。37(3)當(dāng)試圖提速時,如傳送速率為212kb/s時,位傳送周期僅為4.7μs,這種情況下3μs的中斷已大于傳送周期的60%,而傳送速率為424kb/s時,位傳送周期僅為2.35μs,這種情況下3μs的中斷已使系統(tǒng)無法工作,即TYPEA無法實現(xiàn)這種傳送速率。(4)TYPEA的防沖突需要卡片上較高和較精確的時序,因此需要在卡和讀寫器中分別加一些硬件,而TYPEB的防沖突可以用軟件來實現(xiàn)。目前TYPEA與TYPEB孰優(yōu)孰劣尚在爭議中。TYPEA的產(chǎn)品具有更高的市場占有率,如Philips公司的MIFARE系列占有了當(dāng)前約80%的市場,且在較為惡劣的工作環(huán)境下更有優(yōu)勢。但TYPEB應(yīng)該在安全性、高速率和適應(yīng)性方面有更好的前景,并且更適合于CPU卡。383.3.3初始化與防沖突1.TYPEA的初始化與防沖突1)PCD卡管理命令PCD用以管理進入其工作范圍的多張IC卡的命令有:(1)REQA:TYPEA請求命令;(2)WAKEUP:喚醒命令;(3)ANTICOLLISION:防沖突命令;(4)SELECT:選擇命令;(5)HALT:停止命令。39圖3.7為TYPEA的PICC狀態(tài)圖,對各狀態(tài)的說明如下:(1)POWEROFF(斷電)狀態(tài):PICC尚未獲得能量(未進入PCD工作區(qū)),而處于斷電狀態(tài),因此也不能發(fā)射負載波。(2)IDLE(休閑)狀態(tài):PICC進入PCD工作區(qū),被電磁場激活后,獲得能量,生成電壓,進入IDLE狀態(tài),同時能對已被調(diào)制的信號解調(diào),并認(rèn)識來自PCD的REQA和WAKEUP命令。40(3)READY(就緒)狀態(tài):當(dāng)接收到一個有效的REQA或WAKEUP命令時,就進入READY狀態(tài),在這一狀態(tài)中采用防沖突方法,用UID(惟一標(biāo)識符)從多張IC卡中選擇出一張PICC,此時該張PICC就進入ACTIVE(激活)狀態(tài)。(4)ACTIVE(激活)狀態(tài):在本狀態(tài),完成本次應(yīng)用(一次交易)所要求的全部操作。(5)HALT(停止)狀態(tài):PICC完成一次交易后,被置于HALT狀態(tài)。狀態(tài)轉(zhuǎn)換所需命令也已分別列入PICC狀態(tài)圖(見圖3.7)中。41圖3.7TYPEA的PICC狀態(tài)圖422)PCD初始化和防沖突流程圖3.8PCD初始化和防沖突總流程圖(TYPEA)43表3.5UID結(jié)構(gòu)44表中CT為級聯(lián)信號,表示在下一級中還有UID;BCC為本級檢驗碼。首先由PCD發(fā)送REQA命令或WAKEUP命令,使卡進入READY狀態(tài)。這兩個命令的差別是:REQA命令使卡從IDLE狀態(tài)進入READY狀態(tài),而WAKEUP命令使卡從HALT狀態(tài)進入READY狀態(tài)。PICC接收到命令后,所有處在PCD電磁場范圍內(nèi)的PICC同步發(fā)出ATQA應(yīng)答,說明本卡UID的大小(1、2或3),之后進入READY狀態(tài),執(zhí)行防沖突循環(huán)操作。45PCD通過發(fā)送ANTICOLLISION和SELECT命令執(zhí)行防沖突循環(huán)操作,這兩條命令的格式如下:46其中:SEL為指令碼,其代碼為93、95或97,分別代表選擇UIDCL1、UIDCL2或UIDCL3;NVB表示本命令的長度,NVB的前半字節(jié)表示字節(jié)數(shù),后半字節(jié)表示位數(shù)。PCD初始化和防沖突總流程如圖3.8所示。首先選出UIDCL1,然后檢查SAK,SAK返回UID“完整否”的信息,如果UID的大小為1,SAK返回“完整”信息;如果UID的大小為2,則還需選擇UIDCL2再次進入位幀防沖突過程,最終才能選出PICC的惟一標(biāo)識符UID,然后進入激活狀態(tài)。47圖3.9所示為PCD完成位幀防沖突的過程,其操作過程如下:(1)PCD指定防沖突命令SEL代碼為93、95或97,分別對應(yīng)于UIDCL1、UIDCL2或UIDCL3。(2)PCD指定NVB的值是“20H”,此值表示PCD不發(fā)出UIDCLn的任一部分,而迫使在場的PICC發(fā)回完整的UIDCLn。(3)PCD發(fā)送SEL和NVB到PICC。(4)所有PICC返回UIDCLn。48(5)假如多于一個卡發(fā)回應(yīng)答,則產(chǎn)生了沖突,此時PCD接收到的應(yīng)答信息至少有1位既是0又是1,即該位的前半部分和后半部分都有調(diào)制信號。如果不發(fā)生沖突,則可跳過(6)~(10)步。PCD應(yīng)認(rèn)出第1個發(fā)生沖突的位置。(6)PCD指定NVB的值為UIDCLn的有效位個數(shù),所謂“有效位”是指接收到的UIDCLn發(fā)生沖突之前的部分,后面再由PCD決定加一位“0”或“1”。一般加“1”。(7)PCD發(fā)送命令SELNVB和有效位數(shù)據(jù)。(8)只有其UIDCLn部分與PCD發(fā)送的有效數(shù)據(jù)內(nèi)容相等時,才發(fā)出UIDCLn的其余位。這樣就排除了沖突位為“0”的PICC。49(9)假如還有沖突發(fā)生,重復(fù)(6)~(9)步,最大循環(huán)次數(shù)為32。(10)假如沒有沖突再發(fā)生,PCD指定NVB為“70H”,此值表示PCD將發(fā)送完整的UIDCLn。(11)PCD發(fā)送命令:SELNVB40BITUIDCLnCRCA。(12)與40位UIDCLn匹配的PICC,以SAK作為應(yīng)答。50圖3.9PCD防沖突循環(huán)流程(TYPEA)512.TYPEB的初始化和防沖突PCD用以管理進入其工作范圍的多張IC卡的命令有:(1)REQB:TYPEB請求命令;(2)SLOTMARKER:時隙標(biāo)記命令;(3)ATTRIB:標(biāo)識命令;(4)DESELECT:解除選取命令。52圖3.10TYPEB的PICC狀態(tài)圖53圖3.10為TYPEB的PICC狀態(tài)圖,TYPEB的初始化和防沖突流程如下:(1)POWEROFF(斷電)狀態(tài):同TYPEA。(2)IDLE(休閑)狀態(tài):PICC生成電壓,等待接收有效的REQB命令。對于TYPEB卡,通過發(fā)送REQB命令可直接啟動防沖突算法。使用的方法是動態(tài)的Slotted-ALOHA法(時隙-ALOHA法)。接收到有效的REQB命令后,PICC規(guī)定一個惟一的時隙(SLOT)用于回送它的應(yīng)答ATQB。如果規(guī)定的時隙是第1個時隙(總共可以有16個時隙),那么PICC發(fā)送ATQB并進入READY-DECLARED(就緒-宣布)狀態(tài);如果規(guī)定的時隙不是第1個時隙,PICC進入READY-REQUESTED(就緒-請求)狀態(tài)。54(3)READY-REQUESTED狀態(tài):監(jiān)聽PCD發(fā)出的SLOTMARKER命令,該命令中給出了SLOTMARKER。如果PICC的SLOT與它匹配(每次最多一張卡能匹配),就發(fā)生應(yīng)答ATQB,并進入READY-DECLARED狀態(tài);如果PICC的SLOT與它不匹配,則仍留在READY-REQUESTED狀態(tài)。ATQB包含惟一標(biāo)識符PUPI(Pseudo-UniqPiccIdentifier)。PUPI可以是惟一的PICC序列號或芯片序列號的一部分,也可以是PICC計算出的隨機數(shù)。(4)READY-DECLARED狀態(tài):監(jiān)聽PCD發(fā)出的ATTRIB命令,ATTRIB命令中包含有PUPI,假如ATTRIB命令中的PUPI與PICC中的PUPI相同,PCD就賦予該PICC一個地址(NAD),以后就用該地址與PICC進行通信,同時PICC進入ACTIVE(激活)狀態(tài)。55(5)ACTIVE(激活)狀態(tài):在本狀態(tài)中,完成本次應(yīng)用(一次交易)所要求的全部操作。在交易結(jié)束時,PCD發(fā)送DESELECT命令,PICC進入IDLE狀態(tài)或HALT狀態(tài)。(6)HALT(停止)狀態(tài):處于HALT狀態(tài)的PICC,將不再參與防沖突循環(huán),當(dāng)卡從射頻場退出,將回到POWEROFF狀態(tài)。上述TYPEB的防沖突機制可由軟件來完成。563.4非接觸式IC卡芯片技術(shù)3.4.1MIFARE1非接觸式IC卡的總體描述MIFARE1IC智能(射頻)卡采用先進的芯片制造工藝制作,內(nèi)建有高速的CMOSEEPROM、ASIC等??ㄆ铣薎C微晶片及一副高效率天線外,無任何其他元件。根據(jù)ISO/IEC14443A標(biāo)準(zhǔn),Philips開發(fā)了無線智能卡芯片MF1ICS50,它是MIFARE1IC智能(射頻)卡的核心。該芯片的通信層MIFARERF接口遵從ISO/IEC14443A標(biāo)準(zhǔn)的第2部分和第3部分,保密層(securitylayer)使用經(jīng)區(qū)域驗證的CRYPTO1流密碼(field-provenCRYPTO1streamcipher),使典型MIFARE系列芯片的數(shù)據(jù)交換得到保密。57
1.MIFARERF接口(ISO/IEC14443A)——無線傳送數(shù)據(jù)和能量(1)無線傳送數(shù)據(jù)和能量,即MIFARE卡片上無源(無任何電池),MF1ICS50連接著幾匝線圈,線圈嵌入到塑料卡片中,這就形成了一張無源的無線智能卡。工作時的電源能量由讀寫器天線發(fā)送無線電載波信號耦合到卡片的天線上而產(chǎn)生電能,一般可達2V以上,供卡片上IC工作。其工作距離最高可達100mm(由天線的結(jié)構(gòu)決定)。(2)工作頻率為13.56MHz。(3)數(shù)據(jù)傳送速率快,且為106kb/s。58
2.真正的防沖突智能的防沖突功能允許同一工作區(qū)域中有不止一張卡同時工作,防沖突算法每次只選擇一張卡,確保對被選中的卡正確執(zhí)行操作,而且同一區(qū)域中的其他卡不會破壞數(shù)據(jù)。
3.保密性(security)MIFARE卡的一個特殊要點是高保密性,防止欺騙。相互認(rèn)證(mutualchallenge)和響應(yīng)確認(rèn)數(shù)據(jù)保密,報文確認(rèn)檢查防止系統(tǒng)受到任何干擾;序列號不可修改更保證了每張卡都是惟一的。59(1)需要通過三次相互認(rèn)證(mutualthreepassauthentication),符合ISO/IECDIS9798-2的規(guī)定。(2)RF信道的數(shù)據(jù)加密,多重防攻擊保護。(3)每個扇區(qū)(每個應(yīng)用)有兩套獨立的密鑰,支持帶密鑰層次的多應(yīng)用(supportmulti-applicationwithkeyhierarchy)。(4)每張卡有全球惟一的序列號。(5)在運輸過程中訪問EEPROM有傳輸密鑰保護(transportkeyprotectsaccesstoEEPROMonchipdelivery)。60
4.?dāng)?shù)據(jù)高度可靠(正確)讀寫器和卡之間的無線通信鏈路使用了以下的機制確保數(shù)據(jù)可靠地傳輸。(1)卡片上有高速的CRC協(xié)處理器實現(xiàn)每個塊16位CRC。(2)每個字節(jié)都有奇偶校驗位。(3)位計數(shù)檢查。(4)用位編碼區(qū)別1、0和沒有信息。(5)信道監(jiān)控(協(xié)議序列和位流分析)。61
5.EEPROM存儲器結(jié)構(gòu)提供多應(yīng)用MIFARE系統(tǒng)提供了一個實時的多應(yīng)用功能,每區(qū)有兩個不同的密鑰,這樣系統(tǒng)可以使用密鑰層次。(1)內(nèi)建1KBEEPROM,分成16個扇區(qū),每扇區(qū)又分成4個數(shù)據(jù)塊,每一塊中有16個字節(jié)。(2)用戶可以定義每一個存儲器塊的訪問條件。(3)每個扇區(qū)(每個應(yīng)用)有兩套獨立的密鑰,支持帶密鑰層次的多應(yīng)用。(4)數(shù)據(jù)保存期可達10年以上。(5)可寫100000次以上。(6)卡片抗靜電保護能力達2kV以上。62
6.方便用戶系統(tǒng)的設(shè)計使用戶使用更加方便,例如卡片上還內(nèi)建有增值/減值的專項的數(shù)學(xué)運算電路,非常適合公交/地鐵等行業(yè)的定額收費系統(tǒng)。由于數(shù)據(jù)傳送速率很高,典型的購票處理時間(ticketingtransaction)小于100ms(包括備份管理),這樣MIFARE卡用戶就不需要停在讀寫器前面,增大了通道門的吞吐量,減少了上公共汽車的時間;如果卡放在錢包中,甚至錢包中有硬幣也可以進行交易。633.4.2MIFARE1非接觸式IC卡的功能組成圖3.11MF1ICS50非接觸式IC卡的功能組成圖64
1.RF射頻接口電路在卡的RF射頻接口電路中,波形轉(zhuǎn)換模塊接收讀寫器所發(fā)送的13.56MHz的無線電調(diào)制信號。一方面送調(diào)制/解調(diào)模塊,經(jīng)解調(diào)得到相應(yīng)的數(shù)字信息送數(shù)字電路模塊;另一方面進行波形轉(zhuǎn)換,將正弦波轉(zhuǎn)換為方波,然后對其整流濾波,由電壓調(diào)節(jié)模塊對電壓進行進一步的處理,包括穩(wěn)壓等,最終輸出提供卡片上各電路的工作電壓。POR模塊主要是對卡片上的各個電路進行POWER-ON-RESET(上電復(fù)位),使各電路同步啟動工作。而數(shù)字電路模塊送出的數(shù)字信息則經(jīng)由調(diào)制/解調(diào)模塊調(diào)制為13.56MHz的無線電調(diào)制信號,再送往波形轉(zhuǎn)換模塊發(fā)送給讀寫器。65
2.?dāng)?shù)字電路部分模塊1)ATR模塊:AnswerToRequest(“請求之應(yīng)答”)當(dāng)一張MIFARE1卡處在讀寫器的天線工作范圍之內(nèi)時,程序員控制讀寫器向卡發(fā)出Requestall(或Requeststd)命令后,卡的ATR將啟動,將卡片Block0中2個字節(jié)的卡類型號(TagType)傳送給讀寫器,建立卡與讀寫器的第一步通信聯(lián)絡(luò)。如果不進行第一步的ATR工作,讀寫器對卡的其他操作(讀/寫操作等)將不會進行。662)AntiCollision模塊:防(卡片)沖突功能如果有多張MIFARE1卡處在讀寫器的天線工作范圍之內(nèi),則AntiCollision模塊的防沖突功能將被啟動工作。讀寫器將會首先與每一張卡進行通信,讀取每一張卡的序列號(SerialNumber)。由于每一張MIFARE1卡都具有惟一的序列號,決不會相同,因此程序員將啟動讀寫器中的AntiCollision防重疊功能配合卡上的防重疊功能模塊,根據(jù)卡序列號來選定其中一張卡。被選中的卡將被激活,可以與讀寫器進行數(shù)據(jù)交換;而未被選中的卡處于等待狀態(tài),隨時準(zhǔn)備與讀寫器進行通信。AntiCollision模塊(防重疊功能)啟動工作時,讀寫器將得到卡片的序列號(SerialNumber)。序列號存儲在卡的Block0中,共有5個字節(jié),實際有用的為4個字節(jié),另一個字節(jié)為序列號的校驗字節(jié)。673)SelectApplication模塊:卡片的選擇當(dāng)卡與讀寫器完成了上述兩個步驟,讀寫器要想對卡進行讀/寫操作時,必須對卡進行“Select”操作,以使卡真正地被選中。被選中的卡將卡片上存儲在Block0中的卡容量“Size”字節(jié)傳送給讀寫器。當(dāng)讀寫器收到這一字節(jié)后,方可對卡進行進一步的操作,如密碼驗證等。684)Authentication&AccessControl模塊:認(rèn)證及存取控制模塊完成上述的三個步驟后,讀寫器對卡進行讀/寫操作之前,必須對卡上已經(jīng)設(shè)置的密碼進行認(rèn)證,如果匹配,則允許進一步的讀/寫操作。MIFARE1卡上有16個扇區(qū),每個扇區(qū)都可分別設(shè)置各自的密碼,互不干涉,必須分別加以認(rèn)證,才能對該扇區(qū)進行下一步的操作。因此每個扇區(qū)可獨立地應(yīng)用于一個應(yīng)用場合,整個卡可以設(shè)計成一卡多用(一卡通)的形式來應(yīng)用。69密碼的認(rèn)證采用了三次相互認(rèn)證的方法,具有很高的安全性。如果事先不知卡上的密碼,則因密碼的變化可以極其復(fù)雜,試圖靠猜測密碼而打開卡上一個扇區(qū)的可能性幾乎為零。特別需要注意的是,無論是程序員還是卡的使用者,都必須牢記卡中的16個扇區(qū)的每一個密碼,否則,遺忘某一扇區(qū)的密碼將使該扇區(qū)中的數(shù)據(jù)不能讀寫。沒有任何辦法可以挽救這種低級錯誤。但是,卡上的其他扇區(qū)可以照樣使用。705)Control&ArithmeticUnit:控制及算術(shù)運算單元這一單元是整個卡的控制中心,是卡的“頭腦”。它主要對卡的各個單元進行操作控制,協(xié)調(diào)卡的各個步驟;同時它還對各種收/發(fā)的數(shù)據(jù)進行算術(shù)運算處理、遞增/遞減處理和CRC運算處理等,是卡中內(nèi)建的中央微處理器(MCU)單元。716)RAM/ROM單元RAM主要配合控制及算術(shù)運算單元,將運算的結(jié)果進行暫時存儲,例如將需存儲的數(shù)據(jù)由控制及算術(shù)運算單元取出送到EEPROM存儲器中;將需要傳送給讀寫器的數(shù)據(jù)由控制及算術(shù)運算單元取出,經(jīng)過RF射頻接口電路的處理,通過卡片上的天線傳送給讀寫器。RAM中的數(shù)據(jù)在卡失掉電源后(卡片離開讀寫器天線的有效工作范圍)將會丟失。同時,ROM中則固化了卡運行所需要的必要的程序指令,由控制及算術(shù)運算單元取出,對每個單元進行指令控制,使卡能有條不紊地與讀寫器進行數(shù)據(jù)通信。727)CryptoUnit:數(shù)據(jù)加密單元該單元完成對數(shù)據(jù)的加密處理及密碼保護。加密的算法可以為DES標(biāo)準(zhǔn)算法或其他。8)EEPROM存儲器及其接口電路:EEPROMINTERFACE/EEPROMMEMORY該單元主要用于存儲用戶數(shù)據(jù),在卡失掉電源后(卡片離開讀寫器天線的有效工作范圍)數(shù)據(jù)仍將被保持。MIFARE1卡片中的這一單元容量為8192b(1KB),分為16個扇區(qū)。733.4.3MIFARE1卡片的存儲結(jié)構(gòu)1.MIFARE1卡片的存儲區(qū)劃分MIFARE1卡片的存儲容量為1024×8b字長(即1KB),采用EEPROM作為存儲介質(zhì),整個結(jié)構(gòu)劃分為16個扇區(qū),編為扇區(qū)0~15。每個扇區(qū)有4個塊(block),分別為塊0、塊1、塊2和塊3。每個塊有16個字節(jié)。一個扇區(qū)共有16B×4=64B(如圖3.12所示)。74圖3.12MIFARE1卡片的存儲結(jié)構(gòu)圖751)廠商塊廠商塊是存儲器第1個扇區(qū)(扇區(qū)0)的第1個數(shù)據(jù)塊(塊0),它包含了IC卡廠商的數(shù)據(jù)。基于保密性和系統(tǒng)的安全性,這一塊在IC卡廠商編程之后被置為寫保護,因此該塊不能再復(fù)用為應(yīng)用數(shù)據(jù)塊。其中:第0~3個字節(jié)為卡片的序列號;第4個字節(jié)為序列號的校驗碼;第5個字節(jié)為卡片的容量“Size”字節(jié);第6~7個字節(jié)為卡片的類型號字節(jié),即TagType字節(jié);其他字節(jié)由廠商另加定義。例如,一張MIFARE1卡扇區(qū)0中的塊0(block0)存儲的16個字節(jié)的內(nèi)容為420A7E481740630373937H,則其序列號為420A7E00H,序列號的校驗碼為36H,容量字節(jié)Size為88H,卡片類型號TagType為0400H。762)數(shù)據(jù)塊所有的扇區(qū)都包含三個數(shù)據(jù)塊(扇區(qū)0只有兩個數(shù)據(jù)塊和一個只讀的廠商塊),每個塊有16個字節(jié)。數(shù)據(jù)塊可以被以下的訪問控制位(accessbits)配置為讀寫塊或值塊。(1)讀寫塊:用作一般的數(shù)據(jù)保存,可用讀/寫命令直接讀/寫整個塊,例如在食堂消費時采用輸入飯菜金額的方式扣款。(2)值塊:用作數(shù)值塊,可以進行初始化值、加值、減值、讀值的運算,系統(tǒng)配用相應(yīng)的函數(shù)完成上述功能,有效的命令包括加/減/恢復(fù)/發(fā)送命令。例如在食堂消費時對于定額套餐采用輸入餐號的方式加以扣款,以及用于公交/地鐵等行業(yè)的檢票/收費系統(tǒng)。77值塊有一個固定的數(shù)據(jù)格式,可以進行錯誤檢測和糾正并備份管理。值塊只能在值塊格式的寫操作時產(chǎn)生。值塊格式如表3.6所示。其中,值(VALUE)表示一個帶符號的4字節(jié)值,這個值的最低一個字節(jié)保存在最低的地址中,取反的字節(jié)以標(biāo)準(zhǔn)的2的補碼的格式保存。為了保證數(shù)據(jù)的正確性和保密性,值被保存了三次,兩次不取反保存,一次取反(帶下劃線者)保存。78表3.6MIFARE1卡的值塊格式79地址(address)表示一個1字節(jié)的地址,當(dāng)執(zhí)行強大的備份管理時用于保存存儲塊的地址,地址字節(jié)保存了4次,取反和不取反各保存兩次。在執(zhí)行加/減/恢復(fù)/傳送操作時地址保持不變,它只能通過寫命令改變。通常數(shù)據(jù)塊中的數(shù)據(jù)都是需要保密的數(shù)據(jù),例如購買公交卡時所預(yù)付的車費,智能大廈/智能小區(qū)進出時所需的控制信息,股票交易時持卡人必須對已存放在卡中的交易密碼數(shù)據(jù)(如帳戶、存款信息、持有的股票數(shù)量/品種等)進行確認(rèn)后方能進行股票交易等。對這些數(shù)據(jù)的讀/寫/加值/減值均需符合該塊存取條件的要求及通過該扇區(qū)的密碼認(rèn)證。803)區(qū)尾塊每個區(qū)都有一個區(qū)尾(sectortrailer),它包括以下兩點:(1)密鑰A(第0~5字節(jié),共6B)和密鑰B(第10~15字節(jié),共6B,可選),讀密鑰時返回邏輯0。(2)存取控制位(accessbits,第6~9字節(jié),共4B):訪問這個扇區(qū)中4個塊的條件,存取控制位也可以指出數(shù)據(jù)塊的類型(讀寫或值)。密鑰A的缺省值為A0A1A2A3A4A5H,密鑰B的缺省值為B0B1B2B3B4B5H,存取控制位的缺省值為FF078069H。如果不需要密鑰B,那么塊3的最后6B可以作為數(shù)據(jù)字節(jié)。用戶數(shù)據(jù)可以使用區(qū)尾的第9字節(jié),這個字節(jié)具有與字節(jié)6、7和8一樣的訪問權(quán)限。812.MIFARE1卡的密碼認(rèn)證方式圖3.13三次相互認(rèn)證的令牌原理框圖82三次相互認(rèn)證的過程如下:(A)環(huán):由MIFARE1卡片向讀寫器發(fā)送一個隨機數(shù)據(jù)RB。(B)環(huán):由讀寫器收到RB后向MIFARE1卡片發(fā)送一個令牌數(shù)據(jù)TOKENAB,其中包含了用讀寫器中存放的密碼加密后的RB及讀寫器發(fā)出的一個隨機數(shù)據(jù)RA。(C)環(huán):MIFARE1卡片收到TOKENAB后,用卡中的密碼對TOKENAB的加密的部分進行解密得到RB',并校驗第一次由(A)環(huán)中MIFARE1卡片發(fā)出去的隨機數(shù)RB是否與(B)環(huán)中接收到的TOKENAB中的RB'相一致;若讀寫器與卡中的密碼及加密/解密算法一致,將會有RB=RB',校驗正確,否則將無法通過校驗。(D)環(huán):如果(C)環(huán)校驗是正確的,則MIFARE1卡片用卡中存放的密碼對RA加密后發(fā)送令牌TOKENBA給讀寫器。83(E)環(huán):讀寫器收到令牌TOKENBA后,用讀寫器中存放的密碼對令牌TOKENBA中的RA(隨機數(shù))進行解密得到RA';并校驗第一次由(B)環(huán)中讀寫器發(fā)出去的隨機數(shù)RA是否與(D)環(huán)中接收到的TOKENBA中的RA'相一致;同樣,若讀寫器與卡中的密碼及加密/解密算法一致,將會有RA=RA',校驗正確,否則將無法通過校驗。如果上述的每一個環(huán)都為“真”,且都能正確通過驗證,則整個的認(rèn)證過程將成功。讀寫器將允許對剛剛認(rèn)證通過的卡片上的這個扇區(qū)進入下一步的操作(讀/寫等操作)。84卡片中的其他扇區(qū)由于有其各自的密碼,因此不能對其進行進一步的操作。如果想對其他扇區(qū)進行操作,則必須完成相應(yīng)扇區(qū)的認(rèn)證過程。認(rèn)證過程中的任何一環(huán)出現(xiàn)差錯,整個認(rèn)證將告失敗,必須重新開始。如果事先不知卡片上的密碼,則由于密碼的變化可以極其復(fù)雜,因此靠猜測密碼而想打開卡片上的一個扇區(qū)的可能性幾乎為零。853.MIFARE1卡存取控制與數(shù)據(jù)區(qū)的關(guān)系表3.7MIFARE1卡存取控制的結(jié)構(gòu)86表3.8MIFARE1卡存取控制對塊3的控制結(jié)構(gòu)87表3.9MIFARE1卡存取控制對數(shù)據(jù)塊的控制結(jié)構(gòu)88MIFARE1卡出廠初始化時,所有扇區(qū)的塊3的初始化值均為:表3.10初始化狀態(tài)的存取控制位89對照上表可確定卡初始化后的存取控制條件為:密碼A永不可讀,校驗密碼A或密碼B正確后可以修改;密碼B在校驗密碼A或密碼B正確后可讀,可修改;數(shù)據(jù)塊在校驗密碼A或密碼B正確后可讀,可修改。應(yīng)用人員可以根據(jù)自己應(yīng)用的具體情況,對不同的扇區(qū)選用不同的存取控制、不同的密碼,但應(yīng)注意其每一位的格式,以免誤用。一旦將某數(shù)據(jù)塊設(shè)置為不可讀/寫/加值/減值,該塊將被鎖死;而一旦忘記某扇區(qū)的密碼,要想重新試出來幾乎是不可能的,因此該扇區(qū)也將被鎖死。903.5非接觸式IC卡接口設(shè)備內(nèi)核技術(shù)3.5.1MIFARE非接觸式IC卡讀寫模塊硬件內(nèi)核電路1.MCM200/MCM500讀寫模塊總體描述Philips公司的MIFARE非接觸式IC卡讀寫模塊主要有兩種產(chǎn)品型號,即MCM200和MCM500。MIFARECoreModule是MCM的全稱,意為MIFARE核心模塊。這兩種智能模塊均用于MIFARE非接觸式IC卡讀寫器中,負責(zé)讀寫器中對非接觸式IC卡的讀寫等功能,其基本功能包括調(diào)制、解調(diào)、產(chǎn)生射頻信號、安全管理和防沖突處理,是讀寫器MCU(微控制器)與非接觸式IC卡交換信息的橋梁。91MCM200的軟件與MCM500模塊100%兼容,其主要區(qū)別在于讀寫距離不同:MCM200模塊對卡片的操作距離為25mm,而MCM500模塊對卡片的操作距離為100mm。MIFARE所具有的獨特的MIFARERF(射頻)非接觸式接口標(biāo)準(zhǔn)已被制定為國際標(biāo)準(zhǔn)——ISO/IEC14443TYPEA標(biāo)準(zhǔn)。92(1)MCM200模塊為標(biāo)準(zhǔn)的雙列直插32引腳,如圖3.14所示,其引腳功能描述見表3.11;MCM500模塊為48引腳帶屏蔽盒的封裝,如圖3.15所示,其引腳功能與MCM200類同。圖3.14MCM200模塊引腳排列示意圖93圖3.15MCM500模塊引腳排列示意圖94表3.11MCM引腳功能描述95表3.11MCM引腳功能描述96(2)工作頻率為13.56MHz。(3)MCM200模塊為標(biāo)準(zhǔn)的+5V電源供電,供電范圍為4.75~5.25V;MCM500模塊為標(biāo)準(zhǔn)的+12V電源供電。(4)(典型)電流消耗40mA,最大不超過80mA,最小10mA左右。(5)MCM200模塊讀寫距離可達25mm,MCM500模塊讀寫距離可達100mm。(6)與卡片的通信速率可達106kb/s。(7)模塊與卡片通信時,數(shù)據(jù)加密。(8)每個扇區(qū)設(shè)有三套密碼及其認(rèn)證和密碼存儲器。97(9)有防卡片重疊功能。(10)有16個字節(jié)的FIFO(先進先出)隊列接收/發(fā)送緩沖寄存器。(11)在模塊與卡片通信時自動偵查錯誤,自動對數(shù)據(jù)流分析。(12)對RF(射頻)通道自動監(jiān)控。(13)內(nèi)建8位/16位的CRC協(xié)處理器,提供CRC、PARITY等數(shù)據(jù)校驗。(14)支持多種方式的活動天線,并且不需“天調(diào)系統(tǒng)”(天線調(diào)節(jié)系統(tǒng))對天線進行補償調(diào)節(jié)。(15)有標(biāo)準(zhǔn)的MIFARE并行接口,MCM200模塊與MCM500模塊100%全兼容。(16)可遙控、級聯(lián)MCM200/MCM500模塊。(17)工作溫度范圍在-20~+70℃。982.MCM的硬件內(nèi)核接口電路MCM的硬件內(nèi)核接口電路可分為以下四個部分:(1)與MCU(微處理機CPU)接口電路;(2)RF模塊接口電路;(3)與天線射頻接口電路;(4)與電源接口電路。99圖3.16MCM與MCU的接口電路100MCM可以由標(biāo)準(zhǔn)的MCU接口信號來控制,使用標(biāo)準(zhǔn)的微控制器和微處理機通信協(xié)議。采用不同的MCU及其連接方法,將會有不同的硬件信號時序及數(shù)據(jù)信息流信息。MCM可由外部MCU發(fā)出專用的命令來啟動運行。任何情況下,MCM都可以由對地址的選擇來啟動工作。例如,MCM的引腳RST、CS引腳的信號設(shè)置等。對MCM內(nèi)部存儲器的存取,意味著將激活CS信號,以及對地址為00H~0FH的寄存器的合適的設(shè)置。通過讀特殊I/O地址的信息,可以得到MCM的狀態(tài)信息。1012)RF模塊接口電路MCM與RF模塊的接口電路如圖3.17所示,RF模塊接口一般由以下幾個引腳來實現(xiàn):通過KOMP0與PAUSE0可與RF0模塊相連接;通過KOMP1與PAUSE0可與RF1模塊相連接(僅MCM500有2個RF模塊);通過RxKOMP與TxPAUSE0可與其他的級聯(lián)MCM模塊相連接。102圖3.17RF模塊接口電路1033)與天線射頻接口電路ANT和GND引腳可用阻抗50Ω的同軸電纜直接與正極性天線相連接,連接長度一般應(yīng)小于50cm。MCM的外部金屬屏蔽盒(僅MCM500有)必須連接到同軸電纜的外屏蔽包裹線,以使信號不能擴散,且免受外界電磁輻射信號等的影響。 如果天線工作不正常,則可用“天線調(diào)諧器”來調(diào)諧,使之能將MIFARE1卡的有效操作距離保持在25mm/100mm以上。1044)與電源接口電路與電源的接口包括這樣幾組信號:DVDD——數(shù)字電路正電源端(+5V);DGND——數(shù)字電路接地端(0V);BP——緩沖器供電(通電工作時為+5V;不通電工作時為+3V);RFVDD——RF電路正電源端(MCM500:+12V;MCM200:+5V);RFGND——RF電路接地端(0V);105注意:RFGND和DGND應(yīng)該分開接地或接到系統(tǒng)的接地端,連接線應(yīng)該具有高導(dǎo)電特性且愈短愈粗愈好。MCM供電電源端與GND端必須跨接100nF的電容,這些電容應(yīng)盡可能靠近MCM。為避免引起接地環(huán)路,整個系統(tǒng)應(yīng)由單一電源供電,且紋波電壓應(yīng)小于50mv。1063.5.2MCM的硬件內(nèi)核寄存器剖析MCU是通過對MCM內(nèi)核特殊的內(nèi)存寄存器的讀寫來控制MCM的。這些寄存器位于MCM中ASIC(特殊應(yīng)用IC)的內(nèi)部,共有16個寄存器可存取。在對MCM進行讀/寫操作時,各寄存器擔(dān)負著不同的功能和作用。不是所有的寄存器都是可寫或可讀的,即有些寄存器只能讀而不能寫,有些則反之。MCM實際上是MCU與非接觸式IC智能(射頻)卡之間進行信息(數(shù)據(jù))交換的“中間人”。任何讀取或?qū)戇M卡片上的數(shù)據(jù)均須通過MCM來傳遞。讀取MCM指通過MCM接收來自MIFARE1卡的應(yīng)答及數(shù)據(jù);寫MCM意味著去控制MCM,例如,送一些類型的指令給它。107表3.12MCM中ASIC內(nèi)核特殊寄存器一覽表108
1.數(shù)據(jù)寄存器(DATA寄存器)任何傳遞到MIFARE1卡的數(shù)據(jù)或來自MIFRAE1卡的數(shù)據(jù)都必須分別地被寫入DATA寄存器或從DATA寄存器中讀出。DATA寄存器中有一個16B的FIFO(先進先出)隊列寄存器。數(shù)據(jù)寫到DATA寄存器后,被存放在這個16B的FIFO(先進先出)隊列寄存器中,等待向卡片或MCU傳送。例如,MCU向卡寫數(shù)據(jù)Xi,則Xi必須首先被寫入到DATA寄存器中,然后在MCM與MIFARE1卡進行通信時,由卡上的ASIC順序讀取DATA寄存器中的數(shù)據(jù),送往調(diào)制/解調(diào)模塊調(diào)制到13.56MHz的射頻信號上,由天線發(fā)射給MIFARE1卡,并存放在卡片上指定的存儲器中,從而完成MCU向MIFRAE1卡寫數(shù)據(jù)的過程。109反之,MCU要讀取卡數(shù)據(jù)Xj,則由MCM的RF模塊接收來自卡片的射頻信號,經(jīng)解調(diào)得到數(shù)字信息Xj存入DATA寄存器中,然后由MCU按先入先出的原則逐一讀出。需要指出的是,在傳送DATA寄存器中的數(shù)據(jù)之前必須先設(shè)定要傳輸多少位(bit)或多少字節(jié)(Byte),即必須對BCNTS和BCNTR寄存器進行有效的正確設(shè)置,以確定有多少字節(jié)將要被寫入DATA寄存器發(fā)送給卡或?qū)目ń邮斩嗌賯€字節(jié)到DATA寄存器中。當(dāng)來自卡的數(shù)據(jù)流接收結(jié)束或沒有被接收時,STACON寄存器中的DV標(biāo)志被置位“1”,而且MCM上的引腳也將由“HIGH”變?yōu)椤癓OW”。當(dāng)DV位為1時,STACON寄存器中的error-bit(出錯位)將被設(shè)置。如果沒有相關(guān)的error-bit被設(shè)置,則FIFO寄存器中的數(shù)據(jù)將被假設(shè)為正確,且可以被讀出。1102.狀態(tài)/控制寄存器(STACON寄存器)表3.13STACON寄存器控制位表111注意:當(dāng)對STACON寄存器進行設(shè)置時,在寫數(shù)據(jù)到STACON寄存器的這一寫周期中,RFS位的設(shè)置必須與RF單元相一致。(1)SOR位:軟復(fù)位。SOR是SOftwareReset(軟件復(fù)位)的縮寫,置位SOR位將復(fù)位MCM。112(2)AC位:防沖突。設(shè)置了AC位,即AC=1,將使防沖突狀態(tài)機啟動工作,執(zhí)行內(nèi)部存取。這一存取在設(shè)置AC位后的12μs開始,至35μs結(jié)束。在這一段時間內(nèi),不允許MCU向MCM進行寫(Write)數(shù)據(jù)操作,即設(shè)置AC位后必須延遲35μs以上才能進行下一步的寫操作。這是為了保證防沖突狀態(tài)機處理軟件的正確運行,使其能識別天線范圍內(nèi)的多張MIFARE1卡(讀取所有天線范圍內(nèi)的M1卡的SerialNumber),為下一步選擇其中一張MIFARE1卡(選定其中一個SerialNumber)進行數(shù)據(jù)讀/寫而作準(zhǔn)備。Philips公司推薦至少延遲35μs,然后進行寫DATA、TOC寄存器等操作。1132)狀態(tài)寄存器表3.14STACON寄存器標(biāo)志位表114(1)DV(DataValid數(shù)據(jù)有效)標(biāo)志:DV標(biāo)志為“1”表明MCM與MIFARE卡之間的傳輸已經(jīng)完成,并且主處理機可能已經(jīng)從MCM中收到數(shù)據(jù)。而DV=0表示數(shù)據(jù)接收尚未完成或未能接收到數(shù)據(jù)。有一種情況例外,即當(dāng)TOC計數(shù)器溢出時,無論接收是否完成,DV都將被設(shè)置為1,此時TE標(biāo)志將被設(shè)置為1,表明時間溢出出錯。DV標(biāo)志保持“1”的持續(xù)時間,出錯標(biāo)志亦將保持有效。在有效的數(shù)據(jù)被存儲進FIFO寄存器時,DV標(biāo)志將持續(xù)保持。在向MCM寫數(shù)據(jù)時的寫指令周期內(nèi),DV標(biāo)志將被清除。DV標(biāo)志也可能會被軟復(fù)位(Soft-Reset)清除。115(2)出錯標(biāo)志:在MCU與MCM、MCM與MIFARE1卡進行數(shù)據(jù)通信時,經(jīng)常會出現(xiàn)各種錯誤,這些錯誤由出錯標(biāo)志位的置位來表征。例如,卡沒能認(rèn)證(Authentication)通過,則會使AE出錯位置位;而有時為了確認(rèn)有些操作的成功完成,必須使用定時溢出(TE)標(biāo)志等。在表3.14中,僅當(dāng)DV位被設(shè)置有效時(即DV=“1”),TE、PE、CE、BE及AE標(biāo)志才有效。但有一例外,即當(dāng)認(rèn)證(Authentication)正確完成后,AE標(biāo)志也直接有效。當(dāng)執(zhí)行SOR后,所有的這些標(biāo)志將被清除,且當(dāng)對MCM的任何一個寄存器執(zhí)行寫周期時,所有的這些標(biāo)志也將被清除;僅當(dāng)FIFO是空時,DV標(biāo)志將被寫周期清除。116表3.15出錯情況117
3.發(fā)送與接收位計數(shù)器(BCNTS和BCNTR)1)BCNTS寄存器BCNTS是英文Bit-Counter-for-Sending的縮寫,意為發(fā)送時的位計數(shù)器(寄存器)。這里的發(fā)送指的是MCU向MCM的DATA寄存器寫數(shù)據(jù)。因此BCNTS寄存器實際上是一個字節(jié)發(fā)送控制器,它控制了MCU向DATA寄存器中寫進的數(shù)據(jù)字節(jié)數(shù)目,這一操作必須在數(shù)據(jù)寫入DATA寄存器之前完成,即在向DATA寄存器寫入任何數(shù)據(jù)之前必須正確設(shè)置BCNTS寄存器。118通常,寫DATA寄存器意味著向卡發(fā)送指令或數(shù)據(jù)。例如,發(fā)送一條“讀卡”指令,該指令將包含一個字節(jié)的指令碼和一個字節(jié)的塊地址碼。因此,在發(fā)送該指令之前,必須先設(shè)置BCTRS=10H,可向MCM的DATA寄存器寫進的數(shù)據(jù)位數(shù)為16位,即字節(jié)數(shù)為2B。多余的數(shù)據(jù),MCM將不予接收。在大量的字節(jié)信息(包括命令碼、地址碼及數(shù)據(jù))被寫入DATA寄存器之后,MCM自動地按先進先出的原則從DATA中取出各字節(jié)發(fā)送給卡片。寫入DATA寄存器的位的數(shù)量由BCNTS寄存器制定、保持。1192)BCNTR寄存器BCNTR是英文Bit-Counter-for-Receiving的縮寫,意為接收時的位計數(shù)器(寄存器)。與BCNTS寄存器相反,BCNTR寄存器控制MCU讀取DATA寄存器的數(shù)據(jù)字節(jié)數(shù)目,因此這一操作必須在讀DATA寄存器之前完成。120通常,讀DATA寄存器意味著從卡接收卡應(yīng)答或卡數(shù)據(jù)。例如,當(dāng)卡接收到“讀卡”指令后,將送出該指令指定的塊中所存儲的16B的數(shù)據(jù)。因此,在讀DATA(讀入16B的卡數(shù)據(jù))之前,必須先設(shè)置BCNTR=128H,MCM自動從卡接收數(shù)據(jù)并順序地存入DATA寄存器中。數(shù)據(jù)接收完畢后,BCNTR寄存器中的值將與實際接收到的數(shù)據(jù)字節(jié)相比較,如果有差別,則STACON寄存器中的BE標(biāo)志被設(shè)置,表示接收的數(shù)據(jù)位數(shù)出錯。當(dāng)接收正確時,MCU可向MCM的DATA寄存器讀取的數(shù)據(jù)字節(jié)數(shù)目則為16B,多余的數(shù)據(jù),MCM將不予理會。121
4.時間溢出計數(shù)器(TOC寄存器)TOC是TimeOutCounter(時間溢出計數(shù)器)的縮寫。設(shè)置TOC寄存器可對定時時間進行控制。寫數(shù)據(jù)至TOC寄存器,可以控制定時溢出計數(shù)器。定時溢出的計算公式如下:清除TOC,即TOC=0x00H,將關(guān)閉定時溢出計數(shù)器,即tTO=0。TOC寄存器中的值必須在MCM與MIFARE1卡通信時被設(shè)置。122TOC寄存器常用的設(shè)置值為0AH,即定時tTO=100×10μs=1ms。TOC寄存器中的值(非零值)將在沒有通信時,永久地遞減。因此,在沒有通信時,或通信剛結(jié)束時,TOC寄存器中的值必須被清除,即設(shè)置TOC=0x00H。例如在FIFO中的數(shù)據(jù)有效時就必須這樣做,否則將影響STACON寄存器的TE出錯標(biāo)志位。如果有溢出出現(xiàn),則TE標(biāo)志被設(shè)置,DV標(biāo)志被激活。在完成寫數(shù)據(jù)到DATA寄存器時,定時溢出計數(shù)器應(yīng)該經(jīng)常被初始化。但有個例外,即在認(rèn)證(Authencation)操作的開始時段,定時溢出計數(shù)器應(yīng)該在存取“KEYSTACON”和“KEYADDR”寄存器之后,在存取DATA寄存器之前被初始化。在讀取(Read)和保存(Save)了STACON寄存器中的數(shù)據(jù)之后,定時溢出計數(shù)器必須被關(guān)閉。123
5.密碼寄存器MIFARE1卡的每一個扇區(qū)擁有各自獨立的2個6B的密碼(KEYA和KEYB),這些密碼存放在每個扇區(qū)的塊3中。與之相應(yīng),MCM中設(shè)有專用的密碼存儲器(KEY-RAM),其中存儲了3個密碼集KEYSET0、KEYSET1、KEYSET2,每一個KEYSET又包含了各個扇區(qū)的KEYA及KEYB,可對應(yīng)于高達32Kb內(nèi)存容量的MIFARE卡片。在對MIFARE1卡進行讀/寫操作之前,必須先通過密碼認(rèn)證。密碼的認(rèn)證采用了三次相互認(rèn)證的方法,即選定MCM密碼集中的一套密碼,將需認(rèn)證的扇區(qū)密碼與卡中相應(yīng)扇區(qū)的密碼進行三次相互認(rèn)證,認(rèn)證通過方可對該扇區(qū)的各塊進行讀/寫操作。124在MCM中,KEY-RAM(密碼存儲器)的實際存儲器范圍是3×扇區(qū)數(shù)×每扇區(qū)的密碼數(shù)×每個密碼的位數(shù)=3×64×2×48=18432b=2304B注意:KEY-RAM(密碼存儲器)中的數(shù)據(jù)可以修改,但不能讀出芯片之外,只能用于認(rèn)證。MCM中另外還包含了KEY-ROM(密碼只讀存儲器),用以存儲一套傳輸密碼(onesetoftransportkeys)和一個維護密碼(oneservicekey)。當(dāng)用戶想在KEY-RAM(密碼存儲器)中自己定義密碼時,必須先校驗傳輸密碼。125KEY-ROM(密碼只讀存儲器)的存儲器容量為扇區(qū)數(shù)×每個密碼的位數(shù)+維護密碼位數(shù)=64×48+48 =3120b=390B126注意:KEY-ROM(密碼只讀存儲器)是在出廠前掩膜方式編程的,不能讀出芯片之外,不能修改,只能用于校驗。MCM的密碼認(rèn)證操作涉及以下三個寄存器:KEYDATA寄存器、KEYSTACON寄存器和KEYADDR寄存器,下面將分別予以說明。1271)KEYDATA寄存器KEYDATA寄存器用于暫存將要校驗的傳輸密碼和將要寫入MCM的KEY-RAM中的密碼。寫入MCM的KEY-RAM中的密碼必須先被寫入KEYDATA寄存器。在密碼被準(zhǔn)確無誤地存進KEY-RAM之前,相關(guān)的傳輸密碼(TransportKey)必須被寫入KEYDATA寄存器中。傳輸密碼和寫入RAM中的密碼長度都是6B,連續(xù)被寫入KEYDATA寄存器中。但是,在認(rèn)證操作時,這一寄存器不必使用。1282)KEYSTACON寄存器KEYSTACON寄存器是指密碼狀態(tài)和密碼控制寄存器。在執(zhí)行下載密碼(LoadKey)或密碼認(rèn)證(Authentication)操作之前,必須首先對KEYSTACON寄存器進行設(shè)置。為了能夠存取MCM內(nèi)部RAM中的密碼,密碼的存放地址必須首先在KEYSTACON寄存器和KEYADDR寄存器兩者中指定。寫入數(shù)據(jù)到KEYSTACON寄存器進行設(shè)置,將確定存取RAM中的密碼或傳輸密碼的密碼地址的一部分。存放在MCM的RAM中的密碼對程序員來說是不可讀的。這里的“不可讀”指的是KEY-RAM不能像普通的RAM一樣通過直接指定存儲單元的地址來讀出,而只能通過在LoadKey或Authentication的過程中設(shè)置KEYSTACON及KEYADDR來尋址對應(yīng)的密碼,否則密碼就沒有秘密可言了。129表3.16KEYSTACON寄存器參數(shù)設(shè)置表130(1)AL位:設(shè)置將要執(zhí)行的密碼操作功能,即認(rèn)證操作或下載密碼操作。下載密碼:AL=0,表明將要下載密碼,選擇KEY-ROM中的傳輸密碼加以校驗;密碼認(rèn)證(Authentication):AL=1,表明將要進行Authentication(認(rèn)證)操作,選擇RAM中的密碼。(2)KS1和KS0位:當(dāng)AL=1時,用戶必須在進行密碼認(rèn)證之前通過設(shè)置KS1和KS0來指定一套密碼;而當(dāng)AL=0時,KS1和KS0應(yīng)設(shè)置為11,選擇傳輸密碼(TransportKey)。1313)KEYADDR寄存器KEYADDR寄存器用于設(shè)置存放在KEY-RAM中的密碼或存放在KEY-ROM中傳輸密碼地址的一部分。當(dāng)設(shè)置了KEYSTACON,確定了將要操作的密碼集后,設(shè)置KEYADDR寄存器將確定認(rèn)證KEY-RAM中哪個扇區(qū)的密碼及密碼A或密碼B,或者確定將校驗?zāi)膫€扇區(qū)的傳輸密碼。如前所述,程序員不可能知道密碼實際存放在KEY-RAM中的地址,因此必須通過設(shè)置KEYADDR來確定將要操作的密碼的地址。KEYADDR寄存器的參數(shù)設(shè)置見表3.17。132表3.17KEYADDR寄存器參數(shù)設(shè)置表133(1)AL位:設(shè)置將要執(zhí)行的密碼操作功能,即認(rèn)證操作或下載密碼操作。下載密碼LoadKey:AL=0,表明將要提取密碼;認(rèn)證Authentication:AL=1,表明將要執(zhí)行認(rèn)證操作。134(2)AB位:用于選擇KEYA(當(dāng)AB=“1”時)或KEYB(當(dāng)AB=“0”時)。注意:KEYADDR寄存器中的“AB”位設(shè)置必須匹配于“Authentication”命令(指令代碼60H和61H),否則,“Authentication”命令將失敗。在“Authentication”命令中,60H代碼用于認(rèn)證KEYA;61H代碼用于認(rèn)證KEYB。KS1和KS0的設(shè)置選擇與上述的認(rèn)證命令指令代碼60H和61H的選擇及KEYADDR寄存器中AB的設(shè)置無關(guān)。135(3)A5~A0位:設(shè)定要認(rèn)證的扇區(qū)號,用二進制表示,為000000~111111,即0~63。其中,A5、A4位是為將來擴展更大容量(64個扇區(qū))的卡而設(shè)的。MIFARE1共有16個扇區(qū),扇區(qū)號為0~15,因此只需使用A5~A0位的低4位,即000000~001111。設(shè)置了KEYSTACON和KEYADDR寄存器確定密碼地址之后,通過寫“命令”(Command)和寫“地址”(Address)到DATA寄存器,認(rèn)證密碼“Authentication”操作便開始啟動執(zhí)行??ㄆ洗鎯ζ鞯拿恳粋€block(塊)(128b)都分別地指定了該block(塊)的存取條件。這些存取條件是根據(jù)密碼A或B(它們對整個sector(扇區(qū))的所有塊有效)而定的。這樣一來,某一個sector的密碼認(rèn)證通過后,其4個不同block中的每一個可能會被允許進行不同的操作。136
6.CRC校驗寄存器1)ENABLE寄存器ENABLE寄存器的設(shè)置將影響卡片在通信時對Parity和CRC的校驗。在ENABLE寄存器中有針對Parity和CRC校驗的復(fù)位允許位(resetENABLEbit)。對ENABLE寄存器進行寫操作,將執(zhí)行對Parity和CRC校驗功能的控制。ENABLE寄存器的參數(shù)設(shè)置見表3.18。137
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024重慶環(huán)保工程承攬協(xié)議范本
- 2024年商業(yè)租賃協(xié)議全面指南
- 育強國建設(shè)背景下義務(wù)教育公共服務(wù)治理體系建設(shè)方案
- 鋼結(jié)構(gòu)施工勞務(wù)分包詳細協(xié)議規(guī)范文本
- 鋼結(jié)構(gòu)廠房建筑承包協(xié)議
- 2024年酒店豪華大廳租賃協(xié)議樣本
- 協(xié)議格式與條款詳解2024年
- 2024室外景觀假山施工協(xié)議
- 美發(fā)店合作協(xié)議書合同范本
- 電力投資合同范本
- 網(wǎng)吧公司章程范本
- PVC熱穩(wěn)定劑常見測試方法解析
- 多功能會議室系統(tǒng)建設(shè)配置清單及預(yù)算
- DB63∕T 1996-2021 自然保護地 特許經(jīng)營
- Module 4 外研版英語九(上)模塊主題寫作詳解與訓(xùn)練
- 高大模板安全專項施工方案(專家論證)
- 個人晉升述職報告PPT課件(帶內(nèi)容)
- 醫(yī)院績效考核分配方案及實施細則
- 水工環(huán)地質(zhì)調(diào)查技術(shù)標(biāo)準(zhǔn)手冊
- 血液科常用化療方案(1)
- 7上unit2reading
評論
0/150
提交評論