IIC 原理講解


  IIC具體是什么這里我就不細說了,只收集一些關於IIC的原理。

IIC總線優點是節約總線數,穩定,快速, 是目前芯片制造上非常

流行的一種總線,大多數單片機已經片內集成了IIC總線接口,無

需用戶自己模擬,只需配置相關寄存器即可使用。

  IIC總線有兩條串行線,其一是時鍾線SCK,其二是數據線SDA

  在尋常的應用之中,單片機常常作為主機,外圍器件作為從機使用。

  每一個從機器件都擁有唯一的一個地址,這個地址在芯片手冊上會

有詳細的介紹,一般還需要自行配置芯片管腳上的高低電平,來實現確

定從機地址的目的。硬件設計上,SCK線和SDA線通過典型的4.7K電阻

進行上拉,保證兩條線空閑時保持高電平狀態。

  IIC主要由一下幾部分組成(代碼可以看上一篇文章):

    1.開始信號;

    2.結束信號;

    3.應答信號;

    4.等待應答;

    5.數據發送;

    6.數據接收;

    7.非應答信號

  SDA上的數據在SCK高電平期間必須穩定,SDA上的數據在SCK期間才可以被更改。

 

 

起始信號:在SCK高電平期間,SDA一個下降沿,即構成了IIC的起始信號。

終止信號:在SCK高電平期間,SDA一個上升沿,即構成了IIC的終止信號。

 

  IIC的一些時序就如上圖所示,信號的收發結合時序一起看更加容易理解。

下面就說一些IIC的通信過程。

  1.發送啟動信號;

  2.發送尋址地址(8位組成:前7位是從機地址,最后一位是讀寫確認位,

eg:1010101 0/1 ,若最后一位為0,則表示主機發送數據,若為1表示主機

接收數據。)主機發送地址時,總線上的每個從機都將這7位地址碼(這7位

地址碼前4位是固定的,后3位是可編程的  eg: 1010 xxx)與自己的地址進行

比較,若相同,則認為自己正在被主機尋址,根據R/T位將自己確定為發送器

和接收器;

  3.等待應答;

  4.發送 / 讀取 數據;

  5.發送停止信號。

 

在IIC總線的一次數據傳輸中,可以有一下幾種組合方式:

  1.主機向從機發送數據,數據傳送方向在整個傳遞過程中不變:

  

  2.主機在第一個字節后,立即從從機讀數據(傳輸方向不變):

  

  3.在傳送過程中,當需要改變傳遞方向時,起始信號和從機地址都

     被重復一次產生一次,但兩次讀/寫方向位正好相反:

  

注:主機做的都是編程控制,從機做的都是自主控制,也可以說是硬件控制,

如主機給應答信號是編程控制,但是從機給應答信號是硬件控制,我們只需

要檢查在SDA為高期間,SCL保持低電平一些時間,即可判定從機給了主機

應答信號。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM