<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于89C51的IC卡讀寫(xiě)器設計與實(shí)現

基于89C51的IC卡讀寫(xiě)器設計與實(shí)現

作者: 時(shí)間:2007-09-11 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要: 本文主要介紹了一種新型的卡讀寫(xiě)終端的,卡讀寫(xiě)終端是一個(gè)單片機嵌入式應用系統。論文從卡的國際標準入手,介紹了IC卡數據存儲的控制方法,并以西門(mén)子公司的SLE4442型邏輯加密卡為基礎,詳細分析了單片機控制IC卡數據讀寫(xiě)的軟、硬件。
關(guān)鍵詞:IC卡嵌入式串口

1 前言

IC卡是集成電路卡(Integrated Circuit Card)的簡(jiǎn)稱(chēng),有些國家和地區稱(chēng)之為微芯片卡(Microchip Card)或微電路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成電路鑲在塑料卡片上,芯片一般是數據不易丟失的存儲器(ROM, EPROM.EPROM), 保護邏輯電路,或者CPU。IC卡最初是為了解決金融交易中的安全性問(wèn)題而的,它帶來(lái)全新的交易概念與巨大的優(yōu)勢。很快,這一優(yōu)勢也為其他應用部門(mén)所看中,使之廣泛應用于電話(huà)、醫療保健、路禁控制和門(mén)鎖控制等等系統中。隨著(zhù)時(shí)間的推移,應用范圍還在不斷擴大,使用IC卡的數量呈幾何級數增長(cháng)。同時(shí),為了不同應用場(chǎng)合的需求,IC卡制造商們仍在不斷地向市場(chǎng)推出新的IC卡,IC卡的價(jià)格將隨著(zhù)使用量的增加而逐年下降,所有這些,無(wú)疑又會(huì )大大推進(jìn)IC卡在各個(gè)領(lǐng)域的普及。無(wú)線(xiàn)SOC開(kāi)發(fā)平臺499元 S3C44B0 ARM7開(kāi)發(fā)板378元 S3C2410 ARM9開(kāi)發(fā)板780元 AT91SAM7S64 ARM7
按照IC卡與讀寫(xiě)設備的數據交換方式,IC卡可分為接觸型IC卡和非接觸型IC卡。接觸型IC卡就是在使用時(shí),通過(guò)有形的電極觸點(diǎn)將卡的集成電路與外部接口設備直接接觸連接來(lái)進(jìn)行數據交換的IC卡。非接觸型IC卡是通過(guò)無(wú)線(xiàn)電波或電磁場(chǎng)感應的方式,將卡中集成電路內的數據與外部設備接口設備通信,卡片不用直接接觸接口設備的電極就可以進(jìn)行數據讀寫(xiě)。按照IC卡的功能和結構又可以把IC卡分為存儲型IC卡和智能型IC卡。存儲型IC卡是屬于被動(dòng)型,它只能數據的各種輸入/輸出。這種類(lèi)型IC卡內部電路可分為兩大功能部分,數據存儲部分和數據加密操作控制部分。而且不是所有IC卡都必須具有這兩大功能。我們把只有數據存儲功能的IC卡稱(chēng)為非加密型存儲卡 (Memory Card)。把具有數據存儲功能和數據加密操作控制的IC卡稱(chēng)為加密型存儲卡(Memory Card with Security Logic), 它們有暫時(shí)或永久的數據存儲能力,其內容可供處理或判斷之用。智能型IC卡就是在IC卡的集成電路中帶有微處理器電路的IC卡。它是一種主動(dòng)型IC卡,不僅能夠管理各種數據的I/O操作,校驗來(lái)自接口設備的個(gè)人密碼,而且能夠根據應用系統的要求主動(dòng)識別與之連接的接口設備。因此,在智能型IC卡中能夠建立各種應用系統的授權,存放多個(gè)應用系統的相關(guān)數據,并實(shí)現對數據信息存儲的高可靠性、高安全性控制,可以進(jìn)行復雜的信息處理和計算。

2IC卡國際標準和讀寫(xiě)要求

由于IC卡使用具有流動(dòng)性與全球性,建立相應的國際標準和國家標準就顯得特別重要。在信息技術(shù)領(lǐng)域,ISO(國際標準化組織)和IEC(國際電子技術(shù)委員會(huì ))共同建立了一個(gè)技術(shù)委員會(huì )ISO/IEC JTC1以制定相應國際標準。在IC卡應用系統的中,讀寫(xiě)設備對IC卡的讀寫(xiě)控制的每一個(gè)環(huán)節都應當遵照相應的國際標準,才能保證數據的正確讀取。這是IC卡終端設計的基礎。

