引 言
在雷達系統的數字信號處理中,其主要特點是數據流量大、運算量大和處理的實時性,單片高性能的DSP芯片也不能滿足處理要求,必須采用多DSP板作為數字信號處理平臺。開發復雜的多DSP板硬件平臺需要投入大量的人力而且開發風險較大,購買專業公司開發的穩定、可靠的通用數字信號處理平臺是數字信號處理領域發展的趨勢。設計人員只需致力于信號處理算法的研究,利用高級語言編寫算法軟件來完成系統要求,從開發復雜的硬件平臺中解脫出來,降低了整個信號處理系統的開發風險,縮短了開發周期。本文介紹一種通用的G4數字信號處理硬件平臺,該平臺選用基于搶占式多任務VxWorks實時操作系統作為平臺的操作系統,它能管理各種獨立任務的執行,每個任務能及時響應外部事件并且能及時處理。它為整個雷達信號處理能實時完成處理提供了很好的系統軟件支持。
G4硬件平臺的基本結構和特點 G4平臺基本結構
G4 DSP功能框圖如圖1所示。
圖1 G4 DSP功能框圖
如圖1 所示,G4 硬件平臺是一塊由4 片CPU組成的數字信號處理板, CPU是摩托羅拉公司PowerPC系列MPC7410 RISC的微處理器,處理器支持對稱多處理器技術( SMP) ,內核時鐘500 MHz,包含多個運算處理單元,支持哈佛結構和指令流水線操作,具有SIMD特點,在一個時鐘周期可執行8條指令;集成了128bit AltiVec執行單元,14 GFLOPS數據處理能力,能夠快速地完成卷積、FIR 濾波器和FFT等數字信號處理算法; 內部總線是60X總線(32位地址總線和64位數據總線) ,100MHz的外圍設備總線速度,包含32kbyte一級指令Cache和數據Cache, 支持最高2Mbit的外部L2 CACHE,支持多種內存尋址的內存管理模式。每一個處理器與外圍I/O 接口通信通過CPC710 橋的PC I總線實現,處理器間通過64 bit、66MHz Intel 21555非透明PCI橋互聯,其峰值帶寬為528Mbyte / s。
G4平臺的基本特點
G4平臺的基本特點為:
(1) 每一節點是獨立的, 包含大容量內存SDRAM (256 Mbyte) , 16 Mbyte FLASH 用于存放系統B IT、用戶應用程序和常數表等;
(2)每一節點包含Xilinx 7410XC95144XV PLD中斷控制器,節點間可以相互發中斷請求和中斷回應,用于節點間通訊握手以及板內與板外間的通信握手;
(3)每一節點包含RS232串口,用于對節點進行軟件調試;每一節點都有JTAG接口;節點2 和4提供了64 bit/66MHz PMC (PMC - IEEE P1386. 1) ,它是一種高速的、工業標準的擴展PCI接口,可以用于擴展為圖形卡、板間通信卡、高速通信(ATM、ISDN等)卡、多媒體、或用戶根據需要進行擴展使用,峰值傳輸帶寬為1 056 Mbyte / s;節點3帶有32 bit/33MHz PCI總線,用于板間通信,或作其他擴展使用;
(4)節點1 提供VME64、100BaseT Ethernet (通過CPC710 上的32 bit/33 MHz PC I總線) ; VME64與板外的進行通信,其峰值帶寬為80 Mbyte /s; Ethernet主要用來調試; 可以單獨或多用戶同時對G4DSP板的每一個節點進行調試。
(5)節點間通過PC I橋互聯,通過PC I地址映射,每一節點都能“看見”對方的內存,能直接對其
他節點內存進行讀寫;支持DMA傳輸,完成點對點的高速數據傳輸。
G4平臺支持的軟件
G4平臺的軟件支持是開放和獨立的,不局限于某一種操作系統和某一種信號處理庫,為最大限度地保護用戶的軟件投資并快速上手開發應用程序,有利于算法的開發。
(1)支持風河公司的VxWorks/VxMP實時操作系統和VSPWorks DSP RTOS虛擬單處理器實時操作系統,開發人員面向單處理器系統編寫的源代碼,可在任意數量的處理器上執行。VSPWorks會協調好處理器之間的一切通信機制,最多可以支持1 000個處理器;
(2)支持MPI軟件公司的VSI/Pro VSIPL和Dy 4Systems公司的IXLibs- AV數字信號處理庫,專門針對MPC7410進行優化的數字信號處理算法庫,包括FFT、FIR濾波器和圖像處理函數等,執行效率高。
(3)節點間通信可以使用VxWorks實時操作系統中的共享內存組件VxMP。VxMP的數據結構駐留在所有CPU 的共享內存區域, 最多支持20個CPU。MPI軟件公司的ChaMPIon/RT是一種實時消息傳遞接口標準,采用時間驅動、事件驅動、優先權驅動編程模式和混合編程模式,并采用了面向對象編程技術,它使MP I/RTAPI更易于使用。也可以使用RadStone公司專門為G4平臺開發的消息傳遞接口RMP,充分利用硬件資源來進行消息傳遞,是一種低消耗、高效的消息傳遞方式。它們主要用于不同處理器上不同任務間的通信、同步和互斥,執行效率有所不同,都運行在VxWorks系統的應用層。
VxWorks實時操作系統的優點
VxWorks是美國風河公司推出的一個具有微內核、可裁剪的高性能、強實時操作系統,它主要有以下的優點:
(1)VxWorks具有高度可剪裁的微內核結構,需極少的RAM空間和ROM空間,內核與硬件無關,支持許多種嵌入式芯片,只需開發與硬件有關的BSP包即可,用戶可以根據需要對VxWorks直接進行配置和修改;
(2)VxWorks能快速高效地對多任務進行調度,支持中斷驅動的優先級搶占式調度和時間片輪轉調度;任務間的通訊快速靈活,任務上下文切換快,切換時間確定;任務的狀態可以動態地改變,可以在任意時刻改變任務的優先權、刪除任務等;任務也可以禁止由內核調度;中斷延遲時間短,延遲時間確定,是微秒級的; VxWorks系統任務和應用程序任務運行在SuperMode模式,系統調用開銷小;
(3)VxWorks系統具有很好的穩定性和可靠性,某一任務運行出錯,操作系統掛起當前出錯的任務,在系統中的其他任務繼續執行,并可以恢復出錯的任務;
( 4)VxWorks具有靈活方便的I/O系統,驅動程序可以在用戶的任務堆棧中運行,用戶可以隨意地添加設備的驅動程序,既可在VxWorks啟動時添加設備的驅動程序,也可在應用程序任務中隨時添加和刪除設備驅動程序;
(5)VxWorks支持強大的網絡功能,提供了TCP /IP協議、UDP / IP、FTP和TFTP服務器以及遠程過程調用RPC等,可以用于宿主機和目標機的調試或其他的網絡通信,通過TCP / IP支持多宿主機對同一個目標機進行程序下載、調試,在G4平臺上可以配置成同一宿主機對多個CPU進行程序下載、調試;
(6)提供一個直觀的、可視化的、用戶可擴充的交叉集成開發環境Tornado;采用c / c + +語言進行開發,提供了高效交叉編譯器,編譯效率可達90%以上;Tornado IDE通過宿主機上的目標服務器與目標機的目標代理進行通信,可以靜態和動態地下載應用程序模塊;支持任務級和系統級調試;任務級調試,被調試的任務暫停執行,其他任務繼續執行,系統級調試每一個任務都停止執行; Tornado IDE提供了多種純軟件調試工具:WindView (軟件邏輯分析儀)可以看到程序在動態運行時發生的情況,如任務的狀態、占用CPU的時間等; Browser定時采樣工具,把采樣后的數據(如任務隊列、堆棧、占用內存的大小等)進行分析。Tornado能準確定位開發的應用程序在硬件平臺上運行時的錯誤狀態,幫助開發者縮短開發周期;嵌入式VxWorks作為G4硬件平臺的操作系統是較好的選擇。
在雷達數字信號處理中的應用 雷達數字信號處理主要是通過高速A /D采集雷達正交基帶回波信號,然后進行數字脈沖壓縮處理、雜波抑制、恒虛警和目標檢測,最后把目標信息數據傳送給雷達終端進行顯示。采用高速A /D采集雷達回波信號,和VxWorks完成大容量數據傳輸和實時性處理管理,合理劃分任務和安排處理時序是成功實現的關鍵。
基帶信號采集 回波信號的采集使用Interactive 電路與系統公司的ICS - 554四通道14bit A /D數據采集卡,可以用內部或外部時鐘采樣,最小采樣率30MHz,最高采樣率105MHz,內部和外部兩種觸發信號;標準的PMC 接口,帶1M邏輯門FPGA 的64bit/66MHzQL5064 PCI總線接口芯片,支持master/ target DMA突發傳輸方式,未使用完的FPGA資源可根據用戶的需要配置使用;兩片64 K ×72 bit FIFO緩存,可以編程控制進行單通道數據采集,兩通道或四通道同時采集,每兩通道各占一片FIFO,每片最大采樣128 K點,單通道最大各采樣256 K點;采用捕獲和持續兩種采樣模式,在捕獲模式每一次觸發采樣點數和(在FIFO緩存大小內)總的采樣點數,然后向CPU發中斷請求,要求從CPU從緩存中取走已采樣的數據都是可編程的;為多種操作系統提供了驅動程序,如Win2dowsNT、Windows 2000、Windows XP和VxWorks實時操作系。ICS - 554的功能框圖如圖2所示。
圖2 ICS - 554框圖
在實際應用中, ICS - 554插在節點4的PMC標準接口上,采用10 kHz主觸發脈沖作為外觸發信號, 30MHz采樣時鐘, I、Q兩路采樣,每一個主觸發脈沖采樣2 048點,每一個CP I周期內要求采88個主觸發脈沖周期的數據。考慮到每一路F IFO最大只能采256K點和DMA 方式下PC I總線的實際傳輸率,保證每一個CPI的數據不會丟失和FIFO不會溢出,采用每42個主觸發脈沖周期就請求CPU開始接收在F IFO 緩存中的數據,先接收完F IFO1 中的數據,再接收F IFO2 中的數據,以后循環進行數據傳輸,直到禁止A /D采樣為止。
時序安排 信號處理系統接收雷達終端發來的控制命令和正交回波信號經過A /D采樣后的數字信號,雷達終端在CP I信號的下降沿通過VME總線發當前CPI信號的控制命令到G4板的VME內存映射空間,節點1把這些控制命令碼值拷貝到全局共享內存,控制命令碼值包括模式碼,探測距離碼等值;然后通知節點4取出當前模式碼,節點4根據模式碼對ICS- 554進行配置和允許ICS - 554開始采數并存入FIFO中。ICS - 554每采完44個主觸發脈沖周期的數據后,向節點4發中斷請求,節點4接到請求后通過節點1的全局共享內存查詢當前控制命令,接著根據模式碼配置QL5064的DMA控制器。目標內存是節點1上的共享內存,啟動DMA傳輸,把A /D采樣存入FIFO 中的數據傳給節點1, DMA傳輸完成后,節點4向節點1發出中斷請求,節點1響應請求后,查詢全局共享內存的控制命令,根據模式碼開始進行脈沖壓縮、雜波抑制、恒虛警和目標檢測等信號處理。信號處理完后通過VME總線把目標信息數據傳送到VME空間,通知雷達終端取走目標和狀態信息;其它節點的數據也是通過節點4以DMA方式傳到內存中進行處理,處理方法與節點1相似,只是節點2、3和4的目標信息數據先傳到節點1,然后由節點1通過VME總線傳給雷達終端,每個節點都獨立處理一個CP I周期的數據。從A /D FIFO緩存中傳數到各節點的順序和信號處理順序時序如圖3所示。
圖3 時序圖
在一個CP I周期內,第一個陰影部分表示當前節點前42個主觸發周期內A /D采樣完成后由FIFO的DMA傳數到節點內存的時間,第二個陰影部分是后42個主觸發周期內A /D采樣完成后由FIFO的DMA傳數到節點內存的時間,但是由于采用DMA傳輸方式,不會占用CPU處理時間(除了中斷來時很短暫地打斷CPU的處理) ,相鄰節點的數據傳輸率比相對節點的傳輸率高。
任務劃分 劃分任務的原則是能夠在每個CPI周期內實時的接收雷達終端控制命令,并能接收經過A /D采樣的正交I、Q兩路回波信號,最后及時地把處理完成后的目標信息數據傳給雷達終端。節點1負責接收本節點的A /D采樣數據和進行數字信號處理,并把處理后的目標信息數據和節點2、3和4傳來的目標信息數據傳到VME空間,通知雷達終端及時取走數據。因此在節點1上劃分為6個任務:從節點4接收A /D采樣數據任務,優先級最高; 接收節點2、3和4的目標數據并能及時送給雷達終端的任務優先級較高, 3個任務的優先級相同;系統開機和模式轉換時查詢命令任務的優先級次高,能及時響應命令并能送給節點4,重新對ICS - 554進行新的工作模式的配置;信號處理任務的優先級最低,它能保證本節點數字信號處理完成的同時,不會影響其它任務的數據傳輸。
節點4主要完成管理ICS - 554 A /D數據采集和查詢模式碼。數據采集任務配置ICS - 554 AD傳送采集后的數據到本節點和其它節點,并通知它們開始處理數據,該任務的優先級最高;模式切換任務在模式切換時,接收節點1發來的控制命令并根據模式碼對A /D進行編程控制,該任務的優先級次高;信號處理任務保證節點4在接收到新的一幀數據來之前必須完成前一幀數據處理,每個CPI周期內,A /D每采集44個主觸發周期的數據后,產生的中斷要打斷信號處理任務2次,造成該任務切換頻繁,信號處理時間拉長,因此編寫算法程序時一定要考慮節約處理時間,最后向節點1發中斷請求,通過DMA方式把目標數據傳給節點1,再傳給雷達終端,該任務的優先級最低。
節點2和3接收A /D 數據采集任務的優先級最高,并在此任務中查詢模式碼。信號處理任務的優先級最低,處理完成后的目標數據通過DMA方式傳到節點1,再傳給雷達終端。該雷達信號處理涉及多種工作模式,這里只介紹了一種簡單工作模式任務劃分,其它模式的任務劃分不在此贅述。
開發中應注意的主要問題 在開發過程中,由于采用了RMP庫,它與ICS -554的驅動程序沖突,導致ICS - 554不能正常工作,并且RMP庫的通用性強,占用的系統資源多,實時性也相對較差。在實際應用中作者根據具體開發的需要充分利用G4節點間中斷握手和共享內存的特點,開發了適合自己的節點間通信庫,提高了資源的利用率并降低了通信時間,提高了數字信號處理實時處理能力。
數字信號處理庫最好選用IXLibs- AV,該庫和VSIPL庫都針對MPC7410的AltiVec技術進行優化編寫的。IXL ibs- AV 庫函數涉及矢量運算更底層些,處理速度比VSIPL 更快,但對程序員的要求較高; VSIPL 庫通用性較高,對程序要求低,但是處理速度較慢,并且在運行過程中, VSIPL 庫有時會把G4板上引導FALSH中的引導程序沖掉,導致G4板不能啟動。
節點間的通信盡量采用“寫”方式,寫數速度比讀數速度快;并且往相鄰節點寫數速度比相對節點寫數快, ICS - 554的DMA引擎從F IFO傳輸數據到本節點速度最快;節點間通信時避免總線沖突。
G4板上各個節點的處理程序最好是獨立、不相同的,不但占有的系統資源少而且處理速度快; 4個節點處理程序既可以從節點1上的User Flash中引導,也可以從各自的User Flash中引導。G4板元器件密度大,發熱量大, G4板的散熱處理是平臺穩定、可靠工作的前提條件。
結束語 通過G4硬件平臺和搶占式多任務VxWorks實時操作系統的結合使用,成功地實現了某雷達系統的實時數字信號處理,這種解決方案也可在聲納、通信等要求極高的數字信號處理領域