17.EEPROM(IIC總線)

IIC串行總線的組成及工作原理

採用串行總線技術可以使系統的硬件設計大大簡化、系統的體積減小、可靠性提高。同時,系統的更改和擴充極爲容易。
常用的串行擴展總線有: IIC (Inter IC BUS)總線、單總線(1-WIRE BUS)、SPI(Serial Peripheral Interface)總線及Microwire/PLUS等。
IIC總線是具備多主機系統所需的包括總線裁決高低速器件同步功能的高性能串行總線。
IIC總線只有兩根雙向信號線。一根是數據線SDA,另一根是時鐘線SCL
在這裏插入圖片描述
IIC總線通過上拉電阻接正電源。當總線空閒時,兩根線均爲高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關係
在這裏插入圖片描述
每個接到IIC總線上的器件都有唯一的地址。主機與其它器件間的數據傳送可以是由主機發送數據到其它器件,這時主機即爲發送器。由總線上接收數據的器件則爲接收器。
在多主機系統中,可能同時有幾個主機企圖啓動總線傳送數據。爲了避免混亂, IIC總線要通過總線仲裁,以決定由哪一臺主機控制總線。
在80C51單片機應用系統的串行總線擴展中,我們經常遇到的是以80C51單片機爲主機,其它接口器件爲從機的單主機情況。 (開發板是以51爲主機,AT24C02)
IIC總線的數據傳送
一、數據位的有效性規定
IIC總線進行數據傳送時,時鐘信號爲高電平期間,數據線上的數據必須保持穩定,只有在時鐘線上的信號爲低電平期間,數據線上的高電平或低電平狀態才允許變化。
在這裏插入圖片描述
二、起始和終止信號
SCL線爲高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線爲高電平期間,SDA線由低電平向高電平的變化表示終止信號。
在這裏插入圖片描述
起始和終止信號都是由主機發出的,在起始信號產生後,總線就處於被佔用的狀態;在終止信號產生後,總線就處於空閒狀態。
連接到IIC總線上的器件,若具有IIC總線的硬件接口,則很容易檢測到起始和終止信號。
接收器件收到一個完整的數據字節後,有可能需要完成一些其它工作,如處理內部中斷服務等,可能無法立刻接收下一個字節,這時接收器件可以將SCL線拉成低電平,從而使主機處於等待狀態。直到接收器件準備好接收下一個字節時,再釋放SCL線使之爲高電平,從而使數據傳送可以繼續進行。
三、數據傳送格式
(1)字節傳送與應答
每一個字節必須保證是8位長度。數據傳送時,先傳送最高位(MSB),每一個被傳送的字節後面都必須跟隨一位應答位(即一幀共有9位)。
在這裏插入圖片描述
由於某種原因從機不對主機尋址信號應答時(如從機正在進行實時性的處理工作而無法接收總線上的數據),它必須將數據線置於高電平,而由主機產生一個終止信號以結束總線的數據傳送。
如果從機對主機進行了應答,但在數據傳送一段時間後無法繼續接收更多的數據時,從機可以通過對無法接收的第一個數據字節的“非應答”通知主機,主機則應發出終止信號以結束數據的繼續傳送。
當主機接收數據時,它收到最後一個數據字節後,必須向從機發出一個結束傳送的信號。這個信號是由對從機的“非應答”來實現的。然後,從機釋放SDA線,以允許主機產生終止信號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章