《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 基于Linux的軟件化和網(wǎng)絡(luò)化雷達(dá)終端系統(tǒng)的實(shí)現(xiàn)

基于Linux的軟件化和網(wǎng)絡(luò)化雷達(dá)終端系統(tǒng)的實(shí)現(xiàn)

2008-08-27
作者:錢(qián) 波, 龔 璞, 王德生

  摘 要: 分析了基于Linux的軟件化和網(wǎng)絡(luò)化雷達(dá)終端系統(tǒng)" title="終端系統(tǒng)">終端系統(tǒng)的必要性及可行性;介紹了系統(tǒng)的實(shí)現(xiàn)方案" title="實(shí)現(xiàn)方案">實(shí)現(xiàn)方案和實(shí)現(xiàn)細(xì)節(jié);并對(duì)系統(tǒng)的框架結(jié)構(gòu)做出了說(shuō)明,。
  關(guān)鍵詞: 雷達(dá)視頻" title="雷達(dá)視頻">雷達(dá)視頻 雷達(dá)終端 小波" title="小波">小波壓縮 SMP


  現(xiàn)有的雷達(dá)終端系統(tǒng)采用了大量的高速專(zhuān)用芯片實(shí)現(xiàn),。而芯片的更新?lián)Q代很快,許多芯片已面臨淘汰,即使還沒(méi)有完全消失,價(jià)格也已經(jīng)很昂貴,給系統(tǒng)的維護(hù)和升級(jí)換代帶來(lái)極大不便,。隨著計(jì)算機(jī)、軟件和網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,,使得新一代的雷達(dá)終端系統(tǒng)的軟件化和網(wǎng)絡(luò)化實(shí)現(xiàn)成為可能,。本文基于此技術(shù)背景展開(kāi)研究,并給出系統(tǒng)的具體實(shí)現(xiàn),。
1 整體實(shí)現(xiàn)方案
1.1 基于Linux操作系統(tǒng)
  傳統(tǒng)的雷達(dá)顯示系統(tǒng)是基于Windows的,。但是Windows面臨許多問(wèn)題,譬如封閉源碼,、易被病毒和黑客入侵等,。而Linux是免費(fèi)的、開(kāi)源的,、網(wǎng)絡(luò)化的操作系統(tǒng),。其內(nèi)核是獨(dú)立和高度可配置的,。Linux的網(wǎng)絡(luò)功能和安全性要優(yōu)于Windows。所以基于Linux的系統(tǒng)方案是比較合適的,。
1.2 系統(tǒng)實(shí)現(xiàn)方案
  系統(tǒng)由預(yù)處理機(jī),、主顯機(jī)和網(wǎng)顯機(jī)組成,如圖1所示,。


  預(yù)處理機(jī)的主要功能是:雷達(dá)視頻的采集,、壓縮和傳輸,接收二次信息和操控信息并存儲(chǔ)所有信息,。主顯機(jī)功能:壓縮視頻的接收,、解壓、顯示,,接收二次信息并顯示,,人機(jī)操控操作,將二次信息和操控信息發(fā)送到網(wǎng)絡(luò)上,。網(wǎng)顯機(jī)類(lèi)似于主顯機(jī),,但沒(méi)有操控功能。為簡(jiǎn)單起見(jiàn),,本文不討論網(wǎng)顯機(jī)的實(shí)現(xiàn),。
2 預(yù)處理機(jī)系統(tǒng)的實(shí)現(xiàn)
  預(yù)處理機(jī)完成數(shù)據(jù)的采集、壓縮和傳輸,,下面針對(duì)這三個(gè)方面進(jìn)行介紹,。
2.1 基于PCI總線的雷達(dá)視頻采集卡
  這是系統(tǒng)中惟一的硬件實(shí)現(xiàn)部分,也是必不可少的,,它將采集的數(shù)據(jù)傳給計(jì)算機(jī)。這部分的具體實(shí)現(xiàn)可參考文獻(xiàn)[1],。
