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