打印

有什么好的一对多无线通信方案吗? 不结贴,持续更新中

[复制链接]
楼主: cellagent
手机看帖
扫描二维码
随时随地手机跟帖
21
cellagent|  楼主 | 2013-11-6 16:44 | 只看该作者 回帖奖励 |倒序浏览
伏尔加的鱼 发表于 2013-11-6 16:35
主机发送地址信息,来控制从机发信息不行吗?

谢谢你的回复。关键是最开始,主机不知道有哪些从机。从机的地址采用12位拨码,如果不断轮询的话,费时也很呆板。

使用特权

评论回复
22
cellagent|  楼主 | 2013-11-6 16:45 | 只看该作者
lc172415 发表于 2013-11-6 16:43
模电哇

使用特权

评论回复
23
cjseng| | 2013-11-6 17:03 | 只看该作者
我认为从机不能主动发送任何信号,只有在主机允许从机发送时才可以发送,这样就可以避免信号混叠。
具体的做法:上电时,主机依次点名,被点到名的从机发送一个应答信号,这样主机就知道有哪些从机了,之后,每隔一段时间,主机轮巡每一个从机,就是依次问每一个从机:你有话要说吗?从机回道:没有或有,有的话就把要说的话发给主机。可以根据需要,设置主机轮巡的频率,比如10秒一次,就是每隔10秒,每个从机就有一次发言的机会。
要点就是:任何时刻,只有一个设备在发送信号。

使用特权

评论回复
24
cellagent|  楼主 | 2013-11-6 17:28 | 只看该作者
cjseng 发表于 2013-11-6 17:03
我认为从机不能主动发送任何信号,只有在主机允许从机发送时才可以发送,这样就可以避免信号混叠。
具体的 ...

谢谢你的回复。你想的很周到!我的从机干的工作包括温度检测、电压电流超限监测,特别是电压电流监测。如果电压或电流超限,从机主动控制继电器断开开关一段时间,随后上发异常,当电压或电流正常时又控制继电器闭合开关。异常上报是主动的,如果按你的意思,主机轮询从机:你有话说吗?从机说:有,我出现了异常。随后从机上发异常,这似乎也行。麻烦的是最开始的注册,就是你说的点名。从机用12位拨码做地址,如果主机按000(12bits)到111(12bits)点名,对于从机的地址刚好被分配在000等开始阶段,还比较省时,如果是一个未知的空间,从机的地址是随机的,那么这样下来要花多少时间啊?

使用特权

评论回复
25
puppet21| | 2013-11-6 17:35 | 只看该作者
cellagent 发表于 2013-11-6 16:18
是的,但是刚开机时,主机不知道有多少个从机。从机用拨码区别,在注册时,主机访问哪个从机呢? ...

用添加设备的方式啊

主机保存从机数与地址

开机后逐个访问

使用特权

评论回复
26
puppet21| | 2013-11-6 17:37 | 只看该作者
cellagent 发表于 2013-11-6 17:28
谢谢你的回复。你想的很周到!我的从机干的工作包括温度检测、电压电流超限监测,特别是电压电流监测。如 ...

从机要有预处理机制,处理紧急情况,然后等主机访问后再询问处理方案

使用特权

评论回复
27
cellagent|  楼主 | 2013-11-6 17:41 | 只看该作者
puppet21 发表于 2013-11-6 17:35
用添加设备的方式啊

主机保存从机数与地址

添加设备的方式是什么?意思是一开始就保存从机的地址?那么要是需要扩展的话,就需要改程序了。

使用特权

评论回复
28
cellagent|  楼主 | 2013-11-6 17:45 | 只看该作者
puppet21 发表于 2013-11-6 17:37
从机要有预处理机制,处理紧急情况,然后等主机访问后再询问处理方案

是的,如果电压超限了还得等主机下发指令才动作,东西早就烧了。从机出现异常,要通过上位机的图标体现(或者ipad中某一段线路变红)。如果主机轮询异常,那么一轮下来,如果出现异常的从机最后被轮询到,这中间会出现延时啊,在上位机的体现的变化是延迟的。

使用特权

评论回复
29
hustmingtian| | 2013-11-6 17:59 | 只看该作者
wifi比你做zigbee快100倍,给你个链接看看,有现成的 http://item.taobao.com/item.htm?id=18595365690

使用特权

评论回复
30
hustmingtian| | 2013-11-6 18:01 | 只看该作者
大家深入看看zigbee和wifi的发展吧,简单的建议会让楼主烧钱的,本站有个讨论,大家看一下,https://bbs.21ic.com/icview-334629-1-1.html

使用特权

评论回复
31
cellagent|  楼主 | 2013-11-6 18:07 | 只看该作者
hustmingtian 发表于 2013-11-6 18:01
大家深入看看zigbee和wifi的发展吧,简单的建议会让楼主烧钱的,本站有个讨论,大家看一下,http://bbs.21i ...

谢谢你的回复。嗯,我想以目前简单点315M RF收发头,软件模拟,比较难达到我的目的。看到一个帖子说可以用485组网。嗯,考虑尝试不同的方案,加入协议什么的。

使用特权

