摘 要:為了完成并行數(shù)據(jù)格式DSP和串行數(shù)據(jù)格式SIM卡間的通信,基于ISO/IEC7816—3串行通信協(xié)議,在FPGA平臺(tái)上實(shí)現(xiàn)了他們之間的通信。FPGA完成了從DSP數(shù)據(jù)到SIM卡的數(shù)據(jù)并/串轉(zhuǎn)換與寫入,SIM接收到數(shù)據(jù)信息后會(huì)返回信息,F(xiàn)PGA完成返回?cái)?shù)據(jù)的串/并轉(zhuǎn)換以及回傳到DSP。此方案不僅解決了DSP與SIM卡間串行通信問題而且與軟件實(shí)現(xiàn)方案相比,大大減少了通信時(shí)間。
關(guān)鍵詞:ISO/IEC7816—3通信協(xié)議;SIM卡;串/并轉(zhuǎn)換;導(dǎo)航定位
中圖分類號(hào):TN919.5 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004373X(2008)0316402
Implementation of ISO/IEC7816—3 Serial Communication Protocol on FPGA
ZHANG Ziwu,DING Xiaoming,SHEN Chao
(Information Science Research Institute,Beijing Jiaotong University,Beijing,100044,China)
Abstract:To finish communication between DSP with the parallel data format and SIM card with the serial data format,the paper implements the communication between them based on ISO/IEC7816—3 serial communication protocol on FPGA hardware platform.FPGA finished data conversion from parallel data in DSP to serial data in SIM.The SIM returns a signal when it receives digital signal.FPGA converts the signal to serial data and inputs DSP.It will not only solve the problem of serial communication between DSP and SIM but also need less time than the implementation of communication with software.
Keywords:ISO/IEC7816—3 communication protocol;SIM card;serial/parallel conversion;navigation positioning
收稿日期:20070713
基金項(xiàng)目:本論文屬于中國空間技術(shù)研究院503所XX型擴(kuò)頻接收機(jī)項(xiàng)目,資金來源于中國空間技術(shù)研究院項(xiàng)目基金
1 引 言
隨著導(dǎo)航定位中數(shù)據(jù)安全要求的不斷提高,導(dǎo)航數(shù)據(jù)加密越來越普遍,因此用于數(shù)據(jù)解密運(yùn)算的SIM卡得以大量應(yīng)用。把DSP中解調(diào)數(shù)據(jù)輸入到SIM卡中進(jìn)行解密,就需要轉(zhuǎn)換設(shè)備把DSP并行數(shù)據(jù)轉(zhuǎn)換成符合ISO/IEC7816—3串行通信協(xié)議能被SIM正確接收的串行數(shù)據(jù),轉(zhuǎn)換設(shè)備還需要把SIM卡返回?cái)?shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)寫入DSP進(jìn)行處理。
另外,隨著FPGA在性能資源的不斷提高,他在導(dǎo)航方面開始嶄露頭角。由于FPGA 具有可重構(gòu)、可綜合優(yōu)化等優(yōu)點(diǎn),所以選用FPGA實(shí)現(xiàn)DSP到SIM間的數(shù)據(jù)通信是一個(gè)比較理想的方案。
2 ISO/IEC7816—3串行通信協(xié)議
ISO/IEC7816—3規(guī)定了IC卡的電氣特性和傳輸協(xié)議。由接口設(shè)備給IC卡提供電源、復(fù)位信號(hào)和時(shí)鐘,卡和接口設(shè)備間通過I/O端口進(jìn)行串行通信。I/O端口共存在兩種狀態(tài):發(fā)送狀態(tài)和接收狀態(tài)。
IC卡根據(jù)通信協(xié)議可分為接觸式和非接觸式兩種。接觸式IC卡主要采用T=0和T=1通信協(xié)議。T=0是異步半雙工字符傳輸協(xié)議,T=1是異步半雙工塊傳輸協(xié)議。接觸式IC卡以圖1所示的字符幀方式傳輸。
圖1 7816—3協(xié)議字符幀格式
串行通信是按位傳送的,每位信息寬度定義為基本時(shí)間單位ETU(Elementary Time Unit)。在復(fù)位應(yīng)答期間的信息寬度為“初始ETU”,為372個(gè)時(shí)鐘周期。復(fù)位應(yīng)答后的信息寬度稱為“當(dāng)前ETU”,計(jì)算公式為:
當(dāng)前ETU=FD#8226;f
其中:F是時(shí)鐘頻率變換因數(shù),D是比特率調(diào)整因數(shù),f是時(shí)鐘頻率。
在本方案的設(shè)計(jì)中,對(duì)協(xié)議規(guī)定字符幀格式的校驗(yàn)位做了調(diào)整,在本設(shè)計(jì)中以“0”為幀起始位,以“1”作為結(jié)束位。從高電平的結(jié)束位到低電平的起始位能確保字符幀正確地傳輸。
3 用FPGA實(shí)現(xiàn)DSP與SIM卡間串行通信的方案
DSP與SIM卡間串行通信實(shí)現(xiàn)原理圖如圖2所示。
由圖2可知,DSP通過I/O控制、并/串轉(zhuǎn)換和串/并轉(zhuǎn)換完成對(duì)SIM卡的信息讀寫。在此系統(tǒng)中,兩個(gè)轉(zhuǎn)換起到最主要的作用,他們完成并行信息和符合串行協(xié)議的串行信息間的轉(zhuǎn)換。
圖2 DSP與SIM卡間通信實(shí)現(xiàn)原理圖
FPGA實(shí)現(xiàn)DSP與SIM卡間串行通信的方框圖如圖3所示。
圖3 DSP與SIM卡間通信FPGA實(shí)現(xiàn)方框圖
FPGA設(shè)計(jì)主要包括DSP與FPGA數(shù)據(jù)通信接口設(shè)計(jì)、地址譯碼、FIFO緩存、并/串、串/并轉(zhuǎn)換、SIM卡輸入輸出控制等模塊。FIFO緩存DSP輸入數(shù)據(jù)和串/并轉(zhuǎn)換后數(shù)據(jù),并/串、串/并實(shí)現(xiàn)并行數(shù)據(jù)和串行數(shù)據(jù)間的轉(zhuǎn)換,SIM卡輸入輸出控制利用發(fā)送FIFO空標(biāo)志及時(shí)地選通回路。DSP與SIM卡間操作流程如圖4所示。
圖4 DSP與SIM卡操作流程圖
4 FPGA設(shè)計(jì)中的主要模塊及其仿真結(jié)果
本課題選用TI公司的DSP芯片和Altera公司的FPGA芯片(EP2S15F672C5)完成所有設(shè)計(jì)。
利用兩個(gè)鎖相環(huán)IP核生成系統(tǒng)所需62 MHz時(shí)鐘,此時(shí)鐘用作FPGA的62 MHz系統(tǒng)時(shí)鐘。利用分頻模塊生成SIM卡所需的5 MHz時(shí)鐘和生成串行數(shù)據(jù)所需的5 MHz時(shí)鐘的32分頻。
FPGA設(shè)計(jì)中選用2個(gè)FIFO IP核來對(duì)數(shù)據(jù)進(jìn)行緩存以此來實(shí)現(xiàn)DSP與SIM卡連續(xù)通信。FIFO的仿真結(jié)果如圖5所示。
圖5 FIFO讀寫仿真圖
由于SIM和FIFO對(duì)復(fù)位時(shí)鐘的要求很嚴(yán)格,所以本設(shè)計(jì)采用通過DSP對(duì)FPGA中一寄存器寫“101”生成軟復(fù)位脈沖。此種軟復(fù)位方法完成復(fù)位既方便又不容易出錯(cuò)。
此FPGA設(shè)計(jì)中最重要的兩個(gè)模塊就是并/串轉(zhuǎn)換和串/并轉(zhuǎn)換模塊,并/串轉(zhuǎn)換模塊把DSP輸入的并行數(shù)據(jù)轉(zhuǎn)換成寬度為5 MHz時(shí)鐘32分頻的串行數(shù)據(jù)。串/并轉(zhuǎn)換模塊再把SIM卡返回的串行數(shù)據(jù)轉(zhuǎn)換成DSP接收的并行數(shù)據(jù)。并/串轉(zhuǎn)換和串/并轉(zhuǎn)換模塊的仿真結(jié)果如圖6所示。
圖6 并/串、串/并轉(zhuǎn)換仿真圖
由于SIM卡采用單I/O口的方式實(shí)現(xiàn)數(shù)據(jù)的輸入輸出,利用發(fā)送FIFO的空標(biāo)志輸出判斷所有信息指令成功寫到SIM卡之后,F(xiàn)GPA中控制DSP寫命令字來選通由SIM卡到FPGA的回路。
5 結(jié) 語
在傳統(tǒng)設(shè)計(jì)中,ISO/IEC7816—3協(xié)議通過軟件編程來實(shí)現(xiàn),通信的實(shí)時(shí)性、可靠性和穩(wěn)定性不好。與傳統(tǒng)方案相比,F(xiàn)PGA設(shè)計(jì)方案解決了上述問題,并且他的可定制性和IP復(fù)用技術(shù)等使得開發(fā)周期和難度大大降低。隨著SIM卡在各個(gè)方面的應(yīng)用,本設(shè)計(jì)可以做成一個(gè)定制而又通用的功能模塊直接在其他許多系統(tǒng)中使用。
參考文獻(xiàn)
[1]朱明程.XILINX數(shù)字系統(tǒng)現(xiàn)場(chǎng)集成技術(shù)[M].南京:東南大學(xué)出版社,2002.
[2]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2003.
[3]羅飛,賀光輝,周祖成.接觸式IC卡控制器的設(shè)計(jì)與實(shí)現(xiàn)[J].半導(dǎo)體技術(shù),2005,30(9):64—68.
[4]王根黨.非接觸式IC卡模擬前端設(shè)計(jì)[D] .湖南:湖南大學(xué),2005.
[5]龔宗躍,孫東昱,張學(xué)志.接觸式CPU卡中T=0異步半雙工字符傳輸協(xié)議的硬件實(shí)現(xiàn)[J].電子設(shè)計(jì)應(yīng)用,2004(1):37—39.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。