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