国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

非接觸式CPU卡的空中傳輸協(xié)議的軟硬件設(shè)計※

2015-09-25 03:06:02張玉川王彬
關(guān)鍵詞:IC卡字節(jié)寄存器

張玉川,王彬

(杭州電子科技大學(xué)電子信息學(xué)院,杭州310018)

引 言

普通的邏輯加密卡,如Mifare1卡(即M1卡),由非易失性存儲器和硬件加密邏輯組成,通過校驗密碼的方式來保護卡內(nèi)的數(shù)據(jù),具有一定的安全性,但這只是低層次的安全保護,無法防范惡意性攻擊,因此無法滿足更高的安全性和更復(fù)雜的多應(yīng)用需求。而CPU卡內(nèi)部具有微處理器芯片,且固化有COS操作系統(tǒng),可執(zhí)行嚴(yán)謹(jǐn)?shù)募用苓\算,安全性極高,靈活性強,且存儲容量大。來看一組金融領(lǐng)域的數(shù)據(jù),截至2014年6月底,全國金融IC卡累計發(fā)行超過8.7億張,其中上半年新增2.84億張,占新增銀行卡總量的82%,商戶POS和ATM實現(xiàn)全面受理,行業(yè)應(yīng)用不斷涌現(xiàn)。隨著應(yīng)用環(huán)境的日漸成熟,各商業(yè)銀行將在2015年發(fā)行純芯片卡??梢钥吹?,原來的磁條卡時代正在緩緩落幕,銀行卡“芯”時代已成大勢所趨,與此同時,相應(yīng)的終端機具需求量必將劇增,這給企業(yè)帶來了巨大的商業(yè)契機。

本文在研究了ISO/IEC14443標(biāo)準(zhǔn)以及相關(guān)的金融標(biāo)準(zhǔn)基礎(chǔ)上,基于RC632射頻收發(fā)芯片,對非接觸式CPU卡和終端機具之間通信所采用的空中傳輸協(xié)議進行了設(shè)計,并給出測試結(jié)果。

1 ISO14443協(xié)議簡介

ISO14443協(xié)議是13.56MHz下非接觸式IC卡的國際標(biāo)準(zhǔn)協(xié)議,由4部分組成:①物理特性,規(guī)定了接近式IC卡(PICC)的物理特性;②射頻功率和信號接口,規(guī)定了在接近式耦合設(shè)備(PCD)和接近式IC卡(PICC)之間提供功率和雙向通信的場的性質(zhì)與特征;③初始化和防沖突,描述了PICC進入PCD工作場的輪詢,規(guī)定了在PCD和PICC之間通信的初始階段所使用的字節(jié)格式、幀格式和幀時序,以及在沖突發(fā)生的情況下如何從多張卡片中選出一張(防沖突)的方法[1];④傳輸協(xié)議,規(guī)定了非接觸式應(yīng)用中具有特色的半雙工傳輸協(xié)議。隨著應(yīng)用場景的不斷多元化,尤其是在快速消費領(lǐng)域,由于卡片和終端機具的需求量與日俱增,ISO14443協(xié)議應(yīng)用也越來越廣泛。

2 系統(tǒng)硬件部分

2.1 MCU控制電路

本系統(tǒng)中MCU芯片選取STM32F103RBT6,它是基于ARM Cortex-M3內(nèi)核的高性能32位微處理器,具有128KB Flash、20KB SRAM,主頻可達72MHz,且具有功耗低、價格低、接口資源豐富等特點。

2.2 射頻收發(fā)電路

射頻收發(fā)電路是本系統(tǒng)的核心部分,由RC632應(yīng)用電路和天線組成。RC632是NXP公司推出的一款多協(xié)議非接觸式讀寫芯片,集成了在13.56MHz下所有類型的被動非接觸式通信方式和協(xié)議,支持ISO14443(包括Type A和Type B)和ISO15693(包括I·CODE1)兩種國際標(biāo)準(zhǔn)。發(fā)送器電路設(shè)計成具有非常低的阻抗,只需要很少的用于匹配和濾波的無源器件就可以直接驅(qū)動天線,操作卡片的距離可達10cm,其引腳TX1和TX2上傳遞的信號是由包絡(luò)信號調(diào)制的13.56MHz載波信號,這兩個信號可通過寄存器TxControl進行控制。接收器設(shè)計有一個正交調(diào)制電路,該電路從輸入到RX引腳的13.56MHzASK調(diào)制信號中解析出副載波信號,經(jīng)過放大濾波后輸入到相關(guān)性電路,對相關(guān)性結(jié)果數(shù)字化后輸入到數(shù)字電路。RC632的并行接口可直接連接到任何8位微處理器,這給讀寫器及終端的設(shè)計帶來了極大的靈活性,另外,RC632支持通過SPI方式連接到微處理器[3]。

