68336016 发表于 2020-11-20 20:42:09

两个无线串口模块之间通信,采用怎样的应答重传机制比较好呢?

买的24L01模块,空中速率自适应,模块串口的波特率57600,每100ms要传输40个字节,距离约100米。
模块100米距离,控制速率不知实际会下降到多少,如果太复杂的重传应答机制,来回传输几次,速度估计跟不上。
论坛里用无线模块的坛友也挺多的,不知道一般采用什么机制怎么处理误码丢包?

电子喵星人 发表于 2020-11-20 20:45:32

隔一堵墙十几米已经很弱了

68336016 发表于 2020-11-20 20:47:53

本帖最后由 68336016 于 2020-11-20 20:49 编辑

电子喵星人 发表于 2020-11-20 20:45
隔一堵墙十几米已经很弱了

忘记说了,我拆了模块看,有个芯片24C01,是集成PA和LNA的,同时外接棒状天线。
早上测了下,80米空旷地传输没有问题,不过只是1秒钟收发一次,没有细测,再远距离也没来得及试。

redworlf007 发表于 2020-11-20 21:36:17

发送一包,对方回复,不回复重发一次。

68336016 发表于 2020-11-22 18:03:22

redworlf007 发表于 2020-11-20 21:36
发送一包,对方回复,不回复重发一次。

跟有线传输不同,这无线传输的耗时很难确定,波动很大。
所以超时重传的时间比较难定,图中就是模块往另一个模块发送数据并收到答复的时间,有时很大有时还好。

fengyunyu 发表于 2020-11-22 18:20:08

空中速率自适应,是不是模块已做了重传机制

68336016 发表于 2020-11-22 18:29:40

fengyunyu 发表于 2020-11-22 18:20
空中速率自适应,是不是模块已做了重传机制

问了卖家,说我这个模块(全双工的)没有错误重传,但是他们另一个半双工的模块有错误重传功能。
所以现在自己代码在应用层来做重传的工作。

tcm123 发表于 2020-11-22 22:41:24

24L01 有ACK机制可以配置使用用没收到会自动重传一定次数。模块厂家可能没使用
带PA的长长的模块很久以前买过 广告宣传1000米   测了下一百多米都不稳
串口助手看到的时间并不精确WINDOWS是分时系统,一个调度过去可能就差了几十毫秒了

68336016 发表于 2020-11-22 22:49:53

tcm123 发表于 2020-11-22 22:41
24L01 有ACK机制可以配置使用用没收到会自动重传一定次数。模块厂家可能没使用
带PA的长长的模块很久以前 ...

我图片红色框的时间是单片机中测量的,往PC显示而已,不是电脑上的计时。
看亿佰特网站上的模块,只要全双工的,没有看到带错误重传的。

752438771 发表于 2020-11-22 23:05:12

这个速率用433M也够用啊,传输距离和抗干扰性好多了,比如LoRa,开个前向纠错,数据加个CRC累加和之类的校验,只要不是同频干扰,基本没误码;用24L01也可以使用前向纠错,算法要自己写了,估计效果还是不如433M的

68336016 发表于 2020-11-22 23:37:50

752438771 发表于 2020-11-22 23:05
这个速率用433M也够用啊,传输距离和抗干扰性好多了,比如LoRa,开个前向纠错,数据加个CRC累加和之类的校 ...

看了下LORA好像没全双工的。
因为我这用途比较简单,就是代替一个串口屏的FPC线,串口屏是触摸屏,点击屏幕会往单片机发送数据,同时单片机也在不断往串口屏写数据,存在同时收发的时候。

68336016 发表于 2020-11-23 17:32:45

本帖最后由 68336016 于 2020-11-23 17:51 编辑

发现实现起来还挺费脑筋的。

板子通过串口每隔100ms往串口触摸屏发送几十个字节更新显示,模块是E34-2G4D20D(24L01+芯片,串口全双工),这个模块没有错误重传功能,得应用层做。

但是模块之间的往返传输时间在几十ms和200多ms之间变化,接收方的应答还没来得及传给发送方,发送方的下几次数据(间隔100ms)可能都已经发送了。

思路估计不对,不然这样做效率也太低了。

干脆也不要求什么确认了,每次发送重复的数据,反正单次发送多点,总比往返确认省事,有好几倍的冗余数据,全部都错的几率太小了。{:lol:}

jssd 发表于 2020-11-23 18:18:14

两种重发方式:
1、队列发送,前面的没回复并且没超时,不发后面的
2、标记发送,要发就发,不用等前面的回复,每条按命令和时间戳标记,重发时间内收到回复复位标记,否则重发

cnshibo 发表于 2020-11-25 08:47:52

752438771 发表于 2020-11-22 23:05
这个速率用433M也够用啊,传输距离和抗干扰性好多了,比如LoRa,开个前向纠错,数据加个CRC累加和之类的校 ...

FEC前向纠错很关键。不考带宽,传输距离来比较,433M有天然优势。

lb0857 发表于 2020-11-25 08:56:04

距离约100米    空旷还是房间 ?   环境电磁干扰 包括同频的通讯情况都是造成无线通讯质量不好的因素
页: [1]
查看完整版本: 两个无线串口模块之间通信,采用怎样的应答重传机制比较好呢?