新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于SPI接口安全芯片產(chǎn)品的讀卡器研究 

基于SPI接口安全芯片產(chǎn)品的讀卡器研究 

作者:秦理想 涂靜芝 劉立宗 姜帆 時(shí)間:2017-10-27 來源:電子產(chǎn)品世界 收藏
編者按:由于SPI接口的簡單、高速、穩(wěn)定的特性,在實(shí)際中得到了廣泛應(yīng)用,本文介紹了SPI從設(shè)備的接口協(xié)議,提出了一種基于該SPI協(xié)議的讀卡器的設(shè)計(jì)思路,簡述了方案的具體實(shí)現(xiàn)方法,包括讀卡器的硬件設(shè)計(jì)及軟件設(shè)計(jì)。采用USB即插即用的連接方式,采用CCID標(biāo)準(zhǔn)設(shè)備通過USB接口與主機(jī)或其它嵌入式主機(jī)連接,完成SPI協(xié)議的數(shù)據(jù)通訊,滿足了實(shí)際的功能需求,對(duì)于開發(fā)設(shè)計(jì)相同工作模式下的SPI從設(shè)備的程序具有很好的借鑒價(jià)值。

  由于安全芯片的工作電壓不確定,本提供了5V和3.3V的工作電壓,其中3.3V是通過電源轉(zhuǎn)換芯片LM1117提供的,同時(shí)在接口處添加了ESD防護(hù)器件SRV05-4,以防被靜電打壞。如圖6所示。

本文引用地址:http://butianyuan.cn/article/201710/370666.htm

2.2 MCU主控部分

  本采用了ST的MCU為主控芯片,該芯片是一款基于ARM Cortex-M3為內(nèi)核的微控制器,最高工作頻率為72MHz。此外,該主控芯片具有豐富的硬件資源,配置了128K的flash存儲(chǔ)器和20K的RAM、三個(gè)16位普通定時(shí)器和一個(gè)高級(jí)定時(shí)器、2×SPI、2×I2C、3×USART、1×、1×CAN2.0、2(16)個(gè)ADC和48個(gè)I/O引腳。本讀卡器應(yīng)用了該芯片的功能,通過USB端口檢測是否有安全芯片插入,實(shí)現(xiàn)和安全芯片的通訊控制,另外通過MCU控制蜂鳴器和LED燈的亮滅。

2.3 SPI從設(shè)備接口

  本讀卡器和安全芯片的接口是通過IC卡座連接的,如圖7所示,通過IC卡座的檢測管腳判斷是否有安全芯片插入,同時(shí)也可以方便地監(jiān)測SPI的通訊時(shí)序,方便調(diào)試和測試。

2.4 其他電路

  本讀卡器硬件上包含蜂鳴器和LED指示燈部分,如圖8所示。當(dāng)有安全芯片插入或拔出時(shí)通過MCU控制蜂鳴器的發(fā)出“嘀嘀”的響聲,當(dāng)和安全芯片進(jìn)行通訊時(shí),控制指示燈D2的亮滅指示通訊的正?;虍惓?,電源指示燈D1亮滅代表電源的正常與否。

3 軟件設(shè)計(jì)

  本系統(tǒng)的軟件框圖如圖9所示,通過USB供電,當(dāng)系統(tǒng)正常上電后程序進(jìn)行初始化,包括系統(tǒng)時(shí)鐘的初始化、USB初始化及CCID設(shè)備接口的初始化等,當(dāng)該系統(tǒng)的CCID設(shè)備接口準(zhǔn)備好后可以通過其中的固定的端口發(fā)送指令進(jìn)行SPI時(shí)序的設(shè)置,當(dāng)插入安全芯片時(shí)系統(tǒng)會(huì)自動(dòng)檢測,如果檢測到安全芯片,端口上會(huì)顯示該SPI接口從設(shè)備的相關(guān)信息,通過該端口可以進(jìn)行安全芯片的通訊測試;如果沒有檢測的安全芯片,那么可以通過查看相關(guān)的時(shí)序,進(jìn)行調(diào)整,重新進(jìn)行SPI時(shí)序的相關(guān)參數(shù)的設(shè)置。

3.1 CCID設(shè)備初始化

  規(guī)定了CCID設(shè)備是一種芯片/智能卡接口設(shè)備,設(shè)備通過USB接口與主機(jī)或其他嵌入式主機(jī)連接,進(jìn)行符合的數(shù)據(jù)通訊,工作過程如圖10所示。本讀卡器采用了,實(shí)現(xiàn)了3個(gè)設(shè)備端口的初始化,用到了Bulk-OUT Message在Command Pipe發(fā)送;Bulk-IN Message在Response Pipe發(fā)送;Interrupt-IN Message在interrupt-IN Pipe發(fā)送,用到的函數(shù)如表1所示。

3.2 SPI從設(shè)備通信處理軟件

  本讀卡器采用了MODE3模式,時(shí)序圖如圖11所示,主要涉及到以下關(guān)鍵的時(shí)間點(diǎn):包括Ton:片選SSN拉低到第一個(gè)Clock之間的延時(shí)時(shí)間,Toff :SPI通訊結(jié)束的最后一個(gè)CLK到片選SSN拉高之間的間隔,Ti:每個(gè)字節(jié)幀之間的間隔,Tidle :片選SSN高電平持續(xù)的時(shí)間。通過CCID設(shè)備的固定端口發(fā)送SPI時(shí)序的配置指令,分別對(duì)上面的關(guān)鍵時(shí)間點(diǎn)Ton、Toff、Ti和Tidle進(jìn)行設(shè)置。

  參考SPI接口從設(shè)備的通信時(shí)序圖及通信流程編寫程序,完成了調(diào)試,下面給出SPI初始化的程序,具體的程序執(zhí)行流程圖如圖12所示。

4 結(jié)論

  本文設(shè)計(jì)的讀卡器實(shí)現(xiàn)了和SPI接口從設(shè)備通信,同時(shí)實(shí)現(xiàn)了對(duì)SPI從設(shè)備時(shí)序的配置,方便測試SPI從設(shè)備的工作極限參數(shù),例如工作頻率等。此外在進(jìn)行SPI從設(shè)備生產(chǎn)發(fā)行過程中,通過修改SPI時(shí)序可以很大程度上提高生產(chǎn)產(chǎn)能。另外也方便用戶進(jìn)行SPI底層程序的調(diào)試,縮短了開發(fā)周期,在實(shí)際應(yīng)用中具有深遠(yuǎn)的意義。

  參考文獻(xiàn):

  [1]DWG_Smart-Card_CCID_Rev110.pdf.

  [2]涂永飛,王名傳.基于SPI雙機(jī)通信的弧光保護(hù)系統(tǒng)[J].微型機(jī)與應(yīng)用,2015,34(2):72-76.

  [3]解永軍,許芳,王德清.基于SPI的雙DSP通信協(xié)議研究[J].電子世界,2014,(14):221-222.

  [4]高振,羅秋鳳.SPI接口與CRC算法在雙DSP數(shù)據(jù)通信中的應(yīng)用[J].電子產(chǎn)品世界,2011(1-2):46-48.

  [5]付興武,張軍,王洋.基于SPI總線協(xié)議的字符設(shè)備驅(qū)動(dòng)程序[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2013,22(2):146-150.

  本文來源于《電子產(chǎn)品世界》2017年第11期第42頁,歡迎您寫論文時(shí)引用,并注明出處。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