国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

CAN報文解析

這篇具有很好參考價值的文章主要介紹了CAN報文解析。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

CAN報文定義

CAN報文是指發(fā)送單元向接受單元傳送數(shù)據(jù)的幀。我們通常所說的CAN報文是指在CAN線(內(nèi)部CAN、整車CAN、充電CAN)上利用ECU和CAN卡接收到的十六進制報文。

CAN編碼格式(Intel、Motorola)

CAN總線數(shù)據(jù)傳輸規(guī)則

對于單個Byte,CAN總線在進行數(shù)據(jù)傳輸時,首先傳輸一個字節(jié)的高位(MSB),最后傳輸該字節(jié)的低位(LSB)。
一般情況下,主機廠在定義CAN總線信號的時候,都會明確定義字節(jié)的發(fā)送順序,總共有兩種順序:1.首先發(fā)送byte0(LSB),然后byte1,byte2,…,最后byte7(MSB)。
2.首先發(fā)送byte7(MSB),然后byte6,byte5,…,最后byte0(LSB)。
其中前者發(fā)送順序(先LSB,后MSB)是目前主機廠的主流。
下面以CAN總線報文的發(fā)送順序為首先發(fā)送LSB,最后發(fā)送MSB的方式為前提,介紹Intel格式和Motorola格式這兩種編碼方式的不同。

Intel格式編碼

當(dāng)一個信號的數(shù)據(jù)長度不超過1 Byte,并且信號在一個字節(jié)內(nèi)實現(xiàn)時,該信號的高位(S_msb)將被放在該字節(jié)的高位,信號的低位(S_lsb)將被放在該字節(jié)的低位。
當(dāng)一個信號的數(shù)據(jù)長度超過1 Byte或者數(shù)據(jù)長度不超過1 Byte,但是采用跨字節(jié)的方式實現(xiàn)時,該信號的高位(S_msb)將被放在高字節(jié)(MSB)的高位,信號的低位(S_lsb)將被放在低字節(jié)(LSB)的低位,這樣信號的起始位就是低字節(jié)的低位。

Motorola格式編碼

當(dāng)一個信號的數(shù)據(jù)長度不超過1 Byte并且信號在一個字節(jié)內(nèi)實現(xiàn)時,信號的高位(S_msb)將被放在該字節(jié)的高位,信號的低位(S_lsb)將被放在該字節(jié)的低位,這樣,信號的起始位就是該字節(jié)的低位。
當(dāng)一個信號的數(shù)據(jù)長度超過1 Byte或者數(shù)據(jù)長度不超過一個字節(jié)但是采用跨字節(jié)方式實現(xiàn)時,該信號的高位(S_msb)將被放在低字節(jié)(MSB)的高位,信號的低位(S_lsb)將被放在高字節(jié)(LSB)的低位,這樣信號的起始位就是高字節(jié)的低位。

注意

當(dāng)一個信號的數(shù)據(jù)長度不超過1 Byte時,Intel和Motorola兩種格式的編碼結(jié)果完全一致,但是當(dāng)數(shù)據(jù)長度超過1 Byte時,兩者的編碼結(jié)果出現(xiàn)了明顯的不同。

CAN協(xié)議中CAN報文種類

報文傳輸過程中有:數(shù)據(jù)幀、遠(yuǎn)程幀、錯誤幀、過載幀和幀間隔。

CAN報文的組成

通常接收到的CAN報文由很多部分(圖1)組成,解析報文時用到的主要是幀ID和數(shù)據(jù)兩部分。
CAN報文解析

幀ID的組成

接收到的十六進制的ID實際上是由 29 位標(biāo)識符轉(zhuǎn)換而來,目前大多數(shù)的通信協(xié)議中都直接給出了相應(yīng)的幀ID,不需要換算。如表 1 所示。CAN報文解析
表1中,P為優(yōu)先級,有3位,可以有8個優(yōu)先級( 0 ~ 7 );R為保留位,有 1位,固定為0 ;DP為數(shù)據(jù)頁,有1位,固定為0;PF為報文的代碼,有8 位;PS為報文的目標(biāo)地址(也就是報文的接收方),有8位;SA為報文的源地址(也就是報文的接收方),有8位。

數(shù)據(jù)段的組成

數(shù)據(jù)段一般由1 ~ 8個字節(jié)(Byte)組成,來代表通信協(xié)議中相應(yīng)的含義。每個字節(jié)有2個字符,分為高4位和低4位。有的數(shù)據(jù)需要相鄰的2個字節(jié)組合才能表示,則需要分為高字節(jié)和低字節(jié)。

例如 ,通信協(xié)議中需要的報文(ID:0000060B ): 0000060B 57 4e 01 7d 00 6d 11 00 。
第 1 個字節(jié)57中的5為高 4 位,7為低 4 位。第 1 、 2字節(jié)表示橫向距離,而且注明Byte 1 為低字節(jié),Byte 2 為高字節(jié),那么解析時就應(yīng)該為: 4e57。

CAN報文的解析

根據(jù)需要收到CAN報文之后,需要根據(jù)具體的通信協(xié)議解析,然后分析解析出的數(shù)據(jù)是否正確。下面進行報文實例解析。數(shù)據(jù)類型定義如表 所示。
CAN報文解析
CAN報文解析

解析實例:
CAN報文解析
我們看到有8個signal。分別是ID、縱向距離、橫向距離、縱向速度、橫向速度、動態(tài)屬性、RCS、class(在這里沒用)。
拿縱向距離跟橫向距離解釋一下:
目標(biāo)縱向距離:
CAN報文解析
CAN報文解析
這個signal有13個位組成,字節(jié)1為 0x4E*32的意思是向左移動5位,(2的5次冪是32),0xc4<<3是右移三位,跟上面的字節(jié)對齊,相加形成一個13位的信號。CAN報文解析
目標(biāo)橫向距離:
CAN報文解析

