《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于氣壓傳感器BMP085的高度測量系統(tǒng)實現(xiàn)
基于氣壓傳感器BMP085的高度測量系統(tǒng)實現(xiàn)
來源:微型機與應(yīng)用2014年第6期
張金燕1,劉高平1,楊如祥2
(1.浙江萬里學院 EDA重點實驗室,浙江 寧波315100; 2.寧波昊華智能科技有限公司,浙江
摘要: 設(shè)計了一種基于氣壓傳感器BMP085的高度測量系統(tǒng)。該系統(tǒng)以STM32F103RCT6嵌入式芯片為主控制器,采用I2C硬件接口的方式讀取BMP085測量的氣壓值,并用溫度值對氣壓值進行補償,然后根據(jù)大氣壓強與海拔高度的關(guān)系,利用線性插值法計算絕對高度,進而獲取相對高度。實驗結(jié)果表明,該系統(tǒng)測量的相對高度誤差為0.4 m,能夠達到高精度的要求。
Abstract:
Key words :

摘  要: 設(shè)計了一種基于氣壓傳感器BMP085高度測量系統(tǒng)。該系統(tǒng)以STM32F103RCT6嵌入式芯片為主控制器,采用I2C硬件接口的方式讀取BMP085測量的氣壓值,并用溫度值對氣壓值進行補償,然后根據(jù)大氣壓強與海拔高度的關(guān)系,利用線性插值法計算絕對高度,進而獲取相對高度。實驗結(jié)果表明,該系統(tǒng)測量的相對高度誤差為0.4 m,能夠達到高精度的要求。
關(guān)鍵詞: BMP085;氣壓傳感器;線性插值法;高度測量

    近年來,全球定位系統(tǒng)GPS(Global Positioning System)在定位領(lǐng)域的應(yīng)用越來越廣泛。在GPS信號接收狀況良好時,能夠?qū)崿F(xiàn)全球范圍內(nèi)的實時定位,但是在封閉的高樓內(nèi)以及高架橋下等環(huán)境中,GPS衛(wèi)星的信號容易被遮擋,導(dǎo)致定位精度大大降低[1-2]。隨著傳感器技術(shù)的不斷發(fā)展,利用基于微機電系統(tǒng)MEMS(Micro Electromechanical System)技術(shù)的傳感器實現(xiàn)高度測算已經(jīng)成為一種研究趨勢,采用這種方法可以彌補GPS定位時信號被遮擋的缺點。本文提出了一種基于BMP085數(shù)字氣壓傳感器的高度測量方法,設(shè)計了一種通過STM32F103RCT6微處理器控制的高度測量系統(tǒng)。該系統(tǒng)具有體積小、精度高、功耗低等優(yōu)點,可以應(yīng)用于室內(nèi)外導(dǎo)航、天氣預(yù)測、飛行高度測量等多種場合。
1 系統(tǒng)硬件設(shè)計
    本系統(tǒng)硬件由BMP085氣壓傳感器模塊、STM32F103-
RCT6微處理器、電源等部分組成。BMP085氣壓傳感器模塊通過I2C(Inter-Integrated Circuit)總線將未經(jīng)補償?shù)臍鈮褐岛蜏囟戎祩魉徒oSTM32F103RCT6微處理器,微處理器對數(shù)據(jù)進行補償后,再將氣壓、高度等數(shù)據(jù)通過串口輸出到PC上,并在PC上顯示。系統(tǒng)硬件框圖如圖1所示。

1.1 BMP085數(shù)字氣壓傳感器
    BMP085是德國BOSCH公司生產(chǎn)的一款低功耗、高精度的MEMS數(shù)字氣壓傳感器。BMP085的供電電壓為1.8 V~3.6 V,典型值為2.5 V。它由電阻式壓力傳感器、A/D轉(zhuǎn)換器和帶有E2PROM的控制單元組成,控制單元通過I2C總線與移動設(shè)備的微處理器連接[3]。E2PROM中存儲了11個校準參數(shù),這11個校準參數(shù)涉及到參考溫度下的零點漂移、零點漂移的溫度系數(shù)以及靈敏度的溫度系數(shù)等[4],用于對氣壓值進行溫度補償。BMP085的氣壓測量范圍為300 hPa~1 100 hPa(海拔高度-500 m~9 000 m),溫度測量范圍為-40 ℃~+85 ℃。在低功耗模式下,BMP085精度為0.06 hPa(0.5 m),在高精度模式下其精度可以達到0.03 hPa(0.25 m),轉(zhuǎn)換速率可以達到128次/s,能夠滿足系統(tǒng)對速度和精度的要求。
