劉金鳳
(煙臺汽車工程職業學院 車輛運用工程系, 煙臺 264000)
汽車電子化程度隨著汽車技術的發展而逐漸提高,汽車總線技術更能滿足數據通信的要求,目前在汽車電子領域中,建立基于總線技術的汽車電氣控制系統是研究的熱點,而實時交換大量控制信號在基于CAN總線的綜合控制系統中即可實現,并且表現出了較強的抗干擾性能和較高的傳輸速率,該系統還具備線路簡化、可根據實際需求進行擴展等優勢,逐漸受到國內外汽車行業的高度重視。本文在汽車上運用信息技術,同時借鑒現場總線控制技術,保證信息流的實時、有效、全面,對于汽車系統的驅動則通過這些信息流來實現,汽車采用分布式電氣控制系統,以降低使用成本,提高工作效率[1]。
汽車電氣控制系統包含大量的用電器件,這些用電器件能夠實現大功率的驅動,是行車必備的用電設備,包括大型客車中用來給乘客提供服務的用電設備(如飲水機、通道燈、電視機、閱讀燈等)。汽車底盤有數量較多的傳感器,包括速度、水溫、擋位、機油、剎車等傳感器,還需大量的開關包括門、發動機艙及儀表盤等,中央控制器需要通過導線接收或反饋這些設備和傳感器信息,這就導致了大量導線捆成線扎的形成,點對點電氣控制方式,如圖1所示。

圖1 點對點電氣控制方式
電子線路復雜程度逐漸提高,給汽車設計、裝配、維護等工作增加了難度,線路接頭數量的增加不利于安全性的提升,線重和占用空間會一定程度上降低效率。汽車內部相對運動的部分間(如車門窗的線束)會因過大的線路體積而加大過線的難度,為解決不斷增加的電子裝置帶來的問題,對于汽車電氣控制系統的設計,基于串行的信息傳輸成為解決問題的必然選擇[2]。
CAN總線,可以雙絞線、光導纖維或同軸電纜作為通信介質,信號以差分電壓的形式出現,如圖2所示。

圖2 CAN總線位信號
CAN總線通信控制器中可成幀處理通信數據,對CAN協議的數據鏈路層和物理層功能進行了集成,CAN協議通過對通信數據塊進行編碼取代了傳統的站地址編碼,這是該協議的一個最大特點,正是通過這種方法的使用,實現了在理論上不限制網絡內節點的個數,按照不同的 CAN 技術規范(2.0A或2.0B)可定義不同的數據塊(211或229個),不同節點據此可完成相同數據的同時接收,數據段長度最多為 8個字節,占用總線時間較短,確保了通信的實時性,這對分布式控制系統的實現極為重要,可滿足控制命令、數據測試及工作狀態的一般要求,采用CRC檢驗的CAN 協議提高了數據通信的可靠性,同時具備相應的錯誤處理功能。結合性價比以及應用前景,考慮到其極高的可靠性和獨特的設計,本文系統在開發研究的方向選擇了 CAN 總線[3]。
以電氣設備配置要求為依據,以金龍大型客車(XML6796E1G)為開發平臺,系統主要由前/左前/右前/后/主5個ECU節點組成,整體架構設計如圖3 所示。

圖3 系統整體架構
CAN總線采用星形拓撲結構,利用前、左前、右前及后4個ECU節點,汽車電氣控制系統實現了就近位置的信息采集(29 路開關量),將其組成一幀報文信息(按照 CAN 總線通信協議),主 ECU 節點完成報文信息的接收,并對其進行邏輯分析與判斷,然后將最終分析結果組成四幀報文信息(按照 CAN 通信協議),各目標 ECU 節點接收并濾波處理反饋回的報文信息,功率負載輸出控制模塊通過UART總線接收到各目標 ECU 節點發送的信息,完成 29 路功率輸出的驅動。由專用單片機(AT89C51)完成開關信息的采集及功率輸出的邏輯控制,每個ECU節點設計開關信息采集和功率負載輸出各29 路,其內部包括P0、P1、P2、P3四個口,共有32個 I/O 口,其中看門狗喂狗信號輸出口為P3.7,通信口為 P3.0 、P3.1[4]。前 ECU 節點主要負責對電控氣/電喇叭,以及左側車燈,雨刮器檔位開關,鑰匙開關的一擋 ACC、二擋ON和三擋STA ,左前側的轉向燈和霧燈等進行檢測和控制;右前 ECU節點主要負責對右側的近光燈、遠光燈、轉向燈、示廓燈、標志燈,前門的控踏步燈、指示燈開關、防夾開關,右前側的轉向燈、霧燈,噴水電機等進行檢測和控制;前 ECU 節點主要負責對ABS、機油壓力報警燈,儀表照明燈、TV 開關、前/后霧燈開關、行李倉燈開關等進行檢測和控制;后 ECU 節點主要負責對熄火電磁閥的電源1和電源2,后側的示闊燈、倒車燈、剎車燈、霧燈,以及空擋、倒車、后倉門限位、水位報警的開關等進行檢測和控制。由CAN總線為系統提供通信介質,實現大批數據信息共享及控制信號的實時交換,顯著提高電控單元信息利用率,從而保證汽車系統的運動是在實時有效的信息流的驅動下完成的[5]。
ECU節點不同應用程序的寫入以所在位置為依據,具體設計如圖4所示。

