王欣 陶杰 張弛 王文娟
(軍械工程學院,河北石家莊 050003)
基于Labview的空情接收系統
王欣 陶杰 張弛 王文娟
(軍械工程學院,河北石家莊 050003)
LabVIEW是NI公司開發的圖形化編程開發平臺,具備強大的實時數據處理功能與顯示功能[1]。雷達空情接收系統通過雷達發現目標,識別出目標,并且分析出目標的特征,按照一定的格式將其需要信息發送到空情接收系統,空情接收系統接收到信息后分析出數據,并用LabVIEW軟件將這一過程顯示出來。LabVIEW與其他軟件比較有更友好的可視化界面,操作簡單,易于實現。
雷達LabVIEW UDP空情接收
LabVIEW是一種程序開發環境,由美國國家儀器(NI)公司研制開發的,類似于C和BASIC開發環境,但是LabVIEW與其他計算機語言的顯著區別是:其他計算機語言都是采用基于文本的語言產生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產生的程序是框圖的形式,底層的程序已經封裝在這些框圖中,不涉及到基本語言的編程,這種圖形編程方法可使沒有編程經驗的用戶避免學習編程語言的麻煩[2],實現簡單,并且提供了友好的可視化界面。而雷達空情接收系統實時顯示接收的空情,用LabVIEW實現簡單、方便。
雷達的一個重要的任務就是掃描空情,發現目標飛機的位置、類型和架次等重要信息[3,4]。把雷達掃描的數據傳輸給空情接收系統,使其顯示出空情。其具體方法及步驟如下:
(1)UDP接收數據
用戶數據報協議(UDP)是一種無連接的協議,而傳輸控制協議(Trans mission Control P rotocol,TCP)協議是面向連接的[5]。面向連接是在通信前建立一條可靠的物理鏈路,這就是鏈路的建立過程,建立完后查詢對方是否忙,如果不忙,雙方即可通信(傳送信息),當通信完成要釋放此鏈路,所以面向連接必須有“建立、傳送、釋放”3個過程。當利用TCP協議傳送數據的時候,首先必須建立連接才可以傳輸數據。而計算機利用UDP協議進行數據傳送的時候,發送方只需要知道對方的IP地址和端口號就可以發送數據,而并不需要進行連接。就是在正式通信前不必與對方先建立連接,不考慮對方狀態就直接發送數據,這就象平時的發手機短信,不必考慮對方狀態,只需要輸入對方手機號就行。
TCP提供的是面向連接的而UDP提供的是面向非連接的。面向連接的協議在任何數據傳輸前就建立好了點到點的連接,面向非連接的協議在數據傳輸之前不建立連接,而是在每個中間節點對面向非連接的包和數據包進行路由。因此利用UDP協議傳送和接收數據要簡單的多。利用UDP進行數據接收,如圖1所示,打開UDP函數中,要設置IP和端口號,讀取UDP函數中數據輸出為字符串格式。

圖1 UDP接收數據
(2)分析數據
①發送的是十六進制數,發送方發過來的數據為十六進制數,而通過UDP接收的數據為字符串,字符串如何轉換成十六進制數,成為解決本問題的關鍵。在程序框圖函數面板中,編程/字符串/字符串至數值/十六進制字符串轉換成數值,找到字符串與數值的轉換函數,經過實驗并不能將其轉換成數值,這是由于在轉化過程中數值與字符串之間是按字節進行轉換的,但是有的數值如FF并沒有對應的字符串,最后成了亂碼。如發送端發送的十六進制數為:ff201009a34d5b2274,直接用UDP函數(圖1)接收,得到亂碼如圖2所示。

圖2 直接讀取數據
最后將接收的字符串轉換成數組,用字符串至字節數組轉換,每個字符串都轉化成無符號數組,同樣發送上述十六進制數,得到圖3所示的十進制數,經過驗證,確實把上述十六進制數轉換成十進制數,并且是一個字節一個字節的轉換,如FF轉換為255,20轉換為32等等。

