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

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

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

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

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

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

 

 

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

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