《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于環(huán)形緩存技術(shù)的無人機數(shù)據(jù)接口設(shè)備設(shè)計
基于環(huán)形緩存技術(shù)的無人機數(shù)據(jù)接口設(shè)備設(shè)計
來源:微型機與應(yīng)用2013年第2期
蔡 偉,, 周乃恩
(中國航天空氣動力技術(shù)研究院, 北京100074)
摘要: 介紹一種采用環(huán)形緩存技術(shù)的嵌入式數(shù)據(jù)接口設(shè)備,。首先闡述了設(shè)備工作原理和硬件設(shè)計,著重討論了環(huán)形緩存技術(shù)的軟件實現(xiàn)方法。通過在無人機上的應(yīng)用,,證實該系統(tǒng)運行穩(wěn)定可靠,,滿足設(shè)計要求。
Abstract:
Key words :

摘  要: 介紹一種采用環(huán)形緩存技術(shù)的嵌入式數(shù)據(jù)接口設(shè)備,。首先闡述了設(shè)備工作原理和硬件設(shè)計,,著重討論了環(huán)形緩存技術(shù)的軟件實現(xiàn)方法。通過在無人機上的應(yīng)用,,證實該系統(tǒng)運行穩(wěn)定可靠,,滿足設(shè)計要求。
關(guān)鍵詞: 環(huán)形緩存,; 異步串行通信,; 無人機

    無人機在飛行時,地面控制站發(fā)送上行指令通過遙控信道到達機載設(shè)備,機載設(shè)備產(chǎn)生的下行數(shù)據(jù)通過遙測信道到達地面控制站,。一般設(shè)計為上行指令與下行數(shù)據(jù)在某一機載設(shè)備上(如設(shè)備1)匯集,,經(jīng)處理后發(fā)送到其他的設(shè)備中。但該設(shè)備同時還有其他任務(wù)需完成,,當數(shù)據(jù)量過大時會對設(shè)備造成負擔,,甚至影響飛行安全。為此本文設(shè)計了一個專用數(shù)據(jù)接口設(shè)備,,用于無人機的數(shù)據(jù)交換,。全系統(tǒng)框圖如圖1所示。

1 系統(tǒng)硬件設(shè)計
    數(shù)據(jù)接口設(shè)備硬件主要由PC104嵌入式計算機組成,,主要組成部分有:(1)PC104總線型CPU板,,最高運行速度可達300 MHz;(2)PM504型串口擴展板,;(3)32 MB DOC(閃存,,Disk On Chip); (4)系統(tǒng)電源板,。其中,PM504串口擴展板實現(xiàn)PC104總線的串口擴展,,共擴展4個RS422總線的UART(通用異步接收/發(fā)送裝置);32 MB DOC用于存儲操作系統(tǒng)以及開發(fā)程序;系統(tǒng)電源板采用Ericsson的PKF系列電源模塊,用于提供系統(tǒng)電源,,主要為5 V和12 V,。
2 軟件設(shè)計
    如圖1所示,數(shù)據(jù)接口設(shè)備與機載設(shè)備的數(shù)據(jù)交換分為全雙工方式與半雙工兩種方式,。數(shù)據(jù)交換分為上行指令分發(fā)和下行數(shù)據(jù)融合兩部分,。
2.1 上行指令分發(fā)
    上行指令分發(fā)指數(shù)據(jù)接口設(shè)備接收到機載收發(fā)組合的數(shù)據(jù)后,發(fā)送到相應(yīng)的設(shè)備中去,。上行指令采用統(tǒng)一的幀格式,,如表1所示。

    其中,,A為同步碼0xFF,,B為幀識別符(設(shè)備1為0X11,,設(shè)備2為0X22,設(shè)備3為0X33),。數(shù)據(jù)接口設(shè)備首先判斷數(shù)據(jù)是否為同步碼,,如果是則存入接收數(shù)組中,接收剩余的28 B數(shù)據(jù),。然后,,根據(jù)幀識別符B,發(fā)送該幀數(shù)據(jù)到相應(yīng)的端口,。
