电子罗盘是一种重要的导航工具,可以实时提供移动物体的方向和姿势。随着半导体技术的进步和手机操作系统的发展,越来越多的智能手机集成了传感器,许多手机实现了电子罗盘的功能。基于电子罗盘的应用程序(如Android的Skymap)它也在各种软件平台上流行起来。
要实现电子罗盘功能,需要检测磁场的三轴磁力传感器和三轴加速度传感器。随着微机械技术的成熟,意大利半导体推出了集成三轴磁力计和三轴加速计的二合一传感器模块LSM303DLH,方便用户在短时间内设计低成本、高性能的电子罗盘。本文以LSM303DLH以设备的工作原理、技术参数和电子罗盘的实现为例。
如图1所示,地球磁场像条形磁体一样由磁南极指向磁北极。磁场垂直于当地水平面,平行于赤道磁场和当地水平面,因此向北半球磁场倾斜。用于测量磁感应强度的单位是Tesla或者Gauss(1Tesla=10000Gauss)。地磁场的强度通常为0.4-0.6 Gauss。需要注意的是,磁北极与地理上的北极并不重叠,通常有11度左右的夹角。
图1 地磁场分布图
地磁场是一个矢量。对于固定位置,该矢量可分解为两个与当地水平面平行的重量和垂直于当地水平面的重量。如果电子罗盘与当地水平面保持平行,则罗盘中磁力计的三个轴对应于这三个重量,如图2所示。
图2 地磁场矢量分解图
事实上,对于水平方向的两个重量,它们的矢量总是指向磁北。罗盘中的航向(Azimuth)这是当前方向和磁北之间的夹角。由于罗盘保持水平,只需使用磁力计水平方向两轴(通常是X轴和Y轴)的检测数据即可计算出方向角。当罗盘水平旋转时,方向角为0°- 360°之间变化。
2.1 磁力计的工作原理
在LSM303DLH中磁力计采用各向异性磁电阻(Anisotropic Magneto-Resistance)检测空间中磁感应强度的材料。
这种具有晶体结构的合金材料对外部磁场非常敏感,磁场强度的变化会导致AMR自身电阻值发生变化。
在制造过程中,将一个强磁场加在AMR使其在某个方向上磁化,并建立一个垂直于主磁域的主磁域AMR敏感轴,如图3所示。以线性的方式改变测量结果,AMR材料上的金属导线为45o角倾斜排列,电流从这些电线上流过,如图4所示。由最初的强磁场组成AMR建立在材料上的主磁域和电流方向是45o的夹角。
图3 AMR材料示意图
图4 45o角线
当有外部磁场时Ha时,AMR上磁域的方向会改变,而不是初始方向,所以磁场方向和电流的夹角θ也会发生变化,如图5所示。AMR材料来说,θ会引起角的变化AMR如图6所示,自身阻值的变化是线性的。
图5 磁场方向和电流方向的夹角
图6 θ-R特性曲线
ST使用惠斯通电桥进行检测AMR如图7所示。R1/R2/R3/R初始状态相同AMR电阻,但是R1/R2和R3/R具有相反的磁化特性。当检测到外部磁场时,R1/R2阻值增加?R而R3/R4减少?R。这样,在没有外部磁场的情况下,电桥的输出为零;当有外部磁场时,电桥的输出为小电压?V。
图7 惠斯通电桥
当R1=R2=R3=R4=R,电阻在外部磁场的作用下变化为R当电桥输出时,V正比于?R。这就是磁力计的工作原理。
2.2 置位/复位(Set/Reset)电路
受外部环境的影响,LSM303DLH中AMR上的主磁域方向不会永久保持不变。LSM303DLH内置位置/复位电路,通过内部金属线圈周期性产生电流脉冲,恢复初始主磁域,如图8所示。需要注意的是,位置脉冲的效果与复位脉冲相同,但方向不同。
图8 LSM303DLH位置/复位电路
1)即使在干扰消失后遇到外部强磁场的干扰LSM303DLH用户无需再次校正即可恢复正常工作。
2)即使长时间工作,也能保持初始磁化方向,实现精确测量,测量精度不会受到芯片温度变化或内部噪声增加的影响。
3)消除温漂引起的桥梁偏差。
2.3 LSM303DLH的性能参数
LSM303DLH采用数字接口集成三轴磁力计和三轴加速计。磁力计的测量范围从1开始.3 Gauss到8.1 Gauss共7档,用户可自由选择。并在20 Gauss在磁场环境下,可以保持相同的测量效果和敏感性。
它的分辨率可以达到8 mGauss内部使用12位ADC,确保磁场强度的准确测量。与采用霍尔效应原理的磁力计相比,LSM303DLH功耗低,精度高,线性好,不需要温度补偿。
LSM303DLH具有自动检测功能。当控制寄存器A位置时,芯片内的自测电路会产生一个激励信号,并输出约地磁场大小。用户可以通过输出数据来判断芯片是否正常工作。
除磁力计外,作为高集成度的传感器模块LSM303DLH还集成了高性能加速计。加速计也使用12位ADC,可以达到1mg测量精度。加速器可以在低功耗模式下运行,具有睡眠/唤醒功能,可以大大降低功耗。同时,加速器还集成了六轴方向检测,两个可编程中断接口。
传统的电子罗盘系统至少需要一个三轴磁力计来测量磁场数据,一个三轴加速计来测量罗盘倾角,并通过信号组织和数据采集部分将三维空间中的重力分布和磁场数据传输给处理器。处理器通过磁场数据计算方位角,并通过重力数据进行倾斜补偿。处理后的方位角不受电子罗盘空间姿态的影响,如图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。
电子指南针主要通过感知地球磁场的存在来计算磁北极的方向。然而,地球磁场通常只有微弱的0.5高斯,普通手机喇叭距离2厘米时仍有约4高斯的磁场,手机电机距离2厘米时有约6高斯的磁场,使电子设备表面地球磁场的测量容易受到电子设备本身的干扰。
磁场干扰是指磁传感器放置位置上的地球磁场偏差,因为有磁性物质或能影响局部磁场强度的物质。如图11所示,磁传感器XYZ 在坐标系中,绿色圆表示地球磁场矢量绕z轴圆周旋转XY在没有任何外部磁场干扰的情况下,平面中的投影轨迹将是一个标准O以圆为中心。当有外部磁场干扰时,测量磁场强度矢量α将是地球磁场β与干扰磁场γ的矢量和。记作:
图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所示。
图14 设备的空中8字校准示意图
4.2 十面校准方法
同样,通过以下10面校准方法,也可以达到校准的目的。
图15 10面交准法步骤
如图16所示,经过10面校准方法之后,同样可以采样到以上所述球体表面的部分轨迹,从而推导出球心的位置,即固定磁场干扰矢量的大小及方向。
图16 10面校准后的空间轨迹
经过校准后电子指南针在水平面上已经可以正常使用了。但是更多的时候手机并不是保持水平的,通常它和水平面都有一个夹角。这个夹角会影响航向角的精度,需要通过加速度传感器进行倾斜补偿。
对于一个物体在空中的姿态,导航系统里早已有定义,如图17所示,Android中也采用了这个定义。Pitch(Φ)定义为x轴和水平面的夹角,图示方向为正方向;Roll(θ)定义为y轴和水平面的夹角,图示方向为正方向。由Pitch角引起的航向角的误差如图18所示。可以看出,在x轴方向10度的倾斜角就可以引起航向角最大7-8度的误差。
图17 Pitch角和Roll角定义
图18 Pitch角引起的航向角误差
手机在空中的倾斜姿态如图19所示,通过3轴加速度传感器检测出三个轴上重力加速度的分量,再通过式2可以计算出Pitch和Roll。
图19 手机在空中的倾斜姿态
式3可以将磁力计测得的三轴数据(XM,YM ,ZM)通过Pitch和Roll转化为式1中计算航向角需要的Hy和Hx。之后再利用式1计算出航向角。
在当前流行的android 手机中,很多都配备有指南针的功能。为了实现这一功能,只需要配备有ST提供的二合一传感模块LSM303DLH,ST 提供整套解决方案。Android中的软件实现可以由以下框图表示:
BSP Reference
Linux Kernel Driver (LSM303DLH_ACC + LSM303DLH_MAG)
HAL Library(Sensors_lsm303dlh + Liblsm303DLH) for sensors.default.so
经过library 的计算,上层的应用可以很轻松的运用由Android定义由Library提供的航偏角信息进行应用程序的编写。