1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
MCU没有CAN或CAN接口数量不够怎么办?目前市面上有串口转CAN的相关模块或设备,但大家知道串口转CAN是如何实现的吗?转换后的帧格式是如何的?本文将为大家详细介绍串口经过转换后的CAN帧格式与注意事项。
|
|
相关推荐
3个回答
|
|
适用场景
串口转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位正常填充,其他三字节全补零。 假设配置的转换成的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帧到串行帧 |
|
|
|
只有小组成员才能发言,加入小组>>
934 浏览 1 评论
1090 浏览 1 评论
12506 浏览 0 评论
5922 浏览 3 评论
17716 浏览 6 评论
1022浏览 1评论
1013浏览 1评论
935浏览 1评论
4710浏览 1评论
1092浏览 1评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 16:34 , Processed in 0.734771 second(s), Total 49, Slave 41 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号