重型柴油車標準CAN協議遵循J1939,一樣適用於一些工程機械和大部分的客車,SAE J1939物理層基於ISO11898-2,速率爲250kbit/s。CAN(Controller Area Network)總線信息傳輸着車輛各總成控制器的重要控制信號,如何直接從CAN總線上獲取、保存與分析報文很是重要。安全
咱們針對各種不一樣的汽車作數據採集,這些數據不只有利於駕駛員更好獲取駕駛信息,提升車輛操控性,並且便於交通事故的調查分析,爲汽車智能化提供了數據基礎。SAE J1939協議是目前客車、卡車等大型汽車中最普遍的應用層協議,其針對車輛內部ECU(Electronic Control Unit)的報文格式、ISO拉丁字母符集、參數範圍、傳輸重複率、地址配置、發動機參數命名、通訊方式及報文發送優先級等作了明確的規定。
SAE J1939的消息格式使用參數羣編號做爲一組參數的標號。這些參數中的每個均可以用ASCII碼錶達,或者由兩個或者兩個以上的字母組成的功能狀態。字母數字字符將首先做爲最高位的有效字節進行傳送,除非另外有特殊指定,字母數字字符都遵守ISO字母組,其餘兩個或者兩個以上數字字節組成的參數,首先做爲最低位有效字節進行傳送。網絡
對每一個參數都應該肯定它的數據類型,數據的類型能夠是狀態值或者是測量值。狀態值表示一個或多個狀態參數的目前狀態,好比車門爲打開狀態、或者爲關閉狀態,當下車速是60碼,這些都是狀態數據,這些都是傳輸節點在執行操做後所產生的結果。這個操做是根據本地或者網絡測量值或者狀態信息進行計算的結果。要注意的是,這樣的操做不須要有特定的確認信息。例如狀態數據表示有一個電磁線圈已經被激活了,咱們並不須要對他進行測試來確認這個電磁線圈已經實現了它的功能,直接經過報文信息比對即可以輸出這個結果。狀態類的數據有發動機剎車被啓動,速度運行、巡航控制運行、巡航狀態、故障代碼、轉矩、油門以及這些狀態數據不對稱性的調整等等。數據結構
測量之類的數據表示了傳輸節點對某個參數測量後獲得的當前值,這樣能夠肯定已定義的參數的狀態。數據測量值類型的數據有進氣壓力、點火開關、巡航設置開關打開、最大巡航速度、剩餘油量、速度、負載百分比等等。ide
通訊參數的定義:
看下面三個表格,包含了肯定的傳輸信號有效數值範圍、表示離散參數的傳輸數值(測量值)及表示控制模式命令狀態的數值範圍。在錯誤指示範圍內的數值表示,因爲傳感器、子系統或功能模塊中出現某種類型的錯誤,於是沒有可利用的參數(好比該車沒有這個傳感器)。測試
在不可用的範圍內的素質表示,模塊傳遞的消息包含的參數在該模塊中不可用或者不支持,在不可被請求範圍內的數值提供了設備傳輸命令消息和識別那些不要接收設備發出響應的參數的手段。it
若是一個元件故障阻礙了某個參數有效數據的傳輸,那表示離散參數的傳輸數值及控制命令傳輸數值的下表中描述的錯誤顯示數值應該用於代替該參數的數值。然而,如若測量或計算出來的數據所產生的數值是否有效的,但它超過了已定義的範圍,那麼咱們採集到的錯誤顯示的數值就不該該使用,而應該用合適的最小或者最大數值進行傳輸,採集的時候容易掉坑。class
傳輸信號有效數值範圍
範圍名稱 1字節 2字節 4字節 ASCII
有效信號 00-FA 0000-FAFF 00000000-FAFFFFFF 01-FE
特定參數指示 FB FB00-FBFF FBXXXXXX -
保留給未來指示使用的範圍 FC-FD FC00-FDFF FC000000-FDFFFFFF -
錯誤指示 FE FEXX FEXXXXXX 00
不可用或者不可請求 FF FFXX FFXXXXXX FF基礎
表示離散參數的傳輸數值(測量值)
範圍名稱 傳輸數值
禁止(關閉,非運行等) 00
啓動(打開,正在運行等) 01
錯誤提示 10
不可用或不能裝 11
表示控制命令的傳輸數值(狀態)
範圍名稱 傳輸數值
用於中止功能的命令(關閉等) 00
用於啓動功能的命令(打開等) 01
保留 10
可有可無/無動做(看功能決定) 11配置
咱們在採集數據的過程當中會涉及到比例、界限、偏移量、和傳送等,這樣給在CAN總線上給定的參數類型(如溫度、壓力、速度)中儘可能保持數據的一致性。例如大衆汽車的方向盤轉向角度經過CAN報文采集的是-32768至32768的範圍,它的分辨率是0.1秒位,數據長度是16位,偏移量就是-3276.8,爲此能夠斷定這個的角度和方向。另如制動踏板,這個數據在DBC報文顯示踩下爲01,放開爲00,也十分容易判別。終端
相似這樣的數據採集,能夠從DBC得到豐富的數據包含了計數、里程、剩餘油量、電流、進氣流量、耗油量、調速增益、齒輪傳動比、重力負荷、進氣壓力、溫度等等,在BCM系統還能夠採集安全帶、手剎、車門狀態、鑰匙狀態、方向盤轉向角度、動力開關等,控制上基本均可以實現動力開閉、閃燈鳴笛、門鎖開閉、升窗、關天窗、控雨刮、尾箱等。
發動機的有些參數是根據曲柄角的變化進行計算或者更新的,它們不是在某個特定的時間後進行的。這個狀況下,參考特定的更新就會失效,由於這個時候是按照轉速變化而變化。爲了不網絡負擔太重,咱們採用總線監聽的方式,讀懂了發動機的通訊與控制參數,發動機也是儘可能縮短採樣時間、運算和傳輸數據的反應時間。大致有2種,一是基於時間的採樣、運算和傳輸;二是基於時間和基於曲柄角混合使用的採樣、運算和傳輸。這時,爲了在可接受的範圍內保持數據更新速度,曲柄角的角度值會根據當前的運轉速度,在先後更新的時間間隔中改變。
例以下面幾組發動機電子控制單元的主報文幀內容:
Torque/ Speed Conrtol-轉矩速度控制
發動節點:HCU
接受節點:ECU
發送週期:取決控制目的
數據長度:8
數據頁:0
PDU格式:0
特定PDU:DA
默認優先值(P):3
參數羣編號(PGN):0
起始位 長度 數據名 SPN
1.1 2bit 發動機控制模式 695
1.3 2bit 發動機請求速度控制情況 696
1.5 2bit 控制模式優先級 897
2-3 2 byte 所請求的輸出轉速/速度極限 898
4 1 byte 所請求的轉/轉矩限制 518
5.1 3bit TSC發送速率 3349
5.4 5bit TSC 控制目的 3350
Turbocharger-渦輪增壓器
發送週期:1秒
數據長度:8
數據頁:0
PDU格式:254
特定PDU:221
默認優先值(P):6
參數羣編號(PGN):0XFEDD
起始位 長度 數據名 SPN
1 1 byte 渦輪增壓器潤滑油壓力 104
2-3 2 byte 渦輪增壓器1轉速 103
4.7 2bit 渦輪增壓器油位開關 1665
在國六遠程OBD在線排放終端控制器的系統中,速銳得就是採用這一特性,從J1939的數據協議中採集得到發動機工況包含了車速、大氣壓力、發動機扭矩、摩擦扭矩、發動機轉速、燃料流量、SCR上游氮氧化物傳感器輸出值、反應劑餘量、進氣量、SCR出入口溫度、DPF壓差、發動機冷卻液溫度、郵箱液平面百分比、定位狀態、經緯度、累計里程、發動機扭矩模式、油門踏板、油耗、尿素箱溫度、實際尿素噴射量、DPF排氣溫度等數據,經過移動4G/5G網絡,採用GB-17691網絡通信傳輸協議,將終端數據發送給數據平臺,實現重型車J1939在環保排放領域的CAN總線數據應用。