1.2 接口電路設(shè)計
    STM32F103RCT6是一款基于32位ARM CortexTM-M3 RISC內(nèi)核的增強型微控制器[5],包含2個I2C接口,便于與外圍設(shè)備之間進行通信,其中I2C1的串行數(shù)據(jù)(SDA)線和串行時鐘(SCL)線對應(yīng)的引腳分別為PB6、PB7,而I2C2的SDA和SCL對應(yīng)的引腳分別為PB10、PB11。本系統(tǒng)采用I2C1接口進行通信,BMP085的SCL和SDA分別與STM32F103RCT6的PB6、PB7引腳相連。STM32F103-RCT6微處理器采用8 MHz的外部晶振,通過鎖相環(huán)產(chǎn)生最大的72 MHz主時鐘頻率。另外,一般具有I2C總線的器件其SDA和SCL管腳都是漏極開路(或集電極開路)輸出結(jié)構(gòu),因此實際使用時,SDA和SCL信號線都必須加上拉電阻Rp(Pull-Up Resistor),上拉電阻一般取值為3 kΩ~10 kΩ,本系統(tǒng)采用4.7 kΩ的上拉電阻。
    同時,測量所得的氣壓和高度等數(shù)據(jù)通過USART1串口輸出到PC。BMP085與STM32F103RCT6的接口電路連接如圖2所示,圖中U1為電壓轉(zhuǎn)換芯片,將5 V電壓轉(zhuǎn)換為3.3 V電壓,U2為氣壓傳感器BMP085,U3為SP3232電平轉(zhuǎn)換芯片,通過串行端口(COM)與PC機相連,U4為本系統(tǒng)的核心芯片STM32F103RCT6微處理器。

2 單片機軟件設(shè)計
    單片機軟件設(shè)計流程如圖3所示。首先進行系統(tǒng)初始化,包括系統(tǒng)時鐘(RCC)配置、中斷向量(NVIC)配置、GPIO配置、USART串口配置以及I2C接口初始化。接著從BMP085的E2PROM中讀取11個校準參數(shù)。然后每隔10 ms從寄存器中讀取未經(jīng)補償?shù)臏囟群蜌鈮褐担眯蕝?shù)對其進行補償,并采用線性插值法計算海拔高度,再將溫度、氣壓、高度等數(shù)據(jù)一起傳送給PC,并在PC上顯示一行數(shù)據(jù)。

    下面對I2C讀寫方式、數(shù)據(jù)補償以及線性插值法計算海拔高度部分進行重點介紹。
2.1 硬件方式實現(xiàn)I2C接口
    本系統(tǒng)的BMP085和STM32F103RCT6之間通過I2C總線進行通信。I2C接口有兩種實現(xiàn)方式,一種是使用I/O口模擬I2C接口,另外一種是硬件中斷方式。本系統(tǒng)采用硬件方式實現(xiàn)I2C接口通信。雖然硬件實現(xiàn)I2C接口較復(fù)雜,但是相對于用I/O口模擬I2C接口的方法,硬件I2C方式在實時性和傳輸速度上有很大的優(yōu)勢。
      對I2C口進行初始化時,配置I2C為7位地址模式,時鐘頻率為100 kHz,開啟IT_
ERR、IT_EVT和IT_BUF中斷。在產(chǎn)生I2C起始位后,第一個字節(jié)由7位的傳輸?shù)刂泛?位的數(shù)據(jù)方向位組成。數(shù)據(jù)方向位為“1”表示主接收模式(主機請求從機數(shù)據(jù)),為“0”表示主傳輸模式(主機向從機輸出數(shù)據(jù))[5]。當采用單字節(jié)讀寫方式時,主傳輸模式與主接收模式序列圖分別如圖4、圖5所示。圖中S為起始條件,P為停止條件,A為應(yīng)答,NA為非應(yīng)答;EV5表示已發(fā)送起始條件,EV6_1表示從機地址已發(fā)送,EV6_2表示收到匹配的地址數(shù)據(jù),EV7表示收到數(shù)據(jù),EV8表示數(shù)據(jù)已發(fā)送。

