1 引 言
隨著科技的發(fā)展以及軍事戰(zhàn)略思想的轉(zhuǎn)變, 無(wú)人飛行器在軍事、民用領(lǐng)域具有廣泛的應(yīng)用前景和極其重要的現(xiàn)實(shí)意義。各國(guó)正在研制和開發(fā)各種性能獨(dú)特的無(wú)人飛行器, 改造的核心就是飛行控制系統(tǒng)。
DSP以其豐富的指令系統(tǒng)、高速高精度的運(yùn)算能力及豐富的片內(nèi)外設(shè)資源等優(yōu)勢(shì), 為飛控系統(tǒng)的發(fā)展提供了一個(gè)很好的平臺(tái)。
本系統(tǒng)選用的TMS320F2812(以下簡(jiǎn)稱F2812)是TI公司開發(fā)的一款32 位DSP芯片, 采用高性能靜態(tài)CMOS 技術(shù), 工作主頻可達(dá)150M ips。片內(nèi)集成了128K 字的FLASH 存儲(chǔ)器, 方便實(shí)現(xiàn)軟件升級(jí);還集成了豐富的外圍設(shè)備, 如: 采樣頻率高達(dá)12. 5M IPS的12位16路A /D轉(zhuǎn)換器, 兩個(gè)面向電機(jī)控制的事件管理器和多種標(biāo)準(zhǔn)串口通信外設(shè)。
在此基礎(chǔ)上設(shè)計(jì)出一種高精度、擴(kuò)展性強(qiáng)、小型化和低成本的新型飛行控制系統(tǒng)。
2 硬件系統(tǒng)方案要求和設(shè)計(jì)
基于DSP的飛控系統(tǒng)硬件設(shè)計(jì), 關(guān)鍵在于系統(tǒng)的整體方案設(shè)計(jì)。接口設(shè)計(jì)是一個(gè)重要環(huán)節(jié), 將直接影響系統(tǒng)的性能。為了減輕系統(tǒng)的負(fù)擔(dān), 外部輸入信號(hào)用中斷方式讀入, 信號(hào)輸入輸出時(shí)要考慮抗干擾性。
充分考慮TMS320F2812 的片內(nèi)資源以及系統(tǒng)的接口要求, 僅需對(duì)DSP芯片進(jìn)行少量的外部接口擴(kuò)展, 即可滿足飛控系統(tǒng)所有功能和未來(lái)擴(kuò)展性的要求。同時(shí)由于系統(tǒng)的輸入邏輯量較多, 采用A ltera公司CPLD 芯片EPM7128, 完成數(shù)據(jù)處理和邏輯運(yùn)算功能, 以減少控制電路的體積, 增加系統(tǒng)的可靠性, 實(shí)現(xiàn)對(duì)控制系統(tǒng)各單元狀態(tài)的監(jiān)視和控制。
系統(tǒng)整體方案設(shè)計(jì)如圖1所示。以下將從系統(tǒng)各模塊的實(shí)現(xiàn)加以說(shuō)明。
圖1 系統(tǒng)硬件總體設(shè)計(jì)結(jié)構(gòu)圖
3 硬件實(shí)現(xiàn)
3. 1 模擬信號(hào)接收
模擬信號(hào)經(jīng)過(guò)信號(hào)調(diào)理模塊輸入, A /D 轉(zhuǎn)換選擇12位逐次逼近A /D轉(zhuǎn)換器AD1*, 其片內(nèi)含有三態(tài)輸出緩存電路和高精度參考電壓源與時(shí)鐘電路, 自帶采樣保持器。本設(shè)計(jì)采用的連接方式如圖2所示, 使AD I*工作在全控模式下。在AD1*的使用上采用程序啟動(dòng)、標(biāo)志查詢方式, 啟動(dòng)信號(hào)和轉(zhuǎn)換結(jié)束信號(hào)相配合, 使AD I*一旦轉(zhuǎn)換結(jié)束就處于數(shù)據(jù)輸出狀態(tài), 同時(shí)產(chǎn)生AD 結(jié)束標(biāo)志, 提高多通道時(shí)的通過(guò)率。
圖2 A /D擴(kuò)展電路框圖。
3. 2 串口通信
F2812處理器提供兩個(gè)串行通信接口( SC I) , 支持16級(jí)接收和發(fā)送FIFO。但仍然滿足不了飛控系統(tǒng)與多外設(shè)的通訊要求。因此, 系統(tǒng)選用異步串行接口擴(kuò)展芯片SP2338, 方便地將DSP的SC I1擴(kuò)為3個(gè)全雙工、波特率最高可達(dá)9600b / s的異步串行通信接口, 作為主控制器和專用的通信設(shè)備數(shù)據(jù)傳輸通道, 進(jìn)行控制系統(tǒng)和地面的通信傳輸, SC I2 作為GPS與CPU 的通信通道。SP2338使用簡(jiǎn)單, 不需要底層軟件支持, 上電即可工作。
圖3 串口擴(kuò)展框圖。
串口擴(kuò)展實(shí)現(xiàn)如圖3, ADR I0、ADR I1是下行地址線, ADR I0, ADR I1= 00, 01, 10是分別對(duì)應(yīng)子串口0, ,l 2; ADRO0, ADRO1 是上行地址線, ADRO0,ADRO1- 00, 01, 10 是分別對(duì)應(yīng)子串口0, 1, 2。
F2812的I/O 口直接與SP2338 的地址線相連。發(fā)送數(shù)據(jù)時(shí), DSP通過(guò)改變I/O 口的狀態(tài)來(lái)改變下行地址, 選中特定的子串口; 接收數(shù)據(jù)時(shí), DSP通過(guò)讀取I/O 口的狀態(tài)來(lái)判斷數(shù)據(jù)具體來(lái)自哪一個(gè)子串口, 從而對(duì)讀取到的數(shù)據(jù)做出相應(yīng)的處理。因此可以提高系統(tǒng)效率、減低軟件消耗。通過(guò)外加電平轉(zhuǎn)換芯片就可以實(shí)現(xiàn)RS232, RS422, RS485通訊。
3. 3 存儲(chǔ)器擴(kuò)展
F2812上包含128K16位的FLASH 存儲(chǔ)器。考慮到容量和速度, 所以必須對(duì)系統(tǒng)進(jìn)行存儲(chǔ)器的擴(kuò)展。采用一片ISSI 公司生產(chǎn)的64K 字大小的IS61LV6416 存儲(chǔ)芯片作為程序擴(kuò)展存儲(chǔ)器。+ 3. 3V供電, 存取時(shí)間最大不超過(guò)12ns。不需要外加延時(shí)電路, 直接將其數(shù)據(jù)線、地址線分別和DSP的數(shù)據(jù)線、地址線相連。并將DSP 的第51 引腳R /W與61LV6416 的片選信號(hào)CE引腳連接, DSP的讀、寫選通信號(hào)分別與61LV 6416的讀、寫選通信號(hào)相連。
3. 4 PWM 波輸出
無(wú)人飛行器伺服機(jī)構(gòu)的舵機(jī)由PWM (脈寬調(diào)制)信號(hào)控制, 利用占空比的變化, 由DSP產(chǎn)生的多路并行PWM 信號(hào)加上信號(hào)隔離驅(qū)動(dòng)的舵機(jī)控制電路, 通過(guò)改變舵機(jī)的位置從而達(dá)到控制目的。
TMS320F2812集成了PWM 控制信號(hào)發(fā)生器,每個(gè)事件管理器能夠產(chǎn)生8 路PWM 輸出。由于TMS320F2812芯片輸出的PWM 高電平為+ 3. 3V,而舵機(jī)控制信號(hào)輸入PWM 脈寬調(diào)制信號(hào)的高電平需要+ 5V, 因此DSP輸出的脈寬調(diào)制信號(hào)的高電平需要經(jīng)過(guò)電平轉(zhuǎn)換后才能驅(qū)動(dòng)舵機(jī)工作。為了避免電機(jī)驅(qū)動(dòng)板卡對(duì)主控板卡的干擾, 采用高速光耦隔離器件74LS245將PWM 信號(hào)隔離, 阻斷電機(jī)驅(qū)動(dòng)板卡對(duì)主控板卡的傳導(dǎo)干擾。
3. 5 復(fù)位、電源電路
在整個(gè)硬件設(shè)計(jì)中, 主要用到的直流電源有+ 1. 8V、+ 3. 3V、+ 5V 和+ 12V。板上電源采用TI的TPS767D318, 通過(guò)5V 穩(wěn)壓電源, 提供DSP所需的1. 8V 電壓和DSP及外圍電路所需的3. 3V 電壓。
所有信號(hào)與F2812連接時(shí)需考慮電平匹配問(wèn)題, 通過(guò)加降壓芯片的方式來(lái)解決。+ 12V 的直流電源由蓄電池提供, 其他直流電壓可以通過(guò)DC /DC轉(zhuǎn)換模塊得到。+ 5V 電壓通過(guò)集成穩(wěn)壓模塊LM7805獲得??紤]到本系統(tǒng)中還需1. 8V 和3. 3V 兩種電壓,所以選用了IDT公司的LM1117芯片對(duì)輸入到DSP的5V 電壓進(jìn)行電平轉(zhuǎn)換, 可使5V 輸入電壓降為1. 8V和3. 3V。LM1117 提供電流限制和熱保護(hù)。
目標(biāo)板上的所有電源都可以用一個(gè)5V 的穩(wěn)壓模塊提供。
此外, 為了調(diào)試方便, 系統(tǒng)由T I 公司的TPS3307提供手動(dòng)復(fù)位。復(fù)位信號(hào)經(jīng)CPLD 譯碼后輸出高、低兩種電平, 對(duì)復(fù)位電平要求不同的元件分別復(fù)位。手動(dòng)按鈕和AT bus所有復(fù)位源都引入CPLD, 由CPLD 內(nèi)建的R eset Log ic處理驅(qū)動(dòng), 再輸出至復(fù)位目的地。
4.系統(tǒng)軟件設(shè)計(jì)
軟件系統(tǒng)采用T I公司DSP集成開發(fā)工具CCS中集成的嵌入式實(shí)時(shí)操作系統(tǒng)DSP /B IOS, 采用C語(yǔ)言與匯編語(yǔ)言混合編程實(shí)現(xiàn)。
系統(tǒng)初始化模塊設(shè)定SJA1000 的工作模式, 且其初始化只能在復(fù)位模式下進(jìn)行。初始化流程圖如圖4所示。
圖4 初始化流程框圖。
系統(tǒng)控制流程圖如圖5所示。數(shù)據(jù)存儲(chǔ)放置在任務(wù)線程中, 其過(guò)程是將飛行數(shù)據(jù)分析結(jié)果等值存儲(chǔ)在F lash 中。檢測(cè)任務(wù)線程可以通過(guò)周期函數(shù)PRD來(lái)完成。PRD 可以根據(jù)實(shí)時(shí)時(shí)鐘來(lái)確定函數(shù)運(yùn)行的時(shí)間。這里, 設(shè)置檢測(cè)任務(wù)100m s運(yùn)行1次。
圖5 系統(tǒng)控制流程圖。
所有任務(wù)的啟動(dòng)都和飛控系統(tǒng)總線上的小周期計(jì)數(shù)息息相關(guān), 其中與接收總線數(shù)據(jù)相關(guān)的任務(wù)都是由消息分發(fā)線程啟動(dòng), 當(dāng)接收的消息為PSP發(fā)送的同步數(shù)據(jù)碼時(shí), 終端對(duì)象同步自己的小周期計(jì)數(shù), 并按現(xiàn)在所處的小周期啟動(dòng)相應(yīng)的任務(wù)。所有的任務(wù)都包含在消息處理線程中, 每個(gè)終端都有一個(gè)這樣的線程, 各個(gè)線程獨(dú)立工作, 使各個(gè)終端處于并行工作方式。系統(tǒng)全部邏輯控制功能, 均采用周期運(yùn)行方式, 每隔10ms由定時(shí)中斷程序喚醒。利用CPLD 進(jìn)行邏輯運(yùn)算及數(shù)據(jù)處理, 并檢測(cè)模擬量輸入信號(hào), 判斷各監(jiān)控對(duì)象的工作狀態(tài)并按照系統(tǒng)控制邏輯決定輸出量。在其狀態(tài)發(fā)生變化時(shí)通知DSP, 協(xié)助DSP完成系統(tǒng)的自檢測(cè)功能。在狀態(tài)監(jiān)測(cè)中, 將當(dāng)前檢測(cè)到的狀態(tài)量與存儲(chǔ)的上一個(gè)狀態(tài)量相比較, 如果兩次狀態(tài)相同, 則不進(jìn)行任何操作; 如果發(fā)生變化,則向DSP發(fā)出中斷信號(hào)INT, 通知DSP讀取數(shù)據(jù)。
在接收DSP發(fā)送的控制指令時(shí), 將該指令與當(dāng)前狀態(tài)相比較, 若符合就不再發(fā)送控制指令, 這樣就能防止多次發(fā)送控制指令引起的誤動(dòng)作。
在飛行過(guò)程中, 控制系統(tǒng)的任務(wù)主要包括采集無(wú)人機(jī)的姿態(tài)數(shù)據(jù), 計(jì)算控制量并輸出到舵機(jī)等執(zhí)行機(jī)構(gòu), 接受地面站的指令并傳輸無(wú)人飛行器的位置等信息。利用設(shè)計(jì)的控制板進(jìn)行伺服控制算法的實(shí)現(xiàn), 完成對(duì)執(zhí)行機(jī)構(gòu)舵機(jī)的控制。圖6為控制系統(tǒng)輸出的其中一路舵機(jī)的PWM 控制信號(hào)波形。
圖6 舵機(jī)控制信號(hào)。
5 結(jié)束語(yǔ)
采用多外設(shè)的高性能DSP 芯片TMS320F2812結(jié)合CPLD, 并采用DSP /B IOS 為實(shí)時(shí)操作系統(tǒng), 進(jìn)行實(shí)時(shí)多任務(wù)設(shè)計(jì), 有效提高了系統(tǒng)的可靠性和實(shí)時(shí)性。經(jīng)過(guò)調(diào)試, 該系統(tǒng)在實(shí)際運(yùn)行中性能穩(wěn)定, 達(dá)到了設(shè)計(jì)要求。本系統(tǒng)體積小、重量輕、成本低, 具備一定的擴(kuò)展性, 適合于構(gòu)成較強(qiáng)的實(shí)時(shí)性、小型化和低成本的小型無(wú)人飛行器。