圖3 轉換成數組
把得到得字節用索引數組函數把數組中的需要的每個字節索引出來,再作處理。收發放約定好協議,FF為幀頭,后面第2、3、4字節為顯示空情直角坐標中的x值,第5、6、7字節為y值,第8、9字節為z值。如收到ff201009a34d5b2274,索引數組中的二三四個字節,并且字節存儲時按從低位到高位,所以x的值應該是第4個字節是高位,再次是第3個字節,最后為第2個字節。那是不是把第4個字節乘以10000,加上第3個字節乘以100,再加上第2個字節就是x的值呢?其實不然,因為存儲的數據為二進制形式的,所以第4個字節應該乘以216(65536),加上第3個字節乘以28(256),再加上第2個字節。但是我們都知道,其實最高位為符號位,如果是1就表示負,如果是0就表示正,而我們卻把這個值當成數值進行計算了,如果最高位為1,其余位為0的話,其對應的數值應為223(8388608),所以我們可以把最初計算的數值減去8388608,再乘以負1就能得到x的值(如圖4),同樣,y、z的值獲取方式與x相同,即可得到相對于原點(我們所在位置)的空間坐標值。

圖4 數據接收及處理程序框圖
②發送的是字符串,如果發過來的是字符串,通過UDP直接能正確接收,首先應該通過匹配字符串,如果找到幀頭—FF,或雙方約定好的一個協議幀頭,則取其后的字符串,再用函數截取字符串,自己設定截取字符串的偏移量和長度,如果不設偏移量則默認為0,截取所需字符串,如圖5所示,圖6為接收的數據。之后再把這些字符串根據需要處理,步驟如圖4數值處理方式相同,不再贅述。

圖5 直接接收字符串

圖6 結果顯示
(3)顯示空情
分析數據完成,通過列表的形式,把x、y、z的值顯示出來,并且用點的形式在直角坐標中表示出來。發送方不斷的發送數據,接收方收到的這些數據在坐標系中描出來的點就是飛機的航跡。
LabVIEW為用戶提供了友好的可視化圖形界面。LabVIEW設計的界面美觀漂亮,數據顯示直觀,操作簡單。當用戶在操作時,就感覺是在操作實在的儀器設備。和其他軟件開發相比,LabVIEW更具有和硬件設備打交道的優勢。利用圖形化編程語言的直觀、快捷的優勢,通過功能模塊的組合和連接能夠方便地開發出適合各種不同通信協議的通信程序[6]。
[1]呂向鋒,高洪林,馬亮,等.基于LabVIEW串口通信的研究[J].國外電子測量技術,2009,28(12):27-30,42.
[2]馮勁梅,連之偉.對LabVIEW使用中若干問題的探討[J].中國制造業信息化,2003,32(9):121-124.
[3]史穎超,李俠,程東升,等.窄帶雷達飛機目標識別方法綜述[J].艦船電子工程,2010,30(2):45-49.
[4]張漢華,王偉,李國順.一種低分辨雷達自動目標識別系統[J].現代雷達,2003(12):11-13.
[5]張宗飛.VB中基于TCP和UDP協議的通信編程技術[J].計算機與現代化,2008(4):48-50.
[6]都亮,龔曉峰,侯志紅.基于虛擬儀器LabVIEW開發的串行通信系統[J].控制工程,2004,11(S1):82-85.
Air Situation Receiving System Based on Labview
WANG Xin,TAO Jie,ZHANG Chi,WANG Wen-juan
(PLA College of Ordnance Engineering,Shijiazhuang Hebei 050003,China)
LabVIEW is a graphical programming development platform developed by NI company,and has powerful real-time data processing and display function.The radar air situation receiving system finds and identifies targets,and analyzes the characteristics of targets by radar.The required information in a certain format is sent to the air situation receiving system,then analyzed to obtain data,and the process is displayed through LabVIEW software.Compared with other software,LabVIEW has such characteristics as more friendly interface,simple operation and easy implementation.
radar;LabVIEW;UDP;air situation receiving
TP312
A
1008-1739(2015)10-40-3
定稿日期:2015-04-26