我们用电台做数据的传输,电台属于半双工,所以设备在一个信道上。所以当有2个以上的设备同时发送时,数据会产生碰撞,发送失败。
我们是一个主站,多个从站(140台左右)。主站下发信息,从站收到后回复ACK,表示通讯成功。从站也有主动上传的时候。原来我们用的时分复用方式,给从站分配不同的ID号。主站先发送信息,过2秒后,发送同步信号,从站收到后在自己的时间片内(通过从站ID得到)上传数据。这种方式数据传输比较可靠,但实时性上不好。所以想采用CSMA/CA的方式,检测信道,空闲后发送。
现在用的电台有载波检测,可以检测到空中是否有数据,当有数据时停止发送,空闲时再发送。但检测空闲时,还是有多个同时发送的可能。电台有启动时间7ms.发送数据包时间为7ms。所以一个过程为15ms.请教大家协议怎么制定,能够比较实时,可靠的双向传输。
可以使用重传窗口吗,用随机的或者不断变大的时间间隔重新发送请求来占有信道.
CSMA/CA 不是还用随机数么,再加上ACK。能保证通信质量的~
是有ACK,我想知道有没有具体的思路,道理是这样。
具体思路你已经说了呀~
先开始载波监听,当发现低于门限值的时候,等待一个随机数时间,开始发送数据,等待是否有ACK若没有则重复以上,一般最多发三次。
若高于门限值说明正在有传送的数据,等待随机数的时间,重复以上操作。