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