CAN總線技術(shù)在汽車(chē)ECU中的開(kāi)發(fā)
目前,在國(guó)內(nèi)還沒(méi)有我們自己開(kāi)發(fā)研制的基于CAN總線的ECU產(chǎn)品。本文是以一汽大眾為合作伙伴,共同開(kāi)展的基于CAN總線汽車(chē)控制系統(tǒng)研究工作的一部分,主要攻克了工程化關(guān)鍵技術(shù),所做的汽車(chē)分布式電子控制系統(tǒng)具有完全自主產(chǎn)權(quán)。文中對(duì)CAN總線的原理及性能進(jìn)行詳細(xì)分析的基礎(chǔ)上,深入研究了CAN總線控制器SJA1000,并設(shè)計(jì)了一套由單片機(jī)89C52和SJA1000以及82C250等芯片組成的CAN總線系統(tǒng),該系統(tǒng)模擬了汽車(chē)中的儀表盤(pán)以及照明系統(tǒng),各個(gè)ECU之間通過(guò)CAN總線實(shí)現(xiàn)相互通訊,從而達(dá)到減少汽車(chē)中的線束的目的,證實(shí)了CAN總線作為一個(gè)局域網(wǎng)應(yīng)用在汽車(chē)中的極大優(yōu)勢(shì)。該項(xiàng)研究將對(duì)我國(guó)汽車(chē)工業(yè)技術(shù)水平的提高起到促進(jìn)作用。
CAN總線技術(shù)的優(yōu)越性
CAN總線與一般的通信總線相比,它的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。其具有以下主要特性:CAN是目前為止唯一有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線;CAN為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)的向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活,且無(wú)需站地址等節(jié)點(diǎn)信息;CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求,高優(yōu)先級(jí)的數(shù)據(jù)最多可在134us內(nèi)得到傳輸;CAN采用非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低的節(jié)點(diǎn)會(huì)主動(dòng)地退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時(shí)間。尤其是在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓情況(以太網(wǎng)則可能);CAN只需通過(guò)報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),無(wú)需專(zhuān)門(mén)的“調(diào)度”;CAN的直接通信距離最遠(yuǎn)可達(dá)10km (速率5kbps以下);通信速率最高可達(dá)1Mbps(此時(shí)通信距離最長(zhǎng)為40m);CAN上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng)電路,目前可達(dá)成110個(gè)。采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。CAN的每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,保證了數(shù)據(jù)出錯(cuò)率極低。CAN的通信介質(zhì)可為雙絞線、同軸電纜或光纖,選擇靈活。CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響。CAN總線具有較高的性能價(jià)格比。它結(jié)構(gòu)簡(jiǎn)單,器件容易購(gòu)置,每個(gè)節(jié)點(diǎn)的價(jià)格較低,而且開(kāi)發(fā)過(guò)程中,能充分利用現(xiàn)在的單片機(jī)開(kāi)發(fā)工具。
CAN控制器與單片機(jī)的接口電路
SJA1000可以與不同類(lèi)型的單片微型計(jì)算機(jī)接口,再加上收發(fā)器就組成了一個(gè)CAN應(yīng)用系統(tǒng)的核心。系統(tǒng)硬件連接,硬件電路的設(shè)計(jì)主要是CAN通信控制器與微處理器之間和CAN總線收發(fā)器與物理總線之間的接口電路的設(shè)計(jì)。CAN通信控制器是CAN總線接口電路的核心,主要完成CAN的通信協(xié)議,而CAN總線收發(fā)器的主要功能是增大通信距離,提高系統(tǒng)的瞬間抗干擾能力,保護(hù)總線,降低射頻干擾(RFI),實(shí)現(xiàn)熱防護(hù)等。微控制器的時(shí)鐘采自SJA1000的振蕩器。通過(guò)SJA1000的時(shí)鐘分頻寄存器CDR,它決定了SJA1000的CLKOUT 腳的輸出和它的工作方式。SJA1000的AD0- AD7 連接到89C52的P0口,CS片選信號(hào)連接到89C51 的P2. 7。P2. 7 為0時(shí)CPU片外存儲(chǔ)器地址可選中SJA1000,CPU通過(guò)這些地址可對(duì)SJA1000執(zhí)行相應(yīng)的讀/寫(xiě)操作。SJA1000的RD、WR、ALE分別與89C52的對(duì)應(yīng)引腳相連,INT接89C52的P3. 2(INTO),89C52
也可以通過(guò)中斷方式訪問(wèn)SJA1000。82C250與CAN總線的接口部分也采用了一定的安全和抗干擾措施。82C250的CANH和CANL引腳各自通過(guò)一個(gè)5Ω的電阻與CAN總線相連,電阻可起到一定的限流作用,保護(hù)82C250免受過(guò)流的沖擊。CANH和CANL與地之間并聯(lián)了兩個(gè)30pF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。另外,在兩根CAN總線輸入端與地之間分別接了一個(gè)防雷擊管,當(dāng)兩輸入端與地之間出現(xiàn)瞬變干擾時(shí),通過(guò)防雷擊管的放電可起到一定的保護(hù)作用。瞬變干擾(Transient Interference)是電磁兼容領(lǐng)域中主要的一種干擾方式,特別是雷擊浪涌波,由于持續(xù)時(shí)間短,脈沖幅值高,能量大,給電子電氣設(shè)備的正常運(yùn)行帶來(lái)極大的威脅。82C250的Rs腳上接有一個(gè)斜率電阻,電阻大小可根據(jù)總線通信速度適當(dāng)調(diào)節(jié),一般在16—140kΩ之間。
軟件設(shè)計(jì)
本文主要設(shè)計(jì)了汽車(chē)的舒適系統(tǒng),其中包括了車(chē)門(mén)系統(tǒng)和車(chē)燈系統(tǒng)以及儀表盤(pán)之間通過(guò)CAN總線的通訊,用來(lái)實(shí)現(xiàn)各個(gè)節(jié)點(diǎn)之間的相互控制。,當(dāng)儀表盤(pán)上的鑰匙門(mén)啟動(dòng)時(shí),儀表盤(pán)上的點(diǎn)火指示燈會(huì)亮起來(lái),同時(shí)車(chē)門(mén)系統(tǒng)和車(chē)燈系統(tǒng)的ECU分別在總線上接到這個(gè)信息,也分別讓各自的電源指示燈亮起來(lái),這就表示各個(gè)系統(tǒng)在鑰匙門(mén)打開(kāi)的同時(shí)已經(jīng)都準(zhǔn)備好了,等待總線發(fā)出命令,以便做出相應(yīng)的動(dòng)作。當(dāng)車(chē)門(mén)要打開(kāi)時(shí),儀表盤(pán)上的車(chē)門(mén)指示燈亮;當(dāng)大燈打開(kāi)時(shí),儀表盤(pán)上的大燈指示亮;當(dāng)轉(zhuǎn)向燈開(kāi)關(guān)打開(kāi)時(shí),轉(zhuǎn)向燈亮;當(dāng)雙閃開(kāi)關(guān)打開(kāi)時(shí),左右轉(zhuǎn)向燈同時(shí)閃動(dòng)。
模擬實(shí)驗(yàn)
本論文采用了VectoR公司生產(chǎn)的CANoe軟件對(duì)CAN總線進(jìn)行了實(shí)時(shí)監(jiān)控。通過(guò)一個(gè)CAN卡--CANcardX (PCMCIA接口卡)以及一根CANcabs-CANcardX總線驅(qū)動(dòng)電纜,可以把系統(tǒng)中的CAN總線數(shù)據(jù)通過(guò)計(jì)算機(jī)編程采集出來(lái)。下位機(jī)與上位機(jī)設(shè)定相同的通訊波特率(本論文中設(shè)定為100kbps),通過(guò)建立相應(yīng)的數(shù)據(jù)庫(kù),就可以互相通訊了。
根據(jù)實(shí)際測(cè)量的結(jié)果,可以看出總線負(fù)載符合要求,沒(méi)有接收到出錯(cuò)幀,接受狀態(tài)處于激活中,接收到數(shù)據(jù)幀,總線工作狀態(tài)正常。從總線上測(cè)得的數(shù)據(jù)表明,對(duì)于每個(gè)ECU節(jié)點(diǎn)發(fā)送的ID碼以及數(shù)據(jù)與預(yù)定的ID碼及數(shù)據(jù)相同,總線接收和發(fā)送正常、準(zhǔn)確,完全符合預(yù)期研究的目標(biāo)。該模擬系統(tǒng)可以隨意向總線上正確的發(fā)送數(shù)據(jù)幀、遠(yuǎn)程幀,而且一旦某個(gè)ECU節(jié)點(diǎn)出現(xiàn)故障,總線會(huì)進(jìn)行自動(dòng)處理(在單片機(jī)軟件中進(jìn)行處理),如果該節(jié)點(diǎn)一直在向總線發(fā)送錯(cuò)誤標(biāo)志,總線就會(huì)自動(dòng)中斷該節(jié)點(diǎn),其他節(jié)點(diǎn)也會(huì)檢測(cè)到錯(cuò)誤條件,停止向給節(jié)點(diǎn)發(fā)送數(shù)據(jù),這樣就可以避免總線癱瘓。所以某個(gè)ECU節(jié)點(diǎn)出現(xiàn)錯(cuò)誤,不會(huì)影響其他節(jié)點(diǎn)的正常工作,不會(huì)造成整個(gè)總線的癱瘓。
CAN總線技術(shù),是工業(yè)控制與計(jì)算機(jī)網(wǎng)絡(luò)兩者邊緣的產(chǎn)物。無(wú)論是從網(wǎng)絡(luò)的結(jié)構(gòu)、協(xié)議、實(shí)時(shí)性、還是適應(yīng)性、靈活性、可靠性乃至成本等,工業(yè)控制的底層都有它的特殊性,特別是汽車(chē)工業(yè)中,要傳輸?shù)男畔级绦?,要求?shí)時(shí)性很強(qiáng)、可靠性高。因此,CAN總線在汽車(chē)ECU中的研究具有進(jìn)一步推廣應(yīng)用的價(jià)值和良好的開(kāi)發(fā)前景。
評(píng)論