最近發現嵌入式的面試經常會被問到i2c協議,所以今天好好的學習總結下。目前i2c幾乎所有晶元都留有i2c介面,也那怪這麼多面試會被問到。下面我們下來了解一波i2c的硬體結構,如下圖所示:
i2c的硬體結構包含兩根線一根是資料線(sda)和一根時鐘線(scl)外部上拉,採取一主多從的模式:一台主機與多個從裝置相連,那麼怎麼將資料傳送/接收到指定的主機/從機的呢?我們再來看兩張圖:
start回應
資料1回應
資料2回應
p停止位
上圖黑色為主機傳送,紅色為從機傳送
首先需要主機傳送開始訊號(start)i2c規定只有在時鐘線為低電平期間允許資料線變化,如果在時鐘線為高電平期間資料線產生下降沿訊號即為通訊開始標誌。接下來主機會傳送七位從機位址和一位的讀寫訊號,若對應的從機位址存在,時鐘線的控制權交給從機,從機確認可以接收後會傳送第九位的ask回應訊號表示目標位址可以接收,接下來主機會一直傳送八位資料然後等待從機回應去人接受,當主機覺得傳送內容已完成會主動在時鐘線為高電平期間產生乙個上公升沿訊號給資料線表示通訊結束。以上為主機傳送從機接收,接下來我們來看看從機傳送主機接受的模式。
start回應
資料1
回應資料2 回應
p停止位
與上面相似也是現有主機發出開始訊號,然後傳送從機位址和一位讀訊號,從機回應一位確認訊號後,不同的地方開始了,接下來是從機控制時鐘線向主機傳送資料,然後主機接收到會有一位的回應訊號,接下來就這樣一直迴圈讀取,直到主機覺得資料接收完成以後傳送停止訊號停止接收。
快速了解I2C
iic inter integrated circuit 匯流排是一種由 philips公司開發的兩線式序列匯流排,用於連線 微控制器及其外圍裝置。它是由資料線 sda和時鐘 scl構成的序列匯流排,可傳送和接收資料。在 cpu與被控 ic之間 ic與 ic之間進行雙向傳送,高速 iic匯流排一般可...
i2c通訊的詳細講解 I2C匯流排簡介
本文介紹了內部積體電路 aka i2c 序列通訊協議的基本特性和突出優點。元件之間的通訊 通訊協議 毫無疑問,電子系統的共同特徵是需要在兩個或三個或十個單獨的元件之間共享資訊。工程師已經開發出許多標準協議,可以幫助不同的晶元成功通訊 當您在微控制器或數字訊號處理器的功能列表中 通訊 下面對縮略語時,...
i2c匯流排時序
一心想踏入linux device driver的世界,想著i2c匯流排相對於usb等其他匯流排較為簡單,就以i2c作為切入點,希望可以逐步理解ldd的設計思想,並能理解其裝置模型的概念。在此對近期於i2c匯流排及驅動原始碼的理解做備忘,以免徒勞。平台友善之臂s70 tiny6410 cpusams...