• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于VxWorks的嵌入式二次雷達航跡記錄儀設計?

      2012-07-01 18:04:25韓林
      電訊技術(shù) 2012年4期
      關(guān)鍵詞:數(shù)組航跡隊列

      韓林

      (中國西南電子技術(shù)研究所,成都610036)

      基于VxWorks的嵌入式二次雷達航跡記錄儀設計?

      韓林

      (中國西南電子技術(shù)研究所,成都610036)

      為實現(xiàn)對二次雷達航跡數(shù)據(jù)的實時記錄以及事后的回放分析,設計并研制了基于VxWorks實時系統(tǒng)的嵌入式記錄儀,采用自定義緩沖隊列的數(shù)據(jù)傳輸機制,充分考慮了任務之間的同步及互斥,并利用PC104板卡的硬件輔助時鐘進行系統(tǒng)設計。實踐證明,在航跡數(shù)據(jù)均值速率3.84 kbyte/s(96批/秒)(峰值速率為20.48 kbyte/s即512批/秒)的情況下,能達到正常實況回放的效果。

      二次雷達;航跡數(shù)據(jù);記錄儀;VxWorks嵌入式系統(tǒng);緩沖隊列;輔助時鐘;任務互斥

      1 引言

      在工程項目中,二次雷達系統(tǒng)需要配備一套基于以太網(wǎng)絡的記錄回放設備,用作記錄目標航跡數(shù)據(jù),并在事后可對所記錄的數(shù)據(jù)進行回放分析。

      目前,廣為實現(xiàn)并被使用的記錄回放設備主要有雷達等高速信號或各種視頻信號采集及回放系統(tǒng)[1],還有一部分記錄回放設備被使用在了飛行器或空管系統(tǒng)的航跡記錄與回放分系統(tǒng)中[2],本設備類似于后者。

      該設備以VxWorks嵌入式系統(tǒng)為設備運作平臺。VxWorks是目前嵌入式系統(tǒng)領(lǐng)域中被廣泛應用且市場占有率比較高的嵌入式操作系統(tǒng),同時也具有較強的網(wǎng)絡功能。該操作系統(tǒng)具有高效的代碼和良好的可裁剪性,以及良好的可移植性。系統(tǒng)提供基于優(yōu)先級的任務調(diào)度、任務間同步與通信、中斷處理、定時器和內(nèi)存管理等功能。

      本項目研發(fā)過程中利用了VxWorks系統(tǒng)的多任務調(diào)度機制,以由數(shù)據(jù)描述結(jié)構(gòu)體組成的自定義緩沖隊列[3]為記錄(回放)數(shù)據(jù)的緩存及在任務間傳遞的方式,代替了以消息隊列為任務間通信的傳統(tǒng)方式;軟件流程設計上,以命令解釋任務為所有遠程網(wǎng)絡命令響應任務生成的源頭,有效提升了多任務運行環(huán)境下任務之間的互斥性能,從而增加了系統(tǒng)運行的可靠性;同時,為了達到在數(shù)據(jù)回放時能較精確地實現(xiàn)數(shù)據(jù)的實況回放(回放的數(shù)據(jù)(信號)與當初采集的數(shù)據(jù)(信號)格式基本相同且速度相同),還利用到了系統(tǒng)運行硬件平臺——PC104板卡中的輔助時鐘來完成數(shù)據(jù)回放部分的設計。

      2 軟件設計原理及實現(xiàn)流程

      2.1 軟件設計原理

      記錄儀的主要軟件設計原理如圖1所示。描述,命令數(shù)據(jù)描述結(jié)構(gòu)體成員如下:

      圖1 軟件設計主要流程框圖Fig.1 Software design flow diagram

      為保證航跡數(shù)據(jù)的記錄不影響對網(wǎng)絡命令的響應,分別用兩個任務來執(zhí)行相關(guān)的操作,并分配各自的緩沖隊列;由唯一的命令解釋任務對網(wǎng)絡命令進行分析判別,從而生成相應的執(zhí)行任務。執(zhí)行結(jié)果數(shù)據(jù)直接送入網(wǎng)絡發(fā)送數(shù)據(jù)緩沖隊列;若是執(zhí)行回放操作,則生成兩個任務——由記錄文件數(shù)據(jù)讀取任務負責從記錄文件讀取回放數(shù)據(jù)并存入航跡數(shù)據(jù)回放緩沖隊列,由回放數(shù)據(jù)發(fā)送任務負責將從該緩沖隊列中順序取出的航跡數(shù)據(jù)按實況的時間間隔發(fā)送到網(wǎng)絡發(fā)送數(shù)據(jù)緩沖隊列。最后,網(wǎng)絡發(fā)送任務將網(wǎng)絡發(fā)送數(shù)據(jù)緩沖隊列中的數(shù)據(jù)順序無差別地發(fā)送到網(wǎng)絡。

      2.2 重點實現(xiàn)流程

      2.2.1 數(shù)據(jù)記錄任務流程

      網(wǎng)絡數(shù)據(jù)報文在收到以后存入在系統(tǒng)內(nèi)存中開辟的緩存區(qū),數(shù)據(jù)描述結(jié)構(gòu)體在裝訂時間信息后也分別被加入到了命令數(shù)據(jù)緩沖隊列或航跡數(shù)據(jù)接收緩沖隊列中。

      數(shù)據(jù)描述結(jié)構(gòu)體是對接收到的網(wǎng)絡數(shù)據(jù)報文的排列組成。

      圖2 數(shù)據(jù)記錄流程Fig.2 Data recording process

      上述的數(shù)據(jù)記錄文件由收到的記錄數(shù)據(jù)順序排列組成,數(shù)據(jù)索引文件由記錄數(shù)據(jù)描述結(jié)構(gòu)體順序

      航跡數(shù)據(jù)完成記錄后在硬盤上形成的文件結(jié)構(gòu)圖例如圖3所示。

      開始記錄后即以“年-月-日”作為名稱生成文件夾,該文件夾下又以該日記錄工作的次序數(shù)為名稱生成子目錄,該子目錄下包含兩個文件:航跡數(shù)據(jù)文件和航跡數(shù)據(jù)索引文件,以“TRKDATA”作為數(shù)據(jù)文件名稱,以“TRKDATA-INDEX”作為索引文件名稱。這樣的“目錄+文件”的文件結(jié)構(gòu)設計方式主要是為了便于后續(xù)的回放操作。

      圖3 硬盤文件結(jié)構(gòu)圖例Fig.3 Structure sketchmap of files on the hard drive

      圖5 航跡數(shù)據(jù)的發(fā)送流程Fig.5 The sending process of track data

      2.2.2 數(shù)據(jù)回放流程(記錄文件數(shù)據(jù)讀取任務、回放數(shù)據(jù)發(fā)送任務)

      網(wǎng)絡發(fā)送的數(shù)據(jù)包括命令操作結(jié)果和回放的航跡數(shù)據(jù)。

      航跡數(shù)據(jù)的回放流程分為數(shù)據(jù)的讀取與數(shù)據(jù)的發(fā)送兩個部分,之所以將數(shù)據(jù)回放分為兩個任務來實現(xiàn),主要是為了簡化任務使命,通過系統(tǒng)模塊化設計來提高軟件可靠性,具體如圖4和圖5所示。

      圖4 航跡數(shù)據(jù)的讀取流程Fig.4 The reading process of track data

      上述的回放流程最后只是將回放的數(shù)據(jù)添加到了網(wǎng)絡發(fā)送緩沖隊列中,并沒有完成網(wǎng)絡發(fā)送。當回放數(shù)據(jù)被添加到網(wǎng)絡數(shù)據(jù)發(fā)送隊列時,其數(shù)據(jù)描述結(jié)構(gòu)體可簡化為命令數(shù)據(jù)描述結(jié)構(gòu)體cmdSingle。

      命令結(jié)果數(shù)據(jù)在相關(guān)命令執(zhí)行后直接添加到網(wǎng)絡數(shù)據(jù)發(fā)送隊列中,其元素結(jié)構(gòu)體同上。

      最后的網(wǎng)絡發(fā)送是單獨由專門負責網(wǎng)絡發(fā)送的任務統(tǒng)一執(zhí)行的,在該任務中,對回放數(shù)據(jù)和命令結(jié)果數(shù)據(jù)進行無差別的網(wǎng)絡發(fā)送。

      2.3 軟件設計中的重點

      2.3.1 數(shù)據(jù)描述結(jié)構(gòu)體的采用

      軟件設計中,各記錄回放數(shù)據(jù)的緩沖隊列均以數(shù)據(jù)描述結(jié)構(gòu)體為隊列元素,同時以“數(shù)據(jù)文件+數(shù)據(jù)索引文件”的方式作為存儲機制。

      數(shù)據(jù)描述結(jié)構(gòu)體以定長數(shù)據(jù)作為數(shù)組成員,且可以在該數(shù)據(jù)描述結(jié)構(gòu)體中通過增加新的結(jié)構(gòu)體成員來增加對原數(shù)據(jù)的特征描述,從而為不定長的原數(shù)據(jù)提供了一個較友好的封裝。同一數(shù)據(jù)在兩個隊列中傳遞時,也可以通過以數(shù)據(jù)描述結(jié)構(gòu)體在兩個隊列數(shù)組中的傳遞來代替數(shù)據(jù)的傳遞,這樣可以減少內(nèi)存資源的申請占用次數(shù),從而提高了程序效率。

      “數(shù)據(jù)文件+數(shù)據(jù)索引文件”的存儲機制也正是在上述基礎上建立起來的,不定長的數(shù)據(jù)在存儲時,必然需要加入額外的一些信息,從而才能避免讀取時出錯。數(shù)據(jù)索引(即數(shù)據(jù)描述結(jié)構(gòu)體)中就包含了這樣的信息,而將數(shù)據(jù)與數(shù)據(jù)索引分開存儲,就避免了數(shù)據(jù)與其相關(guān)描述信息存儲在一個文件里面造成的信息雜亂,又減少了數(shù)據(jù)文件的存儲空間。從另一個角度來看,若善加利用此索引文件,也能達到對數(shù)據(jù)進行簡單加密的效果。

      2.3.2 緩沖隊列的實現(xiàn)

      緩沖隊列其實就是以在2.2.1節(jié)中提到的數(shù)據(jù)描述結(jié)構(gòu)體為元素組成的數(shù)組。該數(shù)組為全局變量數(shù)組,這樣就可被兩個任務函數(shù)訪問,一個任務向該數(shù)組添加元素,一個任務從該數(shù)組取元素,因此為了讓這兩個任務在添加(?。┰刂澳苤溃ɑ蛘咧竽芨拢?shù)組的當前有效元素個數(shù)或其他狀態(tài),還需要設置一些能表明當前數(shù)組狀態(tài)的全局變量(比如數(shù)組中的元素個數(shù)、數(shù)組頭元素位置等)。同時又為了讓這些全局變量不會因為同時被訪問而產(chǎn)生混亂,就還需要設置一個互斥信號量來供這兩個任務爭奪,誰得即誰訪問,訪問完后即刻釋放。

      由此可知,緩沖隊列的構(gòu)成主要是以下3個要素組成:數(shù)組或鏈表(全局變量);表隊列(即數(shù)組)當前狀態(tài)的全局變量,包括隊列長度(即數(shù)組當前有效元素個數(shù))、隊列頭(即數(shù)組當前第一個元素位置);互斥信號量。

      用緩沖隊列代替消息隊列,有以下兩個好處:

      (1)不論是隊列元素的添加任務或者讀取任務,均是處于不停的輪轉(zhuǎn)中,沒有任務的阻塞發(fā)生。這種情況下,當需要任務退出時,可以很方便地通過設置表需任務退出的全局變量來讓各個任務即刻跳出任務循環(huán)而自動退出,防止了通過直接刪除任務造成的部分資源未釋放的情況發(fā)生。

      (2)當緩沖隊列中的元素被取出而未被正確使用時,可以簡單地通過不刪除隊列頭的操作來使下一次的循環(huán)可以仍然從該位置獲取到此元素。而消息隊列在消息被取出后即自動更新隊列,若出現(xiàn)上述情況,則可能出現(xiàn)數(shù)據(jù)被遺漏處理的情況,即便可以通過在程序結(jié)構(gòu)設計更多的嵌套判斷來避免此種情況發(fā)生,其設計也相對較復雜。特別是在兩個上下游隊列中轉(zhuǎn)移元素時,此情況尤為突出。

      2.3.3 任務之間的互斥

      由于需要記錄儀具有可通過網(wǎng)絡命令進行遠程操作的功能,而多命令必定形成多任務的同時執(zhí)行,這就涉及到可能存在的多任務互斥問題。除了使用VxWorks系統(tǒng)的各種信號量來進行任務的同步與互斥之外,所有的任務都是通過唯一的命令解釋任務生成。這樣一來,對各個任務在生成前的必要判斷(比如是否重入、是否有資源沖突等)就變得比較簡單了。

      3 試驗結(jié)果

      測試時,模擬發(fā)送目標航跡報文M個,每個航跡報文之間的發(fā)送時間間隔為T1?;胤艜r檢測到的航跡報文為N個,每個航跡報文之間的時間間隔為T2。

      若T2=T1,則表明對航跡數(shù)據(jù)的回放能夠達到實況回放的效果;否則,反之。若N=M,則表明對順序記錄的航跡報文能完成全部記錄,并能完成順序回放。若N<M,則表明記錄的航跡報文有漏記、錯記或回放錯誤的情況發(fā)生。

      測試發(fā)現(xiàn),在其他條件不變的情況下,若T1越小,則N<M的情況越容易發(fā)生,同時T2與T1之間的偏差也越明顯。

      N<M的情況發(fā)生,主要與系統(tǒng)在生成記錄任務之初對需記錄航跡報文的接收緩沖隊列的長度設置有關(guān)。若該隊列設置得越長,則能保證在數(shù)據(jù)記錄任務還來不及把后續(xù)收到的航跡數(shù)據(jù)寫入記錄文件的時候,能有更多的內(nèi)存空間可以先將這些航跡數(shù)據(jù)暫存下來,從而不至于造成航跡報文的丟失,也就不會導致數(shù)據(jù)漏記的情況發(fā)生。錯記與回放錯誤造成的N<M主要與程序邏輯錯誤或存儲硬件有關(guān),在此不作考慮。此外,也不考慮程序邏輯錯誤造成的數(shù)據(jù)漏記。

      T2與T1之間的偏差主要來自兩個隊列元素在接收之初裝訂的時間信息之間的差值與時間真值差之間的偏差,同時也與系統(tǒng)輔助時鐘計數(shù)精度有關(guān),這兩方面均與系統(tǒng)整體及底層軟硬件有關(guān)。由于每個航跡報文均有專門字段標明其生成的精確時間真值信息,故T2與T1之間的偏差不會對航跡數(shù)據(jù)的事后分析造成任何影響。

      航跡數(shù)據(jù)的記錄與回放功能測試試驗結(jié)果表明,若在對記錄文件進行兩次批量寫操作之間設置了合適的間隔時間(3 s),只要設置足夠長的接收緩沖隊列(600條,30字節(jié)/條),同時在一次批量寫操作過程中設置合適的寫入數(shù)據(jù)條數(shù)(400條,30字節(jié)/條),就可以保證在均值速率3.84 kbyte/s(96批/秒)(峰值速率為20.48 kbyte/s即512批/秒)的情況下,不漏記航跡數(shù)據(jù)。雖然在突然斷電的情況下會最多漏記最后3 s的航跡數(shù)據(jù),但對于航跡記錄這樣非重大事件的記錄工作來說,這個時間值應該是可以允許的。

      4 結(jié)束語

      本文采用“數(shù)據(jù)文件+數(shù)據(jù)索引文件”的存儲機制,實現(xiàn)了對不定長數(shù)據(jù)的記錄與回放;通過以緩沖隊列代替VxWorks消息隊列機制以實現(xiàn)各個任務之間數(shù)據(jù)(消息)的傳遞,良好地防止了數(shù)據(jù)被遺漏處理;以命令解釋任務作為任務生成的唯一入口簡化了任務之間的互斥處理;利用PC104板卡中的硬件輔助時鐘實現(xiàn)了回放精度較高的實況回放效果。上述幾點被良好的應用在了本項目之中,在此提出進一步改進建議如下:

      (1)回放數(shù)據(jù)時增加如下功能:查找到指定時間后開始回放,回放后退操作;

      (2)文件的存儲結(jié)構(gòu)可以再進行優(yōu)化,從而細化到可對文件進行維護操作,如刪除、轉(zhuǎn)存等;

      (3)增加采樣及數(shù)據(jù)壓縮編碼設計,從而增加系統(tǒng)在出現(xiàn)已定義情況時對信號采集記錄回放的功能。

      [1]李永冰.實時高速高分辨率信號采集存儲與回放系統(tǒng)[J].國外電子元器件,2007(4):73-75. LIYong-bing.Real time high speed signal collection storage and playback system[J].International Electronic Elements,2007(4):73-75.(in Chinese)

      [2]張五二,游志勝,楊波,等.記錄回放在空管系統(tǒng)中的一種實現(xiàn)[J].中國民航飛行學院學報,2005,16(3):47-49. ZHANGWu-er,YOU Zhi-sheng,YANG Bo,et al.An implementationmethod about record and replay in ATC system[J].Journalof China Civil Aviation Flying College,2005,16(3):47-49.(in Chinese)

      [3]程敬原.VxWorks軟件開發(fā)項目實例完全解析[M].北京:中國電力出版社,2005. CHEN Jing-yuan.VxWorks software development project instance is fully resolved[M].Beijing:China Electric Power Press,2005.(in Chinese)

      Design of Record and Replay M odule Based on VxW orks for Secondary Surveillance Radar Tracks

      HAN Lin
      (Southwest China Institute of Electronic Technology,Chengdu 610036,China)

      Themodule based on Vxworks is designed and developed to record and replay the tracks in the Secondary Surveillance Radar(SSR).Themechanism ofbuffer queue customed is used in software design,in which the synchronization and mutex between tasks is considered,and the auxiliary clock of PC104 is adopted.The practice shows that the tracks relayed in themonitor can achieve the effect like live Telecast video after the data in the average 3.84 kbyte/s rate(96 packet/s)(the peak 20.48 kbit/s rate or 512 packet/s))is recorded. Key words:secondary surveillance radar;track data;recorder;VxWorks embedded system;buffer queue;auxiliary clock;mutex between tasks

      the B.S.degree from University of Electronic Science and Technology of China in 2002.He is now an assistant engineer.His research concerns the secondary surveillance radar.

      1001-893X(2012)04-0581-05

      2011-11-25;

      2012-03-23

      TN957

      A

      10.3969/j.issn.1001-893x.2012.04.032

      韓林(1979—),男,四川江油人,2002年于電子科技大學獲工學學士學位,現(xiàn)為助理工程師,主要從事二次雷達方面的研發(fā)工作。

      Email:hanlinxx@163.com

      HAN Lin was born in Jiangyou,Sichuan Province,in 1979.He

      猜你喜歡
      數(shù)組航跡隊列
      JAVA稀疏矩陣算法
      電腦報(2022年13期)2022-04-12 00:32:38
      JAVA玩轉(zhuǎn)數(shù)學之二維數(shù)組排序
      電腦報(2020年24期)2020-07-15 06:12:41
      隊列里的小秘密
      基于多隊列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      夢的航跡
      青年歌聲(2019年12期)2019-12-17 06:32:32
      在隊列里
      自適應引導長度的無人機航跡跟蹤方法
      豐田加速駛?cè)胱詣玉{駛隊列
      視覺導航下基于H2/H∞的航跡跟蹤
      尋找勾股數(shù)組的歷程
      佛山市| 甘谷县| 金华市| 仙游县| 肥城市| 新龙县| 米脂县| 丰城市| 西峡县| 秦安县| 高淳县| 醴陵市| 邮箱| 磐石市| 河北区| 龙泉市| 突泉县| 常州市| 衡阳县| 旬阳县| 江西省| 武邑县| 沙河市| 波密县| 贵州省| 旌德县| 神木县| 呼图壁县| 山东| 大英县| 谷城县| 湄潭县| 连平县| 陆川县| 健康| 开平市| 林西县| 文化| 大兴区| 新建县| 佳木斯市|