孫文磊+田海山+常文革
摘 要: 基于C#與Matlab混合編程,設計并實現了SAR實時信號處理機上位機軟件。首先討論了SAR信號處理機快速調試以及SAR系統設置和實時監控的要求,在解決了上位機關鍵技術的基礎上,結合系統硬件平臺,實現了上位機與信號處理機的實時通信和上位機功能。測試驗證結果表明,上位機不僅加快了信號處理機的調試進度,更是便利的系統操作控制和數據記錄的可視化工具。
關鍵詞: 信號處理機; 上位機; C#; Matlab
中圖分類號: TN957?34 文獻標識碼: A 文章編號: 1004?373X(2014)03?0045?04
Upper computer software design for SAR real?time signal processor
SUN Wen?lei, TIAN Hai?shan, CHANG Wen?ge
(College of Electronic Science and Engineering, National University of Defense Technology, Changsha 410073, China)
Abstract: An upper computer software for real?time signal processor is designed and implemented based on C# and Matlab mixed programming. The requirements for rapid debugging of SAR signal processor and SAR system setting and real?time monitoring are discussed. Based on solving the key software techniques, the real?time communication between upper computer and signal processor is realized, and all functions of the upper computer software are realized based on the hardware platform. The actual test result shows that the upper computer not only accelerates the signal processor debugging, it is also a convenient visualized tool for system operating control and data record.
Keywords: signal processor;upper computer; C#; Matlab
0 引 言
合成孔徑雷達(Synthetic Aperture Radar,SAR)是一種二維高分辨成像雷達,是對地觀測的最重要手段之一[1?2]。SAR實時信號處理機是SAR的重要組成部分,可視化的調試和控制是其研制的難點之一,而上位機可以解決這一難題。
上位機系統由通信硬件平臺和軟件界面兩部分構成。由于USB接口具有即插即用和熱插拔的特性,而且傳輸速度較高,故可利用USB芯片控制讀、寫操作,實現信號處理機與上位機之間的通信[3]。如圖1所示,硬件平臺由信號處理機和USB芯片CY7C68053搭建,USB芯片主控通信過程,完成上位機指令的接收及處理結果的回傳。
目前,用于開發界面的軟件很多,典型的有VB、LabVIEW,VC++,C#等[4?6],由于C#對USB接口和界面設計的操作非常簡便,相對開發周期更短,同時考慮到上位機對圖形顯示要求較高,而Matlab在數據處理、圖形顯示方面優勢明顯,因此,采用C#與Matlab混合編程的方案來完成上位機的開發。
圖1 信號處理機與上位機通信結構
本文研究了SAR實時信號處理機的上位機軟件設計。結合系統硬件平臺,分析了SAR信號處理機快速調試以及SAR系統設置和實時監控的要求,通過解決多線程、混合編程以及通信協議等上位機關鍵技術,完成了上位機功能設計。
1 關鍵技術的實現
SAR信號處理機不僅需要實時處理海量數據,解決不同功能的實時響應,還要將其測試結果在上位機上實時、直觀地顯示。因此,數據量大,實時性高,直觀性強等是上位機的設計難點。這些難點通過多線程技術、C#與Matlab混合編程技術以及通信協議設計可以解決。
1.1 多線程技術
多線程是指程序中包含多個執行流,可以同時運行多個線程來執行不同的任務,從而增強程序的響應能力和伸縮性[7]。在C#中可以通過調用函數thread.Start( )來啟用創建的新線程,實現多線程。程序中一個實例如下:
Thread thread = new Thread(ThreadFuntion);
thread.IsBackground = true;
thread.Start( ); //啟動線程
private void ThreadFuntion( )
{
while (true)
{
...... //線程執行的工作
}
}
在上位機設計中,由于上位機需要完成功能選擇、參數設置以及回傳結果的處理與狀態顯示等任務,并且多個任務需要并行執行,故在設計中使用多線程技術,可以極大地提高上位機運行的效率和實時性。
1.2 C#與Matlab混合編程技術
由于Matlab Compiler可以將Matlab函數轉換為封裝了Matlab代碼的動態鏈接庫(DLL)[8],故C#開發的程序可以直接訪問其編譯的Matlab函數,即C#調用Matlab生成的 DLL文件[9]。
本文在Microsoft Visual Studio 2010和Matlab R2012b編譯環境下實現C#與Matlab混合編程。步驟如下:
第一步,進行Matlab編譯器的設置。在Matlab的Command Window運行指令mbuild?setup,具體設置根據提示選擇,其中編譯器選擇 Microsoft Visual C++ 2010。
第二步,DLL文件生成。編寫M函數文件,運行指令deploytool,出現deployment tool窗口,new→Type選擇.NET Assembly→Add classes→Add files→build。編譯成功后,即可得到DLL文件。
第三步,設置VS2010編譯環境。打開工程文件,將Matlab生成的DLL文件以及Matlab\toolbox\dotnetbuilder\bin\win32\v2.0目錄下的MWArray.dll文件一起添加到引用中,并加入命名空間(Using...)。
第四步,添加程序代碼。下面是程序中用到的實例代碼:
demo myplot = new demo( );
double[,] plotValues = new double[m, n];
……
myplot.drawgraph((MWNumericArray)plotValues);
第五步,上位機程序移植。上位機要運行于客戶端計算機,必須預先安裝.netframwork 4.0與MCR。
至此,便實現了C#與Matlab的混合編程。其優勢是不僅能利用Matlab強大的計算繪圖功能,更可脫離開發平臺獨立運行。
1.3 通信協議設計
上位機與信號處理機之間要事先約定好通信協議,確定不同指令代表的功能[10],信號處理機才能對上位機傳來的指令進行響應。在編寫上位機軟件和FPGA底層程序前,約定以下協議:
發送指令:字頭(0XAFAF)| 指令標識(0x0042?0x0052) | 指令,4字節
返回結果:字頭(0XAFAF)| 指令標識(0x0042?0x0052) | 返回結果
通信采用狀態驅動模式,系統工作時,上位機發出指令, 信號處理機根據通信協議解讀上位機發出的指令,執行相應的操作并返回結果;上位機讀取返回結果,處理后直觀顯示出來。
2 軟件設計與實現
上位機軟件在SAR系統設計階段主要是為方便信號處理機進行硬件調試和測試,而在SAR系統付諸使用階段則是操作控制和數據記錄的可視化工具,故需要很多的功能來滿足SAR系統的需求。上位機功能結構如圖2所示。
圖2 上位機軟件結構圖
主要實現的功能有:
(1) 參數設置。實現系統參數的設置和工作模式的選擇。
① 工作模式:設置信號處理機的工作模式,不同模式對應的信號處理機波形和工作場景不同。
② 開關定時:實現系統的定時或遙控,無需人工值守。
③ 波形脈寬:對應雷達發射信號波形的脈沖寬度。
(2) 功能選擇。針對SAR信號處理機快速調試和系統實時監控的要求,設計上位機功能。
① 錄取數據:將SAR雷達回波原始數據讀取存入CF卡中,為下一步的成像做準備。
② 地面測試:對一個PRT的回波數據進行處理,查看是否與實際場景信息吻合,判斷能否進行實驗。
③ 系統檢測:檢測SAR雷達波形模塊、處理機以及收發模塊的工作情況,檢查系統硬件故障。
④ 數據回放:將保存于CF卡中的回波數據讀出,實現成像,模擬空中試驗過程。
⑤ 成像:實現SAR雷達回波原始數據的成像,并將成像數據存入CF卡中。
(3) 結果顯示。上位機讀取返回結果,處理后直觀顯示出來。
① CF卡查詢:查看CF卡剩余容量,當CF卡容量不足時,將CF卡格式化。
② A/D采樣:對接收到的回波數據,查看其時域和頻域波形。由于C#的數值計算和繪圖功能復雜,尤其數據量很大時程序的執行效率很低且難以直觀地查看和分析數據的變化趨勢。故采用C#與Matlab混合編程,C#接收數據后,轉由Matlab函數處理,利用Matlab強大的計算繪圖功能完成數據的處理和圖形界面顯示。
③ 系統狀態:在上位機界面上顯示系統工作狀態,實時監測系統工作。由于系統工作狀態的監測要一直進行,故采用多線程技術啟用新進程來處理系統狀態的顯示工作,并將其設為后臺進程避免與上位機其他功能的進程沖突。
④ GPS解算:接收GPS衛星數據并將解算后的信息顯示。由C#解讀經緯度、時間、衛星數、速度和高度信息,再傳給Matlab函數繪出直觀的GPS信息隨時間變化曲線。
上位機軟件使用界面如圖3所示。
圖3 軟件界面圖
3 測試結果與分析
為了驗證上位機的功能,測試其是否能解決數據量大,實時性高,直觀性強的難題,本文利用信號處理機對信號源輸入12.5 MHz的正弦信號進行A/D采樣,然后上位機回讀數據,利用與Matlab混合編程處理后得到結果如圖4所示。
經多次測試,A/D采樣數據大小為100 KB時,從上位機發出A/D采樣指令到回讀數據、處理以及圖形顯示共耗時1 s,而且在此期間,還可同時操作其他功能指令,表明上位機很好地解決了大數據量傳輸與處理、實時性要求高、直觀性好的難題。由圖4(a)可知,信號處理機A/D采樣出信號為正弦信號,由圖4(b)可知采樣信號頻率為12.5 MHz,與信號源輸入信號一致,說明數據傳輸正確。故上位機可用于對信號處理機的可視化調試,大大加快信號處理機的調試進度。
圖4 A/D采樣數據時域波形與頻譜
最后,外場試驗中,可以方便地利用上位機對SAR系統進行操作與控制。圖5即為上位機錄取、顯示以及處理的實際雷達回波數據。其中圖5(a)為原始回波,圖5(b)為其頻譜。從外場實驗中,可以深深感受到上位機對SAR系統可視化操控的便利性。
4 結 語
上位機的設計與實現,對SAR系統信號處理機的調試和使用等具有重要意義。傳統的調試方法結果不直觀,較難發現問題,且操作也不方便,會造成進度緩慢等問題。本文從SAR系統功能和硬件電路出發,設計了上位機通信協議,實現了多線程、混合編程、通信協議等關鍵技術,利用C#與Matlab混合編程設計完成了SAR實時信號處理機的上位機開發。該上位機設計簡單、開發周期短,在實際應用中大大加快了信號處理機調試的進度,方便了SAR系統的操作使用,具有重要的應用價值。
圖5 上位機錄取、顯示及處理的實際雷達回波數據
參考文獻
[1] 保錚,刑孟道,王彤.雷達成像技術[M].北京:電子工業出版社,2010.
[2] CUMMING I G, WONG F H.合成孔徑雷達成像算法與實現[M].北京:電子工業出版社,2012.
[3] 錢峰.EZ?USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.
[4] 申偉強,馬欣,李劍.C#與Matlab混合編程及其在氣象數據可視化中的應用[J].創新科技導報,2013(3):56?57.
[5] 禹訊,葉林,許丹丹.機場地面結冰檢測系統的上位機軟件實現[J].計算機與數字工程,2013(6):993?995.
[6] 馬林森,張文愛,王秀.基于PLC和Visual C#上位機的噴霧測試系統[J].農機化研究,2013(7):145?149.
[7] SHARP John.Visual C# 2010從入門到精通[M].北京:清華大學出版社,2010.
[8] 劉煥進,王輝,李鵬.Matlab N個實用技巧[M].北京:北京航空航天大學出版社,2011.
[9] 李誠剛,趙佳寶,陳兆榮.Visual C#與Matlab混合編程在可視化軟件中的應用[J].軟件,2012,33(2):78?83.
[10] 柯艷,李杰,孔祥雷.基于USB 2.0的多路數據采集系統上位機軟件設計[J].測試技術學報,2010,24(2):351?356.
經多次測試,A/D采樣數據大小為100 KB時,從上位機發出A/D采樣指令到回讀數據、處理以及圖形顯示共耗時1 s,而且在此期間,還可同時操作其他功能指令,表明上位機很好地解決了大數據量傳輸與處理、實時性要求高、直觀性好的難題。由圖4(a)可知,信號處理機A/D采樣出信號為正弦信號,由圖4(b)可知采樣信號頻率為12.5 MHz,與信號源輸入信號一致,說明數據傳輸正確。故上位機可用于對信號處理機的可視化調試,大大加快信號處理機的調試進度。
圖4 A/D采樣數據時域波形與頻譜
最后,外場試驗中,可以方便地利用上位機對SAR系統進行操作與控制。圖5即為上位機錄取、顯示以及處理的實際雷達回波數據。其中圖5(a)為原始回波,圖5(b)為其頻譜。從外場實驗中,可以深深感受到上位機對SAR系統可視化操控的便利性。
4 結 語
上位機的設計與實現,對SAR系統信號處理機的調試和使用等具有重要意義。傳統的調試方法結果不直觀,較難發現問題,且操作也不方便,會造成進度緩慢等問題。本文從SAR系統功能和硬件電路出發,設計了上位機通信協議,實現了多線程、混合編程、通信協議等關鍵技術,利用C#與Matlab混合編程設計完成了SAR實時信號處理機的上位機開發。該上位機設計簡單、開發周期短,在實際應用中大大加快了信號處理機調試的進度,方便了SAR系統的操作使用,具有重要的應用價值。
圖5 上位機錄取、顯示及處理的實際雷達回波數據
參考文獻
[1] 保錚,刑孟道,王彤.雷達成像技術[M].北京:電子工業出版社,2010.
[2] CUMMING I G, WONG F H.合成孔徑雷達成像算法與實現[M].北京:電子工業出版社,2012.
[3] 錢峰.EZ?USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.
[4] 申偉強,馬欣,李劍.C#與Matlab混合編程及其在氣象數據可視化中的應用[J].創新科技導報,2013(3):56?57.
[5] 禹訊,葉林,許丹丹.機場地面結冰檢測系統的上位機軟件實現[J].計算機與數字工程,2013(6):993?995.
[6] 馬林森,張文愛,王秀.基于PLC和Visual C#上位機的噴霧測試系統[J].農機化研究,2013(7):145?149.
[7] SHARP John.Visual C# 2010從入門到精通[M].北京:清華大學出版社,2010.
[8] 劉煥進,王輝,李鵬.Matlab N個實用技巧[M].北京:北京航空航天大學出版社,2011.
[9] 李誠剛,趙佳寶,陳兆榮.Visual C#與Matlab混合編程在可視化軟件中的應用[J].軟件,2012,33(2):78?83.
[10] 柯艷,李杰,孔祥雷.基于USB 2.0的多路數據采集系統上位機軟件設計[J].測試技術學報,2010,24(2):351?356.
經多次測試,A/D采樣數據大小為100 KB時,從上位機發出A/D采樣指令到回讀數據、處理以及圖形顯示共耗時1 s,而且在此期間,還可同時操作其他功能指令,表明上位機很好地解決了大數據量傳輸與處理、實時性要求高、直觀性好的難題。由圖4(a)可知,信號處理機A/D采樣出信號為正弦信號,由圖4(b)可知采樣信號頻率為12.5 MHz,與信號源輸入信號一致,說明數據傳輸正確。故上位機可用于對信號處理機的可視化調試,大大加快信號處理機的調試進度。
圖4 A/D采樣數據時域波形與頻譜
最后,外場試驗中,可以方便地利用上位機對SAR系統進行操作與控制。圖5即為上位機錄取、顯示以及處理的實際雷達回波數據。其中圖5(a)為原始回波,圖5(b)為其頻譜。從外場實驗中,可以深深感受到上位機對SAR系統可視化操控的便利性。
4 結 語
上位機的設計與實現,對SAR系統信號處理機的調試和使用等具有重要意義。傳統的調試方法結果不直觀,較難發現問題,且操作也不方便,會造成進度緩慢等問題。本文從SAR系統功能和硬件電路出發,設計了上位機通信協議,實現了多線程、混合編程、通信協議等關鍵技術,利用C#與Matlab混合編程設計完成了SAR實時信號處理機的上位機開發。該上位機設計簡單、開發周期短,在實際應用中大大加快了信號處理機調試的進度,方便了SAR系統的操作使用,具有重要的應用價值。
圖5 上位機錄取、顯示及處理的實際雷達回波數據
參考文獻
[1] 保錚,刑孟道,王彤.雷達成像技術[M].北京:電子工業出版社,2010.
[2] CUMMING I G, WONG F H.合成孔徑雷達成像算法與實現[M].北京:電子工業出版社,2012.
[3] 錢峰.EZ?USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.
[4] 申偉強,馬欣,李劍.C#與Matlab混合編程及其在氣象數據可視化中的應用[J].創新科技導報,2013(3):56?57.
[5] 禹訊,葉林,許丹丹.機場地面結冰檢測系統的上位機軟件實現[J].計算機與數字工程,2013(6):993?995.
[6] 馬林森,張文愛,王秀.基于PLC和Visual C#上位機的噴霧測試系統[J].農機化研究,2013(7):145?149.
[7] SHARP John.Visual C# 2010從入門到精通[M].北京:清華大學出版社,2010.
[8] 劉煥進,王輝,李鵬.Matlab N個實用技巧[M].北京:北京航空航天大學出版社,2011.
[9] 李誠剛,趙佳寶,陳兆榮.Visual C#與Matlab混合編程在可視化軟件中的應用[J].軟件,2012,33(2):78?83.
[10] 柯艷,李杰,孔祥雷.基于USB 2.0的多路數據采集系統上位機軟件設計[J].測試技術學報,2010,24(2):351?356.