搜索
bottom↓
回复: 10

求助主机带多微型终端或结点交互通信方案

[复制链接]

出0入57汤圆

发表于 2022-3-15 11:37:56 | 显示全部楼层 |阅读模式
一个项目,一台主机要带100-200个终端,每个终端只有1个按钮和2个小灯,内置STC单片机(也可能不用单片机)体积只有大拇指大小。
每个终端之间距离不固定,从5cm到2米都有可能(200个终端部署一定是5cm左右一个终端)
主机需要控制每个终端独立亮灯,并获取每个终端开关量状态或发生变化的情况。
目前思路是单总线串口+MODBUS协议,主从模式。能够实现需求功能,但MODBUS轮询机制扫描200个节点速度实在太慢,需要数秒钟时间,用户无法接受;
如果改成节点主动上报变化就很快,但有2个问题无法解决:1)系统第一次上电时状态未知;上电若主动上报会互相冲突,如果用侦测-避让方案,软件又太复杂了;2)主动上报可能刚好和下发点灯命令冲突,还是需要侦测-避让(或重发)机制。
我不知道这种是不是最优解决方案。
有没有朋友做过这类项目,最优的交互通信方案是什么?谢谢

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出200入657汤圆

发表于 2022-3-15 11:45:21 | 显示全部楼层
你说的这个侦测-避让(或重发)机制的需求,完全不正就是以太网物理层和数据链路层实现的功能么?那么很显然,为了加快轮询速度,必须增加成本,让每个模块用以太网通信

出0入57汤圆

 楼主| 发表于 2022-3-15 11:52:10 | 显示全部楼层
ziruo2002ab 发表于 2022-3-15 11:45
你说的这个侦测-避让(或重发)机制的需求,完全不正就是以太网物理层和数据链路层实现的功能么?那么很显 ...
(引用自2楼)

多结点我觉得不能用轮询机制,实在太慢了,但又想不到什么好办法。
侦测-避让-重发,方案理论上没问题,但必须做到主机和节点每一次通信都100%可靠完成,这个还是有点问题。

出200入657汤圆

发表于 2022-3-15 11:55:33 | 显示全部楼层
mrf245 发表于 2022-3-15 11:52
多结点我觉得不能用轮询机制,实在太慢了,但又想不到什么好办法。
侦测-避让-重发,方案理论上没问题, ...
(引用自3楼)

以太网可以建立多重链接的,比如UDP,关键是主控端能不能建立几百个UDP,建立后不需要轮询,可以直接通信(实际上物理上也是分时间片,但是从软件上看不到)

也就是说以太网已经帮你把所有的侦测-避让-重发的机理完成了,不需要你自己去造轮子(这是一个很大的助力)

出0入57汤圆

 楼主| 发表于 2022-3-15 11:59:07 | 显示全部楼层
ziruo2002ab 发表于 2022-3-15 11:55
以太网可以建立多重链接的,比如UDP,关键是主控端能不能建立几百个UDP,建立后不需要轮询,可以直接通信 ...
(引用自4楼)

这相当于在我的8KB FLASH 1KB RAM单片机串口上跑网络协议……实现可能性有多大?

出40入518汤圆

发表于 2022-3-15 12:26:33 | 显示全部楼层
每个节点都有自己的独立ID吧,例如1到200
主机每隔一段时间广播一个同步帧,给节点对时用
节点对时后有了准确的时间,根据自己的id在设定好的时间位置进行上报,这样子就不会冲突,也不需要主机来轮询,时间应该少不少了吧

出0入57汤圆

 楼主| 发表于 2022-3-15 13:42:48 | 显示全部楼层
智涅 发表于 2022-3-15 12:26
每个节点都有自己的独立ID吧,例如1到200
主机每隔一段时间广播一个同步帧,给节点对时用
节点对时后有了准 ...
(引用自6楼)

用的STC8G1K08,唯一一个空闲定时器,可能干不了这个活
资源足够的芯片是可以这样弄的

出0入1209汤圆

发表于 2022-3-15 13:47:21 | 显示全部楼层
关键是你只有单总线,如果能再加一根线,用作busy信号,那么侦测避让的方案软件也不复杂。

出90入372汤圆

发表于 2022-3-15 13:53:27 | 显示全部楼层
可以提高主机的速度来减小轮询的时间,这样改动最小,前提是要确定多少时间客户能接受

出0入57汤圆

 楼主| 发表于 2022-3-15 13:56:16 | 显示全部楼层
kitten 发表于 2022-3-15 13:47
关键是你只有单总线,如果能再加一根线,用作busy信号,那么侦测避让的方案软件也不复杂。 ...
(引用自8楼)

通过检测总线相隔不远的几个时间点是否均为高电平判断不忙可能是个路子

出0入57汤圆

 楼主| 发表于 2022-3-15 13:57:29 | 显示全部楼层
keshipt 发表于 2022-3-15 13:53
可以提高主机的速度来减小轮询的时间,这样改动最小,前提是要确定多少时间客户能接受 ...
(引用自9楼)

试过提高总线速度,改善是明显的,如果提升过多,总线驱动能力不足波形会爬坡。如果在协议上无法解决就只能想办法提升速率了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-16 06:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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