a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > STM32單片機的PSAM卡驅動模塊設計

STM32單片機的PSAM卡驅動模塊設計

作者: 時間:2016-10-15 來源:網絡 收藏

引言

本文引用地址:http://www.j9360.com/article/201610/307656.htm

刷卡消費隨著人們生活水平的提高已經成為常用的支付方式之一。為了保證刷卡消費的安全性,將內嵌于各種終端刷卡設備中。PSAM(Purchase SecureAccess Module,銷售點終端安全存取模塊),由IC卡發行主管部門或者應用主管機構發行,是可以用于對IC卡進行脫機消費交易認證的安全認證卡,主要應用于商用POS、網點終端、直連終端等設備上,支持多級發卡機制,適用于多應用的環境,符合識別卡、帶觸點的集成電路卡標準、ISO/IEC 7816—1/2/3/4以及《中國人民銀行規范》。

1 簡介

PSAM卡是接觸式CPU卡的一種。CPU卡也稱智能卡,卡內集成電路帶有微處理CPU,存儲單元(包括隨機存儲器RAM、電可擦除存儲器EEP ROM、程序存儲器ROM)及芯片操作系統(Chip Operating System,COS)。裝有COS的CPU卡不僅具有數據存儲功能,同時具有命令處理和數據安全保護等功能。CPU卡芯片相當于芯片內裝置了一個微處理器,其功能大致與一臺微型計算機相同。在生活中,人們常使用的集成電路卡(IC卡)上的金屬片就是CPU芯片。由于CPU卡具有存儲空間大、處理能力強、信息存儲安全、支持一卡多用以及讀取速度快等優點,已經被廣泛用于金融、交警、保險和政府行業等領域,并通過國家密碼委和中國人民銀行的認證。

就外型而言,CPU卡與普通IC卡、射頻卡相比無明顯差別,但是使用性能、安全性卻有巨大提升,這主要源于CPU卡內含有隨機數發生器、3DES加碼算法、硬件DES和3DES加密算法等,配合操作系統就可以達到金融級別的安全等級。減值密鑰一般存儲在PSAM卡中,通過PSAM卡對IC卡進行減值操作,實現安全扣款。在非接觸邏輯加密卡的系統中,PSAM卡主要使用卡片認證密鑰和各扇區的KEYA、KEYB密鑰來產生非接觸邏輯加密卡操作所需要的各扇區的KEYA和KEYB認證碼,交易信息不直接參與運算。而在非接觸CPU卡系統中,PSAM卡通常用來計算和校驗消費交易過程中出現的MAC碼,同時在計算的過程中,交易時間、交易金額、交易類型等交易信息也都參與運算,使得交易更安全可靠。某些情況下,非接觸CPU卡系統中的PSAM卡還可以用來支持安全報文更新數據時MAC的計算,以及交易TAC的驗證。

卡片內部邏輯結構如圖1所示。

1111

其中CPU及加密邏輯保證EEPROM中數據的安全,使外界不能使用非法手段獲得EEPROM中的數據。RAM是在COS 工作時存放命令參數、返回結果、安全狀態以及臨時工作密鑰的區域。ROM用于存放COS程序。EEPROM中存放用戶應用數據區域,COS將用戶數據以文件的形式保存在EEP ROM中,當安全條件滿足規定時,可以讀/寫文件。

2 硬件設計

2.1 PSAM卡電路設計

2.1.1 PSAM卡電源切換模塊

ISO7816協議里規定2種使用較多的,PSAM卡的類別(A類、B類),A類需要提供5 V電壓,B類需要提供3V電壓,為了保證對于兩種類別卡的兼容性,要求設計的讀寫器,可以提供選擇5V或者3 V的電壓。于是本論文設計了如圖2所示的電源切換模塊。其工作原理是:PSAM POW為高時,P溝道的MOS管導通,提供5 V電壓給PSAM_VDD,PSAM_POW為低時,P溝道的MOS管不導通,提供3.3 V電壓,再經過二極管的壓降,提供3 V電壓。

b.JPG

2.1.2 PSAM卡復位信號

同樣考慮到PSAM卡的兩種類別,尤其是當PSAM卡為A類的時候,主要考慮MCU的I/O口電壓是3.3V,而PSAM卡需要的是5 V,防止復位電平不夠,將PSAM_RST1信號通過三極管與SAM_RST1相連,以增強能力。其中PSAM_RST1與MCU相連,SAM_RST1與PSAM卡相連。具體電路如圖3所示。

c.JPG

2.1.3 PSAM卡數據口電平轉換電路

為了保證MCU接收到的信號是3.3 V,設計了PSAM卡數據口電平轉換電路,具體電路如圖4所示,當PSAM卡是A類的時候,需要將5 V電壓轉換為3.3 V,這時在圖4電路中,只需要焊接上兩個三極管(Q1、Q2),不需要焊接電阻R,當PSAM卡是B類的時候,只需要焊接上電阻R,不需要焊接兩個三極管(Q1、Q2)。

