0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

【教程】CAN報文固定協(xié)議轉(zhuǎn)發(fā)

億佰特物聯(lián)網(wǎng)應用專家 ? 2023-05-15 10:30 ? 次閱讀

CAN總線通信的應用領域中,很多客戶需要將CANID 放在CAN報文中,這樣更方便接入不同的設備,有利于用戶通過模塊更方便的組建自己的網(wǎng)絡,使用自定的應用協(xié)議。但是要實現(xiàn)這樣的應用,用戶往往需要不停地去修改參數(shù),而億佰特的ECAN-401所具備的協(xié)議轉(zhuǎn)發(fā)功能則很好地處理這個問題。首先我們要了解一下此設備的固定協(xié)議是怎么樣的格式。

CAN格式轉(zhuǎn)換固定13字節(jié)表示一個CAN幀數(shù)據(jù),13個字節(jié)內(nèi)容包括CAN 幀信息+幀ID+幀數(shù)據(jù)。在該轉(zhuǎn)換模式下,設置的CANID無效,因為此時發(fā)送的標識符(幀 ID)由上述的格式串行幀中的幀ID數(shù)據(jù)填充。配置的幀類型也無效,由格式串行幀中的幀信息來決定幀類型。格式如下:

2bf90a44-f0a7-11ed-ba01-dac502259ad0.png

幀 ID 的長度為 4 字節(jié),標準幀有效位是 11 位,擴展幀有效位是 29 位。

2c084770-f0a7-11ed-ba01-dac502259ad0.png

在串行幀轉(zhuǎn)CAN報文的過程中,以固定字節(jié)(13字節(jié))對齊的串行數(shù)據(jù)幀中,某段固定字節(jié)的數(shù)據(jù)格式不標準,將會不對固定字節(jié)長度進行轉(zhuǎn)換,接著轉(zhuǎn)換后面的數(shù)據(jù)。如果轉(zhuǎn)換后發(fā)現(xiàn)少了某些 CAN 報文,請檢查對應報文的固定字節(jié)長度串行數(shù)據(jù)格式是否不符合標準格式。

幀數(shù)據(jù)在CAN格式轉(zhuǎn)換時,長度固定為8字節(jié)。有效長度由DLC3~DLC0的值決定,有效數(shù)據(jù)不足固定長度時,需要補0到固定長度。

此模式下,要注意嚴格按照固定字節(jié)的格式串行數(shù)據(jù)格式才能轉(zhuǎn)換成功,CAN 模式轉(zhuǎn)換可參考示例(CAN 格式轉(zhuǎn)換標準幀示例)所示,轉(zhuǎn)換時首先要確保幀信息無誤,數(shù)據(jù)長度表示無誤,否則不會進行轉(zhuǎn)換。

轉(zhuǎn)換示例:

串行幀轉(zhuǎn)CAN報文(協(xié)議模式);

該示例配置的CAN配置參數(shù);

轉(zhuǎn)換模式:協(xié)議模式;

幀類別:擴展幀;

轉(zhuǎn)換方向:雙向;

幀ID:無需配置;

則轉(zhuǎn)換前后數(shù)據(jù)如下:

2c247b2a-f0a7-11ed-ba01-dac502259ad0.png

在了解了ECAN-401的協(xié)議模式功能后,我們可以開始實際操作,準備以下設備:

ECAN-401一臺

CAN分析儀ECAN-U01一臺

XCOM串口助手

這里我們使用ECAN-401做數(shù)據(jù)轉(zhuǎn)換工具,ECAN-U01發(fā)送和接收CAN報文,XCOM串口助手軟件模擬串行設備發(fā)送串行數(shù)據(jù)。將ECAN-401與ECAN-U01的CAN_L和CAN_H連接,ECAN-401的485接口通過485換USB轉(zhuǎn)換器連接到電腦,如下圖所示:

2c3c12bc-f0a7-11ed-ba01-dac502259ad0.png

通過ECAN-401的上位機,將設備通訊模式切換為協(xié)議模式,CAN波特率1000K,參數(shù)配置如下圖:

2c5f8f26-f0a7-11ed-ba01-dac502259ad0.png

