在此基礎上設計出一種高精度、擴展性強、小型化和低成本的新型飛行控制系統。
2硬件系統方案要求和設計
基于DSP的飛控系統硬件設計,關鍵在于系統的整體方案設計。接口設計是一個重要環節,將直接影響系統的性能。為了減輕系統的負擔,外部輸入信號用中斷方式讀入,信號輸入輸出時要考慮抗干擾性。
充分考慮TMS320F2812的片內資源以及系統的接口要求,僅需對DSP芯片進行少量的外部接口擴展,即可滿足飛控系統所有功能和未來擴展性的要求。同時由于系統的輸入邏輯量較多,采用Altera公司CPLD芯片EPM7128,完成數據處理和邏輯運算功能,以減少控制電路的體積,增加系統的可靠性,實現對控制系統各單元狀態的監視和控制。
系統整體方案設計如圖1所示。以下將從系統各模塊的實現加以說明。
圖1系統硬件總體設計結構圖
3硬件實現
3.1模擬信號接收
模擬信號經過信號調理模塊輸入,A/D轉換選擇12位逐次逼近A/D轉換器AD1*,其片內含有三態輸出緩存電路和高精度參考電壓源與時鐘電路,自帶采樣保持器。本設計采用的連接方式如圖2所示,使ADI*工作在全控模式下。在AD1*的使用上采用程序啟動、標志查詢方式,啟動信號和轉換結束信號相配合,使ADI*一旦轉換結束就處于數據輸出狀態,同時產生AD結束標志,提高多通道時的通過率。

圖2A/D擴展電路框圖
3.2串口通信
F2812處理器提供兩個串行通信接口(SCI),支持16級接收和發送FIFO。但仍然滿足不了飛控系統與多外設的通訊要求。因此,系統選用異步串行接口擴展芯片SP2338,方便地將DSP的SCI1擴為3個全雙工、波特率最高可達9600b/s的異步串行通信接口,作為主控制器和專用的通信設備數據傳輸通道,進行控制系統和地面的通信傳輸,SCI2作為GPS與CPU的通信通道。SP2338使用簡單,不需要底層軟件支持,上電即可工作。

圖3串口擴展框圖
串口擴展實現如圖3,ADRI0、ADRI1是下行地址線,ADRI0,ADRI1=00,01,10是分別對應子串口0,,l2;ADRO0,ADRO1是上行地址線,ADRO0,ADRO1-00,01,10是分別對應子串口0,1,2。
F2812的I/O口直接與SP2338的地址線相連。發送數據時,DSP通過改變I/O口的狀態來改變下行地址,選中特定的子串口;接收數據時,DSP通過讀取I/O口的狀態來判斷數據具體來自哪一個子串口,從而對讀取到的數據做出相應的處理。因此可以提高系統效率、減低軟件消耗。通過外加電平轉換芯片就可以實現RS232,RS422,RS485通訊。
系統控制流程圖如圖5所示。數據存儲放置在任務線程中,其過程是將飛行數據分析結果等值存儲在Flash中。檢測任務線程可以通過周期函數PRD來完成。PRD可以根據實時時鐘來確定函數運行的時間。這里,設置檢測任務100ms運行1次。

圖5系統控制流程圖
所有任務的啟動都和飛控系統總線上的小周期計數息息相關,其中與接收總線數據相關的任務都是由消息分發線程啟動,當接收的消息為PSP發送的同步數據碼時,終端對象同步自己的小周期計數,并按現在所處的小周期啟動相應的任務。所有的任務都包含在消息處理線程中,每個終端都有一個這樣的線程,各個線程獨立工作,使各個終端處于并行工作方式。系統全部邏輯控制功能,均采用周期運行方式,每隔10ms由定時中斷程序喚醒。利用CPLD進行邏輯運算及數據處理,并檢測模擬量輸入信號,判斷各監控對象的工作狀態并按照系統控制邏輯決定輸出量。在其狀態發生變化時通知DSP,協助DSP完成系統的自檢測功能。在狀態監測中,將當前檢測到的狀態量與存儲的上一個狀態量相比較,如果兩次狀態相同,則不進行任何操作;如果發生變化,則向DSP發出中斷信號INT,通知DSP讀取數據。
在接收DSP發送的控制指令時,將該指令與當前狀態相比較,若符合就不再發送控制指令,這樣就能防止多次發送控制指令引起的誤動作。
在飛行過程中,控制系統的任務主要包括采集無人機的姿態數據,計算控制量并輸出到舵機等執行機構,接受地面站的指令并傳輸無人飛行器的位置等信息。利用設計的控制板進行伺服控制算法的實現,完成對執行機構舵機的控制。圖6為控制系統輸出的其中一路舵機的PWM控制信號波形。

圖6舵機控制信號
5結束語
經過調試,該系統在實際運行中性能穩定,達到了設計要求。本系統體積小、重量輕、成本低,具備一定的擴展性,適合于構成較強的實時性、小型化和低成本的小型無人飛行器。