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

无地址RS485怎么完成握手

[复制链接]
qiangtech 提问时间:2019-12-27 18:45 /
阅读主题, 点击返回1楼
收藏 1 评论27 发布时间:2019-12-27 18:45
27个回答
天臆弄人 回答时间:2019-12-31 10:53:03
这个协议很简单,主机发一个广播命令,命令里面带上超时时机和一个随机数,
从机接收到这个随机数和自己当前的 MCUID 做个与算法或其他算法,然后按着这个延迟时间给主机回信息,
这个时间也可以是地址,不就解决了吗
天臆弄人 回答时间:2019-12-31 10:59:06
这还可能会出现这样情况,
1.如果从机当前分配的ID有冲突怎么办
可以通过主机多发几次,比方说发3次,每次给定随机值都不一样,在第一次发了广播命令,已经有分配的从机就不作应答,暂时想到就这么多了,
yklstudent 回答时间:2019-12-31 11:43:38
从机数量少时效果还行,从机数量多了很慢的
qiangtech 回答时间:2019-12-31 13:10:55
yklstudent-1794 发表于 2019-12-31 11:43
从机数量少时效果还行,从机数量多了很慢的

对,开机后几分钟内都会是在确认和分配地址上。
butterflyspring 回答时间:2020-1-3 14:49:51
通许采用主机轮询方式,挨个地址轮询一遍。双工通讯的话应该响应比较快。当然考虑到节点多时,总体通讯效率不是很高,够用就好。
奏奏奏 回答时间:2020-1-4 11:57:53
我做的是CAN总线的,但是485总线有共性。我简单说一下我的解决方案:
(1)默认485地址是STM32的UID的12字节中最后一个字节;
(2)每个485子设备往485总线发送一条查询地址是否重复的指令;
(3)如果有回复数据证明有子设备是有地址重复的情况的话,就将当前地址加上UID的12字节中倒数第二个字节地址作为新地址,隔一段时间后执行步骤(2)(如此类推,下一次是加上倒数第三个字节……)直到不出现重复地址为止(因为地址更新后可能会与另外一个或几个设备地址重复)。当然如果子设备接近200个的话时间就比较长了而且不一定成功。485总线一般挂的子设备不超过60个。
qiangtech 回答时间:2020-1-4 12:23:43
奏奏奏 发表于 2020-1-4 11:57
我做的是CAN总线的,但是485总线有共性。我简单说一下我的解决方案:
(1)默认485地址是STM32的UID的12字 ...

第2点,怎么分时让子设备在总线上发送数据是关键。子设备的先后顺序怎么确定?
奏奏奏 回答时间:2020-1-4 13:33:09
qiangtech 发表于 2020-1-4 12:23
第2点,怎么分时让子设备在总线上发送数据是关键。子设备的先后顺序怎么确定? ...

参考我之前回复的帖子中说的,开机后每隔50毫秒从485地址是1的顺序开始发。
例如有个485子设备,它的STM32的UID的12字节中最后一个字节是03,它就在开机后150毫秒发。
tanic 回答时间:2020-1-6 11:27:51
稳定方案:
1.地址配置:安装时给每台终端手动配好地址(可用红外遥控配置),配完一个+1配置下一个,如此地址连续,操作也很快。
2.终端搜索:主机上添加搜索功能,从刚才配置的地址逐一轮询,记录响应情况,安装人员根据响应和实际配置确认一一对应后,把终端地址固化,每次开机按照之前的固化结果和终端通讯。这才是工业稳妥方案。

无地址RS485那就很不稳定了
maxtch 回答时间:2020-1-6 11:40:41
奏奏奏 发表于 2020-1-4 11:57
我做的是CAN总线的,但是485总线有共性。我简单说一下我的解决方案:
(1)默认485地址是STM32的UID的12字 ...

CAN 是可以做 CSMA/CD 的。只要可以 CSMA/CD,就可以用 DHCP 来分配地址。
maxtch 回答时间:2020-1-6 11:44:00
tanic 发表于 2020-1-6 11:27
稳定方案:
1.地址配置:安装时给每台终端手动配好地址(可用红外遥控配置),配完一个+1配置下一个,如此地址 ...

RS485 可以做 CSMA/CD,也就是说可以通过协议保证数据完整。有 CSMA/CD 为基础就可以跑 DHCP,用其中一台设备给其余设备分配地址。(再进一步甚至可以在带 CSMA/CD 的 RS485 上跑 SLIP 和完整的 TCP/IPv4。)
tanic 回答时间:2020-1-6 11:53:36
maxtch 发表于 2020-1-6 11:44
RS485 可以做 CSMA/CD,也就是说可以通过协议保证数据完整。有 CSMA/CD 为基础就可以跑 DHCP,用其中一台 ...

确实可以,一次DHCP成功后,固化结果,以后就可以高速通讯了
maxtch 回答时间:2020-1-7 12:17:10
tanic 发表于 2020-1-6 11:53
确实可以,一次DHCP成功后,固化结果,以后就可以高速通讯了

最好是每隔一段时间 DHCP 一次,这样的话节点可增可减。
12

所属标签

相似问题

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