<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 數(shù)字電源管理――PMBus

          數(shù)字電源管理――PMBus

          作者: 時(shí)間:2013-06-27 來源:網(wǎng)絡(luò) 收藏

          復(fù)雜性

          SMBus 1.1標(biāo)準(zhǔn)的篇幅達(dá)39頁。PMBus 1.2則為125頁。而且,制造商們除此之外還添加了他們自己的特殊寄存器和功能性(配有100多頁的相關(guān)規(guī)范)。那么,如何應(yīng)對(duì)所有這些復(fù)雜性呢?基本上是借助工具和重用。當(dāng)然,還包括相關(guān)的規(guī)范,其可通過System Management Interface Forum獲得。

          使用模型

          我將提出兩種重要的使用模型,雖然可能還有其他的使用模型,不過此二者是我發(fā)現(xiàn)得到大量運(yùn)用的兩種主要模型:

          1. 配置(Configure)和部署(Deploy)

          2. 監(jiān)視(Monitor)和運(yùn)作(Act)

          最重要的PMBus命令集之一用于存儲(chǔ)和恢復(fù)操作存儲(chǔ)器和非易失性存儲(chǔ)器之間的設(shè)定值。當(dāng)與用于改變操作存儲(chǔ)器(行為特性)的命令相組合時(shí),其可支持Configure和Deploy使用模型。

          配置(Configure)和部署(Deploy)

          大多數(shù)PMBus產(chǎn)品制造商都擁有一種GUI工具,該工具可通過PMBus和一個(gè)接口轉(zhuǎn)換板與其產(chǎn)品進(jìn)行通信。在多數(shù)場(chǎng)合中,接口轉(zhuǎn)換板通過USB連接至一部主PC。基本使用模式是在總線上配置PMBus器件的所有寄存器,并將其數(shù)值存儲(chǔ)于非易失性存儲(chǔ)器中。這樣,當(dāng)系統(tǒng)通電或復(fù)位時(shí),所有的器件在啟動(dòng)期間將從非易失性存儲(chǔ)器來給操作存儲(chǔ)器加載。

          這種模型的基本優(yōu)勢(shì)在于其簡(jiǎn)單性。工具能夠通過數(shù)據(jù)組織、模板和項(xiàng)目重用來消除PMBus的大部分復(fù)雜性。第二項(xiàng)優(yōu)勢(shì)是成本較低,因?yàn)椴恍枰捎?ldquo;額外的”器件來管理總線。

          此模型的主要劣勢(shì)是喪失了正常操作期間PMBus的所有功能。在異常情況下(比如:發(fā)生了故障),所有的器件都必須自主地做出反應(yīng),但靈活性受到限制,而且缺少協(xié)調(diào)。在復(fù)位時(shí)情況同樣如此。所有的器件均必須自主啟動(dòng)。

          讓我們來研究一下由此強(qiáng)加的某些限制條件。假設(shè)一種電源架構(gòu)具有由一個(gè)IBC(中間總線器)運(yùn)作的12軌POL(負(fù)載點(diǎn))轉(zhuǎn)換器。POL1存在OC(過流)故障,而且故障響應(yīng)是關(guān)斷電源軌。由于總線上沒有用于對(duì)故障做出反應(yīng)的任何主機(jī)器,因此其他的電源軌將繼續(xù)運(yùn)作,除非POL1的OC通過負(fù)載在另一個(gè)電源軌上引起了某種故障。

          為了克服這些限制,許多器件都具有附加的IO引腳,這些引腳允許器件在沒有PMBus的情況下進(jìn)行相互通信。傳統(tǒng)的方法是在器件之間采用漏極開路信號(hào)。通常有3個(gè)引腳:

          • SYNC(同步)

          • RUN(運(yùn)行)

          • GPIO(通用輸入輸出)

          SYNC引腳用于在復(fù)位時(shí)建立一個(gè)公共時(shí)基。這提供了用于接通/關(guān)斷事件排序的準(zhǔn)確時(shí)間相關(guān)。RUN引腳可使所有器件利用一個(gè)外部邏輯門或器件本身實(shí)現(xiàn)同時(shí)復(fù)位。GPIO通常是一個(gè)故障輸出和故障輸入。這允許源自某個(gè)器件的故障傳播至其他器件。這些引腳雖然并非PMBus規(guī)范的一部分,但為了讓Configure和Deploy使用模型作為一個(gè)系統(tǒng)來工作,它們卻是必不可少的。

          監(jiān)視(Monitor)和運(yùn)作(Act)

          最靈活的使用模型需要一個(gè)在系統(tǒng)操作期間處于運(yùn)行狀態(tài)的PMBus主機(jī)。由于能夠全面使用完整的命令集,因此系統(tǒng)僅受限于PMBus的速度和您的想象力。

          有幾種用于構(gòu)建PMBus主機(jī)的子模型。一個(gè)微處理器或微器、FPGA邏輯器件或一個(gè)嵌入在FPGA中的控制器。通常,它是某種類型的控制器,即使是內(nèi)嵌于一個(gè)FPGA中。它只是更容易實(shí)現(xiàn),而且更加靈活。

          Alert引腳一般連接至控制器上的一個(gè)中斷引腳。當(dāng)存在某種故障時(shí),微處理器(μP)通過以下方式對(duì)中斷做出反應(yīng):獲得故障器件的地址、通過PMBus查詢相關(guān)狀況、并采取措施以校正問題或使電源軌斷電。

          控制器也用于遙測(cè)。數(shù)據(jù)可以用來預(yù)測(cè)故障、測(cè)量功耗或調(diào)試罕見的故障。另外,控制器還將在復(fù)位時(shí)設(shè)置所有的電源軌。

          該使用模型的終極價(jià)值是靈活性。不過,必需為此付出代價(jià):開發(fā)時(shí)間/成本和更多的硬件。雖然開發(fā)成本能夠借助可重用框架而略有減低,但硬件成本的額外增加卻是無法避免的。

          混合模型

          根據(jù)我的經(jīng)驗(yàn),有許多工程師都在使用Configure和Deploy模型,少部分的工程師則采用Monitor和Act模型。當(dāng)采用后者時(shí),很少是以其純粹的形式來使用。利用工具來處理大部分的配置要常見得多,借助的方法是:確保接口轉(zhuǎn)換板與主機(jī)具有兼容性,并且僅將PMBus主機(jī)用于遙測(cè)、高級(jí)故障處理和最終用戶通知。

          另外,這種工作的劃分還可提供針對(duì)策略和安全決定的某種控制。電源工程師能夠通過一種工具來控制電源軌電壓、啟動(dòng)定時(shí)和主要的故障響應(yīng)。而利用針對(duì)PMBus主機(jī)所發(fā)出之容許命令的規(guī)則,嵌入式軟件設(shè)計(jì)人員的工作內(nèi)容被限定為一組有助于調(diào)試的安全遙測(cè)功能和異常情況記錄。

          最終決定

          做出有關(guān)使用模型的決策并不簡(jiǎn)單。通常,直到您設(shè)計(jì)了自己的首個(gè)架構(gòu)之后才會(huì)真正了解本應(yīng)當(dāng)怎么做。希望通過這文章系列可使這些決策變得更加容易,而且您甚至可以在最終設(shè)計(jì)之前進(jìn)行架構(gòu)的原型設(shè)計(jì)(假定擁有我所提供的資源)。如果您有話題希望在我今后的文章中看到討論,請(qǐng)給我們知道,我們將盡全力對(duì)其作相關(guān)的論述。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 控制 數(shù)字電源

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();