色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

I2C通信協(xié)議:了解I2C Primer、 PMBus和SMBus

星星科技指導員 ? 來源:ADI ? 作者:Mary Grace Legaspi 和 ? 2023-06-15 15:29 ? 次閱讀

Mary Grace LegaspiEric Peňa

I2C,即Inter-Integrated Circuit,是一種常用的串行通信協(xié)議,用于在器件之間——特別是兩個或兩個以上不同電路之間建立通信。I2C Primer是最常用的I2C。本文將介紹I2C Primer的基本特性和標準,并重點說明在通信實現(xiàn)過程中如何正確使用該協(xié)議。從I2C的基本原理出發(fā),我們將介紹其變體子集——系統(tǒng)管理總線(SMBus)和電源管理總線(PMBus)——的可用性及二者的區(qū)別。這三種協(xié)議各有專門的功能,旨在滿足不同的客戶需求。

為何重要?

I2C 有利于設計人員在系統(tǒng)的眾多節(jié)點之間建立簡單、雙向、靈活的通信。I2C僅使用兩條雙向線來發(fā)送和接收信息,從而降低了復雜性。它還允許設計人員配置多個主節(jié)點系統(tǒng)IC之間的通信。I2C對管理系統(tǒng)和電源的開發(fā)人員也很有利,讓他們能夠在盡可能短的時間內(nèi)創(chuàng)建高質(zhì)量的產(chǎn)品

"溝通(通信)對那些致力于溝通(通信)的人有用。"

—John Powell

通信協(xié)議在組織設備之間通信時扮演著重要角色。它基于系統(tǒng)要求而以不同方式進行設計。此類協(xié)議具有明確的、為實現(xiàn)成功通信而協(xié)商一致的規(guī)則。

如果您曾經(jīng)使用LED顯示器、傳感器甚至加速度計模塊之類的東西構(gòu)建過系統(tǒng),那么您很可能已經(jīng)使用過I2C。I2C支持多個節(jié)點連接單個主器件和多個主器件連接多個節(jié)點的特性。如果您希望物盡其用,讓一個微控制器將數(shù)據(jù)記錄到單個存儲卡,或向單個LCD顯示文本,則此特性非常有用。

除了最常用的I2C Primer,I2C還有兩個變體,分別專注于系統(tǒng)和電源應用,稱為系統(tǒng)管理總線(SMBus)和電源管理總線(PMBus)。

根據(jù)定義,Inter-Integrated Circuit (I2C)——也稱為Inter IC——是一種硬件通信協(xié)議,它通過一條多主器件、多節(jié)點、串行通信總線進行同步通信。同步通信意味著兩個(或兩個以上)交換數(shù)據(jù)的器件共享一條公共時鐘線。I2C廣泛用于將低速外圍IC連接到處理器和微控制器。I2C總線由飛利浦公司設計,它讓位于同一電路板上的器件之間可以輕松通信。

I2C Primer

接口

使用一條串行數(shù)據(jù)(SDA)線、一條串行時鐘(SCL)線和一個公共接地來承載所有通信,最大程度地減少連接。

wKgZomSKvsWAdY77AAA276SHfaM213.png

圖 1. 集成電路彼此直接通信

每個I2C器件有兩條線路:

SDA是供主器件和節(jié)點發(fā)送和接收數(shù)據(jù)的線路。

SCL是承載時鐘信號的線路。SCL總是由I2C主器件生成。規(guī)范對時鐘信號的低相位和高相位有最短周期要求。

I2C總線僅使用兩條雙向線路:每個器件的SDA和SCL用于簡單的IC間通信。

wKgaomSKvsuAHH6BAAAmfYIDK-Q788.png

圖 2. I2C 上拉電阻連接

硬件最重要的注意是在SDA和SCL上加入上拉電阻。I2C器件通過開集或開漏引腳連接到總線,將線路拉低。當沒有數(shù)據(jù)傳輸時,I2C總線處于高電平空閑狀態(tài);線路被被動拉高。要傳輸數(shù)據(jù),須切換線路,即先拉低再釋放(又變?yōu)楦唠娖剑?shù)據(jù)位在時鐘下降沿傳輸。

開漏輸出需要一個上拉電阻(圖2中的Rp)才能正確輸出高電平。上拉電阻連接在輸出引腳和高電平所需的輸出電壓(圖2中的VDD)之間。

對于VCC和VDD (5 V)的典型值,4700 Ω是最常用的上拉電阻值。

作為參考,屏蔽2 AWG雙絞線電纜的電容范圍為100 pF?m至240pF?m。因此,I2C鏈路的最大總線長度約為1米(100 kBaud時)或10米(10 kBaud時)。非屏蔽電纜的電容通常要小得多,但只能用在以其他方式加以屏蔽的外殼內(nèi)。

表1總結(jié)了I2C的關(guān)鍵特性。

