SUNCAN J1939 應用 – OBD 模擬器 Linux

介紹
CAN 最初是為了車用通訊而開發的,只運作於 OSI 模型的實體層(第 1 層)和資料鏈路層(第 2 層)。
然而,就像電話系統一樣,CAN 僅僅提供 ECU 之間的通訊基礎設施——若要讓裝置彼此真正理解,仍需要更高階的語言。
由美國汽車工程師協會(SAE)制定的 SAE J1939,建立在 CAN 之上,作為網路層(第 3 層)之上的協定。它被廣泛應用於重型車輛中。
本文並不探討 J1939 協定的細節,而是著重於展示 SUNCAN 如何實現基於 J1939 的應用。

OBD 模擬器
我們將使用 OBD 模擬器來實作 J1939 應用。OBD(車用診斷,On-Board Diagnostics)是一種汽車標準診斷協定,目前已在汽車市場中成為主流。它規範了故障診斷碼(DTCs)以及 OBD-II 接頭,使汽車技師能夠透過 CAN 匯流排存取即時車輛狀態與故障資訊。
這個 OBD 模擬器能讓 ECU 以 J1939 標準格式傳輸即時資料。我們將在 SUNCAN 上部署此配置,以執行符合 J1939 標準的資料傳輸。

 
 
  1. 接線
    OBD-II 連接器的第 6 腳和第 14 腳分別定義為 CAN 的 CANH 與 CANL 線。
    SUNCAN 的 DB9 連接器第 7 腳和第 2 腳分別定義為 CAN 的 CANH 與 CANL 線。
 
 
 
  1. J1939 PGN 與 SPN

    由於 PGN(參數群組號,Parameter Group Number)定義在 CAN ID 欄位中,且其長度超過 11 位元,因此 J1939 框架始終使用擴充格式傳輸。PGN 是代表特定訊息類型的程式碼。在重型車輛領域,它通常被稱為「功能訊息」或「功能群組」。例如,根據 J1939-71,EEC1(電子引擎控制器 1,Electronic Engine Controller 1)被定義為 PGN 61444。

    SPN(可疑參數號,Suspect Parameter Number)則作為重型車輛實際物理參數的識別碼。它們被歸類在各自的 PGN 之下。例如,在 PGN 61444 中,引擎轉速被定義為 SPN 190,並在承載資料(payload)中以兩個位元組表示。

    下圖所示的 PGN 61444 與 SPN 190,取自 SAE J1939-71。

 
 
  1. 實作:解析 J1939 PGN 與 SPN

    SUNCAN 設定
    目前,大多數 J1939 裝置使用的位元率為 250Kbps 或 500Kbps。只有在未來 J1939-FD 被廣泛採用後,才會普遍使用高於 2Mbps 的資料位元率。

 
  • 原始資料

    匯出模擬器的 CAN 框架會顯示在 J1939 解析之前的原始資料,這些資料必須被解碼,才能轉換為汽車技師可讀的資訊。n
 
 
 
 
 
 
  • ChatGPT 說:

    解析

    在這裡,我們使用 Python 的 can-j1939 模組來解析 J1939 框架。

 
  • Declaring Constants – PGNs
 
  • Declaring SPN190 resolution - Take Engine Speed as an example
 
  • Subscribe all J1939 message on the bus
 
  • On message callback funcation

 
  • Resolution parser method
 
  • Execution Results

  •  


新聞活動

SUNCAN J1939 應用 – OBD 模擬器 Linux

介紹
CAN 最初是為了車用通訊而開發的,只運作於 OSI 模型的實體層(第 1 層)和資料鏈路層(第 2 層)。
然而,就像電話系統一樣,CAN 僅僅提供 ECU 之間的通訊基礎設施——若要讓裝置彼此真正理解,仍需要更高階的語言。
由美國汽車工程師協會(SAE)制定的 SAE J1939,建立在 CAN 之上,作為網路層(第 3 層)之上的協定。它被廣泛應用於重型車輛中。
本文並不探討 J1939 協定的細節,而是著重於展示 SUNCAN 如何實現基於 J1939 的應用。