2.2 小波壓縮技術(shù)
  當(dāng)雷達(dá)采樣率很高時(shí),,網(wǎng)絡(luò)傳輸前不進(jìn)行壓縮處理,帶寬是不夠的,。
  基于幀的壓縮技術(shù),,不適合對(duì)雷達(dá)視頻具有實(shí)時(shí)要求的場(chǎng)合,因?yàn)闀?huì)引入一個(gè)固定延時(shí),。而一維小波壓縮可以做到高效壓縮和實(shí)時(shí)要求的折衷,。
  小波壓縮的思想是將一維數(shù)字序列分為粗糙尺度和細(xì)節(jié)兩部分,各占一半存儲(chǔ)空間,,這個(gè)過(guò)程可以一直遞歸" title="遞歸">遞歸下去,;因?yàn)榛夭ㄐ盘?hào)比較平滑,細(xì)節(jié)部分主要是噪聲,,所以只保留粗糙尺度部分,,如圖2所示,。


  不同尺度系數(shù)的分解與合成如圖3所示。
  
  其中h(k),、g(k)是一組由兩尺度方程推導(dǎo)出的共軛鏡像濾波器,。aki是第i層的(粗)尺度系數(shù)。第i層按遞歸分解成i+1層的更大尺度部分ak(i+1)和細(xì)節(jié)部分dk(i+1),。
  分解過(guò)程相當(dāng)于輸入序列和濾波器卷積后,,進(jìn)行亞采樣,只保留偶數(shù)點(diǎn),;合成過(guò)程相當(dāng)于先對(duì)序列進(jìn)行插值(添加0)后,,再與濾波器卷積、相加,。
  圖4是一個(gè)用db1小波遞歸3次壓縮一段雷達(dá)回波的例子,,壓縮接近原來(lái)的1/8。


  系統(tǒng)中采用 (9,7)雙正交小波快速提升算法,,根據(jù)實(shí)際需要進(jìn)行1~4層尺度分解,。小波壓縮實(shí)現(xiàn)細(xì)節(jié)可參考文獻(xiàn)[2]
2.3 網(wǎng)絡(luò)傳輸
  常用的網(wǎng)絡(luò)協(xié)議是UDP和TCP,。UDP是面向無(wú)連接的協(xié)議,;TCP是面向有連接的協(xié)議。另外,,TCP協(xié)議在接收方還要進(jìn)行包的次序調(diào)整,,因?yàn)椴煌陌赡馨床煌穆酚傻竭_(dá)。然而,,可靠是要付出代價(jià)的,,TCP占用CPU資源要比UDP高,網(wǎng)絡(luò)利用率也不如UDP,。如果網(wǎng)絡(luò)狀況良好,,需要持續(xù)進(jìn)行大批量的數(shù)據(jù)傳輸,可以考慮UDP,。一般情況下,,通訊方式都是點(diǎn)對(duì)點(diǎn)的,也就是所謂的單播方式,。采用這種方式,,多個(gè)客戶機(jī)必須與同一個(gè)服務(wù)器分別建立連接,這導(dǎo)致了網(wǎng)絡(luò)負(fù)載成倍增加。
  在特殊情形下可以使用廣播方式,。其目前只被UDP協(xié)議支持,。廣播的實(shí)現(xiàn)非常容易,只需要將目的IP地址設(shè)置為該段子網(wǎng)的地址即可,。這種一對(duì)多的方式會(huì)影響不需要接收的主機(jī),,子網(wǎng)上所有未參加廣播接收的主機(jī)也必須完成對(duì)數(shù)據(jù)報(bào)的協(xié)議處理,,直至UDP層才將它丟棄,甚至還會(huì)引起廣播風(fēng)暴,。
  單播和廣播是兩種極端,。多播提供了一種折衷的方案。多播數(shù)據(jù)報(bào)僅由對(duì)該數(shù)據(jù)報(bào)感興趣的主機(jī)接收(該主機(jī)加入多播組),,不會(huì)影響子網(wǎng)上其它主機(jī),。目前UDP提供對(duì)多播的支持。
  系統(tǒng)中,,一次視頻采用多播方式,;主顯示機(jī)與預(yù)處理機(jī)之間的操控命令連接通道由于需要可靠的連接且通信量相對(duì)較少,所以采用了面向連接的TCP協(xié)議,。
3 主顯機(jī)系統(tǒng)的實(shí)現(xiàn)
  主顯機(jī)主要由各種顯示模塊和網(wǎng)絡(luò)模塊組成,。顯示模塊包括PPI和AR模塊。其中以PPI顯示技術(shù)最為復(fù)雜,顯示模塊和網(wǎng)絡(luò)模塊如何整合是系統(tǒng)效率高低的關(guān)鍵,。