特性 規(guī)格
導線 2
最大速度 標準模式 = 100 kbps
快速模式 = 400 kbps
高速模式 = 3.4 Mbps
超快速模式 = 5 Mbps
同步或異步? 同步
串行或并行? 串行
最大主器件數(shù) 無限制
最大節(jié)點數(shù) 1008

理論上,尋址模式的最大節(jié)點數(shù)為27或210,但有16個地址保留用于特殊用途。

I2C 是同步的,因此位的輸出通過主器件和節(jié)點之間共享的時鐘信號與位的采樣同步。時鐘信號始終由主器件控制。

保留I2C節(jié)點地址

有16個保留I2C地址。這些地址對應于以下兩種模式之一:0000 XXX或1111 XXX。表2顯示了為特殊目的而保留的I2C地址。

I2C 節(jié)點地址 R/W 位功能描述
0000 000 0 廣播地址
0000 000 1 起始字節(jié)
0000 001 X CBUS 地址
0000 010 X 保留用于不同總線格式
0000 011 X 保留供未來使用
0000 1XX X 高速模式主代碼
1111 1XX X 保留供未來使用
1111 0XX X 10位節(jié)點地址

I2C 工作原理

I2C 數(shù)據(jù)在消息中傳輸,消息被分解為數(shù)據(jù)幀。讀寫協(xié)議包含地址幀(即節(jié)點的二進制地址)和另一個數(shù)據(jù)幀,后者包含所傳輸?shù)臄?shù)據(jù)、開始和停止條件、重復起始位、讀?寫位以及每個數(shù)據(jù)幀之間的應答?不應答位。

時序規(guī)格表

I2C 時序表也很重要,因為工程師利用它可以設計出與總線要求兼容的IC。每個數(shù)據(jù)速率都有自己的時序規(guī)格,主器件和節(jié)點必須遵守該規(guī)格才能正確傳輸數(shù)據(jù)。

表3顯示了時序規(guī)格表上給出的符號和參數(shù)

符號 參數(shù) 單位
fSCL SCL 時鐘頻率 kHz
tHD(STA) (重復)起始條件的保持時間 μs
tLOW 引腳的低電平周期 μs
tHIGH 引腳的高電平周期 μs
tSU(STA) 重復起始條件的建立時間 μs
tHD(DAT) 數(shù)據(jù)保持時間 μs
tSU(DAT) 數(shù)據(jù)建立時間 ns
tr SDA 信號的上升時間 ns
tf SDA 信號的下降時間 ns
tSU(STO) 停止條件的建立時間 μs

wKgaomSKva2AXtIxAAKlT9uRF0Y863.jpg

圖 3. I2C 消息

I2C 傳輸子協(xié)議

總線上的傳輸要么是讀操作,要么是寫操作。讀取和寫入?yún)f(xié)議建立在一系列子協(xié)議之上,例如起始和停止條件、重復起始位、地址字節(jié)、數(shù)據(jù)傳輸位和應答?不應答位。

起始條件

顧名思義,起始條件總是在傳輸開始時出現(xiàn),并由主器件發(fā)起。這樣做是為了喚醒總線上的空閑節(jié)點器件。SDA線從高電平切換到低電平,然后SCL線從高電平切換到低電平。參見圖4。

重復起始條件

在不發(fā)出停止條件的情況下,起始條件可以在傳輸期間重復。這是一種特殊情況,稱為重復起始,用于改變數(shù)據(jù)傳輸方向、重復嘗試傳輸、同步多個IC,甚至控制串行存儲器。參見圖5。

地址幀

地址幀包含7位或10位序列,具體取決于可用性(參見數(shù)據(jù)手冊)。參見圖6。

不像SPI,I2C沒有節(jié)點選擇線路,因此它需要另一種方法來讓節(jié)點知道數(shù)據(jù)正向其發(fā)送,而不是向另一個節(jié)點發(fā)送。這是通過尋址來實現(xiàn)的。地址幀始終是新消息中起始位之后的第一幀。

主器件將其想要與之通信的節(jié)點地址發(fā)送到其所連接的每個節(jié)點。然后,每個節(jié)點將主器件所發(fā)送的地址與其自己的地址進行比較。如果地址匹配,它便向主器件發(fā)送一個低電壓ACK位。如果地址不匹配,則節(jié)點什么也不做,SDA線保持高電平。

讀?寫位

地址幀的最后一位告知節(jié)點,主器件是想要將數(shù)據(jù)寫入其中還是從中接收數(shù)據(jù)。如果主器件希望將數(shù)據(jù)發(fā)送到節(jié)點,則讀?寫位處于低電平。如果主器件請求從節(jié)點得到數(shù)據(jù),則該位處于高電平。參見圖7。

ACK?NACK位

消息中的每一幀后面都跟隨一個應答?不應答位。如果成功接收到一個地址幀或數(shù)據(jù)幀,則接收器件會向發(fā)件者返回一個ACK位。

