《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于DM3730的LFMCW雷達中間件設計與實現
基于DM3730的LFMCW雷達中間件設計與實現
2015年電子技術應用第5期
唐國珍,張士宗,裴 旭
電子科技大學 電子科學技術研究院,四川 成都611731
摘要: 設計和實現了一種中間件軟件,用于連接基于多播機制的雷達掃描單元和基于單播機制的顯示單元,并利用DM3730中ARM與DSP雙核協作機制,將雷達坐標轉換算法的實現交給DSP核處理,解決了單核ARM處理器在數據處理方面性能的不足(丟包問題)。
中圖分類號: TP311.5
文獻標識碼: A
文章編號: 0258-7998(2015)05-0043-03
Design and implementation of the LFMCW radar middleware based on DM3730
Tang Guozhen,Zhang Shizong,Pei Xu
Research Institute of Electronic Science and Technology, University of Electronic Science and Technology of China
Abstract: This paper designs and implements a middleware software, to shield the different of interface between radar scanning unit based on multicast mechanism and display unit based on unicast mechanism, and by using the cooperation mechanism of ARM and DSP dual-core in DM3730, puts the implement of radar coordinate conversion algorithm processing to DSP core to solve the problem that single-core ARM processor performance does not meet the requirements of data processing speed(packet loss) . Tests show that after joining the middleware, it can not only guarantee normal communication between radar scanning unit and the display unit, improve portability of the display unit, but also optimize the display performance of the system to meet the performance requirements of embedded systems.
Key words : multicast;unicast;middleware;DM3730;embedded

   

0 引言

    LFMCW(線性調頻連續波雷達)具有CW雷達發射功率小的特點,更兼有脈沖雷達測距的能力,廣泛應用于導航、測量等領域[1]。基于多播機制對其組網,可以實現多臺雷達掃描終端與多臺顯示終端同步相連。顯示終端的主要功能包括控制雷達狀態和顯示雷達圖像兩個部分。采用多線程編程,可以讓不同的顯示終端有不同的功能,比如一部分顯示終端只具有顯示雷達圖像的功能,而另一部分顯示終端同時具有控制和顯示兩個功能(這部分顯示終端可以提供給管理員使用)。由于顯示單元是基于單播機制,為了提高顯示單元的可移植性,屏蔽雷達掃描單元和顯示單元通信接口的不同,可以用中間件負責兩部分的通信。

    DM3730是TI公司生產的雙核(ARM+DSP)架構處理器。其低功耗、高性能、低價格的特點深受廣大嵌入式開發者的喜愛。顯示終端基于DM3730平臺,掃描單元發送的雷達數據是極坐標表示,必須通過坐標轉換后才能在終端上正常顯示。由于坐標轉換計算量過大,用ARM處理器實現坐標轉換算法會大大增加系統負擔,并且會產生嚴重的丟包現象。所以將算法實現交給DSP處理。實測發現,經過優化后的ARM處理器CPU使用率大大降低,雷達數據處理過程中再無丟包現象。

1 系統結構

1.1 物理結構

    如圖1所示,雷達掃描單元由雷達天線和FPGA組成。雷達天線負責采集雷達數據,FPGA負責AD采樣,并實現了海雜波抑制、雨雪抑制、海浪抑制等算法。FPGA通過網線將處理好的數據發送至ARM端,ARM端負責將接收到的雷達數據作坐標轉換處理并顯示雷達圖像[2]。另外,ARM端還負責控制雷達狀態。

qrs6-t1.gif

1.2 系統邏輯結構

    系統邏輯結構如圖2所示。多播使用D類地址作為IP地址,應用程序可以通過加入一個或者多個多播組,從而僅接收所在多播組的數據[3]。多播組1~4分別代表雷達控制信息多播組、雷達數據多播組、雷達狀態反饋信息多播組、keepalive多播組。中間件與UI顯示單元的連接方式是單播機制。加入雷達控制信息多播組的成員可以發送控制指令給該多播組的雷達掃描單元,從而控制其狀態。加入雷達數據多播組的成員可以接收到FPGA處理好的雷達數據。加入雷達反饋信息多播組的成員可以接收到雷達自身狀態的反饋信息,比如當前量程、增益等[4]。反饋系統是為了增強雷達顯示系統的實時性和健壯性。Keepalive多播組比較特殊,雷達掃描單元會定期檢查該多播組有無keepalive指令,如果10 s內沒有收到該指令,則自動關機。所以,中間件必須加入該多播組并不斷發送keepalive指令才能保證雷達持續工作。GPS傳感器和AIS傳感器將采集和處理后的數據發送至串口,中間件從串口搜集這些數據,解析打包后通過socket發送至UI。可見,中間件可以選擇加入這幾個多播組的一個或者全部,從而擁有不同的功能組合。在這種邏輯結構下,中間件使得UI顯示單元抽象了所有的數據來源,它只負責接收網絡數據、顯示圖像以及響應鼠標鍵盤事件。