圖2 實物圖

本系統(tǒng)采用SPI方式將RC632連接到MCU,其原理圖如圖1所示。圖中的MOSI_rf、MISO_rf、SCK_rf、NSS_rf四個引腳需連接到MCU的SPI外設(shè),C16f、C17f兩端的GND_rf網(wǎng)絡(luò)需要繪制天線線圈(天線的設(shè)計不在本文范圍內(nèi))。硬件焊接調(diào)試完成后,其實物圖如圖2所示。

3 系統(tǒng)軟件部分

與M1卡一樣,非接觸式CPU卡(稱PICC)符合ISO14443-1/2/3標(biāo)準(zhǔn),不同的是它可以通過RATS命令進入到CPU模式,文后都按照ISO14443-4的塊傳輸協(xié)議與讀寫設(shè)備(稱PCD)進行信息交互。PCD訪問PICC的工作流程如圖3所示。激活CPU卡的過程總共包括尋卡、防沖突、選卡、RATS四步,其中RATS是在判斷選卡命令的響應(yīng)支持ISO14443-4標(biāo)準(zhǔn)的情況下發(fā)送的,以便進入CPU模式。

圖1 射頻收發(fā)電路

根據(jù)OSI參考模型分層原理設(shè)計的思想,對PCD和PICC之間的半雙工塊傳輸協(xié)議進行概況,可抽象出3層,如圖4所示。物理層處在該層次結(jié)構(gòu)的最底層,它利用空中射頻信道為上層協(xié)議提供了一個傳輸數(shù)據(jù)的物理媒介,在這一層數(shù)據(jù)的單位是位;數(shù)據(jù)鏈路層起著承上啟下的作用,負(fù)責(zé)在物理層提供的傳輸媒介上將應(yīng)用層的數(shù)據(jù)加工后發(fā)送出去;應(yīng)用層則是提供符合某行業(yè)標(biāo)準(zhǔn)的APDU命令。由于應(yīng)用層和數(shù)據(jù)鏈路層聯(lián)系很緊密,故將二者合并為協(xié)議層予以介紹。

3.1 物理層設(shè)計

圖3 PCD訪問PICC的工作流程

圖4 半雙工傳輸協(xié)議軟件設(shè)計的層次劃分

物理層在雙方通信過程中起著橋梁的作用,本系統(tǒng)中擔(dān)此重任的是射頻收發(fā)芯片RC632。在程序初始化時,配置RC632的相關(guān)寄存器,使芯片工作在ISO14443Type A模式。針對不同的傳輸要求,需及時調(diào)整相關(guān)寄存器的值,使PCD和PICC之間的底層“對話”按照規(guī)定的比特流進行,比如通信采用短幀還是標(biāo)準(zhǔn)幀可通過調(diào)整BitFraming寄存器實現(xiàn),有無奇偶校驗或者CRC校驗可通過調(diào)整ChannelRedundancy寄存器實現(xiàn)。RC632的狀態(tài)由可執(zhí)行特定命令集的內(nèi)部狀態(tài)機決定,這些命令通過將相應(yīng)的命令碼寫入到Command寄存器來啟動。本系統(tǒng)中主要用到了Transceive指令,其指令碼是0x1E,該指令從FIFO緩沖區(qū)中取出數(shù)據(jù)并送到發(fā)送器發(fā)送出去,接收器在間隔約定時間后自動啟動,所有從RF接口接收到的數(shù)據(jù)再通過FIFO緩沖區(qū)返回;而處理一個命令所需要的變量或者數(shù)據(jù),則要通過FIFOData寄存器寫入到FIFO緩沖區(qū),然后進行交換。

概括起來,RC632的射頻收發(fā)過程如下:在Idle命令有效時,將所有要發(fā)送到卡片的數(shù)據(jù)通過FIFOData寄存器寫入到FIFO,之后將Transceive指令碼寫入到Command寄存器來啟動收發(fā)過程,然后再通過FIFOData寄存器從FIFO中取出返回的數(shù)據(jù)。

