1. 程式人生 > 其它 >FPGA學習筆記_IIC協議

FPGA學習筆記_IIC協議

技術標籤:FPGA學習筆記fpga/cpld串列埠通訊

FPGA學習筆記

IIC協議

1. IIC協議概念
2. IIC協議原理
	2.1. 起始位,結束位
	2.2. 器件地址
	2.3. 儲存器地址
	2.4. 應答位
	2.5. 讀寫時序

1. IIC協議概念
IIC: inter integrated circuit BUS, 積體電路匯流排,是一種序列通訊匯流排,多為主從結構。 一般用在小資料亮場合,傳輸距離短。
特點

  • 連線簡單:物理層上,IIC協議只有2根匯流排線路:SCL(序列時鐘線), SDA(序列資料線)
  • 雙向通訊:兩根線可以完成資料的傳入和傳出。
  • 多主多從:一個IIC總線上可以連線多個主機,多個從機。同一時刻,只能有一個主機向匯流排發起傳輸。
  • 傳輸速度快:在標準模式下,100kbit/s,快速模式下400kbit/s,高速模式下3.4Mbit/s。主從裝置之間以位元組為單位雙向資料傳輸。
  • 唯一ID:總線上的每一個器件有唯一ID。只有總線上的傳輸與該器件的ID匹配時,器件才對總線上的傳輸做出相應的迴應。不會產生衝突。

2. IIC協議原理

  • 2.1 起始位,結束位
    在這裡插入圖片描述
    起始位:SCL訊號為高電平時,SDA出現一個下降沿 開始傳輸資料
    停止位: SCL高電平,SDA上升沿 停止傳輸資料
    匯流排空閒狀態:SCL高電平;SDA高電平;
    SCL高電平:SDA資料穩定;SCL低電平:SDA資料變化

  • 2.2. 器件地址
    在這裡插入圖片描述
    傳輸順序:從高位到低位
    Eg. Chip select bits: 3’b100

    讀:1010_100_1
    寫:1010_100_0

  • 2.3. 儲存器地址
    在這裡插入圖片描述
    長度:1或2個位元組(與器件的儲存單元數有關)
    位置:主機收到ACK後,主機發出儲存地址

  • 2.4. 應答位
    在這裡插入圖片描述
    當傳送方(圖:主機)將8位資料傳送完成後,等待接收方(圖:從機)傳送一個應答訊號,表示是否已經接收資料。0:應答,1:非應答。(應答訊號在8位資料傳送完後緊接著的時鐘週期(圖:#9))

  • 2.5. 讀寫時序

  1. 讀操作:總線上主機從指定的從機的指定的儲存地址讀取一個(多個)位元組資料的完整時序在這裡插入圖片描述在這裡插入圖片描述主機操作過程:
    ① 主機設定 SDA 為輸出;
    ② 主機發起起始訊號;
    ③ 主機傳輸器件地址位元組,其中最低位為 0,表明為寫操作;
    ④ 主機設定 SDA 為三態門輸入,讀取從機應答訊號;

    ⑤ 讀取應答訊號成功,主機設定 SDA 輸出,傳輸 1 位元組地址資料;
    ⑥ 主機設定 SDA 為三態門輸入,讀取從機應答訊號;
    ⑦ 讀取應答訊號成功,主機設定 SDA 輸出,對於兩位元組地址段器件,傳輸低位元組地址數
    ⑧ 據;對於 1 位元組地址段器件,無此步驟;
    ⑨ 主機發起起始訊號;
    ⑩ 主機傳輸器件地址位元組,其中最低位為 1,表明為讀操作;
    ⑪ 設定 SDA 為三態門輸入,讀取從機應答訊號;
    ⑫ 讀取應答訊號成功,主機設定 SDA 為三態門輸入,讀取 SDA 總線上的一個位元組的數
    ⑬ 據;
    ⑭ 產生無應答訊號(高電平)(無需設定為輸出高電平,因為匯流排會被自動拉高);
    ⑮ 主機產生 STOP 位,終止傳輸。

  2. 寫操作:總線上主機寫一個((多個))指定資料到指定從機的指定出去地址的完整時序在這裡插入圖片描述在這裡插入圖片描述
    主機操作過程:
    ① 主機設定 SDA 為輸出;
    ② 主機發起起始訊號;
    ③ 主機傳輸器件地址位元組,其中最低位為 0,表明為寫操作;
    ④ 主機設定 SDA 為三態門輸入,讀取從機應答訊號;
    ⑤ 讀取應答訊號成功,主機設定 SDA 為輸出,傳輸 1 位元組地址資料;
    ⑥ 主機設定 SDA 為三態門輸入,讀取從機應答訊號;
    ⑦ 讀取應答訊號成功,對於兩位元組地址段器件,傳輸地址資料低位元組,對於 1 位元組地址段器件,主機設定 SDA 為輸出,傳輸待寫入的資料;
    ⑧ 設定 SDA 為三態門輸入,讀取從機應答訊號,對於兩位元組地址段器件,接著步驟 9;對於 1 位元組地址段器件,直接跳轉到步驟 11;
    ⑨ 讀取應答訊號成功,主機設定 SDA 為輸出,傳輸待寫入的資料(對於兩位元組地址段器件);
    ⑩ 設定 SDA 為三態門輸入,讀取從機應答訊號(兩位元組地址段器件);
    ⑪ 讀取應答訊號成功,主機產生 STOP 位,終止傳輸。


參考資料:《FPGA系統設計與驗證實戰指南》

【注】:個人學習筆記,如有錯誤,望不吝賜教,這廂有禮了~~~