郭 峰,趙 璇,汪 穎
(武漢理工大學(xué)信息工程學(xué)院,湖北 武漢 430070)
隨著各種車(chē)載系統(tǒng)的增加和完善,整車(chē)逐漸形成了一個(gè)龐大的系統(tǒng)。集中式車(chē)身控制系統(tǒng)線束質(zhì)量劇增,線路繁冗復(fù)雜,故障率不斷上升。至此,傳統(tǒng)的線束已經(jīng)不能滿足汽車(chē)行業(yè)的飛速發(fā)展。汽車(chē)網(wǎng)絡(luò)總線技術(shù)的使用不但能讓大批數(shù)據(jù)信息在電子單元中共享,而且能讓汽車(chē)綜合控制系統(tǒng)中的大量控制信號(hào)得到實(shí)時(shí)的傳輸交換,在節(jié)約材料成本的同時(shí)增加了智能化功能,提高了駕乘人員的安全性、舒適性,以及電子控制系統(tǒng)的穩(wěn)定性,降低了汽車(chē)故障診斷和維修的難度。
BCM(body control module)是車(chē)身控制模塊的簡(jiǎn)稱(chēng)。目前電控單元在汽車(chē)上的應(yīng)用越來(lái)越多,各種電子設(shè)備相互之間的交互也變得越來(lái)越頻繁[1]。結(jié)合某主機(jī)廠現(xiàn)有車(chē)身控制系統(tǒng),從汽車(chē)信息系統(tǒng)的角度,探討了一種基于CAN/LIN總線混合網(wǎng)絡(luò)的BCM。該BCM涉及的主要控制對(duì)象如表1所示。
由于汽車(chē)上各種電氣設(shè)備對(duì)網(wǎng)絡(luò)信息傳輸延遲的敏感性差別很大[2-3],發(fā)動(dòng)機(jī)控制器、自動(dòng)變速器控制器、ABS(anti-lock brake system)控制器和安全氣囊控制器等之間的協(xié)調(diào)關(guān)系所要求的實(shí)時(shí)性很強(qiáng),需要掛接在CAN總線上。但CAN總線負(fù)載率不能超過(guò)20%,否則會(huì)影響總線上信號(hào)傳輸?shù)膶?shí)時(shí)性[4-5],因而一般只把涉及到整車(chē)安全的控制節(jié)點(diǎn)掛接在CAN總線上,但為了方便行車(chē)診斷,診斷節(jié)點(diǎn)也掛在CAN總線上[6-9]。
表1 BCM主要控制對(duì)象
前后車(chē)燈的開(kāi)關(guān)、車(chē)門(mén)開(kāi)閉和座位調(diào)節(jié)等簡(jiǎn)單事件對(duì)信息傳輸延遲的要求相對(duì)寬松(10~100 ms),如汽車(chē)的組合開(kāi)關(guān)、門(mén)窗等控制單元,可以采用LIN總線實(shí)施控制,節(jié)省線束,實(shí)現(xiàn)整車(chē)的集約化設(shè)計(jì)。
余下的一些實(shí)時(shí)性不強(qiáng)的信號(hào),如防盜LED指示燈、車(chē)門(mén)開(kāi)/關(guān)報(bào)警等信號(hào)可以通過(guò)硬線連接到BCM。整個(gè)BCM平臺(tái)的拓?fù)鋱D如圖1所示。
CAN模塊使用PIC18F248采集外部信號(hào),將相關(guān)節(jié)點(diǎn)信號(hào)打包以幀的方式通過(guò)CAN收發(fā)器(MCP2551)經(jīng)由CAN總線傳輸?shù)紹CM,BCM根據(jù)接收到的信息做出判斷,執(zhí)行相應(yīng)的功能。該模塊主要包括CAN收發(fā)器及其外圍電路、信號(hào)調(diào)理電路和電源管理等模塊,其中振蕩器采用4.0 MHz陶瓷振蕩器。
圖1 系統(tǒng)拓?fù)鋱D
為防止數(shù)據(jù)在導(dǎo)線終端被反射導(dǎo)致數(shù)據(jù)丟失,一般在CAN_H與CAN_L之間接一固定大小的標(biāo)稱(chēng)終端電阻(一般為120 Ω)??紤]到EMI,有些車(chē)型將終端電阻分布在各個(gè)控制單元內(nèi),減少數(shù)據(jù)傳輸時(shí)的過(guò)調(diào)效應(yīng),更好地抑制干擾。該模塊實(shí)施軟件控制后實(shí)測(cè)靜態(tài)電流≤0.7 mA。
LIN模塊使用PIC18F248采集外部信號(hào),將LIN總線節(jié)點(diǎn)上的信號(hào)打包以幀的方式通過(guò)LIN收發(fā)器(MCP201),經(jīng)由 LIN總線傳送到 BCM,BCM對(duì)接受的幀進(jìn)行解析后再做出判斷,執(zhí)行相應(yīng)的功能。該模塊主要由LIN收發(fā)器及其外圍電路、信號(hào)調(diào)理電路、復(fù)位電路和電源管理模塊等組成。MCP201可在-40~125℃范圍內(nèi)使用,負(fù)載承受力可達(dá)40 V,還提供高溫與短路保護(hù)機(jī)制,可防止系統(tǒng)因遭遇接地異常而受損。該模塊采用4.0 MHz陶瓷晶振。由于LIN總線信號(hào)速率低,不會(huì)產(chǎn)生交互干擾,故采用單線傳輸。該模塊實(shí)施軟件控制后實(shí)測(cè)靜態(tài)電流≤0.5 mA。
主控節(jié)點(diǎn)主要實(shí)現(xiàn)以下功能:采集、處理銅線上各種輸入/輸出量;傳輸、處理CAN/LIN總線上的信息;實(shí)現(xiàn)診斷功能;實(shí)現(xiàn)CAN/LIN網(wǎng)絡(luò)交互,實(shí)現(xiàn)網(wǎng)關(guān)功能。以下主要討論主控節(jié)點(diǎn)作為網(wǎng)關(guān)的功能設(shè)計(jì)。
主控節(jié)點(diǎn)采用MC9S12XDG128,該單片機(jī)以高性能、低功耗為目的,針對(duì)汽車(chē)電子設(shè)計(jì),具有極好的EMC性能和高效率的代碼實(shí)現(xiàn)。該芯片內(nèi)部有12 k的 RAM,128 k的Flash,2 k的 EEPROM,16位AD轉(zhuǎn)換模塊,增強(qiáng)型的SCI模塊,實(shí)現(xiàn)LIN總線的通信,內(nèi)部自帶MSCAN模塊和定時(shí)器單元。網(wǎng)關(guān)框架結(jié)構(gòu)圖如圖2所示。
圖2 網(wǎng)關(guān)硬件框架圖
網(wǎng)關(guān)主要實(shí)現(xiàn)CAN/LIN網(wǎng)絡(luò)之間相互通信的協(xié)議轉(zhuǎn)換和數(shù)據(jù)轉(zhuǎn)發(fā)的功能。協(xié)議轉(zhuǎn)換就是將源協(xié)議的幀格式中的有效信息提取出來(lái),并將其封裝成目的協(xié)議的幀格式,同時(shí)在源網(wǎng)絡(luò)的信息發(fā)送到目的網(wǎng)絡(luò)的過(guò)程中,數(shù)據(jù)在存儲(chǔ)器中有一個(gè)短暫的存儲(chǔ)。系統(tǒng)利用報(bào)文的ID來(lái)實(shí)現(xiàn)路由的功能,報(bào)文ID類(lèi)似于計(jì)算機(jī)網(wǎng)絡(luò)中的路由映射表,表中每個(gè)源ID對(duì)應(yīng)一個(gè)目的ID,當(dāng)接收到數(shù)據(jù)報(bào)文時(shí),首先提取它的ID號(hào),通過(guò)查詢(xún)路由表,判斷該ID的目的地址,然后將它發(fā)送出去。
CAN通信網(wǎng)絡(luò)的軟件設(shè)計(jì)主要包括3部分:CAN節(jié)點(diǎn)的初始化、CAN節(jié)點(diǎn)的報(bào)文發(fā)送和報(bào)文接收[10-11]。CAN節(jié)點(diǎn)以幀的形式定時(shí)向 CAN總線發(fā)送消息,BCM對(duì)各CAN節(jié)點(diǎn)的ID進(jìn)行濾波,并對(duì)幀中的數(shù)據(jù)進(jìn)行對(duì)比,如果發(fā)現(xiàn)數(shù)據(jù)改變,BCM執(zhí)行相應(yīng)的動(dòng)作。
LIN通信網(wǎng)絡(luò)主要采用單主多從的通信方式,包括主機(jī)節(jié)點(diǎn)任務(wù)和從機(jī)節(jié)點(diǎn)任務(wù)。主機(jī)節(jié)點(diǎn)任務(wù)主要是通過(guò)循環(huán)查詢(xún)各節(jié)點(diǎn)狀態(tài),當(dāng)信號(hào)狀態(tài)發(fā)生改變時(shí),從機(jī)就會(huì)調(diào)用LIN發(fā)送函數(shù),把刷新的狀態(tài)以幀的形式發(fā)送到LIN總線上,主節(jié)點(diǎn)再對(duì)接收到的消息執(zhí)行相應(yīng)的動(dòng)作。
主控節(jié)點(diǎn)信號(hào)量采集、處理功能的軟件實(shí)現(xiàn)相對(duì)容易,以下只討論其作為網(wǎng)關(guān)的軟件實(shí)現(xiàn)。作為網(wǎng)關(guān)的主控節(jié)點(diǎn)需要對(duì)外來(lái)信號(hào)進(jìn)行選擇性的接收、處理和回發(fā),同時(shí)需要對(duì)每個(gè)信號(hào)進(jìn)行判斷,響應(yīng)各從節(jié)點(diǎn)的要求,時(shí)刻檢查各從節(jié)點(diǎn)的工作狀態(tài),并將相關(guān)數(shù)據(jù)顯示或存儲(chǔ)起來(lái)??偩€數(shù)據(jù)的發(fā)送在主監(jiān)控程序中實(shí)現(xiàn),接收采用中斷方式實(shí)現(xiàn),這樣不僅可以減少系統(tǒng)資源浪費(fèi),降低BCM功耗,使整個(gè)系統(tǒng)的靜態(tài)電流≤5 mA,還可以不影響程序運(yùn)行。
主控節(jié)點(diǎn)作為網(wǎng)關(guān)主要實(shí)現(xiàn)CAN/LIN網(wǎng)絡(luò)數(shù)據(jù)幀的透明傳輸,以及大量的數(shù)據(jù)信息的交互。網(wǎng)關(guān)轉(zhuǎn)發(fā)包括CAN網(wǎng)絡(luò)的轉(zhuǎn)發(fā)和LIN網(wǎng)絡(luò)的轉(zhuǎn)發(fā)。實(shí)際應(yīng)用中CAN節(jié)點(diǎn)一直向網(wǎng)關(guān)發(fā)送信息,而LIN總線速率較慢,幾乎不主動(dòng)向網(wǎng)關(guān)發(fā)送信息,只有當(dāng)網(wǎng)關(guān)發(fā)出查詢(xún)命令時(shí),LIN節(jié)點(diǎn)才向網(wǎng)關(guān)發(fā)送信息。主控節(jié)點(diǎn)作為網(wǎng)關(guān)主要實(shí)現(xiàn)CAN節(jié)點(diǎn)的轉(zhuǎn)發(fā),流程圖如圖3所示。
圖3 網(wǎng)關(guān)執(zhí)行CAN轉(zhuǎn)發(fā)任務(wù)流程圖
由于BCM涉及的對(duì)象多而雜,主程序運(yùn)行時(shí)要合理地分配各個(gè)任務(wù)的時(shí)間,即時(shí)間片。時(shí)間分配的合理與否直接關(guān)系到程序的執(zhí)行效率和系統(tǒng)的性能好壞,該系統(tǒng)在主程序運(yùn)行過(guò)程中時(shí)間分配如下:主進(jìn)程循環(huán)10 ms,其中,CAN部分(高級(jí)電子設(shè)備部分)3 ms、LIN部分(組合開(kāi)關(guān)和車(chē)門(mén)狀態(tài)部分)2 ms、信號(hào)檢測(cè)部分3 ms、其他部分2 ms(如AD模塊、無(wú)鑰匙進(jìn)入等)。
系統(tǒng)增加了故障自診斷模塊,自制車(chē)載診斷儀通過(guò)OBDII接口實(shí)現(xiàn)與BCM的通信,診斷設(shè)備具備大屏幕LCD及按鍵,使系統(tǒng)工作狀態(tài)信息實(shí)時(shí)顯示在LCD上,可隨時(shí)查看系統(tǒng)運(yùn)行狀態(tài)。車(chē)載診斷儀發(fā)出指令訪問(wèn)BCM,通過(guò)CAN/LIN總線來(lái)實(shí)現(xiàn)可視化總線在線監(jiān)測(cè)與數(shù)據(jù)實(shí)時(shí)分析、汽車(chē)行駛數(shù)據(jù)記錄和解碼器功能等,通過(guò)LCD顯示故障信息。
對(duì)LIN節(jié)點(diǎn)診斷幀通過(guò)標(biāo)識(shí)符為ox3C和ox3D的幀實(shí)現(xiàn),在ox3C主機(jī)請(qǐng)求幀中,LIN總線上所有的節(jié)點(diǎn)都接收該幀,并查詢(xún)第8個(gè)字節(jié)的數(shù)據(jù),如果該數(shù)據(jù)與所定義的節(jié)點(diǎn)地址相同,則在ox3D從機(jī)響應(yīng)幀中將數(shù)據(jù)發(fā)送。主節(jié)點(diǎn)接受到從節(jié)點(diǎn)的響應(yīng),則置相應(yīng)的標(biāo)志位為0或1,如果未收到,則認(rèn)為該節(jié)點(diǎn)數(shù)據(jù)丟失,出現(xiàn)故障,進(jìn)行標(biāo)識(shí)。
對(duì)CAN節(jié)點(diǎn)診斷幀通過(guò)標(biāo)識(shí)符為ox7E2和ox7EA的幀實(shí)現(xiàn),節(jié)點(diǎn)故障在每一子模塊中有專(zhuān)門(mén)的診斷模塊,如果出現(xiàn)故障,置相應(yīng)的標(biāo)志位為0或1。
該BCM不僅可以直接利用片內(nèi)端口采集輸入信號(hào),分析處理后使得控制執(zhí)行器做出相應(yīng)動(dòng)作,還可以作為網(wǎng)關(guān)支持CAN/LIN總線網(wǎng)絡(luò)交互,甚至可以裁剪總線作為集中式控制系統(tǒng)使用,并預(yù)留部分接口,以便后期開(kāi)發(fā)升級(jí)。經(jīng)專(zhuān)用檢測(cè)設(shè)備進(jìn)行高低溫試驗(yàn)、振動(dòng)、防塵和汽車(chē)瞬變脈沖測(cè)試等可靠性實(shí)驗(yàn)后裝車(chē)測(cè)試,實(shí)驗(yàn)證明該控制系統(tǒng)穩(wěn)定可靠,具有較強(qiáng)的實(shí)用價(jià)值。
[1] 歐陽(yáng)琰,王貴槐.基于CAN總線的汽車(chē)儀表盤(pán)電控單元設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2009,31(1):78-80.
[2] 王正山,顧耀林,戴月明.全自動(dòng)汽車(chē)安全性能檢測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].汽車(chē)工程,2003,20(3):279-282.
[3] 秦貴和,葛安林.汽車(chē)網(wǎng)絡(luò)技術(shù)[J].汽車(chē)工程,2008,25(2):1-4.
[4] 田亮,喬弘.LIN總線協(xié)議分析[J].中國(guó)儀器儀表,2007,12(3):5-7.
[5] 付亮,李偉.CAN總線技術(shù)及其在現(xiàn)代汽車(chē)中的應(yīng)用[J].中國(guó)汽車(chē)制造,2006(7):23-26.
[6] 千承輝,蘇建,潘洪達(dá).基于CAN總線的汽車(chē)檢測(cè)技術(shù)研究[J].武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版,2006(6):489-491.
[7] 何進(jìn)進(jìn),肖金生.基于CAN總線的汽車(chē)電子標(biāo)識(shí)系統(tǒng)[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2007,29(1):15-18.
[8] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1999:23-87.
[9] 王毅峰,李令奇.基于CAN總線的分布式數(shù)據(jù)采集與控制系統(tǒng)[J].工業(yè)控制計(jì)算機(jī),2000(5):34-38.
[10] 胡思德.汽車(chē)車(chē)載網(wǎng)絡(luò)(VAN/CAN/LIN)技術(shù)詳解[M].北京:機(jī)械工業(yè)出版社,2006:82-183.
[11] 王小偉,余先濤,戴延浩.基于CAN總線的接觸網(wǎng)隔離開(kāi)關(guān)監(jiān)控系統(tǒng)設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2010,32(5):703-706.