中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解IIC協議的IIC總線規范

發布時間:2021-11-23 09:26:56 來源:億速云 閱讀:192 作者:柒染 欄目:互聯網科技

這篇文章將為大家詳細講解有關如何理解IIC協議的IIC總線規范,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

1 IIC協議的FPGA實現

1.1 IIC 總線規范簡介

1) IIC 總線特性介紹

??在現代電子產品開發過程中,為了簡化系統,提高系統的可靠性,縮短產品開發周期,增加硬件構成的靈活性,推出了一種高效、可靠、方便的 IIC串行總線。二線制的 IIC 串行總線使得各電路單元之間只需要簡單的兩線連接,總線接口都集成在器件中,可實現電路系統的模塊化、標準化設計。在 IIC 總線上,各單元電路相互之間沒有其它連線,常用的單元電路基本上與系統電路無關,極易形成自己的標準化、模塊化設計。

2) IIC 標準模式總線規范

?IIC總線可通過串行數據(SDA)和串行時鐘(SCL)線與總線上的任何一個器件連接,每 個器件都有一個唯一的地址,都可以作為一個發送器或接收器。各器件在執行數據傳輸時也都可被看做是一個主機或從機。

  • 發送器 本次傳送屮發送數據(不包括地址和命令)到總線的器件;

  • 接收器 本次傳送中從總線接收數據(不包括地址和命令)的器件;

  • 主機 初始化發送、產生時鐘信號和終止發送的器件,它可以是發送器或接收器, 主機通常是微控制器;

  • 從機 被主機尋址的器件,它可以是發送器或接收器。

??IIC總線是一個多主機的總線,可以連接多個能控制總線的器件到總線。當兩個以上能控制總線的器件同時發生傳輸時,只能有一個器件能真正控制總線而成為主機,并使報文不被破壞,這個過程叫做仲裁。與此同時,能使多個能控制總線的器件產生同步的時鐘信號。
??SDA 和 SCL 都是雙向線路,連接到總線的器件的輸出級必須是漏極開路或集電極開路,該器件通過一個電流源或上拉電阻連接到正的電源電壓,實現線與功能。當總線空閑時,這兩條線路都是高電平。IIC總線上數據的傳輸速率在標準模式下可達100kb/s,在快速模式下可達400kb/s,在高速模式下可達3.4Mb/s。連接到總線的接口數量由總線電容是400pF的限制決定。

3) IIC總線電路設計要點

如何理解IIC協議的IIC總線規范
????????????圖 2 1 I2C總線電路設計要點

4) 位傳輸

??IIC 總線上每傳輸一個數據位必須產生一個時鐘脈沖。
??(1) 數據的有效性。SDA 線上的數據必須在時鐘線 SCL 的高電平周期保持穩定, 數據線的電平狀態只有在 SCL 線的時鐘信號是低電平時才能改變,如圖 2.11 所示。在標準模式下,高低電平寬度必須大于等于 4.7us。
如何理解IIC協議的IIC總線規范
??????????????圖2 2 數據有效性
如何理解IIC協議的IIC總線規范
??????????????圖2 3 IIC總線控制的位傳輸
??(2) 起始和停止條件。在 IIC 總線屮,唯一違反上述數據有效性的是起始(S)和停止§條件,如圖2 4 所示。
??起始條件(重復起始條件):在 SCL 線是高電平時,SDA 線從高電平向低電平切換。
??停止條件:在 SCL 線是高電平時,SDA 線由低電平向高電平切換。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ?? ?? ??圖2 4 起始位和停止條件
??起始和停止條件一般由主機產生。起始條件是作為一次傳送的開始,在起始條件后,總線被認為處于忙的狀態。停止條件是作為一次傳送的結束,在停止條件的某段時間后,總線被認為再次處于空閑狀態。重復起始條件既作為上次傳送的結束,也作為下次傳送的開始。

5) 數據傳輸

??(1) 字節格式。發送到 SDA 線上的每個字節必須為 8 位。每次傳輸可以發送的字節數量不受限制,每個字節后必須跟一個應答位。首先傳輸的是數據的最高位(MSB), 如圖2 5所示。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ?? ?? ??圖2 5 IIC總線的數據傳輸
?? (2) 應答。相應的應答時鐘脈沖由從機產生。在應答的時鐘脈沖期間,發送器釋放 SDA線(高),與此同時,接收器必須將 SDA 線拉低,使它在這個時鐘脈沖的高電平期間保持穩定的低電平,如圖2 5屮時鐘信號SCL 的第 9 位。
??一般說來,被尋址匹配的從機或可繼續接收下一字節的接收器將產生一個應答。若作為發送器的主機在發送完一個字節后沒有收到應答位(或收到一個非應答位),或作為接收器的主機沒有發送應答位(或發送一個非應答位),那么,主機必須產生一個停止條件或重復起始條件來結束木次傳輸。若從機(接收器)不能接收更多的數據字節,將不產生這個應答位 :主機(接收器)在接收完最后一個字節后不產生應答, 通知從機(發送器)數據結束。

