宏虹分享|手把手教學!如何使用J1939記錄數據進行數據分析和模型化基礎設計? (上篇)

MathWorks是為工程師和科學家提供數學計算和基於模型的設計的軟體開發商和供應商。從產品的角度來看,MathWorks和Kvaser之間的關係相當簡單。MathWorks開發了一些非常強大、優秀的分析和模擬軟體,如MATLAB和Simulink,而Kvaser生產高質量的硬體來捕捉數據並接入CAN匯流排(同時也開發了一些免費軟體)。

Kvaser與MathWorks共同組織了題為“使用J1939現場記錄數據進行數據分析和模型化基礎設計”的網路研討會。該課程實用性很強,不僅解釋了J1939的基礎知識,還介紹了使用Kvaser Memorator進行數據記錄的方法。主講人帶領觀眾完成整個實際操作過程,包括先把數據導出為MDF檔、然後導入MATLAB,並在MATLAB中進行解碼以進一步分析,課程最後還演示了如何在Simulink模型中回放記錄的數據。

Kvaser記錄儀與CAN匯流排對接

Kvaser記錄儀與CAN匯流排對接,並將數據直接提供給Matlab和Simulink。它還將數據提供到Kvaser Memorator配置工具,我們將以適當的格式存儲和配置日誌數據,以便後續由MathWorks產品進行分析。

CAN Protocol stack

底部的物理層和數據鏈路是Kvaser的專長,也是Kvaser硬體產品和一些J1939規範示例所涵蓋的內容。這些規範實際上涵蓋了堆疊的那些部分。

物理層的作用是在設備之間以及網路中獲取1和0。資料鏈路層定義了這些1和0,定義了原始數據,並將其放入CAN幀中,以便傳輸層進行後續工作。傳輸層攔截數據,通過網路從其原始幀中獲取數據。較大的數據包在傳輸層中被分解為可用大小和可傳輸的大小。還有一些J1939規範可以處理這個問題,-21用於經典CAN,-22用於CAN FD。

此研討會主要討論經典CAN,但很多內容也同樣適用於CAN FD。正如上圖所展示的,上面有一些應用程式:-71,-73,在J1939下的不同的應用程式規範,定義了信號,定義PGN的參數組、參數組編號、信號偏移、實際物理或實際應用層的東西,以及其他你需要知道的東西,Kvaser做這些的原因是為了獲得實際的數據。比如上圖中的油溫表就是一個從特定PGN和這些下層定義的包中提取的信號。

Memorator light

Kvaser的特定硬體首先包括Memorator Light,這是一種易於使用、無需配置、1GB的記錄器,它可以在錯誤事件發生前後記錄一千幀,無需配置Memorator,通過自適應串列傳輸速率,它就可以開始記錄數據。

Memoator Pro 2×HS and 5×HS

除此之外,Kvaser還有兩款主要的Memorator Pro產品:2通道和5通道設備,既可以充當CAN匯流排通訊儀也可以當作數據記錄器。

它們都有一個USB介面,用於電腦連接、配置和刪除數據,有一個SD卡用於配置和控制日誌數據,以及腳本加載和日誌數據存儲。5通道設備是將5個通道合在一起出線,2通道設備就2個通道直接分別出線。

Memorator Pro的特性

Memorator Pro的特性:
可作為獨立的設備工作,無需連接到電腦。
從USB端口獲得供電時,進入通訊儀模式,可與電腦連接。
從CAN介面獲得供電時,會執行內部存儲的腳本或配置。
帶有LED,有5種顯示模式。
具有電氣隔離和自動時間戳同步功能。
有2通道或5通道硬體可供選擇。

它會將數據記錄到一個可擴展的SD卡中(Kvaser已經測試過裝滿一張512G的SD卡)。當你使用時間戳同步功能時,這將允許它同步到同一臺電腦上的其他Kvaser設備——同一個USB或同一臺電腦的USB端口。所以你可以記錄或使用2個設備,將其做成一個10通道的同步記錄器。

