殷曉輝
(煙臺汽車工程職業(yè)學(xué)院 信息與控制工程系, 煙臺 265500)
汽車已成為現(xiàn)代生活中不可或缺的出行工具,隨著汽車電子技術(shù)的發(fā)展和完善,新型功能的汽車不斷被開發(fā)出來,隨之而來的使汽車的電子控制單元(ECU)逐漸增多,繁多的線束和ECU占用了大量的有效空間,使汽車系統(tǒng)的復(fù)雜程度不斷增加,同時也使裝配和維修難度增大,不但提高了整車成本也使系統(tǒng)的可靠性難以得到有效滿足,因此對車身控制網(wǎng)絡(luò)進行構(gòu)建,使其具備電子化、網(wǎng)絡(luò)化、功能化的特點是現(xiàn)階段車身系統(tǒng)發(fā)展的主要方向。
汽車電子控制網(wǎng)絡(luò)技術(shù)在簡化線路、降低故障頻率、提高系統(tǒng)的可靠性及信息傳輸效率等方面發(fā)揮出狀元的作用,在汽車電子控制系統(tǒng)中CAN總線因具備良好的性能及可靠性被廣泛采用,是擁有極大應(yīng)用前景的汽車電子控制網(wǎng)絡(luò)之一[1]。
汽車電子控制系統(tǒng)主要由四部分組成,即通訊信息系統(tǒng)、發(fā)動機、底盤、車身電子控制系統(tǒng),汽車的行駛性能主要取決于發(fā)動機及底盤和安全電子控制,發(fā)動機電子控制系統(tǒng)作為電控系統(tǒng)的核心,主要包括電控點火、怠速控制、排放控制等;汽車的實際工作情況與底盤和安全電控系統(tǒng)的發(fā)動機與自動變速器密切相關(guān);電子防滑系統(tǒng)(ASR)和防抱死制動系統(tǒng)(ABS)為汽車駕駛的安全性和易操縱提供保證;車身系統(tǒng)主要功能在于乘坐的舒適和方便性,由照明系統(tǒng)、空調(diào)、安全氣囊、門鎖、座椅調(diào)節(jié)系統(tǒng)等組成;信息通訊系統(tǒng)主要由車載影音設(shè)備、導(dǎo)航定位和寬帶上網(wǎng)等組成[2]。
根據(jù)電子控制系統(tǒng)對信息傳輸?shù)囊螅瑯?gòu)建汽車網(wǎng)絡(luò)控制模型時主要采用高速總線(500kbps)和低速總線(125kbps/m)的CAN雙總線結(jié)構(gòu),車身系統(tǒng)等采用IS011519低速雙線式CAN總線,發(fā)動機及底盤綜合控制系統(tǒng)等總線采用ISCll898雙線式高速CAN總線,信息通訊系統(tǒng)則采用MOST總線(作為CAN的補充),各部分總線間的數(shù)據(jù)通信通過網(wǎng)關(guān)(網(wǎng)關(guān)留有診斷接口)實現(xiàn),整車CAN總線網(wǎng)絡(luò)模型如圖1所示[3]。
通過兩條CAN總線將各電控子系統(tǒng)連接構(gòu)建成完整的網(wǎng)絡(luò)控制系統(tǒng),實現(xiàn)節(jié)點同汽車整車控制系統(tǒng)的有效連接,考慮到汽車運行的核心部件(包括發(fā)動機、自動變速器、ABS等控制單元的節(jié)點)對時間方面的相應(yīng)要求較高,需做出快速響應(yīng)以避免安全事故的發(fā)生,將這些節(jié)點組成高速總線網(wǎng)絡(luò);對實時性要求相對較低的車燈控制、門鎖系統(tǒng)等節(jié)點構(gòu)成低速網(wǎng)絡(luò)??缃釉趦蓷l總線間的網(wǎng)關(guān)負(fù)責(zé)數(shù)據(jù)交換。采用相互獨立的高速和低速總線結(jié)構(gòu),節(jié)點控制單元信號同總線間的接收和傳輸,總線至負(fù)責(zé)共享信息的傳送(無需傳送本地用信息),增加了總線的負(fù)載能力。
圖1 整車CAN總線網(wǎng)絡(luò)模型圖
將各控制系統(tǒng)由節(jié)點和網(wǎng)關(guān)連接起來,進而組成了汽車電子控制網(wǎng)絡(luò)。
每控制節(jié)點電路由四部分構(gòu)成,即 CAN控制器(采用SJA 1000)、收發(fā)器(采用82C250)、單片機(CPU,采用日89C51)和通信線路,具體的硬件電路設(shè)計如圖2所示[4]。
作為中央控制處理器單片機的功能在于整體控制和操縱節(jié)點,通過初始化程序初始化總線控制器并進行功能設(shè)定。單片機89C51的P0口(p0.0—p0.7)分別連接控制器SJA 1000的數(shù)據(jù)線(AD0—AD7),單片機的片選信號為P2.7連接CS口(SJA I 000),CPU完成對控制器的訪問, RD,WR,ALE(89C51的通信握手線)分別與SJA 1000對應(yīng)相連,SJA 1000的INT引腳通過連接89C51的INT0使單片機能夠接受SJA1000的中斷請求并對其進行訪問(以中斷方式)[5]。
圖2 硬件電路圖
通過收發(fā)器82C250連接CAN總線線路以使節(jié)點的的抗干擾能力得以顯著提高,從而提升電路的安全性能,將收發(fā)器的輸入輸出引腳(高、低點電平)通過5歐的電阻實現(xiàn)同CAN總線線路的連接,在限流的基礎(chǔ)上防止收發(fā)器芯片受到過流的沖擊;通過將小電容并聯(lián)在輸入輸出引腳地之間來消除高頻干擾并降低電磁輻射;在兩輸入端與地之間為防止瞬變干擾的出現(xiàn)可通過使用防雷擊管實現(xiàn);收發(fā)器的引腳上連接斜率率電阻(范圍在16~140千歐之間),根據(jù)實際總線通信速度的需求對電阻大小進行調(diào)整和確定[6]。
本次設(shè)計的目的在于對總線的通信過程進行模擬,完成基本通信功能,因此只做節(jié)點仿真,在此基礎(chǔ)上節(jié)點就能夠?qū)崿F(xiàn)基本的數(shù)據(jù)通信。
(1) 初始化過程
數(shù)據(jù)在CAN總線節(jié)點進行傳送或接收前,需對總線控制器SJA1000在復(fù)位模式下進行初始化,具體的初始化流程如圖3所示。
圖3 初始化流程圖
(2) 發(fā)送程序設(shè)計
為完成發(fā)送節(jié)點數(shù)據(jù),需先分裝待發(fā)送的數(shù)據(jù),將信息組合成一幀報文,接下來讀取狀態(tài)寄存器,確定能否發(fā)送,數(shù)據(jù)的格式及標(biāo)識符設(shè)置完成后,將報文送入發(fā)送緩存區(qū)中并啟動SJA 1000發(fā)送,具體的流程圖如圖4所示[7]。
(3) 接收程序設(shè)計
讀取狀態(tài)寄存器,完成對異常情況的判斷,在此基礎(chǔ)上完成相應(yīng)處理,直到情況正常后完成數(shù)據(jù)接收過程,以查詢方式接收報文為例(查詢方式接收的編程思想基本相同),具體的接收程序流程圖如圖5所示。
圖4 數(shù)據(jù)發(fā)送流程圖
圖5 接收程序流程圖
兩個不同CAN網(wǎng)段的連接及數(shù)據(jù)的轉(zhuǎn)發(fā)皆由網(wǎng)關(guān)實現(xiàn),具體的硬件電路結(jié)構(gòu)如圖6所示。
圖6 網(wǎng)關(guān)硬件結(jié)構(gòu)圖
主要由兩路CAN控制器(由CAN控制器和收發(fā)器構(gòu)成)和一個CPU(監(jiān)控兩個網(wǎng)段的通信、處理相應(yīng)的事務(wù))組成。為保證CAN接口間的隔離,CAN總線收發(fā)器的線路皆采用隔離措施,隔離網(wǎng)控器與CAN總線,兩個網(wǎng)段保持獨立狀態(tài),從而使系統(tǒng)設(shè)備的安全性能得以有效提高[8]。
兩個CAN網(wǎng)段間的數(shù)據(jù)轉(zhuǎn)遞通過網(wǎng)關(guān)采用存儲轉(zhuǎn)發(fā)的方式實現(xiàn),在設(shè)計軟件時需先在89C52內(nèi)的RAM中完成兩個數(shù)據(jù)緩沖區(qū)的開發(fā),CANFIFO1、CANFIF02分別用于緩存低速、高速總線的數(shù)據(jù),CPU接受數(shù)據(jù)時采用中斷方式,使數(shù)據(jù)轉(zhuǎn)發(fā)時間縮短,片內(nèi)RAM采用FIFO機制管理,保證了數(shù)據(jù)傳送的可靠性,軟件設(shè)計主要包括系統(tǒng)監(jiān)控程序、數(shù)據(jù)發(fā)送和接收程序。
(1) 監(jiān)控程序設(shè)計
需監(jiān)視兩路總線的數(shù)據(jù)緩沖區(qū),為防止FIFO的溢出,當(dāng)有數(shù)據(jù)需轉(zhuǎn)發(fā)時,給通信任務(wù)繁忙的一方分配大容量的FIFO,F(xiàn)IFO包含接收(由接收數(shù)據(jù)子程序控制)和發(fā)送數(shù)據(jù)(由發(fā)送數(shù)據(jù)子程序控制)兩個指針,當(dāng)數(shù)據(jù)緩沖區(qū)中有數(shù)據(jù)時兩指針表現(xiàn)出不相等的狀態(tài),CAN網(wǎng)關(guān)主監(jiān)控程序的具體流程如圖7所示[8]。
圖7 監(jiān)控程序流程圖
(2) 接收數(shù)據(jù)子程序設(shè)計
當(dāng)某條CAN總線需要接收數(shù)據(jù)時則首先發(fā)送中斷請求至CPU,由CPU執(zhí)行對應(yīng)的處理程序,在數(shù)據(jù)緩存區(qū)FIFO中存入接收數(shù)據(jù),并對FIFO接收數(shù)據(jù)指針進行修改,對存儲數(shù)據(jù)的有效字節(jié)長度進行調(diào)整,從而完成數(shù)據(jù)的接收,網(wǎng)管接收數(shù)據(jù)子程序流程如圖8所示。
(3) 發(fā)送數(shù)據(jù)子程序設(shè)計
兩個CAN總線控制器各自具有發(fā)送數(shù)據(jù)子程序,某一FIFO數(shù)據(jù)緩沖區(qū)(同某一路CAN控制器對應(yīng))有數(shù)據(jù)被監(jiān)控程序監(jiān)測到時,在發(fā)送數(shù)據(jù)前需先對其進行檢測,符合發(fā)送條件,則向另一路CAN總線發(fā)送數(shù)據(jù),對存儲數(shù)據(jù)的有效字節(jié)長度進行調(diào)整,發(fā)送數(shù)據(jù)子程序流程如圖9所示。
為對本文所設(shè)計的基于CAN總線汽車電子控制網(wǎng)絡(luò)節(jié)點的通信功能進行檢測,首先需完成兩塊試驗線路板的制作,在設(shè)計完軟硬件后對汽車電子控制網(wǎng)絡(luò)節(jié)點進行練級試驗,具體的節(jié)點通信結(jié)構(gòu)框圖如圖10所示。
圖8 接收數(shù)據(jù)子程序流程圖
圖9 發(fā)送數(shù)據(jù)子程序流程圖
圖10 節(jié)點通信結(jié)構(gòu)框圖
具體的通信試驗過程及結(jié)果為:通過CAN總線連接兩塊試驗板,在接收端二極管全滅的狀態(tài)下,設(shè)置發(fā)送端八位撥動開關(guān)呈現(xiàn)“11110000"時則按動發(fā)送按鍵,此時接收端表現(xiàn)出“亮亮亮亮滅滅滅滅”的狀態(tài);當(dāng)在發(fā)送端依撥動開關(guān)使其呈現(xiàn)“11111111"時發(fā)送,接收端的八位LED呈現(xiàn)出全亮的狀態(tài);當(dāng)在發(fā)送端依撥動開關(guān)使其呈現(xiàn)"01010101 "時發(fā)送,接收端的八位LED呈現(xiàn)出“滅亮火亮滅亮滅亮”,這一實際檢測結(jié)果表明通信結(jié)果正確,證明了CAN能夠?qū)崿F(xiàn)基本的通信功能,,具有一定的實用價值。
本文通過對汽車電子控制系統(tǒng)的組成及功能進行分析,完成了基于CAN總線的汽車電子控制網(wǎng)絡(luò)模型的構(gòu)建,并對汽車電子控制網(wǎng)絡(luò)節(jié)點及控制網(wǎng)絡(luò)網(wǎng)關(guān)的軟硬件進行設(shè)計,對控制節(jié)點在依據(jù)CAN總線協(xié)議的基礎(chǔ)上通過使用單片機技術(shù)進行仿真,使CAN通信得以初步實現(xiàn),該汽車電子控制網(wǎng)絡(luò)模型有助于汽車維修和維護工作起到指導(dǎo)作用,具有一定的實用價值。