找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2595|回复: 9
收起左侧

在总线通信系统中,如何给从机自动分配地址?

[复制链接]
ID:245053 发表于 2021-8-26 10:41 | 显示全部楼层 |阅读模式
目前,从机的地址设定是采用的硬件方式:拨码开关。有没有简单的方法,不用硬件分配地址,采用主机扫描方式给从机自动分配地址,采用的原理是怎么样的,请教了。。。
回复

使用道具 举报

ID:827243 发表于 2021-8-26 12:16 | 显示全部楼层
不用考虑,基本不可能,总线通信从机会有冲突,没地址,冲突解决不了,所以自动分配不可能,除非你从机一个个添加,没地址的可以请求地址,一起加就不可能了。
回复

使用道具 举报

ID:245053 发表于 2021-8-26 12:40 | 显示全部楼层
daemondong 发表于 2021-8-26 12:16
不用考虑,基本不可能,总线通信从机会有冲突,没地址,冲突解决不了,所以自动分配不可能,除非你从机一个 ...

我看到同类产品中,有厂家的就没有硬件编址,说是开机自动编址的,不知道是怎么实现的
回复

使用道具 举报

ID:47286 发表于 2021-8-26 13:02 | 显示全部楼层
方法很多 读单片机ID 或者有个小程序编译前随机生成一个 或者什么什么的 反正方法很多 不就是个不重复的区别么 通常一个区域内也不会有多少设备 假设65536个 也就是2位
回复

使用道具 举报

ID:584195 发表于 2021-8-26 13:58 | 显示全部楼层
这个可以自由设定的,看你用什么通迅方式,如果是485的话就只能先定义好从机地址,要不一下就接到一个总线,通迅肯定有冲突,还有i2c总线,也得提前做好址。最关键的是,你想用什么实现,比如用什么单片机,什么通讯方式,这样大家可能回答,或者是建议就好一些。
回复

使用道具 举报

ID:161164 发表于 2021-8-26 14:19 | 显示全部楼层
pcf2000 发表于 2021-8-26 12:40
我看到同类产品中,有厂家的就没有硬件编址,说是开机自动编址的,不知道是怎么实现的

就算有自动编址也不实用吧
如有3个热水缸A,B,C各有各自的总线温度传感器
如何让主机知道收到的温度是从哪个缸来的?
回复

使用道具 举报

ID:62019 发表于 2021-8-26 14:33 | 显示全部楼层
按你说的应MCU与MCU的通信了,如果你单片机支持,那么可以烧录程序后,通过串口等方式,往FLASH里写ID,不支持掉电保存的话,那基本没办法了,只能通过硬件实现ID编码
回复

使用道具 举报

ID:501609 发表于 2021-8-29 00:30 | 显示全部楼层
最简单便宜的办法就是烧录时加ID了,很多OTP单片机都可以。
回复

使用道具 举报

ID:420836 发表于 2021-8-29 01:40 | 显示全部楼层
在 I2C 扩展协议 SMBus 中,主机在一个从机地址读取设备的 UUID 号。 如果有多个设备具有相同的从机地址,那么由于 I2C 总线仲裁过程,一次只有一个从机将成功读取其 UUID 并分配一个唯一的从机地址。 然后主机继续一一读取其余所有具有相同地址的设备,直到完成将地址分配给所有从设备。
回复

使用道具 举报

ID:883242 发表于 2021-8-29 14:05 | 显示全部楼层
同意6楼意见。就算能自动编址,你如何知道某个从机对应哪个地址?让从机显示出来的成本比拨码开关还要高吧!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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