2.2 數(shù)據(jù)補償
      由于海拔高度和大氣壓強的關(guān)系受溫度的影響,因此需要用溫度值對氣壓值進行補償。BMP085氣壓傳感器的E2PROM中有原廠自帶的11個校準參數(shù),每一個傳感器的校準參數(shù)都不同。在第一次讀取氣壓和溫度值之前,必須先讀取E2PROM中的校準參數(shù),再從指定的寄存器中將未經(jīng)補償?shù)臏囟群蜌鈮褐底x取出來,然后采用BMP085數(shù)據(jù)手冊提供的補償算法對溫度值和氣壓值進行補償。該算法中,需要根據(jù)所設(shè)置的過采樣參數(shù)OSS(Oversampling Setting)的值來選擇BMP085的工作模式,OSS的值決定了測量精度和轉(zhuǎn)換時間,BMP085的4種工作模式如表1所示[3]。本系統(tǒng)的單片機軟件中將OSS的值設(shè)置為“0”,即選擇低功耗工作模式。

    
后的氣壓值,p0為標準大氣壓,即p0=101 325 Pa。從式(3)可以看出,大氣壓每下降1 hPa,海拔高度就升高8.43 m。同時,可以發(fā)現(xiàn)大氣壓強與實際海拔高度之間存在非線性關(guān)系。如果直接用單片機微處理器計算此式,則程序較復(fù)雜、占用內(nèi)存空間較大,影響了運算速度。因此需要采用一種算法將氣壓和高度兩者之間的非線性關(guān)系轉(zhuǎn)換為線性關(guān)系,以便于通過STM32F103RCT6微處理器對高度進行實際的測算[7]。
2.3.2 線性插值法計算海拔高度
    線性插值法的基本思路為:系統(tǒng)的靜態(tài)輸入/輸出數(shù)據(jù)表格中相鄰兩個數(shù)據(jù)點之間客觀地存在著某種變化規(guī)律,在相鄰的各已知點間構(gòu)造一個簡單的近似函數(shù),近似函數(shù)的值取離散數(shù)據(jù),然后根據(jù)己知點的函數(shù)值求出所要點的函數(shù)值[7]。本文采用線性插值法來計算海拔高度,假設(shè)系統(tǒng)輸入為x,并且xi<x<xi+1時,在此區(qū)間內(nèi)可近似認為測量系統(tǒng)的靜態(tài)輸入/輸出的關(guān)系為線性關(guān)系,即P(x)=α0+α1x,其點斜式插值公式為:
   
      國際標準大氣壓數(shù)據(jù)表中記錄了-100 m~20 000 m間每隔一段高度所對應(yīng)的氣壓值。每個氣壓數(shù)據(jù)點為xi,其對應(yīng)的高度數(shù)據(jù)點為yi,P(x)即為系統(tǒng)所要測量的海拔高度值。在實際應(yīng)用中,首先判斷傳感器所讀取的氣壓值對應(yīng)的高度范圍,然后采用線性插值法進行高度計算,這樣在很大程度上避免了乘方運算的復(fù)雜性[8]。
3 實驗結(jié)果及分析
3.1 實驗測試結(jié)果

    下面給出對一幢大樓進行高度測試實驗的記錄情況。分為兩次實驗,兩次實驗在同一時間段內(nèi)進行,首先測量大樓樓頂?shù)暮0胃叨龋缓鬁y量地面的海拔高度,兩者相減得到相對高度,即大樓的高度。
    實際測量海拔高度時,每隔2 min測量一次,每次記錄30行數(shù)據(jù)的平均值,記錄下10組測量數(shù)據(jù)。兩次實驗結(jié)果如圖6所示,大樓相對高度與實際高度的對比如圖7所示。

 

 

    對圖7中的數(shù)據(jù)進行分析,計算得到10組相對高度數(shù)據(jù)的平均值為17.3 m。經(jīng)實地測量,大樓的實際高度為16.9 m。因此本系統(tǒng)測量的相對高度誤差為0.4 m,達到了預(yù)期的精度要求。
