日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

smbus协议的command_SMBus总线概述

發布時間:2024/7/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 smbus协议的command_SMBus总线概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.概述:

系統管理總線是一種兩線制接口。它基于I2C 總線原理演變而來,可以認為是簡化版的I2C總線。

SMBus最初是應用到智能電池,如電池充電器和一個微控制器。其提供一個系統和電源管理相關的任務控制總線。如今,SMBus總線可以連接的設備類型更多樣化,包括與電源相關的設備,系統的傳感器,EEPROM的容量等設備的信息通信。

SMBus體現在OSI模型的下三層:物理,數據鏈路,網絡。物理層定義了了SMBus的電氣特性;數據鏈路層部分規范化位、字節的數據傳輸,仲裁和時鐘信號;網絡層處理處理SMBus地址解析協議和總線數據傳輸協議。

2.通用特性:

1)物理層:

DC特性:

AC特性:

2)數據鏈路層:

按通用思想,使用電平的高低代表邏輯的0和1:

數據有效性:數據必須在時鐘的高電平周期保持穩定,數據的狀態只能在時鐘低電平的情況下才能改變;

開始和停止條件(與I2C相同):

在SMBCLK 線是高電平時,SMBDAT 線從高電平向低電平切換,表示數據傳輸開始;

當SMBCLK 線是高電平時,SMBDAT 線由低電平向高電平切換,表示數據傳輸停止;

總線空閑:

SMBCLK 和SMBDAT 線都處于高電平期間,總線空閑。

數據傳輸:

數據傳輸以字節為單位,傳輸的字節數量不限,但是每個字節后必須緊跟一個ACK響應。

首先傳輸的是數據的最高位MSB。

我們知道在I2C協議中存在clock stretching特性:當一組數據傳輸完成,接收器也回傳ACK信號后,如果接

收器需要一段時間來儲存收到的數據,則可以利用控制SCL引腳為低電平的方式——將SCL維持為低電平,

直到接收器能夠接受下一組數據為止(所以也可以理解為什么I2C的CLK為雙向的原因)。

那么同樣在SMBus總線中也存在這樣的功能:從機要完成一些其他功能(例如一個內部中斷服務程序) 后,才能接收或發送下一個完整的數據字節,可以使時鐘線SCL 保持低電平,迫使主機進入等待狀態,當從

機準備好接收下一個數據字節并釋放時鐘線SCL 后,數據傳輸繼續。

3)網絡層:

模型:

支持SMBus的主、從器件。

從器件會被分配給唯一的地址,但有些地址是被協議保留,不能再分配給任何器件的,它們如下圖所示:

總線協議:

下面已寫、讀字節/字為例,描述具體的協議過程:

寫字節/字:

主器件在發送完從器件地址(Slave Address)后,發送寫入位(Wr)。從器件響應ACK。主器 件再次發命令碼

(Command Code),從器件再次確認ACK,主機發送數據字節或字(低字節在前)。 從器件ACK 每一個字

節,整個傳輸在停止條件后結束。

讀字節/字:

讀數據要比寫數據稍微復雜一些。首先主機要寫請求命令到從設備。重發一次起始條件(S+地址),從器

件 將返回一或兩個字節的數據。重發起始信息之沒有停止位,在讀完成后主器件要發NACK。

SMBus協議還支持塊的讀寫操作,在Command Code后加需要讀寫的字節數目:

在這里,地址的重復操作,起到了改變傳輸方向的作用。

3)SMBus的可選信號:

SMBSUS#信號:

系統進入待機模式時,SMBSUS#變低。待機模式是指當大部分設備休眠或斷電時一個低功率模式。一旦恢

復,SMBSUS#電平拉高。之后,所有設備回到運行狀態。

SMBALERT#:

該引腳連接至主器件,作為中斷信號線使用。

多個從器件可以通過線與連接至一個主器件引腳,系統通過仲裁決定從地址通信的權利。

4)I2C與SMBus的區別:

DC spec:

I2C的Hi/Lo邏輯準位有兩種認定法:相對認定與絕對認定,相對認定是依據Vdd的電壓來決定,Hi為

0.7?Vdd,Lo為0.3?Vdd,絕對認定則與TTL準位認定相同,直接指定Hi/Li電壓,Hi為3.0V,Lo為1.5V。

SMBus只有絕對認定,Hi為2.1V,Lo為0.8V,與I2C有部分交集。不過,SMBus后來也增訂一套更低電壓的準

位認定,Hi為1.4V,Lo為0.6V,這是為了讓運用SMBus的裝置能更省成本而有的作法。

電流:

SMBus在低功耗的表現方面優于I2C。

I2C 指定連接到總線上的每個設備的最最大漏電流為10 微安。SMBus 1.0 版本規定的最大漏電流為1 微

安。為減低SMBus 設備測試成本SMBus 1.1 版本規定要求放寬至5 微安。

相比于I2C對于總線電容的限制,SMBus并沒有對此做任何規定。但是它指出了IPULLDOWN 的最大電流是

350uA。那么可以計算出VDD=3.3V時,電阻值應大于9.4K。

頻率:

I2C提供了兩種操作模式,標準模式(100 KHz)和快速模式(400 KHz);

SMBus的時鐘頻率在10KHz~100KHz之間。

時序:

I2C對信號的時序并沒有強制的要求;

SMBus規定了數據的setuptime、holdtime必須滿足一定的條件(參見上面SMBus的AC標準);

ACK與NACK

通常情況下,I2C協議中,主控端發送端(主控端)要與接收端(受控端)通訊前,會在總線上廣播受控端的地址 信息,每個接收端都會接收到地址信息,但只有與該地址信息相切合的接收端會在地址信息發布完后發出 「已妥」的回應(Acknowledge;ACK),讓發送端知道對應的接收端確實已經備妥,可以進行通訊。

但是,I2C并沒有強制規定接收端非要做出響應不可,也可以默不作聲,即便默不作聲,發送端還是會繼續

工作,開始進行數據傳遞及下達讀/寫指令,如此的機制在一般運用中還是可行,但若是在一些實時 (Real Time)性的應用上,任何的動作與機制都有一定的時限要求,這種可有可無式的響應法就會產生問 題,可 能會導致受控端無法接收信息。 相同的情形,在SMBus上是不允許接收端在接收地址信息后卻不發 出回應,每次都要回應,為何要強制回應? 其實與SMBus的應用息息相關,SMBus上所連接的受控裝置有 時是動態加入、動態移除的,例如換裝一顆新 電池,或筆記本電腦接上DOCK PORT等,如果接入的裝置已 經改變卻沒有回應,則主控端的程序所掌握的并 非是整體系統的最新組態,就會造成誤動作。

SMBus協議的格式屬于I2C定義格式中的子集。I2C可以通過SMBus協議訪問與SMBus兼容的設備。

參考資料:

1)SMBus系統管理總線;

2)https://www.kernel.org/doc/Documentation/i2c/smbus-protocol;

轉載自:http://blog.sina.com.cn/s/blog_a438e5290102w4df.html

總結

以上是生活随笔為你收集整理的smbus协议的command_SMBus总线概述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。