郭發(fā)東,劉世萱,鄭珊珊,王曉燕,劉 野,倪 巍,管萬(wàn)春
(山東省海洋環(huán)境監(jiān)測(cè)技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東省科學(xué)院海洋儀器儀表研究所,山東青島 266001)
?
基于BMP085模塊的海洋氣象觀測(cè)氣壓傳感器設(shè)計(jì)
郭發(fā)東,劉世萱,鄭珊珊,王曉燕,劉 野,倪 巍,管萬(wàn)春
(山東省海洋環(huán)境監(jiān)測(cè)技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東省科學(xué)院海洋儀器儀表研究所,山東青島 266001)
BMP085模塊是一款高精度、超低能耗的大氣壓力傳感模塊。基于該芯片設(shè)計(jì)了一款新型智能輸出的氣壓傳感器。該傳感器采用混合信號(hào)系統(tǒng)級(jí)芯片C8051F021作為數(shù)據(jù)采集處理器,進(jìn)行新型海洋氣象觀測(cè)氣壓傳感器的研制。文中對(duì)系統(tǒng)的硬件組成、軟件設(shè)計(jì)進(jìn)行了詳細(xì)描述。對(duì)該氣壓傳感器的樣機(jī)標(biāo)定試驗(yàn)表明,經(jīng)校準(zhǔn)后誤差在0.3 hPa以內(nèi),已經(jīng)達(dá)到國(guó)外同類傳感器水平。該傳感器具有性價(jià)比高、精度高、穩(wěn)定性好、功耗低、安裝使用簡(jiǎn)便等優(yōu)點(diǎn),可廣泛應(yīng)用于氣象站、船舶氣象儀器、大型海洋資料浮標(biāo)等場(chǎng)所。
海洋氣象;C8051F021;BMP085;I2C接口;氣壓傳感器;RS232
目前在我國(guó)海洋浮標(biāo)、臺(tái)站上使用的成套氣壓傳感器,大多依賴國(guó)外進(jìn)口,目前使用較多的是美國(guó)R.M.YOUNG公司的61302和芬蘭VAISALA公司的PTB210,設(shè)備價(jià)格昂貴,數(shù)據(jù)輸出格式單一,安裝使用不便。隨著現(xiàn)代微電子技術(shù)及精密制造工藝的發(fā)展,科學(xué)儀器的小型化、集成化、自動(dòng)化、低功耗的器件模塊越來(lái)越多[1],近些年德國(guó)BOSCH公司推出的BMP085壓力傳感模塊具有體積小、精度超高、功耗超低、便于設(shè)計(jì)開(kāi)發(fā)的特點(diǎn)[2]。
文中設(shè)計(jì)的氣壓傳感器就是基于BMP085模塊的一款主要應(yīng)用與海洋氣象觀測(cè)的傳感器,該傳感器的的量程為300~1 100 hPa,精度為0.3 hPa.傳感器輸出采用RS232接口,ASCII碼輸出,數(shù)據(jù)刷新頻率最高1.8 Hz.靈敏度高、響應(yīng)時(shí)間快,具有溫度補(bǔ)償功能,尺寸小,功耗低、便于海上安裝固定??蓮V泛應(yīng)用于氣象站、船舶氣象儀器、大型海洋資料浮標(biāo)等場(chǎng)所。
傳感器設(shè)計(jì)總體框圖如圖1所示。該氣壓傳感器采用氣壓模塊BMP085與微處理器通過(guò)SMBus(I2C)總線通信[3],直接互連,按照指定的通信協(xié)議通信,微處理器將從BMP085讀回的氣壓數(shù)據(jù)計(jì)算處理后通過(guò)RS232串口以ASCII碼的方式輸出。
圖1 傳感器設(shè)計(jì)總體框圖
1.1 氣壓模塊BMP085及微處理器C8051F021簡(jiǎn)介
BMP085是一款高精度、超低能耗的大氣壓力傳感模塊,廣泛應(yīng)用在移動(dòng)設(shè)備中。它的性能卓越,絕對(duì)精度最低可以達(dá)到0.03 hPa,并且耗電極低,只有3 μA.BMP085采用強(qiáng)大的8-pin陶瓷無(wú)引線芯片承載(LCC)超薄封裝,可以通過(guò)I2C總線直接與移動(dòng)設(shè)備的微處理器連接。它的封裝尺寸僅有5 mm×5 mm,厚度僅有1.2 mm.
微處理器選用完全集成的混合信號(hào)系統(tǒng)級(jí)芯片C8051F021,該芯片具有與8051兼容的高速CIP-51內(nèi)核,與MCS-51指令集完全兼容,片內(nèi)集成了數(shù)據(jù)采集和控制系統(tǒng)中常用的模擬、數(shù)字外設(shè)及其他功能部件;內(nèi)置64K程序存儲(chǔ)器、內(nèi)部4352字節(jié)的RAM,C8051F單片機(jī)具有片內(nèi)調(diào)試電路,通過(guò)JTAG接口可以進(jìn)行非侵入式、全速的在系統(tǒng)調(diào)試[4]。
1.2 C8051F021與BMP085 I2C接口設(shè)計(jì)
微處理器與BMP085接口示意圖如圖7所示。
氣壓模塊與微處理器采用SMBus(I2C)總線通信,直接互連,按照指定的通信協(xié)議通信[5]。
圖2 微處理器與BMP085接口示意圖
傳感器基本工作流程是:傳感器上電后進(jìn)行系統(tǒng)初始化,讀取存儲(chǔ)在E2PROM里的校準(zhǔn)參數(shù),然后開(kāi)始溫度采集,等待4.5 ms后讀取采集的溫度值,接著啟動(dòng)氣壓值采集,根據(jù)精度和功耗要求等待一定時(shí)間后讀取采集的氣壓值,最后根據(jù)既定算法,帶入采集的溫度值和氣壓值計(jì)算出實(shí)際大氣壓力值。傳感器系統(tǒng)軟件設(shè)采用C51語(yǔ)言,采用模塊化設(shè)計(jì)[6],根據(jù)傳感器工作流程,繪制軟件流程圖如圖3所示。
圖3 傳感器軟件設(shè)計(jì)流程圖
2.1 BMP085發(fā)送控制命令的方式
C8051F021對(duì)BMP085發(fā)送控制命令的方式如圖4所示。
圖4 C8051F021與BMP085控制指令時(shí)序圖
C8051F021向BMP085發(fā)送命令的步驟如下:
(1)發(fā)送模塊地址+W(表示寫操作),如上圖中的0xEE;
(2)發(fā)送寄存器地址(register address),如上圖中的第一個(gè)0xF4;
(3)發(fā)送寄存器的值(control register data),如上圖中的第二個(gè)0xF4。寄存器的值代表BMP085 要進(jìn)行的測(cè)量方式。不同的值分別代表,測(cè)量溫度;低精度壓力測(cè)量;中精度壓力測(cè)量;高精度壓力測(cè)量。如表1所示。
表1 BMP085測(cè)量方式表
2.2 BMP085讀取數(shù)據(jù)的方式
從BMP085 讀取數(shù)據(jù)的方法如圖5所示。
圖5 從BMP085讀取數(shù)據(jù)時(shí)序圖
從BMP085 讀取數(shù)據(jù)的步驟如下:
(1)發(fā)送模塊地址+W(表示寫操作),如圖5中的0xEE;
(2)送寄存器地址(register address),如圖5中的第一個(gè)0xF6;
(3)重新開(kāi)始IIC 傳輸(Restart);
(4)發(fā)送模塊地址+R(表示要進(jìn)行讀操作),如圖5中的0xEF;
(5)讀取測(cè)量值的高8 位(MSB);
(6)讀取測(cè)量值的低8 位(LSB)。
不同寄存器地址的意義如表2所示。
表2 BMP085不同的寄存器
2.3 BMP085控制程序總結(jié)
從圖4與圖5可以清楚地看出MCU控制BMP085的方法,一是向固定的寄存器(0xF4)寫特定值(表1中的control register value),二是從特定的寄存器(表2中的寄存器地址)讀返回值。每次通訊時(shí)的Module address 都是一個(gè)固定的值[3],主要是為了符合))C 協(xié)議。
(1)向固定的寄存器(0xF4)寫特定值(表1中的control register value)其實(shí)就是向0xF4 地址寫不同的值從而完成溫度測(cè)量或者不同的壓力精度的測(cè)量;
(2)從特定的寄存器(表2中的寄存器地址)讀返回值從E2PROM 讀取Calibration 所需要的數(shù)據(jù),共有11 個(gè)Word(雙字節(jié))。從 0xF6,0xF7,0xF8 讀取UT 或者UP,具體是UP 還是UT 要由前面進(jìn)行的操作決定(進(jìn)行了溫度轉(zhuǎn)換就存有溫度數(shù)據(jù),進(jìn)行了壓力轉(zhuǎn)換就存有壓力數(shù)據(jù))。
在常溫下,按照《數(shù)字壓力計(jì)檢定規(guī)程 JJG 875-2005》的規(guī)范要求,將自研氣壓傳感器與氣壓標(biāo)定裝置正確連接,確保正常無(wú)漏氣現(xiàn)象。在800~1 100 hPa量程范圍內(nèi),每隔50hPa為一個(gè)測(cè)試點(diǎn),共設(shè)7個(gè)測(cè)試點(diǎn),分別設(shè)定檢定裝置的氣壓為1100.00 hPa、1050.00 hPa、1000.00 hPa、950.00 hPa、900.00 hPa、850.00 hPa、800.00 hPa,使用降壓測(cè)量,記錄檢定裝置標(biāo)準(zhǔn)值與自研氣壓傳感器的測(cè)量值如表3所示。
表3 氣壓傳感器標(biāo)定數(shù)據(jù) hPa
通過(guò)上表可知,常溫下在量程內(nèi),傳感器的最小誤差為0.01 hPa,最大誤差為0.23 hPa,而芬蘭維薩拉公司的氣壓傳感器的精度在常溫下為0.35 hPa,通過(guò)表3可知自研氣壓傳感器的測(cè)量精度可以達(dá)到國(guó)外同類傳感器水平。如果由于焊接或安裝過(guò)程中造成的系統(tǒng)誤差,可通過(guò)試驗(yàn)進(jìn)行誤差分析[7],找出誤差數(shù)值,然后可以通過(guò)系統(tǒng)軟件進(jìn)行修正,最終達(dá)到設(shè)計(jì)精度要求。
文中設(shè)計(jì)的氣壓傳感器已經(jīng)在海上資料浮標(biāo)及近海船只上推廣使用,從應(yīng)用平臺(tái)發(fā)回的數(shù)據(jù)表明該傳感器的輸出數(shù)據(jù)準(zhǔn)確,傳感器工作穩(wěn)定、可靠。該傳感器目前只采用串口RS232方式輸出,但在很多工業(yè)場(chǎng)合、海洋船只、石油平臺(tái)等應(yīng)用場(chǎng)合需要更長(zhǎng)距離的信號(hào)傳輸[8],下一步可在電路設(shè)計(jì)上增加RS485信號(hào)輸出,這樣可提高信號(hào)傳輸?shù)目垢蓴_能力,增大該氣壓傳感器的應(yīng)用領(lǐng)域。
[1] 許靜,趙湛,劉泳宏.集成阻抗識(shí)別的介電泳芯片設(shè)計(jì)及其關(guān)鍵工藝.儀表技術(shù)與傳感器.2011(11):1-3.
[2] Bosch Sensotec.BMP085 Digital pressure sensor Data sheet,2009.
[3] 于麗娜,秦麗.C8051F單片機(jī)信號(hào)采集系統(tǒng).儀表技術(shù)與傳感器.2011(7):53-55.
[4] 新華龍電子有限公司.C8051F020/1/2/3混合信號(hào)ISP FLASH微控制器數(shù)據(jù)手冊(cè).Rev1.4 2005.2
[5] 唐麗麗,何剛,文小森.基于89C51的信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn).儀表技術(shù)與傳感器.2007(2):76-78.
[6] 童長(zhǎng)飛編著.C8051F系列單片機(jī)開(kāi)發(fā)與C語(yǔ)言編程.北京:北京航空航天大學(xué)出版社,2005.
[7] 周靜,田文鶴.壓力傳感器信號(hào)調(diào)理模塊的設(shè)計(jì)與實(shí)現(xiàn).儀表技術(shù)與傳感器.2011(1):11-13.
[8] 顧凱.壓力傳感器的數(shù)據(jù)采集與分析系統(tǒng) 工業(yè)計(jì)量.2010(4):33-35.
Design of Maritime Meteorological ObservationAtmospheric Pressure Sensor Based on BMP085 Module
GUO Fa-dong,LIU Shi-xuan,ZHENG Shan-shan,WANG Xiao-yan,LIU Ye,NI Wei,GUAN Wan-chun
(Shandong Provincial Key Laboratory of Ocean Enviromental Monitoring Technology,Institute of OceanographicInstrumention ;Shandong Academy of Sciences,Qingdao 266001,China)
The BMP085 module of Germany BOCH company is a high-precision,ultra-low-energy atmospheric pressure sensor module.We designed a new type of intelligent output pressure sensor based on this chip.The sensor used the mixed-signal system level chip-C8051F021 as the data processor.For the development of this new marine meteorological barometric pressure sensor,system hardware components and software design method were described in detail.Calibration test of the pressure sensor prototype shows that the error of the sensor is less than 0.3hPa,which has reached similar foreign sensors level.The sensor has low cost,high precision,good stability,low power consumption,easy installation and use,and other advantages,which can be widely applied to weather stations,marine meteorological instruments,large ocean data buoys and other places.
maritime meteorological; C8051F021; BMP085; I2C interface; pressure sensor; RS232
國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃)資助項(xiàng)目(2013BAB04B00)
2013-11-06 收修改稿日期:2014-11-05
TP212
B
1002-1841(2014)01-004-03
郭發(fā)東(1976— ),高級(jí)工程師,碩士,主要研究領(lǐng)域?yàn)楹Q髢x器儀表技術(shù)及其在工程應(yīng)用中的研究。 E-mail:bcd0812@126.com