當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1概述近年來,以單片機(jī)為核心構(gòu)成的智能儀器儀表與數(shù)據(jù)采集系統(tǒng)獲得了愈來愈廣泛的應(yīng)用。傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方法均是通過總線型非易失數(shù)據(jù)存儲(chǔ)器來保存采集的數(shù)據(jù)。隨著單片機(jī)技術(shù)的不斷發(fā)展及各種非總線型單片機(jī)的不斷涌

1概述

近年來,以單片機(jī)為核心構(gòu)成的智能儀器儀表與數(shù)據(jù)采集系統(tǒng)獲得了愈來愈廣泛的應(yīng)用。傳統(tǒng)的數(shù)據(jù)存儲(chǔ)方法均是通過總線型非易失數(shù)據(jù)存儲(chǔ)器來保存采集的數(shù)據(jù)。隨著單片機(jī)技術(shù)的不斷發(fā)展及各種非總線型單片機(jī)的不斷涌現(xiàn),采用非總線型單片機(jī)并配合大容量串行E2PROM構(gòu)成的數(shù)據(jù)存儲(chǔ)系統(tǒng),將是一種非常好的數(shù)據(jù)存儲(chǔ)方法。該方法一方面可提高系統(tǒng)的可靠性,另一方面又可降低系統(tǒng)成本。

AT24C512是ATMEL公司新近推出的具有I2C總線容量達(dá)512Kbit(64K×8)的E2PROM,該芯片的主要特性如下:存儲(chǔ)容量為 65536byte;與100kHz、400kHz、1MHzI2C總線兼容;100000次編程/擦寫周期;單電源、讀寫電壓為 1.8V~5.5V;ESD保護(hù)電壓>4kV;數(shù)據(jù)可保存40年;寫保護(hù)功能,當(dāng)WP為高電平時(shí),進(jìn)入寫保護(hù)狀態(tài);CMOS低功耗技術(shù),最大寫入電流為3mA;128byte頁寫入緩存器;自動(dòng)定時(shí)的寫周期;具有8引腳DIP及20引腳SOIC封裝等多種封裝形式。

2引腳排列及功能

AT24C512的DIP型封裝及20引腳的SOIC型封裝的引腳排列如圖1所示,各個(gè)引腳的功能如下:

SCL:串行時(shí)鐘該引腳為一輸入引腳,用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘。

SDA:串行數(shù)據(jù)/地址雙向串行數(shù)據(jù)/地址引腳,用于器件所有數(shù)據(jù)的發(fā)送或接收。SDA是1個(gè)開漏輸出引腳,可與其它開漏輸出或集電極開路輸出進(jìn)行線接。

WP:寫保護(hù)當(dāng)引腳WP連接到VCC時(shí),所有存儲(chǔ)數(shù)據(jù)變?yōu)閷懕Wo(hù)。當(dāng)引腳WP接VSS時(shí),則允許器件進(jìn)行正常讀寫操作。

A0,A1:器件地址輸入這兩個(gè)引腳為硬件連線或者不連接,通過連接VCC或VSS的組合可使單總線最多尋址4個(gè)AT24C512,當(dāng)這些引腳沒有連接時(shí)其默認(rèn)值為0。


         (a) SOIC封裝  (b) DIP封裝
        圖1    AT24C512引腳排列圖

3器件功能描述

AT24C512是具有I2C總線的存儲(chǔ)芯片,因此該器件必須嚴(yán)格遵守I2C總線傳輸協(xié)議。I2C總線簡(jiǎn)單的硬件接口是以復(fù)雜的時(shí)序及軟件編程為代價(jià)的,下面首先對(duì)該器件的時(shí)序進(jìn)行描述。

(1)起停信號(hào)

時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到低的跳變代為I2C總線的起始信號(hào)。時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低到高的跳變代為I2C總線的停止信號(hào)。

(2)器件尋址

主器件通過發(fā)送1個(gè)起始信號(hào)啟動(dòng)發(fā)送過程,然后發(fā)送它所需要尋址的從器件地址,8位從器件地址的高5位固定為10100,接下來的2位(A0,A1)為器件的地址位,因此最多可以將4個(gè)AT24C512連接到同一總線上使存儲(chǔ)容量擴(kuò)展至256Kbyte。注意,這兩位必須與A0和A1兩引腳的輸入狀態(tài)相對(duì)應(yīng),從器件地址的最低位為讀寫控制位,“1”表示對(duì)從器件進(jìn)行讀操作,“0”表示對(duì)從器件進(jìn)行寫操作,在主器件發(fā)送起始信號(hào)和從器件發(fā)送地址字節(jié)后,AT24C512監(jiān)測(cè)總線并當(dāng)其地址與發(fā)送的從地址相符時(shí)發(fā)出1個(gè)應(yīng)答信號(hào)(通過SDA線),AT24C512再根據(jù)讀寫控制位(R/W)的狀態(tài)進(jìn)行讀寫操作,從器件地址字節(jié)內(nèi)容如表1所示。