2.1.4 PSAM卡卡槽電路接口

PSAM卡卡槽電路接口如圖5所示。由于是低電平復位,在RST端口需要接上PSAM VDD信號,在正常工作的時候將電平拉高。數據腳(DATA)正常情況下也需要上拉,這是為了防止電平幅度不夠,尤其在5 V的時候,通過電平切換的信號是3.3 V,必須上拉到5 V才行。

2.2 主控模塊設計

圖6為主控模塊以及相關的外圍電路的原理圖。主控模塊選用的是F103C8T6芯片。OSC32_IN、OSC32_OUT兩個引腳外接32.768 kHz的低速外部晶振,可以用其實時時鐘RTC。OSC_IN、OSC_OUT兩個引腳外接8 MHz晶振,通過設置的相關寄存器經過PLL倍頻之后產生72 MHz的系統時鐘(SYSCLK)。C1、C2作為晶體的匹配電容。為了使晶振更加容易啟振,在晶振旁邊并聯1 MΩ電阻(R)。主控模塊低電平復位,電阻上接高電平,電容在下接地,中間位RST。具體工作原理是在上電時給電容充電,電容給RST一個短暫的低電平,此低電平隨著VCC給電容充電的過程中變高。

e.JPG

3 軟件設計

對于PSAM卡的軟件設計要符合ISO7816—4協議。應用協議數據單元(APDU)可包含有命令報文或響應報文,它從接口設備發送到卡,或者相反地由卡發送到接口設備。

APDU指令的格式如表1所列。

d.JPG

APDU指令的命令頭內容如表2所列。

f.JPG

APDU指令響應結構如表3所列。

APDU指令響應內容如表4所列。

(1)主要的數據結構

Typedef struct{

u8 Cla; //命令的類型

u8 Cmd; //命令的編碼

u8 P1; //具體命令參數1

u8 P2; //具體命令參數2

u8 P3; //在發送模式的為Lc;//在接收模式時為Le

u8*Data_Ptr;//命令和相應的數據字段

u8 RspCode[2];//APDU響應的內容

}APDU;

(2)主要功能函數

①函數名:PSAM_APDU_Out

功能描述:讀取智能卡的數據。

參數:*Data_out,返回從智能卡中讀出的數據;PSAMConfig,智能卡的配置。

返回值:讀取數據成功標志(0為失敗,1為成功)。

②函數名:PSAM_APDU In

功能描述:向智能卡寫數據。

參數:*Data_in,向卡上寫入的數據;PSAMConfig,智能卡的配置。

返回值:寫入數據成功標志(0為失敗,1為成功)。

③函數名:PSAM_Send1 Byte

功能描述:向智能卡發送1字節數據,并判斷接收方是否成功接收。如果沒有成功,則向收方發送兩次該數據。

參數:SendByte,待發送的字節數據。

返回值:SendStatus,數據發送是否成功標志(成功為0x01,失敗為0x00,超時為0xFF)。

④函數名:PSAM_Send1Block

功能描述:向智能卡發送n個字節數據。

參數:*SendPtr,待發送的字節數據指針;DataLen,傳送的字節數;ByteDir,字節方向。

返回值:SendStatus,數據發送是否成功標志(成功為0x01,失敗:0x00)。

⑤函數名:PSAM_Receive1Byte

功能描述:接收智能卡的1字節數據,當檢測到奇偶出錯時,可請求2次智能卡從發當前字節數據。

參數:無。

返回值:DataBuf,其中高字節是數據接收是否成功標志(成功為0x01,失敗為Parity error(0x55),timeout overflow(0xff))低字節是收到的有效字節數據。

⑥函數名:PSAM_Reset

功能描述:對智能卡進行復位操作,并等待智能卡的應答,如果應答成功則返回復位成功標志,否則返回復位失敗標志。

參數:*uiATR,保存復位應答信息的指針。

返回值:復位成功標志(0x01為復位成功,0x00為復位失敗)。

4 模塊測試

通過串口調試助手對系統進行測試,分析發送和返回的數據,判斷該模塊工作是否正常。圖7為發送對PSAM卡的復位操作的命令。圖8為發送對PSAM卡進行透明數據流傳輸的命令。

g.JPG

h.JPG

結語

本文設計的PSAM卡驅動模塊,根據上述軟件和硬件的設計思路進行的設計得到了實際的驗證,取得了令人滿意的效果。無論是軟件的代碼還是硬件的電源轉換模塊都具有很好的可移植性,方便在不同的系統中應用,并且提供了對外的接口函數,方便上層系統應用工程師的調用。該模塊可以應用到固網支付、POS終端等設備上。

  • STM32單片機中文官網
  • STM32單片機官方開發工具
  • STM32單片機參考設計


關鍵詞: STM32 PSAM卡 驅動

評論


相關推薦

技術專區

關閉