多对一通信问题?
请教大家:我现在有三个发送模块,和一个接受模块,希望达到三个发送,一个接收。怎样才能实现啊?我用的是nRF905,查看手册后发现他的地址码是接收机的地址码,那么我要向那个接收模块的发送,岂不是三个的发送地址都是一样的了?那我该如何区分3个发送啊?还有,假如三个模块同时发送,那么接收模块该接收哪一个啊? 是什么意思 是什么意思litter001 发表于 2012-8-21 14:49 https://bbs.21ic.com/images/common/back.gif检点的说就是三个发送一个接收,这样的小网络该怎么组建? 要用协议实现,分时发送,可用令牌传递法。 每个模块都带有自身的ID,接收方通过软件识别发送方是哪一个。
接收方收到模块发来的数据后进行识别和处理,在此过程中发送来的数据丢弃;而发送方因为没有接收到有效的aCK,启动超时重发机制。 如果同时发送,有ID也没戏,必须用协议避免同时发送,地址是协议中的组成部份,自身有无ID不重要。 这种通信实现要软件控制 发送前先打开接收功能,如果有另外一台机在发送,就等那台机发完,就是发送前先侦听。 接收机比作MCU,3发送模块由软件定义为S1,S2,S3。 上电之初S1,S2,S3先处于接收状态,MCU发送包含其中一个地址过去比如S2, 三模块同时收到信息但S1,S3地址不匹配继续处于接收状态,S2接到命令后才发送数据给MCU(为确保数据的准确性自己想办法确定协议),随后S2又处于接收状态,千万不要三个模块同时发送。具体细节的访问方式自己定义。
页:
[1]