(3)應(yīng)答信號(hào)

I2C總線傳送數(shù)據(jù)時(shí),每成功傳送1個(gè)字節(jié),接收器都必須產(chǎn)生1個(gè)應(yīng)答信號(hào),應(yīng)答的器件在第9個(gè)時(shí)鐘周期將SDA線拉低表示其已收到1個(gè)8位數(shù)據(jù)。AT24C512在接收到起始信號(hào)和從器件地址之后產(chǎn)生應(yīng)答信號(hào),如果器件已選擇了寫操作,則在每接收1個(gè)8位字節(jié)之后1個(gè)應(yīng)答信號(hào)。

當(dāng)該器件工作于讀模式時(shí),在發(fā)送1個(gè)8位數(shù)據(jù)后釋放SDA線并監(jiān)測(cè)1個(gè)應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào),則繼續(xù)發(fā)送數(shù)據(jù),若主器件沒有發(fā)送應(yīng)答信號(hào),器件停止傳送數(shù)據(jù)并等待1個(gè)停止信號(hào)。

掌握了AT24C512的操作時(shí)序后再配合一定的地址/數(shù)據(jù)信息就可完成該器件的讀寫操作。

(4)寫操作

寫操作可分為字節(jié)寫和頁寫兩種寫入方式。通常E2PROM的寫入占用一定的寫入時(shí)間,但AT24C512內(nèi)部設(shè)有128字節(jié)的頁寫緩存,使得操作該器件如同操作SRAM一樣方便,頁面緩存使得兩種寫入方式的操作過程相同,區(qū)別僅在于寫入數(shù)據(jù)字節(jié)的多少。下面以字節(jié)寫入為例介紹寫操作過程。

在字節(jié)寫操作模式下,主器件首先給從器件發(fā)送起始信號(hào)和從器件地址信息,在從器件送回應(yīng)答信號(hào)后,主器件在發(fā)送兩字節(jié)的16位地址信息寫入到 AT24C512地址指針,主器件在收到從器件的應(yīng)答信號(hào)后,再發(fā)送1個(gè)字節(jié)的數(shù)據(jù)到被尋址的存儲(chǔ)單元,從器件在此應(yīng)答,并在主器件產(chǎn)生停止信號(hào)后開始內(nèi)部數(shù)據(jù)擦寫,在內(nèi)部擦寫過程中,從器件不再應(yīng)答主器件的任何請(qǐng)求,字節(jié)寫入操作時(shí)序如圖2所示。


           圖2    字節(jié)寫操作時(shí)序

(5)讀操作

讀操作分為立即讀、隨機(jī)讀和連續(xù)讀。立即讀是在最后操作字節(jié)的地址上加1進(jìn)行讀取,而連續(xù)讀則是在立即讀和隨機(jī)讀起動(dòng)后主器件通過應(yīng)答信號(hào)響應(yīng)完成多個(gè)數(shù)據(jù)的讀取,在主器件發(fā)出停止信號(hào)后結(jié)束讀取過程。下面以隨機(jī)讀為例介紹讀操作過程。

隨機(jī)讀操作允許主器件對(duì)存儲(chǔ)器的任意字節(jié)進(jìn)行讀操作。操作過程為主器件首先發(fā)送起始信號(hào),從器件地址和欲讀取字節(jié)的地址執(zhí)行1個(gè)偽寫操作,此時(shí)R/W位應(yīng)置0,在AT24C512應(yīng)答后,主器件重新發(fā)送起始信號(hào)和從器件地址,此時(shí)R/W位應(yīng)置1,AT24C512響應(yīng)并發(fā)送應(yīng)答信號(hào),然后輸出所要求的1個(gè) 8位字節(jié)數(shù)據(jù)。主器件不發(fā)送應(yīng)答信號(hào),但產(chǎn)生1個(gè)停止信號(hào)。字節(jié)讀操作時(shí)序如圖3所示。

4應(yīng)用

AT24C512與AT89C2051單片機(jī)的硬件連接電路如圖4所示。這里使用了2個(gè)AT24C512組成尋址空間為128K字節(jié)的E2PROM存儲(chǔ)器電路。其中U2的器件地址為A0H,存儲(chǔ)地址空間為0000-0FFFFH;U3的器件地址為A2H,存儲(chǔ)地址空間為0000-0FFFFH。


           圖3    字節(jié)讀操作時(shí)序

