基于SPI接口安全芯片產(chǎn)品的讀卡器研究
由于安全芯片的工作電壓不確定,本讀卡器提供了5V和3.3V的工作電壓,其中3.3V是通過電源轉(zhuǎn)換芯片LM1117提供的,同時(shí)在USB接口處添加了ESD防護(hù)器件SRV05-4,以防讀卡器被靜電打壞。如圖6所示。
本文引用地址:http://butianyuan.cn/article/201710/370666.htm2.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×USB、1×CAN2.0、2(16)個(gè)ADC和48個(gè)I/O引腳。本讀卡器應(yīng)用了該芯片的USB功能,通過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è)備初始化
CCID標(biāo)準(zhǔn)規(guī)定了CCID設(shè)備是一種芯片/智能卡接口設(shè)備,設(shè)備通過USB接口與主機(jī)或其他嵌入式主機(jī)連接,進(jìn)行符合CCID標(biāo)準(zhǔn)的數(shù)據(jù)通訊,工作過程如圖10所示。本讀卡器采用了CCID標(biāo)準(zhǔn),實(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í)引用,并注明出處。
評(píng)論