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