單片機(jī)實(shí)現(xiàn)通用存貯器IC卡讀寫
本文對(duì)AT24系列存貯器和AT89系列單片機(jī)的特征及總線狀態(tài)作為介紹,并以AT24C01與AT89C2051為例詳細(xì)描述了通用存貯器IC卡的工作原理及用單片機(jī)對(duì)其進(jìn)行讀寫操作的基本電路連接和軟件編程方法。
通用存貯器IC卡是由通用存貯器芯片封裝而成的,由于它的結(jié)構(gòu)和功能簡(jiǎn)單,生產(chǎn)成本低,使用方便,因此在各領(lǐng)域都得到了廣泛的應(yīng)用。目前用于IC卡的通用存貯器芯片多為E2PROM,其常用的協(xié)議主要有兩線串行連接協(xié)議(I2C)和三線串行鏈接協(xié)議,其中比較常用的是ATMEL公司生產(chǎn)的AT24系列芯片。以該系列中的AT24C01為例,它具有1k的存貯容量,適用于2V~5V的低電壓/標(biāo)準(zhǔn)電壓的操作,具有低功耗和高可靠性等優(yōu)點(diǎn)。而AT89C2051雖是ATMEL公司89系列單片機(jī)的低檔型,但它具有2k的FLASH ROM(可重編閃速存貯器)、128×8位內(nèi)部RAM及全靜態(tài)操作方式,同樣也具有低功耗和較強(qiáng)的功能。下面以AT24C2051為例,對(duì)通用存貯器IC卡的工作原理及基本電路連線作一介紹,該線路簡(jiǎn)單,使用靈活,能可靠地對(duì)通用存貯器IC卡進(jìn)行讀寫。
2、硬件特性
2.1 AT24系列存貯器的特性
AT24系列存貯器芯片采用CMOS工藝制造,內(nèi)置有高壓泵,可在單電壓供電條件下工作。其標(biāo)準(zhǔn)封裝為8腳DIP封裝形式,各引腳的功能說(shuō)明如下:
SCL:串行時(shí)鐘。在該腳的上升沿時(shí),系統(tǒng)將數(shù)據(jù)輸入到每個(gè)EEPROM器件,在下降沿時(shí)輸出。
SDA:串行數(shù)據(jù)。該引腳為開漏極驅(qū)動(dòng),可雙向傳送數(shù)據(jù)。
A0、A1、A2:器件/頁(yè)面尋址。為器件地址輸入端。在AT24C01/02中,該引腳被硬連接。
Vcc:一般輸入+5V的工作電壓。
對(duì)于AT24系列通用存貯器IC卡來(lái)說(shuō),通常只需使用四個(gè)觸點(diǎn)。AT24C01的內(nèi)部組態(tài)為128個(gè)8位字節(jié),而對(duì)隨機(jī)字尋址則需要一個(gè)7位地址。
2.2 總線狀態(tài)及時(shí)序
A24C01的SCL及SDA兩總線可通過(guò)一個(gè)電阻上拉為高電平,SDA上的數(shù)據(jù)僅在SCL為低電平時(shí)周期才能改變。當(dāng)SCL為高電平時(shí),SDA的改變表示“開始”和“停止”狀態(tài)。此時(shí),所有地址和數(shù)據(jù)字都以8位串行碼方式輸入輸出EEPROM。
開始狀態(tài):SCL為高電平時(shí),SDA由高電平轉(zhuǎn)入低電平。該命令必須在其它命令前執(zhí)行。
停止?fàn)顟B(tài):SCL為高電平時(shí),SDA由低電平轉(zhuǎn)入高電平。該命令可終止所有通訊。
確認(rèn):相同總線上的設(shè)備在收到數(shù)據(jù)后,以置SDA為低電平的方式對(duì)其進(jìn)行確認(rèn)。
2.3 器件尋址
AT24系列EEPROM在開始狀態(tài)后需緊接一個(gè)8位器件地址,以進(jìn)行應(yīng)讀寫操作。設(shè)備尋址碼的高4位為1、0、1、0,對(duì)于AT24C01/02,尋址碼高4位后面的三位是器件尋址碼,與它們的硬連線管腳相對(duì)應(yīng)。最低應(yīng)是讀寫選擇位,置0時(shí)可激發(fā)讀操作。
具體的格式如下:1010A2A1A0R/W
2.4 AT89C2051芯片
AT89C2051是MCS-51產(chǎn)品的兼容型,它具有2k的FLASH ROM、128字節(jié)ROM,15根I/O引線、兩個(gè)16位定時(shí)/計(jì)數(shù)器、一個(gè)五向量?jī)杉?jí)中斷結(jié)構(gòu)、一個(gè)全雙工串行口、一個(gè)精密模擬比較器以及片內(nèi)振蕩電路和時(shí)鐘電路。它的P1口和P3口是雙向I/O口,其中P1.2~P1.7、P3.0~P3.5和P3.7帶有內(nèi)部上拉電阻。在AT89C2051用作輸入端時(shí),將首先向引腳寫“1”而使內(nèi)部MOS管截止以便引腳處于懸浮狀態(tài),從而可獲得高阻抗輸入。
評(píng)論