非接觸式CPU卡讀寫系統(tǒng)的設(shè)計
引 言
伴隨著國家金卡工程的持續(xù)推進,在 20 多年的發(fā)展歷程中,中國金融 IC 卡事業(yè)不斷升級?;?a href="/tags/射頻識別" target="_blank">射頻識別技術(shù)的各類智能卡早已滲透到我們生活的各個方面,小到個人的電話卡、信用卡,大到市民一卡通等,在這些技術(shù)方便我們生活的同時, 消費者對于安全的渴求也越來越高。CPU 卡內(nèi)部芯片相當于一個微處理器,含有定制的COS 操作系統(tǒng),可執(zhí)行嚴謹?shù)募用苓\算,安全性高,靈活性強,儲存容量較大。
1 射頻識別技術(shù)
射頻識別(Radio Frequency Identification,RFID)通過空中信道獲取數(shù)據(jù),讀寫相關(guān)目標,無需物理直接接觸、光學可視與人工干預(yù)即可完成信息的輸入和處理 [1],是一種領(lǐng)先的非接觸式通信方式。在不同的領(lǐng)域,RFIID 的構(gòu)成有所不同,但一個典型的RFID 系統(tǒng)需包括電子標簽、讀寫器和 PC 機(后臺應(yīng)用軟件)等三部分。RFID 系統(tǒng)基本組成如圖 1 所示。
RFID 最大的優(yōu)點是能夠?qū)崿F(xiàn)非接觸式數(shù)據(jù)交互,通過電磁場傳輸信息,快速實現(xiàn)物物互聯(lián)。在整個通信過程中無需人為干預(yù),可自動識別,彌補了傳統(tǒng)接觸式識別的不足。
2 硬件設(shè)計
硬件電路系統(tǒng)是本次設(shè)計的一個重點,需要確定整體思路。首先,根據(jù)項目和功能的需求,確定整體思路和設(shè)計框架;
其次,運用模塊化思想進行分塊設(shè)計,明確哪些模塊可以拓展、 改進 ;再次,根據(jù)硬件電路的設(shè)計思路繪制原理圖、電路圖 和 PCB 等 ;最后對硬件進行調(diào)試和測試。
該硬件系統(tǒng)包含如下 5 個模塊 :
(1)MCU 控制模塊 :該模塊主要負責各種信息的處理和 功能拓展,由芯片、電源、復(fù)位電路、振蕩電路等組成。
(2)射頻讀寫模塊 :該模塊為系統(tǒng)的核心模塊,負責實 現(xiàn)與非接觸 CPU 卡的通信,由射頻收發(fā)芯片的應(yīng)用電路和天 線線圈組成。
(3)與上位機的通信模塊 :該模塊用以實現(xiàn)讀寫終端與 PC 機的通信。
(4)外部拓展模塊:包括外部拓展的 E2,F(xiàn)LASH 模塊等。
(5)人機交互模塊 :包括 LCD 顯示屏部分和鍵盤等。
硬件系統(tǒng)總體框圖如圖 2 所示。
2.1 微控制器模塊
相較于 8 位單片機,32 位的高性能 ARM 處理器擁有 更高的通信效率、更多可擴展外設(shè)、更強的控制能力,因此 STM32 系列 MCU 主控制器成為了本系統(tǒng)的首選,Coetex-M3 內(nèi)核具有較高的性能、較高的代碼密度、實時性較好,方便使用, 憑借其超低功耗等優(yōu)點使得 CM3 成為理想的微處理器。
CM3 采用的是哈弗結(jié)構(gòu)而非馮 · 諾依曼結(jié)構(gòu)體系,所以 其數(shù)據(jù)和指令總線各自獨立,互不干擾,可實現(xiàn)并行獨立的 取指和數(shù)據(jù)訪問,極大地改善了運行速度和性能。CM3 內(nèi)核 中的嵌套向量中斷控制器,即 NVIC(Nested Vector InterruptController,NVIC),可以使終端的響應(yīng)速度變快。
2.2 射頻讀寫模塊
對比了成本、封裝類型、開發(fā)復(fù)雜度、代碼移植性等多種因素,本文以具有較強兼容性和穩(wěn)定性的由NXP 半導(dǎo)體公司研發(fā)的RC632 芯片作為射頻收發(fā)芯片的首選[2]。
2.3 與上位機的通信模塊
USB 的中文名為 通用串行總線 ,考慮到產(chǎn)品的可移植性、適用性等因素,設(shè)計了與上位機通信的 USB 通信電路 [3]。USB 具有以下優(yōu)點:
應(yīng)用較廣泛。USB即通用串行總線,是目前我們最常用也是市場上應(yīng)用最廣的一種外部通信總線。日常生活中, 從電腦 PC機到鍵盤音箱鼠標,甚至到大部分機械設(shè)備都會配備USB 接口。目前為止,我們所見到的USB 接口大多為 2.0 和 3.0版本規(guī)范,該規(guī)范是由Intel公司和微軟公司聯(lián)合提出的一種標準,目的在于規(guī)范 USB和PC等設(shè)備之間的通信。
應(yīng)用便捷。其熱插拔和即插即用的特性完全滿足了人們對設(shè)備使用方便靈活的需求。
傳輸較快。USB2.0接口標準的理論傳輸速度可達
480 Mbit/s,遠超普通串口的傳輸速度(9 600 bit/s)[4]。
2.4 人機交互模塊
2.4.1 LCD顯示模塊
本文的液晶顯示屏采用KD240IT002[5]。屏幕尺寸為 2.4 英寸,控制器采用經(jīng)典的 ILI9341,擁有標準的 37Pin 通用接口, 分辨率為 320240,支持 90,180,270,360四個顯示方向。為了在滿足性能要求的前提下節(jié)省I/O 口資源,我們采用 8 線并口方式。
2.4.2 鍵盤電路模塊
出于安全角度的考量,在每張卡片扣款前,必須先輸入密碼以校驗其合法性,因此鍵盤電路必不可少。同時考慮到設(shè)計的便捷性與壓縮成本,我們采用 4 4 薄膜鍵盤,它獨立于MCU 主控電路模塊,用 8 根線即可控制 16 個按鍵。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件設(shè)計主要包括控制模塊的軟件程序設(shè)計、射頻讀寫模塊的軟件設(shè)計、人機交互模塊的軟件設(shè)計、與上位機通信模塊以及PC 端后臺應(yīng)用軟件的設(shè)計。
3.1 軟件設(shè)計概要
我們選擇 時間片輪轉(zhuǎn)調(diào)度算法 實現(xiàn)該功能。
時間片輪轉(zhuǎn)調(diào)度算法也稱為RR 調(diào)度,是一種非常簡單實用的算法。時間片是該算法的重要概念,該算法為每個進程分配了一個時間段,該時間段代表了該進程能被允許的運行時間,通常稱之為時間片。RR 調(diào)度采用一種霸道但公平的思想,即剝奪策略。在系統(tǒng)運行過程中按照先到先得的原則排隊,等待接收CPU 的指令。當?shù)谝粋€時間片運行完畢后,計時器會發(fā)出中斷請求,這時程序就會停止執(zhí)行并將其送往隊尾。然后繼續(xù)給下一個或新進的隊首發(fā)出指令執(zhí)行下一個時間片??紤]到該項目成本較低且較簡單,故不使用嵌入式操作系統(tǒng)。此外,由于每個任務(wù)量都不大,我們還可以簡化算法,將各任務(wù)依次 流水 執(zhí)行即可。
本文系統(tǒng)中CPU 為STM32F103RBT6。我們需要執(zhí)行的主要任務(wù)大致包括輪詢掃描感應(yīng)區(qū)是否出現(xiàn)CPU 智能卡、處理來自上位機的指令、按鍵輸入掃描任務(wù)。所以此處輪詢是指處理器需要不斷地詢問掃描各個任務(wù),看是否有任務(wù)滿足執(zhí)行條件,一旦確定,將在一個時間段內(nèi)執(zhí)行該任務(wù),進程結(jié)束后繼續(xù)重復(fù)掃描,執(zhí)行下一個任務(wù)。
3.2 射頻讀寫模塊軟件設(shè)計
射頻讀寫模塊是軟件系統(tǒng)中的重要組成部分,是讀卡器和 CPU 智能卡之間的信息橋梁,幫助兩者實現(xiàn)數(shù)據(jù)交換 [6]。工作流程如圖 3 所示。
4 結(jié) 語
隨著技術(shù)的不斷發(fā)展革新,人們對讀寫系統(tǒng)的安全性、便捷性、功能性要求越來越高,而智能卡也成為我們生活中不可或缺的一部分。非接觸式CPU 智能卡滿足了人們對卡的需求, 只需輕輕一揮,就能立即支付,非常方便。
隨著國家對IC 卡工程的大力支持,讀寫器終端必將發(fā)生巨大的變革并大力發(fā)展,其安全性會更高、功能更加豐富,可以滿足支付多樣性需求的讀寫器終端將如山洪般涌現(xiàn)[1]。