孫 彬
(上海交通大學 電子信息與電氣工程學院,上海200030)
?
壓阻式氣壓傳感器BM1383GLV的高度檢測應用
孫彬
(上海交通大學 電子信息與電氣工程學院,上海200030)
隨著國內移動消費類電子產品日益朝高端化方向發展,通過氣壓測量高度的功能逐漸吸引了人們的眼球。本文介紹了壓阻式MEMS氣壓傳感器芯片BM1383GLV的功能,并基于實際應用提出設計要點與技術瓶頸。該芯片適用于各類移動設備,并且具有高精度、低功耗、封裝小等優點。
測量高度;氣壓傳感器;BM1383GLV;高精度
隨著移動設備技術日新月異的變化,各類傳感器的應用已經日趨成為移動設備上的最大亮點。近年來,自從iPhone 6上搭載了氣壓傳感器之后,國內各手機及平板廠家紛紛導入氣壓傳感器,作為中高端移動設備的標配。目前國內手機龍頭廠商華為發布的Mate8手機上就已經大批量成功采用了氣壓傳感器。本文通過研究ROHM公司BM1383GLV氣壓傳感器的工作原理,及其在應用設計中會遇到的各種問題,分析氣壓傳感器在終端產品上的定位,供相關開發者參考。
BM1383GLV是采用MEMS結構的壓阻式氣壓傳感器,內置一顆氣壓傳感器和一顆溫度傳感器,溫度傳感器的主要作用是在不同的溫度環境下對MEMS結構本身的測量誤差做補償,溫度補償的算法在IC出廠時一次性燒寫到內置的存儲器中,用戶通過芯片讀到的氣壓值即是經過補償的數據。此外,芯片內置一顆22位的ADC,其中包括11位整數和11位小數,氣壓測量范圍是300~1100 hPa,分辨率可達到約0.000 5 hPa。
BM1383GLV工作電壓范圍為1.7~3.6 V,滿足一般的移動設備供電電壓要求;在工作時電流消耗約為650 μA,在待機模式下會下降到1 μA左右。該芯片通過I2C總線協議與主機端通信,最高支持400 kHz的時鐘頻率,對外圍器件的要求不多,中斷引腳內部可以配置成上拉模式,所以外部不需要做上拉處理。
BM1383GLV的結構由3部分組成:打開最外層的金屬蓋,里面是MEMS傳感器和LSI,分別通過金屬飛線連接到最底層的基板上。MEMS結構其實是一整塊內部帶空腔的硅,空腔內近似于真空狀態,空腔上表面由一層硅膜密封。整塊硅膜就相當于一個電橋,在其中一組對角線上接入電源,來檢測另一組對角線間的電壓,當外界氣壓發生變化時,硅膜發生形變導致電橋失去平衡,則可以得到與外界氣壓成正比的輸出電壓,以此來計算外界氣壓的大小。芯片的內部結構如圖1所示。MEMS部分和LSI分別通過金屬飛線與底部基板相連接,外部加上金屬蓋封裝,金屬蓋上有一處氣孔,通過此孔使內外大氣流通,氣孔的直徑大小為0.3 mm左右。

圖1 BM1383GLV內部結構圖
本文采用ODROID-Q開發板,其使用的硬件開發平臺為三星公司的Exynos4412,Exynos4412采用ARM Cortex-A9架構,是三星推出的第一款針對智能手機應用的四核處理器。它具有豐富的外圍接口,包括8組I2C總線接口和3組SPI接口。
BM1383GLV通過SDA和SCL兩路連接主機的I2C總線控制器,INT為中斷引腳,由于氣壓傳感器在通常的應用場景下不需要使用中斷模式,因此INT可以作懸空處理。
本文所采用的系統環境為Android 4.1.2版本,使用Linux Kernel 3.0.51。在Android系統中,驅動程序負責的是最底層對于傳感器硬件設備的操作,利用某種通信協議(例如I2C協議)將配置命令寫入到芯片寄存器,并將傳感器輸出的數據讀取并且上報。BM1383GLV的驅動程序相對簡單,主要的有上電初始化子程序和定時器處理程序兩部分。
3.1上電初始化子程序
當BM1383GLV上電后,需先等待100 μs,然后對POWER_DOWN(0x12)寄存器寫入0x01來使芯片內部LDO上電。之后等待1 ms,再對RESET(0x13)寄存器寫入0x01,來使芯片內部測量控制模塊上電,復位所有寄存器的值。采用平臺自帶讀寫函數接口i2c_smbus_write_byte_data按單字節寫入。此時芯片初始化完成,進入Stand by工作待機狀態。
3.2定時器處理程序
芯片的工作模式有兩種,分為手動模式和自動模式。無論是哪種模式,都需要先對MODE_CONTROL(0x14)寄存器寫入相應不同的值來使芯片進入工作狀態。
在手動模式下,每次寫完MODE_CONTROL寄存器之后芯片只進行一次采樣,并自動回到Stand by狀態,如要繼續下一次采樣則需再對MODE_CONTROL寄存器執行寫入操作。而在自動模式下,每次寫完MODE_CONTROL寄存器之后芯片每隔一定的時間自動進行一次采樣,間隔時間可選定為50 ms、100 ms、200 ms三種模式。直到再次對MODE_CONTROL寄存器寫入停止采樣命令后,芯片才會回到Stand by狀態。本文采用200 ms自動模式,因此定時器的間隔等待時間也設為200ms。
在定時器處理函數中,每次讀取0x1C~0x1E三個8位寄存器,得到芯片輸出的氣壓原始數據,并經過移位合并成總共22位的整型值:
*val=((unsigned int)buf[0]<<16)|((unsigned int)buf[1]<<8)|(buf[2] & 0xFC);
其中,高11位代表整數部分,低11位代表小數部分,單位是hPa。由于底層不支持浮點數上報,因此氣壓值通過input函數上報到上層之后再做右移11位的轉換。如此,一次完整的數據測量、讀取并上報的過程就完成了。
BM1383GLV在軟件驅動層的輸出值僅為單純的氣壓值,上層應用程序在得到底層上報的氣壓值之后,一個最直接的應用就是通過環境氣壓值來換算得到高度。高度計算公式如下:

