I2C學習記錄

I2C(Inter-Integrated Circuit)總線是由PHILIPS公司開發的兩線式串行總線,用於連接微控制器及其外圍設備。是微電子通信控制領域廣泛採用的一種總線標準。

通過串行數據(SDA)線和串行時鐘 (SCL)線在連接到總線的器件間傳遞信息。通過串行數據(SDA)線和串行時鐘 (SCL)線在連接到總線的器件間傳遞信息。每個器件都有一個唯一的地址識別(無論是微控制器——MCU、LCD 驅動器、存儲器或鍵盤接口),而且都可以作爲一個發送器或接收器(由器件的功能決定)。除了發送器和接收器外,器件在執行數據傳輸時也可以被看作是主機或從機(見表1)。主機是初始化總線的數據傳輸併產生允許傳輸的時鐘信號 的器件。此時,任何被尋址的器件都被認爲是從機。

   2條雙向串行線,一條數據線SDA,一條時鐘線SCL。
   SDA傳輸數據是大端傳輸,每次傳輸8bit,即一字節。
   支持多主控(multimastering),任何時間點只能有一個主控。
   總線上每個設備都有自己的一個addr,共7個bit,廣播地址全0.
   系統中可能有多個同種芯片,爲此addr分爲固定部分和可編程部份,細節視芯片而定,看datasheet。

	發送/接收一個數據:數據的發送和接收都是在SCL爲低電平的時候發生,因爲SCL爲高電平時已給了開始和結束信號。發送數據時,當數據準備讀入時,將SCL線暫時拉高(SCL爲高時,SDA無法改變狀態),保持一段時間然後拉低(同你圖中的TDH,數據輸出保持時間),這時數據則發送完畢到SDA上。接收則與之大同小異。當SDA線上有數據過來時,先將SCL拉高,建立好時間,然後拉低,數據則被讀入。(關於如何被髮出以及如何被讀入則是芯片做的事,我們不用管,只需記住SCL拉低,數據發出/讀入)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章