完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
基于 ESP32-WROVER-32E 的数据记录器在白天收集数据并在夜间通过 WiFi 上传。
奇怪的是,批量传输速度开始时很快,但几分钟后就会大大降低(有时 1 分钟,有时 5 分钟,通常为 2 分钟)。 Sample1: Sample2: 情况: - 记录器和AP天线相距很远,大约90米; - 这是在一个开放的领域,直接视线,非常安静(无线电方面)的环境中; - 如您所见,RSSI 没有变化,约为 -74 dBm - 具有相同代码的同一设备在靠近 AP 时可达到 10 Mbps 以上 我不确定是什么原因导致传输速度突然下降,但闻起来像是 PHY 问题,我怀疑这是 WiFi动态速率缩放功能。可能 ESP32 PHY 开始以更高的比特率发送数据包,发现一些丢失的数据包,调整速度,因此我们在前几分钟观察到 2-4 不同的 Mbps。然后它突然放弃并固定在 0.64 Mbps 上,这可能不会导致数据包丢失。 发生的另一件事是 ESP32 在 0.64 Mbps 模式下消耗更多功率。根据电池电压的下降(内阻和 co)粗略计算,我认为 ESP32 的总消耗从 ~150mA 跃升至约 ~350mA。 一般来说,卡在 0.64 Mbps 模式很糟糕,因为它在速度和功率方面都更糟。而且它不会自行解脱:除非设备被物理移动,否则它几乎永远不会提高到 0.6-0.8 Mbps 以上。但是如果你重新启动它,它又会以更快的速度开始,然后在几分钟后同样崩溃。 问题 是否可以针对 WiFi 调整 PHY 的动态速率缩放算法?我想指示它以更高的数据包丢失和重试为代价来优先考虑吞吐量。即“请,只有在丢包非常严重的情况下才降低比特率”。 |
|
相关推荐
2个回答
|
|
你有没有试过 esp_wifi_internal_set_fix_rate
|
|
|
|
esp_wifi_internal_set_fix_rate 是一个内部调试 API。
使用 esp_err_t esp_wifi_config_11b_rate(wifi_interface_t ifx, bool disable); 会更容易。 ESP32 的动态速率缩放基于 PER(数据包错误率)和 RSSI。该算法使将速率调低比调高更容易。当设备使用 1Mbps 速率时,会引入一些恶性循环: 1. 1Mbps 数据包具有较长的 TX 时间(1500 字节,12ms),在户外更容易受到干扰 2. 不好的 PER 很难接收使用更高的速率 为了摆脱恶性循环,我们还使用 RSSI 来调整速率。但是,RSSI 不是一个反馈信息,也不是那么稳定。所以我们在使用 RSSI 时是保守的。 如果你能在这里提供版本,我们可能会帮助调试这个。由于在某些版本中,我们尽量避免在某些情况下使用 1Mbps。 |
|
|
|
只有小组成员才能发言,加入小组>>
982 浏览 1 评论
553浏览 6评论
463浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
420浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 04:18 , Processed in 0.781882 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号