基于ARM11+CPLD的小型無人機飛行控制器設計
1 引言
小型無人機具有重量輕、使用費用低、機動靈活等特點,在軍用、民用領域有著廣泛的應用。在民用領域,無人機可搭載不同任務載荷完成諸如國土資源保護、城市規劃、電視臺航拍、大氣監測、交通監察、邊境及海岸線巡邏、災情監視等任務;在軍事上,可以執行空中偵察、充當靶機、導彈攻擊、充當誘餌、戰場損傷評估和電子站等任務,已成為許多國家軍隊的主要武器裝備。
飛行控制器承擔著無人機的姿態控制、導航控制、與地面控制站的通信、任務載荷控制等任務,是小型無人機的核心。評價小型無人機的飛行控制器的優劣的指標之一是其控制的精度。提高飛行控制器的控制精度的方法有:提高獲取飛機狀態信息的精度;采用先進的控制算法提高控制性能[1-3];提高控制指令輸出的實時性等。而要實現以上目標就須有高性能的MCU和合理的硬件電路設計。
本文針對這一問題,設計了基于ARM11(S3C6410)+CPLD(EPM1270)的飛行控制器。ARM11架構的MCU S3C6410接口豐富、運算速度快;CPLD芯片的應用提高了系統的實時性。以下將闡述該飛行控制器的設計。
2 飛行控制器硬件系統的設計
本文飛行控制器以S3C6410和CPLD(EPM1270)為核心,將無人機系統各部分有機整合,硬件構架具體如圖1所示。
S3C6410采用ARM1176JZF-S的核,該核在電壓為1.2V的情況下,可以運行到667MHz[4],高主頻保證了飛控有較強的計算能力。S3C6410擁有豐富的接口,本文通過UART串口通訊連接了GPS模塊和數傳電臺;SPI通訊接口連接了ADIS16365慣性系統傳感器(含加速度、角速度傳感器),兩個MS5540氣壓傳感器。S3C6410可連接大容量內存和FLASH,本設計中配置了256M 的DDR RAM和1G的NAND FLASH,大容量的內存是飛控進行大量計算及數據存儲的保證。
而CPLD模塊選用ALTERA公司的EPM1270芯片,該模塊完成遙控接收機控制指令的接收及解碼;多路PWM控制指令的解碼及輸出;任務載荷的控制管理。CPLD的應用,使得飛行控制器在處理遙控指令、姿態控制上具備了運算速度快、實時性強的特點。
基于上述兩模塊構建的飛行控制器,按其功能可分為:導航功能模塊、姿態控制功能模塊、通信功能模塊、任務載荷功能模塊。本文選取導航功能模塊和姿態控制功能模塊的硬件設計進行闡述。
2.1 導航功能模塊硬件設計
導航功能模塊主要實現無人機按設定航點、航線飛行的功能,這需要計算無人機當前的位置和目標位置之差。本文設計了GPS、氣壓傳感器來獲取無人機當前的位置信息,即經度、緯度、高度、速度、航向等。在硬件設計上,設計了UART口與GPS模塊連接,氣壓傳感器與GPIO口連接的外圍硬件電路。
飛控的GPS模塊采用的是UBLOX公司的型號為LEA-5H的GPS模塊,本設計中GPS模塊采用的是外接的形式,即GPS模塊可根據機體的實際情況放置在合適位置,所以設計時在飛控主板的接口中預留TX、RX、VDD5V、GND四個引腳,這四個引腳連接到MCU的UART口。
飛控的兩個氣壓傳感器都采用瑞士INTERSEMA公司的MS5540芯片,一個用以測量飛機的高度,另一個用來測量飛機的空速。本設計中利用S3C6410的GPIO,模擬SPI通訊接口方式來實現通訊。MS5540需要外接工作時序脈沖,利用CPLD分頻后產生相應工作脈沖,接入MS5540。其余MS5540通訊引腳都與普通IO相連。
2.2 姿態控制功能模塊硬件設計
姿態控制功能模塊主要由采集姿態數據和輸出姿態控制指令兩部分構成。
本文姿態傳感器采用ADI公司的ADIS16365慣性傳感器。ADIS16365內部集成3個陀螺儀和3個加速計,測量范圍可達為±300°/sec,±18g,角度分辨率為±80°/sec。應用ADI的iMEMS Motion Signal Processing(運動信號處理)技術,對電壓變化、溫度變化及其它影響進行校準,具有動態補償功能[5]。ADIS16365提供一個串行外部接口SPI。硬件電路設計上,連接SPI通訊端口、片選腳,如圖2所示。ADIS16365對于電壓的穩定性要求較高,其工作電壓為4.75V-5.25V,系統板電源設計上要考慮到電壓的輸出范圍。
姿態控制是通過控制無人機上各數字舵機的轉角大小和動力大小來實現。本文無人機以鋰聚合物電池作為動力電源,由電子調速器來控制直流無刷電機的轉速,電子調速器通過輸入的PWM信號控制。數字舵機的轉動角度由輸入到舵機信號線的PWM信號決定。本文無人機上的4路PWM控制信號,周期為20ms,脈寬范圍為1ms至2ms,都由CPLD產生,其內部實現過程如圖3所示,各模塊功能介紹如下:
(1) SPI數據接收模塊,負責對MCU發出的數據及指令進行實時的接收。實現的基本原理是模擬從設備SPI通訊協議,數據通訊采用的是16位數據結構,另外SPI接收模塊只負責對MCU數據的接收,不負責對CPLD內部數據的發送操作,目的是增加了模塊實現的可能性。從SPI接收模塊的端口引腳可以大致將其定義為一個由串口通訊轉化為并口通訊的轉換模塊。
pid控制器相關文章:pid控制器原理
評論