0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【教程】CAN报文自定义协议转发

亿佰特物联网应用专家 2023-05-31 17:03 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CAN总线通信的应用领域中,很多客户需要将CANID放在CAN报文中,这样更方便接入不同的设备,有利于用户通过模块更方便地组建自己的网络,使用自定的应用协议。但是要实现这样的应用,用户往往需要不停地去修改参数。

我司研发的ECAN-401所具备的透明带标识功能则很好地处理这个问题。该方式把串行帧中的 ID 信息自动转换成CAN总线的帧ID。只要在配置中告诉模块该ID信息在串行帧的起始位置和长度,模块在转换时提取出这个帧ID填充在CAN报文的帧ID域里,作为该串行帧的转发时的CAN报文的ID。在CAN报文转换成串行帧的时候也把CAN报文的ID转换在串行帧的相应位置。

转换方式

1、串行帧转 CAN 报文

串行帧中所带有的CAN报文的“帧 ID”在串行帧中的起始地址和长度可由配置设定。起始地址的范围是0~7,长度范围分别是1~2(标准帧)或1~4(扩展帧)。转换时根据事先的配置将串行帧中的 CAN报文“帧 ID”对应全部转换到CAN报文的帧ID域中(如果所带帧ID个数少于CAN报文的帧 ID 数,那么在CAN报文中帧ID的高字节补0。),其它的数据依序转换,如果一帧CAN报文未将串行帧数据转换完,则仍然用相同的ID作为CAN报文的帧ID继续转换直到将串行帧转换完成。

注意:如果将ID长度大于2,设备发送的帧类别会设置为扩展帧。此时用户配置的帧ID和帧类别无效,由串行帧里边的数据决定。标准帧的帧ID范围为:0x000-0x7ff,分别表示为帧 ID1、帧 ID0,其中帧 ID1 为高字节,扩展帧的帧 ID 范围为:0x00000000-0x1fffffff,分别表示为帧 ID3、帧 ID2、帧 ID1、帧 ID0,其中帧 ID3 为高字节。

a65bd17c-fb5b-11ed-ba01-dac502259ad0.png

串行帧转换成 CAN 报文(透传带标识)


转换示例:

串行帧转CAN报文(透明带标识)。

该示例配置的CAN配置参数。转换模式:透明带标识转换,起始地址2,长度3。帧类型:扩展帧,帧ID:无需配置,转换方向:双向。则转换前后数据如下。

a697b5b6-fb5b-11ed-ba01-dac502259ad0.png

串行帧转 CAN 报文示例(透传带标识转换)


2、CAN 报文转串行帧

对于CAN报文,收到一帧就立即转发一帧,每次转发的时候也是根据事先配置的CAN帧ID在串行帧中的位置和长度把接收到的CAN报文中的ID做相应的转换。其它数据依序转发。值得注意的是,无论是串行帧还是CAN报文在应用的时候其帧格式(标准帧还是扩展帧)应该符合事先配置的帧格式要求,否则可能致使通讯不成功。

a6c30b1c-fb5b-11ed-ba01-dac502259ad0.png

CAN报文转换成串行帧

转换示例:

该示例配置的CAN配置参数。转换模式:透明带标识转换,起始地址2,长度3。帧类型:扩展帧,帧类型:数据帧。转换方向:双向。发送标识符:0x00000123,则转换前后数据如下。

a6ef678e-fb5b-11ed-ba01-dac502259ad0.png

CAN 报文转串行帧示例(透明带信息转换)

在了解了ECAN-401的透明带标识功能后,我们可以开始实际操作。

3、实际操作

准备以下设备:

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转换器连接到电脑,如下图所示:

a70dbcb6-fb5b-11ed-ba01-dac502259ad0.png

通过ECAN-401的上位机,将设备通讯模式切换为透明带标识模式,CAN波特率1000K,ID长度2,ID位置2参数配置如下图:

a821b346-fb5b-11ed-ba01-dac502259ad0.png

打开CAN分析仪ECAN-U01以及XCOM软件,使用XCOM软件模拟出一串行设备,通过ECAN-401的485串口发送串行数据:首先使用标准帧发送两包数据:11 22 03 44 55 66 77 88 99 00,这里可以看到ECAN-U01设备已经接收到了ECAN-401所转换出来的数据:

a84e8858-fb5b-11ed-ba01-dac502259ad0.png

这里可以看到ECAN-U01已经成功接收到ECAN-401转化出来的数据,帧ID:03 44,数据域:11 22 55 66 77 88 99 00。

再从CAN分析仪端发送数据到串行端口,如下图所示:

a86f04c0-fb5b-11ed-ba01-dac502259ad0.png

