朱小龍
(1.重慶理工大學 重慶汽車學院,重慶 400054;2.奇瑞汽車股份有限公司,安徽蕪湖 241006)
由Bosch提出的CAN標準最早在歐洲汽車上被廣泛采用,后來美國、日本的汽車行業也使用它作為B級或C級汽車網絡,而且也被其他行業采用。CAN是目前應用最廣泛、支撐元件最豐富的汽車網絡標準,因此CAN總線已經成為幾乎所有汽車廠商都采用的控制器聯網手段。為此,美國汽車工程師協會于1994年12月制定并發布了以CAN總線為核心的車輛控制系統總線串行通信和控制協議,即SAE J1939標準。這個標準為車輛上各傳感器、執行器和控制器提供了建立在CAN總線之上的標準化的高速網絡連接,使得不同廠商生產的部件可以使用統一的結構方式實現數據共享,從而為整車一體化控制奠定了基礎。
另外,車輛動力系統和傳動系統是相互影響、相互關聯的,只有對發動機和變速器進行協調控制,才可充分發揮它們各自的優良性能。而采用CAN通信方式實現動力傳動一體化控制,可協調控制發動機、離合器、變速器以提高整車的行駛性能,同時機械式自動變速器(AMT)電子控制單元和電噴柴油機電子控制模塊可共用傳感器,實現資源共享,減少了汽車整車的硬件數目,降低了汽車生產成本,并可進一步通過數據共享和發動機的協調控制,有效地提高自動變速汽車起步和換擋的品質。
1991年9月博世(Bosch)公司制定并發布了完整的CAN技術規范(Version 2.0),1993年11月ISO頒布了道路交通運載工具-數字信息交換-高速通信控制器局域網國際標準(ISO11898),使CAN總線正式成為一種標準化、規范化的官方現場總線協議。為保證CAN總線技術的開放性,上述CAN協議僅定義了物理層子協議和數據鏈路層子協議,并未對CAN總線結構體系中的應用層做出具體規定,用戶可以按照各自的需要自行定義應用層子協議。因此,可以將上述CAN協議視為是CAN總線的基本協議。
CAN 2.0B版本中規定CAN控制器的標志符長度可以是11位或29位,遵循CAN2.0B協議的CAN控制器可以發送和接收11位標識符的標準格式報文或29位標識符的擴展格式報文,但必須使用能辨別幀種類的位代碼。圖1為CAN標準幀報文,在仲裁場中標識位為11位;圖2為CAN擴展幀報文(即SAE J1939標準幀格式),在仲裁場中標識位為29位。
SAE J1939標準的全稱是車輛控制系統總線串行通信和控制標準化協議。它采用CAN通信協議作為網絡核心,按照OSI模型對通信的分層制定相關子標準,特別是在應用層子協議中對通信所傳輸的有效信息做出了統一明確的定義,因而它屬于CAN總線的高層協議。SAE根據技術發展和應用狀況不定期地對該標準進行更新,目前版本的 SAE J1939標準共由 J1939——車輛網絡串行通信和控制總標準、J1939/11——物理層子標準、J1939/21——數據鏈路層子標準、J1939/71——車輛應用層子標準等10個子標準組成。
SAE J1939標準在CAN總線的基礎上為用戶提供了一套既有完整性又不失開放性的現代車輛電子控制標準化網絡通信協議。SAE J1939標準規定的數據傳輸速率為250 kbps,每個數據幀的最大長度為150位,其中有效數據位64位,優先級最高的節點的數據等待時間小于134 μs。在傳送64位有效數據的情況下,傳輸時間最小為1 ms。數據的刷新率根據其特定用途使用不同的時間值,例如對于高速控制報文要求刷新率為20 ms,而對于另一些數據,其刷新率可以長達1 s。不使用CAN總線最高速率(1 Mbps)并且規定參數刷新率的原因是為了在保證數據傳輸實時性的基礎上為盡可能多的參數留有足夠帶寬,避免當總線節點較多時由于需要傳輸的數據量很大而造成總線擁堵,也為控制設備提供更加可靠的參數來源。
由以上分析可知:SAE J1939標準的特點使得它成為車輛控制系統實現信息共享的重要手段,可以滿足車輛控制的實時性、可靠性和可擴展性要求,并規定了一系列動力傳動控制參數,為建立車輛動力傳動一體化通信控制系統奠定了基礎。

