工具与软件:
尊敬的社区:
我已经编写了一个 CC1312 / 1314应用、 它实际上是通过1 Mbps 无线电的以太网桥。
将64-1514字节的以太网数据包碎片整理/重新组合成1-6个重新组合的碎片。
我一直在寻找一个问题,现在发现了一些奇怪的东西。 我有残留误差率
约30/12M ~= 3 e-6。 信号强度为1Mbps 和-58dBm 左右。
我编写了测试程序、可通过网桥发送1000个全长以太网数据包、并检查接收到的内容。
数据包在内部编号、并检查顺序是否正确、0-999。 当我运行测试程序时、我看到了
在丢失的数据包中执行以下操作:
0 0 0 0 0 0 0 0 21 30 34 35 22 1 0 0 0 0 0 0 0 0 0 26 28 25 13 4 0 0 0 0 0 0 0 0 等等
每个数字代表在一个1000个数据包传输中丢失的数据包、总共6000个~ 253字节的数据段。
该系列由反复进行传输的 shell 脚本生成。
也就是说,它看起来像数据包接收遵循几分钟长的"干扰"在7分钟的周期。
我们想到的是、两个模块的晶体/频率不同、因此取决于相位
接待处是不可缺少的。 7分钟的 peroid *可以*不得不做这个。
我不知道有多少位会受到干扰、但我"假设"每数据包只有一位、即一个丢失的数据包==一位翻转。
我已经编写了用于验证数据包的代码
1)以太网接收(发送节点正常)之后
2)无线电接收后(接收节点丢失)
3)以太网传输后(丢失)
结论是我们丢失了无线电帧。 运行此测试时、1000个数据包中的每个数据包都会转换为6000个片段、
只有一个片段丢失会丢弃整个数据包。
使用简单的 ARQ 方案可以修复相当低的错误率、但我想从之前尽可能好的状态开始
应用误差校正。
那么、您在解决这个难题时有什么可以提供的建议吗? 前导码丢失? 位时钟幻灯片? 还有事吗? 如何测试?
此致、
Gullik