圖例:在下面的圖中,白色框表示節(jié)點,藍色框表示主器件。參見圖8。

wKgZomSKvtWAfXMSAABB_V_8eIw988.png

圖 4. 起始條件

wKgaomSKva-AFqKZAAJkITHAEY8543.jpg

圖 5. 重復起始條件

wKgZomSKvbCAH8QvAAF8llb_0iA474.jpg

圖 6. 地址幀

wKgaomSKvbCAShBaAAGphAjta9g595.jpg

圖 7. 讀 / 寫位

wKgZomSKvbGAJg4CAAHEOy6MH0A982.jpg

圖 8. 應答 / 不應答位

數(shù)據(jù)幀

主器件檢測到來自節(jié)點的ACK位之后,就準備發(fā)送第一數(shù)據(jù)幀。數(shù)據(jù)幀總是8位長,并以MSB優(yōu)先方式發(fā)送。每個數(shù)據(jù)幀之后緊接著一個ACK?NACK位,以驗證該幀是否已成功接收。主器件或節(jié)點(取決于誰發(fā)送數(shù)據(jù))必須收到ACK位,然后才能發(fā)送下一數(shù)據(jù)幀。參見圖9。

停止條件

發(fā)送完所有數(shù)據(jù)幀之后,主器件可以向節(jié)點發(fā)送停止條件以停止傳輸。停止條件是指SCL線上的電壓從低電平變?yōu)楦唠娖剑缓笤赟CL線保持高電平的情況下,SDA線上的電壓從低電平變?yōu)楦唠娖健?/p>

在SCL線從低電平切換到高電平后,SDA線從低電平切換到高電平。參見圖10。

I2C傳輸步驟:寫入

有關(guān)寫入單個數(shù)據(jù)的I2C傳輸?shù)氖纠垍⒁妶D11。

第1步

主器件將SDA線從高電平切換到低電平,然后將SCL線從高電平切換到低電平,以將起始條件發(fā)送到每個相連的節(jié)點。

第2步

主器件將其想要與之通信的節(jié)點的7位或10位地址以及寫操作位發(fā)送給每個節(jié)點。

例如,7位地址為0x2D,加上寫操作位(相當于0),結(jié)果將是0x5A。

第3步

每個節(jié)點將主器件所發(fā)送的地址與其自己的地址進行比較。如果地址匹配,節(jié)點便將SDA線拉低一位的時間,以返回一個ACK位。如果來自主器件的地址與節(jié)點自己的地址不匹配,則節(jié)點讓SDA線保持高電平不變。

在SCL的第九個脈沖期間拉低SDA線路可以發(fā)送ACK位,保持浮空高電平則為NACK。

第4步

主器件發(fā)送或接收數(shù)據(jù)幀。

第5步

傳輸完每個數(shù)據(jù)幀之后,接收器件再向發(fā)送者返回一個ACK位,以確認成功接收該幀。

第6步

若要停止數(shù)據(jù)傳輸,主器件應將SCL切換為高電平,然后將SDA切換為高電平,從而發(fā)送停止條件。

wKgaomSKvvWAUrmeAADnpgvCT9w880.png

圖 11.寫入單個位置的 I2C 傳輸?shù)臄?shù)據(jù)手冊示例

wKgaomSKvbaAGB90AAMfFfMDe6g570.jpg

圖 12. 讀取單個位置的 I2C 傳輸?shù)臄?shù)據(jù)手冊示例

I2C數(shù)據(jù)傳輸步驟:讀取

第1步

主器件將SDA線從高電平切換到低電平,然后將SCL線從高電平切換到低電平,以將起始條件發(fā)送到每個相連的節(jié)點。

第2步

主器件將其想要與之通信的節(jié)點的7位或10位地址以及寫操作位發(fā)送給每個節(jié)點。

例如,7位地址為0x2D,加上寫操作位(相當于0),結(jié)果將是0x5A。

第3步

每個節(jié)點將主器件所發(fā)送的地址與其自己的地址進行比較。如果地址匹配,節(jié)點便將SDA線拉低一位的時間,以返回一個ACK位。如果來自主器件的地址與節(jié)點自己的地址不匹配,則節(jié)點讓SDA線保持高電平不變。

第4步

經(jīng)過初始啟動、尋址和應答之后,主器件已經(jīng)知道目標節(jié)點及指向的地址,因此某些器件具有重復起始條件來清理事務。

注意:僅用于閱讀目的!

第5步

主器件將其想要與之通信的節(jié)點的7位或10位地址以及讀操作位發(fā)送給每個節(jié)點。

例如,7位地址為0x2D,加上讀操作位(相當于1),結(jié)果將是0x5B。

第6步

每個節(jié)點將主器件所發(fā)送的地址與其自己的地址進行比較。如果地址匹配,節(jié)點便將SDA線拉低一位的時間,以返回一個ACK位。如果來自主器件的地址與節(jié)點自己的地址不匹配,則節(jié)點讓SDA線保持高電平不變。