而在這些標準當中,對芯片和電氣特征的定義和操作時(shí)序的要求又顯得尤為重要。此處以同步卡的電氣特征和時(shí)序為例進(jìn)行介紹。使用這種卡時(shí),接口設備將所有線(xiàn)置于狀態(tài)L,然后VCC加電,Vpp處于空閑狀態(tài),CLK、RST和FCB處于狀態(tài)L,接口設備的I/O置于接收模式。時(shí)鐘脈沖在VCC上升沿之后相隔t20后提供,時(shí)鐘脈沖的持續時(shí)間為t25。在時(shí)鐘脈沖上升沿之后至少相隔t22時(shí)間FCB仍維持狀態(tài)L。在I/O線(xiàn)上得到的第1位數據可視為應答,此時(shí)CLK處于狀態(tài)L,并在CLK下降沿t27之后有效。當FCB置于狀態(tài)H時(shí),每一個(gè)時(shí)鐘脈沖用于讀出I/O線(xiàn)上的下個(gè)數據位。在復位應答時(shí),第一個(gè)時(shí)鐘脈沖在FCB上升沿之后t24時(shí)間給出。時(shí)鐘脈沖狀態(tài)H的持續時(shí)間為t25,狀態(tài)L的持續時(shí)間為1us(t26)。第二個(gè)及其隨后的數據位在時(shí)鐘為低和CLK下降沿之后t27時(shí)間給出。數據位依次用時(shí)鐘脈沖的上升沿采樣。

圖 一

3 SLEE4442接口電路的設計

SLE4442是由德國西門(mén)子公司設計的邏輯加密存儲卡。它具有2K位的存儲容量和完全獨立的可編程加密代碼存儲器。內部電壓提升電路保證了芯片能夠以單5V電壓供電,較大的存儲器容量能夠滿(mǎn)足應用領(lǐng)域的各種要求。是目前國內應用較多的一種IC卡芯片。這種芯片的特點(diǎn)是采用多存儲器結構;2線(xiàn)連接協(xié)議,串行接口滿(mǎn)足ISO7816同步傳送協(xié)議;芯片采用NMOS工藝技術(shù),每字節的擦除/寫(xiě)入編程時(shí)間為2.5ms;存儲器采用至少104次的擦除/寫(xiě)入周期,數據保持時(shí)間至少為10年。

的主控芯片采用的是單片機。單片機是Intel公司開(kāi)發(fā)的8位的系列化處理芯片。內部帶有一個(gè)8位的CPU,256個(gè)字節的RAM,21個(gè)特殊功能寄存器(SFR),2個(gè)16位的定時(shí)/計數器,4個(gè)8位并行接口,一個(gè)全雙工的串行接口,5個(gè)中斷源及片內時(shí)鐘振蕩器等。由于這是一款非常成熟的單片機,因此本文不作更多的贅述。

的核心模塊即如何實(shí)現對IC芯片的有效控制和讀寫(xiě)操作。而接口電路的設計直接反映了對該芯片的具體操作思想。由于IC卡的邏輯接口電路一般采用集電極開(kāi)路(OC)輸出及非保護式輸入結構,所有讓上拉電阻R源端與IC卡的供電電源相連接。當IC卡處于供電狀態(tài)時(shí),整個(gè)接口電路接通,接口設備與IC卡間構成邏輯通路;而當IC卡處于下電狀態(tài)時(shí),上拉電阻R的源端失去了供電,整個(gè)與卡接口的電路均處于不帶電狀態(tài)。所有的IC卡接口部分都加入了保護二極管,這些二極管可以使各引腳上的電壓嚴格地限定在-VD~VCC+ VD之間(VD是保護二極管的正向壓降,通常為0.6左右)。這樣,可以抑制由于線(xiàn)路干擾和邏輯電平變化的邊沿產(chǎn)生抖動(dòng)所帶來(lái)的瞬間過(guò)壓,為IC卡提供了進(jìn)一步的保護措施。所設計的接口電路圖如圖二所示。

圖 二 IC卡控制和讀寫(xiě)電路

IC卡的插入與退出的識別是通過(guò)IC卡適配插座上的感應開(kāi)關(guān)來(lái)識別的,對于簡(jiǎn)單的手動(dòng)插拔的IC卡適配插座來(lái)說(shuō),這種識別過(guò)程相當簡(jiǎn)單,僅有一個(gè)開(kāi)關(guān),表示卡是否已插入。如果卡己插入到正確位置,IC卡適配插座就會(huì )給出一個(gè)開(kāi)關(guān)接通(或斷開(kāi))的信號,而一旦卡離開(kāi)這個(gè)位置,該信號就會(huì )立即發(fā)生翻轉。設計中采用的適配器,無(wú)卡插入時(shí)開(kāi)關(guān)常閉,卡插到位時(shí)開(kāi)關(guān)斷開(kāi)。對于手動(dòng)式IC卡適配插座來(lái)說(shuō),這一信號已經(jīng)足夠了。為了確保IC卡已準確地插到位置,插入的識別過(guò)程必須加入消顫處理,這主要由軟件來(lái)實(shí)現。

