基于AT89C51的IC卡系統(tǒng)設(shè)計(jì)與應(yīng)用
出處:李鐵軍,何永洪 發(fā)布于:2011-07-19 21:22:34
摘 要: 介紹了以單片機(jī)AT89C51為的IC卡系統(tǒng)的設(shè)計(jì)。設(shè)計(jì)了單片機(jī)控制IC卡數(shù)據(jù)讀寫的軟/硬件、LCD顯示以及與PC機(jī)之間的串口通信。
IC卡(Integrated Circuit Card)又稱集成電路卡,它是在大小和普通信用卡相同的塑料卡片上嵌置一個或多個集成電路構(gòu)成的。集成電路芯片可以是存儲器或向處理器。帶有存儲器的IC卡又稱為記憶卡或存儲卡,帶有微處理器的IC卡又稱為智能卡或智慧卡。記憶卡可以存儲大量信息;智能卡則不僅具有記憶能力,而且還具有處理信息的功能。IC卡是1974年一名法國新聞記者發(fā)明的。由于便于攜帶,存儲量大,它日益受到人們的青睞。IC卡可以十分方便地存汽車費(fèi)、電話費(fèi)、地鐵乘車費(fèi)、食堂就餐費(fèi)、公路付費(fèi)以及購物旅游、貿(mào)易服務(wù)等。
1 AT24C08卡
存儲卡是IC卡的一種,它是一種用可電擦寫的可編程內(nèi)存(E2PROM)為的IC卡,能夠多次重復(fù)使用。AT24C08是ATMEL公司出品的I2C接口、高集成度串行E2PROM內(nèi)存IC卡。AT24C08具有以下特點(diǎn):與400 kHz I2C總線兼容、低功耗CMOS技術(shù)、1 000 000次編程/擦除周期及可保存數(shù)據(jù)100年以上。
AT24C08芯片的觸點(diǎn)位置與功能符合ISO7816-2標(biāo)準(zhǔn),觸點(diǎn)位置如圖1所示,觸點(diǎn)功能如表1所示。

2 電路設(shè)計(jì)與讀寫控制
2.1 接口電路的設(shè)計(jì)
本設(shè)計(jì)采用的單片機(jī)是AT89C51。AT24C08卡座與AT89C51的電路連接如圖2所示[2]。SLC為串行時(shí)鐘,在時(shí)鐘的上升沿,數(shù)據(jù)寫入E2PROM;在時(shí)鐘的下降沿,數(shù)據(jù)從E2PROM被讀出。SDA為雙向數(shù)據(jù)端口,是一個漏極開路的引腳,滿足“線與”的條件,在使用過程中需要加上拉電阻。SW1、SW2為IC卡卡座的1對常開觸點(diǎn),SW1與Vcc連接,SW2與AT89C51的引腳P1.0連接,平時(shí)P1.0通過1個電阻連接到地,當(dāng)有卡插入時(shí),SW1和SW2短接,Vcc將P1.0上拉到高電平,通過對P1.0上的電平查詢就可以知道是否有卡插入。

2.2 AT24C08內(nèi)存讀寫操作
AT24C08的數(shù)據(jù)接口完全符合I2C的標(biāo)準(zhǔn)。I2C總線是由數(shù)據(jù)線SDA和時(shí)鐘線SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。I2C總線協(xié)議規(guī)定:只有在總線空閑時(shí)才允許啟動數(shù)據(jù)傳送。在數(shù)據(jù)傳送過程中,當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線必須保持穩(wěn)定狀態(tài),不允許有跳變;且數(shù)據(jù)線的任何電平變化都將被看作總線的啟動或停止信號。I2C總線在傳送數(shù)據(jù)過程中共有以下3種類型信號:
(1)起始信號:當(dāng)SCL處于高電平時(shí),SDA從高到低地跳變作為I2C總線的啟動信號,啟動狀態(tài)應(yīng)該在操作命令(讀/寫)之前進(jìn)行建立。
?。?)停止信號:當(dāng)SCL處于高電平時(shí),SDA從低到高的跳變作為I2C總線的停止信號,表示一種操作的結(jié)束,馬上即將結(jié)束所有的相關(guān)通信。
?。?)應(yīng)答信號:AT24C08在接收到8 bit數(shù)據(jù)后,在第9個脈沖向AT89C51發(fā)出1個低電平,表示已收到數(shù)據(jù)。如圖3(a)所示。
通過時(shí)序圖可看出,要寫卡必須由起始信號啟動,緊接著送入器件地址,使卡進(jìn)行讀/寫操作。對AT24C08卡,器件地址高4位一定為1010,位作為讀寫控制位,“0”表示對IC卡進(jìn)行寫操作,“1”表示對IC卡進(jìn)行讀操作。信息高位先送出,如圖3(b)所示。

由圖2的接口電路可以看出,AT24C08的時(shí)鐘、上/下電及讀寫操作均由單片機(jī)控制,因此單片機(jī)編程時(shí)應(yīng)符合AT24C08的傳輸協(xié)議和操作命令。本設(shè)計(jì)首先按照要求編寫對AT24C08進(jìn)行操作的子程序,再編寫主程序組成完整的IC卡讀寫系統(tǒng)[3]。幾個主要子程序和IC卡讀卡器對AT24C08的操作流程圖如圖4所示。

