IIC協議的配置心得

2021-10-01 01:34:31 字數 799 閱讀 1019

眾所周知,iic是一種廣泛用於主機與從機通訊的協議。其大致分為「寫」操作「讀」操作,都是通過一根資料線(位寬1bit)和一根時鐘線傳輸,所有的資料都是乙個位元乙個位元傳輸,在資料線上,「寫」和「讀」是共用的。但為了程式設計方便,規定以位元組(8bit)的形式來描述通訊過程。

「讀」操作的前四步跟「寫」操作一摸一樣,但第五步並不是讀資料,而是要告訴從機,「我要從你的暫存器中讀取資料」。此處就涉及到「位元組方式程式設計」的問題了。

在一開始主機往從機傳送位址的時候,一般都是乙個或兩個位元組,前7位數字都是規定好的,只有最後一位是根據實際情況來設定的,協議規定,「1」代表「讀」,「0」代表「寫」,所以對於「讀」操作來說,第四步之後,需要重新向從機傳送位址,並將最後一位設定為「1」,表示「讀」,之後的過程就類似於「寫」操作了。即 傳送暫存器位址-接受應答位-讀取暫存器資料-(主機)傳送應答位(可以連續讀取多個暫存器的值)。

而如果每次只配置乙個暫存器,等當前暫存器配置完成,可以輸出乙個「完成」訊號,告知主機,可以配置下乙個暫存器了,這樣的話,除錯的時候只需檢查相應的「完成」訊號是否按照預先設定結果即可判斷是否出錯,還可以快速定位到相應出錯的暫存器位置。

實際實現過程如下:用**編寫乙個只用來配置乙個暫存器的模組,再編寫乙個控制模組,決定當前配置的暫存器和下乙個將要配置的暫存器,「完成」訊號可以是控制模組的乙個觸發訊號,只要檢測到「完成」訊號,即開始配置下乙個暫存器,直到完成整個配置過程。

乙個硬體小白的成長之路,戰戰兢兢,穩步向前,與君共勉! (也許寫的沒有亮點,但希望各位能以寬容的眼光看待,在下感激不盡。)

IIC匯流排協議

i2c匯流排進行資料傳送時,時鐘訊號為高電平期間,資料線上的資料必須保持穩定,只有在時鐘線上的訊號為低電平期間,資料線上的高電平或低電平狀態才允許變化。起始和終止訊號 scl線為高電平期間,sda線由高電平向低電平的變化表示起始訊號 scl線為高電平期間,sda線由低電平向高電平的變化表示終止訊號。...

IIC匯流排協議

iic匯流排狀態 讀寫時序時的匯流排狀態 iic 即inter integrated circuit 積體電路匯流排 這種匯流排型別是由飛利浦半導體公司在八十年代初設計出來的一種簡單 雙向 二線制 同步序列匯流排 兩根訊號線 sda,scl 其中sda為雙向的資料訊號線,scl為時鐘訊號線 主從裝置...

IIC協議解析

1 概述 i2c inter integrated circuit bus 積體電路匯流排,該匯流排由 nxp 原 philips 公司設計,多用於主控制器和從器件間的主從通訊,在小資料量場合使用,傳輸距離短,任意時刻只能有乙個主機等特性。經常 i2c和 spi介面被認為指定是一種硬體裝置,但其實這...