你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

请教,如果can设备上有相同id的设备,如何判断出来?

[复制链接]
any012 提问时间:2019-2-19 16:18 /
悬赏5ST金币已解决
请教个问题,我现在是通过can读取其它设备信息。
如果被读取的设备由于人为原因搞成了相同的id,我想通过判断单片机id的方式来判断出这种错误。
现在遇到的问题是,我发送出去读取帧后,两个设备比如A和B是同时接收到的,然后他们会返回信息,但经常是A设备能正常返回,B设备可能是竞争失败无法返回。偶尔能返回一次。
理想的状态是A和B轮流返回信息,这样就能稳定的判断了。

最佳答案

查看完整内容

我正在做CAN系统的项目,目前无法判断出来。 比如说我控制CAN地址是02的子设备,如果有2个子设备的CAN地址是02,则这2个子设备都会收到并执行。 不会是只有其中一个收到。 为了避免重复,必须进行额外的管理分配机制。
收藏 评论11 发布时间:2019-2-19 16:18

举报

11个回答
奏奏奏 回答时间:2019-2-19 16:18:53
本帖最后由 奏奏奏 于 2019-2-19 16:44 编辑

我正在做CAN系统的项目,目前无法判断出来。
比如说我控制CAN地址是02的子设备,如果有2个子设备的CAN地址是02,则这2个子设备都会收到并执行。
不会是只有其中一个收到。
为了避免重复,必须进行额外的管理分配机制。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

七哥 回答时间:2019-2-19 17:02:32
你这的确是个问题,CAN接点ID唯一性需要人为指定保证,已经超出了一般CAN总线的处理范畴。
不过CAN总线有仲裁机制,也有各种错误标志。没有成功发送出去数据的CAN接点,会产生发送出错标志,需要程序做异常处理。
不过也不能保证,CAN接点已经发送出去数据了,但是别的CAN接点没有收到数据这种情况的发生。因为CAN是会监听自己发送出去的数据的,自己监听到是正确的,但是总线冲突,在其它接点处的CAN电平不正常也是有可能的。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

any012 回答时间:2019-2-19 17:45:15
监控了下can总线,两个相同id的设备是返回信息了。估计是我这里接收没处理好。
废鱼 回答时间:2019-2-20 08:40:10
不会这样的,CAN总线是网络结构。数据都会发出来,但是不能确定是哪个设备的。因此需要使用扩展ID来进行处理。按照1939的标准,ID的最后一个字节可以用来定义不同设备的地址。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

Kevin_G 回答时间:2019-2-20 10:05:52
相同ID的设备,在同时发送数据时,会出现总线竞争错误吧

评分

参与人数 1蝴蝶豆 +1 收起 理由
STMCU + 1

查看全部评分

any012 回答时间:2019-2-20 10:40:59
安 发表于 2019-2-20 08:40
不会这样的,CAN总线是网络结构。数据都会发出来,但是不能确定是哪个设备的。因此需要使用扩展ID来进行处 ...

是担心实际应用过程中,人为错误造成的同一总线上有相同ID这种情况。
huangyanga 回答时间:2019-2-20 11:26:42
any012 发表于 2019-2-20 10:40
是担心实际应用过程中,人为错误造成的同一总线上有相同ID这种情况。

这种情况可以考虑读取总线模块的主控芯片序号来区分不同节点。节点号可以存在Flash或EEPROM中

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

废鱼 回答时间:2019-2-20 13:32:08
可以增加自动处理的功能,比如你广播的是IDx018ffff01,突然有一个也在广播这个,这个时候,自动根据自己的定的协议进行处理。将源地址01进行处理。

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

any012 回答时间:2019-2-20 13:51:31
huangyanga 发表于 2019-2-20 11:26
这种情况可以考虑读取总线模块的主控芯片序号来区分不同节点。节点号可以存在Flash或EEPROM中 ...

现在就是想通过判断芯片序列号的方式来检查这个错误。
但现在的问题是,如果是两个设备交替发过来信息倒也可以,但现在我这里有时候只能接收到其中的一个发过来的信息。
监控了总线上的信息,两个设备好像都发送过来了,可能是我这里接收处理的问题。
any012 回答时间:2019-2-20 14:50:33
安 发表于 2019-2-20 13:32
可以增加自动处理的功能,比如你广播的是IDx018ffff01,突然有一个也在广播这个,这个时候,自动根据自己的 ...

倒是个思路,谢谢。
chenplay 回答时间:2019-5-3 07:18:42
会导致错误,最好在主站,增加监控各个从站的状态

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版