1 引言
汽車防抱死制動系統(ABS)控制的核心部分是電子控制單元(ECU),ECU通過采集四個車輪速度信號計算得到四個輪速,在此基礎上,進一步計算車輪的加減速度,估算汽車車身速度,從而得到滑移率,進行路面識別等。把這些信號加以分析后,ECU對壓力調節器發出控制指令,從而實現其對制動壓力的調節。因此,準確的車輪輪速信號的取得是ABS實現有效控制的前提和關鍵。本文設計了輪速采集的軟硬件,提出的輪速算法無論在低速時測量還是高速時測量,都有比較好的測量精度和實時性。基于ARM微處理器開發的嵌入式防抱死制動系統具有實時性好,可靠性高等特點,能在很大程度上提高控制器的可靠性和車輛的制動性能。
2硬件電路
2.1 微處理器
一個成功的汽車電子控制單元,取決于設計時對所用微處理器的選擇?,F代發動機和自動變速箱的電子控制單元一般需要采用32位的CPU來處理實時算法。而在汽車的底盤、安全和車身系統等領域,就可以根據控制的復雜程度使采用16位或者32位兩種微處理器。但是,底盤控制器在其大部分工作時間內,要對傳感器進行掃描,而CPU又必須時時刻刻能夠提供相應的處理能力,能在僅僅幾個毫秒的時間內完成整個判定程序,并起動應用程序。三星公司的S3C44B0X是一種主頻達66MHz的高性能微處理器,具有豐富的接口資源,已經在眾多行業得到了高性價比的驗證。
2.2防抱死制動系統的控制原理
一般的,防抱死制動系統就是在每一個車輪上車輪轉速傳感器,用以測量轉速。這些傳感器將車輪轉速轉變為電信號輸入電控單元,而在每一個車輪附近都安裝有開關電磁閥,電控單元根據轉速信號計算車輪和車輛本身的運動狀態,當發現車輪制動趨于抱死時,就向這些或常開或常閉型的電磁閥發出電信號,以執行開或關的動作,使得一部分制動液從制動輪缸中流出,從而減小輪缸的制動壓力,即減壓;在制動壓力減小到一定程度時,車輪抱死趨勢消除,就保持制動輪缸的制動壓力,即保壓;當車輪在慣性作用下又加速到一定程度時,在增大制動輪缸的制動壓力,即增壓;當車輪又被制動到趨于抱死的狀態時,再執行減壓過程,如此往復循環,確保車輪在制動過程中得到最大的路面附著力,最短的制動距離,避免了抱死現象的發生。防抱死制動系統結構分布圖如圖1所示。
圖 1防抱死制動系統結構分布圖
2.3硬件設計
在汽車行駛過程中,隨車輪一起旋轉的齒輪會使傳感器產生一系列頻率與車輪轉速成正比的正弦電壓信號,該原始信號經過低通濾波、放大、整形等組成的輪速信號處理電路后,變成控制器可以直接處理的脈沖信號,省去了a/d轉換這一環節。輪速信號處理電路的結構框圖如圖2所示。
圖 2輪速信號處理電路
其中,濾波電路采用0.01-0.1uf旁路電容以及采用" "型低通濾波方式(RC,LC),減小高頻信號的干擾; 放大電路由集成運放和RC網絡組成的有源濾波電路; 整形電路用集成運放LM2940構成滯后比較器,將輪速傳感器產生的正弦信號轉換成頻率相同,幅值固定的方波脈沖信號,從而實現波形變換。利用施密特反向器整形,得到上升沿和下降沿陡直的脈沖波形,便于CPU對輪速信號的采集。
經過分析,整個電路的硬件結構圖如圖3所示。
圖 3硬件結構圖
常用的輪速計算方法有3種:"f"法頻率法、"t"周期法、"mt"多倍周期法。頻率法是通過測量給定時間內的輪速脈沖信號個數來計算輪速;周期法通過測量被測脈沖寬度來計算輪速;多倍周期法是根據f的不同,選擇不同的被測信號周期數的方法。
這里所采用的輪速采集算法類似于多倍周期法,是一種結合頻率法和周期法的有效算法。如圖4所示,先設置一個時間閘門Ts, S3C44B0X的四個外部中斷口在時間Ts內可以記下每次中斷的當前時間并放在寄存器中,該寄存器記錄下來的時刻是內部定時器0的當前值,用最后一次中斷的實時時間減去第一次中斷的實時時間即為實際的采樣時間Td。
圖 4輪速采集算法
輪速計算公式: (1)
其中r ――車輪半徑 Z ――齒圈齒數 f ――輸出脈沖的頻率
由上述算法可得出 (2)
再由兩式可得出 (3)
其中N為中斷次數(當中斷次數為N時,實際測到的脈沖數為N-1個),Td為實際的采樣時間。用該方法測量的誤差無論是低頻還是高頻信號都只有時鐘頻率的計數誤差。S3C44B0X微控器的定時器是按每2個系統時鐘周期為單位計時。因此,若采用S3C44B0X微控器,系統時鐘頻率設定60MHz,用定時器計時,則計時分辨率為Δt1=2/60 us。在一個單一的中斷系統中,S3C44B0X的中斷響應時間為5~29個時鐘周期。執行指令所需的固定時間和中斷響應最短時間可以通過軟件予以消除,而可能產生不可預計的最大計時誤差Δt2為24個時鐘周期,即Δt2=24/60 us。設:ΔT=|Δt1|+|Δt2| = 0.4 us (3)
則通過軟件設計,可以使系統總的計時誤差在±ΔT/2,即±0.2 uS 之內,可以滿足系統要求。由于在實際的測量中,Ts和Td很接近,所以Td≈Ts,可以忽略不計??梢姡瑧迷撍惴ɡ碚撋峡梢跃_地測量車速。硬件設計上直接利用S3C44B0X微控器的定時器和外部中斷來處理脈沖時間識別問題,這給系統設計帶來較大簡化。
2.5 實時性分析
假設汽車起動后其輪速在6~150m/s之間變化,由式(1),若取r=0.3m,Z=60,則脈沖頻率的變化范圍約為190~4777Hz。CPU在每個時鐘周期內對4個高速輸入口進行監視與檢測,如果系統時鐘頻率設定為60MHz,則分辨率可達2/60 us,遠遠滿足對脈沖輸入采集的要求。上述輪速采集算法時間閘門Ts選取50ms,由內部定時器0做為時間基準進行計時,也可以用軟件定時中斷??紤]在輪速較低時,產生的脈沖個數少,為了提高采集的精度,采用每次正跳變觸發的方式中斷,在輪速較高時,其產生的脈沖頻率也較高,為了避免頻繁中斷占用CPU過多的執行時間,采用每10次正跳變時觸發的方式中斷。
3軟件設計
軟件設計是整個ABS電控單元設計的核心。因為采用該32位的微處理器,在很大程度上是為了簡化硬件的結構,并可以利用其豐富的I/O和接口,在現有基礎上實現底盤集成控制系統的研制。為了充分協調各項控制功能并提高CPU的利用率,軟件采用模塊化設計,將每一模塊當作一獨立的任務來管理。、這里主要介紹輪速信號采集處理模塊。輪速信號中斷處理程序流程圖如圖5所示。
根據流程圖編寫出程序,經過ARM EMulator仿真器+JTAG在線調試成功后,將程序燒寫入到控制器的flash中即可。
圖 5 中斷處理程序流程圖
void __irq TIMER0_Interrupt(void) //定時器0中斷
{ tatic int time = 0;
time++;
int r=30cm,Z=60, Td=50ms;
rI_ISPC=BIT_TIMER0; //清中斷位
; // 計算速度
Lcd_ClearScr(); //清LCD顯示屏
Lcd _Init(); //LCD初始化
Lcd _Printf("\n\n\n車輪轉速1 Vel =%d m/s",Vel);
if(time>=1)
{Keyb ();} // 調用鍵盤處理子程序
if(time>=3)
{velocity (); // 調用控制脈沖子程序
time=0;}
N = 0; //中斷寄存器2清零
}
void __irq EINT2_Interrupt(void)
{
rPUPG = rPUPG & (3<<2) ; //上拉電阻使能
rPCONG = rPCONG & (~(0xf<<4)); //GPG2.3輸入使能
rPCONG = rPCONG | ( 0xf<<4 );
rEXTINT = rEXTINT & (0x44<<8) ;//EINT2.3上升沿觸發中斷
N+=1;
rI_ISPC = BIT_EINT2; //清中斷位
}
4結論
經過硬件在線仿真,初步驗證了軟硬件的可行性,實踐證明,采用基于ARM7TDMI核的32位微處理器,提高了系統的實時性能,并使得系統的擴展有了更大的可行性和更優的簡易性。若在該處理器上再加入實時操作系統如ucosii,系統的性能就會進一步提高。