基于磁阻傳感器的低功耗方向指示系統(tǒng)
摘 要:為克服傳統(tǒng)指南針精度低,應(yīng)用領(lǐng)域窄的缺點(diǎn)。利用HMC1052 磁阻傳感器將地磁信號(hào)轉(zhuǎn)換為電壓輸出, INA332儀表運(yùn)放,AMS1117 直流穩(wěn)壓芯片及REF3212 參考電壓源作為信號(hào)調(diào)理和供電單元,由MSP430F147 單片機(jī)及其自帶A/ D轉(zhuǎn)換器,進(jìn)行信號(hào)處理和控制,制作得到準(zhǔn)確可靠,圖形化界面的低功耗方向指示系統(tǒng)。其內(nèi)部結(jié)構(gòu)固定,可以和其它電子系統(tǒng)形成接口,擁有低成本、低功耗、高精度的特點(diǎn),具有磁偏角校正功能。
指南針是一種重要的導(dǎo)航工具,在許多場(chǎng)合都具有應(yīng)用價(jià)值。為了使指南針的性能更加優(yōu)良,應(yīng)用領(lǐng)域更加廣泛,我們?cè)O(shè)計(jì)制作了基于磁阻傳感器的低功耗方向指示系統(tǒng)。在一些特殊地形條件下,GPS 將無法很好的工作,而此方向指示系統(tǒng)卻不會(huì)受到影響,尤其適用于某些只要求檢測(cè)方向而不需要檢測(cè)所在經(jīng)緯度的場(chǎng)合。
1 功能特色與指標(biāo)要求
1.1 總體功能及特色
方向指示系統(tǒng)主要有方向指示功能、圖形顯示功能、磁偏角校正功能和信息鎖定功能,并具有便攜式和低功耗的特點(diǎn)。其界面設(shè)置圖如圖1 所示。
方向指示系統(tǒng)應(yīng)用領(lǐng)域廣泛,可以應(yīng)用到如下領(lǐng)域:手持式方向指示系統(tǒng),車載導(dǎo)航與行程控制,移動(dòng)電話中的指南針,望遠(yuǎn)鏡定位,醫(yī)療器械中的方向指示,陸地和海洋導(dǎo)航系統(tǒng)。
圖1 界面設(shè)置圖
1.2 對(duì)設(shè)計(jì)的要求和指標(biāo):
為實(shí)現(xiàn)以上功能,系統(tǒng)需達(dá)到以下要求:
(1) 系統(tǒng)中的所有元件具有體積小,低功耗的特點(diǎn)。
(2) 系統(tǒng)中的所有元件都是標(biāo)準(zhǔn)的低成本元件;特別是微控制器,而且要有盡量多的在片外部模塊(如A/ D 和D/ A 轉(zhuǎn)換器) 。
(3) 由于傳感器的輸出信號(hào)很小,要求各元件抗噪聲能力強(qiáng),電源輸出紋波小。
(4) 可顯示以下信息:
—以數(shù)字和圖形顯示機(jī)首方向;—以最臨近方位文字顯示機(jī)首方向。
(5) 指南針的讀數(shù)參考地理上的北———正北根據(jù)HMC105X 數(shù)據(jù)手冊(cè),當(dāng)接上低噪聲放大器和12 到162bit (位) 模數(shù)轉(zhuǎn)換器(A/ D) 時(shí),使用HMC105X 系列傳感器可進(jìn)行極高精度的測(cè)量。測(cè)量誤差小于1°,電路部分功耗小于115 mW。
2 系統(tǒng)設(shè)計(jì):
2.1 系統(tǒng)整體設(shè)計(jì)
圖2 是方向指示系統(tǒng)的結(jié)構(gòu)框圖,這是其最小設(shè)置。傳感器單元是采集地球磁場(chǎng)的部分,將地球磁場(chǎng)信號(hào)轉(zhuǎn)換為電信號(hào);信號(hào)調(diào)整單元是對(duì)微弱的地磁電信號(hào)進(jìn)行放大濾波,并將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào);數(shù)據(jù)處理單元是將調(diào)整單元輸出的數(shù)字?jǐn)?shù)據(jù)進(jìn)行分析,確定所需要的方向與正北間的方向角,并對(duì)所在地的磁偏角進(jìn)行校正。液晶顯示單元是將方向角以圖形和數(shù)字兩種形式顯示出來。
在本系統(tǒng)中,傳感器單元由一塊兩軸磁阻傳感器HMC1052 構(gòu)成,信號(hào)調(diào)理單元為由儀表放大器組成的小信號(hào)放大電路。MSP430 單片機(jī)作為數(shù)據(jù)處理與信號(hào)控制核心,即數(shù)據(jù)處理與方向確定單元。
最終的顯示單元采用一塊128 ×64 圖形點(diǎn)陣LCD。
圖2 方向指示系統(tǒng)的結(jié)構(gòu)框圖
磁阻傳感器HMC1052 將地磁場(chǎng)信號(hào)轉(zhuǎn)化成電信號(hào),儀表放大器將該微弱信號(hào)放大,送入MSP430單片機(jī)的AD 模塊進(jìn)行模/ 數(shù)轉(zhuǎn)換,單片機(jī)將數(shù)據(jù)進(jìn)行分析計(jì)算確定方向角度,最后送到LCD12864 將其文字及圖形表達(dá)。圖3 是此系統(tǒng)的電路模塊圖。
圖3 電路模塊圖。
2.2 重難點(diǎn)分析
本設(shè)計(jì)的重要部分在于信號(hào)調(diào)理單元。由于磁阻傳感器的輸出信號(hào)極小,只有1 到2 個(gè)mV ,需放大電路對(duì)來自傳感器的信號(hào)進(jìn)行放大處理,為系統(tǒng)提供高精度的模擬輸入信號(hào),它所放大的信號(hào)對(duì)系統(tǒng)的精度起著關(guān)鍵作用。因此,我們?cè)诜糯笤鲆娴脑O(shè)定,參考電壓的選取,濾波設(shè)計(jì),供電的穩(wěn)定及電源紋波的處理等方面做了大量的工作,有效提高了方向指示系統(tǒng)的精度。我們將在后文中對(duì)這些工作加以詳細(xì)的闡述。
本設(shè)計(jì)的難點(diǎn)是磁阻傳感器的輸出信號(hào)太小,外界干擾、電源紋波、橋臂失衡等許多因素都會(huì)造成方向指示系統(tǒng)的精度降低,為此我們從理論分析論證和實(shí)際電路調(diào)試兩方面對(duì)系統(tǒng)的設(shè)計(jì)進(jìn)行優(yōu)化[。Ina332 儀表運(yùn)放的選用可以有效地抑制傳感器輸出的共模信號(hào),減小低溫飄和零飄干擾。其體積小、成本低、功耗小的特點(diǎn)也十分符合我們的設(shè)計(jì)初衷。硬件系統(tǒng)設(shè)計(jì)的難點(diǎn)就在于運(yùn)放電路的設(shè)計(jì),因微弱信號(hào)的放大是其主要功能。穩(wěn)定的電源系統(tǒng)是整體電路工作正常的基礎(chǔ),特別是模擬信號(hào)部分電源更是要求紋波頻率低、幅度小,以保證傳感器激勵(lì)和運(yùn)放工作的要求。
2.3 理論分析計(jì)算
2.3.1 磁阻傳感器
HMC1052磁阻傳感器由兩個(gè)AMR 傳感器(各向異性磁阻傳感器) 整合在一起,可以把任何水平方向的磁場(chǎng)分解為X , Y 兩個(gè)方向的矢量。其工作原理如圖4 所示 。
圖4 磁阻傳感器HMC1052 結(jié)構(gòu)圖。
對(duì)每個(gè)AMR 傳感器來說,其原理是當(dāng)各個(gè)磁阻傳感器感應(yīng)到的磁場(chǎng)發(fā)生變化時(shí),通用的電磁物質(zhì)會(huì)在外部磁場(chǎng)中改變它的電阻系數(shù),從而改變其阻值,因此阻抗式惠斯通電橋會(huì)輸出一定的電壓信號(hào)。每個(gè)電橋由四個(gè)阻值相同但磁性反相的磁阻元件組成。
雙軸羅盤系統(tǒng)的基本原理是使兩個(gè)傳感器電橋元件平行于地平面(垂直于重力場(chǎng)) ,并測(cè)量由此產(chǎn)生的X 和Y 的模擬輸出電壓。當(dāng)放大的傳感器電橋電壓幾乎同時(shí)轉(zhuǎn)換成(被測(cè)為) 等量數(shù)字信號(hào)時(shí),就可計(jì)算出Y/ X 的反正切, 從而得到與X 軸測(cè)量方向相關(guān)的方位信息。
AMR 傳感器的輸出電壓通過測(cè)量Out + 到Out - 之間的電壓得出,它是傳感器靈敏方程的函數(shù),即:
其中: S 為靈敏度(mV/ V Gauss) ;V b 為電橋輸入電壓(V) ;Bs 為電橋感應(yīng)強(qiáng)度( Gauss)。
在本系統(tǒng)中V b = 電源電壓= 313 V ,Bs = 地磁場(chǎng)強(qiáng)度= 0155 Gauss (公認(rèn)值) , HMC1052 的靈敏度S = 110 mV/ V Gauss , 可得到傳感器輸出電壓為:
2.3.2 放大倍數(shù)分析與計(jì)算
INA332 是Rail - Rail 輸出、低功率CMOS 儀表放大器,可單電源工作。INA332 系列產(chǎn)品提供微功率、低價(jià)格、低噪聲儀表放大器,其特性是低功率電池和多路技術(shù)應(yīng)用的最佳選擇。INA332 具有寬帶寬和高轉(zhuǎn)換速率,可理想地應(yīng)用于驅(qū)動(dòng)取樣模一數(shù)轉(zhuǎn)換器,也可當(dāng)作通用型儀表放大器使用。圖5 是其內(nèi)部結(jié)構(gòu)圖。
圖5 儀表放大器INA332 結(jié)構(gòu)圖。
由于噪聲的不可避免,必將造成理論分析與實(shí)際結(jié)果的一定誤差。為達(dá)到項(xiàng)目規(guī)劃的3°方向精度目標(biāo),這里將該指標(biāo)要求提高后帶入分析。分析如下:
將0°~90°范圍內(nèi)的電壓輸出N 等分,則當(dāng)輸出值有一個(gè)最小分度的變化時(shí),其造成的角度變化應(yīng)小于精度指標(biāo),這里設(shè)為1°。而該變化導(dǎo)致輸出角度變化最大應(yīng)在45°附近。經(jīng)分析N = 200 時(shí),角度最大變化量= arctan ( (100 + 1) / (100 - 1) ) - 45°= 015°,符合要求。
經(jīng)測(cè)試,MSP430 內(nèi)部的12ADC 可靠的位數(shù)約為10bit ,為獲得較大電壓檢測(cè)范圍,選擇內(nèi)部參考源215 V ,則可靠分辨力= 215 V/ 2^10 = 215 mV。
對(duì)于傳感器任一軸放大后的輸出,其變化范圍應(yīng)是2 N (0~180°) ,則得到放大后的電壓范圍是215 mV ·2 N = 1000 mV。
則由傳感器輸出11815 mv 得放大倍數(shù)為1000/ 11815 = 550。
因此合理的放大倍數(shù)范圍可以是400~600 倍。
2.3.3 噪聲分析與計(jì)算
噪聲來源 線性穩(wěn)壓電源。
噪聲形式 頻率為10 kHz 級(jí)的紋波。
噪聲參數(shù) 表1 為傳感器HMC1052 和儀表運(yùn)放INA332 的噪聲參數(shù)(單位:nV/ √Hz)。
表1 噪聲參數(shù)表
噪聲幅度 280 ×√10 ×500 (放大倍數(shù)) =10 mV 級(jí) 。
分析 噪聲具有一定幅度,對(duì)輸出造成影響,將在程序中采用軟件濾波來減小其影響。
2.4 硬件設(shè)計(jì)
2.4.1 電源模塊
本電路提供了兩種電源的輸入方式———電池供電(由圖中BA T 輸入) 和DC/ DC 適配器供電(由圖中J 1 輸入) ,通過波動(dòng)開關(guān)K1 選擇供電方式,K2 為總電源開關(guān)。電源穩(wěn)壓器件為線性穩(wěn)壓芯片AMS1117 ,輸出313 V ,作為硬件系統(tǒng)其他芯片與電路的電源。
2.4.2 傳感器及信號(hào)放大電路
該部分由傳感器HMC1052 、儀表運(yùn)放INA332和電壓參考源REF3212 組成,完成系統(tǒng)的模擬電路功能。其原理如圖6 所示。
圖6 放大電路模塊原理圖。
由21312 中運(yùn)放的放大倍數(shù)G = 5 + 5 (R2 / R1 )可得,兩軸信號(hào)的放大倍數(shù)分別是46214 與42*(詳見21312 放大倍數(shù)分析與計(jì)算)由于INA332 是串聯(lián)型儀表放大器,其內(nèi)部結(jié)構(gòu)決定信號(hào)正常放大要求共模信號(hào)與參考電壓有對(duì)應(yīng)的輸入關(guān)系,如圖7 所示。
圖7 共模輸入信號(hào)與參考電壓關(guān)系表。
必須依據(jù)參考電壓輸入一定的共模信號(hào)才能使INA332 正常工作。
電壓參考源REF3212 輸出1125 V。整個(gè)系統(tǒng)供電為313 V ,傳感器輸出的共模電壓為313/ 2 =1165 V ,符合上述要求,且AD 采用215 V 參考,如此可使輸入信號(hào)獲得最大動(dòng)態(tài)范圍。傳感器電路帶有置位/ 復(fù)位按鍵。按鍵產(chǎn)生高電流脈沖進(jìn)入置位/復(fù)位帶,可以校準(zhǔn)傳感器靈敏度。
2.4.3 MSP430 單片機(jī)及周邊電路
在MSP430 周邊電路中, Y1 用鐘表晶振321768 kHz 作為低速時(shí)鐘源,Y2 用8 MHz 作為高速時(shí)鐘源XT2CL K。P610/ A0 和P610/ A0 用其第二功能,與INA332 的輸出相連接,作為模數(shù)轉(zhuǎn)換信號(hào)輸入口。部分P2 和部分P3 口作為與LCD 的通信端口,另一部分P3 口和部分P4 口控制8 個(gè)L ED指示燈。P112 - P115 口作為按鍵中斷的申請(qǐng)出入端口 。
2.5 軟件設(shè)計(jì):
2.5.1 軟件設(shè)計(jì)特點(diǎn)與算法描述:
我們通過算法對(duì)數(shù)字量進(jìn)行處理,消除干擾,得到了誤差低于1°的方向角數(shù)值,以圖形和數(shù)字兩種形式顯示。磁偏角設(shè)置功能使方向角指示更加準(zhǔn)確。信息鎖定功能方便了用戶的使用。
(1) 數(shù)據(jù)的形式:
理論 以X , Y 為坐標(biāo)的點(diǎn)集是以原點(diǎn)為圓心的圓。
實(shí)際 以X , Y 為坐標(biāo)的點(diǎn)集基本形成一個(gè)原點(diǎn)偏離圓心的橢圓,原因是兩軸靈敏度及放大倍數(shù)不一致使他們變化范圍不同,而參考源與兩軸不同的失調(diào)電壓使橢圓圓心偏離原點(diǎn)。
(2) 算法工作。
①軟件濾波,減小噪聲造成的誤差②將兩軸數(shù)據(jù)線性變換為符合正切函數(shù)的點(diǎn),并作局部調(diào)整,最后確定角。
2.5.2 主程序
主程序完成對(duì)各模塊初始化程序的調(diào)用并進(jìn)入低功耗模式。其程序流程圖如圖8 所示。
圖8 主程序流程圖。
本系統(tǒng)使用默認(rèn)的時(shí)鐘設(shè)置,即DCO 振蕩器作為MCL K(供CPU 工作) 與L FXT1CL K 低頻時(shí)鐘源作為ACL K(供定時(shí)器,ADC 工作) ,為整個(gè)系統(tǒng)利用低功耗模式做準(zhǔn)備。在之后的工作中,各中斷源按需向CPU 申請(qǐng)退出低功耗模式,完成工作后,CPU 返回低功耗模式。
2.5.3 AD 轉(zhuǎn)換及方向確定
該部分程序完成運(yùn)放輸出信號(hào)的AD 轉(zhuǎn)換、所得數(shù)據(jù)的分析處理及調(diào)用LCD 顯示函數(shù)完成方向指示的刷新。
AD 模塊函數(shù)分ADC 初始化函數(shù)ADC12_ Init和AD 中斷函數(shù)ADC12_ISR(包括方向的決定) 。
本系統(tǒng)使用定時(shí)器A 觸發(fā)AD 模塊進(jìn)行轉(zhuǎn)換。
ADC 初始化函數(shù)主要完成了定時(shí)器A 及AD 模塊的初始化工作。定時(shí)器A 的初始化工作設(shè)置了其計(jì)數(shù)周期,即設(shè)定了AD 的工作周期。AD 模塊的初始化工作中選定了內(nèi)部215 V 參考源,并設(shè)置在完成一次序列轉(zhuǎn)換(兩個(gè)通道的轉(zhuǎn)換) 后申請(qǐng)AD 中斷。同時(shí),定時(shí)器A 與ADC 同時(shí)選擇ACL K 作為工作時(shí)鐘,準(zhǔn)備低功耗工作。
AD 中斷函數(shù)首先對(duì)信號(hào)進(jìn)行平均值濾波(對(duì)無規(guī)律的噪聲尤其實(shí)用) 。完成濾波后對(duì)數(shù)據(jù)進(jìn)行線性變換并局部修正,由angle = arctan ( Y_axis/ X_axis) 得到以傳感器為正方向的角度值。最后加以磁偏角和液晶與傳感器夾角補(bǔ)償,實(shí)際方向角度輸出到LCD 顯示。
2.5.4 按鍵處理及磁偏角設(shè)置
該部分程序完成按鍵操作以實(shí)現(xiàn)磁偏角設(shè)置與鎖定功能。該部分程序使用狀態(tài)變量KeyStatus 來對(duì)按鍵的不同功能組合進(jìn)行分類,分別有主界面狀態(tài)、磁偏角設(shè)置狀態(tài)及鎖定狀態(tài)。
按鍵初始化函數(shù)設(shè)置了初始按鍵功能為主界面狀態(tài)。按鍵中斷響應(yīng)函數(shù)首先對(duì)按鍵進(jìn)行消抖確認(rèn)(使用定時(shí)器B 完成其中的延時(shí)) ,然后調(diào)用按鍵功能執(zhí)行函數(shù),并由其返回參數(shù)改變當(dāng)前按鍵功能狀態(tài)。按鍵功能執(zhí)行函數(shù)分按鍵分狀態(tài)給予具體功能響應(yīng),具體功能見程序流程圖。其中磁偏角設(shè)置狀態(tài)下,確定功能還將把新的磁偏角寫入FLASH ;鎖定功能將關(guān)閉定時(shí)器A 和ADC ,即系統(tǒng)暫停信號(hào)轉(zhuǎn)換。
2.5.5 LCD 的驅(qū)動(dòng):
該部分為LCD 的定位、寫入、清除,及中英字符顯示等功能的驅(qū)動(dòng)程序,這里不做詳細(xì)展開。
2.5.6 LCD 的系統(tǒng)顯示:
該部分程序完成指南針的圖形顯示、方向的文字與數(shù)值顯示,以及磁偏角設(shè)置界面的顯示。
直接涉及界面顯示的函數(shù)有顯示指南針表盤函數(shù)LCD_disp_Panel ,指南針更新顯示函數(shù)LCD_up2date ,以及與磁偏角設(shè)置功能相關(guān)的顯示函數(shù)Enter_Cipianjiao 、Exit_Cipianjiao 、Change_Cipianjiao 。
3 系統(tǒng)測(cè)試
3.1 測(cè)試方案
關(guān)于方向精度的測(cè)量,我們將方向指示系統(tǒng)每轉(zhuǎn)10°做一次測(cè)量,將其理論值與實(shí)際測(cè)量值記錄,并加以比較。
關(guān)于電路功耗測(cè)量,我們?cè)陔娫摧斎攵舜?lián)一小電阻,通過測(cè)量電阻兩端電壓,經(jīng)公式計(jì)算得到電路輸入總電流,即可求得電路總功耗。在液晶鎖定模式(僅液晶工作,其余電路不工作) 下,用同樣的方法求得其總功率,兩者之差即為我們電路模塊(液晶不工作情況下) 的功耗。
3.2 測(cè)試數(shù)據(jù)與儀器
3.2.1 方向精度
實(shí)際測(cè)得值與理論值見表2 所示。
表2 數(shù)據(jù)測(cè)試表
31212 功耗:
經(jīng)過測(cè)量所得的電路模塊功耗見表3 。
表3 功耗測(cè)試表
4 設(shè)計(jì)總結(jié)
本設(shè)計(jì)通過合理選用元件及優(yōu)化的軟硬件設(shè)計(jì),使我們制作的方向指示系統(tǒng)具有顯著的低功耗、低成本、便攜式、高精度的特點(diǎn)。
在設(shè)計(jì)制作過程中,我們對(duì)電路的每一部分都進(jìn)行了嚴(yán)密的分析論證和參數(shù)計(jì)算,并經(jīng)過長時(shí)間的調(diào)試逐步優(yōu)化我們的設(shè)計(jì)。積累總結(jié)了許多硬件電路方面的經(jīng)驗(yàn)。一些算法的巧妙編寫也使我們的設(shè)計(jì)達(dá)到了事半功倍的效果。我們將繼續(xù)對(duì)此項(xiàng)目作進(jìn)一步的探索,使方向指示系統(tǒng)的功能更加完善,應(yīng)用領(lǐng)域更加廣泛。