pillar2060 发表于 2017-4-20 13:35:46

485多机通信,如何实现主机互斥访问从机(轮询的方式)

485多机通信,如何实现主机互斥访问从机(轮询的方式):

一个主机;3个从机;从机都是按键板(按键扫描采用状态机的方式);

主机轮询从机(从机编号2、3、4);但是发现轮询的时候,主机先访问2再访问3最后访问4,但是访问4的同时,如果2、3号从机有按键按下,主机也会响应?
如何实现呢?是不是采用轮询的方式,主机不能互斥访问从机?

我查阅资料网上推荐用多主机的方式,但是感觉复杂。目前的能力解决不了;
如果有前辈以前遇到过我这种疑惑,烦请给我留下详细思路,如果有相关例程,烦劳前辈发我邮箱:865542216@qq.com (如果我在前辈的基础上验证成功,转账给前辈200大洋;发我邮箱的前辈留下支付宝账号!谢谢~)
马上毕业答辩,望路过的大神给予定力支持与帮助。


主机 是一个控制板;剩下的3个从机都是按键板。 (目前我正在采用主从轮询的方式在挣扎!)如果有前辈在485多机轮询的方式实现了也可发我邮箱:865542216@qq.com (如果我在前辈的基础上验证成功,转账给前辈200大洋;发我邮箱的前辈留下支付宝账号!谢谢~)

我目前用的单片机是Atmega16。

pillar2060 发表于 2017-4-20 13:36:51

在线等前辈们的指导!

饭桶 发表于 2017-4-20 13:45:48

我们最排斥的就是毕设自己不独立完成的,尤其花钱买方案或者代劳的。

霸气侧漏 发表于 2017-4-20 13:48:33

饭桶 发表于 2017-4-20 13:45
我们最排斥的就是毕设自己不独立完成的,尤其花钱买方案或者代劳的。

我们最排斥的就是毕设自己不独立完成的,尤其花钱买方案或者代劳的。

在多加3个0,哈哈

霸气侧漏 发表于 2017-4-20 13:50:22

不清楚你要实现什么功能,其实可以做一个按键buffer,这样会简单点吧,定时轮训。

kevin_me 发表于 2017-4-20 13:55:26

200块可以了,电工可以找个小姐打一炮

belongfs 发表于 2017-4-20 14:00:45

没轮询到你从机,你没事响应干嘛捏

song1km 发表于 2017-4-20 14:15:32

本帖最后由 song1km 于 2017-4-20 14:18 编辑

如果轮询时间足够短,如果从机响应要求不太高,从机可以先把按键信息存在缓存里,等主机问到的时候再应答。前面加了两个如果,所以,取决于你的应用。

还可以看看can总线,引入竞争机制。

pillar2060 发表于 2017-4-20 14:24:45

饭桶 发表于 2017-4-20 13:45
我们最排斥的就是毕设自己不独立完成的,尤其花钱买方案或者代劳的。

都是从学生时代过来的,知识都是一点点的积累起来的!我没有前辈那么桀骜不驯,但是我也不会信口开河;我并没有说自己什么脑子都不动,直接去粘贴代码,而是我不理解其中的原理;你也不要瞧不起毕业的学生,请把自己的姿态放正。如果前辈没有想指点的意思,就不要出言不逊!谢谢。

饭桶 发表于 2017-4-20 14:29:14

都是学生时代过来的,都做过毕设,但没花钱买代码,知识不是买来的。

首先你得像个学生样,你把姿态放正,因为这个才不想指点你的技术,而是指点你的做人,没瞧不起毕业的学生,只是瞧不起你,说的都是事实,也没有信口开河,出言不逊!

acmilannast 发表于 2017-4-20 14:29:56

还是靠轮询只是轮询的速度足够快就行, 按键这种应用,100ms轮一轮对用户来讲就是感觉同时能响应

isakura 发表于 2017-4-20 16:57:54

kevin_me 发表于 2017-4-20 13:55
200块可以了,电工可以找个小姐打一炮

200是哪里的价格啊,估计很多人关心。。。。想要联系方式{:biggrin:}

wswh2o 发表于 2017-4-20 17:17:06

acmilannast 发表于 2017-4-20 14:29
还是靠轮询只是轮询的速度足够快就行, 按键这种应用,100ms轮一轮对用户来讲就是感觉同时能响应 ...

就是这样,别琢磨别的了,快答辩了。。。

kevin_me 发表于 2017-4-21 16:33:27

isakura 发表于 2017-4-20 16:57
200是哪里的价格啊,估计很多人关心。。。。想要联系方式

档次比较低,路边按摩店
不是会所和酒店那种,估计你看不上阿

tennokoe 发表于 2017-4-23 05:05:47

设计一个can控制器……

daicp 发表于 2017-4-23 08:01:55

1主3从,把波特率上到115200bps , 20ms询一个从机,走一圈才60ms.

关键在于RS485收发要硬件自动换向

Ray______ 发表于 2017-4-23 10:10:15

20ms可以做到一来一回吗

dongwang_fl 发表于 2017-4-23 10:26:20

modbus就够了

bujie8010 发表于 2017-4-23 10:29:01

本帖最后由 bujie8010 于 2017-4-23 10:31 编辑

关键你要让你的从机没有收到轮训指令前保持静默就行了啊,就算有按键按下,在轮训指令收到前不能往总线上发。剩下就是协调多主机的竞争关系了,你的主机可以通过变换主从机身份来获得当前另外主机的命令来避免竞争。
页: [1]
查看完整版本: 485多机通信,如何实现主机互斥访问从机(轮询的方式)