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