直播推薦
企業(yè)動態(tài)
- 貨物多發(fā)貨慢?掃碼出庫讓企業(yè)效率飛升!
- 啟智涌現(xiàn) 智能機器人通用技術(shù)底座開發(fā)者大會暨啟智技術(shù)成果發(fā)布會隆重舉辦
- 《2026中國工業(yè)軟件報告》:皇冠CAD(CrownCAD)自主創(chuàng)新,彰顯中國工業(yè)軟件標桿力量
- 一次務(wù)實的攜手——快速溫變試驗箱合作背后的協(xié)同故事
- 從技術(shù)對接到價值共識——與某電子企業(yè)快速溫變試驗箱合作側(cè)記
- 質(zhì)量即利潤!管家婆ERP助你實現(xiàn)“降本、增效、穩(wěn)交付”三重目標!
- 北京北廣精儀儀器設(shè)備有限公司2026年2月26日正式開工,開啟發(fā)展新篇章
- 皓啟新程,篤行致遠!東莞皓天2026啟動大會,聚力攻堅啟新篇
推薦展會
對于僅偶爾分析CAN數(shù)據(jù)流中的部分信號的用戶來說,下載龐大復雜的分析軟件顯得有些麻煩,我們就此分享如何簡單地運用現(xiàn)有工具理解分析CAN信號,并且這對于希望深入了解CAN,以及信號如何通過CAN傳輸?shù)膶W習者,頗有益處。
在過去幾年的合作中,有不少客戶表示需要分析SAE J1939數(shù)據(jù)流中比較有限的一些CAN信號。盡管很多CAN分析軟件能提供很多強大的功能,但有時我們還是需要通過現(xiàn)成工具來表述一個信號。在本文,我們將介紹如何通過Microsoft Excel、Notepad這些大多數(shù)人都有的工具和Kvaser網(wǎng)站上的免費軟件CanKing,來捕捉和分析CAN框架內(nèi)的一個CAN信號。這對于僅一次性需要此類工具的學生,或是一個小公司的工程師,他們僅需要了解CAN總線上的一個信號,這種方法是有意義的。
通過使用這種方法初步分析信號,工程師或?qū)W習者能更了解CAN和J1939的內(nèi)部工作原理,更好地理解.dbc文件,以及其他應(yīng)用程序如何使用.dbc文件。雖然本文中以J1939信號為例,但這里使用的方法適用于任何基于信號的CAN協(xié)議,包括CANOpen、RVC、NMEA-2000等等。雖然這里使用的是Excel和Notepad,但其他Spreadsheet和文本編輯器程序可以同樣完成此類任務(wù)。
本次分享的目的并不是避免使用眾多功能強大的CAN分析工具,這類工具都支持高級協(xié)議,例如J1939和CANOpen,具備的圖像和信號分析功能,包括分析巨大數(shù)據(jù)量的能力。本文主要是介紹一種方法,展示僅通過一些桌面現(xiàn)有的工具,工程師就能獲得他們想要的東西。該方法有很大的局限性,遠不及CAN專用軟件。在變長診斷報文、Transport Protocol幀和多路復用數(shù)據(jù)幀的情況下,這些限制將阻止或讓信號分析極為復雜化。在這些情況下,用戶都需要一個專用的CAN分析包,或通過此類專用軟件,以便正確地分析數(shù)據(jù)流中的信號。
應(yīng)用此方法的必要條件:
??能夠以十六進制或十進制格式獲取原始CAN數(shù)據(jù),或者能夠訪問需要分析的原始CAN數(shù)據(jù),并能夠?qū)⒃摂?shù)據(jù)轉(zhuǎn)換到.txt文件中。這將通過Kvaser的CanKing軟件顯示,該軟件可免費下載。
??具備Microsoft Excel或類似軟件,對如何在spread sheet軟件中使用篩選功能有基本了解。
??了解你要查看什么數(shù)據(jù),或者有一個.dbc文件或一個限定說明,顯示在CAN幀中何處查找你需要的信號,并知道該信號在報文中是如何格式化的。
以下是具體操作步驟:
1??通過CanKing獲取數(shù)據(jù),并用Notepad保存到一個文本文件中
2??打開Excel,把數(shù)據(jù)導入Excel
3??將數(shù)據(jù)格式轉(zhuǎn)化為不同的列
4??篩選數(shù)據(jù)以找到你需要的CAN幀
5??分離要分析的數(shù)據(jù)字節(jié)
6??將數(shù)據(jù)轉(zhuǎn)換為圖形格式
7??創(chuàng)建一個圖表來顯示你需要的信號
1.
通過CanKing獲取和保存數(shù)據(jù)

