李 濤 徐 瑋 孔祥輝 張曉東
(西安電子工程研究所 西安 710100)
在無人機的發展過程中早期的偵查無人機一般使用光學設備感知外界信息,但是光學設備受天氣影響較大是無法克服的難題,而雷達正是具有全天候、全天時的優點,再加上雷達小型化技術的成熟,雷達已逐漸成為無人機載偵查設備的首選,近年來的增長大幅超過光學設備,并且由于需求的多樣化和軟硬件技術的高速發展,具有強大數據處理能力的無人機載多功能雷達不斷涌現,例如非常著名的美國全球鷹無人偵察機具有全天候、大縱深的偵察監視能力[1]。無人機相對于普通有人飛機,載荷較小,自動化程度高,需要無線數據鏈路進行傳輸控制和處理數據信號,由此帶來的是雷達功能的多樣化和數據處理能力強大,同時數據處理軟件高度復雜,不僅需要完成多模式下的數據處理任務,而且還需要控制記錄設備、編碼和發送數據等,此時需要按不同的功能使用模塊化設計,具有可裁減性和數據安全性,不僅提高雷達數據處理軟件的質量與可靠性[2],而且在后期能夠很好的功能延展和維護。
Windows XP Embedded為微軟研發的嵌入式操作系統,以組件模塊展現出與Windows XP Profes-sional操作系統一樣的接口與操作模式,包含10000多個獨立的功能組件,開發人員可依各自需求組合出不同的操作系統鏡像文件,確保有Windows XP Professional操作系統相依性以及最佳功能,其基于Win32編程模型,由于采用常見的開發工具,如Visual Stdio,使用商品化PC硬件,與桌面應用程序無縫集成,因此可以縮短開發時間。它比較關鍵的可靠性、安全性和性能包括:系統文件保護、設備驅動程序回滾、搶先型多任務體系結構、支持多用戶的加密文件系統等等[3]。
雖然Windows XP Embedded具有上述優點,但是在實時性和穩定性上不如WindRiver的VxWorks操作系統[4]。對于這兩個缺陷,首先偵察雷達不同于火控雷達,前者沒有嚴格的實時性需求,其次制作系統鏡像文件時可以將不使用的組件完全裁減掉,只使用滿足需求的最少組件,再加上其本身具有的系統文件保護功能,系統也可以長期穩定運行。由以上所述Windows XP Embedded是可以代替Vx-Works作為數據處理軟件的運行環境,并且由于前者的開發環境Visual C++包含強大的MFC類庫,對面向對象編程方法有良好的支持,符合軟件模塊化的要求,故在此使用Windows XP Embedded作為數據處理軟件的運行軟件環境,Visual C++6.0作為數據處理軟件的開發環境,X86結構單板計算機作為數據處理軟件的運行硬件環境。
無人機載偵察雷達具有SAR成像和動目標檢測功能,其數據處理系統包含五個組成部分,分別是數據處理板(X86結構單板計算機)、數據記錄板、中心控制板、SAR信號處理板和動目標信號處理板,A/D板通過光纖和中心控制板連接,中心控制板通過三個ROCKET IO分別和記錄板、SAR信號處理板、動目標信號處理板接連,通過三個串口分別和機載計算機、慣導、無線數傳連接,數據處理板通過四條 PCIE總線分別和其余板卡連接,如圖1所示。