圖4 ECU節點設計
ECU節點中:功率負載輸出驅動口實現對汽車上所有功率負載的直接驅動,避免了繼電器工作帶來的安全隱患;汽車上各種開關量信息由29 路開關量輸入口采集;CAN 通信接口可采用帶屏蔽的雙絞線,該接口提供兩根通信線(CANH 和 CANL),正是通過良好外圍接口的提供,提高了各ECU 節點間的通信效果[6]。
CAN通信模塊對總線上(CAN)出現的報文信息進行驗收濾波,由主處理器讀取完報文信息后,主處理器將其釋放到接收緩沖區并對其進行格式轉換,功率輸出控制模塊實現串口信息的接收(通過 UART 總線),再按照一定的順序將其發送到單片機上各 I/O口,實現對各負載功率輸出的控制;對于各開關輸入點的狀況,將通過開關信息采集模塊完成循環檢測的過程,按照控制命令,將當前采集的開關狀態信息傳送至主處理器(通過 UART 總線),主控模塊進行分析比較后,將同上一次有異同的開關狀態信息組成一幀報文信息(按照一定格式),CAN 總線通過 CAN 通信模塊接收這些報文信息,并對其作出進一步處理,完成對各開關輸入點的循環檢測。
本文根據系統實際的功能將軟件架構設計為驅動層、轉換層和通信層3個層次,具體軟件結構如圖5所示。
系統通過3類消息的具體定義,即定義狀態消息,接口消息,器件消息,以實現各層模塊之間良好的通信效果。
引腳的電平變化情況輸入后,在發送給轉換層之前需將其轉換為輸入狀態信息,這一部分由輸入驅動模塊負責;轉換層接收到狀態信息后,需通過輸出驅動模塊將其轉變為實際引腳的電平變化;驅動層接收輸入狀態信息后,在發送給規則處理層供其進行邏輯分析之前,需通過輸入轉換模塊將其轉換為輸入器件消息;規則處理層接收到狀態信息(輸出器件)后,在發送給驅動層之前,需通過輸出轉換模塊將其轉換(或由輸入轉換模塊發送來的接口消息直接轉換)為輸出狀態信息,對于輸入器件消息(由輸入轉換模塊接收的消息),通過規則處理層模塊進行邏輯關系分析,并在發送給輸出轉換模塊之前,將其映射為輸出器件消息;信息在各轉換層和規則處理層間的交換過程,由通過通信模塊負責完成[7]。
為驗證本文系統的功能實現情況,在系統實驗平臺上完成了對本系統的測試,實驗嚴格按照 CAN2.0 協議,實驗平臺分為兩個階段:分別在汽車電氣模擬實驗臺和金龍大型客車(XML6796E1G)進行測試,由主ECU節點,左前和右前 ECU 節點,前、后 ECU 節點構成,完成對汽車電氣設備的控制,和對各種 ECU 傳感器信號的采集,并實現了儀表顯示,測試結果表明基于 CAN 總線的汽車電氣控制系統的設計,實現了在不同電子單元中對大批數據信息的共享,使系統內復雜控制信號的實時交換需求得以有效滿足,顯著提高了數據在不同功能電子單元間的通信能力,實現了高性能和高可靠性等獨特的設計目標,對汽車總線電氣控制系統改善具有現實意義。
汽車行業發展迅速,其電氣控制系統也在不斷更新和完善,本文主要對汽車電氣控制系統進行設計,設計該系統的目的在于提高電氣系統的利用率,該系統基于CAN總線,可以將控制信號轉換為信息流,汽車的電氣控制系統通過分布式的控制模式,進一步提高了控制的效率,分布式的控制模式突破了傳統的單一線束限制,實現了汽車電氣控制系統使用效率的顯著提高。