基于AMR磁阻傳感器和加速度傳感器ADXL202的電子羅盤(pán)防干擾設(shè)計(jì)
3.2 源程序代碼分析
對(duì)應(yīng)程序流程圖,給出了單片機(jī)通過(guò)P4.2口對(duì)ADXL202某一輸出通道采樣濾波并完成脈寬計(jì)數(shù)的源程序。源程序如下:
源程序中定義了3個(gè)變量,其中變量Flag存儲(chǔ)原狀態(tài)值;FlagReg存儲(chǔ)當(dāng)前采樣值;變量i記錄采樣次數(shù);改變i的值可控制濾除尖峰脈沖的等待時(shí)間。程序通過(guò)對(duì)原狀態(tài)與當(dāng)前采樣狀態(tài)異或之后的值來(lái)判斷當(dāng)前信號(hào)是有效信號(hào)還是干擾信號(hào),從而對(duì)上升沿、下降沿的中間過(guò)度或尖峰脈沖干擾進(jìn)行相應(yīng)處理,退出中斷子程序。實(shí)現(xiàn)了對(duì)正常信號(hào)計(jì)數(shù)、濾掉尖峰脈沖干擾的目的。
4 測(cè)試結(jié)果
由于條件限制以及干擾的隨機(jī)性,對(duì)基于ADXL202構(gòu)成的車(chē)載屯子羅盤(pán)進(jìn)行的測(cè)試,無(wú)法對(duì)所測(cè)量的角度以及方向角進(jìn)行精確標(biāo)定。實(shí)驗(yàn)時(shí),通過(guò)相同條件下同一物理量多次測(cè)量值的標(biāo)準(zhǔn)差來(lái)對(duì)相應(yīng)算法進(jìn)行評(píng)估。測(cè)試結(jié)果如表1所列。
從實(shí)驗(yàn)測(cè)試的標(biāo)準(zhǔn)差可以看出,經(jīng)過(guò)軟件濾波后σ小了很多,這種軟件濾波算法對(duì)濾除尖峰脈沖干擾是非常有效的。
結(jié) 語(yǔ)
本文提出的軟件濾波算法速度快,代碼效率高,濾波效果理想,是一種實(shí)用的數(shù)字濾波設(shè)計(jì)方法,體現(xiàn)了將算法與具體硬件相結(jié)合的思想。另一方面,當(dāng)脈沖干擾較寬時(shí)可將存儲(chǔ)器變量適當(dāng)擴(kuò)展成多字節(jié)變量。這個(gè)算法還可以與FPGA結(jié)合,用于其他計(jì)數(shù)精度要求較高、易受尖峰脈沖干擾的應(yīng)用結(jié)合。
本文引用地址:http://cafeforensic.com/article/173111.htm
評(píng)論