串口转换CAN详解:透明带标识转换篇

ZLG致远电子
关注

UART转CAN的应用已广泛应用于各行各业,因此对于数据帧转换的形式要求也逐渐增多,目前主流的转换形式包括透明转换、透明带标识转换以及自定义转换。具体是如何实现?本文将为大家介绍其中的透明带标识转换。

在上次的文章中已为大家介绍了《UART数据转CAN数据中的透明转换的工作原理》。本文将介绍另一种数据转换模式——透明带标识转换。

1适用场景

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

图1 应用行业

2使用方法

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

图2 产品架构

3格式说明

CSM100系列模块提供3种协议转换方式:透明转换、透明带标识转换、自定义协议转换。上篇文章已介绍过透明转换模式的转换方法,本文将以CSM100系列的模块简述模块的透明带标识转换格式。

该转换模式串行帧中的“帧ID”自动转换成CAN报文中的帧ID。只要在配置中告诉模块该“帧ID”的地址编号在串行帧的起始位置和长度,模块在转换时提取出这个“帧ID”填充在CAN报文的帧ID域里,作为该串行帧转发时的CAN报文的帧ID。在CAN报文转换成串行帧的时候也把CAN报文帧ID转换在串行帧的相应位置。

图3 转换方式

对比“透明转换”模式和“透明带标识”模式不难发现它们之间的区别:CAN ID信息来自串口流数据中还是来自模块本身的配置信息中。由于“透明转换”模式下的CAN ID来自模块配置信息,配置信息由上位机软件提供,因此对于使用此模式的节点来说发送的帧ID是固定的。而“透明带标识”模式下不同,它可以一个节点发送多个帧ID 的CAN帧。

4转换形式

串行帧的最大缓冲区长度为255个字节,且处于该模式时串行接收设置有超时时间,即在一定时间内收不到串口数据则默认打包为一帧发送。因此,在透明带标识转换模式下,必须保证模块取得完整的串行数据帧,否则会造成分包错误。

图4 分包方式

声明: 本文由入驻OFweek维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。
侵权投诉

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存