1. 程式人生 > >EC修煉之道—SMBUS

EC修煉之道—SMBUS

SMBUS在EC firmware中佔有重要的地位,我們先來看一下它的應用:(1)電池模組需要它來通訊,如SmartBattery IC以及ChargeIC。(2)平臺各個溫度獲取,通過與溫度感測器,SMBUSLINK1,或顯示卡晶片的SMUBS相連,來讀取其溫度值。(3)CPU及記憶體調壓,使用SMBUS介面的調壓晶片,控制它的電壓,使其得到更好的performance。(4)監測平板的方向,重力感測器也是SMBUS介面,先調好合適的靈敏度,然後根據其資料,來決定螢幕顯示的方向。

1 SMBUS硬體介面

         從此圖可以看出,SMBUS由兩線組成。SCL是時鐘線,由Master來控制,SDA是資料線,Slave裝置靠此線來採集資料。

         SMBUS設計採用主從結構,即傳輸時需要有一個Master裝置,一個Slave裝置。Master發命令,Slave裝置對其命令進行響應。

2 SMBUS資料傳輸

可以把SMBUS資料傳輸粗略地分為位元組,字,塊的傳輸。各項又可分為寫傳輸和讀傳輸。如位元組傳輸,我們可以向Slave的某個暫存器寫一個位元組,也可以從該暫存器讀一個位元組。其讀寫時序是不一樣的,下面圖示為位元組的讀和寫:

由圖可以看出,寫位元組和讀位元組協議是不一樣的。

寫位元組為:

1)起始訊號

2)送地址寫

3)送暫存器

4)送資料

5)結束訊號

讀位元組為:

1)  起始訊號

2)  送地址寫

3)  送暫存器

4)  起始訊號

5)  送地址讀

6)  讀資料

7)  結束訊號

2.1 起始訊號

當CLOCK線是高電平時,DATA線從高電平向低電平切換,為起始訊號。

即:

CLOCK:=1

DATA:=1

DATA:=0

2.2 結束訊號

         當CLOCK線是高電平,DATA線從低電平向高電平切換,為停止訊號。

         即:

         CLOCK:=1

         DATA:=0

         DATA:=1

2.3 應答訊號

在傳送1個BYTE後,第9個時鐘週期,當CLOCK線為高電平,採集到的DATA線為低電平時,說明SLAVE裝置應答成功,返之沒有應答。

即:

         CLOCK:=1

         If(DATA=0)  then

                   ACK

         Else

                   NACK

2.4 送資料

SMBUS傳輸資料時,採用MSB方式,即先送高位再送低位。每次傳輸資料以位元組為一組。即使是塊傳輸協議時,也是一個位元組接一個位元組地傳輸N次。因其為序列方式,一次只能傳輸一個位,所以一個位元組要傳輸8次。傳輸的資料是以CLOCK為高電平時採集DATA的電平,DATA為高電平,傳輸的資料為1,否則為0。

假設資料為TransferData,描述如下:

For i:=0 to 7 do

begin

         CLOCK := 0;

         If ((TransferData SHL i)  and $80) then

                   DATA := 1

         Else

                   DATA:=0

                   CLOCK:= 1

End

2.5 讀資料

讀資料和寫資料時,資料的採集是一樣的。

採集資料放在ReadData中,即:

For i:=7 downto 0do

Begin

         CLOCK:=0

         DELAY_FOR_SLAVE_PREPARE_DATA

         CLOCK:=1

         ReadData = (ReadData or ( DATA SHL i))

end

3 EC程式碼介面

Vendor廠商基本上把邏輯程式碼都已經寫好,並留有OEM介面(SMBUS陣列)。我們要做的事一般有兩件。第一件,在OEM介面填好初始化資料和執行時資料,初始化資料用於設定SLAVE裝置使其符合我們平臺的需求,或SALVE裝置某個暫存器值是固定的,讀一次便可一勞永逸,執行時資料用於實時監控SLAVE裝置的現有狀態。第二件,EC定時讀取實時讀出的資料,如果觸發某個條件,便執行相應的程式碼,如CPU溫度達到調節風扇轉速的臨界點。


