微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640r2_BLE4.2 协议栈自动拆包传输问题

CC2640r2_BLE4.2 协议栈自动拆包传输问题

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

协议栈使用:ble_sdk_2_02_01_18

BLE SDK使用:simplelink_cc2640r2_sdk_1_40_00_45

编译环境:Code Composer Studio 7.2.0

老项目CC2540芯片,手机写数据到设备(CC2540),手机调用写函数发送100字节的大数据包,协议栈会自动拆包传输。

在新的设备上(cc2640r2_BLE4.2协议),手机调用写函数发送100字节的大数据包,写大数据包操作失败,

APP提示错误GATT_INVALID_ATTRIBUTE_LENGTH。

上面两个测试使用同样安卓、苹果手机测试,测试结果一样,写大数据包操作失败。

这个问题是什么原因引起,是否有解决办法。

尝试实验:

开启新协议的扩展数据功能。

MAX_NUM_PDU=6

MAX_PDU_SIZE=251

//Set default values for Data Length Extension
{
//Set initial values to maximum, RX is set to max. by default(251 octets, 2120us)
#define APP_SUGGESTED_PDU_SIZE 251 //default is 27 octets(TX)
#define APP_SUGGESTED_TX_TIME 2120 //default is 328us(TX)

//This API is documented in hci.h
//See the LE Data Length Extension section in the BLE-Stack User's Guide for information on using this command:
//http://software-dl.ti.com/lprf/sdg-latest/html/cc2640/index.html
HCI_LE_WriteSuggestedDefaultDataLenCmd(APP_SUGGESTED_PDU_SIZE, APP_SUGGESTED_TX_TIME);
}

测试结果一样,写大数据包操作失败。

http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/p/145488/410929.aspx#410929

看这个贴子,感觉软件分包发送应该是可以的。

特征值长度最大为512个字节。特征值如果是50字节,PDU是25字节的话,它会分几次发送,几次难免会有丢包。

You need to set the MAX_PDU_SIZE 248 and adjust the heap size accordingly so that you can send packets that are > 20 bytes data. 

感谢你的回复,Susan Yang

按你的说法,我先试试:

1、MAX_PDU_SIZE=248   //  Maximum size in bytes of the BLE HCI PDU. Valid range: 27 to 255

2、增大堆栈;

3、初始化不改变:

//Set default values for Data Length Extension
{
//Set initial values to maximum, RX is set to max. by default(251 octets, 2120us)
#define APP_SUGGESTED_PDU_SIZE 251 //default is 27 octets(TX)
#define APP_SUGGESTED_TX_TIME 2120 //default is 328us(TX)

//This API is documented in hci.h
HCI_LE_WriteSuggestedDefaultDataLenCmd(APP_SUGGESTED_PDU_SIZE, APP_SUGGESTED_TX_TIME);
}

测试下来:

问题依然存在,手机调用写函数发送100字节的大数据包,写大数据包操作失败,APP提示错误GATT_INVALID_ATTRIBUTE_LENGTH。

新的情况,同样测试环境,我用第三方lightblue工具测试,发送大数据包,发现第三工具是没问题的。

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

网站地图

Top