新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Coo1Runner-Ⅱ器件I2C接口協(xié)議

Coo1Runner-Ⅱ器件I2C接口協(xié)議

作者: 時間:2011-12-22 來源:網(wǎng)絡 收藏
  這里將說明I2C的主要通信協(xié)議,更詳細的說明和時序圖請參考I2C規(guī)范文檔。
  I2C總線包括兩個信號線,即SDA和SCL。所有通信都發(fā)生在這兩個信號線上,連接到同一條總線上的設備數(shù)目受限于最大的總線電容。SDA和SCL都是雙向的,通過上拉電阻連接到系統(tǒng)電源??偩€空閑時,這兩個總線保持高電平。在總線上的I2C設備的輸出數(shù)據(jù)階段,必須是漏極開路或是集電極開路以實現(xiàn)線與功能。

  每個設備都有唯一的地址,可以工作在發(fā)送模式或接收狀態(tài),也可以被配置為主設備或從設務。方設備啟動一次總線數(shù)據(jù)傳輸,并產(chǎn)生時鐘信號,總線上任何其他設備都會被視為從設備。I2C協(xié)議同時還具有仲裁機制,如果多臺主設備同時申請控制總線,只有一臺設備成功獲取總線而不會丟失數(shù)據(jù)。

  一次數(shù)據(jù)傳輸開始于一個START命令,結(jié)束于一個STOP命令。SDA在時鐘SOL低電平時變化,高電平時保持穩(wěn)定。START被定義為當SOL為高電平時,SDA由高到低的跳變;STOP被定義為當SOL為高時,SDA由低到高的跳變,如圖所示。

I2C總線的—次數(shù)據(jù)傳輸



  如圖 I2C總線的—次數(shù)據(jù)傳輸

  每個數(shù)據(jù)包包含8位數(shù)據(jù),后跟一個ACK位。因此一次數(shù)據(jù)傳輸共需要9個SOL,首先傳輸MSB。發(fā)送設備在ACK周期釋放SDA,接收設備必須在過程中驅(qū)動SDA為低。如果從設備沒有將SDA驅(qū)動為低,則表明其不能夠接收數(shù)據(jù),主設備將產(chǎn)生一個STOP狀態(tài)以退出本次傳輸;如果主設備沒有將SDA驅(qū)動為低,則表明從設備發(fā)送的是最后一個字節(jié)。標準I2C通信包含4部分,即起始位、從地址、數(shù)據(jù)傳輸和停止位。I2C協(xié)議規(guī)定了兩種地址格式,即7位和10位,本設計為7位。起始位之后是7位地址,第8位是讀寫位,“0”為寫;“1”為讀。僅僅與地址相匹配的從設備在第9個SOL發(fā)一個ACK到SDA,將SDA拉低。

  一旦地址匹配成功,主從之間數(shù)據(jù)傳輸就會建立,讀/寫位決定數(shù)據(jù)傳輸方向。主設備發(fā)一個STOP命令終止一次傳輸。然而,主設備在沒有發(fā)出STOP之前也可能產(chǎn)生一個START信號,此情況被定義為重復開始(Repeat START)。


評論


相關推薦

技術專區(qū)

關閉