qrs6-t2.gif

2 中間件功能設計與實現

    中間件是連接兩個獨立應用程序的橋梁。兩個或多個具有不同通信接口的應用程序通過中間件依然可以正常通信。所以,中間件能屏蔽不同的接口,幫助用戶靈活、高效地開發應用程序,并大大提高應用程序的可移植性[5],這在嵌入式應用中意義重大。

    基于以上分析,本中間件軟件主要實現5個功能:(1)控制雷達狀態;(2)接收處理雷達掃描數據;(3)接收處理雷達反饋信息;(4)發送keepalive指令;(5)提供其他功能接口,如GPS和AIS。采用多線程編程來實現這些功能。下面重點介紹雷達狀態控制和雷達數據接收處理的實現流程。

2.1 雷達狀態控制

    雷達控制流程如圖3所示。協議1是UI顯示單元和中間件控制命令協議,協議2是中間件與掃描單元控制命令協議。

qrs6-t3.gif

    ARM端可以將雷達掃描單元視為一個通過網絡控制的移位寄存器組,通過設置這些寄存器就可以改變雷達的狀態。

    雷達控制命令包括開關機、增益調節、量程調節、海雜波抑制調節、雨雪抑制調節、掃描單元轉速等。UI顯示單元通過響應鼠標或觸摸屏事件發送命令給中間件;中間件解析并根據協議2重新合成報文發送至多播組1;掃描單元接收并解析多播組的命令,設置移位寄存器,從而改變雷達運行狀態。

2.2 數據接收處理流程

數據處理流程如圖4所示。其中,協議3為雷達與中間件的數據協議,協議4為中間件與UI顯示單元的數據協議。雷達掃描原始數據預先已經經過FPGA處理,這里的雷達數據是極坐標雷達掃描線數字信號。中間件通過加入多播組2從而接收到完整的掃描數據。由于UI顯示直角坐標數據較為通用和方便,所以中間件一個重要功能是坐標轉換。

qrs6-t4.gif

2.3 數據處理過程中單核ARM性能的不足

    如圖5所示是FPGA發送至ARM端的雷達數據格式,ns代表線號,a代表掃描線角度。每包雷達數據由32條掃描線構成,每條線536 bit,每包數據17 160 bit,雷達掃描單元轉速V為2.4 s/rad,每一圈數據包含64個包。所以,必須在37 ms內處理完一個數據包,否則將產生丟包現象。實測發現,ARM處理每包的時間是100 ms左右,遠遠未達到要求,并且中間件CPU占有率高達40%,進行雷達控制操作時甚至出現卡頓現象。為了解決丟包問題和降低中間件CPU占有率,將坐標轉換算法實現交給DPS處理是一個非常好的選擇。

qrs6-t5.gif

3 算法移植

    DM3730微處理器由1 GHz的ARM Cortex-A8 Core和800 MHz的TMS320C64x+ DSP Core兩部分組成,并提供了一整套完整的開發套件。

3.1 內存劃分

    如圖6所示,將物理內存的前120 MB劃分給ARM處理器用于Linux操作系統;CMEM是ARM和DSP用于數據通信的內存區域,大小為10 MB;Dsplink是用于ARM與DSP底層通信的區域,大小為1 MB;Heaps是DSP運行算法時的堆。ARM處理器和DSP處理器共享256 MB內存,ARM端運行Linux操作系統,DSP端運行實時操作系統。ARM端把這段內存通過MMU映射成虛擬內存,而DPS端直接使用物理地址。由于Linux的內存管理機制,程序員只能通過malloc()函數來為應用程序分配內存。程序員不僅不能控制這段內存在物理內存上的位置,甚至不知道這些被分成4 KB每頁的內存是否是物理連續的[6]。相反,DPS端的實時操作系統可以直接操作物理地址。所以,為了使ARM進程(應用控制)和DSP(算法加速)的內存共享,必須從DDR3嚴格劃分出一塊內存供其共享。這塊內存的大小是可以指定并且是物理連續的,這段內存不會被Linux系統直接管理,通過指定的方法,ARM端應用程序可以訪問這段內存。

qrs6-t6.gif

    TI公司的DVSDK開發套件提供模塊cmemk.ko為ARM和DSP通信提供連續的內存。