由于AT89C2051不具有I2C總線,因此采用P1.0和P1.1口線來模擬I2C總線,AT24C512的SDA和SCL為開漏輸出,故接入10kΩ的上拉電阻器。下面是與上述電路配套的E2PROM讀寫程序:
;內(nèi)存數(shù)據(jù)定義
BitCnt     DATA    30H;讀/寫數(shù)據(jù)位數(shù)計(jì)數(shù)器
ByteCnt    DATA    31H;讀/寫數(shù)據(jù)字節(jié)數(shù)計(jì)數(shù)器
SlvAddr    DATA    32H;E2PROM器件地址
SubAdrl    DATA    33H;存儲(chǔ)單元地址高8位
SubAdr2    DATA    34H;存儲(chǔ)單元地址低8位
ReadDat    DATA    50H;讀操作數(shù)據(jù)緩沖區(qū)
WriteDat   DATA    40H;寫操作數(shù)據(jù)緩沖區(qū)
;端口位定義
SDA        BIT     P1.0;模擬I2C數(shù)據(jù)傳送位
SCL        BIT     P1.1;模擬I2C時(shí)鐘控制位
ACK        BIT     20H;讀非應(yīng)答標(biāo)志
;主程序


MAIN:      MOV     SP     #60H;設(shè)堆棧
Write:     MOV  SlvAdr,   #A0H;選擇1個(gè)器件地址
           MOV  ByteCnt,  #08H;設(shè)寫入數(shù)據(jù)長(zhǎng)度為8字節(jié)
           MOV  SubAdr1,  #00H;設(shè)寫入單元首址為0020H
           MOV  SubAdr2,  #20H;
           LCALL  WriteData  ; 寫數(shù)據(jù)
           ……
Read:      MOV   Slvadr,    #A0H;選擇1個(gè)器件地址
           MOV   Bytecnt,   #08H;設(shè)讀出數(shù)據(jù)長(zhǎng)度為8字節(jié)
           MOV   SubAdr1,   #00H;設(shè)讀出單元
           MOV   SubAdr2,   #20H;首址為0020H
           LCALL   ReadData;   讀數(shù)據(jù)
           ……
WriteData:LCALL  Start;     I2C總線起始條件
          MOV   A,SlvAdr;   取器件地址
          LCALL  writeByte; 發(fā)送器件地址
          MOV   A,SubAdr1
          LCALL  writeByte;發(fā)送高8位地址
          MOV   A,SubAdr2
LCALLwriteByte;發(fā)送低8位地址
MOVR0,#WriteDat;取寫入數(shù)據(jù)的首地址
Next:MOVA,@R0
LCALLwriteByte;寫入1字節(jié)數(shù)據(jù)
LNCR0;取下1個(gè)數(shù)據(jù)
DJNZByteCnt,Next;重復(fù)操作直到寫完全部數(shù)據(jù)
LCALLStop;發(fā)送I2C總線停止條件
LCALLDL10ms;延時(shí)10ms等待E2PROM內(nèi)部數(shù)據(jù)
;寫完
RET
;讀數(shù)據(jù)子程序
ReadData:LCALLStart
MOVA,SlvAdr
LCALLWriteByte
MOVA,Subadr1
LCALLWriteByte
MOVA,Subadr2
LCALLWriteByte
LCALLStart;重復(fù)發(fā)送I2C總線起始條件
MOVA,Slvadr
SETBACC.0;R/W位置1
LCALLWriteByte
CLRACK;請(qǐng)讀非應(yīng)答標(biāo)志
MOVR0,#RdadData;讀緩沖區(qū)首址
DJNZByteCnt,Next1
SJMPLast
Next1:LCALLReadByte;接收1個(gè)字節(jié)數(shù)據(jù)
MOV@R0,A;接收數(shù)據(jù)送緩沖區(qū)
INCR0
DJNZByteCnt,Next1;重復(fù)接收
Last:SETBACK;接收最后1個(gè)字節(jié)數(shù)據(jù)
ACALLReadByte
MOV#R0,A
LCALLStop
RET

上面給出讀寫操作主程序、頁面寫入子程序及其多字節(jié)讀子程序。受篇幅限制,部分子程序沒有給出,讀者可根據(jù)AT24C512的操作時(shí)序自行編制或參閱相關(guān)文獻(xiàn)。

5結(jié)束語

由AT24C512與AT89C2051等非總線單片機(jī)構(gòu)成的數(shù)據(jù)采集存儲(chǔ)系統(tǒng)具有體積小、成本低、可靠性高的特點(diǎn),因而具有很高的應(yīng)用價(jià)值。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