Memorator Configuration Tool - Overview

Memorator配置工具是要介紹的主要軟體,您可以從Kvaser網站下載頁面免費下載,通過USB連接到你的記憶體和設備。這款軟體創建了帶有配置資訊的.khc檔,並允許你創建一個配置檔,在Memorator Pro設備上進行篩檢程式、觸發器操作,並支持多運算式觸發器和複雜觸發器。因此,如果你想加載一個資料庫檔,以便在信號層級或應用程式層級操作,你就可以這樣做,它將提取數據並支持轉換為14種不同的通用格式。

Kvaser數據記錄器使用步驟

首先從Kvaser官網下載並安裝適用於Windows的免費驅動程式和Memorator配置工具,配置軟體後再連接硬體,之後開始運行Memorator配置工具,配置觸發器、篩檢程式、運算式,在捕捉數據後,就可以將其提取為它支持的14種不同格式中的一種。

介面

安裝軟體後,你將看到不同介面的不同選項。包括windows啟動按鈕。在a按下開始按鈕後,你將看到你的Kvaser Memorator配置工具,包括所有設備,指向Memorator Pro 5xHS的箭頭就是我現在連接的設備,我從中截取了很多類似這種的畫面。按下連接按鈕後,即可連接Memorator Pro。在你運行了軟體並點擊了連接按鈕後,你會看到列出的Memorator Pro 5xHS的序列號,同時USB連接已完成。你只需點擊它,然後點擊下一步,就可以連上它。

連接到Memorator Pro

如果你想通過存儲在電腦上的檔獲取數據,你可以讓它連接到Memorator Pro以外的設備,這樣它可以直接從連接到電腦的檔或SD卡中獲取數據。我在這裏展示一些例子。如果你在連接到設備後點擊一般性資訊,它會從設備下載所有有用的資訊。

連接到Memorator Pro之後,你就可以從菜單中進行選擇了。我們可以看到一般性資訊,你可以配置你的匯流排。在此例中,有5條不同的匯流排、5通道設備可以配置它們。你可以配置一個或者配置全部,你還可以設置日誌配置、定義報文、資料庫、篩檢程式、觸發器、腳本等,如果你碰巧使用的是t腳本,你可以在下面查看你的磁片資訊、磁片上的大檔以及磁片管理資訊。

選擇並配置特定CAN匯流排

Bus Configuration

對於你選擇的任何特定CAN匯流排,都會出現一個配置該CAN匯流排的畫面。當你想設置你的比特率或更複雜的專案,我建議你暫時將晶片參數保留為默認值。如果你想處於靜默模式或J1939模式,可以通過複選框勾選相應的選項。如果你使用的是CAN FD,你也要勾選。你可以將這些設置應用於所有不同的通道也將其設置為默認值,並在所有不同的通道上使用這些默認值。

選項

Bus Configuration

如果出現錯誤幀或回應或生成錯誤幀,靜默模式將禁用任何傳輸,你將在選擇靜默模式的情況下禁用CAN匯流排上的該功能。J1939模式將J1939規則應用於CAN識別字,因此它允許你在PGN上觸發CAN識別字…擴展為29位的CAN,J1939將這29位定義為優先順序、PGN和源地址。因此,J1939模式允許你將該識別字分解為J1939的更精細的定義,並根據定義進行具體操作。

然後是CAN FD模式。如果你的匯流排是CAN FD匯流排,請選擇CAN FD模式,它將啟動CAN FD的功能。

日誌配置(Log everything)

日誌配置

日誌配置中的Log everything是默認不選中的,當選中時,它會記錄所有內容,而你的觸發器會被忽略,你只需記錄所有內容。因此,如果你想使用觸發器,請確保沒有選中此項。你可以使用FIFO(先進先出)模式判斷你的設備何時已滿。你可以通過網路,通過我們網站上的頁面來確定你的SD卡的大小,使用我們的記憶體計算器,查看你的匯流排帶寬、速度、匯流排上的數據量。設置在斷電後你想要記錄的時長,在這個頁面上最多30秒。

