硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2771|回复: 10
收起左侧

CAN总线如何实现监测设备在线状态

[复制链接]

31

主题

53

回帖

146

积分

初级会员

积分
146
发表于 2018-2-21 10:59:36 | 显示全部楼层 |阅读模式
最近再调试CAN外设,问题如下:要在can总线上的一个节点设备上监测其它节点在线状态,实时更新在线或者掉线,
从设备数量有几十个,需要如何实现?

是每个从设备定时发送自己的状态?还是由主设备发送遥控帧来轮询?
每个设备的消息ID号必须要各不相同吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-2-21 11:04:24 | 显示全部楼层
要实现什么功能,如果仅仅是检测在线状态,发广播消息。设备接受到后进行应答回复。
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2018-2-21 11:17:32 | 显示全部楼层
eric2013 发表于 2018-2-21 11:04
要实现什么功能,如果仅仅是检测在线状态,发广播消息。设备接受到后进行应答回复。

我想实现一个表格,第一列是设备的序号,1-50,第二列可以显示当前设备是否在线还是掉线。
可以知道哪些设备受控还是不受控,就这样。
1.是主设备定时发送一个遥控帧?然后由从设备应答?那么每个设备应答的数据帧ID是否应有各不相同,还是应该相同?
2.can的数据帧优先级是根据ID仲裁的,我想问,不通设备发送ID不同的消息,但是我觉得每个设备在线与否的数据帧优先级应该是相同的吧。?
3.如果每个设备发送的数据帧ID相同,但是消息内容不同, 这种情况怎么办?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-2-21 11:23:12 | 显示全部楼层
ggafish 发表于 2018-2-21 11:17
我想实现一个表格,第一列是设备的序号,1-50,第二列可以显示当前设备是否在线还是掉线。
可以知道哪些 ...

这种要求的话,一个一个轮询就行了。推荐使用标识符列表模式,简单省事,你的问题1,2,3都可以用标识符列表模式解决。
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2018-2-21 11:32:47 | 显示全部楼层
标识符列表模式是什么意思?
每个设备的数据帧ID号是不同的?
那么每个设备的优先级也就不同了呗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-2-21 11:40:59 | 显示全部楼层
ggafish 发表于 2018-2-21 11:32
标识符列表模式是什么意思?
每个设备的数据帧ID号是不同的?
那么每个设备的优先级也就不同了呗?

http://www.armbbs.cn/forum.php?m ... =%B9%FD%C2%CB%C6%F7
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2018-2-21 13:10:34 | 显示全部楼层
本帖最后由 ggafish 于 2018-2-21 13:23 编辑

我要传输一个开关量,用can总线实时性会怎样?

我要做的就是讲台上有个开关按键,下面每一个座位上(几十个)有个类似蜂鸣器的发声装置,学生通过耳机收听。
讲台上按键按下,发生装置发声,按键松开,发声装置不发声。通过声音的长短组合来抄收报文,就是摩尔斯码啦。

我想尽可能的提高响应速度,不知道用can总线响应的实时性有多好。

我现在拟定的方案是用max485芯片,直接传输高低电平,不通过mcu处理。但是我需要同时传输三路,再加一路控制,就需要4对双绞线。

我现在再考虑can总线来实现的方案,不知道能否把开关量,和控制信号都通过can总线来传输,这样只需要购买一个can总线hub,每个座位上只需要一对双绞线就可以了。
下图是本地方案示意图,开关控制发声装置,TTL电平。

1.png
下图是实际需求,SW在讲台上,发生装置在学生座位上。中间需要十几米的传输距离,TTL电平不能再用。
2.png

下图是我拟定的方案。用485总线直接传输按键的电平,直接控制各个座位上的发生装置。
有3路,需要3路485.布线上有点难度。每一路都需要485hub。
再加一路控制总线,CAN或者485.
3.png

我现在想把控制总线用CAN,把3路开关量的传输也加入到总线上来。就这样了。
可行性有多高?能否分析一下我这两种方案。个人认为要包装数据帧,再加上mcu响应,延时应该在几百us吧。
我485直接控制,不经过mcu,是不是响应更快。


回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115653
QQ
发表于 2018-2-21 13:14:46 | 显示全部楼层
ggafish 发表于 2018-2-21 13:10
我要传输一个开关量,用can总线实时性会怎样?

我要做的就是讲台上有个开关按键,下面每一个座位上( ...

CAN的实时性杠杠的。
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2018-2-21 13:26:27 | 显示全部楼层
eric2013 发表于 2018-2-21 13:14
CAN的实时性杠杠的。

我的帖子修改了一下,麻烦版主再看看。帮我分析一下。
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2018-2-21 13:28:31 | 显示全部楼层
假如我按下按键,到接收端发声装置发声,这个之间的延时是100us的话。
我松开按键,到接收端发声装置静音,这个之间的延时是不是也是近似100us?
这样看的话,是不是不会损失什么,仅仅是加了一个延时而已,不影响信号的结构。
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
 楼主| 发表于 2018-2-21 13:36:35 | 显示全部楼层
我想了一下,延时肯定有的,发送端mcu有中断延时,can总线延时,接收端中断延时。都需要考虑。
接收端和发送端我都采用stm32,都上ucos操作系统。实时性也是有保证的。
我估计用这种方案延时会有几百us吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-10 06:07 , Processed in 0.288520 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表