找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2798|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

AT24C02串行E2PROM的工作原理與讀寫

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:104835 發(fā)表于 2016-2-1 00:58 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
       串行EEPROM中,較為典型的有ATMEL公司的AT24CXX系列和AT93CXX等系列產(chǎn)品。簡稱I2C總線式串行器件。串行器件不僅占用很少的資源和I/O線,而且體積大大縮小,同時(shí)具有工作電源寬、抗干擾能力強(qiáng)、功耗低、數(shù)據(jù)不易丟失和支持在線編程等特點(diǎn)。

     I2C總線是一種用于IC器件之間連接的二線制總線。它通過SDA(串行數(shù)據(jù)線)及SCL(串行時(shí)鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個(gè)器件:不管是單片機(jī)、存儲(chǔ)器、LCD驅(qū)動(dòng)器還是鍵盤接口。
  1I2C總線的基本結(jié)構(gòu): 采用I2C總線標(biāo)準(zhǔn)的單片機(jī)或IC器件,其內(nèi)部不僅有I2C接口電路,而且將內(nèi)部各單元電路按功能劃分為若干相對獨(dú)立的模塊,通過軟件尋址實(shí)現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個(gè)功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進(jìn)行檢測,從而實(shí)現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴(kuò)展與控制。I2C總線接口電路結(jié)構(gòu)如圖1所示。


從圖中可以看出:對于時(shí)鐘及數(shù)據(jù)傳送,串行數(shù)據(jù)I/OSDA一般需要用外部上拉電阻將其電平拉高。

  2.雙向傳輸?shù)慕涌谔匦裕?/span> 傳統(tǒng)的單片機(jī)串行接口的發(fā)送和接收一般都分別用一條線,如MCS51系列的TXDRXD,而I2C總線則根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送或接收方式。當(dāng)某個(gè)器件向總線上發(fā)送信息時(shí),它就是發(fā)送器(也叫主器件),而當(dāng)其從總線上接收信息時(shí),又成為接收器(也叫從器件)。主器件用于啟動(dòng)總線上傳送數(shù)據(jù)并產(chǎn)生時(shí)鐘以開放傳送的器件,此時(shí)任何被尋址的器件均被認(rèn)為是從器件。I2C總線的控制完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)決定。
  總線上主和從(即發(fā)送和接收)的關(guān)系不是一成不變的,而是取決于此時(shí)數(shù)據(jù)傳送的方向。SDASCL均為雙向I/O線,通過上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線功能。I2C總線的數(shù)據(jù)傳送速率在標(biāo)準(zhǔn)工作方式下為100kbit/s,在快速方式下,最高傳送速率可達(dá)400kbit/s。
  3I2C總線上的時(shí)鐘信號: 在I2C總線上傳送信息時(shí)的時(shí)鐘同步信號是由掛接在SCL時(shí)鐘線上的所有器件的邏輯完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個(gè)器件的時(shí)鐘信號下跳為低電平,將使SCL線一直保持低電平,使SCL線上的所有器件開始低電平期。此時(shí),低電平周期短的器件的時(shí)鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)。
  當(dāng)所有器件的時(shí)鐘信號都上跳為高電平時(shí),低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時(shí)開始它們的高電平期。其后,第一個(gè)結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個(gè)同步時(shí)鐘?梢,時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期最長的器件確定,而時(shí)鐘高電平時(shí)間由時(shí)鐘高電平期最短的器件確定。
  4.?dāng)?shù)據(jù)的傳送: 在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。在I2C總線技術(shù)規(guī)范中,開始和結(jié)束信號(也稱啟動(dòng)和停止信號)的定義如圖2所示。當(dāng)時(shí)鐘線SCL為高電平時(shí),數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為開始信號,起始狀態(tài)應(yīng)處于任何其他命令之前;當(dāng)SCL線處于高電平時(shí),SDA線發(fā)生低電平到高電平的跳變?yōu)?/span>結(jié)束信號。器件將處于備用方式(Standby MODE).開始和結(jié)束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認(rèn)為處于忙狀態(tài);在結(jié)束信號以后的一段時(shí)間內(nèi),總線被認(rèn)為是空閑的。

  I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個(gè)字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(R/W)讀寫控制。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個(gè)器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8(R/W)確定。
  在I2C總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個(gè)字節(jié)必須為8位,而且每個(gè)傳送的字節(jié)后面必須跟一個(gè)應(yīng)答位(ACK,ACK信號在第9個(gè)時(shí)鐘周期時(shí)出現(xiàn)。數(shù)據(jù)的傳送過程如圖3所示。每次都是先傳最高位,通常從器件在接收到每個(gè)字節(jié)后都會(huì)作出響應(yīng),即釋放SCL線返回高電平,準(zhǔn)備接收下一個(gè)數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。如果從器件正在處理一個(gè)實(shí)時(shí)事件而不能接收數(shù)據(jù)時(shí),(例如正在處理一個(gè)內(nèi)部中斷,在這個(gè)中斷處理完之前就不能接收I2C總線上的數(shù)據(jù)字節(jié))可以使時(shí)鐘SCL線保持低電平,從器件必須使SDA保持高電平,此時(shí)主器件產(chǎn)生1個(gè)結(jié)束信號,使傳送異常結(jié)束,迫使主器件處于等待狀態(tài)。當(dāng)從器件處理完畢時(shí)將釋放SCL線,主器件繼續(xù)傳送。當(dāng)主器件發(fā)送完一個(gè)字節(jié)的數(shù)據(jù)后,接著發(fā)出對應(yīng)于SCL線上的一個(gè)時(shí)鐘(ACK)認(rèn)可位,在此時(shí)鐘內(nèi)主器件釋放SDA線,一個(gè)字節(jié)傳送結(jié)束,而從器件的響應(yīng)信號將SDA線拉成低電平,使SDA在該時(shí)鐘的高電平期間為穩(wěn)定的低電平。從器件的響應(yīng)信號結(jié)束后,SDA線返回高電平,進(jìn)入下一個(gè)傳送周期。
  I2C總線還具有廣播呼叫地址用于尋址總線上所有器件的功能。若一個(gè)器件不需要廣播呼叫尋址中所提供的任何數(shù)據(jù),則可以忽略該地址不作響應(yīng)。如果該器件需要廣播呼叫尋址中提供的數(shù)據(jù),則應(yīng)對地址作出響應(yīng),其表現(xiàn)為一個(gè)接收器。
  5.總線的競爭解決:總線上可能掛接有多個(gè)器件,有時(shí)會(huì)發(fā)生兩個(gè)或多個(gè)主器件同時(shí)想占用總線的情況。例如,多單片機(jī)系統(tǒng)中,可能在某一時(shí)刻有兩個(gè)單片機(jī)要同時(shí)向總線發(fā)送數(shù)據(jù),這種情況叫做總線競爭。I2C總線具有多主控能力,可以對發(fā)生在SDA線上的總線競爭進(jìn)行仲裁,其仲裁原則是這樣的:當(dāng)多個(gè)主器件同時(shí)想占用總線時(shí),如果某個(gè)主器件發(fā)送高電平,而另一個(gè)主器件發(fā)送低電平,則發(fā)送電平與此時(shí)SDA總線電平不符的那個(gè)器件將自動(dòng)關(guān)閉其輸出級?偩競爭的仲裁是在兩個(gè)方面進(jìn)行的。首先是地址位的比較,如果主器件尋址同一個(gè)從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用I2C總線上的信息進(jìn)行仲裁,因此不會(huì)造成信息的丟失。
  6. I2C總線接口器件: 目前在儀器儀表、移動(dòng)通信、密碼控制等領(lǐng)域采用I2C總線接口器件已經(jīng)比較普遍。另外,通用的I2C總線接口器件,如帶I2C總線的單片機(jī)、RAM、ROM、A/D、D/A、LCD驅(qū)動(dòng)器等器件,也越來越多地應(yīng)用于計(jì)算機(jī)及自動(dòng)控制系統(tǒng)中。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表