第7步

得到ACK位之后,主器件接收來自節(jié)點的數(shù)據(jù)幀。

第8步

傳輸完每個數(shù)據(jù)幀之后,主器件再向發(fā)送者返回一個ACK位,以確認成功接收該幀,或者如果讀取請求已經(jīng)完成,則主器件返回NACK。

第9步

若要停止數(shù)據(jù)傳輸,主器件應將SCL切換為高電平,然后將SDA切換為高電平,從而發(fā)送停止條件。

單個主器件和多個節(jié)點

I2C使用尋址,所以單個主器件可以控制多個節(jié)點。使用7位地址可提供128 (27)個唯一地址。使用10位地址很罕見,但可提供1024 (210)個唯一地址。要將多個節(jié)點連接到單個主器件,請使用4.7 kΩ上拉電阻連接這些節(jié)點,并將SDA和SCL線連接到VCC。

多個主器件和多個節(jié)點

多個主器件可以連接到單個節(jié)點或多個節(jié)點。如果同一系統(tǒng)中有多個主器件,那么當兩個主器件爭著在同一時間通過SDA線發(fā)送或接收數(shù)據(jù)時,就會出現(xiàn)問題。

為了解決這個問題,每個主器件在傳輸消息之前,需要檢測SDA線是低電平還是高電平。

如果SDA線為低電平,則說明總線由另一個主器件控制,該主器件應等待。如果SDA線為高電平,則它可以安全傳輸消息。要將多個主器件連接到多個節(jié)點,請按照圖13所示,使用4.7 kΩ上拉電阻將SDA和SCL線連接到VCC。

wKgaomSKvwiAEi-sAACs-GZRIIw966.png

圖 13. 連接多個節(jié)點的多個主器件

仲裁

若干I2C多主器件可以連接到同一I2C總線并同時運行。通過不斷監(jiān)視SDA和SCL有無起始和停止條件,它們可以確定總線是否空閑。如果總線正忙,主器件將延遲掛起的I2C傳輸,直至停止條件指示總線再次空閑。

但是,可能發(fā)生兩個主器件同時開始傳輸?shù)那闆r。在傳輸過程中,主器件不斷監(jiān)視SDA和SCL。如果其中一個檢測到SDA為低電平,而它應該為高電平,則該主器件將認為另一主器件處于活動狀態(tài),因而立即停止傳輸。此過程稱為仲裁。兩個主器件都會生成起始位并繼續(xù)各自的傳輸。

如果主器件恰好選擇相同的邏輯電平,則什么也不會發(fā)生。

一旦主器件嘗試施加不同的邏輯電平,則將信號拉低的主器件將被宣布為獲勝者;失敗者將檢測到邏輯不匹配,因而放棄傳輸。

請花點時間理解一下這種安排的簡單性和有效性:

獲勝者繼續(xù)傳輸而不中斷——沒有數(shù)據(jù)損壞,沒有驅(qū)動器爭用,不需要重新啟動事務。

理論上,失敗者可以在仲裁過程中監(jiān)視節(jié)點地址,如果恰好是被尋址的節(jié)點,它可以做出適當?shù)捻憫?/p>

如果相互競爭的主器件均請求同一節(jié)點的數(shù)據(jù),則仲裁過程不會不必要地中斷任一事務——不會檢測到不匹配,節(jié)點會將其數(shù)據(jù)輸出到總線,多個主器件可以接收到數(shù)據(jù)。

時鐘延展

也稱為時鐘同步。

注意:I2C規(guī)范沒有為時鐘延展規(guī)定任何超時條件——也就是說,任何器件都可以根據(jù)需要保持SCL。

在I2C通信協(xié)議中,時鐘速度和信號始終由主器件產(chǎn)生。I2C主器件產(chǎn)生的信號提供主器件和節(jié)點連接之間的同步。

在某些情況下,節(jié)點或子節(jié)點不是以全狀態(tài)工作,在接收主器件生成的時鐘之前,需要減慢速度。這是通過一種稱為"時鐘延展"的機制來實現(xiàn)的。

在時鐘延展期間,為了降低總線速度,允許節(jié)點壓低時鐘。而在主器件方面,在其變?yōu)楦唠娖綘顟B(tài)后,必須回讀時鐘信號。然后,它必須等待,直至線路達到高電平狀態(tài)。

帶寬

雖然時鐘延展是一種常見做法,但它對帶寬有影響。使用時鐘延展時,共享總線的總帶寬可能會顯著降低。即使使用這種技術(shù),總線性能仍然必須可靠且快速。有必要考慮使用時鐘延展的估計影響,尤其是在多個器件共享I2C總線的情況下。

wKgaomSKvbeAcpjxAADeaXHxGSw506.jpg

圖 14. 微控制器數(shù)據(jù)手冊

