基于SPI接口安全芯片產(chǎn)品的讀卡器研究
由于安全芯片的工作電壓不確定,本讀卡器提供了5V和3.3V的工作電壓,其中3.3V是通過(guò)電源轉換芯片LM1117提供的,同時(shí)在USB接口處添加了ESD防護器件SRV05-4,以防讀卡器被靜電打壞。如圖6所示。
本文引用地址:http://dyxdggzs.com/article/201710/370666.htm2.2 MCU主控部分
本讀卡器采用了ST的MCU為主控芯片,該芯片是一款基于A(yíng)RM Cortex-M3為內核的微控制器,最高工作頻率為72MHz。此外,該主控芯片具有豐富的硬件資源,配置了128K的flash存儲器和20K的RAM、三個(gè)16位普通定時(shí)器和一個(gè)高級定時(shí)器、2×SPI、2×I2C、3×USART、1×USB、1×CAN2.0、2(16)個(gè)ADC和48個(gè)I/O引腳。本讀卡器應用了該芯片的USB功能,通過(guò)USB端口檢測是否有安全芯片插入,實(shí)現和安全芯片的通訊控制,另外通過(guò)MCU控制蜂鳴器和LED燈的亮滅。
2.3 SPI從設備接口
本讀卡器和安全芯片的接口是通過(guò)IC卡座連接的,如圖7所示,通過(guò)IC卡座的檢測管腳判斷是否有安全芯片插入,同時(shí)也可以方便地監測SPI的通訊時(shí)序,方便調試和測試。
2.4 其他電路
本讀卡器硬件上包含蜂鳴器和LED指示燈部分,如圖8所示。當有安全芯片插入或拔出時(shí)通過(guò)MCU控制蜂鳴器的發(fā)出“嘀嘀”的響聲,當和安全芯片進(jìn)行通訊時(shí),控制指示燈D2的亮滅指示通訊的正?;虍惓?,電源指示燈D1亮滅代表電源的正常與否。
3 軟件設計
本系統的軟件框圖如圖9所示,通過(guò)USB供電,當系統正常上電后程序進(jìn)行初始化,包括系統時(shí)鐘的初始化、USB初始化及CCID設備接口的初始化等,當該系統的CCID設備接口準備好后可以通過(guò)其中的固定的端口發(fā)送指令進(jìn)行SPI時(shí)序的設置,當插入安全芯片時(shí)系統會(huì )自動(dòng)檢測,如果檢測到安全芯片,端口上會(huì )顯示該SPI接口從設備的相關(guān)信息,通過(guò)該端口可以進(jìn)行安全芯片的通訊測試;如果沒(méi)有檢測的安全芯片,那么可以通過(guò)查看相關(guān)的時(shí)序,進(jìn)行調整,重新進(jìn)行SPI時(shí)序的相關(guān)參數的設置。
3.1 CCID設備初始化
CCID標準規定了CCID設備是一種芯片/智能卡接口設備,設備通過(guò)USB接口與主機或其他嵌入式主機連接,進(jìn)行符合CCID標準的數據通訊,工作過(guò)程如圖10所示。本讀卡器采用了CCID標準,實(shí)現了3個(gè)設備端口的初始化,用到了Bulk-OUT Message在Command Pipe發(fā)送;Bulk-IN Message在Response Pipe發(fā)送;Interrupt-IN Message在interrupt-IN Pipe發(fā)送,用到的函數如表1所示。
3.2 SPI從設備通信處理軟件
本讀卡器采用了MODE3模式,時(shí)序圖如圖11所示,主要涉及到以下關(guān)鍵的時(shí)間點(diǎn):包括Ton:片選SSN拉低到第一個(gè)Clock之間的延時(shí)時(shí)間,Toff :SPI通訊結束的最后一個(gè)CLK到片選SSN拉高之間的間隔,Ti:每個(gè)字節幀之間的間隔,Tidle :片選SSN高電平持續的時(shí)間。通過(guò)CCID設備的固定端口發(fā)送SPI時(shí)序的配置指令,分別對上面的關(guān)鍵時(shí)間點(diǎn)Ton、Toff、Ti和Tidle進(jìn)行設置。
參考SPI接口從設備的通信時(shí)序圖及通信流程編寫(xiě)程序,完成了調試,下面給出SPI初始化的程序,具體的程序執行流程圖如圖12所示。
4 結論
本文設計的讀卡器實(shí)現了和SPI接口從設備通信,同時(shí)實(shí)現了對SPI從設備時(shí)序的配置,方便測試SPI從設備的工作極限參數,例如工作頻率等。此外在進(jìn)行SPI從設備生產(chǎn)發(fā)行過(guò)程中,通過(guò)修改SPI時(shí)序可以很大程度上提高生產(chǎn)產(chǎn)能。另外也方便用戶(hù)進(jìn)行SPI底層程序的調試,縮短了開(kāi)發(fā)周期,在實(shí)際應用中具有深遠的意義。
參考文獻:
[1]DWG_Smart-Card_CCID_Rev110.pdf.
[2]涂永飛,王名傳.基于SPI雙機通信的弧光保護系統[J].微型機與應用,2015,34(2):72-76.
[3]解永軍,許芳,王德清.基于SPI的雙DSP通信協(xié)議研究[J].電子世界,2014,(14):221-222.
[4]高振,羅秋鳳.SPI接口與CRC算法在雙DSP數據通信中的應用[J].電子產(chǎn)品世界,2011(1-2):46-48.
[5]付興武,張軍,王洋.基于SPI總線(xiàn)協(xié)議的字符設備驅動(dòng)程序[J].計算機系統應用,2013,22(2):146-150.
本文來(lái)源于《電子產(chǎn)品世界》2017年第11期第42頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評論