相關推薦

EC修煉SMBUS

SMBUS在EC firmware中佔有重要的地位,我們先來看一下它的應用:(1)電池模組需要它來通訊,如SmartBattery IC以及ChargeIC。(2)平臺各個溫度獲取,通過與溫度感測器,SMBUSLINK1,或顯示卡晶片的SMUBS相連,來讀取其溫度值。(3

EC修煉—程式碼架構

         EC就是膝上型電腦上的一個嵌入式控制器。作為一個主機板軟體開發人員,一般說EC,就是EC韌體程式。          想要做好EC,首先要懂程式碼架構。這個東西說簡單就簡單,說困難也困難,要有人幫忙點破,然後一切都會OK。我剛到現在的這家公司,一個同事說,

EC修煉—Thermal

重啟,藍屏,關機,休眠,一系列災難性的錯誤均有可能是溫度過高引起。即使是行業的領頭羊,也經常性地栽倒在這個問題上。雖說這個問題應該是Thermal工程師應該考慮的問題,但作為可以控制風扇和可以通知HOST端的EC工程師來說,也應該瞭解Thermal的一些細節,以期能夠快速準

EC修煉—按鍵的做法

在EC的各項功能中,按鍵的作用非常重要。機器上的PowerSwitch按鍵,亮度加減按鍵,聲音加減按鍵,WIFI&Bluetooth開關等,都有可能用到按鍵功能。          按鍵的做法有兩種:一是使用中斷的方式;二是使用輪循GPIO的電平狀態來做按鍵功能。

EC修煉—ECSCI

         ECSCI是EC上的一個請求系統中斷的PIN。電池資訊的上報,溫度上報,LID狀態上報,亮度調節請求以及切屏等功能都需要此中斷來通知作業系統執行。既然是中斷,就必須有中斷號,ECSCI和其它一些DEVICE共用一個SCI中斷號,由BIOS來指定,並通過A

《程序員修煉》讀書筆記②

模糊 clas 算法 必須 品牌 很多 關於 性能 一是 概述 花了幾天時間看完了程序員修煉之道,有很多感悟,記錄於此,供自己開發時參考,相信對其他人也有用。 值得一提的是,這本書寫的非常好,很多大牛在走了很多彎路之後再讀這本書都很感慨沒有早些讀。 《程序員修煉之道》讀書筆

《MySQL DBA修煉》 讀書筆記(第一章 理解MySQL)

l數據庫 描述 負責 mysql權限 serve 擴展 基礎上 title 語境 1、MySQL的基礎架構 1.MySQL是一種關系數據庫產品,是建立在關系模型基礎上的數據庫。架構一般可分為應用層、邏輯層、物理層。應用層:負責和客戶端、用戶進行交互。邏輯層:負責具體的

程序員修煉:從小工到專家

合作人 測試 AI 附錄 修煉之道 資源 color 例子 項目 下載地址:網盤下載 內容簡介 · · · · · ·《程序員修煉之道:從小工到專家》內容簡介:《程序員修煉之道》由一系列獨立的部分組成,涵蓋的主題從個人責任、職業發展,知道用於使代碼保持靈活、並且易於改

大巧不工-WEB前端設計修煉pdf

客戶 margin post 了解 框架 前端開發 性能 round 測試 下載地址:網盤下載 大巧不工:Web前端設計修煉之道:全面探討Web前端設計的方法、原則、技巧和最佳實踐5大專業社區一致鼎力推薦!前端開發工程師、前端設計師、前端架構師和用戶體驗設計師等新興職業的

《程序員修煉》讀書筆記

重點 解決 意思 環境 部分 災難 就是 但是 解決方案 這周我閱讀的書目是《程序員修煉之道》,重點看了幾個章節,但是可能是因為我還沒有經歷過大的項目,所以不太能對裏面的一些觀點產生共鳴,不過裏面還是有些較為簡單的觀點讓我收獲了許多。 1、“我的源碼讓貓吃了” 在所有弱點

Web前端工程師修煉(原書第4版) 中文pdf掃描版

知識 實現簡單 div font web前端 圖形 如何工作 htm log 你是否也曾想過自己創建網頁,但卻苦於沒有經驗?那麽從現在開始學習吧!本書由淺入深地講解了Web設計的一些重要概念、基本原理,以及HTML、CSS和JavaScript的具體使用方法與技巧。當你

第四周讀書筆記——《程序員修煉——從小工到專家》

本周 post align 課程 tex 如何實現 知識 我想 分享 本周我讀的書是美國Andrew Hunt與David Thomas所著的《程序員修煉之道——從小工到專家》。翻開第一頁,我就可以看到無數來自其他專業人士對這本書的褒獎。俗話說,贊美總是不嫌多,我大概瀏覽了

《程序員修煉》讀書筆記(下)

修正 AC 理解 文件名 就會 復制 讀取文件 學習 原來 程序員修煉之道(下) Friday, March 30, 2018 15:17 就如同我在上篇讀書筆記中說的那樣,這本書中的一些方法和思想,需要我們在之後的編程學習過程中一點一點的參悟和領會。 曳光彈 比如說從

我與項目的化學反應 ——讀《程序員修煉》有感

理論 例如 亞歷山大 搜集 發生 實驗 是我 消費 不同 正如書中所說,我曾經產生過自己的項目會失敗的感覺,因為自己很迷茫不知道自己該如何去完成自己的團隊項目,那種迷茫感在一開始的時候一直圍繞著我,直到組長開始逐步把項目分塊,一步步細分後,並且要求每個人需要做什麽的時候,我

程序員修煉 Tips

tool con window 興趣 list func clas produce exc 這一篇文章其實就是記錄程序員修煉之道中的所有 Tips, 我講會在之後的每周實踐兩個 Tip, 並對這兩個 Tips 進行補充和說明自己的體會, 最終成為書中所說的卓有成效的程序

讀書隨記-《程序員修煉-從小工到專家》

正在 不同 準則 隨記 專家 tail 都是 範圍 沒有 註重實效的程序員有哪些特征 早期的采納者/快速的改編者 好奇 批判的思考著 有現實感 多才多藝 第一章 註重實效的哲學 註重實效的程序員能夠越出直接的問題去思考,設法把問題放

<高效程序員的45個習慣:敏捷開發修煉>

驅動開發 錯誤 其他 提問 產品 目前 主題 告訴 正在 第1章 敏捷-高效軟件開發之道 第2章 態度決定一切1.做事指責不會修復bug。把矛頭對準問題的解決方法,而不是人。2.欲速則不達不要墜入快速的簡單修復之中。要投入時間和精力保持代碼的整潔、敞亮。3.對事不對人設定最

<高效程式設計師的45個習慣:敏捷開發修煉>

第1章 敏捷-高效軟體開發之道 第2章 態度決定一切1.做事指責不會修復bug。把矛頭對準問題的解決方法,而不是人。2.欲速則不達不要墜入快速的簡單修復之中。要投入時間和精力保持程式碼的整潔、敞亮。3.對事不對人設定最終期限;逆向思維;設立仲裁人;支援已經做出的決定。4.排除萬難,奮勇前進做正確的事。要誠實

C語言嵌入式系統程式設計修煉

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

零基礎入門前端的修煉

本文是為了給那些想要了解前端開發是什麼,或者剛剛打算開始學習前端的朋友們準備,希望可以幫助準備入行的你; 總所周知,目前無論是企業還是個人,都會有製作網站、部落格、小程式等需求,他們希望把自己的產品或服務通過網際網路展示給更多使用者。在這種情況下, 對於剛剛接觸這方面的新人來說,可能先