压阻式气压传感器BM1383GLV的高度检测应用

2016-09-15 07:02:59
单片机与嵌入式系统应用 2016年8期
关键词:寄存器气压芯片

孙 彬

(上海交通大学 电子信息与电气工程学院,上海200030)



压阻式气压传感器BM1383GLV的高度检测应用

孙彬

(上海交通大学 电子信息与电气工程学院,上海200030)

随着国内移动消费类电子产品日益朝高端化方向发展,通过气压测量高度的功能逐渐吸引了人们的眼球。本文介绍了压阻式MEMS气压传感器芯片BM1383GLV的功能,并基于实际应用提出设计要点与技术瓶颈。该芯片适用于各类移动设备,并且具有高精度、低功耗、封装小等优点。

测量高度;气压传感器;BM1383GLV;高精度

引 言

随着移动设备技术日新月异的变化,各类传感器的应用已经日趋成为移动设备上的最大亮点。近年来,自从iPhone 6上搭载了气压传感器之后,国内各手机及平板厂家纷纷导入气压传感器,作为中高端移动设备的标配。目前国内手机龙头厂商华为发布的Mate8手机上就已经大批量成功采用了气压传感器。本文通过研究ROHM公司BM1383GLV气压传感器的工作原理,及其在应用设计中会遇到的各种问题,分析气压传感器在终端产品上的定位,供相关开发者参考。

1 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内部结构图

2 系统硬件设计

本文采用ODROID-Q开发板,其使用的硬件开发平台为三星公司的Exynos4412,Exynos4412采用ARM Cortex-A9架构,是三星推出的第一款针对智能手机应用的四核处理器。它具有丰富的外围接口,包括8组I2C总线接口和3组SPI接口。

BM1383GLV通过SDA和SCL两路连接主机的I2C总线控制器,INT为中断引脚,由于气压传感器在通常的应用场景下不需要使用中断模式,因此INT可以作悬空处理。

3 驱动软件设计

本文所采用的系统环境为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位的转换。如此,一次完整的数据测量、读取并上报的过程就完成了。

4 应用程序设计

BM1383GLV在软件驱动层的输出值仅为单纯的气压值,上层应用程序在得到底层上报的气压值之后,一个最直接的应用就是通过环境气压值来换算得到高度。高度计算公式如下:

其中P是从芯片读取到的气压值,P0是测量地点在海平面处的气压大小。

但是,这个方法也存在着一定的局限性。由于气压的大小不光受到海拔高度这一项因素影响,许多其他外界条件也会对气压造成改变,其中最主要的一项就是气压的日变化和年变化。一年之中,夏天比冬天的气压要低;一天之中,气压的变化幅度会达到1~4 hPa,并随着纬度的增高而减小,而BM1383GLV本身的测量相对精度仅仅为±0.12 hPa左右,此外气压大小还与气候条件相关。

因而,不同的地点,不同的时刻,上式中P0这项基准值是会发生很大变化的,所以通过上式计算出的绝对海拔高度,其误差是相当大的,远远超过了器件本身的测量精度,因此实际意义并不大。

由此,一个适宜的应用便是室内导航。众所周知,在室外环境下通常可由GPS卫星信号进行准确定位,而在封闭的高楼或室内GPS信号不良的环境下,通过气压值来计算高度就成为一个有效的办法。同时,由于在室内不容易受到外界气候条件的影响,例如通过从底楼爬到顶楼之后两处的气压差来计算楼层高度,或进一步通过知道建筑的层高来计算总共爬了几层楼,并且这种应用本身的特点就是短期内的气压变化,因此可以忽略气压的日变化与年变化的影响,使测量精度大大增加。

5 产线校准

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

猜你喜欢
寄存器气压芯片
看不见的气压
幼儿画刊(2021年5期)2021-12-02 04:24:04
Lite寄存器模型的设计与实现
计算机应用(2020年5期)2020-06-07 07:06:44
压力容器气压端盖注射模设计
模具制造(2019年4期)2019-06-24 03:36:46
分簇结构向量寄存器分配策略研究*
芯片测试
多通道采样芯片ADS8556在光伏并网中的应用
电渗—堆载联合气压劈烈的室内模型试验
STM32平台的MPL3115A2气压传感器的应用
74HC164芯片的应用
河南科技(2014年10期)2014-02-27 14:09:18
高速数模转换器AD9779/AD9788的应用