mcu没有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接口等。
图2 产品架构
转换说明
csm100系列模块提供3种协议转换方式:透明转换、透明带标示转换、自定义协议转换。下面以csm100系列的模块简述模块的透明转换格式。
该模式下,csm100接收到一侧总线的数据就立即转换发送至另一总线侧。该模式下的模块数据转换效率最高,能承担较大流量的数据传输。串行帧转can帧时,模块将来自串口的数据直接打包,并插入预先配置的can帧信息、帧id一同作为一帧数据发送到总线上。同理,来自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位正常填充,其他三字节全补零。
图4 帧id转换说明
假设配置的转换成的can报文帧信息为“标准帧”,配置的帧id1,id0分别为“0x01,0x23”,串行帧的数据为01,02,03,04,05,06,07,08共8个字节,那么转换格式如图5。can报文的帧id为0x0123(用户配置),帧信息:标准帧(用户配置),串行帧中的数据部分将不作任何修改地转换到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报文的数据域将不作任何修改地转换到串行帧中的数据部分。
图6 can帧到串行帧
总结
以上为串口转can透明格式下的转换方式,后续笔者将新增透明带标示转换、自定义协议转换以及moudbus转换的内容,欢迎持续关注。
云天励飞针对小型项目打造高性价比AI赋能方案
苹果13芯片有问题吗
国外研发出一种阴极材料 电极能量密度可增加三倍
英飞凌欲收购意法半导体 兼并整合成为巨头发展利器
东芝摄影新技术 一次拍摄、两种图像
串口经过转换后的CAN帧格式与注意事项介绍
AI助力华为引领企业通信新变革
一键动态切换IP脚本
霍金预言:机器人要对人类反攻了?
智能温室大棚控制系统解决方案,它有哪些优势
六脚开关引脚图及功能定义
浅谈音圈电机模组在微生物检测仪中的应用
iOS10.3最新消息:iOS10.3.3Beta2今日凌晨推送更新,iOS10.3.3值得更新吗?iOS10.3.3Beta2更新使用感受分享
华为智能手机第二季度超越三星 华为鸿蒙系统布局比亚迪汉
人工智能两分钟就能准确诊断脑瘤
秒验 REST API 手机号码置换接口
浙江移动联合华为共同完成电信云&5GC分批升级解决方案
摩托罗拉p30评测 无明显短板可以尝试
用Python从头实现一个神经网络来理解神经网络的原理3
肥料快速检测仪的详细介绍