OBD 模擬器
我們將使用 OBD 模擬器來實作 J1939 應用。OBD(車用診斷,On-Board Diagnostics)是一種汽車標準診斷協定,目前已在汽車市場中成為主流。它規範了故障診斷碼(DTCs)以及 OBD-II 接頭,使汽車技師能夠透過 CAN 匯流排存取即時車輛狀態與故障資訊。
這個 OBD 模擬器能讓 ECU 以 J1939 標準格式傳輸即時資料。我們將在 SUNCAN 上部署此配置,以執行符合 J1939 標準的資料傳輸。

 
 
  1. 接線
    OBD-II 連接器的第 6 腳和第 14 腳分別定義為 CAN 的 CANH 與 CANL 線。
    SUNCAN 的 DB9 連接器第 7 腳和第 2 腳分別定義為 CAN 的 CANH 與 CANL 線。
 
 
 
  1. J1939 PGN 與 SPN

    由於 PGN(參數群組號,Parameter Group Number)定義在 CAN ID 欄位中,且其長度超過 11 位元,因此 J1939 框架始終使用擴充格式傳輸。PGN 是代表特定訊息類型的程式碼。在重型車輛領域,它通常被稱為「功能訊息」或「功能群組」。例如,根據 J1939-71,EEC1(電子引擎控制器 1,Electronic Engine Controller 1)被定義為 PGN 61444。

    SPN(可疑參數號,Suspect Parameter Number)則作為重型車輛實際物理參數的識別碼。它們被歸類在各自的 PGN 之下。例如,在 PGN 61444 中,引擎轉速被定義為 SPN 190,並在承載資料(payload)中以兩個位元組表示。

    下圖所示的 PGN 61444 與 SPN 190,取自 SAE J1939-71。

 
 
  1. 實作:解析 J1939 PGN 與 SPN

    SUNCAN 設定
    目前,大多數 J1939 裝置使用的位元率為 250Kbps 或 500Kbps。只有在未來 J1939-FD 被廣泛採用後,才會普遍使用高於 2Mbps 的資料位元率。

 
  • 原始資料

    匯出模擬器的 CAN 框架會顯示在 J1939 解析之前的原始資料,這些資料必須被解碼,才能轉換為汽車技師可讀的資訊。n
 
 
 
 
 
 
  • ChatGPT 說:

    解析

    在這裡,我們使用 Python 的 can-j1939 模組來解析 J1939 框架。

 
  • Declaring Constants – PGNs
 
  • Declaring SPN190 resolution - Take Engine Speed as an example
 
  • Subscribe all J1939 message on the bus
 
  • On message callback funcation

 
  • Resolution parser method
 
  • Execution Results

  •  


新聞活動

SUNCAN J1939 應用 – OBD 模擬器 Linux

介紹
CAN 最初是為了車用通訊而開發的,只運作於 OSI 模型的實體層(第 1 層)和資料鏈路層(第 2 層)。
然而,就像電話系統一樣,CAN 僅僅提供 ECU 之間的通訊基礎設施——若要讓裝置彼此真正理解,仍需要更高階的語言。
由美國汽車工程師協會(SAE)制定的 SAE J1939,建立在 CAN 之上,作為網路層(第 3 層)之上的協定。它被廣泛應用於重型車輛中。
本文並不探討 J1939 協定的細節,而是著重於展示 SUNCAN 如何實現基於 J1939 的應用。

OBD 模擬器
我們將使用 OBD 模擬器來實作 J1939 應用。OBD(車用診斷,On-Board Diagnostics)是一種汽車標準診斷協定,目前已在汽車市場中成為主流。它規範了故障診斷碼(DTCs)以及 OBD-II 接頭,使汽車技師能夠透過 CAN 匯流排存取即時車輛狀態與故障資訊。
這個 OBD 模擬器能讓 ECU 以 J1939 標準格式傳輸即時資料。我們將在 SUNCAN 上部署此配置,以執行符合 J1939 標準的資料傳輸。

 
 
  1. 接線
    OBD-II 連接器的第 6 腳和第 14 腳分別定義為 CAN 的 CANH 與 CANL 線。
    SUNCAN 的 DB9 連接器第 7 腳和第 2 腳分別定義為 CAN 的 CANH 與 CANL 線。
 
 
 
  1. J1939 PGN 與 SPN

    由於 PGN(參數群組號,Parameter Group Number)定義在 CAN ID 欄位中,且其長度超過 11 位元,因此 J1939 框架始終使用擴充格式傳輸。PGN 是代表特定訊息類型的程式碼。在重型車輛領域,它通常被稱為「功能訊息」或「功能群組」。例如,根據 J1939-71,EEC1(電子引擎控制器 1,Electronic Engine Controller 1)被定義為 PGN 61444。

    SPN(可疑參數號,Suspect Parameter Number)則作為重型車輛實際物理參數的識別碼。它們被歸類在各自的 PGN 之下。例如,在 PGN 61444 中,引擎轉速被定義為 SPN 190,並在承載資料(payload)中以兩個位元組表示。

    下圖所示的 PGN 61444 與 SPN 190,取自 SAE J1939-71。

 
 
  1. 實作:解析 J1939 PGN 與 SPN

    SUNCAN 設定
    目前,大多數 J1939 裝置使用的位元率為 250Kbps 或 500Kbps。只有在未來 J1939-FD 被廣泛採用後,才會普遍使用高於 2Mbps 的資料位元率。

 
  • 原始資料

    匯出模擬器的 CAN 框架會顯示在 J1939 解析之前的原始資料,這些資料必須被解碼,才能轉換為汽車技師可讀的資訊。n
 
 
 
 
 
 
  • ChatGPT 說:

    解析

    在這裡,我們使用 Python 的 can-j1939 模組來解析 J1939 框架。

 
  • Declaring Constants – PGNs
 
  • Declaring SPN190 resolution - Take Engine Speed as an example
 
  • Subscribe all J1939 message on the bus
 
  • On message callback funcation

 
  • Resolution parser method
 
  • Execution Results

  •  


