MC9S12DG128在汽車高低速CAN網(wǎng)絡(luò)中的應(yīng)用
在現(xiàn)代汽車中,車用電氣設(shè)備隨著人們對汽車各方面性能要求的不斷提高也在逐漸地增加,從發(fā)動機控制傳動系統(tǒng)控制,從行駛、制動、轉(zhuǎn)向系統(tǒng)控制到安全保證系統(tǒng)及儀表報警系統(tǒng),從電源管理到為提高舒適性而做出的各種努力,使汽車電氣系統(tǒng)形成一個復(fù)雜的大系統(tǒng),原有的汽車電氣控制系統(tǒng)模式已遠(yuǎn)遠(yuǎn)不能達到設(shè)計者以及用戶的要求,can總線技術(shù)以及硬件連接簡單,良好的可靠性,實時性和性價比已經(jīng)漸漸被眾多的半導(dǎo)體廠家以及汽車企業(yè)所接受,并廣泛應(yīng)用與汽車領(lǐng)域。
目前,眾多半導(dǎo)體廠商(如motorola,infineon、philips、fujitsu等)都紛紛推出了具有can功能的微控制器芯片,本設(shè)計使用的是motorola公司hc9s12系列的mc9s12dg128微控制器。
1 can總線技術(shù)簡介
can(controller area network)即控制器局域網(wǎng)[1],是德國bosch公司為解決現(xiàn)代汽車中眾多的控制和數(shù)據(jù)交換問題開發(fā)出的一種現(xiàn)場總線通信結(jié)構(gòu),其最高速率可達1mbps(40m內(nèi))以多主方式工作,與一般的通信總線相比,can總線數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,是目前使用最廣泛的一種汽車網(wǎng)絡(luò)。
2 mc9s12dg128的介紹
mc9s12dg128微控制器[2]是motorola公司m68hc12系列16位單片機中的一種,其內(nèi)部結(jié)構(gòu)主要有單片機基本部分和can功能塊部分組成,基本結(jié)構(gòu)包括:中央處理器單元
hcs12(cpu)、2個異步串行通信口sci、2個同步串行通信口spi,8通道輸入捕捉/輸出比較定時器,1個8通道脈寬調(diào)制模塊以及49個獨立數(shù)字i/o口(其中20個具有外部中斷及喚醒功能),在片內(nèi)還擁有128kb的flash
rom,8kb的ram和2kb的eeprom,can功能塊包括兩個兼容can2.0a/b協(xié)議的mscan控制器組成,這些豐富的內(nèi)部資源和外部接口資源可以滿足ecu對各種數(shù)據(jù)的處理、can網(wǎng)絡(luò)數(shù)據(jù)的發(fā)送和接收要求,芯片集成了兩個mscan12模塊,能夠?qū)崿F(xiàn)高低速can網(wǎng)絡(luò)的網(wǎng)關(guān)節(jié)點功能。
mscan是motorola scaleable can的縮寫[3],而mscan12模塊則是mscan在m68hc12系列mcu上的具體實現(xiàn),其內(nèi)部結(jié)構(gòu)如圖1所示,它遵循can2.0a/b協(xié)議,集成了除收發(fā)器外can總線控制器的所有功能,此外它還采用先進的緩沖器布置改善了實時性能,簡化了應(yīng)用軟件的設(shè)計,can報文發(fā)送時,cpu將數(shù)據(jù)送入發(fā)送緩沖期,然后通過設(shè)置寄存器發(fā)出命令,數(shù)據(jù)組成報文后通過發(fā)送引擎送到txcan,再經(jīng)過外部收發(fā)器送到總線,報文接收時,收發(fā)引擎通過外部收發(fā)器將總線上的數(shù)據(jù)位流引入rxcan,經(jīng)過解碼、錯誤檢查、校驗和報文過濾后送到接收緩沖區(qū),并通過中斷或標(biāo)志通知cpu。
3 "長安之星"cc6350汽車網(wǎng)絡(luò)設(shè)計
"長安之星"sc6350汽車的電控單元主要就主控制器、發(fā)動機控制系統(tǒng)、懸架控制系統(tǒng)、制動防抱死控制系統(tǒng)(abs)、自動變速系統(tǒng)、asr控制系統(tǒng)、儀表管理系統(tǒng)、故障診斷系統(tǒng)、中央門鎖系統(tǒng)、車窗升降系統(tǒng)和車燈控制系統(tǒng)等。
所有這些電控單元在整個控制系統(tǒng)中對響應(yīng)的實時性的要求都有所不同,而且汽車在實際運行過程中眾多節(jié)點之間需要進行大量的實時數(shù)據(jù)交換[4],若整個汽車的所有節(jié)點都掛在一個can網(wǎng)絡(luò)上,則眾多節(jié)點通過一條can總線進行通信,一旦信息管理配置稍有不妥,就很容易出現(xiàn)總線負(fù)荷過大,導(dǎo)致系統(tǒng)實時響應(yīng)速度下降的情況,這在實時系統(tǒng)中是不允許的,因此根據(jù)不同的要求,可將汽車網(wǎng)絡(luò)分為高速can網(wǎng)絡(luò)、低速can網(wǎng)絡(luò)和lin網(wǎng)絡(luò)3個速率等級。高速的can網(wǎng)絡(luò)由abs、amt和電噴等節(jié)點組成;這些電控單元個數(shù)少、實時性和穩(wěn)定性要求高,設(shè)計組成傳輸速率為500kbps的高速can網(wǎng)絡(luò)。低速網(wǎng)絡(luò),即低速can網(wǎng)絡(luò)和lin網(wǎng)絡(luò),由眾多的車身電機和車燈節(jié)點組成,這些電控單元數(shù)量多,傳輸?shù)臄?shù)據(jù)紛繁復(fù)雜,對準(zhǔn)確性、穩(wěn)定性和要求勝于實時性,設(shè)計組成傳輸速率為125kbps的中低速can網(wǎng)絡(luò)或速率為20kbps
lin網(wǎng)絡(luò)進行控制。
對于不同速率網(wǎng)絡(luò)之間的通信,必須有相應(yīng)的網(wǎng)關(guān)進行數(shù)據(jù)的過濾和速率的轉(zhuǎn)換,以實現(xiàn)不同速率網(wǎng)絡(luò)節(jié)點之間的數(shù)據(jù)通信。高低速can網(wǎng)關(guān)的設(shè)計采用mc9s12dg128實現(xiàn)。
圖2為整車("長安之星"sc6350)can-lin通信及控制網(wǎng)絡(luò)拓?fù)鋱D。
3.1 基本can節(jié)點硬件電路設(shè)計
基本的can節(jié)點硬件電路主要包括:帶有can控制器的微控制器和用于數(shù)據(jù)收發(fā)的can收發(fā)器,本設(shè)計中使用的是motorola公司的16位微控制器mc9s12dg128,它帶有mscan的控制器,主要負(fù)責(zé)can的初始化和數(shù)據(jù)的處理,can的收發(fā)器種類有很多,主要有philips公司的82c250、tja1050以及motorola公司的mc33997、mc33388、mc33889和mc33989等,它們之間很多都具有可兼容的特點,本例中采用的是philips公司的tja1050,它是can高速收發(fā)器。can基本節(jié)點結(jié)構(gòu)及部分實際電路如圖3所示。
3.2 高低速can網(wǎng)關(guān)節(jié)點硬件電路設(shè)計
網(wǎng)關(guān)的主要作用是協(xié)調(diào)各網(wǎng)絡(luò)之間數(shù)據(jù)的共享,負(fù)責(zé)各節(jié)點之間的通信,其硬件結(jié)構(gòu)與can節(jié)點非常相似,由于它負(fù)責(zé)高速與低速網(wǎng)絡(luò)之間的數(shù)據(jù)共享,所以,必須同時跨接兩個網(wǎng)絡(luò)之間,can總線網(wǎng)關(guān)硬件結(jié)構(gòu)如圖4所示。
3.3 高低速can網(wǎng)絡(luò)報文監(jiān)測電路
為了便于隨時因測試需要監(jiān)測跟蹤網(wǎng)關(guān)中高低速can網(wǎng)之間報文的接收發(fā)送情況,利用mc9s12dg128的sci口設(shè)計了可與pc通信的rs232的接口電路,可通過軟件的設(shè)計來隨時進行網(wǎng)關(guān)處報文的監(jiān)測,以測試網(wǎng)關(guān)的工作情況,其硬件原理和部分電路如圖5所示。
3.4 高低速can網(wǎng)關(guān)軟件設(shè)計
網(wǎng)關(guān)軟件設(shè)計部分主要實現(xiàn)的功能是各節(jié)點的數(shù)據(jù)收發(fā),特別是網(wǎng)關(guān)可以實現(xiàn)高低速網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)換,根據(jù)圖2所示網(wǎng)絡(luò)結(jié)構(gòu)分布,對實時性要求不高的車燈控制和電動車窗控制電路采用低速can網(wǎng)絡(luò),所設(shè)波特率為125kbps,對實時性要求較高的制動防抱死控制系統(tǒng)(abs)和自動變速系統(tǒng)(amt)等采用高速can網(wǎng)絡(luò),所設(shè)波特率為500kbps,can初始化程序如下:
為了降低網(wǎng)絡(luò)資源的占用率,提高網(wǎng)絡(luò)通信實時性性能,在高低速的can網(wǎng)絡(luò)之間除了必要的通信外,其余各自網(wǎng)絡(luò)的報文是相互獨立傳輸?shù)?,這就需要使用mscan中的標(biāo)識符驗收過濾器進行報文的過濾,可以通過對于過濾器寄存器的設(shè)置實現(xiàn)這一功能。can0與can4寄存器的驗收寄存器與屏蔽寄存器的設(shè)置如下:
由于傳輸速率不同,高低速can網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸是不同的,當(dāng)高速can網(wǎng)絡(luò)數(shù)據(jù)向低速can傳輸時,需要加入軟緩存進行暫時的存儲;當(dāng)?shù)退賑an網(wǎng)絡(luò)數(shù)據(jù)向高速can網(wǎng)路數(shù)傳輸時,可直接傳輸,整體流程如圖6所示。
4 高低速can網(wǎng)絡(luò)通信測試
為了監(jiān)測高低速can網(wǎng)絡(luò)之間通信的準(zhǔn)確性和實時性,本文給出了一個典型的can報文監(jiān)測測試實例,通過測試,可以看到can報文在高低速can網(wǎng)絡(luò)之間傳輸,并可以實現(xiàn)控制跨網(wǎng)絡(luò)間的節(jié)點動作,測試的具體過程:首先在高速can上模擬產(chǎn)生一組數(shù)作為傳輸器參數(shù),經(jīng)過cpu的分析通過高速can網(wǎng)絡(luò)傳到高低速網(wǎng)關(guān)節(jié)點,然后經(jīng)過網(wǎng)關(guān)節(jié)點的對can報文的傳輸速率轉(zhuǎn)換、傳遞到低速can網(wǎng)絡(luò)中,最后控制車身儀表節(jié)點和車燈節(jié)點的實際動作,can報文顯示及其測試結(jié)果如圖7所示。
結(jié)論
本文給出了一個具有高低速can網(wǎng)絡(luò)的汽車車身控制的網(wǎng)絡(luò)設(shè)計方案,介紹了motorola公司的16位單片機mc9s12dg128在該can網(wǎng)絡(luò)中作為高低速網(wǎng)關(guān)的軟硬件設(shè)計,以及上位機對其報文進行監(jiān)測顯示的結(jié)果,用此芯片設(shè)計的網(wǎng)關(guān)電路具有結(jié)構(gòu)簡單、易于升級、成本低廉但功能強大的特點,該網(wǎng)絡(luò)方案已經(jīng)在"長安之星"sc6350汽車車身上試驗成功,控制網(wǎng)絡(luò)及電路運行穩(wěn)定,證明方案可行,采用can網(wǎng)絡(luò)來控制汽車車身電器具有結(jié)構(gòu)簡單、實時性好、可靠性高的優(yōu)點,是現(xiàn)代汽車電器控制的發(fā)展趨勢。
評論