3.2 協(xié)議層設(shè)計

要運行一個應(yīng)用,還需要在終端上實現(xiàn)一個附加的應(yīng)用協(xié)議層,這個協(xié)議層包括向卡片發(fā)送命令、卡片內(nèi)處理命令和返回IC卡處理響應(yīng)等步驟。應(yīng)用層發(fā)出的命令報文和卡片返回到應(yīng)用層的響應(yīng)報文統(tǒng)稱為應(yīng)用協(xié)議數(shù)據(jù)單元(APDU)。響應(yīng)和命令是相對應(yīng)的,通常被稱為APDU命令-響應(yīng)對;在一個APDU命令-響應(yīng)對中,命令報文(C-APDU)或響應(yīng)報文(R-APDU)都可能包含數(shù)據(jù)[4]。

C-APDU由4字節(jié)的必備頭和變長的條件體構(gòu)成,如圖5所示。其中,CLA表示指令類型,INS表示指令碼,P1表示指令參數(shù)1,P2表示指令參數(shù)2,Lc表示命令數(shù)據(jù)域中發(fā)送的數(shù)據(jù)字節(jié)數(shù),Data表示命令發(fā)送的數(shù)據(jù)串,Le表示期望返回的數(shù)據(jù)字節(jié)數(shù)。當(dāng)Le存在且值為0時,表示需要最大字節(jié)數(shù)(256字節(jié));在命令報文需要時,Le可始終被設(shè)為00。

R-APDU由變長的條件體和兩字節(jié)的必備尾組成,如圖6所示。其中,Data表示響應(yīng)中接收的數(shù)據(jù)串,SW1、SW2表示卡片執(zhí)行命令的返回代碼。當(dāng)SW1的高半字節(jié)為9,且低半字節(jié)不為0時,其含義依賴于相關(guān)應(yīng)用;當(dāng)SW1的高半字節(jié)為6,且低半字節(jié)不為0時,其含義與應(yīng)用無關(guān)[5]。

圖5 C-APDU格式

圖6 R-APDU格式

PCD和PICC之間的半雙工協(xié)議支持塊格式傳輸,塊格式由一個開始域(強制)、一個信息域(可選)、一個結(jié)束域(強制)組成,如圖7所示。其中,方括號中的數(shù)據(jù)為可選數(shù)據(jù)。本系統(tǒng)開始域中只含有強制的PCB(協(xié)議控制字節(jié)),信息域中的數(shù)據(jù)是基于某行業(yè)標(biāo)準(zhǔn)的APDU命令,結(jié)束域則是CRC校驗,該校驗值可由射頻芯片RC632自動產(chǎn)生。

圖7 塊格式

協(xié)議控制字節(jié)PCB用于傳送控制數(shù)據(jù)傳輸所需要的信息。根據(jù)PCB編碼的不同,協(xié)議定義了塊的3種基本類型:用于為應(yīng)用層的使用傳送信息的信息塊(I-塊);用于傳送確認(rèn)或不確認(rèn)的接收準(zhǔn)備塊(R-塊);用于在PCD和PICC間交換控制信息的管理塊(S-塊)[6]。PCB的編碼依賴于它的類型,具體可參看協(xié)議ISO14443-4。需要詳述的有這樣一個關(guān)鍵點:I-塊和R-塊的PCB中最低位表示塊號,它遵循如圖8所示的特定編碼規(guī)則。具體描述如下:

①PCD規(guī)則:對于當(dāng)前被激活的PICC,PCD塊編號應(yīng)初始化為0;當(dāng)接收到一個塊編號與當(dāng)前塊編號相等的正確的I-塊或正確的R-塊(ACK)時,PCD在發(fā)送任意一個塊之前,應(yīng)反轉(zhuǎn)當(dāng)前的PICC塊編號。

②PICC規(guī)則:在激活時,PICC塊編號應(yīng)初始化為1;當(dāng)接收到一個I-塊,PICC應(yīng)在接收I-塊之后立即反轉(zhuǎn)它的塊編號;當(dāng)接收到一個塊編號不等于目前的PICC塊編號的R-塊(ACK)時,PICC應(yīng)在接收R-塊(ACK)之后立即反轉(zhuǎn)它的塊編號[7]。