0xc4與上0x70是保留后三位。乘以256(2的8次冪是256)是左移8位,給下面的8為字節(jié)留地方(補0)。
CAN報文解析
CAN報文解析文章來源地址http://www.zghlxwxcb.cn/news/detail-401194.html

到了這里,關(guān)于CAN報文解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【深入解析spring cloud gateway】07 自定義異常返回報文

    【深入解析spring cloud gateway】07 自定義異常返回報文

    Servlet的HttpResponse對象,返回響應(yīng)報文,一般是這么寫的,通過輸出流直接就可以將返回報文輸出。 在filter中如果發(fā)生異常(例如請求參數(shù)不合法),拋出異常信息的時候,調(diào)用方收到的返回碼和body都是Spring Cloud Gateway框架處理來處理的。這一節(jié)我們分析一下,gateway的異常返

    2024年02月10日
    瀏覽(26)
  • MCU 是指微控制器單元(Microcontroller Unit)

    MCU 是指微控制器單元(Microcontroller Unit)。 微控制器是一種集成了處理器核心、存儲器、輸入/輸出接口和其他外圍設(shè)備的集成電路。它通常用于嵌入式系統(tǒng)中,負(fù)責(zé)控制和執(zhí)行特定任務(wù),例如控制家電、汽車電子、工業(yè)自動化等。 MCU 的主要特點包括: 處理器核心:MCU 包含

    2024年01月18日
    瀏覽(26)
  • kafka實現(xiàn)消息接受和發(fā)送

    kafka實現(xiàn)消息接受和發(fā)送

    1、下載鏡像 2、創(chuàng)建容器

    2024年02月12日
    瀏覽(29)
  • Springboot接受文件與發(fā)送文件

    ` 前后端涉及到文件的傳輸,都是以二進制流的形式進行交互的。 springboot內(nèi)部封裝了MultipartFile接口,用于接收和處理前端發(fā)送過來的文件。 代碼如下(示例): 代碼如下(示例): action屬性指定了upload接口。由于get請求是將傳輸數(shù)據(jù)封裝在URL里的,所以get請求無法傳輸二

    2024年02月06日
    瀏覽(27)
  • 車載通信——CAN報文信號排列方式(報文/信號結(jié)構(gòu))

    車載通信——CAN報文信號排列方式(報文/信號結(jié)構(gòu))

    一、CAN報文信號排列方式 在定義CAN通信矩陣或制作dbc時,需確定報文的信號排列方式。字節(jié)的排列順序有:Intel的排列順序;Motorola的排列順序。 注: Motorola和Intel格式,只在信號數(shù)據(jù)跨字節(jié)解析時有區(qū)別,單個字節(jié)數(shù)據(jù)沒有區(qū)別 。 二、?編碼格式 (1)Intel格式——小端 當(dāng)

    2024年02月14日
    瀏覽(30)
  • STM32實驗:串口接受和發(fā)送消息

    STM32實驗:串口接受和發(fā)送消息

    在STM32里,USART負(fù)責(zé)進行串口通信。STM32可以通過串口和其他設(shè)備進行傳輸并行數(shù)據(jù),是全雙工、異步時鐘控制,設(shè)備之間進行的是點對點的數(shù)據(jù)傳輸。對應(yīng)的STM32引腳分別是RX(接收端)和TX(發(fā)送端)。STM32的USART串口資源有USART1、USART2、USART3。 串口有以下幾個幾個重要的參

    2023年04月25日
    瀏覽(17)
  • CAN報文基礎(chǔ)

    CAN報文基礎(chǔ)

    通信分類 根據(jù)數(shù)據(jù)傳輸方式可分為 串行通信 和 并行通信 ,根據(jù)接收端和發(fā)送端時鐘頻率的異同可以分為 同步通信 和 異步通信 ,根據(jù)通信雙方的分工和信號傳輸方向可分為 單工通信 、 半雙工通信 和 全雙工通信 。 串行通信、并行通信 串行通信:數(shù)據(jù)的各位在 同一根數(shù)

    2024年02月04日
    瀏覽(18)
  • Unity串口通信、接受和發(fā)送數(shù)據(jù)、C#

    Unity串口通信、接受和發(fā)送數(shù)據(jù)、C#

    串行接口(串口)通常指COM接口,是采用串行通信方式的擴展接口。串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。特別適用于遠(yuǎn)距離通信。 查看串口:右鍵 我的電腦-管理-設(shè)備管理器

    2023年04月13日
    瀏覽(88)
  • UDP網(wǎng)絡(luò)編程的接受與發(fā)送信息
  • CAN總線報文格式———標(biāo)準(zhǔn)數(shù)據(jù)幀

    CAN總線報文格式———標(biāo)準(zhǔn)數(shù)據(jù)幀

    標(biāo)準(zhǔn)數(shù)據(jù)幀由幀起始、仲裁段、控制段、數(shù)據(jù)段、CRC段、ACK段、幀結(jié)束等組成。 CAN總線空閑時,總線上會輸出持續(xù)的高電平“1”。當(dāng)總線空閑時任何連接的單元都可以開始發(fā)送新的報文。 SOF是數(shù)據(jù)幀傳輸?shù)钠鹗嘉弧0l(fā)送方(sender)會發(fā)送一個顯性電平作為SOF,由于總線空閑

    2024年01月22日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包