我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:彩63彩票注册 > 多点通信 >

CAN总线通信中如果是多节点通信。多中遇到了问题。问题在补充中

归档日期:08-06       文本归类:多点通信      文章编辑:爱尚语录

  CAN总线通信中,如果是多节点通信。多通信中遇到了问题。问题在补充中:

  CAN总线通信中,如果是多节点通信。多通信中遇到了问题。问题在补充中:

  通信中,一个作为主机,多个从机。主机首先向从机请求数据(主机发送一次请求数据,每一个从机都需要回数据),在从机回数据后,主机怎么接收啊?...

  通信中,一个作为主机,多个从机。主机首先向从机请求数据(主机发送一次请求数据,每一个从机都需要回数据),在从机回数据后,主机怎么接收啊?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部读CAN控制器的接收缓冲区的数据即可。注意,要是你下面的节点很多,建议对每一个节点回复数据的时间做一个简单的协议延时(如根据每个从节点的ID来延时),不然总线仲裁的时间会很长,影响通信效率;另外是你的主机处理接收缓冲区的速度要足够快,不然可能会丢数据(总线溢出)。更多追问追答追问我有两个节点:A节点与B节点,他们之间进行通信。A节点有一个发送报文对象send_a和一个接收报文对象receive_a,其send_a的ID为0x000 0000 0000和receive_a的ID为0x000 0000 0001,B节点有一个发送报文对象send_b和一个接收报文对象receive_b,send_b的ID为0x000 0000 0001,receive_b的ID为0x 000 0000 0000。现在的问题是:如果A节点和B节点同时发送信息,则,谁会收到信息,收到信息的先后顺序?其实就是问他们的仲裁机制追答地址低(ID小)的数据先发出。追问ID高的等ID小的发了后会自动重发么?追答不是重发,而是等ID小的发完了再发送,这个动作都是由CAN控制器来完成的。参考资料:

  展开全部首先,CAN总线不分主机,最多是整车厂在网络规划的时候定义了一个功能比较多的节点,各家车厂不一样(如网关),或者类似PowerMaster。但是CAN本身协议里是不存在主、从的。其次,楼上说的仲裁延时的问题,CAN协议本身是考虑到这个问题的,当然按他的方法通过协议延时可以解决,但是既然CAN协议已经给了我们解决方法那肯定是更科学更有效的,具体的去看CAN的仲裁吧,你需要一个节点的报文发送不存在延时,只需要给它分配一个优先级很高的ID即可,当然这得从网络规划的角度出发,不是这么简单说说的。回到你的问题,你说的主机请求数据,在CAN中只能是远程帧(一个远程标志位为1,数据场为空的帧),当这个帧出现在总线上时,拥有这个ID数据的节点就要发送这个同ID的完整帧(远程帧标志位为0)。但是只能有一个节点接受这个远程帧的请求。这里强调一个概念,同一个ID的帧只能由一个节点发送,不然可想而知总线上都是冲突。

本文链接:http://art-olivier.com/duodiantongxin/1054.html