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