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