6) 仲裁與時鐘發生

??(1) 同步。時鐘同步是通過各個能產生時鐘的器件“線與” 連接到 SCL 線上來實現的,各器件可能都有自己獨立的時鐘 各個時鐘信號的頻率、周期、相位和占空比可能都不相同,由于 “線與” 的結果,在 SCL 線上產生的實際時鐘的低電平寬度由低電平持續時間最長的器件決定,他高電平寬度由高電平持續時間最短的器件決定。
??(2) 仲裁。當總線空閑時,多個主機同時啟動傳輸,可能檢測到不止一個主機滿足起始條件,而同時獲得主機權,這樣就要進行仲裁。當SCL 線是高電平時,仲裁在 SDA 線發生,當其他主機發送低電平時,發送高電平的主機將丟失仲裁,因為總線上的電平與它自己的電平不同。
仲裁可以持續多位,它的第一個階段是比較地址位,如果每個主機都嘗試尋址相同的器件,仲裁會繼續比較數據位,或者比較響應位。因為 IIC 總線的地址和數據信息由贏得仲裁的主機決定,所以在仲裁過程中不會丟失信息。
??(3) 用時鐘同步機制作偽握手。器件可以快速接收數據字節,但可能需要更多時間保存接收到的字節或準備一個要發送的字節。此時,這個器件可以使 SCL 線保持低電平, 迫使與之交換數據的器件進入等待狀態,直到準備好下一字節的發送或接收 。

7) 傳輸協議