通過時鐘延展,I2C節(jié)點器件可以強制主器件進入等待狀態(tài)。當節(jié)點器件需要更多時間來管理數(shù)據(jù)時,例如存儲接收到的數(shù)據(jù)或準備發(fā)送另一字節(jié)的數(shù)據(jù)時,它可能會執(zhí)行時鐘延展。這通常發(fā)生在節(jié)點器件接收并確認收到一個字節(jié)的數(shù)據(jù)之后。

哪些I2C節(jié)點器件需要時鐘延展?

是否需要時鐘延展取決于節(jié)點器件的功能。這里有兩個例子:

處理器件(如微處理器或微控制器)可能需要額外的時間來處理中斷,接收和管理數(shù)據(jù),以及執(zhí)行適當?shù)墓δ堋?/p>

較簡單的器件(如EEPROM)不在內(nèi)部處理數(shù)據(jù),因此不需要時鐘延展來執(zhí)行任何功能。

I2C 數(shù)據(jù)手冊示例概述

不同公司和制造商采用不同方法來創(chuàng)建數(shù)據(jù)手冊。圖13顯示了一個簡單的數(shù)據(jù)手冊示例和基本I2C細節(jié),包括寄存器電子規(guī)格。

wKgZomSKvbiAHpVXAABXLV9L-BY316.jpg

圖15. 微控制器存儲器映射

表4顯示了最常用的I2C寄存器。名稱和描述可能因數(shù)據(jù)手冊而異,但功能和用法相同。

名稱 描述
I2C_ADDR1 主器件地址字節(jié) 1
I2C_ADDR2 主器件地址字節(jié) 2
I2C_BYT 起始字節(jié)
I2C_ID 節(jié)點地址器件ID
I2C_MCTL 主器件控制
I2C_MRX 主器件接收數(shù)據(jù)
I2C_SCTL 節(jié)點控制
I2C_SRX 節(jié)點接收
I2C_STAT 主器件和節(jié)點FIFO狀態(tài)

I2C的創(chuàng)建可能因使用情況而異。表5顯示了基本I2C驅(qū)動程序API要求的示例。

主器件 節(jié)點
初始化
發(fā)送處理程序 發(fā)送處理程序
接收處理程序 接收處理程序
事件中斷
錯誤中斷

SMBus

眾所周知,SMBus可用于需要對參數(shù)進行關(guān)鍵監(jiān)控的應用。它最常見的應用是計算機主板和嵌入式系統(tǒng)。對于溫度、電源電壓、風扇監(jiān)控和?或控制集成芯片,它有額外的監(jiān)控規(guī)范。

SMBus是一種2線總線,類似于飛利浦公司于1980年代開發(fā)的I2C總線。兩個主要信號是時鐘(SMBCLK)和數(shù)據(jù)(SMBDAT)。I2C Primer和SMBus相互兼容,但存在明顯差異,例如:

SMBus邏輯電平閾值是固定的,與器件的電源電壓不成比例。因此,具有不同電源電壓的器件可以在同一Primer上運行。例如,一個SMBus可能具有多個由1.8 V、3.3 V和5 V電源供電的器件。

它們都以最高100 kHz的相同速度運行,但I2C Primer有400 kHz和2 MHz兩個版本。

SMBus規(guī)定了最低時鐘速度,并限制了時鐘在一個事務中可以延展的量。違反超時限制會導致所有SMBus器件復位其I?O邏輯以允許總線重啟。這種設計增強了總線的魯棒性。

二者的超時也不同。I2C Primer沒有超時,而SMBus有超時——對于10 kHz最低時鐘速度,可以考慮35 ms的超時。

分組差錯校驗(PEC)最初是為SMBus定義的。在每個事務的末尾添加一個分組錯誤碼字節(jié)。

其余的一些差異涉及傳輸類型、警報線、暫停線、關(guān)斷或上電。

SMBus器件每次收到其自己的地址時,無論在做什么,它都必須應答(ACK),這是一個明確要求,目的是確保主器件可以準確地判斷總線上哪些器件處于活動狀態(tài)。

所有SMBus事務都通過指定的SMBus協(xié)議之一執(zhí)行。

SMBus還有一個可選信號SMBALERT#,節(jié)點器件可以使用該信號快速通知主器件或系統(tǒng)主機,它有主器件需要的信息,例如報告故障情況。

wKgaomSKvbmAe34pAAB6u0qEuUQ705.jpg

圖16. SMBus拓撲結(jié)構(gòu)

SMBus上拉電路

wKgZomSKvxuADEPuAAA6SRU349k002.png

圖17. SMBus上拉電路

SMBus地址

SMBus地址有7個二進制位,通常表示為前4位、后3位以及最后一個字母b,例如0001 110b。這些地址占據(jù)總線上一個8位字段的高7位。然而,該字段的最低位另有含義,不屬于SMBus地址的范圍。