评论回复
32
hustmingtian| | 2013-11-6 18:15 | 只看该作者
做软件协议,没有经过现场的考验,到时候现场会让人崩溃的,我们有从485到m-bus的经历,后来全部改成wifi自组网了,省事很多,时间和精力很值钱的,呵呵

使用特权

评论回复
33
hustmingtian| | 2013-11-6 18:17 | 只看该作者
zigbee的自组网,你有多少的精力你就要投入多少的精力,直到崩溃,有线方式的话,mbus还可以解决。

使用特权

评论回复
34
天意无罪| | 2013-11-6 21:24 | 只看该作者
cellagent 发表于 2013-11-6 16:42
我稍微看了下Zigbee,网上说它是一种专用的单片机系统。我想问的是,Zigbee能不能像普通收发头那样进行无 ...

zigbee本身就是无线通信啊,只不过有些芯片内嵌8位的MCU,在要求不高的情况下,可以省去外部单挂一个MCU。至于你说的干扰问题,多个从机同时发送数据,主机肯定是不能准确无误的全部接收到。但是不管是zigbee还是其他无线芯片,在一个主机对应多个从机的情况下,从机发送的数据包里肯定有该从机的地址,主机接收到一包数据后,解析数据,并给对应的从机发送应答信号,所以如果从机没有接收到应答信号,那么会重新发送数据(这个过程也叫重传机制)。

使用特权

评论回复
35
云琴箫龙| | 2013-11-6 21:51 | 只看该作者
注册,轮询,找出最高优先级的事件,处理事件,这就是ZIGBEE协议,如果你的系统对时间个数据要求不高的话自己编个简单的轮询协议就可以了。不过看似你是用的软件编码和解码,软件得多下功夫。

使用特权

评论回复
36
cjseng| | 2013-11-6 22:14 | 只看该作者
本帖最后由 cjseng 于 2013-11-6 22:19 编辑
cellagent 发表于 2013-11-6 17:28
谢谢你的回复。你想的很周到!我的从机干的工作包括温度检测、电压电流超限监测,特别是电压电流监测。如 ...


1.我不认为一个基于STC单片机的主机可以带2的12次方数量的从机,就算是用WIFI,带这么多从机也很够呛,那个主机应该是一个服务器了,恐怕不是一个STC能搞定的;
2.从机注册,可以采用手工的方法,事先写入主机的EEPROM,如果要增加、删减从机,只需要往EEPROM里写数据好了,程序不用改动。当然,主机的程序要有这个接口,比如通过串口写入。点名的过程类似于老师点名,老师手里事先有个花名册,而不是按照汉字排列组合一个个地点过来;
3.轮巡次序可以事先设定优先级,这个优先级也可以写入EEPROM并且可以通过程序修改。轮巡可以采用固定周期轮巡,固定周期也可以通过软件设置;也可以采用不定周期,即依次查询每一个从机,如果当前从机没有信息要发送,则直接跳过,切换到下一个从机。

使用特权

评论回复
37
cellagent|  楼主 | 2013-11-7 08:13 | 只看该作者
hustmingtian 发表于 2013-11-6 18:15
做软件协议,没有经过现场的考验,到时候现场会让人崩溃的,我们有从485到m-bus的经历,后来全部改成wifi自 ...

上班了。wifi自组网好用吗?我没有这方面的经验。是不是通过wifi模块,各模块之间有已定好的协议,我需要做的就是用单片机控制某些引脚什么的?

使用特权

评论回复
38
cellagent|  楼主 | 2013-11-7 08:17 | 只看该作者
hustmingtian 发表于 2013-11-6 18:17
zigbee的自组网,你有多少的精力你就要投入多少的精力,直到崩溃,有线方式的话,mbus还可以解决。 ...

嗯,按照你的经验,最好的方式就是wifi组网了吧?我也想有种省事、省钱的方式。你当时wifi自组网花了多少钱和精力呢?:)

使用特权

评论回复
39
cellagent|  楼主 | 2013-11-7 08:26 | 只看该作者
天意无罪 发表于 2013-11-6 21:24
zigbee本身就是无线通信啊,只不过有些芯片内嵌8位的MCU,在要求不高的情况下,可以省去外部单挂一个MCU ...

Zigbee涉及到协议层什么的,我可以不管直接使用其模块的引脚就行吗?Zigbee能够解决一主多从,主机同时接收从机信号产生的干扰吗?是的,从机上传地址而不是主机轮询地址灵活很多,数据重传可实现稳定可靠的通信。

使用特权

评论回复
40
cellagent|  楼主 | 2013-11-7 08:33 | 只看该作者
云琴箫龙 发表于 2013-11-6 21:51
注册,轮询,找出最高优先级的事件,处理事件,这就是ZIGBEE协议,如果你的系统对时间个数据要求不高的话自 ...

“注册,轮询,找出最高优先级的事件,处理事件,这就是ZIGBEE协议”,谢谢你的解释。我的无线通信是软件模拟pt2260/pt2272的,而且数据位的宽度也进行了修改。“编个简单的轮询协议”,我都不知道从何下手。Zigbee对我来说是个新东西,有什么高效的方式吗?麻烦指点一下。

使用特权

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

本版积分规则