基于數(shù)話同傳的無人機車外控制器設(shè)計
無人機是一種有動力、可控制、能承載多種任務(wù)設(shè)備、執(zhí)行多種作戰(zhàn)任務(wù)并可重復(fù)使用的戰(zhàn)術(shù)飛行器,其零傷亡風(fēng)險和高機動性等優(yōu)勢引起了各國軍方的高度重視。無人機飛行過程可簡單劃分為起飛、高空飛行和降落三部分。高空飛行階段飛行環(huán)境相對穩(wěn)定,常采用無人機自主飛行方式,無需對其飛行姿態(tài)做太多人為干預(yù)。但是在起飛和降落階段無人機的速度變化大,姿態(tài)調(diào)整頻繁,起降場地地形、氣候等諸多復(fù)雜因素對無人機的安全造成巨大威脅,是無人機實驗任務(wù)飛行中的事故多發(fā)時段,因此在起降階段進行即時、準確的人為調(diào)整是保障無人機飛行安全的重要手段。現(xiàn)階段部分無人機型號采用有線的車載地面站外部(車外)控制器方式,讓地面操作人員通過近距離觀察無人機的姿態(tài)來實時遙控無人機。
無人機車外控制器使用示意圖見圖1。
國內(nèi)車外控制器設(shè)計研制之初考慮到地面站內(nèi)人員和車外人員的交流,加入了語音通信功能,但開始只是應(yīng)用對講機進行通話,而對講機是單工通信機制,通話時易形成競爭;后來部分單位在有線車外控制器的信號傳輸線纜上增加了模擬語音,實現(xiàn)了車內(nèi)測控臺和車外控制人員的雙工通信,而模擬語音容易自激,通話易受干擾[1]。
基于已有無人機系統(tǒng)的應(yīng)用經(jīng)驗,設(shè)計了一種數(shù)字語音和遙控數(shù)據(jù)共同傳輸?shù)男滦蜔o人機車外控制器。本文將對其設(shè)計組成、尤其是數(shù)話同傳技術(shù)的實現(xiàn)方法進行詳細說明,最后對其測試和應(yīng)用環(huán)境進行介紹。
1 車外控制器的設(shè)計組成
1.1 系統(tǒng)設(shè)計組成
無人機車外控制器系統(tǒng)設(shè)計組成見圖2。
(1)車外控制器遙控數(shù)據(jù)的產(chǎn)生和采集
通過車外操縱手對車外控制器各機構(gòu)(搖桿、開關(guān)和微調(diào))的操縱,引起內(nèi)部電位器和電開關(guān)變化進而引起電信號的變化。變化的電壓通過信號調(diào)理電路發(fā)送到微處理器(MCU),由MCU內(nèi)部的AD模塊進行處理;變化的數(shù)字量直接輸入到MCU。MCU把當(dāng)前的遙控數(shù)據(jù)顯示到液晶顯示屏上。
(2)車外控制器語音數(shù)據(jù)的產(chǎn)生和采集
車外操縱手可通過麥克將自己的語音輸入到AD模塊,數(shù)字語音以9.6 kb/s的速率被音頻編碼器(ENCODER)編碼接收,同遙控數(shù)據(jù)一起被MCU采集,速率為1 Mb/s。
(3)車外控制器遙控和語音數(shù)據(jù)的傳輸
遙控和語音數(shù)據(jù)在MCU中被組成的遙控/語音數(shù)據(jù)復(fù)合幀以20 ms的幀周期更新,通過對外的RS232/RS422可切換接口輸出至地面站[2],便于不同的地面站兼容。
(4)方艙語音數(shù)據(jù)的接收
由于采用雙工通信,地面站方艙內(nèi)人員的語音數(shù)據(jù)通過RS232/RS422接口輸入到車外控制器的MCU中, MCU對語音數(shù)據(jù)幀中的語音數(shù)據(jù)進行提取,以1 Mb/s的速率發(fā)送到音頻解碼器(DECODER)進行解碼,以9.6 kb/s的速率輸入到DA電路產(chǎn)生模擬語音,語音可通過耳機被車外操縱手接聽。
需要說明的是,方艙里內(nèi)置一個語音采集器,其內(nèi)部的語音采集、接收和發(fā)送模塊與車外控制器內(nèi)部設(shè)計原理一致;車外控制器和語音采集器之間可采用長度為120 m的線纜連接,擴大了車外操作手的活動范圍。
1.2 硬件設(shè)計關(guān)鍵點
(1)芯片的選型
MCU采用Cygnal公司生產(chǎn)的C8051F022單片機,其外圍電路主要包括信號調(diào)理電路,數(shù)字和模擬信號經(jīng)調(diào)理后輸入至C8051F022;RS232/RS422接口電路由MAX3232和MAX3490構(gòu)成;數(shù)字語音編解碼電路的音頻AD/DA部分選用AD/DA復(fù)合功能芯片CSP1027,數(shù)字音頻編碼/解碼芯片采用美國DVSI公司生產(chǎn)的AMBE1000[3]。AMBE1000編碼器的輸出幀和解碼器的輸入幀分別見圖3和圖4。
如圖3和圖4所示,編碼器輸出幀和解碼器輸入幀的結(jié)構(gòu)類似,包含幀頭Header和ID值(共占1個B)及24 B的壓縮語音數(shù)據(jù),不同的是輸出幀包含4 B狀態(tài)位,輸入幀包含4 B控制位,微處理器可根據(jù)輸出幀狀態(tài)位對語音數(shù)據(jù)進行處理,該狀態(tài)位也可直接作為輸入幀的控制位輸入至解碼器。為便于和8 bit MCU接口通信,AMBE的信道接口采用被動并行模式。
2 數(shù)話同傳技術(shù)的實現(xiàn)
2.1 MCU程序設(shè)計
實現(xiàn)車外控制器數(shù)話同傳功能的關(guān)鍵點之一是微處理器程序的設(shè)計。
MCU的程序流程圖如圖5所示。AMBE1000為主機端提供了編碼包準備好信號EPR和解碼包空信號DPE,在設(shè)計上將這兩個信號分別輸入到C8051F022的外部中斷INT0和INT1端口,以中斷方式讀取和寫入語音數(shù)據(jù);與方艙語音采集器的數(shù)據(jù)通信通過C8051F022內(nèi)部UART0功能模塊實現(xiàn)。中斷優(yōu)先級設(shè)定的先后順序為INT0→INT1→UART0。
微處理器的主程序在完成初始化中斷設(shè)置和優(yōu)先級后,讀取C8051F022內(nèi)部Flash的比例指令零點偏移(范圍為0~255,標準零點為127,實際中零點常發(fā)生偏移,可利用按鍵調(diào)準)后,循環(huán)采集按鍵和進行LCD顯示刷新。為便于進程間通信,程序定義了兩個bool型變量用作發(fā)送標志和接收標志,3個語音數(shù)組分別用于存儲從編碼緩沖區(qū)讀出的數(shù)據(jù)(語音數(shù)組1)、待寫入解碼緩沖區(qū)的數(shù)據(jù)(語音數(shù)組2)和存儲靜音數(shù)據(jù)的數(shù)組(靜音數(shù)組)。
由EPR信號觸發(fā)的外部中斷0處理程序首先讀取AMBE1000編碼器緩沖區(qū)至語音數(shù)組1,組成遙控/語音幀,設(shè)置發(fā)送標志并啟動UART0發(fā)送中斷。進入串口中斷0后,首先判斷中斷類型為發(fā)送中斷還是接收中斷,若為發(fā)送中斷則啟動發(fā)送進程,將遙控/語音幀發(fā)送至車內(nèi)采集盒,之后取消發(fā)送標志;若為接收中斷,則啟動串口接收進程,接收方艙語音采集盒發(fā)來的語音數(shù)據(jù),更新語音數(shù)組2,設(shè)置接收標志。由DPE信號觸發(fā)的外部中斷1處理程序首先判斷接收標志是否有效,若無效則寫靜音數(shù)組至AMBE1000編碼緩沖區(qū),若有效則寫語音數(shù)組2至AMBE1000編碼緩沖區(qū),之后取消接收標志,退出中斷程序。
2.2 數(shù)字語音和遙控數(shù)據(jù)復(fù)用
由上述介紹可知,遙控/語音幀的發(fā)送周期是由AMBE1000的DPE信號觸發(fā)的,DPE信號的產(chǎn)生周期為20 ms,而方艙語音采集盒為異步接收,對遙控/語音幀的到達周期沒有嚴格要求,因此20 ms的發(fā)送周期滿足系統(tǒng)設(shè)計要求[4]。
在遙控/語音幀的設(shè)計中,數(shù)字語音和遙控數(shù)據(jù)的復(fù)用成為實現(xiàn)數(shù)話同傳技術(shù)的關(guān)鍵點,這里遙控/語音幀在設(shè)計上采用40 B/幀,幀結(jié)構(gòu)如圖6所示。
幀結(jié)構(gòu)在設(shè)計上包含2 B幀頭,1 B幀標識,10 B的遙控數(shù)據(jù),1 B語音狀態(tài)字,24 B的語音數(shù)據(jù)和2 B幀尾。
串口0采用波特率為38 400 b/s,發(fā)送單幀遙控/語音幀占用的時間為:(40×8)÷38400≈8.33 ms,滿足20 ms/幀的發(fā)送周期。
3 車外控制器的測試與應(yīng)用
在實驗室階段,車外控制器通過RS232接口發(fā)送至上位機調(diào)試,經(jīng)串口調(diào)試助手實時記錄的數(shù)據(jù)見圖7。其中EB90為幀頭,EE16為幀尾,帶下劃線的數(shù)據(jù)為幀頭、語音狀態(tài)字和語音數(shù)據(jù)。
在實際應(yīng)用中,基于數(shù)話同傳技術(shù)的車外控制器已參加過數(shù)次重大科研項目的飛行實驗。經(jīng)實際檢驗,語音通話質(zhì)量良好,數(shù)據(jù)傳輸穩(wěn)定可靠,驗證了其設(shè)計的合理性,為數(shù)話同傳技術(shù)拓展了應(yīng)用范圍。
評論