基于MC9S12DP256B的汽車防抱死系統(tǒng)設(shè)計(jì)
故障碼存儲(chǔ)及傳輸
MC9S12DP256B自帶4KB的EEPROM,地址從0x400到0xFFF。 無須外擴(kuò)EEPROM,可用于對(duì)故障碼的存儲(chǔ),便于數(shù)據(jù)長(zhǎng)期保存。
擦、寫操作前必須通過設(shè)置EEPROM時(shí)鐘分配寄存器 ECLKDIV,將模塊時(shí)鐘配置在150KHz至200KHz之間。系統(tǒng)中的晶振為16MHz,總線頻率8MHz,經(jīng)計(jì)算,取ECLKDIV=0x4A,即預(yù)分頻因子PRDIV8=1,分頻因子EDIV[5:0]=001010,模塊的時(shí)鐘為182KHz。
因?yàn)槊看螌懖僮骶宰诌M(jìn)行,所以為安全起見,擦除時(shí)每次擦兩個(gè)字。擦除操作的時(shí)序與寫操作完全相同,只不過相應(yīng)地址寫入的數(shù)據(jù)均為“0”。
此外,系統(tǒng)結(jié)合自身CAN模塊,選用Philips公司的PCA82C250,設(shè)置了CAN的接口電路,便于故障碼的傳輸。接口電路如圖4(圖略,請(qǐng)參看《電子設(shè)計(jì)應(yīng)用》2005.8)所示。
系統(tǒng)中的其他電路,像輪速信號(hào)處理電路、傳感器靜態(tài)檢測(cè)電路、電源監(jiān)控電路等由于篇幅所限,在此不作詳細(xì)介紹。
系統(tǒng)軟件及VHDL語言設(shè)計(jì)
系統(tǒng)的控制CPU MC9S12DP256B用C和匯編語言進(jìn)行開發(fā),而CPLD用VHDL語言進(jìn)行編程。
MC9S12DP256B程序的功能是: 程序存儲(chǔ)器及數(shù)據(jù)存儲(chǔ)器的自檢; 對(duì)輪速傳感器進(jìn)行靜態(tài)、動(dòng)態(tài)檢測(cè);采集輪速信號(hào),計(jì)算出車輪速度和減速度,根據(jù)控制邏輯輸出制動(dòng)壓力調(diào)節(jié)信號(hào);實(shí)時(shí)存儲(chǔ)故障代碼;CAN通信。
CPLD程序的功能是:控制數(shù)字開關(guān)CD4066的通斷;檢測(cè)數(shù)字輸入通道;監(jiān)測(cè)電磁閥驅(qū)動(dòng)芯片和電磁閥的工作狀態(tài);向控制CPU傳送故障情況。 CPLD的設(shè)計(jì)由四個(gè)步驟組成:設(shè)計(jì)輸入、實(shí)現(xiàn)、校驗(yàn)和芯片編程。設(shè)計(jì)中采用VHDL語言文本輸入,經(jīng)綜合、仿真、實(shí)現(xiàn)后通過并行線纜下載至Xilinx 芯片中。圖5和圖6(圖略,請(qǐng)參看《電子設(shè)計(jì)應(yīng)用》2005.8)分別是系統(tǒng)控制CPU及CPLD的流程圖。
結(jié)語
本系統(tǒng)以其獨(dú)特的雙CPU結(jié)構(gòu),集防抱死制動(dòng)、系統(tǒng)故障檢測(cè)于一體,同時(shí)能實(shí)現(xiàn)對(duì)故障檢測(cè)碼的傳輸。 同時(shí)雙CPU均預(yù)留了一定的輸入/輸出端口, 為進(jìn)一步擴(kuò)展汽車電子控制裝置的功能提供了可能。
評(píng)論