圖1 CAN標準幀格式

圖2 CAN擴展幀格式(SAE J1939標準幀格式)
本文建立的車輛動力傳動一體化通信控制網絡采用SAE1939規定的基本網絡拓撲結構,即總線型拓撲。
動力傳動一體化控制系統需要在車輛行駛過程中實時控制電控柴油機、自動變速器,使三者協調動作以順利完成起步和換擋過程,系統主要控制目標應為柴油機轉速、離合器行程和變速器擋位。因此機械式自動變速器 (AMT)電子控制單元、電噴柴油機電子控制模塊是通信網絡中的2個主要節點。同時,為了實時觀測網絡中的重要數據,如發動機轉速等,特設計了液晶顯示節點。最后出于對系統可靠性的考慮,建立了總線監控節點。各節點通過CAN總線有機地連接起來,可以使電控柴油機和AMT作為一個整體來控制,并且實現節點間的數據共享。
根據SAE1939標準規定,總線速率為250 kb/s,連接線采用屏蔽雙絞線,總線兩端采用120 Ω電阻終結。該動力傳動一體化通信控制網絡結構如圖3所示。
在組建CAN通信網絡的過程中,應注意使屏蔽雙絞線接地,否則,會導致通信的失敗。
2.2.1 報文標識符的確定
在符合SAE1939標準的通信過程中,報文標識符的確定是第1步,也是關鍵的一步。隨后的報文封裝和發送、接受時的標識符過濾都需要用到標識符,因此標識符的正確與否至關重要。以下給出了根據SAE1939標準規定的參數組的信息確定標識符的過程。
一個SAE J1939標準幀報文(即CAN擴展幀報文,如圖2所示)包含1個單獨的協議數據單元(PDU)。協議數據單元由7個預定義的場組成,見圖4。這些場包含應用層提供的信息,它們是優先權(P)、保留位(R)、數據頁(DP)、協議數據單元格式(PF)、協議數據單元特性(PS)、源地址(SA)和數據場。除數據場外,其他場正好組成29位標識符。

圖3 動力傳動一體化通信控制網絡結構

圖4 SAE J1939標準協議數據單元格式
但SAE J1939標準并沒有直接給出CAN網絡中可以通信的PDU的格式,只是給出了可以通信的參數組和參數組號。參數組號以24位二進制碼表示,用于參數的分類和參數信息在數據幀中的封裝。參數組號由以下幾部分組成:6位0、保留位、數據頁位、協議數據單元格式場(8位)和組擴展場(8位)。參數組號大部分由SAE J1939標準規定,還有一部分參數組號可以由制造商按照需要分配。SAE J1939/71子標準(應用層子標準)中對參數和參數組進行了更為具體的說明。
下面以發動機控制參數組2為例加以說明。
從標準中查得發動機控制參數組2的參數組號為61443,再從SAE J1939/71子標準中得到該參數組的規定:
刷新率:50 ms
數據長度:8字節
數據頁:0
協議數據單元格式:240
協議數據單元特性:3
默認優先級:3參數組號:61443(00F00316)
字節1:狀態_EEC2位:
8~5未定義
4,3加速踏板降檔開關
2,1加速踏板低怠速開關
字節2:加速踏板位置
字節3:當前轉速下載荷百分比
字節4~8:未定義
那么根據標準規定便可得出29位標識符中的優先權(P)、數據頁(DP)、協議數據單元格式(PF)、協議數據單元特性(PS),再從SAE1939總標準的源地址的列表中查得發動機的地址為0002。另外所有報文傳送時應將SAE保留位設為0。這樣便得該參數組對應的29位標識符為:0CF0030016。
同理可得到所使用的其他參數組的標識符。
2.2.2 通信網絡中所用參數
本通信網絡里主要采用了2個典型參數在機械式自動變速器(AMT)電子控制單元、電噴柴油機電子控制模塊、液晶顯示節點、總線監控節點之間進行通信,其方向如表1所示。
以下對這2個參數進行說明。
油門位置,即油門實際位置與油門最大位置的比值。此項參數除作為確定動力傳動系要求的輸入之外,還向變速器及其他控制系統提供駕駛員動作的信息。在油門內部鎖止開關和遠程油門激活開關均處于關閉狀態下,此參數用于柴油機和變速器的控制。這是動力傳動系統中非常重要的參數。
發動機轉速,即發動機曲軸的轉速,體現發動機的工作狀態。