大多數符合ISO7816標準的同步型IC卡的地址計數器是與時(shí)鐘緊密相關(guān)的,當卡復位時(shí),地址計數器置0。以后每向卡發(fā)一個(gè)節拍的時(shí)鐘,都將使IC卡的地址計數器加‘1’。這一時(shí)鐘頻率上限為50kHz或280kHz。復位之后的頭32個(gè)時(shí)鐘周期內,是卡的復位響應過(guò)程,該過(guò)程中,廠(chǎng)家的產(chǎn)品編碼以位編碼方式逐一在數據線(xiàn)上送出,以后的字段則根據廠(chǎng)家及用戶(hù)所定義的含義不同而各不相同。若某字段定義為可讀的,則可將時(shí)鐘運行到該字段上,然后再逐時(shí)鐘讀出。數據的讀出過(guò)程可分為三個(gè)基本過(guò)程:復位,數據字段的定位和數據讀出。

4、89C51軟件模塊設計

由于89C51是主控芯片,因此89C51需要完成對IC芯片的復位、讀寫(xiě)等操作。首先對于復位響應操作,由于復位響應是根據ISO7816標準來(lái)進(jìn)行的。在操作期間的任何時(shí)候都可以復位,只有經(jīng)過(guò)了復位才能對IC卡進(jìn)行其他操作。開(kāi)始時(shí)地址計數器隨一個(gè)時(shí)鐘脈沖而被設置成0。當RST線(xiàn)從H狀態(tài)置到L狀態(tài)時(shí),第一個(gè)數據位的內容被送到I/O線(xiàn)上。若連續輸入32個(gè)時(shí)鐘脈沖,主存儲器中的前4個(gè)字節地址單元中的內容被讀出。在第33個(gè)時(shí)鐘脈沖的下降沿,I/O線(xiàn)被置成H狀態(tài)而關(guān)閉。 在復位響應期間,“啟動(dòng)”和“停止”狀態(tài)被忽略。單片機上的程序設計如下:

CARD_RST:

CLR RST

CLR CLK

LCALL DELAY_20US

SETB RST

LCALL DELAY_20US

SET CLK

LCALL DELAY_20US

CLR CLK

LCALL DELAY_20US

CLR RST

LCALL DELAY_20US

MOV B,#32

RESET1:

SETB CLK

LCALL DELAY_20US

CLR CLK

LCALL DELAY_20US

DJNZ B,RESET1

RET

在命令模式下,復位響應之后,芯片等待著(zhù)命令。每條命令都以一個(gè)“啟動(dòng)狀態(tài)”開(kāi)始。整個(gè)命令包括三個(gè)字節。隨后緊跟著(zhù)一個(gè)附加脈沖并用一個(gè)“停止狀態(tài)”來(lái)結束操作。當CLK為H狀態(tài)期間,I/O線(xiàn)的下降沿為啟動(dòng)狀態(tài);當CLK為H狀態(tài)期間,I/O線(xiàn)的上升沿為停止狀態(tài);限于篇幅,此處不再列出整個(gè)讀寫(xiě)操作的程序代碼。需要注意的是:脈沖的下降沿之后,I/O線(xiàn)上的第一位數據變?yōu)橛行?。隨后每增加一個(gè)時(shí)鐘脈沖,芯片內部的一位數據被送到I/O線(xiàn)上。其輸出的順序是從侮個(gè)字節的最低位開(kāi)始。當所需要的最后一個(gè)數據送出以后,需要再附加一個(gè)時(shí)鐘脈沖來(lái)把I/O線(xiàn)置成H狀態(tài),以便準備接受新的命令。在輸出數據期間,任何“啟動(dòng)狀態(tài)”和“停止狀態(tài)”均被屏蔽掉。

5、結束語(yǔ)

本文的創(chuàng )新點(diǎn)是提出了一種新型的IC卡讀寫(xiě)器設計方案,在串口通訊的設計中,除了要對單片機的異步通訊口進(jìn)行操作,還要對PC 機的串口進(jìn)行底層實(shí)時(shí)控制,并通過(guò)調用系統的API 函數的方法成功的解決了這一問(wèn)題。由于西門(mén)子公司的SLE4442型邏輯加密IC卡是一種比較通用的IC卡芯片,因此通過(guò)更新讀寫(xiě)器軟件也可以操作其他類(lèi)型的接觸式同步IC一卡,使得這種接觸式IC卡讀寫(xiě)器成為一種通用的讀寫(xiě)器。

參考文獻:

1 王卓人,鄧晉均,劉宗祥, 《IC卡的技術(shù)與應用》,北京:電子工業(yè)出版社,1999
2 王愛(ài)英《智能卡技術(shù)》,北京:清華大學(xué)出版社,2000
3 何立民等 《單片機高級教程》,北京:北京航空航天大學(xué)出版社,2000.8
4 陳志斌 卓家靖 單片機和CPLD的嵌入式脈沖發(fā)生器設計,北京,《微計算機信息》,2005。NO.2,P107



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>