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

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

3天内不再提示

串口数据转CAN帧格式详解

AGk5_ZLG_zhiyua 来源:工程师曾玲 2019-02-02 16:30 次阅读

MCU没有CAN或CAN接口数量不够怎么办?目前市面上有串口转CAN的相关模块或设备,但大家知道串口转CAN是如何实现的吗?转换后的帧格式是如何的?本文将为大家详细介绍串口经过转换后的CAN帧格式与注意事项。

适用场景

串口转CAN模块在什么时候需要用到呢?一是老产品面临升级,需要用到CAN总线通信,但硬件平台中的MCU没有集成CAN总线的控制器。二是选用的MCU已经包含CAN总线接口,但数量上不能满足项目需求。若出现类似以上两种情况且MCU有闲置串口,则可以选用串口转CAN模块解决。

图1 应用行业

使用方法

该类模块可以很方便地嵌入到具有UART接口的设备中,在不需改变原有硬件结构的前提下使设备获得CAN-bus通讯接口,实现具有UART设备和CAN-bus网络之间的数据通讯。工业级的转换模块内部还包括实现带隔离的CAN和UART转换所必须的模拟和数字器件、光电耦合器DC/DC变换器、CAN-bus接口等。

串口数据转CAN帧格式详解

图2 产品架构

转换说明

CSM100系列模块提供3种协议转换方式:透明转换、透明带标示转换、自定义协议转换。下面以CSM100系列的模块简述模块的透明转换格式。

该模式下,CSM100接收到一侧总线的数据就立即转换发送至另一总线侧。该模式下的模块数据转换效率最高,能承担较大流量的数据传输。串行帧转CAN帧时,模块将来自串口的数据直接打包,并插入预先配置的CAN帧信息、帧ID一同作为一帧数据发送到总线上。同理,来自CAN总线上的数据将按顺序拆分为字节流发送到串口上,字节流的前几个字节为该CAN帧的信息。

串口数据转CAN帧格式详解

图3 转换方式

说到这,大家肯定有个疑惑,CAN帧的信息及CAN帧ID是如何表示的呢?

帧信息主要用来区分标准帧、扩展帧,长度为1个字节。在“自定义协议转换”中,标准帧固定为 0x00, 扩展帧固定为 0x80; 在“透明转换”“透明带标识转换” 中, 标准帧为 0x0_,扩展帧为 0x8_,其中“_” 代表每个帧中的数据域长度, 范围为 0~8。

标准帧的帧ID拆分为2个字节表示,扩展帧的帧ID拆分为4个字节表示。如果实际配置时给帧ID预留的只有一个字节且帧类型为扩展帧,方向是CAN帧转串行帧,那么将只能得到帧ID的高8位。如果实际配置时给帧ID预留的只有一个字节且帧类型为扩展帧,方向是串行帧转CAN帧,那么将帧ID的高8位正常填充,其他三字节全补零。

串口数据转CAN帧格式详解

图4 帧ID转换说明

假设配置的转换成的CAN报文帧信息为“标准帧”,配置的帧ID1,ID0分别为“0x01,0x23”,串行帧的数据为01,02,03,04,05,06,07,08共8个字节,那么转换格式如图5。CAN报文的帧ID为0x0123(用户配置),帧信息:标准帧(用户配置),串行帧中的数据部分将不作任何修改地转换到CAN报文中。

串口数据转CAN帧格式详解

图5 串行帧到CAN帧

假设CAN报文中帧ID1为0x01,帧ID0为 0x23,数据为0x12,0x34,0x56,0x78,0xab,0xcd,0xef,0xff,则CAN报文和转换后的串行帧如图6。CAN报文的帧信息(0x08)转换到串行帧中的第1个字节(0x08),CAN报文中的ID:0x0123依次转换到串行帧中的第2个字节(0x01)及第3个字节(0x23)。CAN报文的数据域将不作任何修改地转换到串行帧中的数据部分。

串口数据转CAN帧格式详解

图6 CAN帧到串行帧

总结

以上为串口转CAN透明格式下的转换方式,后续笔者将新增透明带标示转换、自定义协议转换以及moudbus转换的内容,欢迎持续关注。

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

    关注

    56

    文章

    2461

    浏览量

    459097
  • 串口
    +关注

    关注

    14

    文章

    1483

    浏览量

    74487

原文标题:串口数据转换为CAN数据之后是怎样的?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Link-Max CAN485/CAN232智能型CAN串口转换网桥

    [img][/img] CAN-232B、CAN-485B CAN总线RS-232 CAN总线
    发表于 11-01 11:05

    Link-Max CAN485/CAN232智能型CAN串口转换网桥

     CAN-232B、CAN-485B CAN总线RS-232 CAN总线RS-48
    发表于 11-16 11:02

    USBCAN转换器|CAN总线通信模块

    总线接口适配器,可进行双向传送。本公司所生产的USB接口支持USB2.0,兼容USB1.1;支持CAN协议2.0A和2.0B主动模式;支持扩展,支持标准格式;支持
    发表于 05-27 09:13

    如何使用labview处理串口数据

    正在编一个labview上位机软件,接受串口发来的数据,并实时呈现图像。串口数据格式为#,da
    发表于 11-25 16:57

    如何使用labview处理串口数据

    正在编一个labview上位机软件,接受串口发来的数据,并实时呈现图像。串口数据格式为#,da
    发表于 11-25 16:57

    串口经过转换后的CAN格式与注意事项介绍

    MCU没有CANCAN接口数量不够怎么办?目前市面上有串口CAN的相关模块或设备,但大家知道串口
    发表于 07-12 08:04

    关于CAN总线

    CAN总线的格式中,为什么数据场只能传输8个字节的数据呢?
    发表于 07-20 16:28

    串口经过转换后的CAN格式与注意事项

    MCU没有CANCAN接口数量不够怎么办?目前市面上有串口CAN的相关模块或设备,但大家知道串口
    发表于 01-26 07:40

    can的五种介绍

    对应逻辑0,CAN_H和CAN_L之差为2.5V左右。而隐性电平对应逻辑1,CAN_H和CAN_L之差为0V数据
    发表于 08-06 09:13

    串口协议数据格式

    前言好久没更新博客了,这篇文章写写停停,用了近一周的时间,终于写完了。本篇文章介绍,串口协议数据格式、串行通信的工作方式、电平标准、编码方式及Verilog实现
    发表于 08-06 08:20

    STM32串口数据发送格式

    发送格式:1个起始位 + 8个数据位 + 1个停止位思路:1.PA9做普通IO推挽输出,按照发送格式用延时暂时作为该位的传输时间,波特率为96002.PA10做浮空输...
    发表于 08-16 06:16

    CAN总线详解 精选资料分享

    总线技术3.运行流程:4.显性隐性:一、 CAN结构CAN-bus通信数据、远程
    发表于 08-20 07:03

    RT1060如何区分接收到的CAN格式

    /接收CAN2.0B格式CAN FD格式。 实际测试结果也符合预期,虽然FLEXCAN_W
    发表于 03-20 08:11

    串口数据与固定ID的CAN数据转换

    GCAN-201串口CAN设备可以将串口数据CAN总线数据按照一定的
    的头像 发表于 02-05 10:36 4146次阅读
    <b class='flag-5'>串口</b><b class='flag-5'>数据</b>与固定ID的<b class='flag-5'>CAN</b><b class='flag-5'>数据</b>转换

    使用CAN串口网关什么时候选格式转化?

    在使用CAN串口网关时,选择格式转化还是透明转化取决于你的需求和应用场景。
    的头像 发表于 10-30 11:13 240次阅读