基于CPLD的多DSP及FPGA遠程加載設(shè)計
摘要:介紹了一種以CPLD為基礎(chǔ)的對多DSP和FPCA芯片實現(xiàn)程序遠程更新、加載的設(shè)計方法。詳細分析了軟硬件架構(gòu)及具體實施方案,對以DSP+FPCA為架構(gòu)的信號處理模塊實現(xiàn)遠程更新、加載,有重要的使用價值。
關(guān)鍵詞:遠程加載;CPLD;FPGA器件;DSP
隨著硬件技術(shù)的大力發(fā)展和加工丁藝技術(shù)的不斷提升,芯片技術(shù)日益成熟,軟件無線電技術(shù)得到廣泛應(yīng)用和迅猛發(fā)展。無線電系統(tǒng)在整體體系結(jié)構(gòu)上發(fā)生了重大變化,正沿著綜合化、模塊化、通用化和智能化的方向快速推進。無線電系統(tǒng)將模塊化、標準化的硬件構(gòu)成基本平臺,通過軟件加載技術(shù)來實現(xiàn)盡可能多的功能,為多種信號的功能綜合和互聯(lián)互通提供了技術(shù)保障。隨著模塊應(yīng)用靈活性要求的不斷增加,軟件維護及升級需求的日益迫切,給軟件加載技術(shù)提出了更高要求。本文提出了一種基于CPLD的多處理器遠程加載管理設(shè)計應(yīng)用方案,系統(tǒng)實現(xiàn)了從遠端下發(fā)命令字和更新數(shù)據(jù)即可完成模塊的程序更新升級和重新加載,實現(xiàn)軟件維護和模塊功能切換,滿足日益復(fù)雜的系統(tǒng)使用要求。
1 數(shù)字處理模塊
數(shù)字處理模塊主要完成基帶信號調(diào)制解調(diào)、RS編解碼算法實現(xiàn)、收發(fā)通道實時控制、導(dǎo)航算法實現(xiàn)、信息層的協(xié)議實現(xiàn)以及大量的數(shù)據(jù)融合算法實現(xiàn)等。硬件設(shè)計采用了FPGA+DSP的設(shè)計構(gòu)架,以1顆Altera公司的Stratix系列FPGA和4顆TI公司的DSP作為設(shè)計核心完成以上功能實現(xiàn),框圖如圖1所示。系統(tǒng)要求數(shù)字處理模塊要適應(yīng)系統(tǒng)通用化和智能化的設(shè)計要求,具備遠程自動更新升級、加載等功能,為系統(tǒng)功能多樣化、維護簡易化打下基礎(chǔ)。根據(jù)系統(tǒng)要求和模塊設(shè)計實際,結(jié)合CPLD芯片穩(wěn)定性高、設(shè)計靈活的自身特點,確定采用CPLD作為整個數(shù)字處理模塊的功能管理芯片,實現(xiàn)對整個處理模塊的電源管理、狀態(tài)檢測、上電復(fù)位管理、各DSP及FPGA的程序加載管理、遠程更新等功能處理。
當系統(tǒng)需要對本模塊的軟件進行升級或者模塊功能重構(gòu)時,系統(tǒng)將更新命令字和更新內(nèi)容通過SEDERS總線下發(fā)至DSP4,再送入CPLD進行解碼、識別分類,根據(jù)指令要求啟動CPLD對FLASH中的相應(yīng)空間進行擦除、更新操作。當操作完成后,CPLD強行啟動DSP或FPCA,重新加載FLASH中的程序,完成系統(tǒng)軟件升級或者模塊功能重構(gòu)任務(wù)。
[!--empirenews.page--]
2 遠程更新硬件實現(xiàn)
遠程更新和加載就是系統(tǒng)具有從遠端通過下發(fā)指令或參數(shù)對處理模塊中存儲的應(yīng)用程序進行修改升級的功能,模塊內(nèi)部控制單元啟動加載模塊,完成模塊功能重構(gòu)。反映到硬件功能就是主控芯片要具備擦除、讀寫模塊內(nèi)存儲芯片的功能,可以控制模塊內(nèi)的各處理器及可編程器件重新加載運行新程序。數(shù)字處理模塊采用4顆DSP芯片和1顆FPGA來完成系統(tǒng)的數(shù)據(jù)處理任務(wù),因此在系統(tǒng)升級時需要對4個處理器或部分處理器及FPCA的程序進行更新并重新加載。所以主控芯片要具備擦除、讀寫各DSP和FPCA芯片掛接的FLASH芯片,并能對其完成程序加載。
硬件設(shè)計時FLASH芯片采用了集中式設(shè)計,多個DSP芯片和FPGA分段共享同一片大容量FLASH。共享存儲器有利于提高模塊可靠性、模塊小型化設(shè)計、有利于主控模塊對其操作控制,有效降低功能實現(xiàn)復(fù)雜度,也有利于擴充模塊功能。一般FPGA設(shè)計多采用掛接與之匹配的FLASH芯片,這些專用存儲芯片不但具備專用接口與FPGA匹配,而且內(nèi)部嵌入了FPCA信息,硬件設(shè)計時只需要將FPCA設(shè)計成主動加載模式即可。系統(tǒng)上電后FPGA將自動識別存儲器并完成程序加載,整個過程不需要外部干預(yù)。但對于通用存儲芯片來說FPGA是無法實現(xiàn)自動加載的。而且這種遠程控制也是要通過外部干預(yù)來實現(xiàn)的,所以FPGA只能設(shè)計為被動模式,通過主控模塊完成加載過程。而ALTERA公司專門研發(fā)了一款MAXⅡ系列的CPLD來實現(xiàn)StratixⅢ系列FPGA的加載管理CPLD硬件框圖如圖2所示。
2.1 通用接口存儲器(CFI Flashl更新
系統(tǒng)將更新數(shù)據(jù)從上位機下發(fā)至處理模塊。經(jīng)過CPLD解碼、識別系統(tǒng)更新要求。CPLD將啟動擦寫模塊,對CFI_Flash的相應(yīng)空間段進行數(shù)據(jù)擦除操作,同時將更新數(shù)據(jù)寫入存儲器中,實現(xiàn)系統(tǒng)程序升級更新。其流程框圖如圖3所示。
2.2 程序重構(gòu)
當CPLD按照系統(tǒng)要求將CFI Flash中程序更新完畢后,就會自動喚醒加載模塊,對已更新的處理器或FPGA的程序進行重新加載。DSP的加載相對簡單,將DSP設(shè)計成主機口加載模式,設(shè)計框圖如圖4所示。由CPLD強行復(fù)位相應(yīng)DSP使其進入加載狀態(tài),然后從CFI_Flash中分別讀出各DSP的目標數(shù)據(jù),按照主機口加載時序?qū)懭隓SP的內(nèi)部靜態(tài)存儲區(qū),加載完畢再對DSP初始化控制寄存器進行設(shè)置,完成加載過程并喚醒各DSP重新運行新程序。完成模塊處理器的功能重構(gòu)工作。
[!--empirenews.page--]
對Stratix系列的FPGA而言,加載過程相對復(fù)雜,實現(xiàn)起來比較困難,因為FPGA在加載過程中不僅要滿足時序控制,而且加載的數(shù)據(jù)內(nèi)部還含有一定的器件信息,需要滿足消息格式和CRC校驗才能順利完成加載。而器件信息和CRC校驗方程用戶是無法得到的,因此只能采用Alte ra公司設(shè)計的MAXⅡ系列CPLD來完成加載過程。這款CPLD內(nèi)部自帶一個并行加載模塊(PARALLEL FLASHLOADER),此模塊對FPCA有專用加載接口,內(nèi)部嵌入了FPGA的加載控制時序及器件信息,象一道橋梁將FPCA和通用存儲器無縫連接,但硬件設(shè)計時FPGA必須設(shè)置為被動加載方式,如圖5所示。系統(tǒng)需要對FPGA程序重構(gòu)時,只需通過邏輯啟動CPLD的PFL模塊,PFL模塊從通用存儲器中讀取配置數(shù)據(jù),并且將配置數(shù)據(jù)進行格式轉(zhuǎn)換打包、CRC校驗后按照FPGA的加載時序?qū)懭隖PGA內(nèi)部,然后上拉配置完成標志位來啟動新程序運行,實現(xiàn)FPGA的功能重構(gòu)。
利用MAXⅡ系列CPLD不僅可以實現(xiàn)單個FPGA程序的加載,也可以根據(jù)實際應(yīng)用需求通過硬件擴展以及在CPLD中增加澤碼控制邏輯實現(xiàn)多個FPCA的加載。滿足系統(tǒng)復(fù)雜的使用要求。
3 結(jié)束語
本設(shè)計采用MAXⅡ系列CPLD作為數(shù)字處理模塊的主控芯片,來實現(xiàn)整個模塊工作狀態(tài)檢測、時序管理以及多個DSP芯片和FPGA芯片的程序更新升級和加載,充分利用MAXⅡ系列CLPD芯片的硬件資源、合理調(diào)用內(nèi)嵌加載邏輯模塊,有效規(guī)避FPGA芯片與通用Flash芯片接口不匹配帶來的設(shè)計缺陷,簡化了FPGA芯片程序加載復(fù)雜度。不僅可以遠程控制更新重構(gòu),還可實現(xiàn)動態(tài)重構(gòu),這都給處理器芯片以及FPGA芯片的加載方式和應(yīng)用提出了更高的要求。
本模塊已經(jīng)隨某通信終端完成了試飛鑒定測試,模塊各項指標優(yōu)異、遠程更新、重構(gòu)功能穩(wěn)定可靠,均達到了設(shè)計要求。實現(xiàn)了系統(tǒng)模塊通用化,波形功能多樣化,使用維護智能化的設(shè)計要求。