圖8 PCB中塊編號規(guī)則

關(guān)鍵部分代碼略——編者注。

4 測 試

選取復(fù)旦微電子的非接觸式CPU卡做測試。點擊“尋找卡片”按鈕,依次執(zhí)行圖3中的尋卡、防沖突、選卡3個步驟,獲得卡片序列號和卡片類型;點擊“RATS”,發(fā)送選擇應(yīng)答請求來激活CPU模式,PICC返回ATS響應(yīng)“1078 80B0 0220 9000 0000 0000 26BA B4A2”,具體含義如表1所列;發(fā)送表2所列的取隨機數(shù)指令,PICC返回表3所列的4字節(jié)隨機數(shù);發(fā)送表4所列的選擇MF主文件命令,PICC返回表5所列的嵌套TLV格式的文件控制信息(FCI)。測試效果圖略——編者注。

表1 ATS響應(yīng)數(shù)據(jù)

表2 取隨機數(shù)指令

表3 取隨機數(shù)指令應(yīng)答

表4 選擇MF主文件指令

表5 選擇MF主文件指令應(yīng)答

結(jié) 語

本文硬件電路采用ARM內(nèi)核的32位微處理器芯片STM32F103RBT6和NXP公司的RC632來完成,軟件開發(fā)則從物理層和協(xié)議層兩個層面對PCD和PICC之間的無線射頻通信進行設(shè)計。經(jīng)測試證明,該讀寫設(shè)備工作穩(wěn)定、抗干擾能力強、讀卡準(zhǔn)確且操作距離大于5cm。另外,還可以進行擴展改進,如增加GPRS模塊再結(jié)合相關(guān)的非接觸式IC卡支付規(guī)范,便可實現(xiàn)方便、快捷的移動支付。

編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

[1] ISO/IEC14443-3.Identification Cards-Contactless Integrated Circuit Cards-Proximity Cards-Part 3:Initialization and Anticollision[S] .

[2] 潘新娜,鮑可進,唐宏斌.基于ARM的雙界面IC卡讀寫器的設(shè)計與實現(xiàn)[J] .計算機工程與科學(xué),2014,36(5):991-996.

[3] NXP Semiconductors.CL RC632Multiple protocol contactless reader IC Product data sheet[R] .Rev.3.5-10November 2009.

[4] JR/T 0025.3—2013.中國金融集成電路(IC)卡規(guī)范第3部分:與應(yīng)用無關(guān)的IC卡與終端接口規(guī)范[S] .

[5] JR/T 0025.8—2013.中國金融集成電路(IC)卡規(guī)范第8部分:與應(yīng)用無關(guān)的非接觸式規(guī)范[S] .

[6] ISO/IEC14443-4.Identification Cards-Contactless Integrated Circuit Cards-Proximity Cards-Part 4:Transmission Protocol[S] .

[7] JR/T 0025.11—2013.中國金融集成電路(IC)卡規(guī)范第11部分:非接觸式IC卡通訊規(guī)范[S] .

猜你喜歡
IC卡字節(jié)寄存器
工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實踐
No.8 字節(jié)跳動將推出獨立出口電商APP
Lite寄存器模型的設(shè)計與實現(xiàn)
No.10 “字節(jié)跳動手機”要來了?
在用電梯加裝外接式IC卡運行控制系統(tǒng)設(shè)計改進
一種新的無觸點IC卡的檢測方法
電子測試(2017年15期)2017-12-18 07:19:05
簡談MC7字節(jié)碼
分簇結(jié)構(gòu)向量寄存器分配策略研究*
讀IC卡
黨員文摘(2014年12期)2014-12-05 20:10:56
高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
宣城市| 旺苍县| 黄陵县| 迁西县| 湾仔区| 射洪县| 通州市| 祥云县| 隆回县| 金山区| 伊吾县| 闽侯县| 康定县| 龙胜| 娱乐| 邢台县| 繁昌县| 永兴县| 错那县| 彩票| 景宁| 常熟市| 泗阳县| 开封市| 乐清市| 武川县| 怀安县| 台东县| 防城港市| 怀集县| 南京市| 勃利县| 喀什市| 普兰县| 庆云县| 微博| 宜阳县| 荣昌县| 平昌县| 巴南区| 隆安县|