如何让MT7603E少丢ping包

1 引言

  因为一直负责QCA方案的WLAN产品研发,所以没有精力去弄MTK方案的产品。也不是MTK方案不行,而是它实在太好了,所以有太多企业、太多的人生产出了超多的产品,个人认为投入精力与物力去搞MTK方案,市场价值不大。所以,当开工厂的朋友三番五次地找我帮忙解决WLAN丢ping包问题时,我总是推脱不熟悉方案。但架不住他的磨叽,最近花了点时间来处理这个问题。
  MTK的WLAN驱动,与QCA的新方案类似,也是要加载固件到MCU上。好处是你不要理解那个射频MCU,只要做好802.11上层协议即可;当然缺点很明显,你无法通过寄存器直接控制射频功能。更难受的是,搞不到文档、也没有代码文件明示或暗示过完整的寄存器组以及其具体位的功能。就算是网上流传的programming类文档,其作用也相当有限,真的仅供参考,解决不了实质问题。

2 具体实施

  具体硬件方案为7621A+7603E+7612E,均没有ePA;但有个PCIE卡槽以及USB3.0接口。这个我倒希望在搞稳WLAN后,可用此硬件平台调试蜂窝5G模块,从而做一个低成本的5G设备来用。直接用原厂官方的openwrt包,编译出固件上传到设备后,发现5G还能用,开机自动选频正常,不会作死自己;但2G就是实在太遗憾了,开机选频也是正常的,但有点难用,各种卡;ping包断包率大7%左右,与同档次的QCA9531有几光秒的距离。

  首先 改带宽,强制为HT20模式,将BG保护放开,将TxBurst关闭后,测试表明改善不多。

  其次 改WME参数,提高BE的权限,多次测试下来,有点改善,至少爱奇艺加载时不会乱转圈了。
  再其次 放开ping包的打印,发现PC机发出ping包后,路由器收到且回包了,但PC机就是断ping。调整了现有的BA Action处理逻辑,并换了不同方案的网卡,发现QCA方案的网卡断ping包数较少而已。
  最后 翻了tmac,rmac和rtmp_mac,andes_mt和grp,不断修改寄存器配置,驱动参数;发现在干扰较多的场景下,将TrainUpRuleRSSI加大,将tmac中TCR寄存器中除RDG_RA_MODE外,其它EN位都置1;同时,将Retry次数,由0x0f修改为0x17后,可以显著地降低丢ping包的次数。

3 临时结果

  未做调整前,在办公室场景下,每天下午4点到6点这段全天WLAN设备性能最差的时间段内(此期间内QCA方案的跑流效果也不行,存在莫名干扰),MTK方案的ping包丢包率高达11%以上;但经过代码调整后,丢包率不会超过1%了。ping 3000个包,不会超过15个丢包。其它时间段内,挺少碰到丢包。

  当然,要想彻底解决丢包问题,看来还有一个或多个寄存器要调整,但不知道什么时候才能找到那个几个根源寄存器或上层逻辑实现点,只能继续花时间去摸索。欢迎各种提示,以便将它做得同QCA9531一样稳。

2019-12-20补:

  将网上的V4.1.2.0_20190222(github)驱动中chips,mcu,phy和rate_ctrl目录下的文件,将有用的修改功能合入到现有驱动代码中(4.0.1.0rev1),则可以编译出非常稳定的驱动,甚少丢包。同时,直接测试过4.0.1.0rev2.P3版本的驱动,编出的驱动体积庞大,而且与3.10.14的内核配合使用时,同样丢包,且在speedtest.cn上测速,一般50不到;而用4.0.1.0rev1叠加4.0.1.0rev2的修改代码,测速经常能到70多。


本文章由作者:佐须之男 整理编辑,原文地址: 如何让MT7603E少丢ping包
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