圖1 數據處理系統組成
雷達工作過程中,經過A/D板采樣的數據發送到中心控制板,然后由中心控制板將其和接收自機載計算機的雷達工作模式控制命令、接收自慣導的載機實時姿態位置信息組包后,根據雷達工作模式選擇將數據發送到記錄板、SAR信號處理板或者動目標信號處理板,信號處理板運算產生的SAR圖像、一次點跡和DBS圖像數據發送到數據處理板,經過數據處理軟件一系列運算后產生可以在顯控軟件上顯示的數據,最后將此數據發送到中心控制板,由中心控制板通過無線數據傳輸設備發送到地面顯示和進行后續處理。
由以上所述,數據處理軟件不僅要完成對雷達數據的接收、處理和發送,還要接收中心控制板的指令,切換自身的工作模式和控制記錄板記錄和回放雷達數據,數據處理軟件需要和數據記錄板、中心控制板、SAR信號處理板、動目標信號處理板分別進行數據交換,因此可以將軟件分為SAR圖像處理、動目標處理、記錄板控制、中心控制板通信以及工作模式控制5個模塊,按照面向對象編程方法設計5個類分別對應上述5個模塊以及其他:
a.SAR圖像處理類
首先初始化SAR圖像處理所需變量和內存緩沖區,然后打開SAR信號處理板,啟動監聽子線程,子線程負責等待SAR信號處理板發出數據處理完畢信號后,接收BMP格式的原始SAR圖像和圖像定位信息,將BMP圖像壓縮成JPG圖像后和圖像定位信息組合,最后向工作模式控制類發送SAR圖像處理完畢和存儲圖像到記錄板消息。
因為SAR圖像的解析度很大,經過JPEG壓縮后產生的JPG圖像一般在5MB~10MB,經過誤碼率較高的無線數傳到達地面后,有很大的概率出現多處誤碼,而JPG圖像的顯示和誤碼的位置有不確定的關系,有可能一個誤碼就會導致整幅圖像無法顯示,也有可能多處誤碼只是影響某些條帶或者整體亮度,所以采用對SAR圖像分塊壓縮的方式,即使有多處誤碼,也只會影響一幅圖像的其中一塊,其余圖像還能夠正常顯示。圖2為重新設計的SAR圖像處理和發送數據兩級流水示意圖,因為PCIE接口速度達到150MB/s,接收原始SAR圖像數據只需要不到1s,相對于一個成像周期至少20s,所以忽略其占用時間,只列出處理和發送兩個子線程的工作過程:處理和發送兩個子線程并行工作,一個負責處理SAR圖像,一個負責發送數據,并且需要使用乒乓緩存保證處理數據和發送數據隔離,使用同步事件對象保證兩級流水的正常工作時序,使用這種設計是為了使處理和發送數據的效率最大化,保證在一個成像周期的時間內完成所有的處理和發送。
b.動目標處理類
首先初始化動目標處理所需變量和內存緩沖區,然后打開動目標信號處理板,啟動監聽子線程,子線程負責等待動目標信號處理板發出數據處理完畢信號后,接收原始一次點跡、點跡定位信息、BMP格式的原始DBS圖像和圖像定位信息,將原始一次點跡經過建航處理后和點跡定位信息組合,將BMP格式的DBS圖像按照波束方位角度信息拼接、量化、壓縮后和圖像定位信息組合,最后向工作模式控制類發送動目標處理完畢和DBS圖像處理完畢消息。
和SAR圖像處理的一個成像周期內完成所有本次數據處理和發送的情況不同,動目標處理需要按照CPI接收原始動目標和DBS數據,是持續不停地接收數據,因此對于接收和處理數據也要使用流水設計。圖3為動目標處理和發送數據兩級流水示意圖:接收、處理和發送三個子線程并行工作,接收子線程負責在每個掃描周期內按照CPI時間間隔接收原始數據,處理和發送子線程負責在當前掃描周期內處理和發送前一個掃描周期的動目標數據,類似的同樣需要使用乒乓緩存和同步時間對象。此外還有一個問題就是前視DBS無法成像,這是由DBS處理的原理造成的,無法通過改善算法和雷達前端等解決,因此在天線掃描到飛行速度方向的小范圍角度內,使用單脈沖測角算法來對地面成像,此時由于算法改變,圖像的信噪比明顯變小,如果還是對整個掃描周期的圖像數據統一量化,就會產生顯著的明暗變化和明顯的拼接邊界,所以采用對不同算法產生的數據分別量化后再統一壓縮的方式進行DBS處理。
c.記錄板控制類
首先初始化記錄板控制所需變量和內存緩沖區,然后打開數據記錄板,啟動控制子線程,子線程負責接收對記錄板記錄、回放、DMA寫入、DMA讀取等操作信號,實現對記錄板的控制。
實際設計時,需要在記錄板控制類中集成一個文件系統,由于記錄板在指定存儲塊開始記錄后,只能按照存儲塊的順序連續寫入數據,不能在記錄過程中跳過任意存儲塊,所以此文件系統可以簡化,即按照數據文件號進行索引,不需要存儲每個存儲塊的信息,由上所述此文件系統包括所有記錄文件的個數以及每個記錄文件的起始和終止存儲塊號、數據類型、文件大小、記錄時間、文件名稱,并且支持刪除第一個文件或者最后一個文件,這一點是滿足可以刪除最舊文件的需求,此時第一個文件的起始存儲塊就有可能不是記錄板的第一個存儲塊,這就要求文件系統能夠做到按照存儲塊號的順序循環記錄。
d.中心控制板通信類
首先初始化中心控制板通信所需變量和內存緩沖區,然后打開中心控制板,啟動監聽子線程,子線程負責接收雷達控制命令、發送數據信號和數據發送完畢信號,做出相應處理,實現和中心控制板的通信。
因為無人機的無線數傳設備對傳輸的數據會造成按bit移位,所以需要使用一種特殊的編碼方式使得接收端軟件能夠正確解碼移位后的數據,在此使用一種面向字符的SLIP轉義方式編碼,它的主要功能是定義一組字符,包括幀頭、幀尾和轉義字符,將數據組裝成幀,顯控軟件接收到移位后的數據幀后能夠根據幀頭和幀尾判斷位移量和數據幀長度,然后將數據恢復。
e.工作模式控制類
直接啟動主線程,主線程負責首先初始化工作模式控制所需變量和內存緩沖區以及上述四個類的對象,然后進入等待消息循環,接收到子線程的消息后進行相應處理:如果是SAR圖像處理完畢、動目標處理完畢和DBS圖像處理完畢消息,則向中心控制板通信類發送傳輸雷達數據信號;如果是雷達模式改變消息,則向各個類發送重置信號,控制子線程回到初始狀態或者結束某個子線程;如果是存儲圖像到記錄板記錄原始數據、回放原始數據消息,則向記錄板控制類發送相應信號,由記錄板控制子線程負責解碼信號,控制記錄板響應命令。

