RAK421模块的最大传输速度,实测和2Mbps有差别



  • 测试环境:STM32F103主控64M时钟,spi通信时钟16M,两种测试方法:

    1、循环使用rak_send_data(0,0,0,1400,(uint8_t *)tx_buffer);语句,计时20s看采集到的数据量,多次测试取平均,传输速度约为1.1Mbps

    2、定时器中,定时发送数据1400B,用示波器查看CLK波形时长,执行发送语句rak_send_data(0,0,0,1400,(uint8_t *)tx_buffer)用时约9.88ms,速度为1.417Mbps

    同样测试条件,发送800B,rak_send_data(0,0,0,800,(uint8_t *)tx_buffer),用时约6.9ms,速度为1.16Mbps

    我的实际应用中,是使用方式2进行应用,定时10ms,每10ms内发送数据约800B,但是因为定时内还有其他任务要处理,希望尽可能缩短数据发送时间,请问代码是否还有优化的可能,能进一步提高传输速度?(我理解每次发送800B要比发送1400B速度慢些,但是否有什么方法可以再提高些速度?)

    0_1492389482475_微信图片_20170417083740.jpg



  • 2M的速度是我们在while(1)里面发送测试出来的速度,和实际应用速度是有误差的。



  • 你好,我在前文也说过,我自己在while1里循环,速度只能达到1.1Mbps,我知道实际和理论值有差别,但不至于差这么多吧。
    我的使用可能有什么问题吗?在程序中是否有哪些设定或注意的地方,可以尝试提高传输速度?
    @xc-c



  • 你是做什么测试出来的?AP还是STA?

    想要速度最快,肯定是每一包都是要最大字节,即1400,且要保证网络畅通。



  • @xc-c
    测试环境:
    做STA,在PC端用netassisr建立服务器,模块联入。
    模块部分,使用STM32F103主控64M时钟,spi通信时钟16M

    在while(1)l里,循环rak_send_data(0,0,0,1400,(uint8_t *)tx_buffer);语句,计时20s看采集到的数据量,多次测试取平均,传输速度约为1.1Mbps

    这个测试过程,感觉已经去掉所有多余的东西了。请看下哪里还有优化提高速度的可能?



  • 你做STA,连接的路由器上的设备多吗?网络环境好吗?2M是峰值,不是平均值。


登录后回复
 

与 RAK支持中心 的连接断开,我们正在尝试重连,请耐心等待