历史上的今天
返回首页

历史上的今天

今天是:2025年01月09日(星期四)

正在发生

2019年01月09日 | 技术文章—详解串口转换CAN模块“透明带标识转换”

2019-01-09

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

 

1 . 适用场景

 

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

 

https://inews.gtimg.com/newsapp_bt/0/7048141613/1000

 

图1  应用行业

 

2 . 使用方法

 

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

 

新建 Microsoft Visio 绘图

 

图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个字节,且处于该模式时串行接收设置有超时时间,即在一定时间内收不到串口数据则默认打包为一帧发送。因此,在透明带标识转换模式下,必须保证模块取得完整的串行数据帧,否则会造成分包错误。

 

绘图72

 

图4  分包方式

 

透明带标识转换模式下,串行帧转为CAN报文时的形式如图5。需要注意的是,串行帧中所带有的CAN报文“帧ID”在串行帧中的起始地址和长度可由配置设定。起始地址的范围是0~7,长度范围分别是1~2(标准帧)或1~4(扩展帧)。如果在配置中指定帧类型为标准帧,帧ID信息起始地址为3长度为1,则帧ID的有效位只有8位。地址3中的CAN ID1作为标准帧ID的高8位,其余位全部补0。

 

 

图5  串行帧到CAN帧

 

透明带标识转换模式下, CAN报文转为串行帧时的形式如图6。若同样配置CAN帧信息为标准帧,帧ID信息为起始3长度1,则转换时将丢失ID0的数据。此时CAN帧 中的数据能正常被接收,但必然缺失帧ID信息(ID0本身不全为0时)。为了正常转换标准帧的帧ID信息,下图的转换情景必须将帧ID信息中的帧长度设置为2。

 

 

图6  CAN帧到串行帧

 

4 . 转换示例

 

假设CAN报文“帧ID”在串行帧中的起始地址是2,长度是3(扩展帧情况下),串行帧发送的数据分别为0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,则转换结果如图7。

 

绘图135

 

图7  示例1

 

若配置起始地址是2,长度是3(扩展帧情况下),CAN报文的帧ID为0x00123456,数据为0x55,0x55,0x55,0x55,0x55,0x55则转换结果如图8。

 

绘图143

 

图8  示例2

 

4 .总结

 

以上为串口转CAN“透明带标识”模式下的的转换方式,该模式特点是可以灵活设定一个节点发送的CAN帧ID信息。笔者将介绍透明转换、透明带标识转换、自定义协议转换以及moudbus转换的内容,欢迎关注往期及后期文章。

 


推荐阅读

史海拾趣

Hoffman_Enclosures__Inc.公司的发展小趣事

随着时间的推移,Hoffman公司不断拓展其产品线,从最初的安全保护装置逐渐扩展到包括标准机箱机柜、冷却产品及各种定制化电气方案。为了满足全球客户的需求,Hoffman在多个地区建立了生产基地和研发中心,特别是在亚太地区,青岛的研发及制造中心成为公司全球化战略的重要一环。这一布局不仅提升了公司的生产效率,也确保了产品在全球范围内的快速响应和高质量服务。

Hamlin ( Littelfuse )公司的发展小趣事

随着时间的推移,Hoffman公司不断拓展其产品线,从最初的安全保护装置逐渐扩展到包括标准机箱机柜、冷却产品及各种定制化电气方案。为了满足全球客户的需求,Hoffman在多个地区建立了生产基地和研发中心,特别是在亚太地区,青岛的研发及制造中心成为公司全球化战略的重要一环。这一布局不仅提升了公司的生产效率,也确保了产品在全球范围内的快速响应和高质量服务。

静芯微电子(ElecSuper)公司的发展小趣事

随着技术的不断进步和市场需求的不断变化,静芯微电子开始拓展产品线。公司不仅继续深耕ESD/TVS领域,还逐渐涉足了RS485、HALL、电源、接口等芯片的研发和生产。这些新产品的推出不仅丰富了公司的产品线,还进一步扩大了静芯微电子在电子行业的应用范围。目前,静芯微电子的产品已经广泛应用于汽车电子、工业控制、消费电子等领域,并与多家知名品牌建立了深度合作。