其中P是從芯片讀取到的氣壓值,P0是測量地點在海平面處的氣壓大小。
但是,這個方法也存在著一定的局限性。由于氣壓的大小不光受到海拔高度這一項因素影響,許多其他外界條件也會對氣壓造成改變,其中最主要的一項就是氣壓的日變化和年變化。一年之中,夏天比冬天的氣壓要低;一天之中,氣壓的變化幅度會達到1~4 hPa,并隨著緯度的增高而減小,而BM1383GLV本身的測量相對精度僅僅為±0.12 hPa左右,此外氣壓大小還與氣候條件相關。
因而,不同的地點,不同的時刻,上式中P0這項基準值是會發生很大變化的,所以通過上式計算出的絕對海拔高度,其誤差是相當大的,遠遠超過了器件本身的測量精度,因此實際意義并不大。
由此,一個適宜的應用便是室內導航。眾所周知,在室外環境下通常可由GPS衛星信號進行準確定位,而在封閉的高樓或室內GPS信號不良的環境下,通過氣壓值來計算高度就成為一個有效的辦法。同時,由于在室內不容易受到外界氣候條件的影響,例如通過從底樓爬到頂樓之后兩處的氣壓差來計算樓層高度,或進一步通過知道建筑的層高來計算總共爬了幾層樓,并且這種應用本身的特點就是短期內的氣壓變化,因此可以忽略氣壓的日變化與年變化的影響,使測量精度大大增加。
MEMS器件在裝配過程中會受到應力的作用,導致器件本身產生測量偏差,所以生產廠商在產線上將終端產品裝配成整機之后,需要對每臺整機單獨進行產線校準。校準流程如圖2所示。

圖2 氣壓傳感器標準流程
產線校準就是將整機與工業級標準氣壓計放在同一個穩定的環境下(環境溫度、氣壓穩定),并且保持在同一水平高度下,將從芯片中讀取到的氣壓值與從標準氣壓計中讀取到的氣壓值做比較,然后將得到的offset值保存下來。由于該芯片本身內部沒有多余的存儲器可供存儲,所以必須將此offset值存儲到系統上層之中,在校準完成之后,整機每次上電都從上層讀取該offset值,將其累加到從芯片讀到的氣壓值上面,使最終應用程序得到的氣壓值與標準氣壓計的測量值保持一致。
本文分析了BM1383GLV的內部結構及其測量氣壓的原理,并結合實際情況根據氣壓計算高度的方法以及影響氣壓變化的因素,提出理論計算方法所存在的局限性,討論真正可以通過氣壓傳感器在移動設備上實現的應用場景,給相關設計工作人員提供了可行性分析參考及技術儲備的資源。
[1] ROHM Semiconductor.PressureSensor Series Pressure Sensor IC BM1383GLV Datasheet.Ver.004,2015.
[2] 王俊彩,王福平,侯瑞峰,等.基于BMP085的一種便攜式海拔高度測量系統設計[J].傳感器與微系統,2011(12).
[3] 張金燕,劉高平,楊如祥.基于氣壓傳感器BMP085的高度測量系統實現[J].微型機與應用, 2014(6).
[4] 朱紅軍.基于氣壓傳感器的海拔高度測量系統設計[J].中國民航飛行學院學報,2015(4).
[5] 茹濱超,鮮斌,宋英麟,等.基于氣壓傳感器的無人機高度測量系統[J].中南大學學報:自然科學版,2013(S2).
孫彬,主要從事IC生產商的現場技術支持工作。
(責任編輯:楊迪娜收修改稿日期:2016-03-09)
Altitude Detection Application of Pressure Resistance Sensor BM1383GLV
Sun Bin
(Electronic Information and Electrical Engineering College,Shanghai Jiaotong University,Shanghai 200030,China)
With the development of the mobile consumer electronic products in high end direction,the function of measuring altitude by the pressure gradually attracts the people′s attention.In the paper,the function of piezo-resisitive MEMS pressure sensor IC BM1383GLV is introduced.The main design points and technical bottlenecks are proposed based on the actual application.The IC can be used for many kinds of mobile devices,which has the advantages of high accuracy,low power consumption and small package.
measuring altitude;pressure sensor;BM1383GLV;high accaracy
TN47
A