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

无地址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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版