圖2 SAR圖像處理和發送數據兩級流水示意圖
因為程序使用多線程并行工作機制,所以需要綜合使用內核對象及消息機制協調多線程的調度[5],所有上述子線程的信號都使用內核對象中的事件對象,又因為重置信號優先級最高,需要第一時間做出響應,所以所有監聽和控制子線程中使用WaitForMultipleObjects函數等待重置和其他信號,又因為需要節省CPU占用率,上述函數等待期間所在子線程處于掛起狀態,不浪費寶貴的 CPU時間[6],所以等待時間設為無限,這樣可以避免多次的等待時間超出處理;為了使各個對象之間有良好的數據隔離性,盡量減少全局變量的使用,并且除了需要在各個消息中交互的數據處理最終結果,其余所有的數據都設為其對象的私有變量。
與數據處理單板機通過PCIE總線連接的板卡在Windows系統下需要WDM(Windows Driver Model)驅動程序才能夠正常使用,并且涉及到驅動程序向應用程序發出信號的通信以及DMA數據傳輸操作等比較復雜的應用,所以使用高效、集成編譯和調試工具的Compuware DriverStudio 3.1建立驅動開發環境[7]。

圖3 動目標處理和發送數據兩級流水示意圖
在實際工作過程中,數據處理軟件會根據和數據處理單板機連接的板卡情況決定相對應的模塊是否工作,在多次試驗中加載不同組合的板卡,系統加電后數據處理軟件能夠正常運行,并且啟動模塊都能完成相應的功能,證明了使用面向對象編程方法的有效性。
分析數據處理結果時使用實際飛行記錄的雷達原始數據不斷回放。首先是SAR處理結果分析:圖4為使用分8塊壓縮和無線傳輸方法的SAR實時圖像,可以看到圖4中誤碼對第7塊圖像產生了一定的影響,其大部分變暗,其余塊的圖像能夠正常顯示,全部圖像拼接后達到不錯的顯示效果,然后將拼接后的圖像存儲為一個JPG文件,不斷更改其中的某些bit,模擬整幅圖像統一壓縮和無線傳輸后的誤碼效果,圖5為其中一次的結果,可以看到圖像的下半部分發生了變亮和偏移,顯示效果很差,結論是分塊壓縮達到了改善顯示效果的預期設計目標;其次是動目標處理結果分析:圖6和圖7是同一個掃描周期的動目標數據處理結果,建航算法相同,不同的是對地面圖像的處理方法,前者使用統一量化方法,后者使用按照數據類型分段量化的方法,由于記錄此段數據時無人機有向右13°的偏航角,所以使用單脈沖成像算法的區域中心在天線坐標系的左側13°,可以看到兩圖中天線掃描中心角的左側30°范圍為單脈沖成像,因為算法原理不同,信噪比有比較大的差異,圖6中使用統一量化后,兩種成像算法區域對比很明顯,并且單脈沖成像區域由于整體亮度較低,渭河的輪廓無法看清,而圖7中使用分段量化后,單脈沖成像區域整體亮度提高,除了邊緣有拼接的痕跡外,和DBS成像效果很接近,渭河的輪廓也比較清晰,兩圖中的灰色點為動目標的航跡點,通過和圖8的衛星地圖對比后發現典型地貌(渭河和黃河)的輪廓比較準確,動目標的航跡和實際道路(G30連霍高速)匹配。

