早在1994年,美國移動源商用車中動力系統與ECU之間的通訊采用了SAEJ1587/J1708,由于這兩種協議使用微處理器的串行通訊,因而數據質量較低。速銳得在大量現有車型測試中,涉及國六OBD排放移動源的動力系統和ECU之間的通訊都更新到了SAE J1939,有的采用的是ISO15765,也有部分采用的是 ISO-14229。這些類型的通訊協議大多用于卡車、大客車、建筑機械、農業機械等CAN通訊領域。
SAE J1939 和他們的前身相比,主要區別在于SAEJ1708/1587是一種廣泛用于B類網絡的協議,他主要提供簡單的信息交換,其中包括電子控制單元的診斷數據。而SAE J1939是基于CAN總線的協議,波特率可達250kb/s,一種傳輸速率較高的C類通訊網絡協議,那么在J1939里不僅可以實現J1708所有網絡功能,還可支持分布在整個車輛中的電子控制系統之間的實時性閉環控制和通信。
國六OBD排放在線檢測,就需要在這個原有的閉環通訊采集到相應的排放數據,那么在SAE J1939的物理層和數據鏈路層可以參考 CAN2.0B協議為基礎,它也和普通的CAN網絡結構一樣,任何節點在CAN總線空閑時可向總線上傳輸報文,每個報文都包涵標識符,采用CSMA/CD非破壞仲裁機制解決數據沖.突。
我們知道,CAN協議在OSI模型中只定義了物理層和數據鏈路層的MAC層,SAE J1939以 CAN2.0B為基礎,它還定義了網絡層和應用層的協議,SAE J1939為傳輸層、會話層和表示層預留了位置,以便將來擴展。
J1939的物理層都可以用做主網或子網物理層,可以采集到的數據除了發動機以外,還可以采集剎車系統、減速器、燈光、儀表、加熱及音響控制、車窗及鎖、發動機防盜,通過4G或者5G網絡通訊,實現明確的需求目的。針對智能交通系統ITS在移動源在車輛中的應用中,商用車輛制造商也愿意將某些輔助設備連接到車輛網絡上,整個車輛能夠被經常看作輔助設備的集合體,那么也反映了橫向的整合能力,但是商用車輛為ITS提供單獨的協議是沒有好處的,基于這個原因,SAE在考慮最初開發階段就已經將ITS應用放進了考慮之內,為此,我們所看到的ITS應用都可能使用的J1939。
SAE J1939和ITS數據總線之間,就需要有網關提供一個接口將其連接,商用車制造商有權決定是否將這樣的附加網絡及相關的網關功能添加到車輛上,網關比橋接器復雜得多,也更昂貴。在乘用車中,目前帶網關的車輛已經很多了,很多車型采集CAN總線數據都需要繞過網關,這里不贅述了。
速銳得在適配和采集SAE J1939這些國六OBD排放的移動源車型中實踐結論得出,物理介質、傳輸速率250kb/s、同一網絡上最大子系統數為30個、最大傳輸線長度算的約為40米(一般都用不到40M)等,總之,物理層可實現的功能是:位表示、位定時、同步、總線故障檢測、物理媒介及其附屬裝置之間的機械和電氣接口,這些都是通過CAN來實現的。
商用車實際網絡通訊,距離都比較長,一般采用為屏蔽的雙絞線,CAN總線通訊線由一條CAN H、一條CAN L 、一條CAN SHLD組成,CAN H一般為黃色、CAN L為綠色,實測兩根信號線之間以1MHz速度傳輸。信號線總電阻由每個ECU的總線標準參數決定。連接CAN網絡中的通信線纜,一般有三芯、九芯,現在都直接采用OBD2標準接口了。
SAE J1939數據鏈路上是以CAN 2.0為基礎,通過CAN總線進行數據通訊的。它的數據鏈路層定義了信息幀的數據結構、編碼規則、包括通訊優先權、傳輸方式、通信要求、總線仲裁、錯誤檢測及處理,它負責將CAN 擴展幀的29位標識符重新分組定義,使報文的標志服就能夠描述報文的全部特征,包括目標地址、源地址等內容。目前支持五種類型消息,分別為命令、請求、廣播/響應、確認和群擴展。對于出現在CAN數據幀換種數據場的多字節參數,一般存放在最低字節。
應該注意的幾個問題:
1、高速數據更新
當遇到數據更新速度很高,要求在很短的時間作出反應時,如果可能的話,允許使用硬件的消息過濾。
2、請求調度
如果正準備請求發送的信息在請求之前已經被接收到了,那么這個請求調度應該被取消。轉換說,如果在請求調度之前50ms信息已經被接收了,那么就不要再發出請求。被推薦用于廣播的參數群不應該被提出請求,但在超過推薦使用的廣播時間的特殊情況以外。這個和乘用車及其類似,之前作過一篇《速銳得破解寶馬奧迪大眾捷豹路虎CAN總線訪問控制經驗》可吸收進來。
3、設備響應時間和默認超時
所有設備在被要求做出響應時,必須要在200毫秒內做出響應。所有等待響應的設備必須在放棄和重試前,至少等待1.25s,這個時間確保了所有由于總線訪問或消息傳輸經過橋接器的等待時間不會導致不必要的超時。需要時,可以特定的應用使用不同的時間值。
發送至指定目標地址的多組消息中,數據之間的時間間隔是0-200毫秒,這意味著當標志符相同時可能產生背對背消息。使用CTS機制可以確保數據包之間有指定的時間間隔。在多組廣播消息中,數據包之間所需要的時間間隔是50-200毫秒。50毫秒的最短時間可以保證響應者有時間從CAN硬件中收取數據。這時,響應者應使用250毫秒的超時(為200毫秒的時間間隔提供了余量)。
國六OBD排放移動源(商用車)的J1939消息格式參數中每一個都可以用ASCII碼表達,或者由兩個或兩個以上的字位組成功能狀態,字母數字字符將首先作為最高有效字節進行傳送。對每個參數都應該確定他的類型,數據的類型一般是狀態值或者測量值。狀態類型表示一個多狀態參數的目前狀態,或者傳輸節點在執行操作后所產生的結果。這個操作是根據本地或者網絡的測量值或者狀態信息進行計算的結果。
要注意的是這個操作不需要有特定的信息,例如,狀態數據表示有一個電池線圈被激活了,但不需要對他進行測試來確認這個電磁線圈已經實現了它的功能。狀態類型數據有發動機啟動、PTO速度控制運行、巡航控制運行、整車工況、故障碼情況、轉矩等等,測試值類型數據表示了傳輸節點對某個參數測量后得到當前值,這樣可以確定已定義參數的狀態。屬于測量值類型的數據有進氣壓力、點火開關、巡航設置開關打開、最大巡航速度、巡航設置速度、發動機速度以及當前負載等等。
通常由幾個參數組成一個參數群,一個參數群的定義包括了他們的屬性,例如刷新周期、數據長度、數據頁PG、PDU格式PF、PDU的擴展場、默認優先級、參數組數PGN、參數列表。如果一個參數的數據長度大于8字節,比如車架號,就必須按照分幀傳輸協議進行。如果現有已有參數群不允許包含新的參數,那么就會重新定義一個新的參數群,例如,按照實現功能(汽油、冷卻液、燃料等),而不按照類型(溫度、壓力、速度等),具備相近的更新數據,按照通用的子系統用于測量和發送數據的設備。