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