圖4 單個圖像塊有誤碼

圖5 整幅圖像有誤碼

圖6 統一量化的疊加動目標航跡的地面DBS圖像

圖7 分段量化的疊加動目標航跡的地面DBS圖像

圖8 DBS圖像對應區域的衛星地圖
通過上述設計、實現和實驗結果,可以看到使用面向對象編程方法實現無人機載偵查雷達數據處理軟件是可行的,模塊化設計使得程序更加安全和高效,避免數據耦合帶來的各種問題,后期軟件維護更加容易,并能夠根據其它類似項目的要求增加和刪減模塊,快速重復開發,提高了軟件研制的工作效率,適應現代無人機載雷達對數據處理軟件復雜化、多功能化發展的要求。
[1]林岳崢,祝利,王海.全球鷹無人偵察機的技術特點與應用趨勢[J].飛航導彈,2011,(9):21-25.
[2]羅利強,張艷艷,高恒.雷達數據處理軟件模塊化研究[J]. 火控雷達技術,2013,42(2):38-41.
[3] 郭敏,史乘龍,宋長生.基于XPE的嵌入式雷達顯控終端系統[J].火控雷達技術,2012,37(3):91-95.
[4]馬建萍,范秀峰.Windows NT在機載雷達成像中的實時應用[J].微計算機應用,2010,(10):62-65.
[5]張曉云,王磊.Visual C++在雷達監控系統中應用的研究[J].安徽電子信息職業技術學院學報,2005,(4):83-87.
[6]Jeffrey Richer著,王建華等譯.Programming Applications for Microsoft Windows,Fourth Editio[M].機械工業出版社,2000:190-227.
[7] 武安河.Windows 2000/XP WDM設備驅動程序開發[M].北京:電子工業出版社,2005:49-352.