新聞活動

SUNCAN J1939 應用 – OBD 模擬器 Linux

介紹
CAN 最初是為了車用通訊而開發的,只運作於 OSI 模型的實體層(第 1 層)和資料鏈路層(第 2 層)。
然而,就像電話系統一樣,CAN 僅僅提供 ECU 之間的通訊基礎設施——若要讓裝置彼此真正理解,仍需要更高階的語言。
由美國汽車工程師協會(SAE)制定的 SAE J1939,建立在 CAN 之上,作為網路層(第 3 層)之上的協定。它被廣泛應用於重型車輛中。
本文並不探討 J1939 協定的細節,而是著重於展示 SUNCAN 如何實現基於 J1939 的應用。

OBD 模擬器
我們將使用 OBD 模擬器來實作 J1939 應用。OBD(車用診斷,On-Board Diagnostics)是一種汽車標準診斷協定,目前已在汽車市場中成為主流。它規範了故障診斷碼(DTCs)以及 OBD-II 接頭,使汽車技師能夠透過 CAN 匯流排存取即時車輛狀態與故障資訊。
這個 OBD 模擬器能讓 ECU 以 J1939 標準格式傳輸即時資料。我們將在 SUNCAN 上部署此配置,以執行符合 J1939 標準的資料傳輸。

 
 
  1. 接線
    OBD-II 連接器的第 6 腳和第 14 腳分別定義為 CAN 的 CANH 與 CANL 線。
    SUNCAN 的 DB9 連接器第 7 腳和第 2 腳分別定義為 CAN 的 CANH 與 CANL 線。
 
 
 
  1. J1939 PGN 與 SPN

    由於 PGN(參數群組號,Parameter Group Number)定義在 CAN ID 欄位中,且其長度超過 11 位元,因此 J1939 框架始終使用擴充格式傳輸。PGN 是代表特定訊息類型的程式碼。在重型車輛領域,它通常被稱為「功能訊息」或「功能群組」。例如,根據 J1939-71,EEC1(電子引擎控制器 1,Electronic Engine Controller 1)被定義為 PGN 61444。

    SPN(可疑參數號,Suspect Parameter Number)則作為重型車輛實際物理參數的識別碼。它們被歸類在各自的 PGN 之下。例如,在 PGN 61444 中,引擎轉速被定義為 SPN 190,並在承載資料(payload)中以兩個位元組表示。

    下圖所示的 PGN 61444 與 SPN 190,取自 SAE J1939-71。

 
 
  1. 實作:解析 J1939 PGN 與 SPN

    SUNCAN 設定
    目前,大多數 J1939 裝置使用的位元率為 250Kbps 或 500Kbps。只有在未來 J1939-FD 被廣泛採用後,才會普遍使用高於 2Mbps 的資料位元率。

 
  • 原始資料

    匯出模擬器的 CAN 框架會顯示在 J1939 解析之前的原始資料,這些資料必須被解碼,才能轉換為汽車技師可讀的資訊。n
 
 
 
 
 
 
  • ChatGPT 說:

    解析

    在這裡,我們使用 Python 的 can-j1939 模組來解析 J1939 框架。

 
  • Declaring Constants – PGNs
 
  • Declaring SPN190 resolution - Take Engine Speed as an example
 
  • Subscribe all J1939 message on the bus
 
  • On message callback funcation

 
  • Resolution parser method
 
  • Execution Results

  •  


新聞活動

訂閱三泰科技電子報

訂閱三泰科技電子報

訂閱三泰科技電子報

訂閱三泰科技電子報

返回頂部
返回頂部
返回頂部