表1 通信網絡中所用參數及傳輸方向
SAE1939標準中對這2個參數所在的參數組及性質進行了進行了詳細的規定:
油門位置
所在參數組:61443
參數在數據場的位置: 第2字節
參數范圍:0%至100%
分辨率:0.4%
刷新率:50 ms
29位標識符:0CF0030016
發動機轉速
所在參數組:61444
參數在數據場的位置: 第4~5字節
參數范圍:0~8 031.875 r/min
分辨率:0.125 r/min
刷新率:20 ms
29位標識符:0CF0040016
2.2.3 通信程序設計
通信網絡中共有4個節點,其中柴油機采用的是美國康明斯公司(CUMMINS)生產的共軌噴射柴油發動機ISBe25030。柴油機電控單元與外界通信采用符合SAE J1939標準的接口。總線監控接點采用周立功單片機公司生產的USBCAN智能接口卡,帶有2路CAN接口,可以使PC機通過USB總線連接至CAN網絡,因此,這2個節點不需要再進行軟件設計,只需要針對AMT節點和液晶顯示節點進行程序編寫。
通信系統的軟件采用結構化程序設計方法編寫,軟件應具有良好的模塊性、可修改性及可移植性。本研究采用C語言進行編程。
軟件分兩大部分:AMT節點通信程序和液晶顯示節點的通信程序和顯示程序。AMT節點通信程序又包括初始化程序、發送程序、接收中斷程序;液晶顯示接點的通信程序結構與AMT節點相同,而顯示程序包括初始化程序、清屏程序、寫指令程序、寫數據程序和寫字符程序。
在接收程序中有一個問題需要注意,那就是:無論是AMT節點的單片機MC68376所帶的CAN控制模塊——TOUCAN,還是液晶顯示節點的單片機 MC68HC912D60的CAN控制模塊——MSCAN12,其消息緩沖器的標識符存放寄存器都是32位的,這時程序就要將29位標識符按照CAN控制模塊的要求轉化為32位標識符,否則通信便無法正常進行。
AMT節點的接受中斷程序和液晶顯示節點的寫字符程序的流程如圖5、6所示。
為了驗證該通信網絡的可行性、可靠性和有效性,在某宇通樣車上進行了試驗。在汽車行駛情況下,該通信網絡工作正常,油門位置和發動機轉速在機械式自動變速器(AMT)電子控制單元、電噴柴油機電子控制模塊之間實現了共享,并且液晶顯示節點也能正常顯示(見圖7)。
1)在符合SAE1939標準的前提下,利用CAN總線可以實現電控發動機和自動變速器的通信,使車輛動力傳動一體化成為可能。
2)機械式自動變速器(AMT)電子控制單元和電噴柴油機電子控制模塊可以共享參數,減少了傳感器的數目,同時也減少了連接線束,因而降低了動力傳動系統的成本。
3)基于SAE1939標準的CAN通信網絡具有高速率、高可靠性,符合車輛動力傳動一體化的實時性和可靠性要求。

圖5 液晶顯示節點寫字符程序流程

圖6 AMT節點受中斷程序流程

圖7 液晶顯示節點的工作情況
[1]康建輝,張慶順.單片機控制液晶顯示器在汽車儀表盤的應用[J].西安:現代電子技術,2002(3).
[2]孫勇俊,魯統利,張建勇.基于CAN總線的AMT通信模塊設計[J].微計算機信息,2007(2):284-286.
[3]高小玲.CFA6470G越野車動力傳動系統振動研究[J].四川兵工學報,2004(5):26-27.
[4]袁晨恒,鄧兆祥,姜艷軍,等.轎車傳動系扭轉振動模型分析與計算[J].重慶理工大學學報:自然科學版,2010(7):18-22.
[5]張勇,陸勇.CAN總線在車身低速電器中的應用[J].重慶理工大學學報:自然科學版,2010(6):5-8.
[6]陳國強.基于CAN總線的客車電氣系統設計與ASR故障診斷[J].客車技術與研究,2012(2):43-45.