基于DSP的遠程程序更新方法很多[12],但在燒寫的時候均要求系統不能斷電,否則將造成整個系統軟件崩潰,只能人工通過JTAG口調試燒寫才能恢復。如何有效提高系統維護的可靠性成為一個重要的問題。本文創新地提出基于多DSP的程序分片、數據分段的高可靠性遠程更新軟件設計,并列舉了多個增強可靠性的應用方法。本文以某型號無線遠程監控系統為例,具體描述該設計的實際應用。
1 系統結構
本系統處理數據多,計算量大,又有很強的實時性要求,選用ADI公司的高速處理芯片TigerSharc201s。Flash選用JS28F128,容量為256 Mb。系統設計采用兩片ADSP并行的模式。系統結構如圖1所示,TS201A為主DSP,TS201B為從DSP。主DSP經Flash采用EPROM加載方式,再通過Link口引導加載從DSP。本處理系統支持多種工作模式,監控中心通過內部協議遠程管控處理系統。從DSP實現信號處理計算,把處理計算結果傳遞給主DSP;主DSP實現管控模塊,通過外圍芯片FPGA的串口協議發送給無線傳輸設備,通過CDMA模塊用無線網絡的形式,發送到監控中心軟件。監控中心通過協議對其可實現遠程管理,包括數據庫文件更新、程序更新和狀態模式轉換。
圖1 系統結構
2 遠程更新原理及實現
2.1 設計原理
Flash內部分為256個block,可以擦寫任意位置的block段,沒有擦寫的block數據不會丟失。根據這一特性,把兩片DSP軟件程序和分段的數據庫的燒寫位置分開。Flash空間地址分配如圖2所示。
圖2 Flash空間地址分配示意圖
監控中心按照內部協議把數據庫或程序文件分包,通過無線網絡下發到以TS201為核心的信號處理機。處理機接收完數據后,通過自身的燒寫功能,把新數據自動寫入Flash中。重新啟動后,DSP重載實現遠程分片更新程序的功能。程序的初始化設置中,每次會自動讀回Flash中的數據,完成更新數據庫參數的功能。
為了增加遠程更新的可靠性,把兩片DSP程序分開位置燒寫。由于主DSP只涉及管理控制功能,所以把主DSP程序作為整個系統的“殼”,一般不作更新。用從DSP實現其主要的性能計算,它的加載通過主DSP的Link口引導。這樣,大部分的在線維護和算法程序升級通過更新從DSP就能完成。在更新的過程中,主DSP程序不會受影響,增強了系統的可靠性,也不必擔心突然掉電會導致系統軟件的崩潰。