引? 言
?????隨著定位導航技術的飛速發展和日臻成熟,電子羅盤在相關領域得到了越來越廣泛的應用。車載電子羅盤的功能是幫助用戶確定車輛行駛方向,精確顯示方位角度并提供正確的操作指示,因此導航的精確程度成為衡量系統性能優劣的重要指標。本文介紹的基于AMR磁阻傳感器和加速度傳感器ADXL202的電子羅盤,是捷聯式慣性導航系統中的一種。在電子羅盤系統中,單片機VRS51L3074完成對加速度傳感器輸出信號脈寬和周期的計數,獲得車輛瞬時加速度值,然后利用三角函數關系計算出當前位置相對于已知參考位置之間的橫滾和俯仰角度,進行姿態解算,得到車輛的前進方向和方位角。但是汽車電磁環境復雜,特別是汽車的震動和瞬時功率變化會對ADXL202輸出的占空比信號產生尖峰脈沖干擾,嚴重影響計數的精度。因此,抑制脈沖干擾在提高計數精度、增強系統性能方面顯得尤為重要。
1?ADXL202工作原理
?????ADXL202傳感器是由震蕩器,X、Y方向傳感器,相位檢波電路以及占空比調制器組成,具有數字輸出接口和模擬電壓信號輸出接口。X、Y方向傳感器是2個相互正交的加速度傳感器。ADXL202相對于地平面方向變化時,X、Y方向對應不同的輸出,從而可以測量動態變化的加速度和恒定的加速度。傳感器的后級連相位檢波器,主要是用來修正信號,并對信號的方向作出判斷。檢波器輸出的信號通過1個32 kΩ的電阻來驅動占空比調制器,設計時可以通過在XFILT和YFILT引腳外接電容CX和CY來改變帶寬。同時,外接電容對于濾除噪聲和抑制零點漂移都有一定的效果。
信號通過低通濾波器之后,占空比調制器把信號轉換為數字信號輸出。通過T2腳的外接電阻可以改變T2的周期T2(1~10 ms),這就方便在精度要求不同的場合下使用。輸出的占空比信號通過計數器可以計算出占空比。加速度的計算可以通過公式(1)得到。
?
當加速度為0g時,輸出信號的占空比為50%;靈敏度每1g所引起的脈寬占空比變化12.5%。在應用中0g時的失調和系統誤差影響實際輸出值。則根據測得的加速度值即可求得X和Y軸的傾角:
?
當加速度計被定向,那么它的X和Y軸就和地球表面平行可用來作為具有翻滾和傾斜兩個軸的雙軸斜度傳感器,被測物體的俯仰角記為γ和橫滾角β。將磁阻傳感器的3個敏感軸沿載體的3個坐標軸安裝,分別測量地磁場磁感應強度H在載體坐標系3個坐標上的投影分量(HX,HY,HZ),然后利用俯仰角和橫滾角進行姿態解算就可以得到電子羅盤的方位角。
2?ADXL202的抗干擾設計思想
根據ADXL202使用手冊知,傳感器與微處理器共用電源時會引起干擾,因此在電路設計時采用了抑制干擾的解決方案。設計時采用1個0.1 μF的電容和1個小于或等于100 Ω的電阻來抑制干擾。實驗測試顯示,仍然存在電路其他部分電源和傳感器電源互相影響的情況,干擾抑制效果并不理想。經過反復試驗,傳感器采用獨立的電源供電,并且在布線時把器件和調理信號的電阻、電容放在1塊單獨的板上或用粗地線將其圍在線路板的某一區域,在實驗室條件下得到較好的干擾抑制效果。但實際應用中,汽車的震動和瞬時功率變化對ADXL 202E輸出的占空比信號產生尖峰脈沖干擾(脈寬約1~2 ms)并不能消除,這就需要對其更多的處理。抑制和消除尖峰脈沖干擾影響的措施較多,常見的有硬件方法和軟件方法,或兩者相結合??紤]到電子羅盤整體體積和磁阻傳感器信號對干擾較為敏感,如果采用高效的硬件濾波,系統電路將變得非常龐大;使用簡易的硬件電路,濾波效果又不徹底。實際上,還可以借助于微處理器進行軟件濾波消除尖峰脈沖干擾。軟件濾波算法的采用,無疑會在簡化電路結構的同時使系統的硬件資源得到更加充分的利用,并達到降低產品設計成本的要求。
ADXL202E輸出的信號占空比調節(DCM)周期由外接電阻決定,一般低于1 kHz,因此計數輸入端高低電平持續時間長達幾ms甚至幾十ms,可見傳感器輸出的正常計數信號高、低電平變化較慢;而控制器脈寬計數時間小于1μs,干擾尖峰脈沖是突變的,所以能把干擾從正常計數中辨別出來。因此,使用軟件濾波來消除尖峰脈沖干擾是可行的。
VRS51L3074單片機是由美國Ramtron(瑞創)公司推出的8位單片機家族VRS51L3XXX系列的成員。VRSS1L3074提供了2個與定時器0和1關連的獨立的脈寬計數器(PWC)模塊,用戶可通過對PWC模塊和定時器的配置,靈活地控制定時器啟動或停止計數,從而方便地實現對ADXL202E輸出的脈寬和周期的計數。???
從單片機計數輸入端,觀察信號波形。為便于分析,在高、低電平段設置了幾個干擾尖峰脈沖,分別標示為Section A和Section C,占空比信號下降沿、上升沿分別標示為Section B和Section D。單片機按計數時鐘周期性采樣,采樣值中“1”表示采到的是高電平,“0”表示低電平。I/O口采樣占空比信號輸出端口中狀態,利用1個字節型變量R來動態存儲采樣值??刂破髅坎蓸?次,變量R中數據向左移1個二進制位,R原最高位電平狀態被移除,而當前時刻新的采樣狀態保存到R的最低位,變量R被更新了,狀態存儲器R中保存著最近8個采樣周期的采樣值。
在圖1中,從正常下降沿過程(Section B),可以看到變量R中的數據經歷了從各位全為1,到1、0共存,再變化到全為0的過程;然而,在高電平段的干擾部分(SectionA),變量R經歷了從全為1,到1、0混合,再回到全為1的過程。類似地,正常上升沿(Section D)變量R經歷了各位全為0,到0、1共存,再變化到全為1的狀態變化過程;在低電平段的干擾部分(Section C),變量R經歷了采樣狀態從全為0,到0、1混合,再回到全為0的過程。通過判斷此4種情況下變量R中數據的不同變化過程,可以達到從正常變化中辨別出干擾的目的。這就是本設計所采用的軟件濾波抗干擾方法的基本思想。
?
3? 軟件濾波算法的實現
3.1? 軟件濾波分析
根據軟件濾波設計思想,濾波子程序由主程序在信號狀態發生變化,進入中斷時調用,圖2給出了濾波程序流程。對照圖1中4種Section來分析流程圖。當有邊沿或干擾信號(信號周期大于計數時鐘周期)到來時,VRS51L3074單片機的PWC計數停止條件滿足,系統進入中斷服務子程序。在中斷子程序中,首先重置脈寬計數條件,然后對當前狀態進行采樣,采樣1次,狀態寄存器左移1位,采樣到高電平記為“1”,采樣到低電平記為“0”。如正常下降沿Section B,前面處于高電平段,初始狀態變量Flag全為1,當出現低電平,控制器進人中斷,緊接著進行16次采樣。前已提及系統處理的尖峰干擾約1~2 ms,每個采樣周期約為0.4 ms,其尖峰干擾脈寬達不到8個采樣周期。系統設計時采樣16次,只取最后8次的存儲狀態與原狀態進行比較,如果最后采樣的狀態全為“0”則與原狀態相反,就可判斷出這是1個正常下降沿。如果是干擾信號引起計數中斷,前面8個采樣狀態不全為“1”,后面8個狀態全為“1”,最后采樣的狀態與原狀態相同,就可判斷出這是1個干擾信號,如Section A。在信號狀態采樣期間,計數條件滿足PWC繼續計數,直到真正的下降沿到來,計數停止并保存,計數寄存器還原為初始值,這樣干擾信號即被濾除。類似地,正常上升沿Section D,存儲器原狀態為“0”,上升沿來臨后存儲器狀態為“1”,與原狀態相反,PWC計數停止并保存,計數寄存器還原為初始值,退出中斷子程序。有干擾信號出現后采樣狀態與原狀態相同,干擾尖峰脈沖可被濾除。如果要使脈寬計數更精確,可判斷前8個采樣周期中系統不正常計數的周期,然后與最終計數周期相加即可。此時,程序流程體現出軟件濾波功能。
?
3.2? 源程序代碼分析
?
對應程序流程圖,給出了單片機通過P4.2口對ADXL202某一輸出通道采樣濾波并完成脈寬計數的源程序。源程序如下:
?
?
源程序中定義了3個變量,其中變量Flag存儲原狀態值;FlagReg存儲當前采樣值;變量i記錄采樣次數;改變i的值可控制濾除尖峰脈沖的等待時間。程序通過對原狀態與當前采樣狀態異或之后的值來判斷當前信號是有效信號還是干擾信號,從而對上升沿、下降沿的中間過度或尖峰脈沖干擾進行相應處理,退出中斷子程序。實現了對正常信號計數、濾掉尖峰脈沖干擾的目的。
4 測試結果
由于條件限制以及干擾的隨機性,對基于ADXL202構成的車載屯子羅盤進行的測試,無法對所測量的角度以及方向角進行精確標定。實驗時,通過相同條件下同一物理量多次測量值的標準差來對相應算法進行評估。測試結果如表1所列。
?
從實驗測試的標準差可以看出,經過軟件濾波后σ小了很多,這種軟件濾波算法對濾除尖峰脈沖干擾是非常有效的。
結? 語
本文提出的軟件濾波算法速度快,代碼效率高,濾波效果理想,是一種實用的數字濾波設計方法,體現了將算法與具體硬件相結合的思想。另一方面,當脈沖干擾較寬時可將存儲器變量適當擴展成多字節變量。這個算法還可以與FPGA結合,用于其他計數精度要求較高、易受尖峰脈沖干擾的應用結合。
評論
查看更多