• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于氣壓傳感器BMP085的高度測(cè)量系統(tǒng)實(shí)現(xiàn)*

      2014-07-25 07:43:52張金燕劉高平楊如祥
      關(guān)鍵詞:海拔高度氣壓誤差

      張金燕 ,劉高平 ,楊如祥

      (1.浙江萬(wàn)里學(xué)院 EDA重點(diǎn)實(shí)驗(yàn)室,浙江 寧波315100;2.寧波昊華智能科技有限公司,浙江 寧波315040)

      近年來(lái),全球定位系統(tǒng)GPS(Global Positioning System)在定位領(lǐng)域的應(yīng)用越來(lái)越廣泛。在GPS信號(hào)接收狀況良好時(shí),能夠?qū)崿F(xiàn)全球范圍內(nèi)的實(shí)時(shí)定位,但是在封閉的高樓內(nèi)以及高架橋下等環(huán)境中,GPS衛(wèi)星的信號(hào)容易被遮擋,導(dǎo)致定位精度大大降低[1-2]。隨著傳感器技術(shù)的不斷發(fā)展,利用基于微機(jī)電系統(tǒng)MEMS(Micro Electromechanical System)技術(shù)的傳感器實(shí)現(xiàn)高度測(cè)算已經(jīng)成為一種研究趨勢(shì),采用這種方法可以彌補(bǔ)GPS定位時(shí)信號(hào)被遮擋的缺點(diǎn)。本文提出了一種基于BMP085數(shù)字氣壓傳感器的高度測(cè)量方法,設(shè)計(jì)了一種通過(guò)STM32F103RCT6微處理器控制的高度測(cè)量系統(tǒng)。該系統(tǒng)具有體積小、精度高、功耗低等優(yōu)點(diǎn),可以應(yīng)用于室內(nèi)外導(dǎo)航、天氣預(yù)測(cè)、飛行高度測(cè)量等多種場(chǎng)合。

      1 系統(tǒng)硬件設(shè)計(jì)

      本系統(tǒng)硬件由BMP085氣壓傳感器模塊、STM32F103-RCT6微處理器、電源等部分組成。BMP085氣壓傳感器模塊通過(guò)I2C(Inter-Integrated Circuit)總線將未經(jīng)補(bǔ)償?shù)臍鈮褐岛蜏囟戎祩魉徒oSTM32F103RCT6微處理器,微處理器對(duì)數(shù)據(jù)進(jìn)行補(bǔ)償后,再將氣壓、高度等數(shù)據(jù)通過(guò)串口輸出到PC上,并在PC上顯示。系統(tǒng)硬件框圖如圖1所示。

      圖1 系統(tǒng)硬件框圖

      1.1 BMP085數(shù)字氣壓傳感器

      BMP085是德國(guó)BOSCH公司生產(chǎn)的一款低功耗、高精度的MEMS數(shù)字氣壓傳感器。BMP085的供電電壓為1.8 V~3.6 V,典型值為2.5 V。它由電阻式壓力傳感器、A/D轉(zhuǎn)換器和帶有E2PROM的控制單元組成,控制單元通過(guò)I2C總線與移動(dòng)設(shè)備的微處理器連接[3]。E2PROM中存儲(chǔ)了11個(gè)校準(zhǔn)參數(shù),這11個(gè)校準(zhǔn)參數(shù)涉及到參考溫度下的零點(diǎn)漂移、零點(diǎn)漂移的溫度系數(shù)以及靈敏度的溫度系數(shù)等[4],用于對(duì)氣壓值進(jìn)行溫度補(bǔ)償。BMP085的氣壓測(cè)量范圍為 300 hPa~1100 hPa(海拔高度-500 m~9 000 m),溫度測(cè)量范圍為-40℃~+85℃。在低功耗模式下,BMP085精度為0.06 hPa(0.5 m),在高精度模式下其精度可以達(dá)到 0.03 hPa(0.25 m),轉(zhuǎn)換速率可以達(dá)到 128次/s,能夠滿足系統(tǒng)對(duì)速度和精度的要求。

      1.2 接口電路設(shè)計(jì)

      STM32F103RCT6是一款基于32位ARM CortexTM-M3 RISC內(nèi)核的增強(qiáng)型微控制器[5],包含2個(gè)I2C接口,便于與外圍設(shè)備之間進(jìn)行通信,其中I2C1的串行數(shù)據(jù)(SDA)線和串行時(shí)鐘(SCL)線對(duì)應(yīng)的引腳分別為 PB6、PB7,而I2C2的SDA和 SCL對(duì)應(yīng)的引腳分別為 PB10、PB11。本系統(tǒng)采用I2C1接口進(jìn)行通信,BMP085的SCL和SDA分別與STM32F103RCT6的 PB6、PB7引腳相連。STM32F103-RCT6微處理器采用8 MHz的外部晶振,通過(guò)鎖相環(huán)產(chǎn)生最大的72 MHz主時(shí)鐘頻率。另外,一般具有I2C總線的器件其SDA和SCL管腳都是漏極開(kāi)路(或集電極開(kāi)路)輸出結(jié)構(gòu),因此實(shí)際使用時(shí),SDA和SCL信號(hào)線都必須加上拉電阻Rp(Pull-Up Resistor),上拉電阻一般取值為3 kΩ~10 kΩ,本系統(tǒng)采用 4.7 kΩ的上拉電阻。

      同時(shí),測(cè)量所得的氣壓和高度等數(shù)據(jù)通過(guò)USART1串口輸出到PC。BMP085與STM32F103RCT6的接口電路連接如圖2所示,圖中U1為電壓轉(zhuǎn)換芯片,將5 V電壓轉(zhuǎn)換為 3.3 V電壓,U2為氣壓傳感器 BMP085,U3為SP3232電平轉(zhuǎn)換芯片,通過(guò)串行端口(COM)與PC機(jī)相連,U4為本系統(tǒng)的核心芯片STM32F103RCT6微處理器。

      圖2 接口電路原理圖

      2 單片機(jī)軟件設(shè)計(jì)

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

      圖3 單片機(jī)軟件流程圖

      下面對(duì)I2C讀寫方式、數(shù)據(jù)補(bǔ)償以及線性插值法計(jì)算海拔高度部分進(jìn)行重點(diǎn)介紹。

      2.1 硬件方式實(shí)現(xiàn)I2C接口

      本系統(tǒng)的BMP085和STM32F103RCT6之間通過(guò)I2C總線進(jìn)行通信。I2C接口有兩種實(shí)現(xiàn)方式,一種是使用I/O口模擬I2C接口,另外一種是硬件中斷方式。本系統(tǒng)采用硬件方式實(shí)現(xiàn)I2C接口通信。雖然硬件實(shí)現(xiàn)I2C接口較復(fù)雜,但是相對(duì)于用I/O口模擬I2C接口的方法,硬件I2C方式在實(shí)時(shí)性和傳輸速度上有很大的優(yōu)勢(shì)。

      對(duì)I2C口進(jìn)行初始化時(shí),配置I2C為7位地址模式,時(shí)鐘頻率為100 kHz,開(kāi)啟IT_ERR、IT_EVT和IT_BUF中斷。在產(chǎn)生 I2C起始位后,第一個(gè)字節(jié)由7位的傳輸?shù)刂泛?位的數(shù)據(jù)方向位組成。數(shù)據(jù)方向位為“1”表示主接收模式(主機(jī)請(qǐng)求從機(jī)數(shù)據(jù)),為“0”表示主傳輸模式(主機(jī)向從機(jī)輸出數(shù)據(jù))[5]。當(dāng)采用單字節(jié)讀寫方式時(shí),主傳輸模式與主接收模式序列圖分別如圖4、圖5所示。圖中S為起始條件,P為停止條件,A為應(yīng)答,NA為非應(yīng)答;EV5表示已發(fā)送起始條件,EV6_1表示從機(jī)地址已發(fā)送,EV6_2表示收到匹配的地址數(shù)據(jù),EV7表示收到數(shù)據(jù),EV8表示數(shù)據(jù)已發(fā)送。

      圖4 主傳輸模式序列圖

      圖5 主接收模式序列圖

      2.2 數(shù)據(jù)補(bǔ)償

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

      表1 BMP085工作模式

      2.3 氣壓-高度轉(zhuǎn)換

      2.3.1 大氣壓強(qiáng)與海拔高度的關(guān)系

      假設(shè)空氣為理想標(biāo)準(zhǔn)大氣狀態(tài),則大氣壓強(qiáng)與海拔高度有如下的關(guān)系[6]:

      其中,Ps為大氣靜壓,即BMP085測(cè)量出來(lái)的氣壓值,Pb為海平面氣壓(相應(yīng)層下界氣壓),Hb為海平面高度(相應(yīng)層下界高度),R為氣體常數(shù),gn為自由落體標(biāo)準(zhǔn)加速度,Tb為相應(yīng)層大氣溫度,r為地球半徑。這些參數(shù)的取值如下:Pb=101 325 Pa,Hb=0,R=287.052 87 m2/k·s2,gn=9.806 65 m/s2,Tb=288 K=15℃,r=6 356 766 m。H表示重力勢(shì)高度,h表示幾何高度,即海拔高度。由此可見(jiàn),通過(guò)測(cè)量大氣靜壓Ps即可計(jì)算出海拔高度h。

      BMP085氣壓傳感器數(shù)據(jù)手冊(cè)提供了大氣壓強(qiáng)與海拔高度關(guān)系的公式,當(dāng)海拔高度范圍為0~11 000 m時(shí),高度計(jì)算公式為[3]:

      其中Altitude表示海拔高度,以m為單位,p為經(jīng)過(guò)補(bǔ)償后的氣壓值,p0為標(biāo)準(zhǔn)大氣壓,即p0=101 325 Pa。從式(3)可以看出,大氣壓每下降1 hPa,海拔高度就升高8.43 m。同時(shí),可以發(fā)現(xiàn)大氣壓強(qiáng)與實(shí)際海拔高度之間存在非線性關(guān)系。如果直接用單片機(jī)微處理器計(jì)算此式,則程序較復(fù)雜、占用內(nèi)存空間較大,影響了運(yùn)算速度。因此需要采用一種算法將氣壓和高度兩者之間的非線性關(guān)系轉(zhuǎn)換為線性關(guān)系,以便于通過(guò)STM32F103RCT6微處理器對(duì)高度進(jìn)行實(shí)際的測(cè)算[7]。

      2.3.2 線性插值法計(jì)算海拔高度

      線性插值法的基本思路為:系統(tǒng)的靜態(tài)輸入/輸出數(shù)據(jù)表格中相鄰兩個(gè)數(shù)據(jù)點(diǎn)之間客觀地存在著某種變化規(guī)律,在相鄰的各已知點(diǎn)間構(gòu)造一個(gè)簡(jiǎn)單的近似函數(shù),近似函數(shù)的值取離散數(shù)據(jù),然后根據(jù)己知點(diǎn)的函數(shù)值求出所要點(diǎn)的函數(shù)值[7]。本文采用線性插值法來(lái)計(jì)算海拔高度,假設(shè)系統(tǒng)輸入為x,并且xi<x<xi+1時(shí),在此區(qū)間內(nèi)可近似認(rèn)為測(cè)量系統(tǒng)的靜態(tài)輸入/輸出的關(guān)系為線性關(guān)系,即P(x)=α0+α1x,其點(diǎn)斜式插值公式為:

      國(guó)際標(biāo)準(zhǔn)大氣壓數(shù)據(jù)表中記錄了-100 m~20 000 m間每隔一段高度所對(duì)應(yīng)的氣壓值。每個(gè)氣壓數(shù)據(jù)點(diǎn)為xi,其對(duì)應(yīng)的高度數(shù)據(jù)點(diǎn)為yi,P(x)即為系統(tǒng)所要測(cè)量的海拔高度值。在實(shí)際應(yīng)用中,首先判斷傳感器所讀取的氣壓值對(duì)應(yīng)的高度范圍,然后采用線性插值法進(jìn)行高度計(jì)算,這樣在很大程度上避免了乘方運(yùn)算的復(fù)雜性[8]。

      3 實(shí)驗(yàn)結(jié)果及分析

      3.1 實(shí)驗(yàn)測(cè)試結(jié)果

      下面給出對(duì)一幢大樓進(jìn)行高度測(cè)試實(shí)驗(yàn)的記錄情況。分為兩次實(shí)驗(yàn),兩次實(shí)驗(yàn)在同一時(shí)間段內(nèi)進(jìn)行,首先測(cè)量大樓樓頂?shù)暮0胃叨龋缓鬁y(cè)量地面的海拔高度,兩者相減得到相對(duì)高度,即大樓的高度。

      實(shí)際測(cè)量海拔高度時(shí),每隔2 min測(cè)量一次,每次記錄30行數(shù)據(jù)的平均值,記錄下10組測(cè)量數(shù)據(jù)。兩次實(shí)驗(yàn)結(jié)果如圖6所示,大樓相對(duì)高度與實(shí)際高度的對(duì)比如圖7所示。

      圖6 大樓樓頂與地面的絕對(duì)高度

      對(duì)圖7中的數(shù)據(jù)進(jìn)行分析,計(jì)算得到10組相對(duì)高度數(shù)據(jù)的平均值為17.3 m。經(jīng)實(shí)地測(cè)量,大樓的實(shí)際高度為16.9 m。因此本系統(tǒng)測(cè)量的相對(duì)高度誤差為0.4 m,達(dá)到了預(yù)期的精度要求。

      圖7 相對(duì)高度與實(shí)際高度對(duì)比

      3.2 誤差分析

      由于大氣壓強(qiáng)易受天氣、溫度等因素影響而發(fā)生變化,導(dǎo)致計(jì)算得出的絕對(duì)海拔高度值不穩(wěn)定,變化范圍較大,本實(shí)驗(yàn)計(jì)算得到的相對(duì)高度值可以抵消由此產(chǎn)生的誤差。

      假設(shè)大樓的海拔高度測(cè)量值為H1,實(shí)際值為H1′,絕對(duì)高度噪聲誤差為Δh1,因天氣、溫度等環(huán)境因素引起的誤差為Δh;地面的海拔高度測(cè)量值為H2,實(shí)際值為H2′,絕對(duì)高度噪聲誤差為 Δh2,因天氣等環(huán)境因素引起的誤差同樣為Δh,則有:

      則大樓相對(duì)于地面的高度H為:

      由式(6)可知,相對(duì)高度噪聲誤差為(Δh1-Δh2),由此可見(jiàn),絕對(duì)高度誤差中因天氣等環(huán)境因素引起的誤差被抵消,但是當(dāng) Δh1為正最大值且 Δh2為負(fù)最大值時(shí),相對(duì)高度噪聲誤差可能會(huì)達(dá)到原來(lái)絕對(duì)高度噪聲誤差的兩倍。

      本文提出的基于氣壓傳感器BMP085的高度測(cè)量系統(tǒng),借助于大氣壓與海拔高度之間的關(guān)系,采用線性插值法計(jì)算海拔高度,減小了運(yùn)算的復(fù)雜性。同時(shí),利用硬件方式實(shí)現(xiàn)I2C接口,保證了較快的傳輸速率。經(jīng)實(shí)驗(yàn)驗(yàn)證,該系統(tǒng)的相對(duì)高度誤差為0.4 m,具有一定的適用性。本系統(tǒng)具有體積小、精度高、便于攜帶等優(yōu)點(diǎn),適合安裝在移動(dòng)設(shè)備中,實(shí)用性較強(qiáng),可以應(yīng)用于軍事、工業(yè)和商業(yè)等多個(gè)領(lǐng)域,有著廣泛的應(yīng)用前景。

      [1]龐晗.基于MEMS慣性器件的徒步個(gè)人導(dǎo)航儀設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工程大學(xué),2012.

      [2]姜西瑞.基于GPS和GSM/GPRS的定位系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:中國(guó)科學(xué)院計(jì)算技術(shù)研究所,2006.

      [3]BOSCH Sensortec.BMP085 digital pressure sensor data sheet[EB/OL].[2013-08-10].http://www.bosch-sensortec.com.

      [4]王俊彩,王福平,侯瑞峰,等.基于BMP085的一種便攜式海拔高度測(cè)量系統(tǒng)設(shè)計(jì)[J].傳感器與微系統(tǒng),2011,30(12):123-125.

      [5]蒙博宇.STM32自學(xué)筆記[M].北京:北京航空航天大學(xué)出版社,2012.

      [6]曲國(guó)福.高精度智能高度傳感器設(shè)計(jì)[J].計(jì)量與測(cè)試技術(shù),2003,30(6):4-6.

      [7]孟煒.高度測(cè)量數(shù)據(jù)處理及算法的研究[D].西安:西北工業(yè)大學(xué),2005.

      [8]Skyteacher.基于線性插值算法與BMP085氣壓傳感器的數(shù)字電子高度計(jì)設(shè)計(jì)[EB/OL].[2013-09-06].http://www.docin.com/p-471155660.html.

      猜你喜歡
      海拔高度氣壓誤差
      看不見(jiàn)的氣壓
      幼兒畫刊(2021年5期)2021-12-02 04:24:04
      故障狀態(tài)下純電動(dòng)汽車環(huán)境壓力及海拔高度估算方法
      北京汽車(2021年1期)2021-03-04 13:05:46
      角接觸球軸承接觸角誤差控制
      哈爾濱軸承(2020年2期)2020-11-06 09:22:26
      Beidou, le système de navigation par satellite compatible et interopérable
      壓力容器氣壓端蓋注射模設(shè)計(jì)
      模具制造(2019年4期)2019-06-24 03:36:46
      壓力容器制造誤差探究
      九十億分之一的“生死”誤差
      山東青年(2016年2期)2016-02-28 14:25:41
      電滲—堆載聯(lián)合氣壓劈烈的室內(nèi)模型試驗(yàn)
      不同海拔高度人群胃蛋白酶原血清水平差異性分析
      STM32平臺(tái)的MPL3115A2氣壓傳感器的應(yīng)用
      岑巩县| 井研县| 南昌市| 保山市| 南投市| 东乌| 基隆市| 高尔夫| 彰武县| 肥西县| 安国市| 洛南县| 清徐县| 萍乡市| 云阳县| 彰武县| 龙泉市| 三门县| 宁晋县| 宜黄县| 应用必备| 东宁县| 梨树县| 介休市| 万盛区| 大荔县| 裕民县| 临泽县| 东宁县| 牟定县| 五台县| 筠连县| 鹤峰县| 云南省| 新宾| 辽阳县| 阜平县| 濉溪县| 宿松县| 青川县| 邵武市|