3.2 實現流程

    如圖7所示是ARM+DSP雙核工作原理,ARM端將DSP視為一個標準API接口,可以直接調用DSP處理數據,DSP負責實際的算法實現。實現步驟分為以下4步:

qrs6-t7.gif

    (1)完成Codec庫的開發。將坐標轉換算法按照xDM標準封裝成Codec庫。

    (2)將Codec庫集成到Codec Engine中,使用gmake命令生成擴展名為*.X64P的庫,此庫即為DSP被調用時直接加載運行的算法庫。

    (3)調用gmake生成和*.X64P相對應的*.so庫,在中間件程序中動態加載該庫即可調用DSP進行坐標轉換。

    (4)編譯和加載CMEM模塊和Dsplink模塊,完成物理內存劃分。

4 實驗與測試

    實驗效果圖如圖8、圖9所示,圖8(a)和8(b)分別為不調用DSP核和調用DSP核的雷達顯示圖像,可以看出調用DSP核時解決了丟包現象,雷達圖像左下再無空數據。圖9(a)和9(b)分別為不調用DSP核和調用DSP核時的CPU占有率,rd_demeon即為中間件軟件。可以看出,不調用DSP核時中間件的CPU占有率高達近40%,而調用DSP核后將中間件的CPU占有率降低到20%,節約了寶貴的CPU資源。

qrs6-t8.gif

qrs6-t9.gif

5 結論

    本文通過設計和實現一個中間件軟件,屏蔽了基于多播機制的雷達掃描單元和基于單播機制的雷達顯示單元通信接口的不同,實現了多個掃描單元和多個顯示單元同步相連,并可以通過裁剪中間件軟件功能,讓不同的顯示單元有不同的功能。ARM端通過標準的API接口調用DSP核處理數據,不僅解決了單核ARM處理器處理數據時性能不足而產生的丟包現象,而且節約了寶貴的CPU資源,解決了由于硬件資源的限制而產生的頓卡現象。測試結果表明,加入中間件后雷達顯示系統運行效果良好,達到了預期的效果。

參考文獻

[1] 楊建宇.線性調頻連續波雷達理論與實現[D].成都:電子科技大學,1991.

[2] 范多亮.雷達顯示終端中的死點分析[J].信息化研究,2010,36(3):13-15.

[3] 謝希仁.計算機網絡[M].北京:電子工業出版社,2008.

[4] 陳筱倩,周陬,王宏遠.基于IP組播的流媒體服務器軟件設計[J].微電子學與計算機,2004(12):76-80.

[5] 張云勇.中間件技術原理與應用[M].北京:清華大學出版社,2010.