打開CAN分析儀ECAN-U01以及XCOM軟件,使用XCOM軟件模擬出一串行設備,通過ECAN-401的485串口發(fā)送串行數(shù)據(jù)。首先使用標準幀發(fā)送兩包數(shù)據(jù):88 01 23 45 67 11 22 33 44 55 66 77 88,這里可以看到ECAN-U01設備已經(jīng)接收到了ECAN-401所轉(zhuǎn)換出來的數(shù)據(jù):

2c7c33b0-f0a7-11ed-ba01-dac502259ad0.png

這里可以看到ECAN-U01已經(jīng)成功接收到ECAN-401轉(zhuǎn)化出來的數(shù)據(jù),幀類型:擴展幀幀ID:1234567,數(shù)據(jù)域:11 22 33 44 55 66 77 88 。從ECAN-401的配置參數(shù)上看,ECAN-401的設置的幀類型和幀ID是沒生效的,CAN分析儀接收的幀信息由串行幀給出。

再試試串行幀發(fā)送08 00 00 01 23 88 77 66 55 44 33 22 11,如下圖所示:

2c8f9b62-f0a7-11ed-ba01-dac502259ad0.png

CAN分析儀正常接收到標準幀數(shù)據(jù),這樣就可以實現(xiàn)設備到CAN的協(xié)議轉(zhuǎn)發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2663

    瀏覽量

    462439
  • 協(xié)議
    +關注

    關注

    2

    文章

    590

    瀏覽量

    39048