台湾固锝(GD)公司的发展小趣事
如果发现电路工作不正常或性能参数不符合要求,应仔细排查故障原因并进行修复。
Cortina Systems Inc公司的发展小趣事
通过合理设计电路布局和元件选择来减少功耗和热量产生。
Easy Braid公司的发展小趣事

在技术创新和品质保证的基础上,Easy Braid开始积极拓展市场。公司不仅在国内市场取得了良好的业绩,还逐步将目光投向了国际市场。通过与国外知名企业的合作,Easy Braid成功地将自己的产品打入国际市场,实现了品牌的全球化布局。这一过程中,Easy Braid展现出了强大的市场竞争力和适应能力。

问答坊 | AI 解惑

这样的cic对不对? 根据论坛给的程序改的

这样的cic对不对? 根据论坛给的程序改的! //********************************************************* //cic滤波器 5阶8倍抽取,延迟1, R=8,M=1,N=5 //32+5*log8=47, 所以扩展位sxtx 47位,输出为24位。 //**************************** ...…

查看全部问答>

【A题】电源频率跟踪电路的改进

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 电源频率跟踪电路的改进  …

查看全部问答>

电路可靠性设计与元器件选型

我给下的结论无一例外都是怪到了研发的头上。并送给了研发弟兄们几个总结性观点:①在公司里,研发队伍已经足够强势,不必再由我添加压垮骆驼的那最后一根稻草;②产品的可靠性水平和研发的强势程度成反比;③电路设计错误和器件应用不当占了故 ...…

查看全部问答>

RAM核心板PCB 高清大图

https://home.eeworld.com.cn/my/space.php?uid=257400&do=album&id=1232     前几天有些朋友在问我联系方式我的QQ:1211406057 有朋自远方来  乐乎!!!         谢谢大家支…

查看全部问答>

WLAN Controller SOS!!!SOS!!!SOS!!! 100分外加RMB100

请针对就您理解WLAN Controller目的与    原理制作简报说明, 含以下内容者尤佳: 系统实作方式 功能测试方式 答题简报内容 WLAN Controller目的 WLAN Controller原理 答题简报语句 条理清晰,语句简洁 答题简报格式 使用Power Po ...…

查看全部问答>

来问个基础问题,WinCE下的程序是怎么开发的?

    微软应该为WinCE应该提供PC机上运行的开发环境吧,在开发环境下编译连接,生成输出文件,然后用编程器写到嵌入式系统中,应该是这个样子吧?我一直用TI的DSP/BIOS做学习,对WinCE不了解.…

查看全部问答>

请问哪里有英文论文下载啊

嵌入式方面的,最好是关于bootloader的,5000字左右,谢谢。…

查看全部问答>

蓝牙模块&AT命令

在应用层发送AT命令,是如何到底层的?模块是怎么接收的? 是不是,应用层的AT命令由主板上的MCU通过蓝牙模块的串口(UART)传送到蓝牙模块。 还是应用层的AT命令由蓝牙模块通过蓝牙模块的串口(UART)传送到主板上的MCU。 或者都不是? 还有个 ...…

查看全部问答>

工业以太网的协议能自己选吗?还是已经固化在芯片里了?

我用的是lm3s9b92,要做基于工业以太网的开发,各种协议如EtherCAT,Powerlink这些是可以自己选择的吗?还是芯片已经把协议固化在rom里了? 如果是前者,这些协议的实现该从哪里搞到呢?如果是后者,它固化的是哪种协议呢? 求教高手,感激不尽!…

查看全部问答>

有没有关于电子设计大赛备战的QQ群啊?

本帖最后由 paulhyde 于 2014-9-15 09:15 编辑 有没有关于电子设计大赛备战的QQ群啊?  …

查看全部问答>