[6] BOVET D P,CESATI M.深入理解Linux內核[M].陳莉君,張瓊聲,張宏偉,譯.北京:中國電力出版社,2007.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲成色999久久网站| 午夜视频一区二区| 国产精品综合视频| 欧美日韩午夜在线| 欧美日韩一卡| 欧美日韩亚洲视频| 欧美久色视频| 欧美精品日韩综合在线| 欧美国产精品劲爆| 欧美激情视频在线免费观看 欧美视频免费一| 久久国产黑丝| 久久视频一区| 久久综合中文| 欧美va亚洲va香蕉在线| 欧美成人午夜激情| 欧美精品久久99久久在免费线| 欧美高清不卡| 欧美日韩国产高清视频| 欧美视频免费在线| 国产精品v欧美精品v日韩| 国产精品久久久| 国产欧美日韩视频一区二区| 国产亚洲欧美日韩一区二区| 国内久久视频| 亚洲高清不卡在线观看| 亚洲国产专区| 亚洲美女黄色片| 一区二区三区国产在线| 亚洲香蕉成视频在线观看| 亚洲女性喷水在线观看一区| 欧美在线观看网站| 亚洲黄色成人网| 亚洲最新在线| 午夜久久资源| 久久久午夜精品| 欧美激情欧美狂野欧美精品| 欧美视频专区一二在线观看| 国产欧美日本一区二区三区| 国产一区二区三区免费观看| 亚洲国产精品一区二区www在线 | 亚洲国产精品精华液网站| 91久久综合| 亚洲天堂av高清| 欧美在线免费播放| 老司机午夜免费精品视频| 欧美精选午夜久久久乱码6080| 国产精品成人观看视频免费| 国产一区二区三区的电影| 亚洲成色www8888| 亚洲深夜福利视频| 久久国产精品亚洲va麻豆| 亚洲精品乱码久久久久久蜜桃91| 在线亚洲观看| 久久久夜精品| 欧美日韩国产在线一区| 国产欧美日韩精品专区| 亚洲第一天堂av| 亚洲一线二线三线久久久| 亚洲丁香婷深爱综合| 中文一区二区| 久久久水蜜桃av免费网站| 欧美日韩国产黄| 国内精品视频在线观看| 一区二区三区免费观看| 亚洲电影av在线| 亚洲欧美日韩国产中文在线| 久久亚洲国产成人| 国产精品mm| 在线观看视频一区| 亚洲欧美www| 一区二区欧美在线| 久色婷婷小香蕉久久| 国产精品日韩在线一区| 亚洲国产精品嫩草影院| 篠田优中文在线播放第一区| 亚洲视频导航| 免费在线亚洲| 国产色综合天天综合网| 99国产一区| 亚洲精品亚洲人成人网| 久久久综合激的五月天| 国产精品久久久久国产精品日日| 亚洲国产成人久久综合一区| 羞羞色国产精品| 亚洲制服欧美中文字幕中文字幕| 欧美国产成人在线| 激情视频一区| 性欧美暴力猛交另类hd| 亚洲欧美一级二级三级| 欧美日韩精品免费看| 精品va天堂亚洲国产| 午夜精品久久久久久久白皮肤| 亚洲网站啪啪| 欧美日韩精品欧美日韩精品 | 国产精品久久久久久久久久尿 | 日韩视频免费观看高清完整版| 久久精品国产亚洲一区二区三区| 亚洲欧美春色| 欧美日韩国产一区二区| 亚洲激情成人网| 亚洲国产精品一区二区久| 欧美在线一二三| 国产精品乱码久久久久久| 亚洲精品中文在线| 亚洲精品视频啊美女在线直播| 玖玖精品视频| 黄色影院成人| 久久精品夜色噜噜亚洲a∨| 欧美在线视频全部完| 国产精品久久久久久模特 | 欧美在线观看日本一区| 先锋影音一区二区三区| 国产精品r级在线| 一区二区欧美精品| 亚洲色在线视频| 欧美三级午夜理伦三级中文幕| 亚洲毛片在线看| 一区二区日韩| 欧美新色视频| 亚洲一卡久久| 性视频1819p久久| 国产日韩欧美a| 久久国产精品久久国产精品 | 精品电影在线观看| 亚洲成人直播| 男人天堂欧美日韩| 亚洲成色www久久网站| 亚洲精品一区二区三区在线观看| 欧美成人一区二区| 91久久国产自产拍夜夜嗨| 日韩一级视频免费观看在线| 欧美日韩国产影片| 中文av字幕一区| 先锋亚洲精品| 国内精品一区二区三区| 亚洲经典在线| 欧美日韩另类综合| 亚洲午夜在线| 久久久久国色av免费看影院| 亚洲第一在线| 在线视频一区二区| 国产精品一区二区黑丝| 午夜亚洲视频| 蜜臀av性久久久久蜜臀aⅴ| 亚洲经典在线| 亚洲欧美久久久| 国产主播一区二区三区| 亚洲精品视频一区| 欧美午夜视频在线| 欧美在线观看视频在线| 欧美国产综合视频| 亚洲午夜高清视频| 久久久久网站| 亚洲免费成人| 午夜精品免费| 在线成人av.com| 亚洲一区免费网站| 国产一区久久| 一本色道久久综合亚洲精品小说 | 午夜视频在线观看一区| 免费不卡视频| 正在播放日韩| 久久影院午夜论| 妖精成人www高清在线观看| 欧美一区二区三区在| 亚洲成人在线观看视频| 亚洲香蕉在线观看| 国产综合欧美| 一区二区欧美激情| 国产亚洲午夜| 中文欧美字幕免费| 国语自产精品视频在线看8查询8| 一区二区三区精品久久久| 国产日韩欧美综合在线| 日韩亚洲精品电影| 国产日韩欧美在线看| 日韩一本二本av| 国产亚洲成av人片在线观看桃| 日韩一级黄色av| 国产综合色产在线精品| 亚洲视频免费看| 有码中文亚洲精品| 亚洲欧美成人综合| 亚洲风情亚aⅴ在线发布| 亚洲欧美日韩综合aⅴ视频| 亚洲成色www8888| 久久成人免费日本黄色| 亚洲精品老司机| 久久久久久网| 亚洲一区在线直播| 欧美日韩不卡| 亚洲国产精品久久久久秋霞蜜臀 | 一区二区三区四区蜜桃| 国产一二三精品| 亚洲影视在线| 亚洲三级电影在线观看| 久久裸体艺术| 亚洲欧洲av一区二区三区久久| 欧美日韩一区二区三区| 亚洲国产精品成人一区二区|