隨著導航定位中數(shù)據安全要求的不斷提高,導航數(shù)據加密越來越普遍,因此用于數(shù)據解密運算的SIM卡得以大量應用。
把DSP中解調數(shù)據輸入到SIM卡中進行解密,就需要轉換設備把DSP并行數(shù)據轉換成符合ISO/IEC7816-3串行通信協(xié)議能被SIM正確接收的串行數(shù)據,轉換沒備還需要把SIM卡返回數(shù)據轉換成并行數(shù)據寫入DSP進行處理。
另外,隨著FPGA在性能資源的不斷提高,他在導航方面開始嶄露頭角。由于FPGA具有可重構、可綜合優(yōu)化等優(yōu)點,所以選用FPGA實現(xiàn)DSP到SIM間的數(shù)據通信是一個比較理想的方案。
2 ISO/lEC7816-3串行通信協(xié)議
ISO/IEC7816-3規(guī)定了IC卡的電氣特性和傳輸協(xié)議。由接口設備給IC卡提供電源、復位信號和時鐘,卡和接口設備間通過I/O端口進行串行通信。I/O端口共存在兩種狀態(tài):發(fā)送狀態(tài)和接收狀態(tài)。
IC卡根據通信協(xié)議可分為接觸式和非接觸式兩種。接觸式IC卡主要采用T=0和T=1通信協(xié)議。T=0是異步半雙工字符傳輸協(xié)議,T=1是異步半雙工塊傳輸協(xié)議。接觸式IC卡以圖1所示的字符幀方式傳輸。
![]() |
串行通信是按位傳送的,每位信息寬度定義為基本時間單位ETU(Elementary Time Unit)。在復位應答期間的信息寬度為“初始ETU”,為372個時鐘周期。復位應答后的信息寬度稱為“當前ETU”,計算公式為:
![]() |
其中:F是時鐘頻率變換因數(shù),D是比特率調整因數(shù),f是時鐘頻率。
在本方案的設計中,對協(xié)議規(guī)定字符幀格式的校驗位做了調整,在本設計中以“0”為幀起始位,以“1”作為結束位。從高電平的結束位到低電平的起始位能確保字符幀正確地傳輸。
3 用FPGA實現(xiàn)DSP與SIM卡間串行通信的方案
DSP與SIM卡間串行通信實現(xiàn)原理圖如圖2所示。
![]() |
由圖2可知,DSP通過I/O控制、并/串轉換和串/并轉換完成對SIM卡的信息讀寫。在此系統(tǒng)中,兩個轉換起到主要的作用,他們完成并行信息和符合串行協(xié)議的串行信息間的轉換。
FPGA實現(xiàn)DSP與SIM卡間串行通信的方框圖如圖3所示。
![]() |
FPGA設計主要包括DSP與FPGA數(shù)據通信接口設計、地址譯碼、FIFO緩存、并/串、串/并轉換、SIM卡輸入輸出控制等模塊。FIFO緩存DSP輸入數(shù)據和串/并轉換后數(shù)據,并/串、串/并實現(xiàn)并行數(shù)據和串行數(shù)據間的轉換,SIM卡輸入輸出控制利用發(fā)送FIFO空標志及時地選通回路。DSP與SIM卡間操作流程如圖4所示。
![]() |
4 FPGA設計中的主要模塊及其仿真結果
本課題選用TI公司的DSP芯片和Altera公司的FPGA芯片(EP2S15F672C5)完成所有設計。
利用兩個鎖相環(huán)IP核生成系統(tǒng)所需62 MHz時鐘,此時鐘用作FPGA的62 MHz系統(tǒng)時鐘。利用分頻模塊生成SIM卡所需的5 MHz時鐘和生成串行數(shù)據所需的5 MHz時鐘的32分頻。
FPGA設計中選用2個FIFO IP核來對數(shù)據進行緩存以此來實現(xiàn)DSP與SIM卡連續(xù)通信。FIFO的仿真結果如圖5所示。
![]() |
由于SIM和FIFO對復位時鐘的要求很嚴格,所以本設計采用通過DSP對FPGA中一寄存器寫“101”生成軟復位脈沖。此種軟復位方法完成復位既方便又不容易出錯。
此FPGA設計中重要的兩個模塊就是并/串轉換和串/并轉換模塊,并/串轉換模塊把DSP輸入的并行數(shù)據轉換成寬度為5 MHz時鐘32分頻的串行數(shù)據。串/并轉換模塊再把SIM卡返回的串行數(shù)據轉換成DSP接收的并行數(shù)據。并/串轉換和串/并轉換模塊的仿真結果如圖6所示。
![]() |
由于SIM卡采用單I/O口的方式實現(xiàn)數(shù)據的輸入輸出,利用發(fā)送FIFO的空標志輸出判斷所有信息指令成功寫到SIM卡之后,F(xiàn)GPA中控制DSP寫命令字來選通由SIM卡到FPGA的回路。
5 結 語
在傳統(tǒng)設計中,ISO/IEC7816-3協(xié)議通過軟件編程來實現(xiàn),通信的實時性、可靠性和穩(wěn)定性不好。與傳統(tǒng)方案相比,F(xiàn)PGA設計方案解決了上述問題,并且他的可定制性和IP復用技術等使得開發(fā)周期和難度大大降低。隨著SIM卡在各個方面的應用,本設計可以做成一個定制而又通用的功能模塊直接在其他許多系統(tǒng)中使用。