wKgaomSKvbuAcRTJAAAfgH3IY0E461.jpg

圖18. 節(jié)點地址

7位目標地址從主器件發(fā)送到總線上的一個或多個器件(例如通過廣播地址)。

請注意,起始條件和停止條件是轉(zhuǎn)換,而不是位,在符號上方未顯示位計數(shù)。在事務圖中顯示時,重復起始也是一個轉(zhuǎn)換,而不是一位,在符號上方也不顯示位計數(shù)。

wKgZomSKvbyAXOo9AAF-uyHLju4968.jpg

圖19. SMBus消息

SMBus時序測量

符號 參數(shù) 單位
fSMB SMBus 工作頻率 kHz
tBUF 停止與起始條件之間的總線空閑時間 μs
THD-STA (重復)起始條件之后的保持時間 μs
TSU-STA 重復起始條件的建立時間 μs
tSU(STO) 停止條件的建立時間 μs
tHD(DAT) 數(shù)據(jù)保持時間 ns
tSU(DAT) 數(shù)據(jù)建立時間 ns
tTIMEOUT 檢測時鐘低電平超時 ms
tLOW 時鐘低電平周期 μs
tHIGH 時鐘高電平周期 μs

PMBus:重新定義電源管理

除了SMBus之外,還有一個變體PMBus,它是一種開放標準電源管理協(xié)議。這種靈活且高度通用的標準允許基于模擬和數(shù)字技術(shù)的器件之間進行通信,并提供真正的互操作性,由此將能降低電源系統(tǒng)設計的復雜性并縮短產(chǎn)品上市時間。

PMBus用于帶有電源控制和管理器件的電源的數(shù)字管理。它具有支持電源管理要求的命令和結(jié)構(gòu)。這意味著I2C Primer和PMBus在電氣要求和命令語義上是兼容和可互操作的。

電源管理的基本參數(shù)之一是過壓電平監(jiān)控,PMBus提供了設置和讀取該值的命令。PMBus可以附加在I2C Primer和SMBus的已有特性上,充當現(xiàn)有標準(尤其是SMBus)之上的協(xié)議層。

I2C 規(guī)范僅描述了2線總線的物理層、時序和流控制。I2C規(guī)范沒有(像SMBus協(xié)議那樣)描述消息的格式,也沒有描述消息的內(nèi)容。

PMBus規(guī)范是一個完整的電源管理協(xié)議。它說明了如何將比特和字節(jié)從一個器件傳送到另一個器件(即傳輸)。它還描述了一種命令語言,賦予這些比特和字節(jié)以意義。

尋址

對于冗余系統(tǒng),一旦電源安裝到系統(tǒng)中,最多有三個信號來設置電源的地址位置:地址2、地址1和地址0。對于非冗余系統(tǒng),電源器件地址位置應為B0h。

硬件

針對基于I2C VDD的電源和驅(qū)動(對于VDD = 3.3 V),電源中的器件應與SMBus 2.0高功率規(guī)范兼容。該總線應以3.3 V運行。

電源

電源內(nèi)部的電路應從備用輸出獲得電源。對于冗余電源,器件應從"邏輯或"器件的系統(tǒng)側(cè)供電。只要系統(tǒng)中的電源或并聯(lián)冗余電源接通交流電源,PMBus器件就應處于開啟狀態(tài)。

上拉電阻

電源內(nèi)部的SCL或SDA線上只能使用弱上拉電阻。主要上拉電阻由系統(tǒng)提供,可以連接到3.3 V或5 V。對于系統(tǒng)設計,主要上拉電阻應位于電源外部,并從備用電源軌獲取電源。

數(shù)據(jù)速度

電源中的PMBus器件應以100 kbps SMBus全速運行,并盡可能避免使用時鐘延展,因為它會減慢總線速度。

總結(jié)

表8概述并總結(jié)了I2C Primer、SMBus(高功率和低功率)、PMBus的信號、時序和電氣規(guī)格。

I2C Primer、SMBus和PMBus有何關(guān)系?

SMBus最初開發(fā)用于協(xié)助電池管理系統(tǒng),使用I2C硬件,但增加了第二級軟件,最終允許器件熱插拔,而無需重新啟動系統(tǒng)。PMBus擴展了SMBus,定義了一組專門用于管理功率轉(zhuǎn)換器的器件命令,暴露了器件的測量電壓、電流、溫度等屬性。一般而言,I2C Primer、SMBus和PMBus器件可以共享總線而不會發(fā)生什么大問題。

I2C、SMB、PMB的優(yōu)勢

僅使用兩條線

具有ACK?NACK位

廣為人知的協(xié)議

支持多個主器件和多個節(jié)點

硬件不如UART復雜

廣泛使用的方法

缺點

數(shù)據(jù)傳輸速率比SPI慢

數(shù)據(jù)幀的大小限制為8位

實現(xiàn)所需的硬件比SPI復雜

