IIC序列匯流排的組成及工作原理
I2C匯流排是PHLIPS公司推出的一種序列匯流排,是具備多主機系統所需的包括匯流排裁決和高低速器件同步功能的高效能序列匯流排。
I2C匯流排只有兩根雙向訊號線。一根是資料線SDA,另一根是時鐘線SCL。
I2C匯流排通過上拉電阻接正電源。當匯流排空閒時,兩根線均為高電平。連到匯流排上的任一器件輸出的低電平,都將使匯流排的訊號變低,即各器件的SDA及SCL都是線“與”關係
資料位的有效性規定
I2C匯流排進行資料傳送時,時鐘訊號為高電平期間,資料線上的資料必須保持穩定,只有在時鐘線上的訊號為低電平期間,資料線上的高電平或低電平狀態才允許變化。
起始和終止訊號
SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始訊號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止訊號。
起始和終止訊號都是由主機發出的,在起始訊號產生後,匯流排就處於被佔用的狀態;在終止訊號產生後,匯流排就處於空閒狀態。
接收器件收到一個完整的資料位元組後,有可能需要完成一些其它工作,如處理內部中斷服務等,可能無法立刻接收下一個位元組,這時接收器件可以將SCL線拉成低電平,從而使主機處於等待狀態。直到接收器件準備好接收下一個位元組時,再釋放SCL線使之為高電平,從而使資料傳送可以繼續進行。
主機向從機傳送資料,資料傳送方向在整個傳送過程中不變(注:有陰影部分表示資料由主機向從機傳送,無陰影部分則表示資料由從機向主機傳送。 A表示應答, A非表示非應答(高電平)。S表示起始訊號,P表示終止訊號)
主機在第一個位元組後,立即從從機讀資料
在傳送過程中,當需要改變傳送方向時,起始訊號和從機地址都被重複產生一次,但兩次讀/寫方向位正好反相
I2C匯流排協議有明確的規定:採用7位的定址位元組(定址位元組是起始訊號後的第一個位元組)。
定址位元組的位定義
D7~D1位組成從機的地址。D0位是資料傳送方向位,為“0”時表示主機向從機寫資料,為“1”時表示主機由從機讀資料
主機傳送地址時,匯流排上的每個從機都將這7位地址碼與自己的地址進行比較,如果相同,則認為自己正被主機定址,根據R/T位將自己確定為傳送器或接收器
從機的地址由固定部分和可程式設計部分組成。在一個系統中可能希望接入多個相同的從機,從機地址中可程式設計部分決定了可接入匯流排該類器件的最大數目。如一個從機的7位定址位有4位是固定位,3位是可程式設計位,這時僅能定址8個同樣的器件,即可以有8個同樣的器件接入到該I2C匯流排系統中
主機可以採用不帶I2C匯流排介面的微控制器,如80C51、AT89C2051等微控制器,利用軟體實現I2C匯流排的資料傳送,即軟體與硬體結合的訊號模擬
典型訊號模擬
為了保證資料傳送的可靠性,標準的I2C匯流排的資料傳送有嚴格的時序要求。I2C匯流排的起始訊號、終止訊號、傳送“0”及傳送“1”的模擬時序:
典型訊號模擬子程式:
(1)起始訊號
Void I2CStart(void)
{ SDA = 1;
SomeNop( );
SCL = 1;
SomeNop( );
SDA = 0;
SomeNop( );
}
(2)終止訊號
void I2cStop(void)
{
SDA = 0;
SomeNop( );
SCL = 1;
SomeNop( );
SDA = 1;
SomeNop( );
}
相關文章
- 計算機組成原理之匯流排設計計算機
- 序列匯流排的學習
- CAN匯流排原理_學習
- 學習筆記-Verilog實現IIC匯流排協議筆記協議
- 匯流排
- 事件匯流排事件
- 前端匯流排前端
- Tomcat組成與工作原理Tomcat
- 計組筆記第六章——匯流排筆記
- 事件匯流排demo事件
- javascript事件匯流排JavaScript事件
- EventBridge 事件匯流排及 EDA 架構解析事件架構
- 將Abp預設事件匯流排改造為分散式事件匯流排事件分散式
- Vue事件匯流排(EventBus)Vue事件
- Vue 事件中央匯流排Vue事件
- ARM 匯流排協議協議
- 資料匯流排模式模式
- AHB匯流排協議協議
- AXI匯流排簡介
- Can匯流排介紹
- Flutter中的事件匯流排(EventBus)Flutter事件
- Otto事件匯流排框架的使用事件框架
- 計算匯流排頻寬
- 大資料匯流排(DataHub)大資料
- I2C 匯流排
- 工作流排程工具Airflow1.8搭建及使用AI
- IIC 協議原理協議
- IP組播基礎及工作原理——1
- Azkaban工作流排程
- 深入工作流排程的核心
- 教你如何成為Oracle 10g OCP - 第十三章補充:RMAN的組成及工作原理Oracle 10g
- arduino Uno+arduino D1 實現 阿里雲物聯網控制+IIC匯流排通訊點燈UI阿里
- 模擬IIC匯流排多裝置掛載(12864OLED螢幕+GY30光照感測器)
- CPU主頻,倍頻,外頻,系統匯流排頻率,前端匯流排頻率前端
- SOFA 原始碼分析— 事件匯流排原始碼事件
- 伺服器匯流排技術伺服器
- 企業服務匯流排ESB
- 比 EventBus 更高效的事件匯流排(BusUtils)事件