【關(guān)鍵詞】串行EEPROM,智能計(jì)長(zhǎng)儀,I2C總線
【論文摘要】本文介紹了串行EEPROM的特點(diǎn)及24C08在智能計(jì)長(zhǎng)儀中的應(yīng)用,給出了24C08與80C31單片機(jī)的連接與讀寫操作實(shí)例。
1 引 言
電可擦除可編程EEPROM在應(yīng)用系統(tǒng)中既可由軟件對(duì)其內(nèi)容進(jìn)行隨機(jī)讀寫,又可在芯片斷電的情況下長(zhǎng)期保存片內(nèi)信息,因此兼?zhèn)淞薘AM和ROM的基本特點(diǎn)。EEPROM有串行和并行兩大類。并行EEPROM存儲(chǔ)容量較大,讀寫方法簡(jiǎn)單,但價(jià)格較高,適用于信息量較多的場(chǎng)合。串行EEPROM結(jié)構(gòu)簡(jiǎn)單緊湊,價(jià)格低廉,但其讀寫方法復(fù)雜,存儲(chǔ)單元較小,一般用于掉電情況下需要保存或一些數(shù)據(jù)需要在線修改的場(chǎng)合,這類數(shù)據(jù)不多卻很重要,若使用常規(guī)的RAM芯片,就必須附帶一套性能可靠的掉電保護(hù)系統(tǒng),這不僅增加了線路設(shè)計(jì)的復(fù)雜性,同時(shí)也給設(shè)備的運(yùn)行和維護(hù)帶來(lái)了諸多不便。使用串行EEPROM來(lái)存儲(chǔ)這類數(shù)據(jù)是最合適不過(guò)的。尤其隨著當(dāng)今智能化儀表趨于小型化,再加上真正需要保存的以及預(yù)設(shè)的數(shù)據(jù)位、控制位、保密位并不占據(jù)太多的存儲(chǔ)空間,串行EEPROM的體積小,功耗低,硬件接口非常簡(jiǎn)單,因而越來(lái)越受到人們的重視,在智能化儀器儀表、控制裝置等領(lǐng)域得到廣泛的應(yīng)用。
24C系列串行EEPROM是目前串行EEPROM中用量畬蟮囊煥唷?4C系列串行EEPROM除具有一般串行EEPROM的體積小、功耗低、工作電壓允許范圍寬等特點(diǎn)外,還具有型號(hào)多、容量大、二總線協(xié)議、占用I/O口線少、容量擴(kuò)展配置極其靈活方便、讀寫操作相對(duì)簡(jiǎn)單等特點(diǎn)。正被廣泛用在多種數(shù)據(jù)卡、電鑰匙、智能電話、智能電表等多種智能儀器儀表當(dāng)中。
2 24C系列串行EEPROM簡(jiǎn)介
2.1 24C系列常用型號(hào)及引腳說(shuō)明
目前在我國(guó)應(yīng)用開(kāi)發(fā)中,所用的24C系列串行EEPROM主要由ATMEL、MICROCHIP、XICOR、NA-TIONAL等幾家公司提供。目前市場(chǎng)上容量最小的為24C01(1kb),最大的是24C64(64kb),生產(chǎn)工藝都是CMOS工藝,工作電壓在1.8~5.5V之間,24系列有兩種封裝形式:8腳封裝和14腳封裝。我國(guó)目前開(kāi)發(fā)用量最多的封裝形式是8腳PDIP封裝。8腳PDIP封裝的引腳定義如圖2—1所示。其中A0、A1、A2為器件地址選擇位,這3個(gè)引腳配置成不同的編碼值,在同一串行總線上最多可擴(kuò)展8片同一容量或不同容量的24C系列串行EEPROM芯片。WP(TEST)為硬件寫保護(hù)控制端(測(cè)試端),這個(gè)引腳,脈沖的上升沿將數(shù)據(jù)寫入EEPROM,下降沿將數(shù)據(jù)從EEPROM中讀出。SDA為串行數(shù)據(jù)輸入輸出端,漏極開(kāi)路驅(qū)動(dòng),容量擴(kuò)展時(shí),可以將多片24系列SDA引腳直接相連,實(shí)際使用時(shí)要加一個(gè)上拉電阻 。VCC和GND分別是電源和地。
2.2 器件地址
由于24C系列串行EEPROM是串行接口器件,則其地址、數(shù)據(jù)信息都在同一條線路上傳送,當(dāng)串行總線上掛有多個(gè)芯片時(shí),每個(gè)芯片必須具有唯一的器件地址。24C系列芯片的器件地址由7位數(shù)據(jù)位和一位讀寫位組成,即1010A2A1A0R/W,其中,高4位的1010為24系列的協(xié)議格式,是I2C總線分配給串行EEPROM的器件地址;之后的3位A2、A1、A0為可編程地址位,且256字節(jié)為一頁(yè),由器件廠商定義,供在總線上聯(lián)接多片同一型號(hào)器件時(shí)分配器件地址用;最后一位是讀寫控制位R/W,當(dāng)該位為高電平“1”時(shí),表示當(dāng)前的操作是讀操作,該位為低電平“0”時(shí),表示當(dāng)前的操作是寫操作。24C04以后的串行EEPROM芯片所需尋址位超出了8位,這樣,超出位采用了占用引腳地址(A2、A1、A0)的方式實(shí)現(xiàn)。參見(jiàn)表2—1。廠家規(guī)定,凡被尋址位占用的引腳在線路上只能作懸空處理,不能另行使用。即芯片容量大于256字節(jié)時(shí),內(nèi)部單元尋址采取了分頁(yè)處理的方法,每頁(yè)256字節(jié),而且頁(yè)尋址位包含在器件尋址字節(jié)內(nèi)。
2.3 I2C總線(Inter Intergrade Circuit Bus)的時(shí)序和數(shù)據(jù)格式
24C系列串行EEPROM嚴(yán)格遵守I2C總線的時(shí)序和數(shù)據(jù)格式。起始位、停止位由SCL高電平期間SDA的跳變決定:下跳變時(shí)啟動(dòng)I2C總線,上跳變時(shí)停止總線,見(jiàn)圖2—2所示。約定微處理器(如80C31)為主器件,EEPROM為從器件,其讀寫約定步驟為:主器件發(fā)送起始信號(hào)(S),占據(jù)串行總線,隨后發(fā)送7位從器件地址和一位讀寫方向位。從器件接收到主器件發(fā)送的器件尋址信號(hào)后,將在SDA總線上返回主器件一個(gè)確認(rèn)信號(hào)A(低電平有效),表示作好讀寫準(zhǔn)備。主器件在收到從器件的確認(rèn)信號(hào)后,向從器件發(fā)送要訪問(wèn)的數(shù)據(jù)地址(即片內(nèi)地址),從器件收到后又向主器件返回一個(gè)確認(rèn)信號(hào)A,至此EEPROM的讀寫準(zhǔn)備工作完成。若為寫EEP-ROM,則主器件向從器件發(fā)送所寫數(shù)據(jù);若是讀EEPROM ,則由主器件接收從器件發(fā)送的指定單元的8位數(shù)據(jù)。數(shù)據(jù)讀寫操作結(jié)束,主器件將發(fā)送停止信號(hào)(P)。
3 24C08在智能計(jì)長(zhǎng)儀中的應(yīng)用
3.1 智能計(jì)長(zhǎng)儀原理簡(jiǎn)介
本文介紹的智能計(jì)長(zhǎng)儀是紡織系統(tǒng)用來(lái)給織物計(jì)長(zhǎng)的裝置,采用了MCS—51系列單片機(jī)80C31作為微處理器。前向通道電路采用了霍爾傳感器來(lái)采集信號(hào),它是由磁鋼、開(kāi)關(guān)集成型霍爾元件VGN3020和電平轉(zhuǎn)換電路組成的。磁鋼粘接于轉(zhuǎn)動(dòng)部件的邊緣,霍爾元件固定于距離磁鋼1~3mm處,如圖3—1所示,當(dāng)轉(zhuǎn)動(dòng)部件轉(zhuǎn)動(dòng)時(shí),霍爾元件輸出脈沖信號(hào) ,即磁鋼在轉(zhuǎn)動(dòng)部件的同一圓周以等轉(zhuǎn)角分布的前提下,有L=πnD/Z成立,這里L(fēng)為所計(jì)長(zhǎng)度值,n為輸出脈沖數(shù)目,D為計(jì)長(zhǎng)軸的直徑,Z為磁鋼的個(gè)數(shù),即轉(zhuǎn)動(dòng)輪轉(zhuǎn)過(guò)一周,霍爾元件輸出的脈沖數(shù)。磁鋼的數(shù)目愈多,計(jì)長(zhǎng)軸的直徑愈小,計(jì)長(zhǎng)儀的分辨率愈高。單片機(jī)系統(tǒng)接收到脈沖信號(hào)后,開(kāi)始計(jì)數(shù),計(jì)數(shù)單元對(duì)脈沖數(shù)進(jìn)行累加并隨時(shí)進(jìn)行長(zhǎng)度換算,數(shù)值轉(zhuǎn)換成BCD碼后送LED顯示系統(tǒng)顯示,并完成其他的多種功能,象預(yù)置每捆長(zhǎng)度值、計(jì)滿預(yù)置值停車、按班分別計(jì)長(zhǎng)、顯示各班產(chǎn)量和三班的總產(chǎn)量等。
在該智能計(jì)長(zhǎng)儀裝置中,系統(tǒng)掉電和停機(jī)的情況下需要保存一些重要的數(shù)據(jù),例如各個(gè)班次的產(chǎn)量值、預(yù)置每捆的長(zhǎng)度值、以及累計(jì)的總產(chǎn)量值等數(shù)據(jù),這些數(shù)據(jù)是在任何情況下不能丟失的。因此采用了電可擦除的串行EEPROM24C08保存掉電或停機(jī)時(shí)的重要數(shù)據(jù);并且當(dāng)再次開(kāi)機(jī)時(shí),讀出由24C08保存的數(shù)據(jù),從斷點(diǎn)繼續(xù)計(jì)長(zhǎng)。24C08是典型的EEPROM、I2C接口器件,它的容量為1024×8Bit,需要10個(gè)尋址位,在讀/寫數(shù)據(jù)前由主器件寫入,內(nèi)部存儲(chǔ)空間共分4頁(yè),每頁(yè)256字節(jié)。24C08典型的頁(yè)寫入速度為2ms,電源電壓允許范圍為2.5V~5.5V,可以保證其掉電時(shí)寫入數(shù)據(jù)的可靠性。80C31的INT1作為系統(tǒng)掉電時(shí)電平比較測(cè)試端,控制向24C08寫入需保護(hù)數(shù)據(jù)。該智能計(jì)長(zhǎng)儀的硬件電路除了一片80C31作為微處理器,還有一片鎖存器74HC3 73,一片程序存儲(chǔ)器27C64,采用了串行口擴(kuò)展的靜態(tài)顯示器接口(設(shè)置串行口工作在移位寄存器,方式0狀態(tài)下),共使用6片串行輸入,并行輸出的移位寄存器74LS164。采用了P1口的P1.1~P1.5查詢方式獨(dú)立式按鍵電路。其原理圖如圖3—2所示。
3.2 單片機(jī)80C31與24C08的連接
上述設(shè)計(jì)的智能計(jì)長(zhǎng)儀采用了MCS—51系列的80C31作為CPU,但80C31芯片沒(méi)有I2C總線接口,對(duì)I2C總線時(shí)序分析知道,可以利用80C31的兩根I/O線實(shí)現(xiàn)I2C總線的功能。由于單片機(jī)主控器系統(tǒng)中,時(shí)鐘線僅由主控器驅(qū)動(dòng),因此可以用80C31的一根I/O線作為SCL信號(hào)線,將其設(shè)置為輸出方式,由軟件控制產(chǎn)生串行時(shí)鐘信號(hào);使用另一根I/O線作為I2C總線的數(shù)據(jù)線,由軟件控制在時(shí)鐘的低脈沖期間讀取和輸出數(shù)據(jù)。圖3—3是串行EEP-ROM和80C31的接口電路。圖中,P1.0作為串行時(shí)鐘控制線SCL,RD(P3.7)作為串行數(shù)據(jù)傳輸線。
3.3 24C08的讀寫操作
24C08有讀、寫兩類操作,寫操作分為單字節(jié)寫入模式和頁(yè)寫入模式兩種,單字節(jié)寫入一次寫入一個(gè)字節(jié)的數(shù)據(jù),頁(yè)寫入允許CPU在無(wú)需考慮周期時(shí)間的情況下快速、連續(xù)地向EEP-ROM寫入多個(gè)(對(duì)于24C08≤16個(gè))字節(jié)(一頁(yè));讀操作有當(dāng)前地址讀取模式、隨機(jī)地址讀取模式和序列地址讀取模式3種方式,當(dāng)前地址讀取靠?jī)?nèi)部數(shù)據(jù)指針獲得訪問(wèn)地址,隨機(jī)地址讀取依靠主器件向EEPROM寫入地址進(jìn)行訪問(wèn),序列讀取方式從某一地址開(kāi)始順序讀取EEPROM內(nèi)的一系列單元數(shù)據(jù),每讀取一個(gè)字節(jié)地址指針自動(dòng)加1。在智能計(jì)長(zhǎng)儀系列中,讀寫操作分別選取了頁(yè)寫入模式和當(dāng)前地址讀取模式來(lái)在掉電時(shí)保護(hù)數(shù)據(jù)和在開(kāi)機(jī)時(shí)讀取EEPROM中保護(hù)的數(shù)據(jù),多字節(jié)寫入的典型時(shí)間是2ms,其頁(yè)寫入和當(dāng)前地址讀取數(shù)據(jù)的程序框圖如圖3—4所示。
圖3-4 智能計(jì)長(zhǎng)儀讀寫邏輯框圖
4 結(jié)束語(yǔ)
串行EEPROM24C08應(yīng)用到智能計(jì)長(zhǎng)儀系統(tǒng)中,實(shí)現(xiàn)了掉電保護(hù)數(shù)據(jù),開(kāi)機(jī)讀取數(shù)據(jù)的功能,具有較好的工程實(shí)用價(jià)值。實(shí)踐證明,串行EEPROM應(yīng)用到MCS—51單片機(jī)系列中,可大大提高單片機(jī)系統(tǒng)的工作可靠性和穩(wěn)定性,且具有體積小、成本較低、功能強(qiáng)等特點(diǎn)。24系列EEPROM是目前市場(chǎng)上較流行的串行EEPROM,可廣泛用于MCS—51系列單片機(jī)組成的系統(tǒng)之中。同時(shí)隨著微電子技術(shù)和大規(guī)模集成電路的飛速發(fā)展,加之元器件的集成密度和結(jié)構(gòu)工藝的進(jìn)一步改善,使原來(lái)只能使用并行接口器件的場(chǎng)合,逐步被串行接口器件所取代,使其在串行接口器件儀器儀表、工業(yè)控制等領(lǐng)域也取得了前所未有的發(fā)展 。
?。蹍⒖嘉墨I(xiàn)]