微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2540传输速度测试

cc2540传输速度测试

时间:10-02 整理:3721RD 点击:

cc2540,1.32协议栈,有没有做过相关速度测试的同学说一下自己的测试方法?我是定义了一个20字节的buffer,发送1000个buffer,计算速度。但是如果我设立event不断调用的话,一上来就会发送,这是还没有建立链接,数据应该是不准的,应该怎么处理好?

http://processors.wiki.ti.com/index.php/CC2540_Data_Throughput 请参考官方测试数据吞吐量的wiki,这里边有测试数据传输速度的方法。另外传输速度是和你的连接参数有关的,你是不是测试极限速度,是的话这个wiki给出了完整方法。

另外,建议更换1.4.0协议栈,优化了程序框架,并向下兼容1.3.2.

仁兄,我发现好多问BLE传输速度的帖子啊。。。,仁兄高手!

这个代码我之前看到过的,不过他没有对主从机判断是否建立连接就开始发送了,只是在发包的函数里判断数据包是否压到底层缓冲区了,就单这个。c并没有真正判断包是否发送成功

发通知本来就是不判断接受成功的,只判断发送成功的。官方是用每次发送成功来启动下一次的发送的,我用手机试过这个例子,判断notify的个数,是没有丢包的。

还有这个不会在没有连接的时候发数据,只看程序的理解是不全面的。因为这个函数有个连接handle的参数,只有建立连接之后才会向这个handle发数据,你可以试一下。

另外,你也可以修改程序,比如主机向从机写一个特征值的数,来启动。这样你就可以自动控制这个测试了,方法是很多的

我用的这个程序,在send(counter》1000)里面加了结果的打印,主从机连接后,

    if ( events & SBP_BURST_EVT )
  {
    // Restart timer
    if ( SBP_BURST_EVT_PERIOD )
    {
      osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_BURST_EVT, SBP_BURST_EVT_PERIOD );
    }
 HalLcdWriteString( "555",  HAL_LCD_LINE_5 );
     sendData();
     sendData();
     sendData();
     sendData();

    //burstData[0] = !burstData[0];
    return (events ^ SBP_BURST_EVT);
  } 

这里一直进不去,我加的那句打印也一直没有显示,evt一直没有触发,什么情况

 

再问个问题,从机发包那里,notification返回值==SUCCESS是当他发成功了,counter++,我试了下,counter到1000时,notification返回值是MSG_BUFFER_NOT_AVAIL的包大概有30000个,bleNotConnected的包大概有4000个,你没有这些包么?

我用这个程序测试的时候,丢包非常严重啊,发倒是发出去了(GATT_Notification返回SUCCESS次数达到1000),但是手机端(Android 4.4)只收到了200多包,不知是什么原因呢?大神你用的是Android程序吗,方便共享给我吗?多谢哈!

我测试的时候SBP_BURST_EVT_PERIOD 为 7的时候,counter到1000时,notification返回值是MSG_BUFFER_NOT_AVAIL的包大概有400个,其他返回值没有,但是接收端只收到了200多个包,你知道会是什么原因吗?希望大神不吝赐教。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top