圖 1. 保存到文本文件
( Log to Text File – CanKing的一個對話框)
圖1顯示Kvaser CanKing的 Log To Text File 對話框,可讓用戶獲取所需要分析的數(shù)據(jù)。確認已連接到CAN總線,通過選擇Kvaser CanKing主窗口中的 Start Run 鍵,在CanKing中查看數(shù)據(jù)。CanKing的 Output Window 中將顯示你所需要獲取的數(shù)據(jù)。
當你通過一個文本編輯器查看數(shù)據(jù),如NotePad,該數(shù)據(jù)將如下所示:
圖 2. 通過CanKing獲取的范例 J1939 數(shù)據(jù)
2.
把數(shù)據(jù)導入Excel
以一個空白工作表打開Microsoft Excel,然后選擇 File, Open 和 Browse。在導航框的右下角,必須選擇 All Files (*.*)(所有文件),以打開.txt文件。搜索工作目錄,找到并選擇在上面的步驟1中創(chuàng)建的.txt文件。顯示屏將基本如下圖所示:

圖 3. 選擇一個.txt 文件以在Excel內(nèi)打開
3.
將數(shù)據(jù)格式轉(zhuǎn)化為不同的列

圖 4. 將文本導入向?qū)?/em>
這個向?qū)軒椭憧焖俚匕?txt數(shù)據(jù)轉(zhuǎn)為Excel格式。根據(jù)下面步驟來轉(zhuǎn)換數(shù)據(jù):
1??在Choose the file type that best describes your data(選擇的數(shù)據(jù)的文件類型)下面:選擇 Delimited(已定界限)。
2??在Start import at row (開始導入行)一行旁邊:選擇包含CAN數(shù)據(jù)的行;在我的這個范例中是第二行。有些數(shù)據(jù)監(jiān)測器加上了眉頭,僅需濾掉這些眉頭,后面可以通過Excel再恢復眉頭。
3??點擊 Next >.
4??在 Delimiters 下面的第二個方框內(nèi)選擇 Space.
5??點擊 Next >.
6??點擊 Finish.
現(xiàn)在應(yīng)該有一個Excel工作表打開,并以多列顯示CAN幀,分別顯示標識符、Flag、DLC和數(shù)據(jù)字節(jié),還有時間列和方向列。如果讓每列的標題位于數(shù)據(jù)上方,請確保列標題與數(shù)據(jù)正確對應(yīng)。有時在轉(zhuǎn)換過程中,列標題會錯位1-2列。如果沒有保持列標題在數(shù)據(jù)上方,應(yīng)該把它們加上。我使用的列標題是 Type, Ch, Pri, PGN, SA/DA, DLC, D1, D2, D3, D4, D5, D6, D7, D8, Time, 和 Dir。下面是添加列標題后,我的工作表的前幾行:

圖 5. 當前的工作表
4.
篩選數(shù)據(jù),查找有意義的CAN幀
在我的示例中,我們將分析一個名稱為Engine Speed( 發(fā)動機轉(zhuǎn)速)的信號。此信號的詳細信息可在SAE J1939DA 的數(shù)字附件(即Digital Annex)中看到。Engine Speed 標識為SPN 190,下面圖表顯示數(shù)字附件中的一些詳細信息:

圖表1. 從 SAE J1939DA 說明里獲取的信息

圖6. Excel 工作表,已選擇數(shù)據(jù)篩選,并顯示所有數(shù)據(jù)
如果未在Excel中使用過Filters (篩選),請單擊Excel頂部的Data tap,然后找到Filter。突出顯示數(shù)據(jù)的行(標題行),然后選擇篩選功能,你將看到工作表每一列的行都有小方框,每個方框里都有一個向下的箭頭。選擇PGN列上的箭頭,將看到一個方框,如圖7所示。
不要選擇Select All(全選框),然后只選擇你要篩選的報文,在本例中為0F004 。選擇OK,對要查看的數(shù)據(jù)進行篩選。現(xiàn)在工作表僅顯示你繪制圖表所需CAN幀 – 它們包含SPN 190,發(fā)動機轉(zhuǎn)速信息的報文。