日誌配置(定義報文)

日志配置(定義報文)

你可以在日誌配置頁面中定義報文。這類似於DBC檔,但它更獨立於這個程式。你命名一個特定的報文,然後命名一個特定信號。你可以在這裏設置一個報文。快速更新就是一個報文示例。這實際上是一個EMEA 2000報文,與J1939非常相似。它使用了這種結構。這將是報文中的一個信號:緯度。所以這是一個來自GPS的報文,你的緯度將是從0開始的前8位,因數為1。

添加資料庫

你可以通過DBC檔為更多報文的定義添加一個資料庫。你可以添加一個或多個數據庫,將不同的資料庫分配給不同的通道,或者將同一個數據庫分配給所有通道。加載資料庫後,你可以使用該資料庫中定義的報文和信號名稱,還可以根據資料庫中應用的數據的縮放和偏移量觸發原始或定義的事件。

日誌配置(篩檢程式)

日誌配置(篩檢程式)

在觸發之前,每個通道最多定義64個篩檢程式,以應用於日誌數據。所以這裏的關鍵是不要過濾掉你的觸發事件,要小心這一點。篩檢程式包括J1939格式的選項,正如我前面所介紹的。報文、信號、錯誤幀、外部事件、PGN、源和目的地,根據你在這裏選擇的內容,你將獲得不同的頁面,以不同的方式選擇不同的篩檢程式組合。你的篩檢程式可以是通過篩檢程式,因此你只通過符合過濾條件的某些數據。計數通過過濾,這意味著你只通過了十分之一,五分之一,如果你想這樣做的話;或者停止篩檢程式,你可以停止符合篩檢程式標準的特定信號。

這就是它的概況。你可以再次選擇其中的每一個,然後將得到不同的子菜單,用以設置這些篩檢程式。

日誌配置(觸發器)

日誌配置(觸發器)

通常,你會為一個難以發現的事件設置一個觸發器。如果你不想記錄所有內容,只是想捕捉一些活動時,可以在信號、完整CAN資訊上設置這些類型的不同觸發器。當外部觸發事件發生時,駕駛員按下按鈕,就能確保記錄正確的特殊事件、定時器事件,這樣就能實現真正的可配置性。他們希望確保記錄正確的特殊事件、計時器事件,而這配置起來很方便。你可以使用條件來微調觸發器,並使用運算式來設置數據範圍。這意味著你在這裏設置了一個條件,你定義了一個類似RPM 1200或RPM Low的條件,然後定義大於、小於、等於它的條件,或者定義該條件的其他不同方式以及一些超時數據等類似的東西。

然後你可以定義條件:等於、不等於、小於任何特定條件。我們用原始或縮放的值來構建觸發條件,在特定值範圍內的信號上觸發。所有這些都可以讓你實現這些範圍或信號值內觸發。可以根據DBC檔或定義的信號選擇物理值或縮放值。

因此,觸發器可以添加一個或兩個運算式,這些運算式最多結合三個條件來控制觸發,你可以利用運算式的啟動、停止、或暫停記錄,並選擇以毫秒為單位的預觸發和後觸發時間。我們可以通過一個例子來瞭解它的含義:我的第一個運算式是RPM_Low。我要開始記錄了。這就是當運算式發生時我要執行的動作。我的預觸發大小是一千毫秒。因此,在該操作之前,我已經獲得了一千毫秒的數據。在這裏,我們將停止日誌記錄,我們的後觸發將是30秒。我們將使用RPM 1200停止記錄,並觸發一個後續在上一菜單中定義的條件。上一個菜單中定義的那些運算式也是如此。選擇一個運算式的組合,以及這些運算式如何控制記錄儀的動作,如:開始軟體記錄、標記等等…因此非常非常靈活。

日誌配置器(高級觸發器)

日誌配置器(高級觸發器)

