基于SPI接口安全芯片產品的讀卡器研究
作者 秦理想1,2 涂靜芝3 劉立宗1,2 姜帆1,2
本文引用地址:http://www.104case.com/article/201710/370666.htm1.北京智芯微電子科技有限公司 國家電網公司重點實驗室 電力芯片設計分析實驗室(北京 100192)
2.北京智芯微電子科技有限公司 北京市電力高可靠性集成電路設計工程技術研究中心(北京 100192)
3.國網江西省電力公司檢修分公司(江西 南昌 330077)
秦理想(1982-),女,工程師,研究方向:智能控制及嵌入式系統應用;涂靜芝,女,工程師,研究方向:嵌入式系統應用;劉立宗,男,工程師,研究方向:智能控制及嵌入式系統應用研究
摘要:由于SPI接口的簡單、高速、穩定的特性,在實際中得到了廣泛應用,本文介紹了SPI從設備的接口協議,提出了一種基于該SPI協議的讀卡器的設計思路,簡述了方案的具體實現方法,包括讀卡器的硬件設計及軟件設計。采用USB即插即用的連接方式,采用CCID標準設備通過USB接口與主機或其它嵌入式主機連接,完成SPI協議的數據通訊,滿足了實際的功能需求,對于開發設計相同工作模式下的SPI從設備的程序具有很好的借鑒價值。
引言
提起讀卡器,大多數人會想到它是一種讀卡設備,由于存在各種不同類型的卡片,讀卡器的含義也比較廣泛了。按照廣義的讀卡器概念,它是一種既可以讀取數據,又可以寫入數據的設備。讀卡器的應用領域很廣泛,例如金融行業、交通領域、醫療系統、電力行業等。然而在電力領域,隨著信息化的加速與信息技術的發展,供電企業的主營業務信息化及辦公生產場所信息網絡覆蓋率都得到了全面的提高,智能電網的覆蓋率通過遠程方式對終端/電表操作的日常業務也隨之增加,進而對數據傳輸的靈活性、安全性、可靠性、穩定性的要求也越來越高,其中采用的安全模塊為SPI接口。目前市場上主流的讀卡器是USB接口的讀卡器,因為它可以即插即用,支持熱插拔,用于讀取存儲卡、IC卡、非接觸式IC卡等,由于接觸IC卡片是ISO7816接口,非接觸式IC卡是ISO14443接口,沒有用于讀取SPI接口芯片的專用讀卡器,本文根據實際需求提出了一種基于SPI通信接口的讀卡器的設計方案。
1 SPI協議
SPI(Serial Peripheral Interface,串行外圍設備接口)是一種高速的、全雙工、同步通信總線,并且在芯片的管腳上只占用四根線,包含設備選擇線、時鐘線、串行輸出數據線、串行輸入數據線,節約了芯片的管腳,同時為PCB在布局上節省了空間,現在越來越多的芯片都集成了這種通信協議。
1.1 SPI通信接口
SPI主要有以下通信接口:
SCLK:時鐘信號,由主設備器件產生;
MOSI:主設備器件數據輸出,從設備器件數據輸入;
MISO:主設備器件數據輸入,從設備器件數據輸出;
SSN:從設備器件使能信號,由主設備器件控制。
1.2 SPI通信協議描述
SPI接口通信工作方式有四種,即MODE0、MODE1、MODE2和MODE3,本讀卡器系統采用MODE3,即時鐘極性(CPOL=1),時鐘相位(CPHA=1),串行同步時鐘的空閑狀態為高電平,在串行同步時鐘的下降沿轉換數據,上升沿采樣數據。
主設備發送數據,從設備接收數據,如圖2所示;主設備接收數據,從設備發送數據,如圖3所示。
1.3 SPI接口從設備通信流程
要完成讀卡器的設計,首先要先了解SPI接口從設備的通信流程,如圖4所示。
● SSN=0:將SSN置低;SSN=1:將SSN置高。
● Len1代表長度的高字節,Len2代表長度的低字節。
● LRC1的計算方法:對CLA、INS、P1、P2、Len1、Len2和DATA數據每個字節的異或值取反。
● LRC2的計算方法:對SW1、SW2、Len1、Len2和DATA數據每個字節的異或值取反。
Len1和Len2代表DATA域的長度,不包括LRC1或LRC2。
2 硬件設計
本讀卡器的SPI主設備是主控MCU,從設備是安全芯片。本讀卡器的功能實現和SPI接口的從設備通信,使用硬件SPI需要注意以下幾點:
(1) SPI主設備和與之通信的從設備的時鐘極性和時鐘相位應該一致,并以從設備為基準;
(2) SPI僅在數據發送時才有時鐘輸出,一旦傳輸完畢,時鐘就停止;
(3) SPI從設備在主設備需要接收數據時才能發送數據,主設備和從設備同時進行的;
(4) SPI主設備向從設備發送數據時,直接發送即可。但在接收數據時,實質上也是發送數據,為接收數據提供時鐘信號。
讀卡器的系統硬件電路包含7部分,即電源部分、SPI從設備電源控制、蜂鳴器、指示燈、USB接口部分、SPI從設備接口部分和CCID的其他設備接口,如圖5所示。
2.1 USB部分
本讀卡器采用USB接口供電,提供5V的工作電壓,另外支持USB掛起/恢復操作,支持同步傳輸、批量/同步端點的雙緩存,本讀卡器采用了CCID標準協議,配置了三個USB端點,實現了三個設備端口的枚舉,包括進行SPI時序配置的端口、安全芯片端口和預留端口。
評論