圖 7. Excel 工作表
5.
剝離出需要分析的數(shù)據(jù)字節(jié)

圖 8
返回到表1,可以看到 Engine Speed 是在位置4和位置5的雙字節(jié)信號,或者以標題名表述,即D4列和D5列。由于這是雙字節(jié)信號,在對此數(shù)據(jù)進行任何運算之前,必須考慮字節(jié)順序。圖8顯示了我們篩選出的數(shù)據(jù)的一個截面,D4和D5以黃色突出顯示。只要看一下這些數(shù)據(jù),就很容易看出字節(jié)順序。可以看到,有效字節(jié)在D4中,并且被首先傳輸。之所以知道這一點,是因為它是變化的字節(jié),而且我們可以看到,當它變化時,它將D5推高了1。
如果我們查看圖8中的行數(shù)據(jù),并看到 Engine Speed 作為單位數(shù),則可以將發(fā)動機轉(zhuǎn)速的十六進制值寫為0x1466。現(xiàn)在已經(jīng)從在CAN總線上采集的數(shù)據(jù)中剝離出PN 190。這已經(jīng)顯示在D4和D5列中,即PGN 0x0F004或PGN 61444。
6.
將數(shù)據(jù)轉(zhuǎn)換為圖表模式
1??將兩個字節(jié)的SPN 190轉(zhuǎn)換為一個十進制數(shù),如 0x1466 = 5,222。
2??這個數(shù)字乘以分辨率 – 或者我稱之為縮放比例: (5,222 bits) x (0.125 rpm/bit) = 652.75 rpm
3??加上偏移量,這里偏移量為零,所以結(jié)果值為652.75 rpm
利用工作表的強大功能,可以很容易地統(tǒng)計我們要繪制的所有信號樣本。首先要做的是在D5列的右側(cè)添加一個空白列。有了此列,就可以通過上述步驟,用它來計算RPM。如果不清楚這一點,你需要了解Excel的函數(shù)功能,方法是去一個空白單元格并鍵入“=”,然后單擊菜單欄的fx。我的數(shù)據(jù)在J和K列中,所以我要在標題行下新列的個小方框中輸入函數(shù):
=HEX2DEC(CONCAT(K3,J3))*0.125
這一行將以正確的順序連接兩個字節(jié)的數(shù)據(jù)(首先是K3,然后是J3),從十六進制轉(zhuǎn)換為十進制,然后乘以縮放值,所有這些都在一個簡單的等式中。
7.
創(chuàng)建圖表顯示我們感興趣的數(shù)據(jù)

圖 9. 我的數(shù)據(jù)所顯示的發(fā)動機轉(zhuǎn)速
我稱此圖為SPN 190,在通過Insert Line or Area Cart創(chuàng)建此圖之后,沒有做任何其他事情。此工作表應(yīng)提供許多極為有效的函數(shù)和方法創(chuàng)建圖形,以多種不同的方式顯示不同的信號,這些步驟幫助工程師或技師,通過這些函數(shù),分析CAN總線上的大多數(shù)數(shù)據(jù),前提是他們有一個具體特性或.dbc文件,顯示數(shù)據(jù)的位置和格式。
免責聲明
- 凡本網(wǎng)注明"來源:智能制造網(wǎng)"的所有作品,版權(quán)均屬于智能制造網(wǎng),轉(zhuǎn)載請必須注明智能制造網(wǎng),http://www.zgjming.com。違反者本網(wǎng)將追究相關(guān)法律責任。
- 企業(yè)發(fā)布的公司新聞、技術(shù)文章、資料下載等內(nèi)容,如涉及侵權(quán)、違規(guī)遭投訴的,一律由發(fā)布企業(yè)自行承擔責任,本網(wǎng)有權(quán)刪除內(nèi)容并追溯責任。
- 本網(wǎng)轉(zhuǎn)載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權(quán)行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品來源,并自負版權(quán)等法律責任。
- 如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
智能制造網(wǎng)APP
智能制造網(wǎng)手機站
智能制造網(wǎng)小程序
智能制造網(wǎng)官微
智能制造網(wǎng)服務(wù)號











回放
回放












浙公網(wǎng)安備 33010602000006號
智能制造網(wǎng)APP
智能制造網(wǎng)小程序
微信公眾號



2026第二屆激光制造與增材制造創(chuàng)新發(fā)展大會暨展覽會
展會城市:北京市展會時間:2026-09-21