基于MC9S12DP256B的汽車防抱死系統(tǒng)設計
前言
隨著汽車行駛速度的提高,道路行車密度的增大,對于汽車行駛安全性能的要求也越來越高。汽車的防抱死制動系統(tǒng)(ABS)應運而生,它是以傳統(tǒng)制動系統(tǒng)為基礎,采用電子控制技術,在制動時防止車輪抱死的一種機電一體化系統(tǒng)。
基于雙CPU結構的防抱死系統(tǒng)
ABS系統(tǒng)設計中主要考慮以下幾個問題:首先,由于ABS系統(tǒng)直接關系車輛的安全性能,因而它的故障問題顯得極為重要,系統(tǒng)必須保證能及時檢測故障并準確判斷故障點;其次,ABS系統(tǒng)通常包含電磁閥等感性負載,驅動電流很大,需要適當的驅動電路;此外,為了便于ABS系統(tǒng)與車輛上其他系統(tǒng)進行通信,系統(tǒng)需要預留通信接口。
本文以原有的四傳感器四通道(4S/4M)ABS電子控制單元為基礎,開發(fā)了一個帶有鼓掌自檢的氣壓ABS。設計中采用MCU+CPLD的雙CPU結構,系統(tǒng)結構如圖1(圖略,請參看《電子設計應用》2005.8) 所示。
控制CPU采集輪速信號,然后根據設定的減速度和滑移率門限值進行路面識別及制動控制,另外它還負責對輪速傳感器進行靜態(tài)檢測。安全CPU (CPLD)則主要負責ABS系統(tǒng)的故障檢測工作,判斷故障部位,并將相應的故障碼傳輸給控制CPU。產生故障后,由控制CPU統(tǒng)一對故障狀態(tài)進行處理,包括中斷ABS功能,恢復至常規(guī)制動,點亮故障顯示燈,并將相應的故障代碼存儲在EEPROM中,需要時可隨機通過CAN通信端口傳輸到上位機或車上其他電子控制系統(tǒng)。
系統(tǒng)硬件設計
ABS系統(tǒng)故障主要為電磁閥故障、輪速信號采集系統(tǒng)的故障、制動管路壓力信號采集系統(tǒng)的故障、電源故障和控制器故障。本系統(tǒng)針對這些故障均給出了相應的診斷電路。
MC9S12DP256B和CPLD概述
MC9S12DP256B是基于16位HCS12 CPU及0.25um制造工藝的高速、高性能5.0V FLASH微控制器。該單片機使用了鎖相環(huán)技術或內部倍頻技術,使內部總線速度大大高于時鐘產生器的頻率,在同樣速度下所使用的時鐘頻率較同類單片機低很多,因而高頻噪聲低、抗干擾能力強,更適合于汽車內部惡劣的環(huán)境。并且包含定時器、 A/D轉換、 PWM輸出、CAN通訊、EEPROM、SPI、SCI等多個模塊,資源豐富,滿足系統(tǒng)功能的開發(fā)要求。
系統(tǒng)中的CPLD采用XC9572TQ100,此款芯片支持擴展工業(yè)溫度范圍。它不僅工作溫度范圍更大,從-40C至+100C,而且還符合汽車業(yè)界特有的質量認證呢感標準。此外,該芯片的門數和I/O數均符合設計要求,并留有功能擴展的余地。
數字輸入通道診斷電路
輪速輸入信號正確與否直接影響到ABS系統(tǒng)的工作。為此特地在信號處理電路之前加設數字開關,便于系統(tǒng)檢測電路板數字輸入通道。采用輸入模擬法,由安全CPU(CPLD)向數字通道發(fā)出一組標準方波信號輸入到控制 CPU的輸入捕捉端口進行測量。具體電路如圖2 (圖略,請參看《電子設計應用》2005.8)所示。
CPLD產生DETECT信號控制數字開關CD4066的通斷。ABS上電自檢時,DETECT為“0”,開關籪開,輪速信號被屏蔽,此時由 CPLD產生事先定義好的標準方波(頻率為100Hz,即每個計數周期 (0.1s)10個脈沖)并輸出給主CPU。主CPU通過ECT口捕捉方波進行測量與計算,經與定義的該標準波的頻率比較后,如果結果一致則說明數字輸入通道正常, 否則說明有故障出現。檢測完畢,一切正常后,DETECT變?yōu)椤?”,開關接通,輪速信號經過信號整形放大單元、由CPLD輸出至控制CPU。
電磁閥驅動及其故障檢測電路
汽車制動系統(tǒng)中電磁閥的工作電流為1.5-2.5A,而微控制器的輸出電流遠達不到這一要求,因此采用Freescale公司的高端驅動芯片MC33289來實現電磁閥的驅動。單通道的控制電路如圖3(圖略,請參看《電子設計應用》2005.8)所示。
由于MC33289的自檢功能,應用時可將St引腳直接與CPU相連,一旦電磁閥出現故障,如短路或斷路,St即自動置低,CPU接收到信號后立刻停止ABS功能,點亮故障顯示燈,同時將相應的故障代碼以中斷的形式傳輸給控制CPU。對電磁閥驅動狀況的檢測通過比較MC33289的輸出OUT與輸入 IN來完成。在正常情況下同一路的兩個邏輯值應相等,同時為“1”或“0”;若不相等,則說明驅動芯片出現故障,CPU必須中斷ABS功能,點亮故障顯示燈并傳輸故障碼。
故障碼存儲及傳輸
MC9S12DP256B自帶4KB的EEPROM,地址從0x400到0xFFF。 無須外擴EEPROM,可用于對故障碼的存儲,便于數據長期保存。
擦、寫操作前必須通過設置EEPROM時鐘分配寄存器 ECLKDIV,將模塊時鐘配置在150KHz至200KHz之間。系統(tǒng)中的晶振為16MHz,總線頻率8MHz,經計算,取ECLKDIV=0x4A,即預分頻因子PRDIV8=1,分頻因子EDIV[5:0]=001010,模塊的時鐘為182KHz。
因為每次寫操作均以字進行,所以為安全起見,擦除時每次擦兩個字。擦除操作的時序與寫操作完全相同,只不過相應地址寫入的數據均為“0”。
此外,系統(tǒng)結合自身CAN模塊,選用Philips公司的PCA82C250,設置了CAN的接口電路,便于故障碼的傳輸。接口電路如圖4(圖略,請參看《電子設計應用》2005.8)所示。
系統(tǒng)中的其他電路,像輪速信號處理電路、傳感器靜態(tài)檢測電路、電源監(jiān)控電路等由于篇幅所限,在此不作詳細介紹。
系統(tǒng)軟件及VHDL語言設計
系統(tǒng)的控制CPU MC9S12DP256B用C和匯編語言進行開發(fā),而CPLD用VHDL語言進行編程。
MC9S12DP256B程序的功能是: 程序存儲器及數據存儲器的自檢; 對輪速傳感器進行靜態(tài)、動態(tài)檢測;采集輪速信號,計算出車輪速度和減速度,根據控制邏輯輸出制動壓力調節(jié)信號;實時存儲故障代碼;CAN通信。
CPLD程序的功能是:控制數字開關CD4066的通斷;檢測數字輸入通道;監(jiān)測電磁閥驅動芯片和電磁閥的工作狀態(tài);向控制CPU傳送故障情況。 CPLD的設計由四個步驟組成:設計輸入、實現、校驗和芯片編程。設計中采用VHDL語言文本輸入,經綜合、仿真、實現后通過并行線纜下載至Xilinx 芯片中。圖5和圖6(圖略,請參看《電子設計應用》2005.8)分別是系統(tǒng)控制CPU及CPLD的流程圖。
結語
本系統(tǒng)以其獨特的雙CPU結構,集防抱死制動、系統(tǒng)故障檢測于一體,同時能實現對故障檢測碼的傳輸。 同時雙CPU均預留了一定的輸入/輸出端口, 為進一步擴展汽車電子控制裝置的功能提供了可能。