2.2 下行數(shù)據(jù)發(fā)送
    下行數(shù)據(jù)發(fā)送指接口設(shè)備將機載設(shè)備產(chǎn)生的數(shù)據(jù)信息發(fā)送到收發(fā)組合中,。每個機載設(shè)備的數(shù)據(jù)發(fā)送速率各不相同,為保證數(shù)據(jù)準確性和實時性,,程序分別建立了相應(yīng)的環(huán)形接收緩存,。接口設(shè)備定時從環(huán)形緩存中取出數(shù)據(jù)組合后送到收發(fā)組合中。

    圖4給出了發(fā)送數(shù)據(jù)流程圖,。數(shù)據(jù)發(fā)送為定時模式,,定時時間到后,建立發(fā)送數(shù)組并初始化,,程序首先判斷接收索引IndexIn與發(fā)送索引IndexOut是否相等,,如果相等,則表明環(huán)形緩存中無數(shù)據(jù),,跳出發(fā)送流程,,否則進入發(fā)送流程。取IndexOut指向的當前分區(qū)數(shù)據(jù)到發(fā)送數(shù)組,,同時IndexOut指向下一分區(qū),。數(shù)據(jù)在接收和發(fā)送過程中,可能出現(xiàn)IndexIn與IndexOut相等的情況,,因此在環(huán)形緩存中接收完一幀數(shù)據(jù)后判斷兩者是否相等,,如果相等,則IndexOut自增1,,使得進入發(fā)送流程中后,,兩者不相等,保證了發(fā)送的進行,。

 

 

    當變量IndexIn和IndexOut指向緩存最后一個分區(qū)時,,將兩變量重新賦初始值,分別進行下一循環(huán)的數(shù)據(jù)接收和發(fā)送,。程序為接收設(shè)備1數(shù)據(jù)開辟6×32 B大小的緩存區(qū),,為設(shè)備3開辟2×80 B的緩存區(qū)。每次從存有設(shè)備1數(shù)據(jù)的緩存中取兩幀數(shù)據(jù),從存有設(shè)備3數(shù)據(jù)的緩存中取一幀數(shù)據(jù),組合后發(fā)送到機載收發(fā)組合,。設(shè)備1的數(shù)據(jù)發(fā)送速率為38 400 b/s,而設(shè)備3為19 200 b/s,。因為數(shù)據(jù)接口設(shè)備主頻最高為300 MHz,所以不會出現(xiàn)緩存區(qū)開辟過小導致數(shù)據(jù)溢出的現(xiàn)象,。
    環(huán)形緩沖技術(shù)采用的線程機制實現(xiàn)了數(shù)據(jù)接收和發(fā)送的并行工作,通過對接收線程當前數(shù)據(jù)分區(qū)索引號IndexIn和發(fā)送線程當前數(shù)據(jù)處理分區(qū)索引IndexOut的有效控制,,可以跟蹤并且及時處理緩存中的分區(qū)數(shù)據(jù),,避免緩存區(qū)數(shù)據(jù)覆蓋和數(shù)據(jù)的漏移。
3 試驗驗證
    根據(jù)上述流程框圖編寫好軟件后,,下載到PC104主板上的DOC中,。啟動路徑指向當前程序所在位置,設(shè)備上電后自動運行程序,。試驗在兩臺PC機上進行,,一臺模擬收發(fā)組合,另一臺模擬設(shè)備1,、2和3,。因為PC機上串口有限,采用MOXA卡進行了串口擴展,。數(shù)據(jù)的發(fā)送和接收采用串口精靈軟件,。試驗過程中沒有出現(xiàn)數(shù)據(jù)丟失現(xiàn)象,表明設(shè)備性能良好,,可以正常工作,。
    本文介紹了一種采用環(huán)形緩存技術(shù)的數(shù)據(jù)接口設(shè)備。經(jīng)在無人機上驗證,,該設(shè)備可以很好地完成數(shù)據(jù)接收和發(fā)送任務(wù),,避免數(shù)據(jù)丟失現(xiàn)象。產(chǎn)品可擴展性強,,可以用于其他無人機系統(tǒng),,具有廣泛的應(yīng)用前景。
參考文獻
[1] 姚章俊,,陳蜀宇,,盧堯. 一種高性能環(huán)形緩沖區(qū)的研究與實現(xiàn)[J]. 計算機工程,2012,38(8):228-231.
[2] 王蕾, 潘梁,, 吳國斌,,等. 基于數(shù)字廣播的大數(shù)據(jù)量接收與存儲策略[J]. 計算機工程,2008,34(24):233-237.
[3] 余泓利,,習勇,,馬東堂. 一種基于ARM和FPGA的環(huán)形緩沖區(qū)接口設(shè)計[J]. 電子技術(shù),2011(09):53-55.
[4] 張穩(wěn)穩(wěn),,歐陽嫻,,白永林,,等. PC104串口通信在工程中的應(yīng)用[J]. 微計算機信息, 2006,22(1-2):57-59.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。