<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

【教程】CAN報文固定協議轉發

億佰特物聯網應用專家 ? 2023-05-15 10:30 ? 次閱讀

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

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

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

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

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

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

幀數據在CAN格式轉換時,長度固定為8字節。有效長度由DLC3~DLC0的值決定,有效數據不足固定長度時,需要補0到固定長度。

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

轉換示例:

串行幀轉CAN報文(協議模式);

該示例配置的CAN配置參數;

轉換模式:協議模式;

幀類別:擴展幀;

轉換方向:雙向;

幀ID:無需配置;

則轉換前后數據如下:

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

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

ECAN-401一臺

CAN分析儀ECAN-U01一臺

XCOM串口助手

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

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

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

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

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

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

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

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

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

CAN分析儀正常接收到標準幀數據,這樣就可以實現設備到CAN的協議轉發。

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

    關注

    56

    文章

    2485

    瀏覽量

    460046
  • 協議
    +關注

    關注

    2

    文章

    572

    瀏覽量

    38944
收藏 人收藏

    評論

    相關推薦

    CAN報文為什么會發送失???

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

    什么是CAN2.0協議?

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

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

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

    TC39x的can報文過濾規則怎么設置?

    TC39x的can報文過濾規則怎么設置
    發表于 02-19 06:12

    CAN總線報文數據一致性校驗

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

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

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

    VXLAN網關有哪些種類?VXLAN網絡中報文是如何轉發的?

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

    基于以太網的網絡管理報文

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

    影響報文超時上報的機制有哪些

    前言 最近遇到一個CAN報文超時Notification不上報導致ECU不休眠的偶發問題,本文分享解決問題的思路及影響報文超時上報的機制,希望能給各位讀者一點啟發。 參考文檔: 1.
    的頭像 發表于 08-07 09:16 ?953次閱讀
    影響<b class='flag-5'>報文</b>超時上報的機制有哪些

    求一種基于infineonPSOC62開發板的多功能CAN報文記錄儀設計方案

    在汽車領域,經常會涉及到CAN報文收發,目前應用最廣泛的就是是CAN2.0B協議。CAN報文對整
    的頭像 發表于 07-18 16:17 ?795次閱讀
    求一種基于infineonPSOC62開發板的多功能<b class='flag-5'>CAN</b><b class='flag-5'>報文</b>記錄儀設計方案

    CAN FD報文時間計算

    可以根據波特率算出不同類型報文時間,計算公式如下: 報文時間 = 仲裁域位時間 * 仲裁域位數 + 數據域位時間 * 數據域位數 以位數最少的CANFD報文為例,在仲裁域波特率為1Mbps(位時間
    的頭像 發表于 07-18 10:49 ?1633次閱讀
    <b class='flag-5'>CAN</b> FD<b class='flag-5'>報文</b>時間計算

    一幀CAN報文多少字節

    一幀CAN FD報文位數 根據CAN FD幀結構組成,可以算出一幀CAN FD報文位數: CAN
    的頭像 發表于 07-18 10:48 ?5453次閱讀

    CAN總線技術原理 CAN總線的分層結構

    CAN芯片將數據根據協議組織成一定的報文格式發出,這時網上的其它站處于接收狀態。每個處于接收狀態的站對接收到的報文進行檢測,判斷這些報文是否
    發表于 06-16 12:50 ?1681次閱讀
    <b class='flag-5'>CAN</b>總線技術原理 <b class='flag-5'>CAN</b>總線的分層結構

    M453單片機的CAN中斷接力發送時發送報文數量丟失怎么解決?

    1、我使用新唐M453單片機,使用CAN1進行實驗,將CAN1的后4個報文緩存RAM做為發送緩沖區來使用。通過線程啟動報文的發送,在中斷中通過查詢發送請求寄存器來判斷哪個發送緩沖區空閑
    發表于 06-15 07:26

    【教程】CAN報文自定義協議轉發

    CAN總線通信的應用領域中,很多客戶需要將CANID放在CAN報文中,這樣更方便接入不同的設備,有利于用戶通過模塊更方便地組建自己的網絡,使用自定的應用協議。但是要實現這樣的應用,用
    的頭像 發表于 05-31 17:03 ?993次閱讀
    【教程】<b class='flag-5'>CAN</b><b class='flag-5'>報文</b>自定義<b class='flag-5'>協議</b><b class='flag-5'>轉發</b>
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>