SAE J1708

维基百科,自由的百科全书

J1708是由國際汽車工程學會發布並維護的串列通訊標準,主要用於重型汽車電子系統中的電子控制器(ECU)之間的資料傳輸,標準採用RS485之通訊方式,但用不同的輸出電路以達到全雙工之目的;與開放式系統互聯模型(OSI模型)相比,J1708定義了實體層,常見運行在J1708標準上的協定為SAE J1587 和 SAE J1922

特性

J1708使用與RS-485相同的收發器,然而J1708的串列輸出連接收發器之傳輸始能(DE),而非傳輸輸入(DI),因此需要在使能之前加上反相器。匯流排支持至少20個使用這些收發器的節點。J1708不使用RS-485所使用的總線端接電阻,而是以上拉電阻將線A維持在高電位,下拉電阻將線B維持在低電位。

通信

J1708可隨機存取匯流排,任何節點都可在需要時進行傳送。匯流排必須至少處於空閒模式一次匯流排存取時間後,才可進行存取。

如果同時有兩個封包傳送,在匯流排上發生衝突,則兩個節點都必須放棄此次傳送,取消傳送,然後等待至少一個存取時間後重新傳送。等待時間由優先級決定,高優先級的等待時間較短。

組成

每筆封包最多不超過21個字節,每個字節包含一個起始位、8個資料位、一個停止位,起始位為邏輯低電位,停止位反之,資料位由最低有效位LSB開始傳送。

每個封包由一個封包ID(MID)、n個數據、及一個校驗合組成,數據部分由上層標準規範(ex. J1587)。

(MID + 所有數據 + 校驗合) & 0xFF = 0

現狀

J1708雖仍被廣泛使用,但已漸漸被SAE J1939英语SAE J1939取代,而J1939是基於CAN BUS上的協定。