3.1雷達(dá)視頻PPI顯示
3.1.1坐標(biāo)變換和死地址

  顯示過(guò)程中一個(gè)很重要的步驟是進(jìn)行坐標(biāo)的轉(zhuǎn)換,。數(shù)據(jù)采集卡得到的雷達(dá)視頻數(shù)據(jù)以距離方位為坐標(biāo),但通用顯卡的內(nèi)存則以行列為坐標(biāo),,故極坐標(biāo)要轉(zhuǎn)化為x-y直角坐標(biāo),,極坐標(biāo)與自然直角坐標(biāo)轉(zhuǎn)換為:
  
  如果實(shí)時(shí)計(jì)算,目前的計(jì)算機(jī)硬件條件無(wú)法達(dá)到實(shí)時(shí)要求,??墒孪扔?jì)算好,轉(zhuǎn)換時(shí)采用查表法,,以空間換取時(shí)間,。轉(zhuǎn)化表可以只計(jì)算第一象限,其它象限根據(jù)方位碼對(duì)稱(chēng)性確定,。
  所謂死地址,,是指PPI顯示中遠(yuǎn)離顯示中心的地方會(huì)有部分區(qū)域始終訪問(wèn)不到,從而產(chǎn)生類(lèi)似于衍射花紋的現(xiàn)象,。半徑愈大時(shí),這種花紋愈明顯,。如圖5所示,。


  需要把這些不能被訪問(wèn)到的點(diǎn)“補(bǔ)”上。將原有的一些有重復(fù)(即多個(gè)(ρ-θ)點(diǎn)映射到同一個(gè)(x-y)坐標(biāo))的點(diǎn)分開(kāi),,以最近為原則將其中的重復(fù)點(diǎn)強(qiáng)行改為“死地址”點(diǎn),。例如,極坐標(biāo)下的兩個(gè)點(diǎn)M111)和M222),轉(zhuǎn)換為直角坐標(biāo)后對(duì)應(yīng)的點(diǎn)都是M3(x1,y1),,而點(diǎn)M4(x2,y2)是“死地址”且M3和M4相隔很近,,這時(shí)強(qiáng)行規(guī)定M1=>M3而M2=>M4,。
  系統(tǒng)中,不偏心時(shí),,掃描半徑是512像素,,一周4096根掃描線。實(shí)踐證明可以將所有的死地址與相鄰的方位距離碼關(guān)聯(lián)起來(lái),,消除花紋圖案,。可以想象:掃描半徑越大,,遠(yuǎn)離圓心的死區(qū)面積越大,,其附近通常找不到能夠利用的重復(fù)點(diǎn),必須改進(jìn)方案,。
  考慮最極端的情形,,偏心在圓周上,此時(shí)最大掃描半徑為1024,。將半徑1024的圓分為半徑512的同心圓和剩下的外圓環(huán),。內(nèi)部的小圓可以用前面的方案。512~1023部分將方位分辨率提高一倍,,即一周8192根,,再進(jìn)行補(bǔ)點(diǎn)。具體算法如下:
  (1) 得到外圓環(huán)的所有x-y坐標(biāo)點(diǎn)的集合,。
  (2) 將外圓環(huán)內(nèi)所有的ρ-θ點(diǎn)按轉(zhuǎn)換公式四舍五入到最近的x-y坐標(biāo)點(diǎn),。有些x-y會(huì)關(guān)聯(lián)多個(gè)ρ-θ點(diǎn),有些則沒(méi)有ρ-θ點(diǎn)與之關(guān)聯(lián),。
  (3) 遍歷那些沒(méi)有ρ-θ關(guān)聯(lián)的x-y,。對(duì)于每個(gè)這樣的x-y點(diǎn),查找以自己為中心,、邊長(zhǎng)為4的正方形內(nèi)所有的x-y點(diǎn),,如果發(fā)現(xiàn)某一個(gè)x-y點(diǎn)關(guān)聯(lián)ρ-θ多于一個(gè),就將其中的一個(gè)ρ-θ給這個(gè)沒(méi)有ρ-θ關(guān)聯(lián)的x-y,。同時(shí),,給出ρ-θ的x-y點(diǎn),在其ρ-θ關(guān)聯(lián)鏈表中去掉給出的ρ-θ,。
  (4) 按ρ從512~1023,、θ從0~8191的順序?qū)?duì)應(yīng)的x-y寫(xiě)入磁盤(pán)文件中。
  編程計(jì)算結(jié)果表明這種算法可以很快地補(bǔ)全所有死地址,。
  相應(yīng)地,,原來(lái)的坐標(biāo)轉(zhuǎn)換表應(yīng)該由補(bǔ)過(guò)死地址的兩張表(一張是半徑512以內(nèi),另一張是512~1023)代替。
