摘 要: 介紹了基于DSP和BMP085數(shù)字氣壓傳感器的高精度高度采集系統(tǒng)在無人機上的設(shè)計,并對系統(tǒng)實際運行的結(jié)果數(shù)據(jù)進行測試分析,實現(xiàn)高度的測量與傳輸。重點描述了系統(tǒng)采集端軟硬件的設(shè)計與實現(xiàn),闡述了軟件與硬件的設(shè)計要求。本系統(tǒng)功耗低、結(jié)構(gòu)簡單、精度高、抗干擾能力強、且能減少環(huán)境因素變化的影響,該測量系統(tǒng)使用卡爾曼濾波算法對測量數(shù)據(jù)進行修正,以便更準(zhǔn)確地計算出相對高度。
關(guān)鍵詞: DSP;BMP085;卡爾曼濾波;無人機
具有自主飛行能力的無人駕駛飛機是一個應(yīng)用到多學(xué)科前沿性的研究課題,無人機在機艙內(nèi)不需要有人進行操縱,它在飛行的過程中依靠各種電子設(shè)備,全自動地完成各種姿態(tài)飛行。高度信息作為無人機的一項飛行參數(shù),是保障無人機飛行控制系統(tǒng)正常有維持飛機安全平穩(wěn)飛行的一個重要指標(biāo)。本文以BMP085氣壓傳感器為研究對象,采用卡爾曼濾波算法,通過TMS320F2812 DSP構(gòu)建一種更為精確的高度采集系統(tǒng)[1]。
1 系統(tǒng)工作原理及硬件結(jié)構(gòu)
基于DSP的無人機高度采集系統(tǒng)的硬件部分主要包括氣壓和溫度采集、數(shù)據(jù)處理及數(shù)據(jù)發(fā)送3個部分。該系統(tǒng)使用氣壓溫度傳感器采集無人機的氣壓和溫度值送到無人機的處理器,使用無線傳輸發(fā)送給地面控制中心并通過公式計算得到相對高度值,經(jīng)過卡爾曼濾波算法修正數(shù)據(jù)得到更為精確的高度值,以便于地面站工作人員對無人機進行控制,使無人機運行在安全可靠的飛行高度。
1.1 系統(tǒng)總體框架
基于DSP的無人機高度采集系統(tǒng)總體結(jié)構(gòu)如圖1所示,系統(tǒng)硬件部分由BMP085數(shù)字式氣壓傳感器、TMS320F2812 DSP、無線傳輸模塊、電源模塊以及其他外圍電路組成。TMS320F2812控制器通過I/O口模擬I2C總線與BMP085氣壓傳感器相連接,BMP085氣壓傳感器實時獲得測量點的壓強值與溫度值,通過I/O口發(fā)送給控制器處理,并將壓強值與溫度值數(shù)據(jù)通過無人機的無線傳輸模塊實時傳輸?shù)綗o人機地面站。無人機地面站接收數(shù)據(jù)后,根據(jù)壓力與高度的轉(zhuǎn)換關(guān)系,求得在該氣壓下的相對應(yīng)的高度值,對高度值進行補償,并用卡爾曼濾波算法進行數(shù)據(jù)修正,分析后進行存儲,再通過上行數(shù)據(jù)鏈把控制指令發(fā)送給飛控中心,調(diào)整無人機的姿態(tài),從而控制無人機的高度,使無人機的飛行更加平穩(wěn)[2]。
1.2 系統(tǒng)硬件選擇
TMS320F2812數(shù)字信號處理器是TI公司最新推出的32位定點DSP控制器,是目前控制領(lǐng)域最先進的處理器之一。其頻率高達150 MHz,大大提高了控制系統(tǒng)的控制精度和芯片處理能力;處理數(shù)據(jù)位數(shù)也從16位定點躍升到32位定點;最大的亮點是其擁有EVA、EVB事件管理器和配套的12位16通道的A/D數(shù)據(jù)采集,支持JTAG邊界掃描接口;具有8 KB內(nèi)部ROM存儲器和128 KB的內(nèi)部Flash存儲器,3個32位CPU定時器;串口通信外設(shè)主要包括1個SPI串行接口、兩個SCI串行接口、增強型控制器局域網(wǎng)通信接口Ecan2.0B;56個可配置通用I/O引腳;具有低功耗模式和省電模式;外部I/O口電壓為3.3 V,內(nèi)核電壓為1.8 V,F(xiàn)lash的編程電壓為3.3 V;有179引腳BGA封裝和176引腳的LQFP封裝[3]。
為了滿足系統(tǒng)的抗超過載的要求,采用德國Bosch公司基于MEMS的BMP085氣壓傳感器。BMP085采用強大的8-pin陶瓷無引線芯片承載(LCC)超薄封裝,其壓力測量范圍為30 kPa~110 kPa(相當(dāng)于-500 m~9 000 m),絕對精度最低可以達到0.03 hPa(0.25 m),溫度測量范圍為-40℃~+85℃。BMP085傳送的是沒有經(jīng)過補償?shù)臏囟群蛪毫χ?,要想得到補償過的溫度和壓力值可以通過BMP085的EEPROM存儲器中的標(biāo)準(zhǔn)數(shù)據(jù)進行補償。EEPROM儲存了176位單獨的標(biāo)準(zhǔn)數(shù)據(jù),這些數(shù)據(jù)用于溫度和壓力補償,而176位的EEPROM被劃分為11個字,每個字16位,一共11個校準(zhǔn)系數(shù),每個器件模塊都有自己單獨的校準(zhǔn)系數(shù)[4]。
1.3 DSP系統(tǒng)內(nèi)部框架
由于壓力傳感器的數(shù)據(jù)都是通過I2C總線傳輸給DSP,而TMS320F2812缺少I2C總線接口,所以這里使用TMS320F2812的I/O模擬I2C總線。無線收發(fā)模塊則是通過SPI把數(shù)據(jù)發(fā)送給無人機地面站,因此在系統(tǒng)中要有SPI和I/O才能接收和發(fā)送數(shù)據(jù),以完成該系統(tǒng)的完整設(shè)計。而DSP內(nèi)部則包含了這兩部分,只需要調(diào)用這些模塊再配置好參數(shù)就可以與外部接口模塊進行數(shù)據(jù)的傳輸[5],如圖2所示。
2 系統(tǒng)的軟件設(shè)計
測量系統(tǒng)的軟件設(shè)計程序是基于Keil uVision4,使用C語言編寫。程序設(shè)計思路為從頂層到底層,采用模塊化設(shè)計方案,主要包括系統(tǒng)及其初始化、I/O口模擬I2C口通信以及卡爾曼濾波算法修正數(shù)據(jù)等3個子程序模塊。主程序以循環(huán)方式進行,系統(tǒng)工作流程圖如圖3所示。
2.1 I/O口模擬I2C口通信
I/O口模擬I2C口通信主要用于TMS320F2812與BMP085之間的通信。對I/O口模擬I2C口通信進行設(shè)置后,控制器通過I2C接口提前將BMP085中的EEPROM的11個補償系數(shù)讀取出來,便于后面的溫度補償計算。DSP發(fā)送開始信號給BMP085傳感器,啟動傳感器的壓強與溫度測量。BMP085傳感器接到DSP發(fā)來的開始信號后,開始對當(dāng)前壓強與溫度進行測量。經(jīng)過4.5 ms的時間轉(zhuǎn)換后,DSP利用I2C接口讀取BMP085傳感器中測量的壓強與溫度,并結(jié)合獲取的補償系數(shù)對溫度和壓強進行溫度補償。
該無人機于2011年暑假期間制作完畢,經(jīng)過遙控試飛調(diào)試后,整機載重可達2.5 kg,飛行時長可滿足一般性巡航任務(wù)。機艙內(nèi)空間較為充足,可安裝的體積為7 cm×8 cm×9 cm,考慮到該點,硬件電路板采用接插板的形式進行設(shè)計。
BMP085數(shù)字式壓力傳感器對氣壓-海拔高度提供了參考公式,利用該公式配合傳感器采集到的氣壓值能得到較好的海拔高度,再經(jīng)過卡爾曼濾波后得到的值更為精確。
其中氣壓-海拔高度公式為:
Altitude=44 330[1-(P-P0)(1/5.255)]
其中,Altitude是以m為單位的海拔高度值,P0為標(biāo)準(zhǔn)大氣壓值,P為當(dāng)前某一高度的大氣壓強值。
整機測試結(jié)果如表1所示,以海拔高度測量結(jié)果作為理論值,將本機高度測量結(jié)果和海拔儀結(jié)果作對比。由于實驗條件有限,高度取值范圍為0~500 m。
從表1可以看出,經(jīng)過系統(tǒng)解算出的高度誤差值在測量范圍內(nèi)最大為0.52 m,系統(tǒng)誤差普遍小于1 m。氣壓高度采集系統(tǒng)誤差主要由傳感器本身誤差、電路誤差和解算誤差造成。系統(tǒng)經(jīng)過傳感器校正、溫度補償、軟件濾波和解算高度公式,確保了測量結(jié)果的高精度,因此該高度測量系統(tǒng)滿足高度測量的需求。
采用BMP085大氣壓力傳感器和TMS320F2812 DSP設(shè)計的高精度高度采集測試系統(tǒng),通過簡潔的電路和有效的軟件濾波算法,具有良好的穩(wěn)定性和較高的精度,適用于精度高、體積小、方便攜帶等多功能的需求,在實際生活中有較為廣泛的應(yīng)用前景。
參考文獻
[1] 王晅,李小民.高精度小型無人機氣壓高度測量系統(tǒng)的設(shè)計[J].測控技術(shù),2012,31(2):12-15.
[2] 梁勝展,郭雪梅,余曉填.基于BMP085氣壓傳感器及BP算法的高度測量研究與實現(xiàn)[J].傳感技術(shù)學(xué)報,2013(5):654-659.
[3] 蔣樂平.基于DSP的太陽能飛艇飛控系統(tǒng)研究[D].南昌:南昌航空大學(xué)研究生院,2012.
[4] 王俊彩,王福平,侯瑞峰,等.基于BMP085的一種便攜式海拔高度測量系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2011,30(12):123-125.
[5] 王琪,蔣樂平.基于PSoC的飛艇艇內(nèi)溫度采集系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2012,38(1):41-43.
[6] 敬喜.卡爾曼濾波器及其應(yīng)用基礎(chǔ)[M].北京:國防工業(yè)出版社,1973.