在聲納、雷達、圖像和語音等領域經常需要對海量數據進行并行、實時處理,除了信號的內容、形式和處理算法等有所不同外,通常可采用相同的硬件平臺進行處理。而目前國內在聲納、雷達和圖像等領域一般都各自獨立進行信號處理平臺的開發,這種狀況不僅導致資源浪費嚴重,而且產品的設計周期也大大延長。
本文研究的通用信號處理平臺就是鑒于聲納、雷達和圖像等領域信號處理的共性,設計基于DSP陣列技術、Vxworks嵌入式技術、TCP/IP網絡傳輸技術等先進技術的應用級系統開發平臺。系統采用模塊化設計,易于擴展和移植。通過不同的信號處理算法,可對海量數據進行實時并行多任務處理。
1 系統整體方案
研究表明,無論是對聲納信號的處理(如波束形成、譜估計等),還是對雷達信號的處理(如自適應濾波、數據融合等),基本都要求對所接收的多通道數據通過總線傳輸進行實時多任務處理。因此設計通用信號處理平臺需要考慮三方面問題:數據并行實時處理、實時多任務處理和數據傳輸總線選擇。
實現數據實時并行處理的關鍵在于信號處理器的選擇[1]。選用信號處理器必須兼顧數據處理的復雜性和實時性要求。DSP微處理器能夠實時高效地完成聲納信號或雷達信號處理中的波束形成、數字濾波、線普增強、數值內插等多種復雜的數值運算,而且它體積小、應用靈活、匹配器件豐富。因此本文選用DSP芯片作為通用信號處理平臺的數據處理中心。
實時多任務處理一般采用嵌入式實時操作系統。選用Vxworks是由于它具有下述顯著優點:提供對多種處理器的廣泛支持,具有完善的開發環境;具有開放的軟件接口;具有優異的實時性能和全面可靠的網絡功能;具有良好的可剪裁性,適用于各種嵌入式環境的開發。
在進行總線選擇時,考慮到VME總線具有高可靠性、高數據傳輸率和很強的容錯能力等特點,自從VME總線標準公布以來,已得到廣泛應用,表現出了極強的生命力。因此在通用信號處理平臺中選用了VME總線進行數據傳輸。 在考慮了通用信號處理平臺設計中的三項要求后,可得到如圖1所示的總體方案框圖。其中多通道前置處理機用于對來自信息接收端(如水聽器陣、天線陣等)的信號進行前置低噪放大、濾波、AGC放大和A/D變換等前置處理,轉換成可由DSP處理的數字信號;顯控分系統是依照不同的應用目的而設計的專用模塊,它可用來顯示幅度譜、頻譜、線譜、目標軌跡、姿態和圖像等多種信息。多通道前置處理機模塊和顯控分系統模塊都是定制模塊,需要按照不同的應用目的進行單獨設計,這里不作具體討論。DSP陣列機是本文重點研究的通用信號處理平臺。該陣列機基于VME總線,內嵌Vxworks操作系統,依據不同的算法對所接收的數據進行并行、多任務實時處理。
2 通用信號處理平臺設計
圖1中DSP陣列機由多塊基于VME總線的DSP并行信號處理板構成,處理板的數目可依照信號通道數目增減。由此可見,DSP并行信號處理板的設計是DSP陣列機設計的基礎,亦即通用信號處理平臺設計的基礎。
本文設計的通用信號處理板將AD公司高性能的浮點數字信號處理器ADSP21160與標準VME總線相結合,具有強大的信號處理能力和豐富的擴展能力。板內采用分布式存儲模式,以增強型超立方體拓撲結構的LINK口互連。這種結構使每個信號處理器都有專用的存儲空間,可以使每個信號處理器充分利用自身局部總線的帶寬,而LINK口可保證處理器間靈活、高速的通訊和連接;每個信號處理器分別通過前面板和背板提供LINK接口,以實現板間的高速連接并構成新的超立方體結構;信號處理板上安裝有FPDP子板,與多通道前置處理機中的數據采集模塊構成標準高速連接,同時也可與市場上的信號處理板兼容。通用信號處理板的結構框圖如圖2所示。
為了完成海量數據的并行處理,在圖2所示的通用信號處理板中采用了兩組共8片SHARC(Super Harva D Architecure Computer)級DSP處理器,每個處理器配有專用SRAM。之所以采用SHARC級處理器是由于其具有獨特的內核設計、超級哈佛體系結構、內部集成大容量雙端口RAM以及便捷的I/O通訊功能。這些特點使其在運算密集、數據吞吐量大的高端信號處理領域得到了廣泛應用。
系統中8片DSP分為兩組,組1由DSP0、DSP1、DSP2、DSP3構成,組2由DSP4、DSP5、DSP6、DSP7組成。只有DSP0可以通過局部總線接口與VME總線相連。它作為總線至板內的通路,配備有大容量DRAM。DSP4作為第二組的主節點,也配有大容量DRAM。
2.1 數據傳輸方式
SHARC級DSP處理器具有多種數據通信接口,如LINK口、串口以及JTAG口等,設計時可依照信息傳輸目的靈活應用。
在通用信號處理板設計中,LINK口是板內和板外的主要數據傳輸通路,精心設計LINK口的拓撲結構對提高板內甚至系統的并行性有著重要意義。超立方體結構以多維形式極大地增強了網絡通信能力[2]。該結構的優點是網絡全對稱,在節點連接、通信路徑長度、算法的嵌入、與其他連接形式的兼容之間提供了很好的平衡。在兩組DSP中,組內DSP兩兩互連,組間相對應的DSP兩兩相連。每個DSP有6個LINK口,其中4個進行板內互連,一個通過前面板與相鄰板相連,一個通過背板與相鄰板相連。
DSP處理器有兩個串口可用于處理器之間、處理器與外設之間的通信,通常使用點對點方式或TDMA方式。在通用信號處理板上,每個處理器分配一個串口至前面板,另一個連接至背板。這樣的連接結構是為了增加互連的靈活性,通過前面板或背板可進行板與板或板內處理器之間的串口連接。
JUTAG口主要提供硬件仿真器調試通路。在板內通過跳線,可控制調試處理器的數量。此外,在通用信號處理板上還通過FPDP子板與前級板連接,從而實現與前級板的高速數據通信,并可組成大型信號處理平臺。
2.2 VME總線接口
處理板的VME總線接口包括兩部分:用于DSP局部總線與VME總線信號調理的協調模塊和VME橋接模塊。協調模塊基于CPLD設計,主要完成DSP局部總線的控制,它由局部總線仲裁、雙向地址空間映射、讀寫時序控制、數據寬度控制、自動基地址控制、塊傳輸模式地址計數器、內部中斷管理、測試接口等部分組成;橋接模塊主要由VME橋接專用芯片TunDra SCV64及其外圍電路構成[3]。SCV64可提供主/從接口,符合VME64標準。在系統初始化時,DSP0首先對SCV64進行配置,包括傳輸模式控制、基地址配置、VME總線中斷處理器設置、塊傳輸控制、內部定時器設置等,信號處理板可通過VME總線進行通信。
2.3 時鐘驅動
在通用信號處理板中時鐘共有三種:DSP時鐘、DRAM時鐘、SCV64時鐘。其中DSP時鐘頻率為40MHz,兩組DSP時鐘可以有兩組時鐘驅動器且時鐘可以不同步;DRAM時鐘用來控制DRAM內部的狀態機,其選用的時鐘頻率也為40MHz,且不需要與DSP時鐘同步;SCV64需要大于32MHz的時鐘才能可靠工作,同時需要與DSP時鐘同步,在通用信號處理板中選用的SCV64時鐘頻率是40MHz。
2.4 信號處理板啟動過程
單板啟動時,DSP0首先通過EPRON方式啟動,然后由DSP0再對其余DSP進行啟動。在對板內其余DSP啟動時采用LINK口菊花鏈方式, 首先采用一點對多點方式啟動,即啟動組內另三個DSP和鄰組對應的DSP(即第二組的主節點DSP4);然后由DSP4采用一點對多點的方式啟動第二組內的其余DSP。
2.5 板內軟件開發
通用信號處理板軟件開發主要涉及三部分內容:板級啟動程序、基于Vxworks的系統驅動程序以及DSP網絡開發環境。板級啟動程序是指在信號處理板啟動時,DSP0對其余DSP的啟動操作程序、DSP0對SCV64和CPLD的初始化操作程序以及板內自檢程序等。系統驅動程序主要完成VME 橋接芯片的配置、對信號處理板的監測、總線資源的獨占、板內資源的讀寫、對各個中斷源的響應和處理、塊傳輸模式控制以及與應用程序的接口等。DSP網絡開發環境有兩種:一種是基于硬件方式,單板調試8片DSP或多板調試相連的DSP;另一種是基于軟件方式,通常采用Spectrum 公司的APEX軟件。
3 系統開發平臺與Vxworks的應用
在通用信號處理平臺中采用嵌入式實時操作系統Vxworks來完成實時、多任務工作。通常使用的Vxworks開發環境是WinDRiver公司提供的TornaDo