新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 一種基于FPGA的無人機控制器設計方案

        一種基于FPGA的無人機控制器設計方案

        作者: 時間:2014-04-07 來源:網絡 收藏

        摘要:根據無人機系統的控制特點,提出了一種基于的無人機控制器設計方案,并完成了該方案的軟硬件設計。該方案將鍵盤掃描、AD采樣、指令編碼與顯示和指令異步串行發送等功能模塊集成到內部,簡化了控制器硬件結構。實際應用表明,該無人機控制器具有指令群延時低、功能可擴展性強等優點,能夠滿足使用要求。

        本文引用地址:http://www.104case.com/article/235990.htm

        關鍵詞:無人機控制器;FPFG;鍵盤掃描;

        無人機的飛行控制和機載電子設備的控制指令主要通過地面控制計算機中的軟件或者無人機控制器產生,這兩種相互獨立的控制方式互為備份。而無人機控制器主要由硬件電路和嵌入式軟件設計實現,不依賴于計算機,因此具有可靠性高、穩定性好等優點,是實現無人機遠程遙控的主要方式之一。傳統的無人機控制器主要由單片機、ARM和8279等芯片設計實現,具有系統結構簡單等優點,但是對于無人機控制

        系統對指令時延要求和測控系統時序同步等問題,該設計方法增加了測控設備軟件的設計復雜度,特別針對滑跑起降型無人機遙控信道低延時數據傳輸的實際應用要求,傳統無人機控制器產生的指令延時難以滿足無人機起降控制要求。

        采用基于設計的無人機控制器,充分利用了FPGA并行數據處理能力和同步設計優勢,將鍵盤掃描、指令編碼與顯示、指令異步串行發送等功能模塊都集成在FPGA內部,外圍電路僅包含AD采樣、電平轉換和驅動芯片等簡單電路,避免了MCU等單指令周期芯片的時序缺點,系統的硬件結構更為簡單,擴展性更強,遙控指令的觸發到輸出的指令數據群延時小于80 ms,能夠滿足各種類型無人機的實時遠程控制要求。

        1 系統硬件設計方案

        無人機控制器主要由控制鍵盤、數碼顯示板和控制器數據處理板組成。控制鍵盤由8x8開關矩陣鍵盤和航向控制器構成,主要實現無人機控制器鍵盤掃描代碼和航向模擬量的產生。數碼顯示板由6個16進制數碼管組成,主要實現控制指令代碼和航向數據的同步顯示。作為無人機遙控控制器的核心部件,控制器數據處理板采用Altera公司的低成本Cyclone4系列FPGA芯片EP4CE10作為指令和數據處理的核心芯片;為降低FPGA硬件資源消耗,AD芯片選用MAXIM公司的串行12Bits AD采樣芯片MAX11105,理論航向傳感器控制精度可達0.09°;電平轉換芯片選用MAXIM公司的MAX3387芯片設計實現,具有良好的可擴展性。控制器信號處理板主要實現無人機控制指令的鍵盤掃描與AD采樣、指令編碼與顯示和遙控指令異步串行發送等功能。系統硬件結構框圖如圖1所示。

         

         

        如圖1所示,控制器數據處理板上的FPGA分別對控制鍵盤上的8x8矩陣鍵盤和航向控制器模擬信號進行行列掃描與AD采樣,以獲取鍵盤掃描碼和航向模擬量數據,并對采集到的指令和數據進行編碼轉換后得到指令控制代碼和航向控制數據。FPGA將編碼轉換后的數據同時分成兩路,一路驅動數碼顯示板實時顯示,另一路進行遙控組幀后按照標準異步串行通信協議()發送至MAX3387進行RS232電平轉換,最后將含有控制指令的異步串行遙控數據通過測控設備發送至無人機,實現對無人機的遠程控制功能。

        2 系統軟件設計方案

        無人機控制器的軟件都集成在FPGA內部,采用VHDL語言編程,并在Altera公司的QuartusII軟件環境下進行編譯和在線仿真。控制器主要包括鍵盤掃描、指令編碼與顯示、指令異步串行發送等功能模塊,系統的信號流程如圖2所示。系統加電后,FPGA每間隔40 ms對控制鍵盤和航向控制器進行一次行列掃描和AD數據采集,當檢測到有控制按鍵被觸發后,啟動按鍵去抖識別程序,將有效的控制按鍵的鍵盤掃描碼和AD采集數據轉換成控制指令代碼和航向控制數據,并將指令和數據分成相同兩路,一路送入LED驅動模塊產生16進制數碼管顯示驅動信號,另一路送入指令異步串行發送模塊進行遙控組幀和控制數據加載,最后將包含指令數據的遙控幀數據按照異步串行數據通信協議(UART)發出。

         

         

        2.1 鍵盤掃描和AD采集模塊

        根據控制指令的實時性要求,系統設計每隔40 ms分別對矩陣鍵盤和航向控制器進行一次行列掃描和AD采樣,當鍵盤上的按鍵被觸發時,啟動按鍵去抖識別程序,輸出滿足響應時間要求的按鍵16 bits鍵盤掃描碼。與此同時,將AD采集到的航向控制器模擬量串行數據進行串并轉換后輸出12 bits并行航向控制數據。該模塊的SignalTapII在線仿真結果如圖3所示。KB_RL和KB_Y分別為行掃描線和列掃描線,KB_SEN為鍵盤掃描使能信號,KEY_SCode為按鍵觸發后輸出的鍵盤掃描代碼,SAD_CS為芯片的采集使能信號,SAD_SDT為芯片串行數據輸入,SAD_PDT為串并轉換后的航向控制器結果數據。由圖3可知,一共有2個控制按鍵被順序觸發,共輸出了2個鍵盤掃描碼:7DFE和7EFE。航向控制器輸出數據位2EB,對應航向控制角度值約為66°。

         

         

        2.2 指令編碼與顯示模塊

        指令編碼與顯示模塊將接收到的16 bits鍵盤掃描碼和12 bits航向控制器數據按照數據傳輸協議進行指令和數據編碼,并將編碼后控制指令和數據發送至指令發送模塊,與此同時,為確保指令代碼和航向控制器數據正確傳輸,模塊驅動6個16進制數碼顯示管實時顯示編碼后的指令數據和航向控制器數據。指令編碼與顯示模塊的SignalTapII在線仿真結果及數碼管顯示結果如圖4所示。KB_INS為指令有效標志,KB_ EDAT為編碼后的指令代碼,SAD_EDT為編碼后的角度值。LED_LE為數碼管數據鎖存信號,LED_BL為數碼管使能信號,LED_DL為數碼管數據輸入端,由圖4可知,編碼后的控制指令代碼和航向控制器角度分別為033H和66°,數碼管顯示結果為033和066。

         

         

        2.3 指令發送模塊

        指令發送模塊接收到編碼后的控制指令和航向控制器數據后,將編碼后的指令數據轉換為遙控幀數據,并按照異步串行通信協議(UART)將遙控幀數據輸出到MAX3387進行電平轉換,遙控幀數據串行波特率選取19 200,8位數據位,1位起始位,1位停止位,無奇偶校驗位。指令發送模塊SignalTapII在線仿真結果及計算機接收到的遙控幀數據結果如圖5所示。YK_SEND_EN為數據發送使能信號,Test_Vara為發送的8 bits并行遙控數據,YK_UART_Out為異步串行數據FPGA輸出端波形信號。

         

         

        3 實驗應用

        無人機控制器安裝于某型無人機地面控制站中。地面站加電后,控制器數據處理板開始工作,每間隔40 ms分別對8x8矩陣鍵盤和無人機航向控制器進行鍵盤掃描與AD采樣,并實時將采集到數據轉換成相應的遙控指令代碼,一路驅動數碼顯示管將指令代碼實時顯示,一路將指令代碼轉換成RS232異步串行數據通過測控設備發送至無人機,控制器數據處理板實物如圖6所示。實際應用結果表明,采用基于FPGA設計的無人機控制器的各項技術指標滿足使用要求,控制指令群時延小于80 ms,設備運行穩定可靠。

         

         

        4 結論

        根據無人機的控制特點,文中提出了一種基于FPGA的無人機控制器設計方案,該方法充分利用FPGA并行處理能力,簡化了無人機控制器的硬件結構,降低了遙控指令群延時,解決了測控設備的時序匹配問題,并且具有較好的功能可擴展性,該控制器已經在某型無人機系統中得到成功應用。



        關鍵詞: FPGA UART

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 台中县| 泉州市| 共和县| 塔河县| 永胜县| 石渠县| 临湘市| 饶阳县| 台东县| 邹平县| 定安县| 昌图县| 什邡市| 云南省| 南投县| 永修县| 平江县| 晋州市| 肥东县| 阳信县| 旌德县| 鄢陵县| 鹤壁市| 界首市| 德州市| 屯留县| 民权县| 洮南市| 凌源市| 探索| 南木林县| 英山县| 阳高县| 宣威市| 大庆市| 稻城县| 克山县| 札达县| 扎兰屯市| 洛川县| 柳河县|