3.1.2 余暉模擬
  傳統(tǒng)雷達(dá)系統(tǒng)中利用長(zhǎng)余輝管作為PPI顯示器,。其優(yōu)點(diǎn)是:目標(biāo)亮度強(qiáng),、衰減慢;噪聲在顯示器上亮度弱,、衰減快,。這使目標(biāo)很突出。如果是運(yùn)動(dòng)目標(biāo),,會(huì)產(chǎn)生拖尾效應(yīng),,使運(yùn)動(dòng)目標(biāo)更形象、更容易被發(fā)現(xiàn),。使用普通顯示器,,必須提供一種軟件實(shí)現(xiàn)機(jī)制模擬余輝。一種方法是:對(duì)PPI掃描區(qū)域的點(diǎn)進(jìn)行循環(huán)偽隨機(jī)訪問(wèn),,讀出后進(jìn)行衰減再寫(xiě)入,。其原理是:按偽隨機(jī)序列進(jìn)行遍歷的點(diǎn)可以近似認(rèn)為是分布均勻的,而當(dāng)前掃描區(qū)域只是占整個(gè)PPI區(qū)域的極少部分,,所以落入當(dāng)前掃描區(qū)域的偽隨機(jī)序列的點(diǎn)數(shù)也很少,,而遠(yuǎn)離當(dāng)前區(qū)域的隨機(jī)序列的點(diǎn)數(shù)很多,所以平穩(wěn)后能產(chǎn)生離當(dāng)前掃描線越遠(yuǎn)越暗的余暉效果,。
  對(duì)于半徑512像素點(diǎn)的PPI掃描區(qū)域,,其外切矩形為1024×1024。用20bit的偽隨機(jī)序列的前10bit對(duì)應(yīng)矩形區(qū)域的X坐標(biāo)點(diǎn),,后10bit對(duì)應(yīng)Y坐標(biāo)點(diǎn),,再去掉圓外面、矩形以內(nèi)的像素,。PPI每掃描一根半徑線,,就循環(huán)讀出一段隨機(jī)點(diǎn),衰減后再寫(xiě)入,。每次衰減的點(diǎn)數(shù)和幅度可根據(jù)需要設(shè)置,。X和Y坐標(biāo)的隨機(jī)表可以事先生成好,以數(shù)據(jù)文件的形式存儲(chǔ)在硬盤(pán)中,,程序初始化時(shí)一次讀入,。
3.1.3 二次信息的分層顯示
  廣義的二次信息包括航跡、狀態(tài)監(jiān)控等所有非一次視頻的信息,。在軟件方案中,,采用了Overlay功能實(shí)現(xiàn)。目前通用顯卡都支持此功能,。
  Overlay如同顯示器前一塊透明的切片,,如圖6所示。當(dāng)需要顯示Overlay時(shí),,可同時(shí)看到Overlay部分和Primary Surface沒(méi)有被Overlay遮擋的地方,。當(dāng)不需要顯示Overlay時(shí),移除Overlay,,原來(lái)的Primary Surface內(nèi)容不變,,也就是說(shuō)Primary Surface與Overlay的內(nèi)容物理上是分開(kāi)的。而是否顯示Overlay,,由Primary Surface上像素的顏色來(lái)決定,。當(dāng)Primary Surface上某些區(qū)域的像素設(shè)為一種特殊的顏色時(shí),這些區(qū)域顯示的就是Overlay上的內(nèi)容,。這種起過(guò)濾作用的顏色稱(chēng)為Color Key,。這種顯示機(jī)制完全由顯卡的CPU完成,所以當(dāng)使用Overlay功能時(shí),,程序不會(huì)有明顯的性能損失,。不同的顯卡,Color Key可能不一樣,。


  Overlay有多種模式,,最常用的是YV12_OVERLAY,Y:U:V=4:2:2,。本系統(tǒng)采用了這種模式,。
  YUV Overlay的一個(gè)特點(diǎn)是:適當(dāng)?shù)毓潭║、V,,可以近似地固定顏色種類(lèi),,改變Y就相當(dāng)于改變亮度。測(cè)試還表明,,在Overlay上顯示視頻比在Primary Surface上顯示要少占用CPU資源,。相比Primary Surface 上的RGB顯示方式,這些特性很適合于PPI顯示一次視頻,。
  一次和二次分層顯示的實(shí)現(xiàn)方法是:首先將Primary Surface上位于PPI掃描區(qū)域內(nèi)的所有像素都填上特殊的Color Key,,這樣保證在與Primary Surface關(guān)聯(lián)的Overlay上的一次視頻可見(jiàn);需要顯示二次信息的地方用不同于Color Key的其它顏色填在Primary Surface層上,;當(dāng)不需要顯示二次信息時(shí),,只需在Primary Surface上將原來(lái)的二次信息用Color Key顏色再寫(xiě)一遍即可。