收藏 人收藏

    評論

    相關推薦

    CAN總線的報文類型介紹

    CAN(Controller Area Network)總線是一種廣泛使用的串行通信協(xié)議,特別適用于汽車和工業(yè)自動化領域。CAN總線上的報文類型主要可以分為以下幾種,每種類型都有其特定
    的頭像 發(fā)表于 09-03 14:20 ?267次閱讀

    【項目陪跑--無線CAN轉(zhuǎn)發(fā)器】第一章 課程概述

    第一節(jié)項目概述設計一款無線CAN轉(zhuǎn)發(fā)器,由若干個終端組成,若干個終端之間可以將接收到的CAN數(shù)據(jù)通過無線的方式轉(zhuǎn)發(fā)出去。第二節(jié)硬件概述該CAN
    的頭像 發(fā)表于 07-03 08:00 ?226次閱讀
    【項目陪跑--無線<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)發(fā)</b>器】第一章 課程概述

    TSMaster 中不同總線報文消息過濾的操作方式

    TSMaster軟件平臺支持對不同總線(CAN、LIN、FlexRay)報文和信號的過濾,包括全局接收過濾、數(shù)據(jù)流過濾、窗口過濾、字符串過濾、可編程過濾,針對不同的總線信號過濾器的使用方法基本相
    的頭像 發(fā)表于 06-22 08:21 ?1154次閱讀
    TSMaster 中不同總線<b class='flag-5'>報文</b>消息過濾的操作方式

    如何通過CAN報文TC375傳輸數(shù)據(jù)?

    從示例 MCMCAN_1_KIT_TC375_LK 和 ADC_Single_Channel_1_TC375_LK 開始,我必須用 CAN 報文發(fā)送從模擬通道獲取的數(shù)值。 我就是這么做的: void
    發(fā)表于 05-28 08:30

    CAN報文為什么會發(fā)送失?。?/a>

    CAN總線調(diào)試過程中出現(xiàn)報文發(fā)送失敗。很多工程師都對此只知其一不知其二,今天我們就以CAN報文發(fā)送失敗的問題來做一次探討。在了解CAN
    的頭像 發(fā)表于 04-12 08:25 ?1416次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>報文</b>為什么會發(fā)送失敗?

    什么是CAN2.0協(xié)議

    控制以及其他分布式控制系統(tǒng)中的現(xiàn)場總線標準之一。CAN協(xié)議在設計時注重實時性能、錯誤檢測與恢復機制以及網(wǎng)絡節(jié)點間的高效通信。在CAN2.0規(guī)范中,主要有2種報文格式
    的頭像 發(fā)表于 03-29 08:19 ?1024次閱讀
    什么是<b class='flag-5'>CAN</b>2.0<b class='flag-5'>協(xié)議</b>?

    TC275多路CAN節(jié)點,報文接收時需要開啟多路的CAN接收中斷嗎?

    TC275配置使用一路CAN0時,收發(fā)都可以,收報文是開啟的CAN0接收中斷,然后接收報文;現(xiàn)在使用兩路CAN
    發(fā)表于 02-20 08:27

    TC387模塊CAN0的節(jié)點2作為CANA使用,CANA既收不到報文也發(fā)不出報文如何解決?

    TC387模塊CAN0的節(jié)點2作為CANA使用,CAN1的節(jié)點0作為CANB使用,配置基本相同。但CANB的通信正常,而在TJA1145正常情形下,CANA既收不到報文,也發(fā)不出報文,
    發(fā)表于 02-19 06:43

    TC39x的can報文過濾規(guī)則怎么設置?

    TC39x的can報文過濾規(guī)則怎么設置
    發(fā)表于 02-19 06:12

    CAN總線報文數(shù)據(jù)一致性校驗

    比如ECU1接收ECU2發(fā)出的一幀0x100報文協(xié)議層是不會區(qū)分是ECU1發(fā)的,還是非法接入OBD的CAN盒發(fā)的?如果ECU1接收到非ECU2發(fā)出的0x100報文豈不是很危險?
    的頭像 發(fā)表于 01-24 10:03 ?1345次閱讀
    <b class='flag-5'>CAN</b>總線<b class='flag-5'>報文</b>數(shù)據(jù)一致性校驗

    CAN總線協(xié)議簡介及其常見的應用領域

    CAN總線協(xié)議是一種串行通訊協(xié)議,主要用于汽車和工業(yè)自動化領域,實現(xiàn)了實時應用的需求。 首先,CAN總線協(xié)議的基本概念包括
    的頭像 發(fā)表于 01-19 17:47 ?997次閱讀

    VXLAN網(wǎng)關有哪些種類?VXLAN網(wǎng)絡中報文是如何轉(zhuǎn)發(fā)的?

    VXLAN網(wǎng)關有哪些種類?VXLAN網(wǎng)絡中報文是如何轉(zhuǎn)發(fā)的? VXLAN(Virtual Extensible LAN)是一種網(wǎng)絡虛擬化技術(shù),它使用隧道協(xié)議將虛擬局域網(wǎng)(VLAN)擴展到整個
    的頭像 發(fā)表于 12-07 09:32 ?592次閱讀

    特斯拉車身BCM控制信號解碼匹配與CAN報文數(shù)據(jù)采集及應用分析

    昨天閑來沒事,又把特斯拉的車身BCM控制信號采集了一次,通過速銳得解碼匹配,抓取到了特斯拉的CAN報文信息及控制協(xié)議,這里面包括的信息還比較多,對于專門做特斯拉類的產(chǎn)品的朋友,算是一個比較友好的交代。
    的頭像 發(fā)表于 11-27 11:23 ?557次閱讀

    CAN協(xié)議棧與LIN協(xié)議棧介紹

    CAN協(xié)議棧 汽車CAN協(xié)議棧是一種軟件組件,用于實現(xiàn)汽車電子系統(tǒng)中的CAN總線通信功能。它包含了一系列的功能軟件,用于處理
    的頭像 發(fā)表于 10-27 16:16 ?2573次閱讀
    <b class='flag-5'>CAN</b><b class='flag-5'>協(xié)議</b>棧與LIN<b class='flag-5'>協(xié)議</b>棧介紹

    基于以太網(wǎng)的網(wǎng)絡管理報文

    DoIP的流程: 1)診斷儀或者作為診斷Client端的ECU發(fā)送的基于以太的診斷報文通過Switch能夠轉(zhuǎn)發(fā)至對應ECU中。 2)在診斷報文的收發(fā)中,Soad,TCPIP.Ethif,Eth作為
    的頭像 發(fā)表于 10-04 17:26 ?941次閱讀
    基于以太網(wǎng)的網(wǎng)絡管理<b class='flag-5'>報文</b>