主题中讨论的其他器件: CC3200、 CC3100、 CC3220SF、 UNIFLASH
您好!
我尝试使用"radotool"命令(收发器/原始模式)和"send/recv"命令通过 Wi-Fi 进行 UDP 传输。
目的是在屏蔽环境中检测数据包丢失、仅限单向流量。 这是一个 LAUNCHCC3220MODASF 正在发送、另一个正在接收。
相应地修改了代码。
所做更改的简要概述如下。
在为命令"radotool"提供服务的代码中:
- 添加了数据包标识符字段以检测丢失的数据包数量。
- 该功能是通过计时器添加的、能够配置发送每个数据包后以微秒(us)为单位的延迟、例如500us。 目的是减少丢失的数据包数量。
在提供命令"send/recv"的代码中:
- 添加了数据包标识符字段。
- 添加了计时器以准确测量时间(以便更准确地计算吞吐量)。
PER 计算如下:
PER =(最后接收到的数据包的数量-成功接收到的数据包的数量)/最后接收到的数据包的数量
如果是"无线电工具"、则通过将每个 sl_Send 之后的延迟从0us 更改为500us、将 PER (丢失的数据包数/预期的数据包总数)从0.01降至0.00013。 500 us 延迟带来了最佳结果、在400 us、300 us 和600或700 us 时、丢失的数据包数超过500 us 时观察到的数据包数。
如果是"发送/接收"(使用 UDP 通过两 个 LAUNCHCC3220MODASF 板之间的 WiFi 连接执行)、则对于100个数据包、PER 为0、但如果传输的数据包数为1000、10000或100000、PER 约为0.3 (30%)。
现在、我的问题是、由于环境是屏蔽的(受到外部射频辐射的屏蔽)、并且流量仅在一个方向上(TX 和 Rx 之间的模式没有变化)、为什么数据包会被丢弃? 我希望0个数据包丢失。
--
此致、
Neeraj Sallh