3.2 網(wǎng)絡(luò)化的顯示應(yīng)用程序框架結(jié)構(gòu)
  由于接收網(wǎng)絡(luò)組播的視頻幀包是一種阻塞操作,,而GUI程序的主線程不能有阻塞操作,,所以網(wǎng)絡(luò)接收部分應(yīng)該放在子線程或子進(jìn)程中。
  系統(tǒng)首先選擇了子線程方式,,試驗(yàn)表明在這種方式下顯示部分不均勻,。這是因?yàn)镃PU調(diào)度的對(duì)象是進(jìn)程,進(jìn)程內(nèi)的線程同時(shí)競(jìng)爭(zhēng)CPU分給該進(jìn)程的時(shí)間片,于是就會(huì)出現(xiàn)在某段時(shí)間內(nèi)主線程一直占用CPU,,另一段時(shí)間網(wǎng)絡(luò)部分的子線程占用CPU,。網(wǎng)絡(luò)接收雖然不會(huì)丟包,但是接收速度的不均勻引起了顯示的不均勻,。系統(tǒng)又試驗(yàn)了子進(jìn)程方式,,發(fā)現(xiàn)顯示效果有所改觀,但是改進(jìn)不大,。
  設(shè)想一下,,如果有兩個(gè)CPU,并行運(yùn)行父進(jìn)程和子進(jìn)程,,那么整體運(yùn)行效率就會(huì)有很大程度的提高,。因?yàn)椋珻PU幾乎不需要在不同的進(jìn)程之間反復(fù)切換了,。
  系統(tǒng)中選用具有超線程功能的Intel Pentium 4處理器,,如果操作系統(tǒng)能夠支持SMP(Symmetric Multiple Processing),那么一個(gè)CPU相當(dāng)于兩個(gè)CPU,,兩個(gè)進(jìn)程就可以并行處理,。實(shí)際上,Linux2.4版本的內(nèi)核就支持SMP了,。系統(tǒng)選擇的內(nèi)核版本是2.6.8,,手工編譯內(nèi)核,選用SMP功能,。用新的內(nèi)核運(yùn)行同樣的程序,,顯示很平滑,最快顯示速度達(dá)到一圈2s以內(nèi),,性能得到了明顯提高,。Linux內(nèi)核的靈活定制特性在系統(tǒng)中起關(guān)鍵作用。
  圖7是主顯機(jī)上網(wǎng)絡(luò)化顯示程序的框架,。


  兼顧平等,,父子進(jìn)程盡量平均分擔(dān)負(fù)載。Linux有許多實(shí)現(xiàn)進(jìn)程間通信的機(jī)制:管道,、消息隊(duì)列,、共享內(nèi)存等。系統(tǒng)中選擇共享內(nèi)存方式,,因?yàn)檫@是進(jìn)程間通信最快捷的方式,。框架中,,二次信息通過(guò)I/O口進(jìn)入主顯機(jī),,由于其數(shù)據(jù)率比較低,,所以系統(tǒng)采用定時(shí)的方法進(jìn)行訪問(wèn)更新。
  本文論證了基于Linux的軟件化,、網(wǎng)絡(luò)化雷達(dá)終端系統(tǒng)的實(shí)現(xiàn)可行性,,并提出了一套切實(shí)可行的實(shí)現(xiàn)方案,對(duì)方案中的關(guān)鍵技術(shù)做了必要的闡述,。這套方案的推廣對(duì)目前國(guó)內(nèi)雷達(dá)終端系統(tǒng)具有革命性的意義。
參考文獻(xiàn)
1 李 清.基于PCI總線的雷達(dá)視頻采集方案. 電子技術(shù)應(yīng)用,,2004,;30(11)
2 張旭東.圖像編碼基礎(chǔ)和小波壓縮技術(shù).北京:清華大學(xué)出版社,2004
3 W.Richard Stevens.Unix網(wǎng)絡(luò)編程(第一,、二卷).北京:清華大學(xué)出版社,,2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。