摘 要: 隨著CAN/LIN網(wǎng)絡(luò)在汽車車身控制系統(tǒng)中廣泛的應(yīng)用,為了滿足國產(chǎn)汽車車身控制總線的迫切需求,設(shè)計(jì)了一種基于CAN/LIN總線的整車管理系統(tǒng)的硬件方案。方案完成了CAN/LIN網(wǎng)關(guān)接口驅(qū)動(dòng)電路設(shè)計(jì)及CAN/LIN網(wǎng)關(guān)的硬件電路設(shè)計(jì)。對(duì)車身網(wǎng)絡(luò)控制節(jié)點(diǎn)軟件進(jìn)行了設(shè)計(jì),該車身網(wǎng)絡(luò)控制系統(tǒng)在網(wǎng)絡(luò)通信中充分實(shí)現(xiàn)了數(shù)據(jù)共享。
關(guān)鍵詞: 總線協(xié)議;CAN/LIN網(wǎng)關(guān);接口電路
隨著汽車工業(yè)的發(fā)展,消費(fèi)者和政府相關(guān)部門對(duì)于安全、舒適、節(jié)能、環(huán)保等方面的需求促使電子控制單元和系統(tǒng)廣泛地應(yīng)用在汽車中,而汽車也隨之日益向電子化、智能化方向發(fā)展[1]。但是日益增多的電子系統(tǒng)也帶來了新的問題,越來越多的電子控制單元與傳感器必然會(huì)需要越來越多的連線,除了增加成本、增加車身自重,更重要的是給布線帶來了巨大的困難,同時(shí)還增加了安全隱患,降低了整車可靠性。因此,提高電控單元間互相通信性能和降低導(dǎo)線成本已成為迫切需要解決的問題。
目前,車內(nèi)的電子控制系統(tǒng)主要由CAN/LIN網(wǎng)絡(luò)組成,發(fā)展中的汽車網(wǎng)絡(luò)技術(shù)還有高速容錯(cuò)網(wǎng)絡(luò)FlexRay、用于多媒體和導(dǎo)航的MOST,以及藍(lán)牙、無線局域網(wǎng)等無線網(wǎng)絡(luò)技術(shù)。LIN是一種輔助的總線網(wǎng)絡(luò),在不需要CAN總線的場(chǎng)合使用LIN總線可大大降低系統(tǒng)成本。汽車大量應(yīng)用電子技術(shù)提高汽車性能水平已是不爭(zhēng)的事實(shí),CAN總線的應(yīng)用也被人們所認(rèn)同,而CAN、LIN混合網(wǎng)絡(luò)的應(yīng)用也將使汽車網(wǎng)絡(luò)的可靠性能和經(jīng)濟(jì)性得到很大提高[1]。
1 CAN/LIN總線概述
1.1 CAN總線協(xié)議
CAN(Controller Area Network)總線是一種有效支持分布式控制和實(shí)時(shí)控制的串行通信網(wǎng)絡(luò),目前已經(jīng)在國外汽車的電器網(wǎng)絡(luò)中得到了廣泛的應(yīng)用。CAN總線采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般的通信總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。CAN總線是目前唯一有國際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線,它為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,而不分主從;在報(bào)文標(biāo)識(shí)符上,CAN上的節(jié)點(diǎn)分成不同的的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求,優(yōu)先級(jí)高的數(shù)據(jù)最多可在134 μs內(nèi)得到傳輸;CAN總線采用非破壞總線仲裁技術(shù);CAN節(jié)點(diǎn)只需要通過對(duì)報(bào)文的標(biāo)識(shí)符濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、1點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù);CAN的直接通信距離最遠(yuǎn)可達(dá)10 km(速率在5 Kb/s以下),通信速率最高可達(dá)1 Mb/s(此時(shí)通信距離最長(zhǎng)為40 m);報(bào)文采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,保證了數(shù)據(jù)出錯(cuò)率極低;CAN的每幀信息都有CRC校驗(yàn)及其他檢錯(cuò)措施,具有極好的檢錯(cuò)效果;CAN總線的通信介質(zhì)可為雙絞線、同軸電纜或光纖,選擇靈活;CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線上其他節(jié)點(diǎn)的操作不受影響[1-2]。
1.2 LIN總線協(xié)議
LIN是由BMW、AUDI等7家公司聯(lián)合發(fā)起的1個(gè)專門用于汽車控制網(wǎng)絡(luò)的低成本的串行通信協(xié)議。LIN總線是一種輔助的總線網(wǎng)絡(luò),在不需要CAN總線的帶寬和多功能場(chǎng)合,如智能傳感器和抽動(dòng)裝置之間的通信,使用LIN總線可大大節(jié)省成本。LIN總線為單主節(jié)點(diǎn)/多從節(jié)點(diǎn)模式,即沒有總線仲裁;能保證信號(hào)傳輸?shù)难舆t時(shí)間;它是帶時(shí)間同步的多點(diǎn)廣播接收,從節(jié)點(diǎn)無需石英或陶瓷諧振器;基于UART接口,幾乎所有的單片機(jī)都具備LIN必需的硬件;極少的信號(hào)線即可實(shí)現(xiàn)國際標(biāo)準(zhǔn)ISO9141規(guī)定;不需要改變LIN從節(jié)點(diǎn)的硬件和軟件就可以在網(wǎng)上增加節(jié)點(diǎn);通常1個(gè)LIN網(wǎng)絡(luò)上節(jié)點(diǎn)數(shù)目小于12個(gè),共有64個(gè)標(biāo)志符。每個(gè)報(bào)文幀包括報(bào)頭和響應(yīng)兩部分,報(bào)頭由主節(jié)點(diǎn)發(fā)送,內(nèi)有同步間歇信號(hào)、同步字段信號(hào)和標(biāo)識(shí)字段信號(hào);而響應(yīng)部分可能由主節(jié)點(diǎn)或者從節(jié)點(diǎn)發(fā)送,包含報(bào)文長(zhǎng)度1~8個(gè)字節(jié)的有效載荷和1個(gè)校驗(yàn)字節(jié)。對(duì)于從節(jié)點(diǎn),它需要檢測(cè)報(bào)頭數(shù)據(jù),并根據(jù)報(bào)頭內(nèi)容決定是否接收后續(xù)數(shù)據(jù)內(nèi)容或者發(fā)送數(shù)據(jù)到總線上[1]。
2 網(wǎng)關(guān)硬件實(shí)現(xiàn)
1個(gè)車身控制網(wǎng)絡(luò)有很多CAN和LIN節(jié)點(diǎn),如天窗、雨刮、座椅、車燈及組合開關(guān)等,這些模塊節(jié)點(diǎn)可通過網(wǎng)關(guān)實(shí)現(xiàn)數(shù)據(jù)的相互通信。圖1為網(wǎng)關(guān)的結(jié)構(gòu)拓?fù)鋱D,CAN節(jié)點(diǎn)信號(hào)通過CAN驅(qū)動(dòng)接口傳送到MCU,并經(jīng)MCU處理后把CAN信號(hào)轉(zhuǎn)換成LIN信號(hào),通過LIN驅(qū)動(dòng)接口把信號(hào)發(fā)送到LIN總線,控制相應(yīng)的LIN模塊動(dòng)作;同樣的LIN信號(hào)經(jīng)MCU后可轉(zhuǎn)換為CAN信號(hào),實(shí)現(xiàn)相應(yīng)控制功能。
2.1 中央控制器電路實(shí)現(xiàn)
中央控制模塊的核心是80C51單片機(jī),在CAN通信接口中CAN控制器選用SAJ1000,如圖2所示。微處理器負(fù)責(zé)SJA1000的初始化,并負(fù)責(zé)整個(gè)網(wǎng)關(guān)的監(jiān)控任務(wù)及CAN總線與LIN總線的通信任務(wù)。SJA1000是一種獨(dú)立的CAN控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制,它是Philips半導(dǎo)體公司PCA82C200 CAN 控制器的替代產(chǎn)品,而且還增加了1種新的操作模式—PeliCAN,這種模式支持CAN2.0B協(xié)議。在邊線上,SAJ1000的AD0~AD7連接到80C51的P0口,CS連接到80C51的P2.7口。P2.7為0時(shí),CPU片外存儲(chǔ)器地址可選中SJA1000,CPU通過這些地址可對(duì)SJA1000執(zhí)行相應(yīng)的讀/寫操作。SJA1000的RD、WR、ALE分別與80C51單片機(jī)的對(duì)應(yīng)引腳相連。INT引腳接80C51單片機(jī)的INT0,可通過中斷方式訪問SJA1000。80C51單片機(jī)的10和11管腳連到LIN接口電路,實(shí)現(xiàn)與LIN總線的通信[3]。
2.2 CAN接口驅(qū)動(dòng)電路
CAN控制器和系統(tǒng)物理總線之間的接口采用Philips公司的CAN收發(fā)器TJA1050,它具有對(duì)CAN總線的差動(dòng)發(fā)送和接收功能。TJA1050總線收發(fā)器與ISO11898標(biāo)準(zhǔn)完全兼容,優(yōu)化了CANH與CANL之間的耦合,因此大大降低了信號(hào)的電磁輻射,具有強(qiáng)電磁干擾下寬共模范圍的輸送接收能力,適用于汽車和工業(yè)應(yīng)用[2]。為了增強(qiáng)CAN通信的可靠性,CAN總線網(wǎng)絡(luò)的2個(gè)端點(diǎn)通常均接有抑制反射的終端匹配電阻,如圖3所示。匹配電阻連接在CAN-H和CAN-L之間,終端匹配電阻的大小由傳輸電纜的特性阻抗所決定。例如雙絞線的特性阻抗為120 Ω,則總線上的2個(gè)端點(diǎn)應(yīng)集成120 Ω終端電阻。
2.3 LIN接口驅(qū)動(dòng)電路
LIN總線接口驅(qū)動(dòng)電路如圖4所示。TJA1020是1個(gè)物理媒體連接,它是LIN主機(jī)/從機(jī)協(xié)議控制器和LIN傳輸媒體之間的接口,通過在LIN和BAT引腳之間串聯(lián)反向電流二極管和電阻實(shí)現(xiàn)主機(jī)應(yīng)用,如圖4所示。協(xié)議控制器輸入引腳TXD的發(fā)送數(shù)據(jù)流被LIN收發(fā)器轉(zhuǎn)換為總線信號(hào),而且電平翻轉(zhuǎn)速率和波形都受到限制,以減少電磁輻射。TJ1020的接收器檢測(cè)到LIN總線上的數(shù)據(jù)流并通過RXD引腳將它傳送到協(xié)議控制器。收發(fā)器有低功耗管理模式,它在睡眠模式中幾乎不消耗電流,并在錯(cuò)誤模式中減少功率消耗[4]。
3 系統(tǒng)軟件實(shí)現(xiàn)
CAN/LIN網(wǎng)關(guān)軟件主要實(shí)現(xiàn)CAN與LIN總線之間的協(xié)議轉(zhuǎn)換,即將接收到的CAN格式報(bào)文用LIN協(xié)議進(jìn)行封裝并發(fā)送到相應(yīng)的控制節(jié)點(diǎn),同時(shí)把接收到的LIN格式的報(bào)文用CAN協(xié)議進(jìn)行封裝并發(fā)送到相應(yīng)節(jié)點(diǎn)及車身BCM模塊等完成相應(yīng)的動(dòng)作,從而實(shí)現(xiàn)CAN與LIN節(jié)點(diǎn)的一致、透明通信傳輸[4]。
為了實(shí)現(xiàn)上述通信任務(wù),其軟件設(shè)計(jì)主要包括以下幾個(gè)部分:主監(jiān)控程序、CAN和LIN接口芯片的初始化、CAN報(bào)文的接收和發(fā)送及LIN報(bào)文的接收和發(fā)送。主監(jiān)控程序負(fù)責(zé)對(duì)CAN和LIN報(bào)文的接收緩沖區(qū)進(jìn)行監(jiān)視,若某一路緩沖區(qū)非空,則向另一路轉(zhuǎn)發(fā)。程序開始時(shí)即進(jìn)入程序初始化,進(jìn)入初始化程序有3種方式:硬件復(fù)位、軟件復(fù)位、上電復(fù)位。初始化程序?qū)λ械膱?bào)文對(duì)象進(jìn)行初始化操作。初始化后,中央控制器采取查詢與中斷方式監(jiān)控整個(gè)系統(tǒng),實(shí)現(xiàn)報(bào)文協(xié)議轉(zhuǎn)換、接收與發(fā)送。
基于CAN/LIN網(wǎng)關(guān)的汽車CAN、LIN混合網(wǎng)絡(luò),不僅可以有效地降低汽車整車成本,而且可減小總線的使用率,并可實(shí)現(xiàn)整個(gè)網(wǎng)絡(luò)數(shù)據(jù)通信的一致性、透明性。隨著汽車電子技術(shù)的網(wǎng)絡(luò)化發(fā)展趨勢(shì),低成本的CAN/LIN混合網(wǎng)絡(luò)將會(huì)得到越來越廣泛的應(yīng)用。
參考文獻(xiàn)
[1] 南金瑞,劉波瀾.汽車單片機(jī)及車載總線技術(shù)[M].北京:北京理工大學(xué)出版社,2007.
[2] 饒運(yùn)濤,鄒繼軍.現(xiàn)場(chǎng)總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2007.
[3] 鄧志華.車載網(wǎng)絡(luò)CAN和 LIN互連技術(shù)的研究[J].計(jì)算機(jī)應(yīng)用,2006(1):44-46.
[4] 崔俊峰.車射混合網(wǎng)絡(luò)中CAN/LIN網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006,22(2-3):201-204.