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