專利名稱:整合電源監控總線協議和串行通信協議接口實現方法
技術領域:
本發明涉及電源監控協議PMBus接口和串行通信12C接口,屬于集成電路的設計, 隸屬電子技術領域。
背景技術:
電源管理總線(PMBus)通信協議規范定義了一個用在功率轉換器件和管理器件之間的開放標準數字電源管理協議(包括接口和命令)。借助PMBus,數字電源可以依據一套標準命令進行配置、監控和維護,在發生故障或運行警告時,設計者可以使用PMBus 指令設定電源的工作參數、監視其工作狀況和實施校正措施。而串行通信I2C協議是一種兩線制串行通信標準,每個從機都有個特定的地址,I2C的傳輸速率在標準模式下可達 100kbit/s,快速模式下可達400kbit/s,高速模式下可達3. 4Mbit/s。
PMBus協議的數據鏈路層的通信規范是源于I2C協議,但是PMBus很少需要大數據量的數據傳輸和高速的傳輸模式,因此本發明旨在設計一個接口電路,該接口電路可以同時滿足PMBus協議和I2C協議,在PMBus模式下,可以不需要非常快的速度和大的數據量就可以實現PMBus,而在I2C模式下,可以實現快速的和大數據量的數據傳輸。這樣就實現了在單一物理地址的基礎上,可以同時實現PMBus協議的監控和大數據量的I2C協議數據傳輸。發明內容
本發明提供了整合電源監控總線協議和串行通信協議接口實現方法,該方法在遵照PMBus協議和I2C通信協議的同時,充分優化了兩個接口的整合,運用了較少的十個狀態就實現了發明。
本發明的技術方案如下
一種整合電源監控總線協議和串行通信協議的接口實現方法,其特征在于
流程進入開始,之后直接進行start信號判斷,判斷電源監控總線PMBus上是否存在start信號,如果沒有start信號,則返回開始,如果有start信號,則進入模式判斷,判斷是PMBus通信模式,還是I2C通信模式。
如果判斷為電源監控總線PMBus通信模式,則進行故障中斷ARA判斷,判斷是否存在故障中斷ARA ;如果存在故障中斷ARA,則進入故障響應ARA響應,向PMBus總線發送從機地址數據,并且完成地址發送后進入開始;如果不存在ARA中斷,則進入電源監控總線 PMBus操作讀寫判斷,判斷是否進行PMBus讀操作,如果是PMBus讀操作,則進一步判斷是進行1個字節還是2個字節數據的讀取,如果是1個字節數據的讀取,則進入電源監控總線 PMBus模式,讀1個字節,完成1個字節讀取后,進入開始,如果是2個字節數據的讀取,則進入電源監控總線PMBus模式讀2個字節,完成2個字節讀取后進入開始;如果不是電源監控總線PMBus讀操作,則判斷是進行1個字節還是2個字節數據的寫入,如果是1個字節數據的寫入,則進入電源監控總線PMBus模式寫1個字節,完成1個字節寫入后進入開始,如果是2個字節數據的寫入,則進入電源監控總線PMBus模式寫2個字節,完成2個字節寫入后進入開始。
如果判斷為不是電源監控總線PMBus通信模式,則進入串行通信I2C讀操作的判斷,如果判斷為讀操作,則進入串行通信I2C模式讀操作進行數據的讀取,再在串行通信 I2C模式下進行總線讀操作stop信號判斷,判斷總線上是否存在stop信號,如果存在stop 信號,則完成數據讀取,并且進入開始,如果不存在stop信號,則保持進行數據的讀取;如果判斷為寫操作,則進入I2C模式寫操作進行數據的寫入,再在I2C模式下進行PMBus總線寫操作stop信號,判斷總線上是否存在stop信號,如果存在stop信號,則數據寫入完成, 并且進入開始,如果不存在stop信號,則保持進行數據的寫入。
本次復合PMBus協議和I2C協議接口實現方法的發明,完全采用Verilog HDL編寫,已經通過功能驗證,而且可以通過DC邏輯綜合軟件綜合,從而使用標準的門單元電路搭建,設計的靈活性非常大,如果需要對設計進行調整,可以隨時根據需要進行適當調整和修改,適用性強。
本發明的優點及有益成果
1)本發明基于PMBus總線設計,完全符合電源監控總線PMBus協議的標準,兼容性較好,可以直接運用于具有電源監控總線PMBus控制的電源監控環境中。
幻本發明設計整合I2C總線,同樣也是完全符合串行通行I2C的通行協議標準,可以在實現電源監控的同時,也可以實現總線器件間的數據傳輸。
3)電路設計理念簡單,容易實現,可以通過DC邏輯綜合后由標準門電路構建,制備工藝簡單。
4)電路的可修改性好,可以根據具體運用需要進行適當的調整和修改。
5)以最簡單的結構實現了高性能的PMBus接口和I2C接口的整合,占據芯片面積小,功耗也較小。
圖1是本發明的流程圖。
圖2是本發明的系統狀態圖。
圖3是本發明兩種模式切換時主要信號的關系示意圖(前半部分)。
圖4是本發明兩種模式切換時主要信號的關系示意圖(后半部分)。
圖5是本發明兩種模式切換的仿真波形圖(前半部分)。
圖6是本發明兩種模式切換的仿真波形圖(后半部分)。
具體實施方式
一種整合電源監控總線協議和串行通信協議的接口實現方法,其特征在于
流程進入開始1,之后直接進行start信號2判斷,判斷電源監控總線PMBus上是否存在start信號,如果沒有start信號,則返回開始1,如果有start信號,則進入模式判斷3,判斷是PMBus通信模式,還是I2C通信模式。
如果判斷為電源監控總線PMBus通信模式,則進行故障中斷ARA4判斷,判斷是否存在故障中斷ARA ;如果存在故障中斷ARA,則進入故障響應ARA響應5,向PMBus總線發送從機地址數據,并且完成地址發送后進入開始1 ;如果不存在ARA中斷,則進入電源監控總線PMBus操作讀寫判斷6,判斷是否進行PMBus讀操作,如果是PMBus讀操作,則進一步判斷是進行1個字節還是2個字節數據的讀取,如果是1個字節數據的讀取,則進入電源監控總線PMBus模式,讀1個字節8,完成1個字節讀取后,進入開始1,如果是2個字節數據的讀取,則進入電源監控總線PMBus模式讀2個字節9,完成2個字節讀取后進入開始1 ;如果不是電源監控總線PMBus讀操作,則判斷是進行1個字節還是2個字節數據的寫入,如果是 1個字節數據的寫入,則進入電源監控總線PMBus模式寫1個字節11,完成1個字節寫入后進入開始1,如果是2個字節數據的寫入,則進入電源監控總線PMBus模式寫2個字節9,完成2個字節寫入后進入開始1。
如果判斷為不是電源監控總線PMBus通信模式,則進入串行通信I2C讀操作13的判斷,如果判斷為讀操作,則進入串行通信I2C模式讀操作14進行數據的讀取,再在串行通信I2C模式下進行總線讀操作stop信號15判斷,判斷總線上是否存在stop信號,如果存在stop信號,則完成數據讀取,并且進入開始1,如果不存在stop信號,則保持進行數據的讀取;如果判斷為寫操作,則進入I2C模式寫操作16進行數據的寫入,再在I2C模式下進行 PMBus總線寫操作stop信號17,判斷總線上是否存在stop信號,如果存在stop信號,則數據寫入完成,并且進入開始1,如果不存在stop信號,則保持進行數據的寫入。
本方法是基于狀態機設計的,狀態機包含IDLE、Addr、ARA & send address、 COMMAND、Data_ffrite, Restart & Addr_R、Data_Read、I2C_ffrite, I2C_Read 和 STOP 十個狀態,在任何階段內如果檢測到PMBus總線上存在stop信號,則狀態機直接進入開始,否則正常工作。狀態機在啟動時或者無任何操作時,一直處于開始,并且當PMBus總線上檢測到 start信號時,狀態機進入Addr狀態,此時mode_sel信號為低電平時進入PMBus傳輸模式, 如果mode_sel信號為高電平時進入I2C傳輸模式,在PMBus傳輸模式下,當alert_n為低電平時,說明有ARA中斷,狀態機進入ARA & send address狀態,在此狀態下從機地址數據被送至PMBus總線輸出,ARA響應完成標志端口產生高電平脈沖信號表示完成ARA響應,可以進行后續操作;否則狀態機進入COMMAND狀態,狀態機接收PMBus總線上的一個字節的串行命令數據,并從命令輸出端口輸出,同時在命令輸出使能端產生一個高電平脈沖信號,此時如果PMBus總線上檢測到restart信號時,則進入Data_Write狀態,否則進入Restart & Addr_R狀態讀取PMBus總線輸入的讀數據地址后轉入Data_Read狀態;在Data_Write狀態下,如果字節或字選擇信號為高電平時,表示一個字節操作,將PMBus總線輸入的數據送至數據輸出端口輸出,并且在數據輸出使能端產生高電平脈沖信號;如果字節或字選擇信號為低電平時,將PMBus總線輸入的二個字節數據依次通過數據輸出端口輸出,并且每個字節傳輸完畢后都在數據輸出使能端都產生一個高電平脈沖信號,并進入開始;在Data_ Read狀態下,將讀取需向PMBus總線發送數據的輸入端口數據,若字節或字選擇信號為高電平,則數據鎖存使能輸出端輸出一個高電平脈沖信號,并讀取需向PMBus總線發送數據的輸入端口上一個字節的數據,若字節或字選擇信號為低電平,則數據鎖存使能輸出端輸出二個高電平脈沖信號,并且由高電平脈沖信號控制依次讀取需向PMBus總線發送數據的輸入端口上二個字節的數據,數據的讀取完成后進入開始。在12C傳輸模式下,根據12C協議逐位讀取PMBus串行總線上的Sbits數據后,根據所讀數據的最低位判斷讀寫操作,當最低位為高電平時I2C進入I2C_Read狀態,并且數據鎖存使能輸出端上產生一個高電平脈沖信號,此時將需向PMBus總線發送數據的輸入端口上的數據送至PMBus總線,之后重復讀數據操作;若最低位為低電平I2C進入I2C_Write模式,數據輸出端口并行輸出PMBus串行總線上的Sbits數據,并且數據輸出使能端產生一個高電平脈沖信號,之后重復寫數據操作。 在I2C_Read狀態和I2C_Write狀態下若檢測到PMBus總線stop信號則轉入開始,等待新一輪的監控或數據傳輸。
下面結合附圖及實例對本發明的電路結構、工作原理及過程作進一步說明。
圖1是本發明的流程圖,流程包括開始、start信號、PMBus模式、ARA中斷、ARA響應、PMB讀操作、讀1字節、PMBus模式讀1個字節、PMBus模式讀2個字節、寫1字節、PMBus 模式寫1個字節、PMBus模式寫2個字節、I2C讀操作、I2C模式讀操作、讀操作stop信號、 I2C寫操作和寫操作stop信號十七個步驟。本發明的目的就是能夠實現兩種模式的數據傳送,所以實現的方式就是進入相應的模式下,然后完成響應的讀或者寫操作,而在進入何種模式和進行何種操作都是需要根據特定的條件進行判斷和選擇,所以本流程圖的核心就是根據特性信號做出相應的判斷,然后根據流程完成模式和操作類型的選擇,從而實現兩種協議接口的整合。
參看圖2 是本發明的狀態圖,包括 IDLE、Addr、ARA & send address、COMMAND、 Data_ffrite,Restart & Addr_R、Data_Read、I2C_Write、I2C_Read 和 STOP 十個狀態。本發明就是設計了一種采用較少狀態數的狀態機,從而很好的實現了 PMBus協議接口和I2C協議接口整合的接口方法。該接口方法具有PMBus模式和I2C模式兩種模式,而在PMBus模式下,能夠響應ARA中斷,在PMBus模式下能夠實現對電源的監控或者是固定字節數據的讀寫,而在I2C模式下,可以實現不定字節數的數據讀寫操作,兩個模式下,該接口方法都起到了串并數據轉換的作用。將來自PMBus的串行數據并行的送給后續電路,或者從后續電路中讀取并行數據,然后串行的向PMBus總線發送。
圖3是本發明兩種模式切換時主要信號的關系示意圖(前半部分)。圖中畫出了在PMBus和I2C傳輸兩種模式下轉換之前PMBus模式讀取兩個字節數據的關鍵信號的示意圖,傳輸從scl為高電平時sda從高變低電平的開始信號,然后總線傳送從機地址,從圖中可以讀出其為8' hDO (8' bl 1010000),然后PMBus總線發送master_data[7:0]上的命令數據8' hlO,經過9個scl時鐘,cmd_acc印t[7:0]接收到命令數據8' hlO,并且cmd_en 產生一個高電平脈沖;接著總線產生重開始信號,然后總線傳送從機地址,從圖中可以讀出其為8' hDl(8' bllOlOOOl),接著連續讀取data_acc印t[7:0]上的兩個數據8' h20和 8' h46,并且產生一個stop_en高電平脈沖,表示結束操作。然后mode_sel由原先的低電平變為高電平,表示變換為I2C通信模式。
圖4是本發明兩種模式切換時主要信號的關系示意圖(后半部分)。該圖實際上是圖3的延續,但是由于考慮排版,所以將兩種模式切換的關系圖分成圖3和圖4。圖中畫出了在PMBus和I2C傳輸兩種模式下轉換之后I2C模式寫入三個字節數據的關鍵信號的示意圖,mode_sel由低電平變為高電平開始,此時模式由PMBus模式轉變為I2C模式,傳輸從 scl為高電平時sda從高變低電平的開始信號,然后PMBus總線傳送從機地址,從圖中可以讀出其為8' hDO (8' bl 1010000),然后PMBus總線發送master_data[7:0]上的命令數據 8' h05,經過9個scl時鐘,data acc印t [7:0]接收到數據8' h05,并且data_en產生一個高電平脈沖;然后PMBus總線第二次發送master_data[7:0]上的命令數據8' hl7,經過9個scl時鐘,data_acc印t[7:0]接收到數據8' hl7,并且data_en產生一個高電平脈沖; 然后PMBus總線第三次發送master_data[7:0]上的命令數據8' h28,經過9個scl時鐘, data_accept[7:0]接收到數據8' h29,并且data_en產生一個高電平脈沖;完成三次數據的寫入后PMBus產生一個stop信號,所以stop_en產生一個高電平脈沖,表示操作結束。
圖5是本發明兩種模式切換的仿真波形圖(前半部分)。該圖是由PMBus模式讀取兩個字節數據向I2C模式寫入三個字節數據切換的仿真圖的前半部分,也就是PMBus模式讀取兩個字節數據的波形圖。從圖中可以看出,該接口電路能夠在PMBus和I2C兩個模式間順利切換。圖中在cmd_acc印t[7:0]接收到主機發送的命令數據8' h08, cmd_en使能有效后,主機的rCV_data[7:0]連續接收到兩個從機數據8' hOa和8' hOf。
圖6是本發明兩種模式切換的仿真波形圖(后半部分)。該圖是由PMBus模式讀取兩個字節數據向I2C模式寫入三個字節數據切換的仿真圖的后半部分,也就是I2C模式寫入三個字節數據的波形圖。事實上,本仿真圖形是圖5的延續,但是也是為了考慮排版所以將仿真圖分成圖5和圖6。從圖中可以看出,該接口電路能夠在PMBus和I2C兩個模式間順利切換。圖中在master_rCV[7:0]順利接收完數據8' hOf,并且產生了 stop_en高電平脈沖。然后m0de_Sel信號由低電平變為高電平,也就是模式變為I2C模式,data_accept [7 0] 一次接收到來自PMBus總線的數據8' hl8、8' h20和8' h28,并且產生了相應的data_en 使能高電平脈沖信號,最后產生了 stop_en高電平脈沖,表示傳輸結束。
權利要求
1. 一種整合電源監控總線協議和串行通信協議的接口實現方法,其特征在于, 流程進入開始(1),之后直接進行Start信號(2)判斷,判斷電源監控總線PMBus上是否存在start信號,如果沒有start信號,則返回開始(1),如果有start信號,則進入模式判斷(3),判斷是PMBus通信模式,還是I2C通信模式,如果判斷為電源監控總線PMBus通信模式,則進行故障中斷ARA(4)判斷,判斷是否存在故障中斷ARA ;如果存在故障中斷ARA,則進入故障響應ARA響應(5),向PMBus總線發送從機地址數據,并且完成地址發送后進入開始(1);如果不存在ARA中斷,則進入電源監控總線PMBus操作讀寫判斷(6),判斷是否進行PMBus讀操作,如果是PMBus讀操作,則進一步判斷是進行1個字節還是2個字節數據的讀取,如果是1個字節數據的讀取,則進入電源監控總線PMBus模式,讀1個字節(8),完成1個字節讀取后,進入開始(1),如果是2個字節數據的讀取,則進入電源監控總線PMBus模式讀2個字節(9),完成2個字節讀取后進入開始(1);如果不是電源監控總線PMBus讀操作,則判斷是進行1個字節還是2個字節數據的寫入,如果是1個字節數據的寫入,則進入電源監控總線PMBus模式寫1個字節(11),完成 1個字節寫入后進入開始(1),如果是2個字節數據的寫入,則進入電源監控總線PMBus模式寫2個字節(9),完成2個字節寫入后進入開始(1),如果判斷為不是電源監控總線PMBus通信模式,則進入串行通信I2C讀操作(13)的判斷,如果判斷為讀操作,則進入串行通信I2C模式讀操作(14)進行數據的讀取,再在串行通信I2C模式下進行總線讀操作stop信號(15)判斷,判斷總線上是否存在stop信號,如果存在stop信號,則完成數據讀取,并且進入開始(1),如果不存在stop信號,則保持進行數據的讀取;如果判斷為寫操作,則進入I2C模式寫操作(16)進行數據的寫入,再在I2C模式下進行PMBus總線寫操作stop信號(17),判斷總線上是否存在stop信號,如果存在stop 信號,則數據寫入完成,并且進入開始(1),如果不存在stop信號,則保持進行數據的寫入。
全文摘要
整合電源監控總線協議和串行通信協議接口實現方法,本發明采用狀態機的方式整合了電源監控總線PMBus協議和串行通信總線I2C協議,該發明的工作流程以總線上的start信號開始,如果存在start信號,則首先進行模式判斷,判斷是電源監控總線PMBus模式,還是串行通信I2C模式。如果是電源監控總線PMBus模式,則進一步判斷是否存在故障中斷ARA和進行的是讀還是寫操作判斷,最后判斷是一個還是兩個字節的讀或寫操作,從而實現讀1個字節、讀2個字節、寫1個字節和寫2個字節四個操作的其中之一。如果是串行通信I2C模式,則進一步判斷是讀還是寫操作,最后以總線的stop信號結束傳輸。
文檔編號H04L29/10GK102546611SQ20111044411
公開日2012年7月4日 申請日期2011年12月27日 優先權日2011年12月27日
發明者孫偉鋒, 常昌遠, 徐玉珉, 徐申, 時龍興, 王青, 陸生禮 申請人:東南大學