車載電子羅盤中的一種新型抗干擾設(shè)計(jì)
ADXL202E輸出的信號(hào)占空比調(diào)節(jié)(DCM)周期由外接電阻決定,一般低于1 kHz,因此計(jì)數(shù)輸入端高低電平持續(xù)時(shí)間長(zhǎng)達(dá)幾ms甚至幾十ms,可見(jiàn)傳感器輸出的正常計(jì)數(shù)信號(hào)高、低電平變化較慢;而控制器脈寬計(jì)數(shù)時(shí)間小于1μs,干擾尖峰脈沖是突變的,所以能把干擾從正常計(jì)數(shù)中辨別出來(lái)。因此,使用軟件濾波來(lái)消除尖峰脈沖干擾是可行的。
VRS51L3074單片機(jī)是由美國(guó)Ramtron(瑞創(chuàng))公司推出的8位單片機(jī)家族VRS51L3xxx系列的成員。VRS51L3074提供了2個(gè)與定時(shí)器O和1關(guān)連的獨(dú)立的脈寬計(jì)數(shù)器(PWC)模塊,用戶可通過(guò)對(duì)PWC模塊和定時(shí)器的配置,靈活地控制定時(shí)器啟動(dòng)或停止計(jì)數(shù),從而方便地實(shí)現(xiàn)對(duì)ADXL202E輸出的脈寬和周期的計(jì)數(shù)。
從單片機(jī)計(jì)數(shù)輸入端,觀察信號(hào)波形。為便于分析,在高、低電平段設(shè)置了幾個(gè)干擾尖峰脈沖,分別標(biāo)示為Section A和Section C,占空比信號(hào)下降沿、上升沿分別標(biāo)示為Section B和Section D。單片機(jī)按計(jì)數(shù)時(shí)鐘周期性采樣,采樣值中“1”表示采到的是高電平,“O”表示低電平。I/O口采樣占空比信號(hào)輸出端口中狀態(tài),利用1個(gè)字節(jié)型變量R來(lái)動(dòng)態(tài)存儲(chǔ)采樣值??刂破髅坎蓸?次,變量R中數(shù)據(jù)向左移1個(gè)二進(jìn)制位,R原最高位電平狀態(tài)被移除,而當(dāng)前時(shí)刻新的采樣狀態(tài)保存到R的最低位,變量R被更新了,狀態(tài)存儲(chǔ)器R中保存著最近8個(gè)采樣周期的采樣值。本文引用地址:http://www.ex-cimer.com/article/163019.htm
在圖1中,從正常下降沿過(guò)程(Section B),可以看到變量R中的數(shù)據(jù)經(jīng)歷了從各位全為1,到1、O共存,再變化到全為O的過(guò)程;然而,在高電平段的干擾部分(Section A),變量R經(jīng)歷了從全為1,到1、0混合,再回到全為l的過(guò)程。類似地,正常上升沿(Section D)變量R經(jīng)歷了各位全為0,到O、1共存,再變化到全為1的狀態(tài)變化過(guò)程;在低電平段的干擾部分(Section C),變量R經(jīng)歷了采樣狀態(tài)從全為O,到O、1混合,再回到全為O的過(guò)程。通過(guò)判斷此4種情況下變量R中數(shù)據(jù)的不同變化過(guò)程,可以達(dá)到從正常變化中辨別出干擾的目的。這就是本設(shè)計(jì)所采用的軟件濾波抗干擾方法的基本思想。
3 軟件濾波算法的實(shí)現(xiàn)
3.1 軟件濾波分析
根據(jù)軟件濾波設(shè)計(jì)思想,濾波子程序由主程序在信號(hào)狀態(tài)發(fā)生變化,進(jìn)入中斷時(shí)調(diào)用,圖2給出了濾波程序流程。對(duì)照?qǐng)D1中4種Section來(lái)分析流程圖。當(dāng)有邊沿或干擾信號(hào)(信號(hào)周期大于計(jì)數(shù)時(shí)鐘周期)到來(lái)時(shí),VRS51L3074單片機(jī)的PWC計(jì)數(shù)停止條件滿足,系統(tǒng)進(jìn)入中斷服務(wù)子程序。在中斷子程序中,首先重置脈寬計(jì)數(shù)條件,然后對(duì)當(dāng)前狀態(tài)進(jìn)行采樣,采樣1次,狀態(tài)寄存器左移1位,采樣到高電平記為“1”,采樣到低電平記為“O”。如正常下降沿Section B,前面處于高電平段,初始狀態(tài)變量Flag全為1,當(dāng)出現(xiàn)低電平,控制器進(jìn)入中斷,緊接著進(jìn)行16次采樣。前已提及系統(tǒng)處理的尖峰干擾約1~2 ms,每個(gè)采樣周期約為O.4 ms,其尖峰干擾脈寬達(dá)不到8個(gè)采樣周期。系統(tǒng)設(shè)計(jì)時(shí)采樣16次,只取最后8次的存儲(chǔ)狀態(tài)與原狀態(tài)進(jìn)行比較,如果最后采樣的狀態(tài)全為“O”則與原狀態(tài)相反,就可判斷出這是1個(gè)正常下降沿。如果是干擾信號(hào)引起計(jì)數(shù)中斷,前面8個(gè)采樣狀態(tài)不全為“1”,后面8個(gè)狀態(tài)全為“1”,最后采樣的狀態(tài)與原狀態(tài)相同,就可判斷出這是1個(gè)干擾信號(hào),如Section A。在信號(hào)狀態(tài)采樣期間,計(jì)數(shù)條件滿足PWC繼續(xù)計(jì)數(shù),直到真正的下降沿到來(lái),計(jì)數(shù)停止并保存,計(jì)數(shù)寄存器還原為初始值,這樣干擾信號(hào)即被濾除。類似地,正常上升沿Section D,存儲(chǔ)器原狀態(tài)為“O”,上升沿來(lái)臨后存儲(chǔ)器狀態(tài)為“1”,與原狀態(tài)相反,PWC計(jì)數(shù)停止并保存,計(jì)數(shù)寄存器還原為初始值,退出中斷子程序。有干擾信號(hào)出現(xiàn)后采樣狀態(tài)與原狀態(tài)相同,干擾尖峰脈沖可被濾除。如果要使脈寬計(jì)數(shù)更精確,可判斷前8個(gè)采樣周期中系統(tǒng)不正常計(jì)數(shù)的周期,然后與最終計(jì)數(shù)周期相加即可。此時(shí),程序流程體現(xiàn)出軟件濾波功能。
評(píng)論