提到SAE J1939協議就不得不提CAN通信,你們都知道CAN是目前比較流行的一種現場總線,CAN 總線是一種串行數據通訊協議,最先由德國 BOSCH公司推出 ,用於汽車內部測量與執行部件之間的數據通訊。 CAN 推出以後,世界上各大半導體生產廠商迅速推出各類集成有 CAN 協議的產品,因爲獲得衆多產品的支持,使得 CAN 在短時間內獲得普遍應用。CAN 在全世界範圍的應用和用戶在不斷擴大。具體的CAN 基本協議,能夠參考BOSCH公司的官方文檔。微信
CAN只規定了底層的協議,對高層的應用協議並無作具體規定,這就給一些高層協議的開發留下了很大的空間,像CANOpen,Devicenet,以及SAE J1939等都是比較流行的CAN高層協議。性能
SAEJ1939 協議是由汽車工程協會(SAE)定義的, SAE J1939 協議在商用車輛、艦船、軌道機車、農業機械和大型發動機中是應用最普遍的應用層協議,基於傳輸可靠性能優越的CAN-bus總線,可達到250Kbps的通信速率。在協議中,不只指定了傳輸類型、報文結構及其分段、流量檢查等,並且報文內容自己也作了精確的定義, SAE J1939 協議由美國SAE( Society of Automotive Engineer)組織維護和推廣。spa
CAN 總線的特色
多主站依據優先權進行總線訪問;
非破壞性的基於優先權的總線仲裁;
藉助接收濾波的多地址信息傳送;
遠程數據請求;
配置靈活;
全系統的數據相容性;
錯誤檢測和出錯信令;
發送期間若丟失仲裁或因爲出錯而遭破壞的數據包可自動重發;
暫時錯誤和永久性故障節點的判別以及故障節點與 CAN 總線的自動
脫離。.net
主要協議文檔:
ci
J1939/11
開發
J1939/13
文檔
J1939/15
get
J1939/21產品
J1939/31class
J1939/71
J1939/73
J1939/74
J1939/75
J1939/81
J1939/84
具體協議內容能夠參考官方文檔。其中21,71,74,75,81幾個文檔對軟件的實現比較重要,能夠重點關注。
本文分享自微信公衆號 - 嵌入式程序猿(InterruptISR)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。