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