• <u id="qkpp5"></u>

    1. <p id="qkpp5"><nav id="qkpp5"><option id="qkpp5"></option></nav></p>
      <p id="qkpp5"><var id="qkpp5"></var></p>
    2. 玖玖av,国产成人精品777777,日韩无,成人亚洲精品一区二区三区嫩花,人妻2,好吊AV,内射网站,国产九九在线视频
      您現(xiàn)在的位置:智能制造網(wǎng)>技術(shù)中心>如何簡單運用工具理解分析CAN數(shù)據(jù)流中的信號?

      直播推薦

      更多>

      企業(yè)動態(tài)

      更多>

      推薦展會

      更多>

      如何簡單運用工具理解分析CAN數(shù)據(jù)流中的信號?

      2025年06月16日 07:16:20人氣:62來源:廣州智維電子科技有限公司

      對于僅偶爾分析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ù)

      下載Kvaser CanKing和Windows驅(qū)動程序。可以使用任何Kvaser適配器,如Kvaser Leaf Light HS v2,Kvaser USBcan,或Kvaser Memorator來獲取數(shù)據(jù)以進行分析。通過CanKing,有很多方法可以做到這一點。如果要采集J1939數(shù)據(jù),你需要 Select Formatters(選擇格式程序)對話框,并選擇 J1939 Formatter,方法是將此格式化程序放在對話框的 Active Formatters(活躍格式程序)部分,并勾選它旁邊的小方框。這會讓數(shù)據(jù)格式化,如圖2所示。當連接到CAN總線,能看到數(shù)據(jù)時,可以通過 Log To Text File (記錄到文本文件)窗口,來啟動和停止數(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ù)將如下所示:

      WinNo P PGN SA DA Flg Len D0...1...2...3...4...5...6..D7 Time Dir

      CAN 1 6 0F009 0B->* 8 7D 7A 60 83 7D 4F 7D 7D 217.088350 R


      CAN 1 3 0F004 00->* 8 60 7D 84 50 14 00 F0 84 217.093810 R


      CAN 1 6 0F009 0B->* 8 7D 7A 60 83 7D 4F 7D 7D 217.097340 R


      CAN 1 3 0F004 00->* 8 60 7D 84 50 14 00 F0 84 217.104820 R


      CAN 1 6 0F009 0B->* 8 7D 7A 60 83 7D 4F 7D 7D 217.107600 R


      CAN 1 6 0FEF1 31->* 8 F7 FF FF CF FF FF FF FF 217.111110 R


      CAN 1 7 0FF05 8A->* 8 00 FF FF FF FF FF FF FF 217.113450 R


      CAN 1 3 0F004 00->* 8 60 7D 84 54 14 00 F0 84 217.114870 R


      CAN 1 6 0FEE0 27->* 8 FF FF FF FF AC A8 06 00 217.115440 R


      CAN 1 7 0FEC3 27->* 8 FF FC FF FF FF FF FF FF 217.116020 R


      CAN 1 6 0FF6F 8A->* 8 E2 14 E0 15 A0 12 FF 5E 217.116570 R


      CAN 1 6 0F009 0B->* 8 7D 7A 60 83 7D 47 7D 7D 217.117580 R


      CAN 1 3 0F004 00->* 8 60 7D 84 54 14 00 F0 84 217.126930 R


      CAN 1 6 0F009 0B->* 8 7D 7A 60 83 7D 47 7D 7D 217.127770 R


      CAN 1 6 0FF60 4D->* 8 00 00 00 FF FF FF FF FF 217.131710 R

      圖 2. 通過CanKing獲取的范例 J1939 數(shù)據(jù)


      在這個簡單的例子中,所有的CAN幀都有8個數(shù)據(jù)字節(jié)。我要分析的信號是一個10ms的周期性信號,并用圖表繪制幾秒鐘時長的數(shù)據(jù)。此時,你應(yīng)該將要分析的數(shù)據(jù)流保存在電腦工作目錄中的一個.txt文件中。

      2.

      把數(shù)據(jù)導入Excel

      這一步的目的是把數(shù)據(jù)導入Excel,然后就可以用篩選功能來處理它們,并分離出要分析的數(shù)據(jù)。如果其他電子表格程序具有類似于Excel的篩選器、函數(shù)和繪圖能力,也可以用于此任務(wù)。你可以自己決定選用其他的應(yīng)用程序是否對你最合適,并找到類似的功能來完成此轉(zhuǎn)換。


      以一個空白工作表打開Microsoft Excel,然后選擇 File, Open 和 Browse。在導航框的右下角,必須選擇 All Files (*.*)(所有文件),以打開.txt文件。搜索工作目錄,找到并選擇在上面的步驟1中創(chuàng)建的.txt文件。顯示屏將基本如下圖所示:

      圖片

      圖 3. 選擇一個.txt 文件以在Excel內(nèi)打開


      選擇在步驟1中創(chuàng)建的那個.txt文件并打開。

      3.

      將數(shù)據(jù)格式轉(zhuǎn)化為不同的列

      當選擇了.txt文件并嘗試在Excel里打開它,你將看到圖4所示的Text Import Wizard(文本導入向?qū)ВJ褂么宋谋緦胂驅(qū)В卸喾N方法將CAN數(shù)據(jù)導入Excel,其中許多方法在一定程度上都能起作用。無論采取哪種方法,你很有可能需要編輯數(shù)據(jù)和/或標題,以讓它們正確圖形化。


      圖片

      圖 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. 當前的工作表


      我的數(shù)據(jù)僅包含8個字節(jié)的幀,因此所有數(shù)據(jù)都在我填寫的行標題下排列有序。如果你的數(shù)據(jù)中有一些幀帶有不同的DLC數(shù)據(jù)鏈路連接器,那么你的數(shù)據(jù)就不會顯示得這么整齊。不用擔心,因為你一次只繪制一個PGN,在這個水平上,一個給定的PGN有一個固定的DLC,幾乎總是8個字節(jié)。

      4.

      篩選數(shù)據(jù),查找有意義的CAN幀

      在這里,你有必要知道你需要查找的數(shù)據(jù),以及這些數(shù)據(jù)在CAN幀中的位置。在J1939以及其他基于CAN的協(xié)議中,CAN幀的數(shù)據(jù)部分通常用于傳輸多個信號。不同的協(xié)議以不同的方式命名報文和信號。我將盡可能使用J1939術(shù)語,并盡量保持一致。在J1939通訊中,信號是對SP或可疑參數(shù)的非正式稱呼。要識別一個信號,可使用Suspect Parameter Number(可疑參數(shù)號),即SPN。一組信號構(gòu)成一個Parameter Group(參數(shù)組),即PG,而一個PG由一個Parameter Group Number(參數(shù)組號) 標識,即PGN。在我們將要使用的示例中,一個PG將被放進一個CAN幀中。CAN幀并不總是如此,有時通過使用傳輸協(xié)議,一個PG在多個CAN幀之間傳輸,本文不會贅述,在之后的技術(shù)文章內(nèi)會專門分享這部分內(nèi)容。


      在我的示例中,我們將分析一個名稱為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 工作表

      已選篩選功能,僅顯示 Engine Speed PGN

      5.

      剝離出需要分析的數(shù)據(jù)字節(jié)

      我們的工作表僅顯示包含所需數(shù)據(jù)的CAN幀,所以現(xiàn)在該剝離出我們需要的信號。
      圖片

      圖 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。


      有些SPN小于一個字節(jié),在某些情況下,它們與同一字節(jié)中的其他SPN組合在一起。如果這是我們需要的SPN,這將需要更多的Excel功能,如屏蔽和移位。工作表提供了許多數(shù)學函數(shù),可通過許多個性化的方法應(yīng)用到數(shù)據(jù)處理上。需要找到適合你的應(yīng)用方法,來通過這些數(shù)學函數(shù)來獲取你繪圖需要的具體數(shù)據(jù)。

      6.

      將數(shù)據(jù)轉(zhuǎn)換為圖表模式

      在繪制圖表之前,有關(guān)這個信號,還要考慮的只剩下分辨率和偏移量。Resolution (分辨率)是SAE J1939DA中使用的術(shù)語,是指要用于一個信號表述的比例因素,以可理解的方式顯示。如果你使用的是 Kvaser Database Editor 3 軟件,要從一個.dbc文件中提取此信息,使用的術(shù)語是 Factor 。圖表1顯示分辨率等于0.125rpm/位,偏移量等于零。按以下步驟,用傳輸?shù)某跏紨?shù)據(jù)以RPM計算發(fā)動機轉(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)換為十進制,然后乘以縮放值,所有這些都在一個簡單的等式中。


      通過使用Excel中的auto fill(自動填充)功能,把我們制作圖表所需要的所有數(shù)據(jù)填充到新列里,來執(zhí)行此計算。如果之前沒有使用自動填充,則可去Excel的“幫助”菜單,了解如何使用。當通過自動填充填滿所有需要繪制的單元格后,在工作表中會有一個可繪制的 Engine Speed數(shù)字–工作表中的一列,供繪制使用。

      7.

      創(chuàng)建圖表顯示我們感興趣的數(shù)據(jù)

      從這個意義上說,我們只需要使用Excel的繪圖函數(shù)來繪制一列數(shù)據(jù)。要繪制圖形的列是使用concatenate (CONCAT)函數(shù)和十六進制到十進制(HEX2DEC)轉(zhuǎn)換函數(shù)創(chuàng)建的列。你可以選擇在上面步驟6中創(chuàng)建的整個列,也可以只選擇其中的一部分。接下來,從菜單欄中選擇 Insert (插入),以Insert Line or Area Chart (插入折線圖或面積圖),這將為你選取的信號提供繪圖。以我的一部分數(shù)據(jù)生成的圖表如圖9所示。
      圖片

      圖 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ù)的位置和格式。


      本文旨在展示一種使用非專門軟件工具,來輔助理解CAN數(shù)據(jù)流中信號的方法。每一步驟都需要本文在此有限篇幅內(nèi)所能說明內(nèi)容以外的知識,但有意義的并不是各個步驟。無論是在此范例應(yīng)用中介紹的方法還是使用其他軟件,我們希望通過此方法,能對想要更深入了解CAN以及信號如何通過CAN傳輸?shù)淖x者有所獲益。
      關(guān)鍵詞:CAN連接器
      全年征稿/資訊合作 聯(lián)系郵箱:1271141964@qq.com

      免責聲明

      • 凡本網(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)機器人儀器儀表物聯(lián)網(wǎng)3D打印工業(yè)軟件金屬加工機械包裝機械印刷機械農(nóng)業(yè)機械食品加工設(shè)備制藥設(shè)備倉儲物流環(huán)保設(shè)備造紙機械工程機械紡織機械化工設(shè)備電子加工設(shè)備水泥設(shè)備海洋水利裝備礦冶設(shè)備新能源設(shè)備服裝機械印染機械制鞋機械玻璃機械陶瓷設(shè)備橡塑設(shè)備船舶設(shè)備電子元器件電氣設(shè)備


      我要投稿
      • 投稿請發(fā)送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
      • 聯(lián)系電話0571-89719789
      工業(yè)4.0時代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺
      智能制造網(wǎng)APP

      功能豐富 實時交流

      智能制造網(wǎng)小程序

      訂閱獲取更多服務(wù)

      微信公眾號

      關(guān)注我們

      抖音

      智能制造網(wǎng)

      抖音號:gkzhan

      打開抖音 搜索頁掃一掃

      視頻號

      智能制造網(wǎng)

      公眾號:智能制造網(wǎng)

      打開微信掃碼關(guān)注視頻號

      快手

      智能制造網(wǎng)

      快手ID:gkzhan2006

      打開快手 掃一掃關(guān)注
      意見反饋
      關(guān)閉
      企業(yè)未開通此功能
      詳詢客服 : 0571-87858618