wKgZomSKvy2Aeqj6AABBXg774ok023.png

圖20. SMBus時序測量

所有地址 主要尋址,用于具有兩個尋址引腳的大多數(shù)服務器電源 附近尋址,前提是電源上提供了三個尋址引腳
系統(tǒng)尋址
地址2/地址1/地址0
0/0/0 0/0/1 0/1/1 0/1/1 1/0/0 1/0/1 1/1/0 1/1/1
PMBus 器件讀取地址 B0h/B1h B2h/B3h B4h/B5h B6h/B7h B8h/B9h BAh/BBh BCh/BDh BEh/BFh

用例

傳感器讀取

傳感器寫入

EEPROM、溫度傳感器、觸摸屏、接近傳感器

傳輸和控制用戶指引的操作

與多個微控制器通信

消費類電子設備

系統(tǒng)管理

電源管理

調(diào)試

規(guī)格 I2C Primer SMBus
高功率 | 低功率
PMBus
信號 分組差錯校驗(可選)
SMBALERT(可選)
塊大小限制






32 字節(jié)


32 字節(jié)


255 字節(jié)
時序 數(shù)據(jù)速率:
標椎模式
快速模式
快速模式+
高速模式

時鐘速度

總線超時

總線主器件請求延遲(最小值)
SCL 保持時間(最大值)
數(shù)據(jù)保持時間(最小值)
100 kbps
400 kbps
1 Mbps
3.4 Mbps
0 Hz zhi 3.4 MHz




100 kbps




10 kHz 至 100 kHz
25 ms 至 35 ms
50 μs

2 ms
300 ns
100 kbps




10 kHz 至 100 kHz
25 ms 至 35 ms
50 μs

2 ms
300 ns
100 kbps
400 kbps


10 kHz 至 400 kHz
25 ms 至 35 ms
50 μs

2 ms
300 ns
電氣 每個總線段的容性負載(最大值)

上升時間(最大值)

0.4V時的上拉電流(最大值)

每個器件的漏電流(最大值)
VIL輸入邏輯低電平閾值(最大值)
VIH輸入邏輯高電平閾值(最小值)
VOL輸出邏輯低電平閾值(最大值)
400 pF
1 μs(100 kHz時), 300 ns(400 kHz時)
3 mA (標準和快速模式)
±10 μA
0.3 VDD 或 1.5 V
0.7 VCC 或 3 V
0.4 V
400 pF
1 μs
4 mA
±10 μA
0.8 V
2.1 V
2.4 V

1 μs
350 μA
±5 μA
0.8 V
2.1 V
0.4 V
400 pF
1 μs(100 kHz時), 300 ns(400 kHz時)
4 mA
±10 μA
0.8 V
2.1 V
0.4 V

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2550

    文章

    51035

    瀏覽量

    753076
  • 電源管理
    +關(guān)注

    關(guān)注

    115

    文章

    6177

    瀏覽量

    144444
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1484

    瀏覽量

    123619
