基于ARM和ADIS16355的汽車二自由度數據采集系統
汽車的二自由度橫擺角速度與側向加速度這兩個參數對汽車的穩定性分析具有重要作用,是汽車主動安全的重要組成部分,可以通過預測與實測兩種方式獲得。為了得到更真實的數據,本文設計了基于ARM微控制器和ADIS16355傳感器的數據采集系統,通過實車測試得到了汽車的橫擺角速度與側向加速度的數據,分析了干擾源,并且對數據采用卡爾曼濾波方法進行處理。
1系統工作原理
ADIS16355傳感器裝在接近汽車的中心位置上(接近汽車的質心位置),建立汽車的三維坐標系如圖1所示。
汽車X、Y、Z三個方向的旋圖1汽車三維坐標系轉角速度與加速度可通過ADIS16355傳感器測得,測得的數據通過ADC轉換成數字信號,然后通過SPI串行通信協議把采集到的數據傳送到控制器中,這里只取側向加速度與橫擺角速度這兩個信息量。采用的控制器是Philips公司生產的ARM7處理器LPC2119.數據采集系統工作原理如圖2所示。
2 系統模塊介紹
2.1 LPC2119簡介
ARM是指精簡指令集的微處理器,具有高性能、廉價、低耗能的特點,在各個領域得到了廣泛的應用。該系統采用的是ARM7系列的LPC2119微控制器。LPC2119是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-S內核的微控制器,并帶有128 KB的高速Flash存儲器;指令支持32位的ARM模式與16位的Thumb模式:128位寬度的存儲器接口和獨特的加速結構使32位代碼的ARM方式能夠在最大時鐘速率下運行;對代碼規模有嚴格控制的應用可使用16位Thumb模式將代碼規模降低超過30%,而性能的損失卻很小。LPC2119具有非常小的64腳封裝、極低的功耗、多個32位定時器、4路10位ADC、2路CAN總線、PWM通道、46個GPIO以及多達9個外部中斷,功耗低,性能強大,特別適用丁汽車、工業控制應用以及醫療系統和容錯維護總線。由于內置了寬范圍的串行通信接口,也非常適合于通信網關、協議轉換器以及其他各種類型的應用。
2.1 LPC2119簡介
ARM是指精簡指令集的微處理器,具有高性能、廉價、低耗能的特點,在各個領域得到了廣泛的應用。該系統采用的是ARM7系列的LPC2119微控制器。LPC2119是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-S內核的微控制器,并帶有128 KB的高速Flash存儲器;指令支持32位的ARM模式與16位的Thumb模式:128位寬度的存儲器接口和獨特的加速結構使32位代碼的ARM方式能夠在最大時鐘速率下運行;對代碼規模有嚴格控制的應用可使用16位Thumb模式將代碼規模降低超過30%,而性能的損失卻很小。LPC2119具有非常小的64腳封裝、極低的功耗、多個32位定時器、4路10位ADC、2路CAN總線、PWM通道、46個GPIO以及多達9個外部中斷,功耗低,性能強大,特別適用丁汽車、工業控制應用以及醫療系統和容錯維護總線。由于內置了寬范圍的串行通信接口,也非常適合于通信網關、協議轉換器以及其他各種類型的應用。
2.2 ADIS16355簡介
ADIS1635傳感器集成了三軸加速度傳感器和三軸陀螺儀傳感器,具有體積小、功能強、功耗低等特性。它主要由以下模塊組成:陀螺儀、加速度傳感器、A/D轉換器、數字校準以及SPI協議轉換模塊。在三維直角坐標系X、Y、Z中,陀螺儀與加速度傳感器首先感應到物體的運動,分刖測得運動物體X、Y、Z三個方向的旋轉角速度與加速度,三個方向旋轉角速度的測量范用分別為±75°/s、±150°/s、±300°/s,加速度的測量范圍都為±10g,有效數據位都為14位。它具有很高的分辨率,其中旋轉角速度的最低分辨率為0.073 26,三個方向的加速度的分辨率為2.255mg,基本能滿足用戶的需求。它的工作電壓為5 V,直接輸出16位的數字信號,通過SPI通信協議傳送。ADIS16355的結構框圖如圖3所示。
ADIS1635傳感器集成了三軸加速度傳感器和三軸陀螺儀傳感器,具有體積小、功能強、功耗低等特性。它主要由以下模塊組成:陀螺儀、加速度傳感器、A/D轉換器、數字校準以及SPI協議轉換模塊。在三維直角坐標系X、Y、Z中,陀螺儀與加速度傳感器首先感應到物體的運動,分刖測得運動物體X、Y、Z三個方向的旋轉角速度與加速度,三個方向旋轉角速度的測量范用分別為±75°/s、±150°/s、±300°/s,加速度的測量范圍都為±10g,有效數據位都為14位。它具有很高的分辨率,其中旋轉角速度的最低分辨率為0.073 26,三個方向的加速度的分辨率為2.255mg,基本能滿足用戶的需求。它的工作電壓為5 V,直接輸出16位的數字信號,通過SPI通信協議傳送。ADIS16355的結構框圖如圖3所示。
2.3 SPI協議簡介
SPI協議是Motorola公司制定的全雙工串行通信協議,具有傳送速度快、協議簡單的特點。通信只需要四根線,即SCK(時鐘)、SSEL(從機選擇)、MISO(主入從出)、MOSI(主出從入);最高傳送速率可以達到系統工作頻率的1/8,并且已經得到了廣泛的應用。ADIS16355也是通過SPI協議來傳送。首先把LPC2119中集成的SIP控制器設置為主機,把傳感器的SPI接口設置為從機,把它們的接線對應連接起來,即相當于從控制器的從機選擇端,在通信過程中要使它一直保持低電平,處于有效狀態;然后,通過主控制器把需要采集信號的地址發送到從控制器中。SPI時序圖如圖4所示。
SPI協議是Motorola公司制定的全雙工串行通信協議,具有傳送速度快、協議簡單的特點。通信只需要四根線,即SCK(時鐘)、SSEL(從機選擇)、MISO(主入從出)、MOSI(主出從入);最高傳送速率可以達到系統工作頻率的1/8,并且已經得到了廣泛的應用。ADIS16355也是通過SPI協議來傳送。首先把LPC2119中集成的SIP控制器設置為主機,把傳感器的SPI接口設置為從機,把它們的接線對應連接起來,即相當于從控制器的從機選擇端,在通信過程中要使它一直保持低電平,處于有效狀態;然后,通過主控制器把需要采集信號的地址發送到從控制器中。SPI時序圖如圖4所示。
由于傳感器ADIS16355輸出的數據是16位的,所以傳送數據也是以16為周期。最高位代表讀寫控制位,如果為0代表向傳感器中寫入命令,為1則代表從傳感器中讀出當前狀態;次高位為0,緊接著的6位代表對應寄存器的地址,最后面8位不關心。注意,在這個地址下讀出來的數據是對應上一個地址的數據;與此同時從控制器把對應的采集到的16位數據發送到主機中去。
3 系統軟件設計與數據分析
該系統針對汽車二自由度的數據采集,而汽車二自由度是指汽車橫擺角速度與側向加速度,所以利用ADIS16355傳感器采集這兩個數據。由ADIS16355的說明書可知,反映橫擺角速度的寄存器的地址為0x08或0x09,而側向加速度對應的寄存器地址為0x0A或0x0B,要想得到汽車橫擺角速度與側向加速度,按照時序讀出相應寄存器地址的數據即可。其工作流程如圖5所示。
該系統針對汽車二自由度的數據采集,而汽車二自由度是指汽車橫擺角速度與側向加速度,所以利用ADIS16355傳感器采集這兩個數據。由ADIS16355的說明書可知,反映橫擺角速度的寄存器的地址為0x08或0x09,而側向加速度對應的寄存器地址為0x0A或0x0B,要想得到汽車橫擺角速度與側向加速度,按照時序讀出相應寄存器地址的數據即可。其工作流程如圖5所示。
通過串口可以讀取Y軸的側向加速度與X軸的橫擺角速度,如表1所列。
然而汽車運行中不可避免會受到其他因素的干擾,采集到的數據可能存在一定程度上的失真性,因此需要找出干擾源的類型,從而選擇適當的方法把雜波濾掉,得到相對準確的數據。為此設計汽車怠速與正常運行兩種模式。汽車在怠速狀態下,由于汽車是相對靜止狀態,理論上測到的汽車橫擺角速度與側向加速度為0,然而由于存在其他的干擾因素,因而實際測得的數據并不為0.通過對測試數據的分析可以得到干擾源的類型,從而根據干擾類型而設計出相應的濾波方式。下面分別就汽車的怠速模式與正常運行模式兩種運動方式具體分析。
3.1 汽車怠速模式
汽車怠速模式是指發動機處于啟動狀態,但是汽車處于停止不前的狀態,可以測得相應的數據。這里以汽車的橫擺角速度數據進行分析,取了2500個采樣點,利用數據的統計特性對數據分別求均值、協方差與功率譜密度,求得的均值為-7.7682e-005,近似為0.為了直觀,把采集到的源數據、協方差與功率譜密度通過MATLAB作圖的方式顯示出來,如圖6所示。
汽車怠速模式是指發動機處于啟動狀態,但是汽車處于停止不前的狀態,可以測得相應的數據。這里以汽車的橫擺角速度數據進行分析,取了2500個采樣點,利用數據的統計特性對數據分別求均值、協方差與功率譜密度,求得的均值為-7.7682e-005,近似為0.為了直觀,把采集到的源數據、協方差與功率譜密度通過MATLAB作圖的方式顯示出來,如圖6所示。
由圖可知,自相關函數只有在橫坐標為0時候才有取值,功率譜密度分布比較均勻,而且采集到的數據均值近似為0,這與高斯白噪聲的統汁特性相似,因而斷定干擾源類型為高斯白噪聲。
3.2 汽車正常運行模式
汽車正常運行模式是汽車勻速行駛在水平、下燥、水泥路面上,測得此時的汽車橫擺角速度與側向加速度。從傳感器采集到的數據不可避免地受到干擾源的影響,由上面給出的結論可知干擾源類型為白噪聲。卡爾曼濾波前的數據與濾波后的數據如圖7所示。卡爾曼濾波對白噪聲具有很好的濾波能力,它的濾波原理是最小均差原理,并且當前的數據只與前一個數據有關,數據存儲量小,有利于計算機求解,所以選用卡爾曼濾波方式對采集到的數據進行濾波,從而得到相對準確的數據。這里采集了10 000個數據點。
由圖7可以看到,通過卡爾曼濾波后,曲線更加平滑,有效地剔除了雜波,從而為控制系統提供更準確的數據。
結語
本文采用ARM微控制器和ADIS16355傳感器設計了一種數據采集系統,不但能夠采集汽車的橫擺角速度與側向加速度兩個參數,而且用卡爾曼濾波方式對采集到的數據濾掉了雜波,使得到的數據更為準確。經分析表明,該設計方案是可行的。這種數據采集系統在汽車主動安全方面有很好的應用價值,能為汽車穩定性分析供準確的數據。
本文采用ARM微控制器和ADIS16355傳感器設計了一種數據采集系統,不但能夠采集汽車的橫擺角速度與側向加速度兩個參數,而且用卡爾曼濾波方式對采集到的數據濾掉了雜波,使得到的數據更為準確。經分析表明,該設計方案是可行的。這種數據采集系統在汽車主動安全方面有很好的應用價值,能為汽車穩定性分析供準確的數據。
評論