前面我們概述過一些常見的通訊協議,本文著重講講關于IIC協議。
IIC(Inter-Integrated Circuit)的硬件連接
1. 對于IIC主機總線上是可以掛1個或者多個從機設備。
2. 每個從機是通過其各自的地址來識別。
IIC的數據和控制線(SDA和SCL)
1. SCL(Serial clock),時鐘線,用于同步數據傳輸時序,是一個方波,由主機來驅動,其決定了數據傳輸的快慢。
2. SDA(Serial data),數據線,用于傳輸數據,
IIC尋址
1. 通常對于一個7bit的地址,包含1個額外的讀寫位。
2. 對于IIC總線上的每一個設備都有一個獨立的地址。
3. 重復的地址會導致通訊錯誤。
4. 對于一些設備會有PIN管腳用來配置不同的IIC地址。
IIC通訊
START,起始位,由主機初始化,SCL高的時候拉低SDA。
STOP,停止位,SCL高的時候,主機釋放SDA PIN腳。
ACK(acknowledge),每一次傳輸一個單字節或者8bits之后,會跟一個SCL的脈沖,這個acknowledge信號是從機應答主機的信號,表示ACK信號之前的那個字節通訊是成功的。
如下是一個標準的IIC寫時序:
啟動>MSB->...LSB->ACK->停止
對于有效數據傳輸:
1. 在時鐘信號SCL為高的整個脈寬內SDA必須保持穩定。
2. 只有在SCL脈沖為低的時候,SDA才被允許高低切換,如果SDA在SCL為高的時候變化,則會被認為是Start/Stop。
IIC的電路設計
1. 對于3.4Mbps速率以下的IIC,是漏極開路(Open Drain)的結構,此時需要外部上拉電阻,上拉電阻的選擇需要考慮上拉之后的rise/fall的時間是否滿足其時序要求同時也需要考慮功耗。 上拉電阻越大,功耗越小,但rise/fall時間越長,會影響通訊; 上拉電阻越小,功耗越大,但rise/fall時間短,會降低通訊的誤碼率。
2. 對于3.4Mbps速率以上的IIC,其是推挽(Push Pull)的結構,其rise/fall的時間就完全取決于主機/從機設備內部的push/pull的能力。 需要注意的是,不同設備之間的通訊需要選擇同樣結構的IIC。
-
電路設計
+關注
關注
6673文章
2451瀏覽量
204167 -
IIC
+關注
關注
11文章
300瀏覽量
38311 -
管腳
+關注
關注
1文章
226瀏覽量
32025 -
通訊協議
+關注
關注
10文章
273瀏覽量
20351 -
SDA
+關注
關注
0文章
124瀏覽量
28127
發布評論請先 登錄
相關推薦
評論