一種基于ARM和TDA8007B的IC卡接口設計
文章出處:http://hz-huyue.com 作者: 人氣: 發表時間:2012年03月30日
摘要:針對 ARM CPU和稅控收款機的特點,設計開發了 IC卡接口平臺。重點介紹了 S3C2410A與 IC卡控制器 TDA8007B的硬件接口電路連接,并深入分析了 T=0數據交換協議算法。
1 引言
稅控收款機是一種帶有計稅功能的電子收款機,它內部裝有自動記錄但不能更改和抹掉的計稅存儲器。稅控機制由以 IC卡為基礎的發行、管理、申報、維護、經營等系統組成。有關數據由稅務部門用專用 IC卡讀出,以便稽查。
在稅控收款機系統中,核心部分就是稅控工 IC卡部件。IC卡主要用于存儲稅控加密信息,和識別收款機操作人員身份,在使用稅控收款機時需要這兩卡同時存在,缺一不可。因此,采用接觸式邏輯加密卡作為工程選用的 IC卡,接觸式 IC卡必須符合 ISO7816標準。
本稅控收款機,使用 A、B兩種 IC卡。A卡即稅控卡,記錄稅控收款機原始發行機構登記的收款機編號,商業用戶的稅務登記號,以及繳稅賬號,以及信息加密私鑰,稅務機構等信息,保證一機一卡。高級的還可以協助生成發票防偽碼并對傳遞的稅控數據進行電子簽名。A卡被內置于收款機之中,并有相應措施保護不被非法移動。 B卡即用戶卡,用以完成稅控數據申報、授權、監控數據回送(即完稅)等操作。由于 B卡可能經常移動,故需要使用讀卡器來讀取其信息。由于 IC卡在收款機工作中特殊的身份標識作用,關系到商業用戶的商業利益,因此應當具有防偽造,防復制的特點,因此在 IC卡上加上條形碼及數字簽名等功能。此外出于安全原因在采用 A、B卡方式后,收款機必須在 A、B卡同時處于可讀狀態時方可正常工作。
為此,在應用中具備 2路 IC卡控制器是必須的,對于一般應用使用 GPIO模擬可以實現功能,成本較低;亦可以采用獨立的 IC卡控制器來實現,這需要付出較多的成本。對于獨立 IC卡控制器通常采用 CPU的 SPI總線、I2C總線、外部總線(Address、Data、CSn、)等配合中斷和 GPIO來實現,這種 IC能提供較多的功能,并且可以輕松應付 EMV測試。
2基于 S3C2410A的 IC接口設計
2.1 TDA8007控制器的編程結構
考慮系統穩定性,設計選取了 Philips公司的 IC卡控制器 TDA8007,TDA8007B是通過其內部的寄存器來控制操作的。內部的寄存器可分為三大類:
(1) 通用寄存器:①卡槽選擇 CSR;②硬件狀態 HSR;③定時器 TOR1、TOR2、TOR3
(2) ISO UART寄存器:①串行狀態 USR;②混合狀態 MSR;③串行發送 UTR;④串行接收 URR;⑤隊列控制 FCR
(3) 卡驅動專用寄存器:①可編程分頻 PDR;②保護時間 GTR;③串行控制 UCR1、UCR2;④時鐘配置 CCR;⑤上電控制 PCR
對于卡驅動專用寄存器,即卡接口 1、卡接口 2分別對應的寄存器,邏輯上具有相同的名及訪問地址,因而,對不同的卡操作,需要通過 CSR選擇對應的卡槽,切換卡驅動專用寄存器所映射的物理空間。所以,接口設備每次從一個卡的上下電或讀寫轉向另一卡,都需要訪 CSR設定對應的卡槽。
圖 1 TDA8007B寄存器組織結構
圖中 1、2象限是兩個卡通道公用的通用寄存器及 ISO UART寄存器,3、4象限是兩個卡通道獨立的完全相同的專用寄存器。
2.2 S3C2410A與 TDA8007B的接口控制
TDA8007提供兩個同時滿足 IS07816標準及EMV和GSM11-11標準的IC卡讀寫接口。一個用于與用戶卡通信,另一個用于與稅控卡通信。 TDA8007是雙 IC卡驅動接口芯片,與 CPU的連接方式有兩種方式:一種是總線復用方式,這主要用于 51系列總線復用的 MCU;另一種方式是非總線復用方式,S3C2410A CPU可以采用此種方式與 TDA8007相連。此外加的 IC卡控制器 TDA8007,可支持兩個 ISO7816接口,適合稅控卡和用戶卡。
圖 2 IC卡控制器TDA8007B接口連接
TDA8007B的片選控制信號由S3C2410A地址線的第6位、第7位和第8位經過 74HC138 譯碼并借助 nGCS2產生。TDA8007B占用一個系統中斷,由外部中斷 EINT19接收控制。采用 SN74AHC245用以增強 S3C2410A和 TDA8007B之間的數據傳輸。
ALE在此方式下無用,固定接地。WR\在此方式下與 CS\作用相同,可把其連接在一起接 CPU控制的譯碼邏輯。
兩個 IC卡讀寫模塊,用于讀取稅控 IC卡及用戶 IC卡信息。
第1頁第2頁 |