??(1) 尋址字節。主機產生起始條件后,發送的第一個字節為尋址字節。該字節的頭 7位(高7 位)為從機地址,最低位(LSB)決定了報文的方向,“0”表示主機寫信息到從機, “1”表示主機讀從機中的信息,如圖 2.14 所示。當發送了一個地址后,系統中的每個器件都將頭 7 位與它自已的地址比較。如果一樣,器件會應答主機的尋址,至于是從機-接收器還是從機-發送器都由R / W 位決定。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? 圖2 6 起始條件后的笫一個字節
??從機地址由一個固定的部分和一個可編程的部分構成。例如,某些器件有 4 個固定的位(高4位)和 3 個可編程的地址位(低 3 位),那么同一總線上共可以連接 8 個相同的器件。IIC 總線委員會協調 IIC 地址的分配,保留了 2 組 8 位地址(0000XXX 和 1111XXX), 這 2組地址的用途可查閱有關資料。
??(2) 傳輸格式。主機產生起始條件后,發送一個尋址字節,收到應答跟著就是數椐傳輸,數據傳輸一般由主機產生的停止位來終止。但是,如果主機仍希望在總線上通信,它可以產生重復起始條件(Sr)且尋址另一個從機,而不是首先產一個停止條件。在這種傳輸屮,可能有不同的讀/寫格式結合。
??數據的傳輸格式有以下三種 :
??① 主機-發送器發送數據到從機-接收器,見圖 2.15, 尋址字節的 “R/W” 位為 0,數據傳輸的方向不改變。
??② 尋址字節后,主機-接收器立即讀從機-發送器中的數據,見圖 2.16,尋址字節的R/W 位為1。在第一次從機產生響應時, 主機-發送器變成主機-接收器,從機-接收器變成從機-發送器。之后,數據由從機發送,主機接收,每個應答由主機產生,時鐘信號 CLK仍由主機產生。若主機要終止本次傳輸,則發送一個非應答信號( /A /A),接著主機產生停止條件。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ?? ??圖2 7 主機-發送器發送數據
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ??圖2 8 尋址字節后,主機-接收器立即讀數據
??③ 復合格式,見圖 2.17。傳輸改變方向的時候,起始條件和從機地址都會被重復, 但 位取反。如果主機-接收器發送一個重復起始條件,它之前應該要發送一個非應答信號( /A )。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ?? ?? ?? ??圖2 9 復合格式
??默認下,設備地址為八位寬,因此設備地址也稱為設備字節。設備地址的高四位,即[7…4]記錄硬件 ID,接續三位即 [3…1] 則記錄硬件地址,最后一位則是設備的訪問方向。結果如表2 1所示:
如何理解IIC協議的IIC總線規范
??所謂硬件 ID 就是 IIC 設備的辨識 ID,硬件 ID 會隨著廠商還有設備的種類而有所改變。開發板上的 IIC 設備是某廠商的 IIC 儲存器,即 24LC04,硬件 ID 為 4’b1010。至于硬件地址就是 IIC 設備在總線上辨識地址,默認下為 3 位,即同類的 IIC 設備在同一條 IIC總線上僅允許占據 8 個而已。然而,開發板上的 24LC04 為 3’b000。最后的訪問方向位則是主機用來通知從機,此刻的訪問目的是讀還是寫。
??總結來說,設備地址除了訪問方向以外,前七位一般都是固定的,例如常見的開發板的 IIC 儲存器 24LC04,設備地址就是 8’b1010_000_×。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ?? ??圖2 10 24LC04 的寫操作(主機視角)
??IIC 總線的時序,感覺上一組完成的操作宛如是一堆拼圖。如圖2 10所示,那是 24LC04的寫操作,時序先填上為起始位,再來是設備地址,余下是應答位,隨之是數據地址,然后又是應答位,接著是寫如數據,再一次應答位,最后掛上結束位以示一次性的寫操作已經完成。那么,寫操作的經過如下所示:
(一) 主機發送起始位;
(二) 主機發送設備地址(寫);
(三) 等待從機應答;
(四) 主機發送數據地址;
(五) 等待從機應答;
(六) 主機發送數據;
(七) 等待從機應答;
(八) 主機發送結束位。
??稍微注意一下設備地址的最低位。由于此刻是寫操作,所以設備地址的訪問方向是“寫”,所以訪問方向位設置為 0。
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ??圖2 11 24LC04 的讀操作(主機視角)
??圖2 11是 24LC04 的讀時序,同樣它也是由一堆“拼圖”組合而成。相較寫操作,讀操作不僅多了許多“拼圖”,而且途中也改變訪問方向。那么,讀操作的經過如下所示:
(一) 主機發送起始位;
(二) 主機發送設備地址(寫);
(三) 等待從機應答;
(四) 主機發送數據地址;
(五) 主機發送起始位;
(六) 主機發送設備地址(讀);
(七) 等待從機應答;
(八) 主機讀取數據;
(九) 從機沒有應答(主機無視應答);
(十) 主機發送結束位。
??IIC總線上數據的傳輸速率在標準模式下可達100kb/s,在快速模式下可達400kb/s,在高速模式下可達3.4Mb/s。實驗十六會以 400Khz 的速率作為標準。連接到總線的接口數量由總線電容是400pF的限制決定。在此,實驗會以 400Khz 的速率作為標準。
??在進行IIC時序分析時,必須要考慮芯片的時序,見下表:
如何理解IIC協議的IIC總線規范
?? ?? ?? ?? ?? ?? ?? ??圖2 12 芯片 24LC04 的時序表
??IIC 總線是一種串行傳輸協議,既有時鐘信號 SCL,還有數據信號 SDA。Clock Frequency表示 SCL 信號的頻率, Clock High Time 表示 SCL 信號保持高電平所需的最小時間,Clock Low Time 則表示 SCL 信號保持低電平所需的最小的時間。
??至于 Rise Time 與 Fall Time 表示, SCL 信號還有 SDA 信號由高變低或者由低變高時所需的最小時間,即上山與下山時間。Hold Time 與 Setup Time 是用來評估數據是否成功打入寄存器的時序參數,算是典型中的典型。Setup Time 表示建立時間,即數據寫入寄存器之前所需的穩定時間;反之, Hold Time 則是保持時間,即數據打入寄存器之后所需的穩定時間。只要兩者得到滿足,那么數據的寄存活動就得到確保。
??Start 是 IIC 總線的起始位, Stop 是 IIC 總線的結束位, Data 是 IIC 總線的數據位,為了確保三者成功寫入從機, Setup Time 與 Hold Time 必須得到滿足。Ouput Valid FromClock 是關系數據位的時序參數,還有 Bus Free Time 是關系結束位的時序參數。此外, 為了簡化時序,筆者將各種參數的實際時間轉換為 50Mhz 量化以后的結果。將上表進行解讀如下:
如何理解IIC協議的IIC總線規范

Clock Frequency,既是頻率也是速率,在此是 400Khz。
Clock High Time,既 SCL 信號保持高電平所需的最小時間。
Clock Low Time,既 SCL 信號保持低電平所需的最小時間。
Rise Time,既信號由底變高所需最大的時間。
Fall Time,既信號又高變低所需最小的時間。
Start Hold Time,既起始位所需最小的保持時間。
Start Setup Time,既起始位所需最小的建立時間。
Data Input Hold Time,既數據位所需最小的保持時間。
Data Input Setup Time,既數據位所需最小的建立時間。?
Stop Setup Time,既結束位所需的最小保持時間。
Ouput Valid From Clock,既數據位經時鐘沿觸發以后的有效時間。
Bus Free Time,既釋放總線的最小時間。

關于如何理解IIC協議的IIC總線規范就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

iic
AI

姜堰市| 大渡口区| 景宁| 长乐市| 沈阳市| 吴忠市| 墨竹工卡县| 毕节市| 济宁市| 浑源县| 恭城| 胶南市| 定边县| 静安区| 慈利县| 甘谷县| 辽阳市| 江北区| 华蓥市| 英吉沙县| 普陀区| 怀来县| 前郭尔| 大港区| 许昌县| 新乡市| 平阴县| 桐乡市| 榆林市| 高青县| 汉沽区| 钦州市| 华安县| 江城| 象州县| 东阳市| 合阳县| 霍邱县| 离岛区| 壶关县| 广东省|