ST 集成傳感器方案實(shí)現(xiàn)電子羅盤(pán)功能
Abstract
As E-Compass is popular in smart phones, this article presents the sensor module LSM303DLH from STMicroelectronics which can achieve E-Compass function with high performance but low cost. The sensor module combines tri-axis accelerometer and tri-axis magnetometer in one package, user can get sensor data easily with I2C bus. Besides the working principle and parameters of the module are introduced, the article also provides ST E-Compass solution based on the sensor module both from hardware side and software side.
電子羅盤(pán)是一種重要的導(dǎo)航工具,能實(shí)時(shí)提供移動(dòng)物體的航向和姿態(tài)。隨著半導(dǎo)體工藝的進(jìn)步和手機(jī)操作系統(tǒng)的發(fā)展,集成了越來(lái)越多傳感器的智能手機(jī)變得功能強(qiáng)大,很多手機(jī)上都實(shí)現(xiàn)了電子羅盤(pán)的功能。而基于電子羅盤(pán)的應(yīng)用(如Android的Skymap)在各個(gè)軟件平臺(tái)上也流行起來(lái)。
要實(shí)現(xiàn)電子羅盤(pán)功能,需要一個(gè)檢測(cè)磁場(chǎng)的三軸磁力傳感器和一個(gè)三軸加速度傳感器。隨著微機(jī)械工藝的成熟,意法半導(dǎo)體推出將三軸磁力計(jì)和三軸加速計(jì)集成在一個(gè)封裝里的二合一傳感器模塊LSM303DLH,方便用戶(hù)在短時(shí)間內(nèi)設(shè)計(jì)出成本低、性能高的電子羅盤(pán)。本文以LSM303DLH為例討論該器件的工作原理、技術(shù)參數(shù)和電子羅盤(pán)的實(shí)現(xiàn)方法。
地磁場(chǎng)和航向角的背景知識(shí)如圖1所示,地球的磁場(chǎng)象一個(gè)條形磁體一樣由磁南極指向磁北極。在磁極點(diǎn)處磁場(chǎng)和當(dāng)?shù)氐乃矫娲怪?,在赤道磁?chǎng)和當(dāng)?shù)氐乃矫嫫叫?,所以在北半球磁?chǎng)方向傾斜指向地面。用來(lái)衡量磁感應(yīng)強(qiáng)度大小的單位是Tesla或者Gauss(1Tesla=10000Gauss)。隨著地理位置的不同,通常地磁場(chǎng)的強(qiáng)度是0.4-0.6 Gauss。需要注意的是,磁北極和地理上的北極并不重合,通常他們之間有11度左右的夾角。
圖1 地磁場(chǎng)分布圖
地磁場(chǎng)是一個(gè)矢量,對(duì)于一個(gè)固定的地點(diǎn)來(lái)說(shuō),這個(gè)矢量可以被分解為兩個(gè)與當(dāng)?shù)厮矫嫫叫械姆至亢鸵粋€(gè)與當(dāng)?shù)厮矫娲怪钡姆至?。如果保持電子羅盤(pán)和當(dāng)?shù)氐乃矫嫫叫?,那么羅盤(pán)中磁力計(jì)的三個(gè)軸就和這三個(gè)分量對(duì)應(yīng)起來(lái),如圖2所示。
圖2 地磁場(chǎng)矢量分解示意圖
實(shí)際上對(duì)水平方向的兩個(gè)分量來(lái)說(shuō),他們的矢量和總是指向磁北的。羅盤(pán)中的航向角(Azimuth)就是當(dāng)前方向和磁北的夾角。由于羅盤(pán)保持水平,只需要用磁力計(jì)水平方向兩軸(通常為X軸和Y軸)的檢測(cè)數(shù)據(jù)就可以用式1計(jì)算出航向角。當(dāng)羅盤(pán)水平旋轉(zhuǎn)的時(shí)候,航向角在0º- 360º之間變化。
式1
2.ST集成磁力計(jì)和加速計(jì)的傳感器模塊LSM303DLH
2.1 磁力計(jì)工作原理
在LSM303DLH中磁力計(jì)采用各向異性磁致電阻(Anisotropic Magneto-Resistance)材料來(lái)檢測(cè)空間中磁感應(yīng)強(qiáng)度的大小。這種具有晶體結(jié)構(gòu)的合金材料對(duì)外界的磁場(chǎng)很敏感,磁場(chǎng)的強(qiáng)弱變化會(huì)導(dǎo)致AMR自身電阻值發(fā)生變化。
在制造過(guò)程中,將一個(gè)強(qiáng)磁場(chǎng)加在AMR上使其在某一方向上磁化,建立起一個(gè)主磁域,與主磁域垂直的軸被稱(chēng)為該AMR的敏感軸,如圖3所示。為了使測(cè)量結(jié)果以線性的方式變化,AMR材料上的金屬導(dǎo)線呈45º角傾斜排列,電流從這些導(dǎo)線上流過(guò),如圖4所示。由初始的強(qiáng)磁場(chǎng)在AMR材料上建立起來(lái)的主磁域和電流的方向有45º的夾角。
當(dāng)有外界磁場(chǎng)Ha時(shí),AMR上主磁域方向就會(huì)發(fā)生變化而不再是初始的方向了,那么磁場(chǎng)方向和電流的夾角θ也會(huì)發(fā)生變化,如圖5所示。對(duì)于AMR材料來(lái)說(shuō),θ角的變化會(huì)引起AMR自身阻值的變化,并且呈線性關(guān)系,如圖6所示。
ST利用惠斯通電橋檢測(cè)AMR阻值的變化,如圖7所示。R1/R2/R3/R4是初始狀態(tài)相同的AMR電阻,但是R1/R2和R3/R4具有相反的磁化特性。當(dāng)檢測(cè)到外界磁場(chǎng)的時(shí)候,R1/R2阻值增加?R而R3/R4減少?R。這樣在沒(méi)有外界磁場(chǎng)的情況下,電橋的輸出為零;而在有外界磁場(chǎng)時(shí)電橋的輸出為一個(gè)微小的電壓?V。
圖7 惠斯通電橋
當(dāng)R1=R2=R3=R4=R,在外界磁場(chǎng)的作用下電阻變化為?R時(shí),電橋輸出?V正比于?R。這就是磁力計(jì)的工作原理。
2.2 置位/復(fù)位(Set/Reset)電路
由于受到外界環(huán)境的影響,LSM303DLH中AMR上的主磁域方向不會(huì)永久保持不變。LSM303DLH內(nèi)置有置位/復(fù)位電路,通過(guò)內(nèi)部的金屬線圈周期性的產(chǎn)生電流脈沖,恢復(fù)初始的主磁域,如圖8所示。需要注意的是,置位脈沖和復(fù)位脈沖產(chǎn)生的效果是一樣的,只是方向不同而已。
圖8 LSM303DLH置位/復(fù)位電路
置位/復(fù)位電路給LSM303DLH帶來(lái)很多優(yōu)點(diǎn):
即使遇到外界強(qiáng)磁場(chǎng)的干擾,在干擾消失后LSM303DLH也能恢復(fù)正常工作而不需要用戶(hù)再次進(jìn)行校正。即使長(zhǎng)時(shí)間工作也能保持初始磁化方向?qū)崿F(xiàn)精確測(cè)量,不會(huì)因?yàn)樾酒瑴囟茸兓騼?nèi)部噪音增大而影響測(cè)量精度。消除由于溫漂引起的電橋偏差。2.3 LSM303DLH的性能參數(shù)
LSM303DLH集成三軸磁力計(jì)和三軸加速計(jì),采用數(shù)字接口。磁力計(jì)的測(cè)量范圍從1.3 Gauss到8.1 Gauss共分7檔,用戶(hù)可以自由選擇。并且在20 Gauss以?xún)?nèi)的磁場(chǎng)環(huán)境下都能夠保持一致的測(cè)量效果和相同的敏感度。它的分辨率可以達(dá)到8 mGauss并且內(nèi)部采用12位ADC,以保證對(duì)磁場(chǎng)強(qiáng)度的精確測(cè)量。和采用霍爾效應(yīng)原理的磁力計(jì)相比,LSM303DLH的功耗低,精度高,線性度好,并且不需要溫度補(bǔ)償。
LSM303DLH具有自動(dòng)檢測(cè)功能。當(dāng)控制寄存器A被置位時(shí),芯片內(nèi)部的自測(cè)電路會(huì)產(chǎn)生一個(gè)約為地磁場(chǎng)大小的激勵(lì)信號(hào)并輸出。用戶(hù)可以通過(guò)輸出數(shù)據(jù)來(lái)判斷芯片是否正常工作。
作為高集成度的傳感器模組,除了磁力計(jì)以外LSM303DLH還集成一顆高性能的加速計(jì)。加速計(jì)同樣采用12位ADC,可以達(dá)到1mg的測(cè)量精度。加速計(jì)可運(yùn)行于低功耗模式,并有睡眠/喚醒功能,可大大降低功耗。同時(shí),加速計(jì)還集成了6軸方向檢測(cè),兩路可編程中斷接口。
3. ST電子羅盤(pán)方案介紹
一個(gè)傳統(tǒng)的電子羅盤(pán)系統(tǒng)至少需要一個(gè)三軸的磁力計(jì)以測(cè)量磁場(chǎng)數(shù)據(jù),一個(gè)三軸加速計(jì)以測(cè)量羅盤(pán)傾角,通過(guò)信號(hào)條理和數(shù)據(jù)采集部分將三維空間中的重力分布和磁場(chǎng)數(shù)據(jù)傳送給處理器。處理器通過(guò)磁場(chǎng)數(shù)據(jù)計(jì)算出方位角,通過(guò)重力數(shù)據(jù)進(jìn)行傾斜補(bǔ)償。這樣處理后輸出的方位角不受電子羅盤(pán)空間姿態(tài)的影響,如圖9所示。
圖9 電子羅盤(pán)結(jié)構(gòu)示意圖
LSM303DLH將上述的加速計(jì)、磁力計(jì)、A/D轉(zhuǎn)化器及信號(hào)條理電路集成在一起,仍然通過(guò)I2C總線和處理器通信。這樣只用一顆芯片就實(shí)現(xiàn)了6軸的數(shù)據(jù)檢測(cè)和輸出,降低了客戶(hù)的設(shè)計(jì)難度,減小了PCB板的占用面積,降低了器件成本。
LSM303DLH的典型應(yīng)用如圖10所示。它需要的周邊器件很少,連接也很簡(jiǎn)單,磁力計(jì)和加速計(jì)各自有一條I2C總線和處理器通信。如果客戶(hù)的I/O接口電平為1.8V,Vdd_dig_M、Vdd_IO_A和Vdd_I2C_Bus均可接1.8V供電,Vdd使用2.5V以上供電即可;如果客戶(hù)接口電平為2.6V,除了Vdd_dig_M要求1.8V以外,其他皆可以用2.6V。在上文中提到,LSM303DLH需要置位/復(fù)位電路以維持AMR的主磁域。C1和C2為置位/復(fù)位電路的外部匹配電容,由于對(duì)置位脈沖和復(fù)位脈沖有一定的要求,建議用戶(hù)不要隨意修改C1和C2的大小。
對(duì)于便攜式設(shè)備而言,器件的功耗非常重要,直接影響其待機(jī)的時(shí)間。LSM303DLH可以分別對(duì)磁力計(jì)和加速計(jì)的供電模式進(jìn)行控制,使其進(jìn)入睡眠或低功耗模式。并且用戶(hù)可自行調(diào)整磁力計(jì)和加速計(jì)的數(shù)據(jù)更新頻率,以調(diào)整功耗水平。在磁力計(jì)數(shù)據(jù)更新頻率為7.5Hz、加速計(jì)數(shù)據(jù)更新頻率為50Hz時(shí),消耗電流典型值為0.83mA。在待機(jī)模式時(shí),消耗電流小于3uA。
圖10 LSM303DLH典型應(yīng)用電路圖
4. 鐵磁場(chǎng)干擾及校準(zhǔn)
電子指南針主要是通過(guò)感知地球磁場(chǎng)的存在來(lái)計(jì)算磁北極的方向。然而由于地球磁場(chǎng)在一般情況下只有微弱的0.5高斯,而一個(gè)普通的手機(jī)喇叭當(dāng)相距2厘米時(shí)仍會(huì)有大約4高斯的磁場(chǎng),一個(gè)手機(jī)馬達(dá)在相距2厘米時(shí)會(huì)有大約6高斯的磁場(chǎng),這一特點(diǎn)使得針對(duì)電子設(shè)備表面地球磁場(chǎng)的測(cè)量很容易受到電子設(shè)備本身的干擾。
磁場(chǎng)干擾是指由于具有磁性物質(zhì)或者可以影響局部磁場(chǎng)強(qiáng)度的物質(zhì)存在,使得磁傳感器所放置位置上的地球磁場(chǎng)發(fā)生了偏差。如圖11所示,在磁傳感器的XYZ 坐標(biāo)系中,綠色的圓表示地球磁場(chǎng)矢量繞z軸圓周轉(zhuǎn)動(dòng)過(guò)程中在XY平面內(nèi)的投影軌跡,再?zèng)]有外界任何磁場(chǎng)干擾的情況下,此軌跡將會(huì)是一個(gè)標(biāo)準(zhǔn)的以O(shè)(0,0)為中心的圓。當(dāng)存在外界磁場(chǎng)干擾的情況時(shí),測(cè)量得到的磁場(chǎng)強(qiáng)度矢量α將為該點(diǎn)地球磁場(chǎng)β與干擾磁場(chǎng)γ的矢量和。記作:
圖11 磁傳感器XY坐標(biāo)以及磁力線投影軌跡
一般可以認(rèn)為,干擾磁場(chǎng)γ在該點(diǎn)可以視為一個(gè)恒定的矢量。有很多因素可以造成磁場(chǎng)的干擾,如擺放在電路板上的馬達(dá)和喇叭,還有含有鐵鎳鈷等金屬的材料如屏蔽罩,螺絲,電阻,LCD背板以及外殼等等。同樣根據(jù)安培定律有電流通過(guò)的導(dǎo)線也會(huì)產(chǎn)生磁場(chǎng),如圖12。
圖12 電流對(duì)磁場(chǎng)產(chǎn)生的影響
為了校準(zhǔn)這些來(lái)自電路板的磁場(chǎng)干擾,主要的工作就是通過(guò)計(jì)算將γ求出。
4.1 平面校準(zhǔn)方法
針對(duì)XY軸的校準(zhǔn),將配備有磁傳感器的設(shè)備在XY平面內(nèi)自轉(zhuǎn),如圖11,等價(jià)于將地球磁場(chǎng)矢量繞著過(guò)點(diǎn)O(γx,γy)垂直于XY平面的法線旋轉(zhuǎn),而紅色的圓為磁場(chǎng)矢量在旋轉(zhuǎn)過(guò)程中在XY平面內(nèi)投影的軌跡。這可以找到圓心的位置為((Xmax + Xmin)/2, (Ymax + Ymin)/2). 同樣將設(shè)備在XZ平面內(nèi)旋轉(zhuǎn)可以得到地球磁場(chǎng)在XZ平面上的軌跡圓,這可以求出三維空間中的磁場(chǎng)干擾矢量γ(γx,γy,γz).
4.2 立體8字校準(zhǔn)方法
一般情況下,當(dāng)帶有傳感器的設(shè)備在空中各個(gè)方向旋轉(zhuǎn)時(shí),測(cè)量值組成的空間幾何結(jié)構(gòu)實(shí)際上是一個(gè)圓球,所有的采樣點(diǎn)都落在這個(gè)球的表面上,如圖13所示,這一點(diǎn)同兩維平面內(nèi)投影得到的圓類(lèi)似。
圖13 地球磁場(chǎng)空間旋轉(zhuǎn)后在傳感器空間坐標(biāo)內(nèi)得到球體
這種情況下,可以通過(guò)足夠的樣本點(diǎn)求出圓心O(γx,γy,γz), 即固定磁場(chǎng)干擾矢量的大小及方向。公式如下:
8字校準(zhǔn)法要求用戶(hù)使用需要校準(zhǔn)的設(shè)備在空中做8字晃動(dòng),原則上盡量多的讓設(shè)備法線方向指向空間的所有8個(gè)象限,如圖14所示。
圖14 設(shè)備的空中8字校準(zhǔn)示意圖
4.2 十面校準(zhǔn)方法
同樣,通過(guò)以下10面校準(zhǔn)方法,也可以達(dá)到校準(zhǔn)的目的。
圖15 10面交準(zhǔn)法步驟
如圖16所示,經(jīng)過(guò)10面校準(zhǔn)方法之后,同樣可以采樣到以上所述球體表面的部分軌跡,從而推導(dǎo)出球心的位置,即固定磁場(chǎng)干擾矢量的大小及方向。
圖16 10面校準(zhǔn)后的空間軌跡
5.傾斜補(bǔ)償及航偏角計(jì)算
經(jīng)過(guò)校準(zhǔn)后電子指南針在水平面上已經(jīng)可以正常使用了。但是更多的時(shí)候手機(jī)并不是保持水平的,通常它和水平面都有一個(gè)夾角。這個(gè)夾角會(huì)影響航向角的精度,需要通過(guò)加速度傳感器進(jìn)行傾斜補(bǔ)償。
對(duì)于一個(gè)物體在空中的姿態(tài),導(dǎo)航系統(tǒng)里早已有定義,如圖17所示,Android中也采用了這個(gè)定義。Pitch(Φ)定義為x軸和水平面的夾角,圖示方向?yàn)檎较?;Roll(θ)定義為y軸和水平面的夾角,圖示方向?yàn)檎较?。由Pitch角引起的航向角的誤差如圖18所示。可以看出,在x軸方向10度的傾斜角就可以引起航向角最大7-8度的誤差。
手機(jī)在空中的傾斜姿態(tài)如圖19所示,通過(guò)3軸加速度傳感器檢測(cè)出三個(gè)軸上重力加速度的分量,再通過(guò)式2可以計(jì)算出Pitch和Roll。
圖19 手機(jī)在空中的傾斜姿態(tài)
式2
式3可以將磁力計(jì)測(cè)得的三軸數(shù)據(jù)(XM,YM,ZM)通過(guò)Pitch和Roll轉(zhuǎn)化為式1中計(jì)算航向角需要的Hy和Hx。之后再利用式1計(jì)算出航向角。
式3
6.Android平臺(tái)指南針的實(shí)現(xiàn)
在當(dāng)前流行的android 手機(jī)中,很多都配備有指南針的功能。為了實(shí)現(xiàn)這一功能,只需要配備有ST提供的二合一傳感模塊LSM303DLH,ST 提供整套解決方案。Android中的軟件實(shí)現(xiàn)可以由以下框圖表示:
其中包括:
BSP ReferenceLinux Kernel Driver (LSM303DLH_ACC + LSM303DLH_MAG)HAL Library(Sensors_lsm303dlh + Liblsm303DLH) for sensors.default.so經(jīng)過(guò)library 的計(jì)算,上層的應(yīng)用可以很輕松的運(yùn)用由Android定義由Library提供的航偏角信息進(jìn)行應(yīng)用程序的編寫(xiě)。