專利名稱:一種服務器及其可編程邏輯器件的遠程升級方法
技術領域:
本發明涉及服務器硬件研發和嵌入式軟件開發領域,特別涉及一種服務器及其可 編程邏輯器件的遠程升級方法。
背景技術:
可編程邏輯器件(programmable logic device, PLD)是一種通用集成電路,它的 邏輯功能按照用戶對器件編程來確定。一般的PLD的集成度很高,足以滿足設計一般的數 字系統的需要。這樣就可以由設計人員自行編程而把一個數字系統“集成”在一片PLD上, 而不必去請芯片制造廠商設計和制作專用的集成電路芯片了。JTAG(Joint Test Action Group,聯合測試行動小組)是一種國際標準測試協議 (IEEE 1149. 1兼容),主要用于芯片內部測試。現在多數的高級器件都支持JTAG協議,如 CPLD (Complex Programmable Logic Device,復雜可編程邏輯器件)、DSP (Digital Signal Processing,數字信號處理)、FPGA (Field-Programmable Gate Array,現場可編程門陣列) 器件等。標準的JTAG接口是4線TMS、TCK、TDI、TD0,分別為模式選擇、時鐘、數據輸入和數 據輸出線。JTAG最初是用來對芯片進行測試的,基本原理是在器件內部定義一個TAP (Test Access Port,測試訪問口)通過專用的JTAG測試工具對內部節點進行測試。JTAG測試允 許多個器件通過JTAG接口串聯在一起,形成一個JTAG鏈,能實現對各個器件分別測試。BMC(Baseboard Management Controller,基板管理控制器)支持行業標準的 IPMI 規范。該規范描述了已經內置到主板上的管理功能。這些功能包括本地和遠程診斷、控制 臺支持、配置管理、硬件管理和故障排除。服務器通常由多個板卡組成,很多板卡上都包含一個或多個PLD芯片來控制時序 信號及數據傳輸,每個PLD芯片都包含有一組JTAG引腳用來對其進行測試或固件升級。傳 統的服務器板卡中,可編程邏輯器件的JTAG引腳通過一個單獨的連接器引向板卡外部,工 程師通過調試器來對其進行本地調試。當服務器產品銷售到用戶手中時,若此時發現可編 程邏輯器件的固件存在缺陷或不夠完美等問題,要想再升級可編程邏輯器件的固件,只能 派工程師上門服務或將產品召回。
發明內容
本發明所要解決的技術問題是,如何實現遠程升級服務器中可編程邏輯器件的固 件。因此,提供一種服務器及其可編程邏輯器件的遠程升級方法。為了解決上述問題,本發明公開了一種服務器,包括可編程邏輯器件,基板管理控 制器(BMC),其中,所述BMC,通過以太網接收用戶端發送的數據,將所接收到的數據轉換為 符合標準聯合測試行動小組(JTAG)協議的數據格式,并通過通用輸入/輸出(GPIO)端口 將轉換后的數據燒錄到所述可編程邏輯器件內以實現升級。較佳地,上述服務器中,所述可編程邏輯器件包括如下一種或幾種復雜可編程邏輯器件(CPLD)、現場可編程門陣列(FPGA)、可編程邏輯器件(PLD)。
較佳地,上述服務器中,所述BMC將所接收到的數據轉換為符合標準JTAG協議的 數據格式,并通過GPIO端口將轉換后的數據燒錄到所述可編程邏輯器件內指所述BMC解析所接收到的數據,調用GPIO驅動接口函數,驅動GPIO端口生成仿真 波形,通過GPIO端口中的TDO端口向所述可編程邏輯器件輸出所生成的信號波形,以進行 數據燒錄。較佳地,所述BMC通過TDO端口向所述可編程邏輯器件輸出所生成的信號波形的 同時,所述BMC還通過GPIO端口中的TDI端口讀取所述可編程邏輯器件反饋的信號波形, 當可編程邏輯器件反饋的信號波形與所期望的信號波形不一致時,所述BMC在所述TDO端 口重新發送所生成的信號波形,以保證燒錄到所述可編程邏輯器件中的數據正確。本發明還公開了一種如上述的服務器中可編程邏輯器件的遠程升級方法,包括所述服務器通過以太網接收用戶端發送的數據,將所接收到的數據轉換為符合標 準JTAG協議的數據格式,并通過通用GPIO端口將轉換后的數據燒錄到所述可編程邏輯器 件內以實現升級。較佳地,上述方法中,所述可編程邏輯器件包括如下一種或幾種復雜可編程邏輯器件(CPLD)、現場可編程門陣列(FPGA)、可編程邏輯器件(PLD)。較佳地,上述方法中,所述服務器將所接收到的數據轉換為符合標準JTAG協議的 數據格式,并通過GPIO端口將轉換后的數據燒錄到所述可編程邏輯器件內指所述服務器中的BMC解析所接收到的數據,調用GPIO驅動接口函數,驅動GPIO端 口生成仿真波形,通過GPIO端口中的TDO端口向所述可編程邏輯器件輸出所生成的信號波 形,以進行數據燒錄。較佳地,所述服務器中的BMC通過TDO端口向所述可編程邏輯器件輸出所生成的 信號波形的同時,所述BMC還通過GPIO端口中的TDI端口讀取所述可編程邏輯器件反饋的 信號波形,當可編程邏輯器件反饋的信號波形與所期望的信號波形不一致時,所述BMC在 所述TDO端口重新發送所生成的信號波形,以保證燒錄到所述可編程邏輯器件中的數據正確。本發明實施例在實現服務器內的可編程邏輯器件的遠程升級的同時不增加服務 器板卡的硬件資源。且具有數據傳輸穩定,傳輸速度快的優點。
圖1為本實施例1中服務器的結構示意圖。
具體實施例方式下面結合附圖及具體實施例對本發明技術方案做進一步詳細說明。需要說明的 是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。實施例1本實施例提供一種服務器,可實現遠程升級,其結構如圖1所示,包括可編程邏輯 器件以及BMC,其中,在本實施例中,可編程邏輯器件包括CPLD、FPGA和PLD。在其他實施例 中,可編程邏輯器件不限于這些器件,也可以包括其他器件。其中,BMC,通過以太網接收用戶端發送的數據,將所接收到的數據轉換為符合標準JTAG協議的數據格式,并通過GPIO端口將轉換后的數據燒錄到所述可編程邏輯器件內 以實現升級。在本實施例中,服務器板卡上,所有的可編程邏輯器件與BMC鏈接成一個完整的 回路,如圖1所示。用戶端數據通過hternet傳輸到BMC中,由BMC來對用戶端數據進行 解碼。可見,用戶端數據的文件格式必須統一,否則BMC中解析數據包的應用程序將無法識 別。而目前比較流行的數據格式是SVF(Simple Vector i^rmat,簡單向量型文件格式)。 SVF是一種工業標準的用來描述JTAG鏈路操作的文件格式,由康柏等公司于1994年發布。 目前幾大可編程邏輯器件供應商如ALTERA和XILINX都在其自己的PLD設計工具中支持輸 出SVF格式的燒錄文件。因此,本實施例中,用戶端數據的文件格式統一為SVF。具體地,服務器實現遠程升級的過程主要包含以下幾個步驟用戶端利用所選用的PLD器件設計工具生成SVF格式的燒錄文件。在BMC中移植嵌入式操作系統,如Linux。在BMC中移植基于嵌入式操作系統的嵌入式Web服務器,如Boa。登錄嵌入式Web服務器提供的IP地址,利用嵌入式Web服務器提供的網絡服務功 能,將用戶端發來的數據(即SVF格式的文件)上傳到BMC的內存中。BMC編寫用于解析SVF文件的線程,同時調用底層GPIO驅動接口函數,驅動GPIO 生成仿真波形,即由GPIO端口中的TDO端口向可編程邏輯器件輸出所生成的信號波形,進 行數據燒錄以完成固件升級。由于本實施例利用BMC的GPIO來模擬JTAG協議,GPIO產生 的時序波形易受到BMC的中斷等影響,與JTAG協議的要求有偏差,容易導致固件升級失敗。 因此,在BMC開啟固件升級的線程時,關閉或暫停非必要的中斷及其它線程,保證GPIO輸出 波形的正確性。還有一些優選方案中,考慮到服務器中電磁輻射比較嚴重,信號在傳遞過程中容 易受到電磁干擾而發生畸變,必須進行校驗以確保程序運行的正確性。因此,本實施例中 JTAG鏈是一個完整的閉環鏈路(如圖1所示),由BMC中模擬的TDO向外輸出所生成的信 號波形,同時由BMC中模擬的TDI讀取可編程邏輯器件反饋的信號波形。并將TDI讀取反 饋回來的信號波形與所期望的信號波形(即預先估計的正確接收數據后應當反饋的信號 波形)進行比較,若出現不一致的情況,則認為數據傳輸有問題,即在TDO端重新發送,以保 證燒錄到可編程邏輯器件中的數據的正確性。實施例2本實施例來介紹實施例1所提出的服務器中可編程邏輯器件的遠程升級過程,即 為服務器利用其中的BMC,將遠程用戶端數據燒錄到服務器板卡可編程邏輯器件中,以實現 遠程升級服務器中可編程邏輯器件的固件。具體地,該過程如下服務器中的BMC的嵌入式Web服務模塊將數據從遠程用戶端傳輸至BMC內存中;BMC 再通過 GPIO(General Purpose Input Output,通用輸入 / 輸出)端 口模擬 JTAG協議,將所接收到的數據(即BMC內存中的數據)燒錄入可編程邏輯器件中。具體地, 服務器中的BMC解析所接收到的數據,調用GPIO驅動接口函數,驅動GPIO端口生成仿真波 形,通過GPIO端口中的TDO端口向可編程邏輯器件輸出所生成的信號波形,以進行數據燒 錄。本實施例中,可編程邏輯器件包括CPLD、FPGA和PLD中的一種或幾種。在其他實施例中,可編程邏輯器件不限于這些器件,也可以包括其他器件。還有一些優選方案中,服務器中的BMC通過TDO端口向可編程邏輯器件輸出所生 成的信號波形的同時,BMC還通過GPIO端口中的TDI端口讀取可編程邏輯器件反饋的信號 波形,當可編程邏輯器件反饋的信號波形與所期望的信號波形不一致時,BMC認為燒錄的數 據有誤,因此在TDO端口重新發送所生成的信號波形,以保證燒錄到所述可編程邏輯器件 中的數據正確。從上述實施例可以看出,本發明實施例利用BMC來對服務器中的可編程邏輯器件 進行控制升級,因此,在實現遠程控制的同時不增加服務器板卡的硬件資源。另外,本發明 實施例采用以太網進行遠程數據傳輸,因此,具有數據傳輸穩定,傳輸速度快的優點。以上所述,僅為本發明的較佳實例而已,并非用于限定本發明的保護范圍。凡在本 發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明的保護范 圍之內。
權利要求
1.一種服務器,包括可編程邏輯器件,其特征在于,該服務器還包括基板管理控制器(BMC),所述BMC,通過以太網接收用戶端發送的數 據,將所接收到的數據轉換為符合標準聯合測試行動小組(JTAG)協議的數據格式,并通過 通用輸入/輸出(GPIO)端口將轉換后的數據燒錄到所述可編程邏輯器件內以實現升級。
2.如權利要求1所述的服務器,其特征在于,所述可編程邏輯器件包括如下一種或幾種復雜可編程邏輯器件(CPLD)、現場可編程門陣列(FPGA)、可編程邏輯器件(PLD)。
3.如權利要求1或2所述的服務器,其特征在于,所述BMC將所接收到的數據轉換為符合標準JTAG協議的數據格式,并通過GPIO端口 將轉換后的數據燒錄到所述可編程邏輯器件內指所述BMC解析所接收到的數據,調用GPIO驅動接口函數,驅動GPIO端口生成仿真波 形,通過GPIO端口中的TDO端口向所述可編程邏輯器件輸出所生成的信號波形,以進行數 據燒錄。
4.如權利要求3所述的服務器,其特征在于,所述BMC通過TDO端口向所述可編程邏輯器件輸出所生成的信號波形的同時,所述BMC 還通過GPIO端口中的TDI端口讀取所述可編程邏輯器件反饋的信號波形,當可編程邏輯器 件反饋的信號波形與所期望的信號波形不一致時,所述BMC在所述TDO端口重新發送所生 成的信號波形,以保證燒錄到所述可編程邏輯器件中的數據正確。
5.一種如權利要求1所述的服務器中可編程邏輯器件的遠程升級方法,其特征在于, 該方法包括所述服務器通過以太網接收用戶端發送的數據,將所接收到的數據轉換為符合標準聯 合測試行動小組(JTAG)協議的數據格式,并通過通用輸入/輸出(GPIO)端口將轉換后的 數據燒錄到所述可編程邏輯器件內以實現升級。
6.如權利要求5所述的方法,其特征在于,所述可編程邏輯器件包括如下一種或幾種復雜可編程邏輯器件(CPLD)、現場可編程門陣列(FPGA)、可編程邏輯器件(PLD)。
7.如權利要求5或6所述的方法,其特征在于,所述服務器將所接收到的數據轉換為符合標準JTAG協議的數據格式,并通過GPIO端 口將轉換后的數據燒錄到所述可編程邏輯器件內指所述服務器中的BMC解析所接收到的數據,調用GPIO驅動接口函數,驅動GPIO端口生 成仿真波形,通過GPIO端口中的TDO端口向所述可編程邏輯器件輸出所生成的信號波形, 以進行數據燒錄。
8.如權利要求7所述的方法,其特征在于,所述服務器中的BMC通過TDO端口向所述可編程邏輯器件輸出所生成的信號波形的同 時,所述BMC還通過GPIO端口中的TDI端口讀取所述可編程邏輯器件反饋的信號波形,當 可編程邏輯器件反饋的信號波形與所期望的信號波形不一致時,所述BMC在所述TDO端口 重新發送所生成的信號波形,以保證燒錄到所述可編程邏輯器件中的數據正確。
全文摘要
本發明公開了一種服務器及其可編程邏輯器件的遠程升級方法,涉及服務器硬件研發和嵌入式軟件開發領域。其中,本發明公開的服務器,包括可編程邏輯器件和BMC,其中,所述BMC,通過以太網接收用戶端發送的數據,將所接收到的數據轉換為符合標準JTAG協議的數據格式,并通過通用GPIO端口將轉換后的數據燒錄到所述可編程邏輯器件內以實現升級。本發明實施例在實現服務器內的可編程邏輯器件的遠程升級的同時不增加服務器板卡的硬件資源。且具有數據傳輸穩定,傳輸速度快的優點。
文檔編號H04L29/08GK102130951SQ20111006048
公開日2011年7月20日 申請日期2011年3月14日 優先權日2011年3月14日
發明者劉軍勝, 婁山林 申請人:浪潮(北京)電子信息產業有限公司