舒浩敏
摘 要:文章分析了汽車總線技術(shù)的發(fā)展趨勢(shì),探討了汽車總線傳輸?shù)募夹g(shù)要求,詳細(xì)論述汽車CAN總線的優(yōu)點(diǎn)和特點(diǎn),最后設(shè)計(jì)了一款由51單片機(jī)開發(fā)的汽車CAN總線結(jié)構(gòu)。
關(guān)鍵詞:汽車網(wǎng)絡(luò)技術(shù);CAN總線;汽車總線
中圖分類號(hào):U469 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1006-8937(2009)24-0042-01
CAN總線是控制策略驅(qū)動(dòng)的總線,主要實(shí)現(xiàn)對(duì)車輛本身的控制,而IDB總線則以信息交互、共享為目的。為實(shí)現(xiàn)CAN總線和IDB總線間的信息流動(dòng)以及防止后者對(duì)前者產(chǎn)生影響,在兩總線間增加網(wǎng)關(guān)已經(jīng)成為共識(shí)。
1汽車總線技術(shù)的特征
汽車總線技術(shù)的特征歸納起來有以下幾點(diǎn)。
①設(shè)計(jì)目標(biāo)。汽車總線傳輸必須確保以下幾點(diǎn):傳輸信息的安全;信號(hào)的邏輯“1”明顯區(qū)別于邏輯“0”;異步總線隨機(jī)地傳送數(shù)據(jù);根據(jù)預(yù)先確定的優(yōu)先權(quán)進(jìn)行總線訪問;競(jìng)爭(zhēng)解決后獲勝站點(diǎn)能夠訪問總線且繼續(xù)傳輸信息;具有根據(jù)信息內(nèi)容解決總線訪問競(jìng)爭(zhēng)的能力;總線的功能尋址和點(diǎn)到點(diǎn)尋址能力;節(jié)點(diǎn)在盡量小的時(shí)間內(nèi)成功訪問總線;最優(yōu)化的傳輸速率(波特率);節(jié)點(diǎn)的故障診斷能力;總線具有一定的可擴(kuò)充性等等。
②數(shù)字信號(hào)的編碼。為了保證信息傳輸?shù)目煽啃?對(duì)數(shù)字信號(hào)正確編碼非常重要。汽車局域網(wǎng)數(shù)據(jù)信號(hào)多采用脈寬調(diào)制(PWM)和不歸零制(NRZ)。PWM作為編碼方案時(shí),波特率上界為3×105 kb/s,用于傳輸速率較低的場(chǎng)合。采用NRZ進(jìn)行信息傳輸,可以達(dá)到1Mb/s,用于傳輸速率較高的場(chǎng)合。
③網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。實(shí)用的汽車局域網(wǎng)是總線拓?fù)浣Y(jié)構(gòu),如CAN、SAEJ1850、ADVANCED PALMNET等。其優(yōu)點(diǎn)是:電纜短,布線容易;總線結(jié)構(gòu)簡(jiǎn)單,又是無源元件,可靠性高;易于擴(kuò)充,增加新節(jié)點(diǎn)只需在總線的某點(diǎn)將其接入,如需增加長(zhǎng)度可通過中繼器加入一個(gè)附加段。
④總線訪問協(xié)議。汽車總線的訪問協(xié)議一般為爭(zhēng)用協(xié)議,每個(gè)節(jié)點(diǎn)都能獨(dú)立決定信息幀的發(fā)送。如果同時(shí)有兩個(gè)或兩個(gè)以上的節(jié)點(diǎn)發(fā)送信息,就會(huì)出錯(cuò),這就要求每個(gè)節(jié)點(diǎn)有能力判斷沖突是否發(fā)生,發(fā)生沖突時(shí)按某個(gè)規(guī)律等待隨機(jī)時(shí)間間隔后重發(fā),以避免再發(fā)生沖突。網(wǎng)絡(luò)協(xié)議所使用的防沖突監(jiān)聽措施多為載波監(jiān)聽多路訪問,如CAN、SAEJ1850、ADVANCED、PALMNET等都采用的是:載波監(jiān)聽多路訪問/沖突檢測(cè)+無損仲裁(CSMA/CD+NDA)
2 CAN在汽車總線中的應(yīng)用
2.1 CAN總線技術(shù)的優(yōu)點(diǎn)
國(guó)內(nèi)汽車品牌中已經(jīng)有幾款車型應(yīng)用了總線技術(shù),這些技術(shù)完全來自國(guó)外。目前應(yīng)用總線的國(guó)產(chǎn)車中大多采用兩套獨(dú)立的CAN總線:一套是動(dòng)力CAN數(shù)據(jù)傳輸系統(tǒng),另一套是舒適CAN數(shù)據(jù)傳輸系統(tǒng)。
使用CAN總線后,對(duì)其優(yōu)點(diǎn)進(jìn)行了總結(jié),得出以下結(jié)論:①如果數(shù)據(jù)擴(kuò)展以增加新的信息,只需升級(jí)軟件即可。②控制單元對(duì)所傳輸?shù)男畔⑦M(jìn)行實(shí)時(shí)檢測(cè),檢測(cè)到故障后存儲(chǔ)故障碼。③使用小型控制單元及小型控制單元插孔可節(jié)省空間。④使傳感器信號(hào)線減至最少,控制單元可做到高速數(shù)據(jù)傳輸。⑤CAN總線符合國(guó)際標(biāo)準(zhǔn),因此可應(yīng)用不同型號(hào)控制單元間的數(shù)據(jù)傳輸。
2.2 汽車CAN總線節(jié)點(diǎn)ECU的硬件設(shè)計(jì)
汽車節(jié)點(diǎn)ECU的開發(fā)可以選擇帶有在片CAN的微控制器,也可以選擇其它微控制器和相應(yīng)的片外CAN控制器、收發(fā)器。文章以后者為例說明ECU的開發(fā)。
帶有CAN接口的ECU設(shè)計(jì)是總線開發(fā)的核心與關(guān)鍵,其中ECU的CAN總線模塊有幾個(gè)功能單元構(gòu)成——CAN控制器和CAN收發(fā)器。CAN控制器執(zhí)行完整的CAN協(xié)議,完成通訊功能,包括信息緩沖和接收濾波。CAN控制器與物理總線之間需要一個(gè)接口——CAN收發(fā)器,它實(shí)現(xiàn)CAN控制器與總線之間邏輯電平信號(hào)的轉(zhuǎn)換。CAN控制器和收發(fā)器完成CAN物理層和邏輯電路層的所有功能。應(yīng)用層的功能則由軟件來實(shí)現(xiàn)。各節(jié)點(diǎn)的ECU主要由MCU、DSP、CAN控制器SJA1000、CAN收發(fā)器PCA2C250和其它外圍器件構(gòu)成。
CAN設(shè)計(jì)的三層結(jié)構(gòu)模型為:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。物理層和數(shù)據(jù)鏈路層的功能由CAN接口器件完成,包括硬件電路和通訊協(xié)議兩部分。CAN通訊協(xié)議規(guī)定了四種不同用處的網(wǎng)絡(luò)通訊幀,即數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤指示幀和超載幀。CAN通訊協(xié)議的實(shí)現(xiàn),包括各種通訊幀的組織和發(fā)送,均是由集成在SJA1000通訊控制器中的電路實(shí)現(xiàn)的,因此系統(tǒng)的開發(fā)主要在應(yīng)用層的設(shè)計(jì)上。應(yīng)用層軟件的核心部分是CPU與SJA1000通訊控制器之間的數(shù)據(jù)接收和發(fā)送程序,即CPU把待發(fā)的數(shù)據(jù)發(fā)給SJA1000通訊控制器,再由SJA1000通訊控制器發(fā)到總線上;當(dāng)SJA1000通訊控制器從總線接受到數(shù)據(jù)后,CPU再把數(shù)據(jù)取走。對(duì)于單片機(jī)而言,操作SJA1000就象訪問外部RAM一樣簡(jiǎn)單。首先,應(yīng)對(duì)SJA1000中的有關(guān)控制寄存器寫入控制字,進(jìn)行初始化。之后,CPU即可通過SJA1000接收/發(fā)送緩沖區(qū)向物理總線接收和發(fā)送數(shù)據(jù)。