久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機I2C總線介紹

單片機I2C總線介紹

作者: 時間:2016-11-23 來源:網絡 收藏
I2C是一種串行總線的外設接口,它采用同步方式串行接收或發送信息,兩個設備在同一個時鐘下工作。I2C總線只用兩根線:串行數據SDA(Serial Data)、串行時鐘SCL(Serial Clock)。
由于I2C只有一根數據線,因此其發送信息和接收信息不能同時進行。信息的發送和接收只能分時進行。I2C串行總線工作時傳輸速率最高可達400K bit/s。
I2C總線上的所有器件的SDA線并接在一起,所有器件的SCL線并接在一起,且SDA線和SCL線必須通過上拉電阻連接到正電源
I2C總線的數據傳輸協議要比SPI總線復雜一些,因為I2C總線器件沒有片選控制線,所以I2C總線數據傳輸的開始必須由主器件產生通信的開始條件(SCL高電平時,SDA產生負跳變);通信結束時,由主器件產生通信的結束條件(SCL高電平時,SDA產生正跳變)。
SDA線上的數據在SCL高電平期間必須保持穩定,否則會被誤認為開始條件或結束條件,只有在SCL低電平期間才能改變SDA線上的數據。I2C總線的數據傳輸波形圖如下圖所示。

I2C應用實例
AT24C系列為美國ATMEL公司推出的串行COMS型E2PROM,具有功耗小,寬電壓范圍等優點。下圖為AT24C系列E2PROM的引腳圖。圖中A0、A1、A2為器件地址引腳,Vss為地,Vcc為正電源,WP為寫保護,SCL為串行時鐘線,SDA為串行數據線。AT24C系列E2PROM采用I2C總線,I2C總線上可掛接多個接口器件,在I2C總線上的每個器件應有唯一的器件地址,按I2C總線規則,器件地址為7位二進制數,它與一位數據方向位構成一個器件尋址字節。器件尋址字節的最低位(D0)為方向位(讀/寫),最高4位(D7~D4)為器件型號地址(不同的I2C總線接口器件的型號地址由廠家給定,AT24C系列E2PROM的型號地址都為1010);其余3位(D3~D1)與器件引腳地址A2A1A0相對應。器件地址格式:
1010 A2A1A0。

對于E2PROM的片內地址,AT24C01和AT24C02由于芯片容量可用一個字節表示,故讀寫某個單元前,先向E2PROM寫入一個字節的器件地址,再寫入一個字節的片內地址。而AT24C04、AT24C08、AT24C16分別需要9位、10位和11位片內地址,所以AT24C04把器件地址中的A0作為片內地址的最高位,AT24C08把器件地址中的A1A0作為片內地址的最高兩位,AT24C16把器件地址中的A2A1A0作為片內地址的最高三位。凡在系統中把器件的引腳地址用作片內地址后,該引腳在電路中不得使用,做懸空處理。AT24C32、AT24C64、AT24C128、AT24C256和AT24C512的片內地址采用兩個字節。
AT24C系列E2PROM的讀寫操作原理
下列讀寫操作中SDA線上數據傳送狀態標記注釋如下:
Start為啟動信號(SCL為高電平,SDA產生負跳變),由主機發送。
Stop為結束信號(SCL為高電平,SDA產生正跳變),由主機發送。
AddressByte、AddreeeByte H、AddreeeByte L為地址字節,指定片內某單元地址,由主機發送。
data為數據字節,由數據發送方發送。
0 為肯定應答信號,由數據接收方發送。
1 為否定應答信號,由數據接收方發送。
主機控制數據線SDA時,在SCL高電平期間必須保持SDA線上的數據穩定,否則會被誤認為對從機的起始條件或結束條件。主機只能在SCL低電平期間改變SDA線上的數據。主機寫操作期間,用SCL的上升沿寫入數據;主機讀操作期間,用SCL的下降沿讀出數據。

從AT24C系列AT24C01~AT24C16中讀n個字節的數據格式:

從AT24C系列AT24C32~AT24C512中讀n個字節的數據格式:

向AT24C系列AT24C01~AT24C16中寫n個字節的數據格式(n<=頁長,且n個字節不能跨頁):

向AT24C系列AT24C32~AT24C512中寫n個字節的數據格式(n<=頁長,且n個字節不能跨頁):


應答信號
I2C總線數據傳送時,每成功地傳送一個字節數據后,接收器都必須產生一個應答信號。應答的器件在第9個時鐘周期時將SDA線拉低,表示其已經收到一個8位數據。
I2C器件在接收到起始信號和從器件地址之后響應一個應答信號,如果器件已選擇了寫操作,則在每接收一個8位字節之后響應一個應答信號。
I2C器件工作在讀模式時,在發送一個8位數據后釋放SDA線(SDA置為高電平)并監視一個應答信號,一旦接收到主器件的應答信號,I2C器件則繼續發送數據,如果主器件沒有發送應答信號(發送非應答信號,即SDA為高電平),器件停止傳送數據且等待一個停止信號。


關鍵詞: I2C總線單片

評論


技術專區

關閉