你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
查看完整内容
举报
查看全部评分
安 发表于 2019-2-20 08:40 不会这样的,CAN总线是网络结构。数据都会发出来,但是不能确定是哪个设备的。因此需要使用扩展ID来进行处 ...
any012 发表于 2019-2-20 10:40 是担心实际应用过程中,人为错误造成的同一总线上有相同ID这种情况。
huangyanga 发表于 2019-2-20 11:26 这种情况可以考虑读取总线模块的主控芯片序号来区分不同节点。节点号可以存在Flash或EEPROM中 ...
安 发表于 2019-2-20 13:32 可以增加自动处理的功能,比如你广播的是IDx018ffff01,突然有一个也在广播这个,这个时候,自动根据自己的 ...
我正在做CAN系统的项目,目前无法判断出来。
比如说我控制CAN地址是02的子设备,如果有2个子设备的CAN地址是02,则这2个子设备都会收到并执行。
不会是只有其中一个收到。
为了避免重复,必须进行额外的管理分配机制。
评分
查看全部评分
不过CAN总线有仲裁机制,也有各种错误标志。没有成功发送出去数据的CAN接点,会产生发送出错标志,需要程序做异常处理。
不过也不能保证,CAN接点已经发送出去数据了,但是别的CAN接点没有收到数据这种情况的发生。因为CAN是会监听自己发送出去的数据的,自己监听到是正确的,但是总线冲突,在其它接点处的CAN电平不正常也是有可能的。
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
是担心实际应用过程中,人为错误造成的同一总线上有相同ID这种情况。
这种情况可以考虑读取总线模块的主控芯片序号来区分不同节点。节点号可以存在Flash或EEPROM中
评分
查看全部评分
评分
查看全部评分
现在就是想通过判断芯片序列号的方式来检查这个错误。
但现在的问题是,如果是两个设备交替发过来信息倒也可以,但现在我这里有时候只能接收到其中的一个发过来的信息。
监控了总线上的信息,两个设备好像都发送过来了,可能是我这里接收处理的问题。
倒是个思路,谢谢。