
可能由于没有将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总线通信中,如果是多节点通信。多通信中遇到了问题。问题在补充中:等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)