收藏 人收藏

    評論

    相關(guān)推薦

    i2c通信協(xié)議

    1.1 i2c通信協(xié)議通信協(xié)議:用來實現(xiàn)數(shù)據(jù)傳輸。i2c物理總線:SCL(時鐘線) SDA(數(shù)據(jù)線)i2c
    發(fā)表于 03-06 16:15

    I2C通信協(xié)議的原理是什么

    I2C通信協(xié)議I2C通信原理I2C通信原理:I2C
    發(fā)表于 02-17 07:16

    實驗八-I2C通信協(xié)議

    實驗八-I2C通信協(xié)議,感興趣的可以瞧一瞧。
    發(fā)表于 09-22 16:42 ?2次下載

    linux自帶i2c工具使用

    I2C總線被全球超過50個公司的1000+個ICs所使用,已然是一個世界標準.另外,I2C總線與多種不同的控制總線是兼容的,比如SMBus(系統(tǒng)管理總線),PMBus(電源管理總線),
    發(fā)表于 05-13 09:23 ?3984次閱讀

    I2C通信協(xié)議應該如何學習

    我最近剛做完I2C通信協(xié)議的編寫與調(diào)試,下面介紹一下我從一開始理解夏老師的程序,修改程序,直到下板調(diào)試整個的學習過程,希望對大家學習 I2C 有一定的幫助。一、 分析源代碼學習 I2C
    發(fā)表于 04-28 08:00 ?21次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>應該如何學習

    什么是I2C通信協(xié)議

    在本教程中,我們將學習如何在Raspberry Pi Pico中使用I2C引腳并遍歷I2C掃描器代碼。
    的頭像 發(fā)表于 04-26 15:08 ?7777次閱讀
    什么是<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>?

    MPU6050的I2C通信協(xié)議

    不同硬件有不同的I2C協(xié)議
    發(fā)表于 12-06 12:21 ?3次下載
    MPU6050的<b class='flag-5'>I2C</b><b class='flag-5'>通信協(xié)議</b>

    硬件I2C與模擬I2C

    配置;而軟件I2C是沒有寄存器這個概念的。 軟件I2C一般是使用GPIO管腳,用軟件控制SCL,SDA線輸出高低電平,模擬i2c協(xié)議的時序。例如下面這段
    發(fā)表于 12-28 19:14 ?81次下載
    硬件<b class='flag-5'>I2C</b>與模擬<b class='flag-5'>I2C</b>

    了解I2C PrimerPMBusSMBus通信協(xié)議

    I2C或內(nèi)部集成電路是建立設備之間通信的常用串行通信協(xié)議,特別是對于兩個或多個不同的電路。I2C引物是最常用的 I2C. 本文將提供
    的頭像 發(fā)表于 12-12 16:58 ?8720次閱讀
    <b class='flag-5'>了解</b><b class='flag-5'>I2C</b> <b class='flag-5'>Primer</b>、<b class='flag-5'>PMBus</b>和<b class='flag-5'>SMBus</b><b class='flag-5'>通信協(xié)議</b>

    Linux控制I2C/SMBus設備

    I2C是Philips開發(fā)的一種兩線通信協(xié)議,常用于一些對速度要求不高的小型器件上。SMBus是系統(tǒng)管理總線,基于I2C協(xié)議,大部分情況下二
    的頭像 發(fā)表于 03-23 10:02 ?1493次閱讀
    Linux控制<b class='flag-5'>I2C</b>/<b class='flag-5'>SMBus</b>設備

    I2C通信協(xié)議及其工作原理

    "也許你聽說過I2C,或者你也正在使用I2C,但你有沒有了解過什么是I2CI2C是如何工作的?讓我們一起
    的頭像 發(fā)表于 04-19 09:36 ?4895次閱讀

    I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點?

    1982年發(fā)明并推廣,用于連接智能傳感器和存儲器器件,以及控制和監(jiān)控外設。該協(xié)議是一種主從式通信協(xié)議,允許多個從設備連接到同一總線上,并在總線上進行數(shù)據(jù)交換。I2C總線是一種低速度、低功耗的串行總線,通過
    的頭像 發(fā)表于 09-12 11:18 ?1647次閱讀

    i2c采樣是上升沿嗎?

    數(shù)據(jù)。在本文中,我們將詳細討論I2C采樣的工作原理,采樣時機以及如何進行I2C采樣。 I2C采樣的原理 I2C采樣是基于I2C通訊
    的頭像 發(fā)表于 09-19 17:16 ?2721次閱讀

    SPI和I2C通信協(xié)議:應用與區(qū)別

    本文深入解析了SPI和I2C這兩種通信協(xié)議的特點、工作原理和應用場景。SPI適用于高速數(shù)據(jù)傳輸,常用于存儲器芯片和顯示器驅(qū)動等領域;I2C適用于低速控制和傳感器數(shù)據(jù)傳輸,常用于溫度傳感器和ADC
    的頭像 發(fā)表于 04-22 16:45 ?1805次閱讀

    簡單認識I2C通信協(xié)議

    I2C(Inter-Integrated Circuit)通信協(xié)議是由飛利浦公司(現(xiàn)為恩智浦半導體)開發(fā)的一種簡單、雙向二線制同步串行總線協(xié)議。自1982年發(fā)布以來,I2C
    的頭像 發(fā)表于 07-25 18:06 ?1436次閱讀
    主站蜘蛛池模板: 丰满的女朋友 在线播放| 黄色天堂网| 免费乱理伦片在线观看八戒| 午夜伦理在线观看| 秋霞午夜理论理论福利无码| 青柠在线观看视频在线高清完整| 亚洲色t图| 公粗挺进了我的密道在线播放贝壳| 久久婷婷色香五月综合激情| 午夜理论在线观看不卡大地影院| 99精彩视频在线观看| 狠狠色综合久久丁香婷婷| 久久国产高清视频| 偷拍亚洲色自拍| www.av在线| 国产片MV在线观看| 日本午夜看x费免| 性欧美videosex18嫩| 永久免费的污视频网站| 国产精品成人免费视频99| 农村脱精光一级| 亚洲AV中文字幕无码久久| 成人精品视频| 尿了么app| 中文字幕亚洲无线码高清不卡| 韩国精品韩国专区久久| 特级毛片s级全部免费| china野外18:19| 少妇无套内谢久久久久| 亚洲综合色婷婷在线影院| 高H黄暴NP辣H一女多男| 前后灌满白浆护士| 99香蕉视频| 美女张开腿露尿口给男人亲| 一二三四高清中文版视频 | brazzers巨臀系列| 老熟人老女人国产老太| 伊人草久久| 久久re亚洲在线视频| 亚洲日本一区二区三区在线不卡 | 综合精品欧美日韩国产在线|