如果你使用了高級觸發器,這裏我們顯示了加載的DBC檔——J1939臨時DBC檔。這裏有很多不同的DBC檔定義的運算式,這些都是高級觸發器,你可以創建傳輸列表並設置傳輸時間表。你可以使用傳輸列表來誘發一個事件,將你的發動機誘導到你可能想要的特定狀態,例如柴油再生等。你想手動啟動你的發動機,以排除故障,你想誘發它或發送一些相關資訊,引發發動機故障,並瞭解它在這些情況下的表現。

你定义了触发器和表达式,每个表达式最多有8个触发器,然后定义针对这些表达式所采取的操作和报文的传输列表,并在该传输列表中指定信号值,将其输入到你定义的操作中。这很灵活,如果你在卡车上工作时,也许会希望手头能有这个工具,因为它会让事情变得简单很多。

編寫/t腳本

編寫 t腳本

任何針對Kvaser Pro設備的介紹,都應當提及t腳本。t腳本是我們的腳本語言,類似於C語言。這是一種事件驅動的語言,沒有真正的主程序。它有我們所說的啟動hook、定時器hook、按鍵hook,以及CAN報文hook——當前真正常用的hook,它在這些特定事件或hook上執行代碼。我們有一個完整的免費集成開發環境,叫做TRX,它在CANlib SDK中,也是免費的。

設備輸出窗口可以發送關鍵事件。這是一個你可以用不同的關鍵事件來交互和控制你的程式的窗口,我覺得它非常非常好用。這裏還有一個Build窗口,它會顯示你的程式是否在那裏編譯,有無錯誤等。你的自定義程式將加載到SD卡上,並作為獨立設備運行。還有Memorator Pro,你可以將該程式刷到記憶體中,這樣當該設備作為獨立設備在車輛中使用時,它就會運行,並去捕捉罕見的、難找的事件。

SD Card(保存配置和日誌數據)

SD卡

SD卡裝在設備內部,所有東西都存儲在SD卡上。當你點擊下麵的小閃存盤區域時,你會看到SD卡上的可用空間和已使用空間。你可以查看日誌檔。例如:它會保存你的配置和日誌數據,你的t腳本也會在這裏,這裏還有磁片管理選項,可以對磁片進行重新格式化、清空選項,以及類似操作。

磁片管理(管理SD卡)

磁片管理

在磁片管理中,你可以通過磁片管理來管理SD卡。你可以在這裏檢查、初始化、清空和測試SD卡。上圖你所擁有的選項。這一些已經加載到機器中的SD卡的資訊。磁片資訊、磁片檢查、初始化、清空和測試磁片:在磁片管理下都可以實現。

閃存盤(提取和轉換檔)

閃存盤(提取和轉換檔)

閃存盤可以提取和轉換檔,所以當你去提取一個檔時,你會在這裏看到這個菜單,你可以根據檔的使用位置和使用方式選擇提取檔的格式。當你列出檔時——這裏是我多年來獲取的一些示例檔。我這裏有日誌檔並點擊了列表,我可以選擇其中的任何一個,並在我的電腦中將它們提取為其中的一種格式。在你記錄了檔後,它是一種很好用、很強大的工具。

結論

Memorator Config Tools執行過濾和日誌記錄。只需一個設備就可記錄來自一個或最多5個CAN匯流排的數據。所有Kvaser軟體都是免費的,可以從Kvaser網站下載。

你需要它來配置Memorator Pro提取日誌檔,在獨立運行模式時下載並從SD卡執行t腳本。Memorator Pro可以配置為一個自定義的獨立診斷工具,具有篩檢程式、觸發器和日誌數據提取選項。它為你提供了廣泛的應用和許多不同的高級協議——J1939可以打開並完成J1939和NMEA2000相關的大部分工作,而且對於運行Kvaser硬體的客戶定義的任何我們甚至不知道的協議或任何對象而言,它也很強大。我們通常通過USB端口以其他方式傳輸所有CAN數據。