串口端也是按照透明带标识来组包,这样就成功实现了CAN协议按照透明带标识来收发数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • CAN
    CAN
    +关注

    关注

    58

    文章

    3012

    浏览量

    471476
  • 协议
    +关注

    关注

    2

    文章

    616

    浏览量

    40837
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    无图形界面模式下自定义检查工具的应用

    此前文章已介绍 ANSA 中的自定义检查工具。本文将探讨该功能在无图形界面(No-GUI)模式下的应用,旨在满足标准化工作流程的需求,适用于需要高度自动化的前处理场景。通过集成自定义检查,用户可实现工作流程的高效自动化运行。
    的头像 发表于 11-30 14:13 294次阅读
    无图形界面模式下<b class='flag-5'>自定义</b>检查工具的应用

    电能质量在线监测装置的数据推送协议是否可以自定义配置?

    现代电能质量在线监测装置普遍支持 协议参数自定义配置 和 协议组合灵活适配 ,用户可根据实际需求调整通信参数、映射数据格式,甚至通过第三方工具实现非标准协议的兼容。以下是具体实现方式及
    的头像 发表于 11-12 13:58 256次阅读
    电能质量在线监测装置的数据推送<b class='flag-5'>协议</b>是否可以<b class='flag-5'>自定义</b>配置?

    CAN 总线自定义协议使用说明

    关于can总线的设置
    发表于 11-05 17:00 1次下载

    LOTO示波器自定义解码功能—CANFD解码

    /?spm_id_from=333.1365.list.card_archive.click 。 视频中仅对串口进行解码演示,正好我们从客户手中拿到了一块USB转CAN/CANFD模块,如下图所示, 本文借此对自定义解码功能
    的头像 发表于 07-11 10:34 750次阅读
    LOTO示波器<b class='flag-5'>自定义</b>解码功能—CANFD解码

    大彩讲堂:VisualTFT软件如何自定义圆形进度条

    VisualTFT软件如何自定义圆形进度条
    的头像 发表于 07-07 17:10 1220次阅读
    大彩讲堂:VisualTFT软件如何<b class='flag-5'>自定义</b>圆形进度条

    KiCad 中的自定义规则(KiCon 演讲)

    “  Seth Hillbrand 在 KiCon US 2025 上为大家介绍了 KiCad 的规则系统,并详细讲解了自定义规则的设计与实例。  ”   演讲主要围绕 加强 KiCad 中的自定义
    的头像 发表于 06-16 11:17 1461次阅读
    KiCad 中的<b class='flag-5'>自定义</b>规则(KiCon 演讲)

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,自定义键盘可以
    的头像 发表于 06-05 14:19 1579次阅读

    LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令自定义封装

    LabVIEW高效加工指令自定义封装
    的头像 发表于 04-08 13:49 3266次阅读
    LabVIEW运动控制(三):EtherCAT运动控制器的高效加工指令<b class='flag-5'>自定义</b>封装

    如何添加自定义单板

    在开发过程中,用户有时需要创建自定义板配置。本节将通过一个实例讲解用户如何创建属于自己的machine,下面以g2l-test.conf为例进行说明。
    的头像 发表于 03-12 14:43 1082次阅读

    工业智能网关实现北向自定义报文配置流程

    ,由于各个公司定义报文格式各不相同,往往导致采集到数据并无法解析,设备便无法实现通信与监控。对此,具备北向自定义报文功能的工业智能网关,让用户可以根据自己的需求设置不同的
    的头像 发表于 02-21 10:49 783次阅读
    工业智能网关实现北向<b class='flag-5'>自定义</b><b class='flag-5'>报文</b>配置流程

    如何快速创建用户自定义Board和App工程

    概述自HPM_SDKv1.7.0发布开始,在HPM_ENV中新增了user_template文件夹,以方便用户快速创建自定义的Board和App工程。user_template是用户模板工程,用户
    的头像 发表于 02-08 13:38 999次阅读
    如何快速创建用户<b class='flag-5'>自定义</b>Board和App工程

    CAN总线十万个为什么 | CAN自定义波特率有什么用?

    导读CAN总线通信中,波特率一致并不总能保证通信顺畅。本文将揭秘自定义波特率的原理和应用,探讨如何通过优化采样点和提高容忍度解决通信问题,助力工程师提升通信稳定性。通常情况下,CAN总线通信只需确保
    的头像 发表于 02-07 11:36 1100次阅读
    <b class='flag-5'>CAN</b>总线十万个为什么 | <b class='flag-5'>CAN</b><b class='flag-5'>自定义</b>波特率有什么用?

    Altium Designer 15.0自定义元件设计

    电子发烧友网站提供《Altium Designer 15.0自定义元件设计.pdf》资料免费下载
    发表于 01-21 15:04 0次下载
    Altium Designer 15.0<b class='flag-5'>自定义</b>元件设计

    think-cell:自定义think-cell(四)

    C.5 设置默认议程幻灯片布局 think-cell 议程可以在演示文稿中使用特定的自定义布局来定义议程、位置和议程幻灯片上的其他形状,例如标题或图片。通过将此自定义布局添加到模板,您可以为整个组织
    的头像 发表于 01-13 10:37 880次阅读
    think-cell:<b class='flag-5'>自定义</b>think-cell(四)

    think-cell;自定义think-cell(一)

    本章介绍如何自定义 think-cell,即如何更改默认颜色和其他默认属性;这是通过 think-cell 的样式文件完成的,这些文件将在前四个部分中进行讨论。 第五部分 C.5 设置默认议程幻灯片
    的头像 发表于 01-08 11:31 1241次阅读
    think-cell;<b class='flag-5'>自定义</b>think-cell(一)