3.2 誤差分析
    由于大氣壓強易受天氣、溫度等因素影響而發(fā)生變化,導(dǎo)致計算得出的絕對海拔高度值不穩(wěn)定,變化范圍較大,本實驗計算得到的相對高度值可以抵消由此產(chǎn)生的誤差。


 
    本文提出的基于氣壓傳感器BMP085的高度測量系統(tǒng),借助于大氣壓與海拔高度之間的關(guān)系,采用線性插值法計算海拔高度,減小了運算的復(fù)雜性。同時,利用硬件方式實現(xiàn)I2C接口,保證了較快的傳輸速率。經(jīng)實驗驗證,該系統(tǒng)的相對高度誤差為0.4 m,具有一定的適用性。本系統(tǒng)具有體積小、精度高、便于攜帶等優(yōu)點,適合安裝在移動設(shè)備中,實用性較強,可以應(yīng)用于軍事、工業(yè)和商業(yè)等多個領(lǐng)域,有著廣泛的應(yīng)用前景。
參考文獻
[1] 龐晗.基于MEMS慣性器件的徒步個人導(dǎo)航儀設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工程大學,2012.
[2] 姜西瑞.基于GPS和GSM/GPRS的定位系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:中國科學院計算技術(shù)研究所,2006.
[3] BOSCH Sensortec.BMP085 digital pressure sensor data sheet[EB/OL].[2013-08-10].http://www.bosch-sensortec.com.
[4] 王俊彩,王福平,侯瑞峰,等.基于BMP085的一種便攜式海拔高度測量系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2011,30(12):123-125.
[5] 蒙博宇.STM32自學筆記[M].北京:北京航空航天大學出版社,2012.
[6] 曲國福.高精度智能高度傳感器設(shè)計[J].計量與測試技術(shù),2003,30(6):4-6.
[7] 孟煒.高度測量數(shù)據(jù)處理及算法的研究[D].西安:西北工業(yè)大學,2005.
[8] Skyteacher.基于線性插值算法與BMP085氣壓傳感器的數(shù)字電子高度計設(shè)計[EB/OL].[2013-09-06].http://www.docin.com/p-471155660.html.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
另类图片综合电影| 欧美精品观看| 日韩一级免费| 亚洲国产日韩在线| 亚洲第一久久影院| 久久精品免费观看| 久久er精品视频| 欧美一区二区啪啪| 欧美一区二区三区在线播放| 亚洲视频综合| 亚洲视频欧洲视频| 制服丝袜亚洲播放| 亚洲小少妇裸体bbw| 亚洲免费在线电影| 欧美亚洲一区三区| 欧美在线网址| 亚洲激情欧美激情| 亚洲精品一区二区三区蜜桃久| 亚洲日本免费| 一区二区不卡在线视频 午夜欧美不卡在| a4yy欧美一区二区三区| 夜久久久久久| 亚洲一区二区在线免费观看| 亚洲一级片在线观看| 亚洲欧美日本在线| 久久国产一区二区| 老司机一区二区三区| 欧美不卡一区| 欧美女同在线视频| 欧美系列电影免费观看| 国产精品毛片在线看| 国产日韩欧美夫妻视频在线观看| 国产婷婷一区二区| 在线成人中文字幕| 亚洲精选成人| 亚洲综合国产| 久久精品成人一区二区三区| 亚洲第一在线| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区二区三区免费在线观看 | 欧美在线视频一区二区三区| 亚洲国产精品高清久久久| 亚洲免费精品| 欧美一区二区免费观在线| 久久免费国产| 欧美精品18+| 国产精品视频一二三| 国产一区999| 91久久国产自产拍夜夜嗨| 亚洲无毛电影| 亚洲国内欧美| 午夜在线一区| 免费在线观看精品| 国产精品乱码一区二区三区| 黄色精品一二区| 日韩午夜av| 久久激情五月丁香伊人| 艳妇臀荡乳欲伦亚洲一区| 欧美在线视频免费播放| 欧美激情一区| 国产亚洲综合性久久久影院| 亚洲精品乱码久久久久久日本蜜臀 | av成人免费在线观看| 欧美亚洲一区三区| 欧美成人第一页| 国产精品视频区| 亚洲欧洲免费视频| 欧美一区二区三区在线视频| 中日韩高清电影网| 久久久水蜜桃| 国产精品久久久久久久久久久久久| 悠悠资源网亚洲青| 午夜精品成人在线视频| 亚洲精品欧美一区二区三区| 欧美一区二区三区久久精品 | 国产精品永久免费在线| 亚洲精品少妇网址| 久久精品国产精品亚洲综合| 中文一区二区在线观看| 免费在线成人| 韩国av一区| 亚洲综合电影一区二区三区| av不卡在线| 国产中文一区二区三区| 一区二区三区日韩精品| 久久成人免费网| 亚洲一二三四久久| 另类av一区二区| 国产视频在线观看一区| 在线视频欧美精品| 日韩亚洲欧美综合| 久久在线精品| 国产午夜久久久久| 亚洲一区在线免费| 亚洲天堂成人| 欧美日本国产一区| 亚洲国产精品一区在线观看不卡| 欧美一区亚洲二区| 欧美一区二区三区男人的天堂 | 欧美三级电影一区| 亚洲黄一区二区| 亚洲国产精品999| 久久久久久一区二区| 国产欧美精品| 亚洲在线国产日韩欧美| 一区二区黄色| 欧美激情视频给我| 亚洲国产精品va在看黑人| 亚洲东热激情| 久久久久免费视频| 国产一区二区三区在线观看视频| 亚洲已满18点击进入久久| 亚洲综合成人在线| 欧美午夜久久久| 一区二区免费在线观看| 亚洲一区二区三区视频播放| 欧美女同视频| 日韩午夜三级在线| 亚洲私人影吧| 国产精品国产亚洲精品看不卡15 | 亚洲精品视频一区二区三区| 亚洲国产清纯| 欧美成人精品h版在线观看| 激情久久一区| 亚洲国内精品| 欧美高清视频在线播放| 亚洲人成网站精品片在线观看 | 亚洲一区二区三区在线观看视频| 欧美日韩免费视频| 日韩天堂在线视频| 亚洲专区一区| 国产麻豆精品在线观看| 午夜精品av| 一区二区三区高清不卡| 最新日韩av| 亚洲毛片播放| 欧美久久成人| 夜夜嗨av一区二区三区| 亚洲午夜一区| 国产精品日韩专区| 久久av一区二区三区| 美日韩精品免费观看视频| 亚洲欧洲午夜| 亚洲伊人久久综合| 国产人久久人人人人爽| 久久精品国产精品亚洲综合| 欧美在线免费看| 久久久亚洲午夜电影| 在线观看视频一区二区| 日韩亚洲在线| 国产精品激情| 欧美一区二区视频在线观看2020| 久久久欧美精品sm网站| 亚洲国产精品视频一区| 亚洲午夜在线| 国产在线乱码一区二区三区| 亚洲精品免费一二三区| 国产精品国产福利国产秒拍| 欧美在线视频在线播放完整版免费观看| 麻豆精品一区二区综合av| 亚洲美女视频| 久久久久久久999精品视频| 亚洲国产精品久久久久秋霞影院| 亚洲视频综合| 国模一区二区三区| 正在播放欧美视频| 国产一区二区三区的电影| aa级大片欧美三级| 国产日韩欧美精品综合| 国产精品久久久久aaaa| 亚洲精品孕妇| 欧美夜福利tv在线| 在线播放国产一区中文字幕剧情欧美| 欧美18av| 亚洲精品视频在线观看网站| 欧美一区二区三区电影在线观看| 国内精品模特av私拍在线观看| 亚洲乱码国产乱码精品精| 国产精品视频大全| 亚洲久久在线| 国产亚洲二区| 亚洲一区二区高清| 在线日韩电影| 欧美在线一区二区| 亚洲美女视频在线免费观看| 久久超碰97人人做人人爱| 亚洲美女区一区| 免播放器亚洲| 亚洲欧洲99久久| 欧美日韩天天操| 久久电影一区| 国产精品久久久久9999| 日韩系列在线| 狠狠色丁香婷婷综合影院| 亚洲欧美三级伦理| 日韩视频在线免费观看| 欧美成人精品激情在线观看| 亚洲欧美中文另类| 国产精品初高中精品久久| 亚洲激情视频|