电子罗盘是一种重要的导航对象,能及时供给移动物体的航向和姿势。跟着半导体工艺的进步和手机操作体系的成长,集成了越来越多传感器的智妙手机变得功能强大年夜,很多手机上都实现了电子罗盘的功能。而基于电子罗盘的应用(如Android的Skymap)在各个软件平台上也风行起来。
沃森WSEN
要实现电子罗盘功能,须要一个检测磁场的三轴磁力传感器和一个三轴加快度传感器。跟着微机械工艺的成熟,意法半导体推出将三轴磁力计和三轴加快计集成在一个封装里的二合一传感器模块LSM303DLH,便应用户在短时光内设计出成本低、机能高的电子罗盘。本文以LSM303DLH为例评论辩论该器件的工作道理、技巧参数和电子罗盘的实现办法。
1.地磁场和航向角的背景常识
如图1所示,地球的磁场象一个条形磁体一样由磁南极指向磁北极。在磁顶点处磁场和本地的程度面垂直,在赤道磁场和本地的程度面平行,所以在北半球磁场偏向倾斜指向地面。用来衡量磁感应强度大年夜小的单位是Tesla或者Gauss(1Tesla=10000Gauss)。跟着地舆地位的不合,平日地磁场的强度是0.4-0.6 Gauss。须要留意的是,磁北极和地舆上的北极并不重合,平日他们之间有11度阁下的夹角。
图1 地磁场分布图地磁场是一个矢量,对于一个固定的地点来说,这个矢量可以被分化为两个与本地程度面平行的分量和一个与本地程度面垂直的分量。如不雅保持电子罗盘和本地的程度面平行,那么罗盘中磁力计的三个轴就和这三个分量对应起来,如图2所示。
2.ST集成磁力计和加快计的传感器模块LSM303DLH
2.1 磁力计工作道理
在LSM303DLH中磁力计采取各向异性磁致电阻(Anisotropic Magneto-Resistance)材料来检测空间中磁感应强度的大年夜小。这种具有晶体构造的合金材料对外界的磁场很敏感,磁场的强弱变更会导致AMR自身电阻值产生变更。
在制造过程中,将一个强磁场加在AMR上使其在某一偏向上磁化,建立起一个主磁域,与主磁域垂直的轴被称为该AMR的敏感轴,如图3所示。为了使测量结不雅以线性的方法变更,AMR材料上的金属导线呈45º角倾斜分列,电流大年夜这些导线上流过,如图4所示。由初始的强磁场在AMR材料上建立起来的主磁域和电流的偏向有45º的夹角。
当有外界磁场Ha时,AMR山雠域偏向就会产生变更而不再是初始的偏向了,那么磁场偏向和电流的夹角θ也会产生变更,如图5所示。对于AMR材料来说,θ角的变更会引起AMR自身阻值的变更,并且呈线性关系,如图6所示。
ST应用惠斯通电桥检测AMR阻值的变更,如图7所示。R1/R2/R3/R4是初始状况雷同的AMR电阻,然则R1/R2和R3/R4具有相反的磁化特点。当检测到外界磁场的时刻,R1/R2阻值袈漩加∆R而R3/R4削减∆R。如许在没有外界磁场的情况下,电桥的输出为零;而在有外界磁场时电桥的输出为一个渺小的电压∆V。
2.3 LSM303DLH的机能参数
图7 惠斯通电桥
当R1=R2=R3=R4=R,在外界磁场的感化下电阻变更为∆R时,电桥输出∆V正比于∆R。这就是磁力计的工作道理。
2.2 置位/复位(Set/Reset)电路
因为受到外界情况的影响,LSM303DLH中AMR上的主磁域偏向不会永远保持不变。LSM303DLH内置有置位/复位电路,经由过程内部的金属线圈周期性的产生电流脉冲,恢复初始的主磁域,如图8所示。须要留意的是,置位脉冲和复位脉冲产生的效不雅是一样的,只是偏向不合罢了。
图8 LSM303DLH置位/复位电路
置位/复位电路给LSM303DLH带来很多长处:
1)即使碰到外界强磁场的干扰,在干扰消掉后LSM303DLH也能恢复正常工作而不须要用户再次进行校订。
3)清除因为温漂引起的电桥误差。
LSM303DLH集成三轴磁力计和三轴加快计,采取数字接口。磁力计的测量范围大年夜1.3 Gauss到8.1 Gauss共分7档,用户可以自由选择。并且在20 Gauss以内的磁场情况下都可以或许保持一致的测量效不雅和雷同的敏感度。它的分辨率可以达到8 mGauss并且内部采取12位ADC,以包管对磁场强度的精确测量。和采取霍尔效应道理的磁力计比拟,LSM303DLH的功耗低,精度高,线性度好,并且不须要温度补偿。
LSM303DLH具有主动检测功能。当控制存放器A被置位时,芯片内部的自测电路会产生一个约为地磁场大年夜小的鼓励旌旗灯号并输出。用户可以经由过程输出数据来断定芯片是否正常工作。
作为高集成度的传感器模组,除了磁力计以外LSM303DLH还集成一颗高机能的加快计。加快计同样采取12位ADC,可以达到1mg的测量精度。加快计可运行于低功耗模式,并有睡眠/唤醒功能,可大年夜大年夜降低功耗。同时,加快计还集成了6轴偏向检测,两路可编程中断接口。
3. ST电子罗盘筹划介绍
一个传统的电子罗盘体系至少须要一个三轴的磁力计以测量磁场数据,一个三轴加快计以测量罗盘倾角,经由过程旌旗灯号层次和数据采集部分将三维空间中的重力分布和磁场数据传送给处理器。处理器经由过程磁场数据计算出方位角,经由过程重力数据进行倾斜补偿。如许处理后输出的方位角不受电子罗盘空间姿势的影响,如图9所示。
图9 电子罗盘构造示意图
LSM303DLH将上述的加快计、磁力计、A/D转化器及旌旗灯号层次电路集成在一路,仍然经由过程I2C总线和处理器通信。如许只用一颗芯片就实现了6轴的数据检测和输出,降低了客户的设计难度,减小了PCB板的┞芳用面积,降低了器件成本。
LSM303DLH的典范应用如图10所示。它须要的周边器件很少,连接也很简单,磁力计和加快计各自有一条I2C总线和处理器通信。如不雅客户的I/O接口电平为1.8V,Vdd_dig_M、Vdd_IO_A和Vdd_I2C_Bus均可接1.8V供电,Vdd应用2.5V以上供电即可;如不雅客户接口电平为2.6V,除了Vdd_dig_M请求1.8V以外,其他皆可以用2.6V。在上文中提到,LSM303DLH须要置位/复位电路以保持AMR的主磁域。C1和C2为置位/复位电路的外部匹配电容,因为对置位脉冲和复位脉冲有必定的请求,建议用户不要随便修改C1和C2的大年夜小。
图10 LSM303DLH典范应用电路图
对于便携式设备而言,器件的功耗异常重要,直接影响其待机的时光。LSM303DLH可以分别对磁力计和加快计的供电模式进行控制,使其进入睡眠或低功耗模式。并且用户可自行调剂磁力计和加快计的数据更新频率,声调剂功耗程度。在磁力计数据更新频率为7.5Hz、加快计数据更新频率为50Hz时,消费电流典范值为0.83mA。在待机模式时,消费电流小于3uA。
4. 铁磁场干扰及校准
电子指南针主如果经由过程感知地球磁场的存在来计算磁北极的偏向。然而因为地球磁场在一般情况下只有微弱的0.5高斯,而一个通俗的手机喇叭当相距2厘米时仍会有大年夜约4高斯的磁场,一个手机马达在相距2厘米时会有大年夜约6高斯的磁场,这一特点使得针对电子设备外面地球磁场的测量很轻易受到电子设备本身的干扰。
磁场干扰是指因为具有磁性物质或者可以影响局部磁场强度的物质存在,使得磁传感器所放置地位上的地球磁场产生了误差。如图11所示,在磁传感器的XYZ 坐标系中,绿色的圆表示地球磁场矢量绕z轴圆周迁移转变过程中在XY平面内的投影轨迹,再没有外界任何磁场干扰的情况下,此轨迹将会是一个标准的以O(0,0)为中间的圆。当存在外界磁场干扰的情况时,测量获得的磁场强度矢量α将为该点地球磁场β与干扰磁场γ的矢量和。记作:
2)即使长时光工作也能保持初始磁化偏向实现精确测量,不会因为芯片温度变更或内部噪音增大年夜而影响测量精度。
图11 磁传感器XY坐标以及磁力线投影轨迹
一般可以认为,干扰磁场γ在该点可以视为一个恒定的矢量。有很多身分可以造成磁场的干扰,如摆放在电路板上的马达和喇叭,还有含有铁镍钴等金属的材料如樊篱罩,螺丝,电阻, LCD背板以及外壳等等。同样根据安培定律有电流畅过的导线也会产生磁场,如图12。
图12 电流对磁场产生的影响
为了校准这些来自电路板的磁场干扰,重要的工作就是经由过程计算将γ求出。
4.1 平面校准办法
针对XY轴的校准,将配备有磁传感器的设备在XY平面内自转,如图11,等价于将地球磁场矢量绕着过点O(γx,γy)垂直于XY平面的法线扭转, 而红色的圆为磁场矢量在扭转过程中在XY平面内投影的轨迹。这可以找到圆心的地位为((Xmax + Xmin)/2, (Ymax + Ymin)/2). 同样将设备在XZ平面内扭转可以获得地球磁场在XZ平面上的轨迹圆,这可以求出三维空间中的磁场干扰矢量γ(γx, γy, γz).
4.2 立体8字校准办法
一般情况下,当带有传感器的设备在空中付啦毛向扭转时,测量值构成的空间几何构造实际上是一个圆球,所有的采样点都落在这个球的外面上,如图13所示,这一点同两维平面内投影获得的圆类似。
图13 地球磁场空间扭转后在传感器空间坐标内获得球体
这种情况下,可以经由过程足够的样本点求出圆心O(γx, γy, γz), 即固定磁场干扰矢量的大年夜小及偏向。公式如下:
8字校准法请求用户应用须要校准的设备在空中做8字晃荡,原则上尽量多的让设备法线偏向指向空间的所有8个象限,如图14所示。
4.2 十面校准办法
同样,经由过程以下10面校准办法,也可以达到校准的目标。
如图16所示,经由10面校准办法之后,同样可以采样到以上所述球体外面的部分轨迹,大年夜而推导出球心的地位,即固定磁场干扰矢量的大年夜小及偏向。
图16 10面校准后的空间轨迹
5.倾斜补偿及航偏角计算
经由校准后电子指南针在程度面上已经可以正常应用了。然则更多的时刻手机并不是保持程度的,平日它和程度面都有一个夹角。这个夹角会影响航向角的精度,须要经由过程加快度传感器进行倾斜补偿。
对于一个物体在空中的姿势,导航体系里早已有定义,如图17所示,Android中也采取了这个定义。Pitch(Φ)定义为x轴和程度面的夹角,图示偏向为正偏向;Roll(θ)定义为y轴和程度面的夹角,图示偏向为正偏向。由Pitch角引起的航向角的误差如图18所示。可以看出,在x轴偏向10度的倾斜角就可以引起航向角最大年夜7-8度的误差。
图17 Pitch角和Roll角定义
•HAL Library(Sensors_lsm303dlh + Liblsm303DLH) for sensors.default.so
图18 Pitch角引起的航向角误差
手机在空中的倾斜姿势如图19所示,经由过程3轴加快度传感器检测出三个轴上重力加快度的分量,再经由过程式2可以计算出Pitch和Roll。
图19 手机在空中的倾斜姿势
6.Android平台指南针的实现
在当前风行的android 手机中,很多都配备有指南针的功能。为了实现这一功能,只须要配备有ST供给的二合一传感模块LSM303DLH,ST 供给整套解决筹划。Android中的软件实现可以由以下框图表示:
个中包含:
图2 地磁场矢量分化示意图实际上对程度偏向的两个分量来说,他们的矢量和老是指向磁北的。罗盘中的航向角(Azimuth)就是当前偏向和磁北的夹角。因为罗盘保持程度,只须要用磁力计程度偏向两轴(平日为X轴和Y轴)的检测数据就可以用式1计算出航向角。当罗盘程度扭转的时刻,航向角在0º- 360º之间变更。
•BSP Reference
•Linux Kernel Driver (LSM303DLH_ACC + LSM303DLH_MAG)
经由library 的计算,上层的应用可以很轻松的应用由Android定义由Library供给的航偏角信息进行应用法度榜样的编写。(end)