打印

485通讯采用分片轮询是否可行?

[复制链接]
2219|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
davali|  楼主 | 2012-12-12 22:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个项目是对100多个点通讯,要求反映时间在20毫秒内,用CAN当然好,问题是不会,学起来恐怕要一段时间。用485轮询的办法实在太慢。我设想用分片轮询的方式不知道可行不? 方法是这样,比如对128个点,先寻前64个点,有回应(不管回应是什么)就再寻前32个,有回应再寻前16个,有回应再寻前8个,。。。。。这样只需几次轮询就能找到有事件的点,再与这个点进行通信。

相关帖子

沙发
chunyang| | 2012-12-12 23:11 | 只看该作者
最好的方式是使用突发模式,即主机并不轮询,通讯由从机发起,但这样可能造成冲突,所以要先侦测总线的占用,然后在空闲时尽快发起会话,如果是通讯密集型网络则不能用突发模式,只能改用高速网络。

使用特权

评论回复
板凳
sjnh| | 2012-12-13 08:44 | 只看该作者
我用过这种方式:主机发2个字节的握手信号,分机点根据自己的地址延时例如(30-50us * 地址),分机会检查总线是否被占用,如果分机有报警信息,且总线没被占用开始发数据,后面的点即使有故障总线占了也不在发数据。不过这个数据只限于告诉主机分机有问题了,具体问题主机还要针对分机发查询命令。
这个方式我只做过样机延时最多40多点,没做过多的,也没有测试会不会出大问题,反正演示还可以。

我建议楼主还是用CAN,毕竟用485占先方式软件要做很多其它的工作,要写软件、测试, 这个时间不会短了,  我估计甚至比你你学习CAN时间要长,所以建议用CAN

使用特权

评论回复
地板
jlass| | 2012-12-13 08:48 | 只看该作者
楼主,你的方法无非就是二分法排序、冒泡排序之类的问题,方法本身没有问题,只不过通讯一频繁就没什么差别了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

135

主题

259

帖子

0

粉丝