DSP F28335怎么实现两个CAN模块之间的通讯

DSP F28335怎么实现两个CAN模块之间的通讯,第1张

可能由于没有将CANA与CANB用杜邦线连起来,见下图

开发板上面有CAN通信接口,对于CANA有CANAL、CANAH,类似CANB有CANBL、CANBH,在使用官方的历程前,需要将CANAL与CANBL连起来,同时将CANAH与CANBH连起来,希望帮到大家

节点ID设置可以属于CAN应用层协议内容,而应用协议可以自行定义。

一、从节点的ID如果要和MCU“不相关”,可以又多种方式实现,ID事先装入EEPROM,或者用硬件的拨码开关来指示。

如果逻辑上复杂一些,可以做到ID自动分配,自动识别。

二、“如从主节点向从节点下载程序”——可以主节点同时向多个从节点发送数据(广播),也可以指向特定的ID发送(单个问答式)。

实际上主节点的数据发到总线上了,所有从节点都可以接收到的,至于如何接收可以两种方式:

1、每个节点都把数据收入缓冲区,软件判断不属于自己节点的就丢弃不处理。

2、硬件设置CAN滤波,不属于自己节点的数据就不会收入缓冲区,节点处于空闲状态,只有属于自己的特定ID才会收进来。

首先,CAN总线不分主机,最多是整车厂在网络规划的时候定义了一个功能比较多的节点,各家车厂不一样(如网关),或者类似PowerMaster。但是CAN本身协议里是不存在主、从的。

其次,楼上说的仲裁延时的问题,CAN协议本身是考虑到这个问题的,当然按他的方法通过协议延时可以解决,但是既然CAN协议已经给了我们解决方法那肯定是更科学更有效的,具体的去看CAN的仲裁吧,你需要一个节点的报文发送不存在延时,只需要给它分配一个优先级很高的ID即可,当然这得从网络规划的角度出发,不是这么简单说说的。

回到你的问题,你说的主机请求数据,在CAN中只能是远程帧(一个远程标志位为1,数据场为空的帧),当这个帧出现在总线上时,拥有这个ID数据的节点就要发送这个同ID的完整帧(远程帧标志位为0)。但是只能有一个节点接受这个远程帧的请求。

这里强调一个概念,同一个ID的帧只能由一个节点发送,不然可想而知总线上都是冲突。

你补充问一下,你想实现什么效果吧

以上就是关于DSP F28335怎么实现两个CAN模块之间的通讯全部的内容,包括:DSP F28335怎么实现两个CAN模块之间的通讯、假如CAN通讯为一主多从,且从节点MCU可变换,CAN通讯从节点ID怎么设置,CAN主节点怎么识别从节点ID、CAN总线通信中,如果是多节点通信。多通信中遇到了问题。问题在补充中:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9776645.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存