無人機(jī)的飛行控制和機(jī)載電子設(shè)備的控制指令主要通過地面控制計(jì)算機(jī)中的軟件或者無人機(jī)控制器產(chǎn)生,這兩種相互獨(dú)立的控制方式互為備份。而無人機(jī)控制器主要由硬件電路和嵌入式軟件設(shè)計(jì)實(shí)現(xiàn),不依賴于計(jì)算機(jī),因此具有可靠性高、穩(wěn)定性好等優(yōu)點(diǎn),是實(shí)現(xiàn)無人機(jī)遠(yuǎn)程遙控的主要方式之一。
傳統(tǒng)的無人機(jī)控制器主要由單片機(jī)、ARM和8279等芯片設(shè)計(jì)實(shí)現(xiàn),具有系統(tǒng)結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn),但是對(duì)于無人機(jī)控制系統(tǒng)對(duì)指令時(shí)延要求和測(cè)控系統(tǒng)時(shí)序同步等問題,該設(shè)計(jì)方法增加了測(cè)控設(shè)備軟件的設(shè)計(jì)復(fù)雜度,特別針對(duì)滑跑起降型無人機(jī)遙控信道低延時(shí)數(shù)據(jù)傳輸?shù)膶?shí)際應(yīng)用要求,傳統(tǒng)無人機(jī)控制器產(chǎn)生的指令延時(shí)難以滿足無人機(jī)起降控制要求。
采用基于FPGA設(shè)計(jì)的無人機(jī)控制器,充分利用了FPGA并行數(shù)據(jù)處理能力和同步設(shè)計(jì)優(yōu)勢(shì),將鍵盤掃描、指令編碼與顯示、指令異步串行發(fā)送等功能模塊都集成在FPGA內(nèi)部,外圍電路僅包含AD采樣、電平轉(zhuǎn)換和驅(qū)動(dòng)芯片等簡(jiǎn)單電路,避免了MCU等單指令周期芯片的時(shí)序缺點(diǎn),系統(tǒng)的硬件結(jié)構(gòu)更為簡(jiǎn)單,擴(kuò)展性更強(qiáng),遙控指令的觸發(fā)到輸出的指令數(shù)據(jù)群延時(shí)小于80 ms,能夠滿足各種類型無人機(jī)的實(shí)時(shí)遠(yuǎn)程控制要求。
1 系統(tǒng)硬件設(shè)計(jì)方案
無人機(jī)控制器主要由控制鍵盤、數(shù)碼顯示板和控制器數(shù)據(jù)處理板組成??刂奇I盤由8x8開關(guān)矩陣鍵盤和航向控制器構(gòu)成,主要實(shí)現(xiàn)無人機(jī)控制器鍵盤掃描代碼和航向模擬量的產(chǎn)生。數(shù)碼顯示板由6個(gè)16進(jìn)制數(shù)碼管組成,主要實(shí)現(xiàn)控制指令代碼和航向數(shù)據(jù)的同步顯示。作為無人機(jī)遙控控制器的核心部件,控制器數(shù)據(jù)處理板采用Altera公司的低成本Cyclone4系列FPGA芯片EP4CE10作為指令和數(shù)據(jù)處理的核心芯片;為降低FPGA硬件資源消耗,AD芯片選用MAXIM公司的串行12Bits AD采樣芯片MAX11105,理論航向傳感器控制精度可達(dá)0.09°;UART電平轉(zhuǎn)換芯片選用MAXIM公司的MAX3387芯片設(shè)計(jì)實(shí)現(xiàn),具有良好的可擴(kuò)展性??刂破餍盘?hào)處理板主要實(shí)現(xiàn)無人機(jī)控制指令的鍵盤掃描與AD采樣、指令編碼與顯示和遙控指令異步串行發(fā)送等功能。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
如圖1所示,控制器數(shù)據(jù)處理板上的FPGA分別對(duì)控制鍵盤上的8x8矩陣鍵盤和航向控制器模擬信號(hào)進(jìn)行行列掃描與AD采樣,以獲取鍵盤掃描碼和航向模擬量數(shù)據(jù),并對(duì)采集到的指令和數(shù)據(jù)進(jìn)行編碼轉(zhuǎn)換后得到指令控制代碼和航向控制數(shù)據(jù)。FPGA將編碼轉(zhuǎn)換后的數(shù)據(jù)同時(shí)分成兩路,一路驅(qū)動(dòng)數(shù)碼顯示板實(shí)時(shí)顯示,另一路進(jìn)行遙控組幀后按照標(biāo)準(zhǔn)異步串行通信協(xié)議(UART)發(fā)送至MAX3387進(jìn)行RS232電平轉(zhuǎn)換,最后將含有控制指令的異步串行遙控?cái)?shù)據(jù)通過測(cè)控設(shè)備發(fā)送至無人機(jī),實(shí)現(xiàn)對(duì)無人機(jī)的遠(yuǎn)程控制功能。
2 系統(tǒng)軟件設(shè)計(jì)方案
無人機(jī)控制器的軟件都集成在FPGA內(nèi)部,采用VHDL語言編程,并在Altera公司的QuartusII軟件環(huán)境下進(jìn)行編譯和在線仿真。控制器主要包括鍵盤掃描、指令編碼與顯示、指令異步串行發(fā)送等功能模塊,系統(tǒng)的信號(hào)流程如圖2所示。系統(tǒng)加電后,FPGA每間隔40 ms對(duì)控制鍵盤和航向控制器進(jìn)行一次行列掃描和AD數(shù)據(jù)采集,當(dāng)檢測(cè)到有控制按鍵被觸發(fā)后,啟動(dòng)按鍵去抖識(shí)別程序,將有效的控制按鍵的鍵盤掃描碼和AD采集數(shù)據(jù)轉(zhuǎn)換成控制指令代碼和航向控制數(shù)據(jù),并將指令和數(shù)據(jù)分成相同兩路,一路送入LED驅(qū)動(dòng)模塊產(chǎn)生16進(jìn)制數(shù)碼管顯示驅(qū)動(dòng)信號(hào),另一路送入指令異步串行發(fā)送模塊進(jìn)行遙控組幀和控制數(shù)據(jù)加載,最后將包含指令數(shù)據(jù)的遙控幀數(shù)據(jù)按照異步串行數(shù)據(jù)通信協(xié)議(UART)發(fā)出。
2.1 鍵盤掃描和AD采集模塊