CAN 擷取
1. 建立節點
Section titled “1. 建立節點”(1) 進入 CommBridge 頁面的【智慧孿生】,在左側點選切換至【裝置智聯】。

(2) 依次拖曳 SocketCAN、資料處理和 MQTT 上傳外掛到外掛工作區,分別產生三個節點。

(3) 依次連線三個節點,連線順序:SocketCAN → 資料處理 → MQTT 上傳。

2. 建立方案
Section titled “2. 建立方案”(1) 按兩下 SocketCAN,點選【新增方案】按鈕。

(2) 填寫連線設定,匯入 dbc 檔案,點選【下一步】。

(3) 檢視分組和點位資訊。

(4) 點選【完成】,成功新增擷取方案。

(5) 開啟方案的開關,點選【儲存】。

3. 檢視結果
Section titled “3. 檢視結果”(1) 點選【裝置智聯】的【部署】按鈕,部署成功。

(2) 切換至【智慧孿生】,滑鼠移動至 SocketCAN 節點,彈出節點資訊清單。

(3) 點選方案,檢視該方案下各分組的點位即時資料和歷史資料。

4. 設定描述說明
Section titled “4. 設定描述說明”| 參數 | 描述 | 格式 | 舉例 | 備註 |
|---|---|---|---|---|
| 方案名稱 | 使用者自訂該方案的名稱 | 非空 | 擷取 can | |
| Can 介面 | 根據具體裝置上的實際 CAN 口決定 | 下拉式選單選擇 | vcan0 | |
| DBC | 詳見下文 | DBC 檔案 | testType.dbc | |
| 回傳的資料型別 | 擷取的即時資料的型別 | 下拉式選單選擇 | Phy | |
| 節流時間 | 跳過節流時間內的重複訊框直到超過節流時間或者資料變化,設定為0表示不進行節流 | 非空,數字,範圍:[0,2147483647] | Phy | |
| Socketcand | 是否開啟 socketcand,Socketcand 可透過網路介面存取計算機上的 CAN 介面。 | Yes、No | No | |
| Socketcand 埠 | 用於遠端除錯資料 | 數字 |
注意:
- DBC:是原始資料結構來源,同時應該注意,後面對分組(訊息)和資料(訊號)的所有修改都是進行合併操作到這個 dbc 結構中。
- 回傳的資料型別:Raw 回傳原始值;Phy 回傳物理值;PhyWIthUnit 回傳帶單位的物理值。
- 通訊協定使用 TCP/IP 連線和特定協定來傳輸 CAN 訊框和控制命令。目前只支援經典 CAN(Classical CAN),不支援 CAN FD。
| 參數 | 描述 | 格式 | 舉例 |
|---|---|---|---|
| 分組名稱 | 使用者自訂該分組的名稱 | 非空 | t_msg_1_unsigned |
| 訊息名 | 訊息的名稱,用於描述該訊息的功能或用途。 | 非空,只能包含字母數字和底線,且不能以數字開頭 | t_msg_1_unsigned |
| 訊息 ID | 訊息的唯一識別符號,用於在 CAN 匯流排中區分訊息 | 非空,數字或者 16 進位制數,範圍:[0x0-0xffffffff] | 0 |
| 資料長度碼 | 資料長度碼(DLC):經典 CAN 的 DLC 0 |
資料,範圍:[0,8]或[0,15] | 8 |
| 傳送節點 | 訊息的傳送方(Transmitter),即傳送該訊息的裝置(Node) ; | 下拉式選單選擇,預設Vector__XXX |
Vector__XXX |
| 訊息描述 | 可選欄位,用於解釋訊息的作用或功能,便於理解。 | 字串 |
注意:
- 分組就是 dbc 檔案的訊息(Message)。
- 訊息 ID 通常為一個 11 位(標準訊框)或 29 位(擴充訊框)的數字。
- 若該訊息封包(分組)沒有指定傳送節點,則該值需設定為
Vector__XXX。
| 參數 | 前提 | 描述 | 格式 | 舉例 |
|---|---|---|---|---|
| 訊號名稱 | 使用者自訂該訊號的名稱,用於描述資料的功能 | |||
| 訊號模式 | 訊號的傳輸模式 | 下拉式選單選擇 | ||
| 起始位 | 訊號在訊息中的起始位置(Start Bit),從 0 開始計數,決定訊號在 CAN 訊框中的具體儲存位置。 | 單位 bit | 0 | |
| 值型別 | 訊號的資料型別 | 下拉式選單選擇 | Intel | |
| 位元組順序 | 訊號在訊息中的儲存順序 。 | 下拉式選單選擇 | ||
| 縮放因子 | 資料的物理值計算因子,用於將原始值轉換為實際物理值。 | 浮點數 | ||
| 偏移 | 資料的物理值計算偏移量(offset)。 | 浮點數 | ||
| 最小值 | 訊號物理值的最小值,用於限制訊號範圍。 | 浮點數 | ||
| 最大值 | 訊號物理值的最大值,用於限制訊號範圍。 | 浮點數 | ||
| 單位 | 訊號的物理單位 | 字串 | ||
| 接收節點 | 接收該訊號的節點名稱(receiver),一個或多個,表示訊號的目標裝置。 | 下拉式選單選擇,預設Vector__XXX |
||
| 描述 | 訊號的物理單位,例如:km/h、°C、m/s。 | 字串 | ||
| 計算 | 使用者根據資料別名自訂公式。 | |||
| 長度 | 值型別為Unsigned/Signed | 訊號所佔用的位數(位長度) | 單位 bit,[1,64] | |
| 多路重複使用值 | 訊號模式不為 Signal | 設定多路重複使用訊號為什麼值時該訊號生效 |
注意:
- 訊號模式: Signal、Multiplexor、Multiplexed 。
- 值型別:Unsigned(無符號整數)、Signed(有符號整數)、Float(單精度浮點數)、Double(雙精度浮點數) 。
- 位元組順序:Intel 位元組順序(小端)、 Motorola 位元組順序(大端)。
- 起始位:訊號最低有效位(LSB,Least Significant bit)所在位置。
- 結束位:訊號最高有效位(MSB,Most Significant bit)所在位置。
- 解析度&偏移量:用於轉換物理值和網路值,網路值=(物理值-偏移量) ÷ 解析度。
- 若訊號沒有指定接收節點,則必須設定為
Vector__XXX。
5. DBC 檔案相關參數說明
Section titled “5. DBC 檔案相關參數說明”DBC 檔案(CAN Database File)是用於描述 CAN(Controller Area Network)匯流排中訊息和訊號定義的標準檔案格式。
(1) Node(節點)
節點是網路中裝置的邏輯表示。每個節點可能是訊息的傳送方或接收方。
1). DBC 檔案格式:
BU_: Node1 Node2 Node3BU_:定義節點清單。- 後續列出所有節點名稱,用空格分隔。
(2) Message(訊息)
訊息是 CAN 網路中傳輸的最小資料單位,包含多個訊號,具有固定的 ID 和長度。
1). DBC 檔案格式:
BO_ <訊息 ID> <訊息名>: <資料長度碼> <傳送節點>2). 示例:
BO_ 1001 SpeedMessage: 8 Node1BO_:表示訊息。1001:訊息 ID。SpeedMessage:訊息名稱。8:資料長度碼(DLC)。Node1:傳送節點。
(3) Signal(訊號)
訊號是訊息中的資料單元,表示具體的物理量,例如速度、轉速、溫度等。
1). DBC 檔案格式:
SG_ <訊號名> : <起始位>|<長度>@<位元組順序><值型別符號> (<縮放因子>,<偏移>) [<最小值>|<最大值>] "<單位>" <接收節點>2). 示例:
SG_ Speed : 0|16@1+ (0.1,0) [0|200] "km/h" Node2BO_:表示訊息。
部分參數解釋
Section titled “部分參數解釋”(1) 訊號模式
| 訊號模式 | 含義 |
|---|---|
| Signal | 普通訊號,直接攜帶資料,無特殊標記或關係。 |
| Multiplexor | 重複使用器訊號,作為重複使用標誌,用於決定訊息中攜帶的其他訊號是哪組。例如,一個訊息中可以包含多種資料格式,重複使用器用來選擇具體的資料格式。 |
| Multiplexed | 被重複使用訊號,與重複使用器訊號繫結。重複使用器訊號的值決定是否傳輸該訊號。例如,重複使用器值為 1 時,傳輸某一組重複使用訊號。 |