I2C总线中8bit和10bit有什么区别
I2C總線是由Philips公司開發的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。
I2C總線工作原理
SDA(串行數據線)和SCL(串行時鐘線)都是雙向I/O線,接口電路為開漏輸出.需通過上拉電阻接電源VCC.當總線空閑時.兩根線都是高電平,連接總線的外同器件都是CMOS器件,輸出級也是開漏電路.在總線上消耗的電流很小,因此,總線上擴展的器件數量主要由電容負載來決定,因為每個器件的總線接口都有一定的等效電容.而線路中電容會影響總線傳輸速度.當電容過大時,有可能造成傳輸錯誤.所以,其負載能力為400pF,因此可以估算出總線允許長度和所接器件數量。
主器件用于啟動總線傳送數據,并產生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件.在總線上主和從、發和收的關系不是恒定的,而取決于此時數據傳送方向。如果主機要發送數據給從器件,則主機首先尋址從器件,然后主動發送數據至從器件,最后由主機終止數據傳送;如果主機要接收從器件的數據,首先由主器件尋址從器件.然后主機接收從器件發送的數據,最后由主機終止接收過程。在這種情況下.主機負責產生定時時鐘和終止數據傳送。
I2C總線的數據傳輸
字節格式
發送到SDA 線上的每個字節必須為8 位,每次傳輸可以發送的字節數量不受限制。每個字節后必須跟一個響應位。首先傳輸的是數據的最高位(MSB),如果從機要完成一些其他功能后(例如一個內部中斷服務程序)才能接收或發送下一個完整的數據字節,可以使時鐘線SCL 保持低電平,迫使主機進入等待狀態,當從機準備好接收下一個數據字節并釋放時鐘線SCL 后數據傳輸繼續。
應答響應
數據傳輸必須帶響應,相關的響應時鐘脈沖由主機產生。在響應的時鐘脈沖期間發送器釋放SDA 線(高)。在響應的時鐘脈沖期間,接收器必須將SDA 線拉低,使它在這個時鐘脈沖的高電平期間保持穩定的低電平。
通常被尋址的接收器在接收到的每個字節后,除了用CBUS 地址開頭的數I2C總線數據傳輸和應答據,必須產生一個響應。當從機不能響應從機地址時(例如它正在執行一些實時函數不能接收或發送),從機必須使數據線保持高電平,主機然后產生一個停止條件終止傳輸或者產生重復起始條件開始新的傳輸。如果從機接收器響應了從機地址,但是在傳輸了一段時間后不能接收更多數據字節,主機必須再一次終止傳輸。這個情況用從機在第一個字節后沒有產生響應來表示。從機使數據線保持高電平,主機產生一個停止或重復起始條件。
如果傳輸中有主機接收器,它必須通過在從機發出的最后一個字節時產生一個響應,向從機發送器通知數據結束。從機發送器必須釋放數據線,允許主機產生一個停止或重復起始條件。
時鐘同步
所有主機在SCL線上產生它們自己的時鐘來傳輸I2C總線上的報文。數據只在時鐘的高電平周期有效,因此需要一個確定的時鐘進行逐位仲裁。
時鐘同步通過線與連接I2C 接口到SCL 線來執行。這就是說SCL 線的高到低切換會使器件開始數它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL 線保持這種狀態直到到達時鐘的高電平。但是如果另一個時鐘仍處于低電平周期,這個時鐘的低到高切換不會改變SCL 線的狀態。因此SCL 線被有最長低電平周期的器件保持低電平。此時低電平周期短的器件會進入高電平的等待狀態。
當所有有關的器件數完了它們的低電平周期后,時鐘線被釋放并變成高電平。之后,器件時鐘和SCL線的狀態沒有差別,而且所有器件會開始數它們的高電平周期。首先完成高電平周期的器件會再次將SCL線拉低。這樣產生的同步SCL 時鐘的低電平周期由低電平時鐘周期最長的器件決定,而高電平周期由高電平時鐘周期最短的器件決定。
?
i2c技術性能:
工作速率有100K和400K兩種;
支持多機通訊;
支持多主控模塊,但同一時刻只允許有一個主控;
由數據線SDA和時鐘SCL構成的串行總線;
每個電路和模塊都有唯一的地址;
每個器件可以使用獨立電源
I2C總線中8bit和10bit介紹與區別
經常有用戶問我,使用USB2XXX的USB2IIC功能的時候,從機地址應該怎么傳遞的問題,這個問題的根源在于不同的I2C從機廠商采用了不同的I2C總線地址約定,導致在說I2C總線的時候總是容易搞混,本文主要針對8位和10位I2C總線地址進行詳細的說明。
8位地址
一些廠商在提供從機地址的時候說的是包含了讀寫位的8bit地址,比如他說寫地址為0x92,讀地址為0x93,如下圖所示
這種情況下,你只需要將這個地址的前7bit提取出來,然后傳入USB2XXX的接口函數即可,比如為0x49。
還有一種方式可以判斷廠商提供的地址是7bit模式地址還是8bit地址模式的地址,7bit地址模式下,地址的取值范圍在0x07到0x78之間,若超過了這個范圍,那么這個地址可能就是8bit地址。
10位尋址
I2C總線的10bit尋址和7bit尋址是兼容的,這樣就可以在同一個總線上同時使用7bit地址和10bit地址模式的設備,在進行10bit地址傳輸時,第一字節是一個特殊的保留地址來指示當前傳輸的是10bit地址。
10bit地址尋址
在使用USB2XXX傳輸10bit地址模式的時候,只需要在初始化的時候配置為10bit地址模式,然后再調用讀寫數據函數的時候傳入正確的10bit地址即可。
總結
以上是生活随笔為你收集整理的I2C总线中8bit和10bit有什么区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU - 6287 口算训练 (质因子
- 下一篇: 简约大气PPT模板