3 LCD顯示
液晶顯示器是一種采用液晶為材料的顯示器。液晶是介于固態(tài)和液態(tài)間的有機(jī)化合物。將其加熱會變成透明液態(tài),冷卻后會變成結(jié)晶的混濁固態(tài)。在電場作用下,液晶分子會發(fā)生排列上的變化,從而影響通過其的光線變化,這種光線的變化通過偏光片的作用可以表現(xiàn)為明暗的變化。就這樣,人們通過對電場的控制終控制了光線的明暗變化,從而達(dá)到顯示圖像的目的。
字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點(diǎn)陣式LCD,目前常用16×1、20×2、40×2行等模塊。本文用1602字符型液晶顯示器顯示讀卡器讀出的信息。1602的引腳說明如表2所示、與單片機(jī)AT89C51的接口電路如圖5所示。


單片機(jī)讀出IC卡的數(shù)據(jù)通過P0口送到液晶顯示器顯示,可分2行共顯示32個字符,也就是16個字節(jié)的十六進(jìn)制數(shù)據(jù),通過上位機(jī)控制讀數(shù)據(jù)起始地址可移動顯示數(shù)據(jù)。1602可直接顯示字符型數(shù)據(jù),IC卡讀出的十六進(jìn)制數(shù)據(jù)需轉(zhuǎn)換成字符型數(shù)據(jù)再送到液晶屏顯示。
4 單片機(jī)與計(jì)算機(jī)的串口通信
4.1 單片機(jī)與計(jì)算機(jī)的硬件接口
PC機(jī)串口通常采用RS-232電平,而單片機(jī)串口是TTL電平,二者不兼容。所以,接口必須做電平轉(zhuǎn)換處理。在此,采用MAXIM公司的MAX232芯片進(jìn)行電平轉(zhuǎn)換。AT89C51單片機(jī)TXD端連接到MAX232的T1IN端,用于發(fā)送數(shù)據(jù);PC機(jī)的RD端連接到MAX232的T1OUT端,用于接收數(shù)據(jù);AT89C51單片機(jī)RXD端連接到MAX232的R1OUT端,用于接收數(shù)據(jù);PC機(jī)的TD端連接到MAX232的R1IN端,用于發(fā)送數(shù)據(jù)。
4.2 用MSComm控件實(shí)現(xiàn)串口通信
MSComm通信控件提供了一系列標(biāo)準(zhǔn)通信命令的接口,它允許建立串口連接,可以連接到其他通信設(shè)備(如Modem)。還可以發(fā)送命令、進(jìn)行數(shù)據(jù)交換以及監(jiān)視和響應(yīng)在通信過程中可能發(fā)生的各種錯誤和事件,從而可以用它創(chuàng)建全雙工 、事件驅(qū)動的、高效實(shí)用的通信程序。但在實(shí)際通信軟件設(shè)計(jì)過程中,MSComm控件并非像想像中那樣完美和容易控制。特別是在中文Wln 95/98下通信時(shí)更會出現(xiàn)問題。下面就從基礎(chǔ)開始介紹,然后逐步討淪MSComm控件在編程中出現(xiàn)的問題以及編程技巧。MSComm控件也可用于創(chuàng)建電話撥號程序、串行口通信程序和功能完備的終端程序。MSComm控件提供了事件驅(qū)動法和查詢法2種處理通信的方式。在使用事件驅(qū)動法設(shè)計(jì)程序時(shí),每當(dāng)有新字符到達(dá)、端口狀態(tài)改變或發(fā)生錯誤時(shí),MSComm控件都將觸發(fā)事件,應(yīng)用程序在捕獲該事件后通過檢查MSComm控件的CommEvent屬性可獲知所發(fā)生的事件或錯誤,從而采取相應(yīng)的操作。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。雖然查詢方式實(shí)質(zhì)上還是屬于事件驅(qū)動,但在有些情況下這種方式顯得更為便捷。它適合于較小的應(yīng)用程序,每當(dāng)應(yīng)用程序執(zhí)行完某一串行口操作后,將不斷檢查MSComm控件的CommEvent屬性以檢查執(zhí)行結(jié)果或某一事件是否發(fā)生。
本文設(shè)計(jì)的基于MSC-51單片機(jī)的IC卡系統(tǒng)硬件電路,用單片機(jī)模擬I2C的時(shí)序,使用了C語言編寫源程序。通過對單片機(jī)和LCD的進(jìn)一步開發(fā),可以使IC卡的使用能夠脫離讀卡器終端設(shè)備的限制,設(shè)計(jì)成為手持式的IC卡系統(tǒng)。
參考文獻(xiàn):
[1]. AT89C51 datasheet http://www.hbjingang.com/datasheet/AT89C51_810155.html.
[2]. SLC datasheet http://www.hbjingang.com/datasheet/SLC_2442120.html.
[3]. RS-232 datasheet http://www.hbjingang.com/datasheet/RS-232_584855.html.
[4]. TTL datasheet http://www.hbjingang.com/datasheet/TTL_1174409.html.
[5]. MAXIM datasheet http://www.hbjingang.com/datasheet/MAXIM_1062568.html.
[6]. MAX232 datasheet http://www.hbjingang.com/datasheet/MAX232_1074207.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級DSP信號處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22
- 高速PCB信號完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









