IC�讀寫器,采用高品�(zhì)的表面封裝工�。擦卡自�(判斷卡的正反向和卡片類型),通訊時自動選擇波特率(57600bps,�9600bps)。豐富的上層接口函數(shù)和界面,使它能方便的�(yīng)用于各種基于IC卡的系統(tǒng)集成��
通訊接口� 標準RS232
卡座壽命� 10萬次
主控制器� 8�51系列單片�
電磁輻射� 抗干� CE89/336
插卡自檢� 判斷卡的正反向和卡片類型
通訊速率� 自動選擇波特率(57600bp�9600bps)
讀寫卡型: SIEMENS:SLE4404/4406/4432/4442/4428
ATMELl:AT24C01/24C02/24C16/24C64/AT45D041 AT93C46/88S102/88SC1608
CPU卡: T=0、T=1
支持符合ISO7816-3�4標準和EMV標準的CPU卡(T=0、T=1)、SAM�、邏輯加密卡和存儲器�;支持CPU卡和SAM卡的雙向論證
開發(fā)�(huán)境:16位操作平臺的支持DOS�(huán)境下的Turbo C 、FoxPro
開發(fā)�(huán)境:32位操作平臺的win95/98/2000�(huán)境下的VB、VC++、powerbuilder、delphi、VFP
圖為IC卡及其讀寫器硬件電路�。其中讀寫器由單片機、鍵盤、顯�、監(jiān)控電路等部分組成。IC卡采用XICOR公司的X76F100Y�
2.1 IC卡及卡座
X76F100�128×8位的保密串行FLASH E2PROM,其中讀密碼和寫密碼分別�64�。圖2為其智能卡Smart Card封裝的引腳圖。把芯片封裝在一個卡片上,將卡片插入IC卡讀寫器的卡座中,讀寫器就可以對它進行讀�,實�(xiàn)加密、查�、存�、取款等功能�
IC卡座�8個引�,當(dāng)X76F100Y插入時,正好同這幾個引腳相�。另外還有兩個固定端,其中一個固定端同卡座上一個彈簧片相�,兩個觸點和簧片就相�(dāng)于一個常閉開�(guān)。當(dāng)卡未插入時,簧片閉合,P3.2腳保持低電平;當(dāng)卡插入時,簧片被頂開,P3.2腳變?yōu)楦唠�?�?dāng)單片機檢測到P3.2腳變�,通過P1.3 使X76F100的RST引腳變高,使其復(fù)��
2.2 單片�
單片機采用LG公司的GMS97C52。它�8K字節(jié)的ROM�256個字節(jié)的RAM以及32個I/O�,P1口與串行器件X25045和X76F100連接,P0、P2口用于鍵盤和顯示,P3口中P3.2用于檢測IC卡是否插�,其�7個口,可作其它功能擴��
2.3 �(jiān)控電�
�(jiān)控電路采用X25045芯片,它包括看門狗定時器、電壓監(jiān)控電路和E2PROM存貯�。其功能是:上掉電時對GMS97C52�(chǎn)生RESET信號;看門狗對系統(tǒng)進行�(jiān)�,防止死��
2.4 鍵盤電路
為了方便,鍵盤接口電路用I/O口實�(xiàn),它�4×4�(jié)�(gòu)�16個鍵。其中數(shù)字鍵11�,功能鍵4�,回車鍵1��
�(shù)字鍵�0�1�2�3�4�5�6�7�8�9、←(退格)�
功能鍵:查詢?、存�+、取款-、改密碼* �
查詢:用戶通過讀密碼可以查詢卡中所存的款額�
存款+ :用戶通過寫密碼可以將款存入卡中�
取款-:用戶通過寫密碼可以從卡中取款�
改密�*:分為修改讀密碼和寫密碼。為方便起見,令讀密碼和寫密碼一�,按此鍵將同時修改讀密碼和寫密碼�
回車鍵:8位密碼或存取款數(shù)輸入完確�,以及新密碼輸入完確認�
2.5 顯示電路
顯示部份采用LED顯示�,也用I/O口實�(xiàn)。用于顯示系�(tǒng)狀�(tài)、輸入的密碼或所要存取的款額以及出錯信息��
由于GMS97C52的驅(qū)動電流有�,在P0、P2口加反向器SN74F04,增加驅(qū)動能�。它的吸入電流為64mA,輸出電流為15mA,可以保證位選所需的吸入電��
一、讀寫器連接
1.1 把通訊線“DB9”端插到PC 機的串口1/2 �
1.2 把通訊�2510端插到讀寫器的插�,使讀寫器和PC 機的串口良好連接
1.2 把電源線的“圓柱”端插到讀寫器的電源座子上
1.3 讀寫器上電以后可以聽到一聲風(fēng)鳴器的響�,如果沒有聽到風(fēng)鳴器聲,表明讀寫器沒有正常上電.
�、啟動Demo 軟件
2.1 雙擊啟動測試軟件
2.2 如果串口良好連接的話可以聽到一聲風(fēng)鳴器的響�,如果啟動測試軟件以后并沒有聽到�(fēng)鳴器聲表明串口通訊沒有連接好,請檢查串口連接線是否連接正確
三、M1卡片讀寫測�
3.1 把一張Mifare One 卡片放在天線區(qū)域范圍內(nèi)
3.2 進入功能選項“低級操作”里面點擊“尋卡�,如果出�(xiàn)“尋卡成�!”表明尋卡正�,如果出�(xiàn)“執(zhí)行失�!”表明出�(xiàn)異常,請檢查卡片是否在尋卡范圍內(nèi),如果確認卡片沒有問�,那讀寫器有異�
3.3 點擊“防沖突�,如果出�(xiàn)“執(zhí)行成功”表明防沖突正常,如果出�(xiàn)“執(zhí)行失敗”表明讀寫器出現(xiàn)�?;蛘呖ㄆ瑳]有在天線區(qū)域范圍內(nèi)
3.4 點擊“選擇�,如果出�(xiàn)“執(zhí)行成功”表明選擇正常,如果出現(xiàn)“執(zhí)行失敗� 表明讀寫器出現(xiàn)�?;蛘呖ㄆ瑳]有在天線區(qū)域范圍內(nèi)
3.5 進入功能選項“密碼下載”里面下載卡片密碼,比如需要測試卡片扇區(qū)1 �(shù)�(jù)的讀�,那么就在扇區(qū)1 后面填上密碼A/B(注:卡片的初始密碼A/B 均為全‘F’),然后選擇“A 組密碼”或者“B 組密碼”,點擊“下載�,如果出�(xiàn)“密碼下載成功”表明密碼下載成功,如果出現(xiàn)異常請按照錯誤提示更改后再下載一�,直至“下載成功”為�
3.6 進入功能選項“數(shù)�(jù)讀寫”里�,“請選擇扇區(qū)號”下面的可拉選項里面選擇�5步下載密碼的扇區(qū)號(比如扇區(qū)1),然后點擊“讀出�,如果提示“第*扇區(qū)�(shù)�(jù)讀出成功”表明讀�(shù)�(jù)正確。如果出�(xiàn)“第*扇區(qū)�(shù)�(jù)讀出失敗”表明密碼校驗出錯或者出�(xiàn)其他異常,請返回�5 步重新下載密�
3.7 如果讀�(shù)�(jù)正確,在�0、塊1、塊2 后面修改�(shù)�(jù),比如改�
“塊0�12345678901234567890123456789012�
“塊1�23456789012345678901234567890123�
“塊2�34567890123456789012345678901234�
然后點擊“寫入�,如果出�(xiàn)“第*扇區(qū)�(shù)�(jù)寫入成功”表明寫入數(shù)�(jù)正確。如果出�(xiàn)“第*扇區(qū)寫入失敗”表明密碼校驗出錯或者出�(xiàn)其他異常,請返回�5 步重新下載密�
3.8 再次點擊“讀出”鍵,然后點擊“讀出”,如果提示“第*扇區(qū)�(shù)�(jù)讀出成功”表明讀�(shù)�(jù)正確,再對比�0、塊1、塊2 是否和第7 步寫入的�(shù)�(jù)一�,如果數(shù)�(jù)一樣,證明寫入成功�。如果出�(xiàn)“第*扇區(qū)�(shù)�(jù)讀出失敗”表明密碼校驗出錯或者出�(xiàn)其他異常,請返回�5 步重新下載密碼�
�、Mifare One 卡片塊值測�
4.1 進入功能選項“塊值操作”里�,在“扇區(qū)號”下面的可拉選項里面選擇�3.5 步下載密碼的扇區(qū)號(比如扇區(qū)1),在“塊號”下面的可拉選項里面選擇你想測試的塊號(比如�1 塊)
4.2 在“操作值”后面填上你所希望的初始值(比如�11111111”),然后點擊“初始化”,如果出現(xiàn)“數(shù)�(jù)初始化成功”表明操作成�。如果出�(xiàn)“數(shù)�(jù)初始化失敗”表明操作失�,請檢查密碼是否正確,返回第3.1 步重新操作一次�
4.3 點擊“讀出�,如果在“當(dāng)前值”后面出�(xiàn)是你原來寫進去的初始值,證明操作正確,如果“數(shù)�(jù)讀出失敗”表明塊值操作有異常,請重新初始��
4.4 在“操作值:”后面填上你所希望的操作值(比如�22222222”),然后點擊“加值�,如果出�(xiàn)“數(shù)值加操作成功�,表明操作成�。如果出�(xiàn)其他提示表明操作失敗
4.4 點擊“讀出�,如果在“當(dāng)前值:”后面出�(xiàn)是你初始值加上加值(11111111�22222222�33333333)表明操作正確,如果是其他的值表明失�
4.5 在“操作值:”后面填上你所希望的操作值(比如�11111111”),然后點擊“減值�,如果出�(xiàn)“數(shù)值減操作成功”,表明操作成功。如果出�(xiàn)其他提示表明操作失敗
4.6 點擊“讀出”,如果在“當(dāng)前值:”后面出�(xiàn)是你�(dāng)前值減去操作值(33333333�11111111�22222222�,表明操作正�,如果是其他值表明失�
�、修改密碼和控制�
5.1 進入功能選項“修改密碼”里�,在“扇區(qū)號”下面的可拉選項里面選擇�3.5步下載密碼的扇區(qū)號(比如扇區(qū)1�
5.2 在“密碼A”和“密碼B”后面分別寫入你想修改的密碼A 和密碼B
5.3 卡片控制位修改之前請詳細閱讀卡片資料,因為控制位修改不正�,就會導(dǎo)致卡片不能再使用,請�(wù)必小心使�
5.4 在控制位后面填上該扇區(qū)的控制位
5.3 點擊“修改密碼�,如果出�(xiàn)“修改密碼成功�,表示操作正�,如果出�(xiàn)出錯提示,請按照出錯提示做相�(yīng)的處�。(注:密碼修改后請�(wù)必記�,密碼遺忘卡片就不能再次是使用了�
�、參�(shù)�(shè)�
6.1 進入功能選項“參�(shù)�(shè)置”里�,可以設(shè)置串口通訊參數(shù):串口號、波特率、校驗位、數(shù)�(jù)�、停止位等等,設(shè)置玩了以后點擊“修改串口�,如果出�(xiàn)“串口參�(shù)�(shè)置成功�,表明串口設(shè)置成功,如果出現(xiàn)異常,請按照提示做出改動�
6.2 �(shè)置完畢以后可以點擊“測試讀卡器�,如果出�(xiàn)“讀卡器連接成功�,并且聽到讀卡器的風(fēng)鳴器響聲,證明串口設(shè)置正�,如果出�(xiàn)“讀卡器連接失敗”,表明串口�(shè)置有問題,請重新�(shè)置�
6.3 讀寫器默認參數(shù):Com1�9600bps、N�8�
�、調(diào)試信�
7.1 進入功能選項“調(diào)試信息”里面,在“串口信息發(fā)送與接受”處可以看到PC 機和讀卡器之間通訊的詳細過�,對�(diào)試非常有幫助�
1 前言
IC卡是集成電路�(Integrated Circuit Card)的簡�,有些國家和地區(qū)稱之為微芯片�(Microchip Card)或微電路�(Microcircuit Card)。IC卡的大小和磁卡相�,它把集成電路鑲在塑料卡片上,芯片一般是�(shù)�(jù)不易丟失的存儲器(ROM, EPROM.EPROM), 保護邏輯電路,或者CPU。IC卡最初是為了解決金融交易中的安全性問題而設(shè)計的,它帶來全新的交易概念與巨大的優(yōu)�。很快,這一�(yōu)勢也為其他應(yīng)用部門所看中,使之廣泛應(yīng)用于電話、醫(yī)療保�、路禁控制和門鎖控制等等系�(tǒng)�。隨著時間的推移,應(yīng)用范圍還在不斷擴�,使用IC卡的�(shù)量呈幾何級數(shù)增長。同�,為了不同應(yīng)用場合的需�,IC卡制造商�?nèi)栽诓粩嗟叵蚴袌鐾瞥鲂碌腎C�,IC卡的價格將隨著使用量的增加而逐年下降,所有這些,無疑又會大大推進IC卡在各個領(lǐng)域的普及。無線SOC開發(fā)平臺499� S3C44B0 ARM7開發(fā)�378� S3C2410 ARM9開發(fā)�780� AT91SAM7S64 ARM7
按照IC卡與讀寫設(shè)備的�(shù)�(jù)交換方式,IC卡可分為接觸型IC卡和非接觸型IC�。接觸型IC卡就是在使用�,通過有形的電極觸點將卡的集成電路與外部接口設(shè)備直接接觸連接來進行�(shù)�(jù)交換的IC�。非接觸型IC卡是通過無線電波或電磁場感應(yīng)的方式,將卡中集成電路內(nèi)的數(shù)�(jù)與外部設(shè)備接口設(shè)備通信,卡片不用直接接觸接口設(shè)備的電極就可以進行�(shù)�(jù)讀寫。按照IC卡的功能和結(jié)�(gòu)又可以把IC卡分為存儲型IC卡和智能型IC�。存儲型IC卡是屬于被動�,它只能實現(xiàn)�(shù)�(jù)的各種輸�/輸出。這種類型IC卡內(nèi)部電路可分為兩大功能部分,數(shù)�(jù)存儲部分和數(shù)�(jù)加密操作控制部分。而且不是所有IC卡都必須具有這兩大功�。我們把只有�(shù)�(jù)存儲功能的IC卡稱為非加密型存儲卡 (Memory Card)。把具有�(shù)�(jù)存儲功能和數(shù)�(jù)加密操作控制的IC卡稱為加密型存儲卡(Memory Card with Security Logic), 它們有暫時或的�(shù)�(jù)存儲能力,其�(nèi)容可供處理或判斷之用。智能型IC卡就是在IC卡的集成電路中帶有微處理器電路的IC�。它是一種主動型IC卡,不僅能夠管理各種�(shù)�(jù)的I/O操作,校驗來自接口設(shè)備的個人密碼,而且能夠根據(jù)�(yīng)用系�(tǒng)的要求主動識別與之連接的接口設(shè)�。因�,在智能型IC卡中能夠建立各種�(yīng)用系�(tǒng)的授�(quán),存放多個應(yīng)用系�(tǒng)的相�(guān)�(shù)�(jù),并實現(xiàn)對數(shù)�(jù)信息存儲的高可靠�、高安全性控�,可以進行�(fù)雜的信息處理和計算�
2 IC卡國際標準和讀寫要�
由于IC卡使用具有流動性與全球�,建立相�(yīng)的國際標準和國家標準就顯得特別重�。在信息技�(shù)�(lǐng)域,ISO(國際標準化組織)和IEC(國際電子技�(shù)委員會)共同建立了一個技�(shù)委員會ISO/IEC JTC1以制定相�(yīng)國際標準。在IC卡應(yīng)用系�(tǒng)的設(shè)計中,讀寫設(shè)備對IC卡的讀寫控制的每一個環(huán)節(jié)都應(yīng)�(dāng)遵照相應(yīng)的國際標�,才能保證數(shù)�(jù)的正確讀�。這是IC卡讀寫器終端�(shè)計的基礎(chǔ)�
而在這些標準�(dāng)�,對芯片和電氣特征的定義和操作時序的要求又顯得尤為重要。此處以同步卡的電氣特征和時序為例進行介紹。使用這種卡時,接口設(shè)備將所有線置于狀�(tài)L,然后VCC加電,Vpp處于空閑狀�(tài),CLK、RST和FCB處于狀�(tài)L,接口設(shè)備的I/O置于接收模式。時鐘脈沖在VCC上升沿之后相隔t20后提供,時鐘脈沖的持�(xù)時間為t25。在時鐘脈沖上升沿之后至少相隔t22時間FCB仍維持狀�(tài)L。在I/O線上得到的第1位數(shù)�(jù)可視為應(yīng)�,此時CLK處于狀�(tài)L,并在CLK下降沿t27之后有效。當(dāng)FCB置于狀�(tài)H�,每一個時鐘脈沖用于讀出I/O線上的下個數(shù)�(jù)�。在�(fù)位應(yīng)答時,個時鐘脈沖在FCB上升沿之后t24時間給出。時鐘脈沖狀�(tài)H的持�(xù)時間為t25,狀�(tài)L的持�(xù)時間�1us(t26)。第二個及其隨后的�(shù)�(jù)位在時鐘為低和CLK下降沿之后t27時間給出。數(shù)�(jù)位依次用時鐘脈沖的上升沿采樣�
� 一
3 SLEE4442接口電路的設(shè)�
SLE4442是由德國西門子公司設(shè)計的邏輯加密存儲�。它具有2K位的存儲容量和完全獨立的可編程加密代碼存儲器。內(nèi)部電壓提升電路保證了芯片能夠以單5V電壓供電,較大的存儲器容量能夠滿足應(yīng)用領(lǐng)域的各種要求。是目前國內(nèi)�(yīng)用較多的一種IC卡芯�。這種芯片的特點是采用多存儲器�(jié)�(gòu)�2線連接�(xié)�,串行接口滿足ISO7816同步傳送協(xié)議;芯片采用NMOS工藝技�(shù),每字節(jié)的擦�/寫入編程時間�2.5ms;存儲器采用至少104次的擦除/寫入周期,數(shù)�(jù)保持時間至少�10年�
而讀寫器的主控芯片采用的�89C51單片機�89C51單片機是Intel公司開發(fā)�8位的系列化處理芯�。內(nèi)部帶有一�8位的CPU�256個字節(jié)的RAM�21個特殊功能寄存器(SFR),2�16位的定時/計數(shù)��4�8位并行接�,一個全雙工的串行接��5個中斷源及片�(nèi)時鐘振蕩器等。由于這是一款非常成熟的單片機,因此本文不作更多的贅��
該讀寫器的核心模塊即如何實現(xiàn)對IC芯片的有效控制和讀寫操�。而接口電路的�(shè)計直接反映了對該芯片的具體操作思想。由于IC卡的邏輯接口電路一般采用集電極開路(OC)輸出及非保護式輸入結(jié)�(gòu),所有讓上拉電阻R源端與IC卡的供電電源相連接。當(dāng)IC卡處于供電狀�(tài)時,整個接口電路接�,接口設(shè)備與IC卡間�(gòu)成邏輯通路;而當(dāng)IC卡處于下電狀�(tài)�,上拉電阻R的源端失去了供電,整個與卡接口的電路均處于不帶電狀�(tài)。所有的IC卡接口部分都加入了保護二極管,這些二極管可以使各引腳上的電壓嚴格地限定�-VD~VCC+ VD之間(VD是保護二極管的正向壓�,通常�0.6左右)。這樣,可以抑制由于線路干擾和邏輯電平變化的邊沿產(chǎn)生抖動所帶來的瞬間過�,為IC卡提供了進一步的保護措施。所�(shè)計的接口電路圖如圖二所��
� � IC卡控制和讀寫電�
IC卡的插入與退出的識別是通過IC卡適配插座上的感�(yīng)開關(guān)來識別的,對于簡單的手動插拔的IC卡適配插座來�,這種識別過程相當(dāng)簡單,僅有一個開�(guān),表示卡是否已插�。如果卡己插入到正確位置,IC卡適配插座就會給出一個開�(guān)接通(或斷開)的信�,而一旦卡離開這個位�,該信號就會立即�(fā)生翻�(zhuǎn)。設(shè)計中采用的適配器,無卡插入時開關(guān)常閉,卡插到位時開關(guān)斷開。對于手動式IC卡適配插座來說,這一信號已經(jīng)足夠�。為了確保IC卡已準確地插到位置,插入的識別過程必須加入消顫處�,這主要由軟件來實�(xiàn)�
大多�(shù)符合ISO7816標準的同步型IC卡的地址計數(shù)器是與時鐘緊密相�(guān)的,�(dāng)卡復(fù)位時,地址計數(shù)器置0。以后每向卡�(fā)一個節(jié)拍的時鐘,都將使IC卡的地址計數(shù)器加�1’。這一時鐘頻率上限�50kHz�280kHz。復(fù)位之后的�32個時鐘周期內(nèi),是卡的�(fù)位響�(yīng)過程,該過程�,廠家的�(chǎn)品編碼以位編碼方式逐一在數(shù)�(jù)線上送出,以后的字段則根�(jù)廠家及用戶所定義的含義不同而各不相�。若某字段定義為可讀�,則可將時鐘運行到該字段�,然后再逐時鐘讀�。數(shù)�(jù)的讀出過程可分為三個基本過�:�(fù)�,數(shù)�(jù)字段的定位和�(shù)�(jù)讀��
4�89C51軟件模塊�(shè)�
由于89C51是主控芯片,因此89C51需要完成對IC芯片的復(fù)�、讀寫等操作。首先對于復(fù)位響�(yīng)操作,由于復(fù)位響�(yīng)是根�(jù)ISO7816標準來進行�。在操作期間的任何時候都可以�(fù)位,只有�(jīng)過了�(fù)位才能對IC卡進行其他操作。開始時地址計數(shù)器隨一個時鐘脈沖而被�(shè)置成0。當(dāng)RST線從H狀�(tài)置到L狀�(tài)�,個數(shù)�(jù)位的�(nèi)容被送到I/O線上。若連續(xù)輸入32個時鐘脈�,主存儲器中的前4個字節(jié)地址單元中的�(nèi)容被讀�。在�33個時鐘脈沖的下降沿,I/O線被置成H狀�(tài)而關(guān)�� 在復(fù)位響�(yīng)期間,“啟動”和“停止”狀�(tài)被忽�。單片機上的程序�(shè)計如下:
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
在命令模式下,復(fù)位響�(yīng)之后,芯片等待著命令。每條命令都以一個“啟動狀�(tài)”開�。整個命令包括三個字節(jié)。隨后緊跟著一個附加脈沖并用一個“停止狀�(tài)”來�(jié)束操�。當(dāng)CLK為H狀�(tài)期間,I/O線的下降沿為啟動狀�(tài);當(dāng)CLK為H狀�(tài)期間,I/O線的上升沿為停止狀�(tài);限于篇�,此處不再列出整個讀寫操作的程序代碼。需要注意的是:脈沖的下降沿之后,I/O線上的位�(shù)�(jù)�?yōu)橛行?。隨后每增加一個時鐘脈�,芯片內(nèi)部的一位數(shù)�(jù)被送到I/O線上。其輸出的順序是從侮個字節(jié)的位開始。當(dāng)所需要的一個數(shù)�(jù)送出以后,需要再附加一個時鐘脈沖來把I/O線置成H狀�(tài),以便準備接受新的命�。在輸出�(shù)�(jù)期間,任何“啟動狀�(tài)”和“停止狀�(tài)”均被屏蔽掉�
5、結(jié)束語
本文的創(chuàng)新點是提出了一種新型的IC卡讀寫器�(shè)計方案,在串口通訊的設(shè)計中,除了要對單片機的異步通訊口進行操作,還要對PC 機的串口進行底層實時控制,并通過�(diào)用系�(tǒng)的API 函數(shù)的方法成功的解決了這一問題。由于西門子公司的SLE4442型邏輯加密IC卡是一種比較通用的IC卡芯�,因此通過更新讀寫器軟件也可以操作其他類型的接觸式同步IC一�,使得這種接觸式IC卡讀寫器成為一種通用的讀寫器�
維庫電子�,電子知識,一查百��
已收錄詞�168151