本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體的說是一種多路服務(wù)器fpga版本同步的方法。
背景技術(shù):
多路服務(wù)器系統(tǒng)中,一般包含多個主板。例如可能包含4個主板,每個主板集成2個cpu,主板插入背板上,通過背板連接互聯(lián)成多路服務(wù)器系統(tǒng)。在每個主板上會集成一個fpga(field-programmablegatearray,現(xiàn)場可編程門陣列),對板卡進行時序控制、邏輯控制。隨著產(chǎn)品的功能修正、開發(fā)升級,fpga的程序版本會不斷更新,測試人員或維護人員需要將服務(wù)器上所有fpga的程序版本進行升級。
在測試及維護階段,不排除有操作失誤或測試時板卡混插等原因,導(dǎo)致部分主板程序更新,其他主板程序未更新的情況發(fā)生。在同一服務(wù)器上各主板的程序版本不一致,可能會導(dǎo)致服務(wù)器系統(tǒng)功能異常。
目前的技術(shù)中fpga程序更新方案一般有兩種:1、燒錄器燒錄,對板卡進行上電后采用燒錄器連接板卡進行燒錄;2、采用系統(tǒng)內(nèi)的管理控制器,通過專用的燒錄接口向fpga燒錄程序;多fpga是可以通過切換器切換燒錄鏈路,附圖1所示為一個舉例。但是需要測試或維護人員登錄管理控制器控制界面,并手動執(zhí)行。
實際操作時,無論采用哪種方案,主要靠測試或維護人員手動操作更新代碼,并自行檢查版本更新情況、檢查版本一致性。目前這兩種方案過于依賴相關(guān)人員,可靠性有限。萬一操作失誤,對服務(wù)器的穩(wěn)定可靠工作都會有不良影響。
fpga一般外接一個存儲器,用于存儲其自身程序。fpga從存儲器中讀取程序完成自身配置。此外,fpga的程序通過其專用jtag接口更新。串口是電子通信領(lǐng)域常用的簡單數(shù)據(jù)通信接口,能夠傳輸?shù)退傩畔?,并且易于實現(xiàn)。
技術(shù)實現(xiàn)要素:
本發(fā)明針對目前技術(shù)發(fā)展的需求和不足之處,提供一種基于移動終端的機頂盒遙控器的實現(xiàn)方法。
本發(fā)明所述一種多路服務(wù)器fpga版本同步的方法,解決上述技術(shù)問題采用的技術(shù)方案如下:所述一種多路服務(wù)器fpga版本同步的方法,在多路服務(wù)器系統(tǒng)中,兩個不同主板上的fpga通過串口連接,用于互相傳播自身程序版本,每個主板上fpga連接一個存儲器用于存儲自身程序;
同時,通過串口連接的兩個fpga通過jtag接口互相連接,其中一個fpga的gpio接口接到另一個fpga的程序燒錄專用的jtag接口上,支持第一個fpga通過jtag接口更新第二個fpga的程序,同樣,另一個fpga的gpio接口連接到第一個fpga的程序燒錄專用的jtag接口上。
優(yōu)選的,采用常規(guī)手段向各個主板的fpga燒錄程序后,進行fpga版本同步;主要步驟如下:
各個主板的fpga啟動后,通過串口互相傳輸各自的版本號,其中一個fpga收到另一個fpga的版本號后與自身版本號比對,若版本一致或其版本較低,則不進行其他操作;若該fpga版本號高于另一個fpga的版本號,則通過jtag接口向另一個fpga更新程序,完成版本同步。
優(yōu)選的,若多個服務(wù)器系統(tǒng)中含有四個fpga時,各個fpga通過串口進行環(huán)狀連接,每個fpga通過串口得知其他fpga的版本號;jtag接口也呈環(huán)狀連接,fpga1版本高于fpga2時,通過jtag接口向fpga2更新程序,完成版本同步;以此類推,fpga2向fpga3更新程序,fpga3向fpga4更新程序,fpga4向fpga1更新程序。
本發(fā)明所述一種多路服務(wù)器fpga版本同步的方法,與現(xiàn)有技術(shù)相比具有的有益效果是:本發(fā)明采用各個fpga間程序版本號互相傳輸,版本互相更新的方法,解決了fpga版本不一致對服務(wù)器的穩(wěn)定可靠工作都會有不良影響的問題;并且,不再依靠測試或維護人員手動操作更新代碼,并自行檢查版本更新情況、檢查版本一致性;使服務(wù)器主板的fpga版本能自動保持一致,將大大提高服務(wù)器的可靠性。
附圖說明
附圖1為現(xiàn)有方案中程序燒錄方式的示意圖;
附圖2為實施例1所述多路服務(wù)器fpga版本同步的方法的示意圖;
附圖3為實施例2所述多路服務(wù)器fpga版本同步的方法的示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,對本發(fā)明所述一種多路服務(wù)器fpga版本同步的方法進一步詳細說明。
本發(fā)明提出一種多路服務(wù)器fpga版本同步的方法,在多路服務(wù)器系統(tǒng)中,兩個不同主板上的fpga通過串口連接,用于互相傳播自身程序版本,每個主板上fpga連接一個存儲器用于存儲自身程序;
同時,通過串口連接的兩個fpga通過jtag接口互相連接,其中一個fpga的gpio接口(generalpurposeinputoutput,通用輸入/輸出)接到另一個fpga的程序燒錄專用的jtag接口上,以便支持第一個fpga通過jtag接口更新第二個fpga的程序,同樣,另一個fpga的gpio接口連接到第一個fpga的程序燒錄專用的jtag接口上。
采用常規(guī)手段向各個主板的fpga燒錄程序后,進行fpga版本同步;主要步驟如下:
各個主板的fpga啟動后,通過串口互相傳輸各自的版本號,一個fpga收到另一個fpga的版本號后與自身版本號比對,若版本一致或其版本較低,則不進行其他操作;若該fpga版本號高于另一個fpga的版本號,則通過jtag接口向另一個fpga更新程序,完成版本同步。反過來,另一個fpga的版本號高于該fpga的版本號時向該fpga更新程序。
實施例1:
本實施例所述基于多路服務(wù)器fpga版本同步的方法,如附圖2所示,多路服務(wù)器中,設(shè)置兩個fpga的情況:兩個fpga連接自己的存儲器,用于存儲自身的程序。fpga1和fpga2通過串口連接,便于互相傳播自身程序版本。fpga1和fpga2通過jtag接口互相連接。其中fpga1的gpio接口接到fpga2的程序燒錄專用的jtag接口上,以便支持fpga1通過該接口更新fpga2的程序,同理fpga2的gpio接口也接到fpga1的程序燒錄專用的jtag接口上。
采用常規(guī)手段向各個fpga燒錄程序后,進行版本同步:1)fpga啟動后,通過串口互相傳輸各自的版本號;2)fpga1收到fpga2的版本號后與自身版本號進行比對,如果版本一致,或fpga1版本較低,則不進行其他操作;若fpga1的版本號高于fpga2的版本號,則通過jtag接口向fpga2更新程序;來完成版本同步;3)fpga2的判斷操作機制與fpga1的完全相同,fpga2版本高于fpga1時向fpga1更新程序。
實施例2:
本實施例所述基于多路服務(wù)器fpga版本同步的方法,對于多路服務(wù)器中含有兩個以上fpga進行版本同步,如附圖3所示,針對4個fpga進行版本同步的情形:
各個fpga通過串口進行環(huán)狀連接,每個fpga通過串口得知其他fpga的版本號。jtag接口也呈環(huán)狀連接,fpga1向fpga2更新程序,fpga2向fpga3更新程序,fpga3向fpga4更新程序,fpga4向fpga1更新程序。其工作過程與實施例一類似,例如,fpga1版本高于fpga2時,通過jtag接口向fpga2更新程序,完成版本同步。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的權(quán)利要求書的且任何所屬技術(shù)領(lǐng)域的普通技術(shù)人員對其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護范圍。