完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1、问题概述
在手机与CC2640进行配对的过程中,使用CC2640 DONGLE和packet sniffer软件,抓到了空中数据包。但是抓到的空中数据包数量较多,且每种空中数据包的实际含义看不明白。该空中数据包可从“5、附件”中下载。 目前正在阅读蓝牙核心协议《core_V5.0.pdf》,但是依旧无法看懂空中数据包。《core_V5.0.pdf》可从“5、附件”中下载。 能否提供一些关于空中数据包的资料? 2、pair mode的配置 使用官方开发板CC2640_LAUNCHPAD ,并使用simple_peripheral例程,在SimpleBLEPeripheral_init(void)函数中配置pair mode,代码如下所示: // Setup the GAP Bond Manager. For more information see the section in the // User's Guide: // software-dl.ti.com/.../ [ // Don't send a pairing request after connecting; the peer device must // initiate pairing //uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ; uint8_t pairMode = GAPBOND_PAIRING_MODE_INITIATE; // Use authenticated pairing: require passcode. uint8_t mitm = TRUE; // This device only has display capabilities. Therefore, it will display the // passcode during pairing. However, since the default passcode is being // used, there is no need to display anything. uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY; //手机不显示密码,只有这个可用 // Request bonding (storing long-term keys for re-encryption upon subsequent // connections without repairing) uint8_t bonding = TRUE; //uint8_t scMode = GAPBOND_SECURE_CONNECTION_ALLOW; GAPBondMgr_SetParameter(GAPBOND_PAIRING_MODE, sizeof(uint8_t), &pairMode); GAPBondMgr_SetParameter(GAPBOND_MITM_PROTECTION, sizeof(uint8_t), &mitm); GAPBondMgr_SetParameter(GAPBOND_IO_CAPABILITIES, sizeof(uint8_t), &ioCap); GAPBondMgr_SetParameter(GAPBOND_BONDING_ENABLED, sizeof(uint8_t), &bonding); //GAPBondMgr_SetParameter(GAPBOND_SECURE_CONNECTION, sizeof(uint8_t), &scMode); ] 3、packet sniffer的获取步骤 (1)在CC2640上运行simple_peripheral例程,在安卓手机上安装BLE SCANNER,找到CC2640,如图1所示。并输入配对密码“123456”,如图2所示。 (2)在配对的过程中,抓到的空中数据包如图3所示。 4、问题详细描述 (1)LL_Opcode 与 LL_Feature_Req是什么意思?如图4所示 (2)Data Type = L2CAP-S 是什么意思?如图5所示 (3)L2CAP Header 是什么意思?如图6所示 (4)Empty PDU是什么意思?如图7所示 (5)direction = ? 是什么意思?如图8所示 5、我的附件 (1)simple_peripheral工程在我的电脑上的位置 C:tisimplelink_cc2640r2_sdk_1_40_00_45examplesrtosCC2640R2_LAUNCHXLblestacksimple_peripheral (2)空中数据包可从如下路径下载: 2604.11success-MEIZU.psd (3)《core_V5.0.pdf》可从如下路径下载: www.bluetooth.com/.../bluetooth-core-specification (4)simplelink_cc2640r2_sdk_1_40_00_45 可从如下路径下载: dev.ti.com/.../ (5)CC2640R2 launchpad 可从这里购买: www.ti.com/.../launchxl-cc2640r2 6、我的开发环境 CCS:Code Composer Studio 7.2.0 SDK:simplelink_cc2640r2_sdk_1_40_00_45 hardware:CC26640R2 launchpad develop kit VS: Microsoft Visual C++ 2010 Express 系统:win7 64 位 |
|
相关推荐
7 个讨论
|
|
标题:安卓手机与CC2640连接失败,因为没有发出“Connection establishment”的数据包 内容:使用安卓手机(小米6、Android8.0)与CC2640连接,会连接失败。平均连接10次,失败4次。通过packet sniffer抓包工具发现,手机与cc2640之间发射了多个“Scan request / response”数据包,但是没有发出“Connection establishment”的数据包。 通过UART的串口信息显示,CC2640连接失败之后,就一直停留在“GAPROLE_WAITING”状态。 如果使用iphone5与CC2640连接,则成功率为100% 请问如何调整CC2640的GAP层的参数,以提高连接的成功率? 问题详细描述: (1)更改配对模式,代码如下: [ // Don't send a pairing request after connecting; the peer device must // initiate pairing //uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ; uint8_t pairMode = GAPBOND_PAIRING_MODE_INITIATE; // Use authenticated pairing: require passcode. uint8_t mitm = TRUE; // This device only has display capabilities. Therefore, it will display the // passcode during pairing. However, since the default passcode is being // used, there is no need to display anything. uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY; //手机不显示密码,只有这个可用 // Request bonding (storing long-term keys for re-encryption upon subsequent // connections without repairing) uint8_t bonding = TRUE; //uint8_t scMode = GAPBOND_SECURE_CONNECTION_ALLOW; GAPBondMgr_SetParameter(GAPBOND_PAIRING_MODE, sizeof(uint8_t), &pairMode); GAPBondMgr_SetParameter(GAPBOND_MITM_PROTECTION, sizeof(uint8_t), &mitm); GAPBondMgr_SetParameter(GAPBOND_IO_CAPABILITIES, sizeof(uint8_t), &ioCap); GAPBondMgr_SetParameter(GAPBOND_BONDING_ENABLED, sizeof(uint8_t), &bonding); //GAPBondMgr_SetParameter(GAPBOND_SECURE_CONNECTION, sizeof(uint8_t), &scMode); ] (2)利用小米6与CC2640连接,利用packet sniffer抓包,抓到了多个“Scan request / response”数据包,如图1所示。 (3)没有抓到“Connection establishment”的数据包。抓到了许多“FCS = “ERROR”的包,如图2所示 (4)参照官方的参考文档(链接见附件),如果连接成功,会收到“Connection establishment”的数据包,如图3所示。 (5)我抓到的数据包的文件在附件中。 (6)通过UART的串口信息显示,CC2640连接失败之后,就一直停留在“GAPROLE_WAITING”状态。UART信息打印的代码如下所示. 该代码在“simple_peripheral.c”文件中: static void SimpleBLEPeripheral_processStateChangeEvt(gaprole_States_t newState)[ ....... case GAPROLE_WAITING: Util_stopClock(&periodicClock); SimpleBLEPeripheral_freeAttRsp(bleNotConnected); Display_print0(dispHandle, 2, 0, "Disconnected"); UART_write(uart, "GAPROLE_WAITINGrn", sizeof("GAPROLE_WAITINGrn")); // Clear remaining lines Display_clearLines(dispHandle, 3, 5); break;......] 附件: (1)官方的参考文档 http://processors.wiki.ti.com/index.php/BLE_sniffer_guide (2)我抓到的数据包的文件 02_fail_pairing.psd |
|
|
|
|
|
60user49 发表于 2019-10-29 14:37 你在 static void SimpleBLEPeripheral_init(void)函数里面增加以下代码在抓一次包给我看看。 #define APP_TX_PDU_SIZE 27 #define APP_RX_PDU_SIZE 27 #define APP_TX_TIME 328 #define APP_RX_TIME 328 //This API is documented in hci.h HCI_EXT_SetMaxDataLenCmd(APP_TX_PDU_SIZE , APP_TX_TIME, APP_RX_PDU_SIZE, APP_RX_TIME); |
|
|
|
|
|
uuwufydsw 发表于 2019-10-29 14:47 1、将上述配置代码添加到void SimpleBLEPeripheral_init(void)中以后,BLE packet sniffer就难以抓到包了。我尝试过好多次,BLE packet sniffer都没有抓到包。 2、当删除上述配置代码后,BLE packet sniffer就可以抓到包了。说明上述配置代码会影响抓包工具。 3、将上述配置代码添加到void SimpleBLEPeripheral_init(void)中以后,再用Android手机与CC2640连接。发现连接的成功率不变。也就是说,上述配置代码对CC2640的连接与配对基本没有影响。 |
|
|
|
|
|
60user49 发表于 2019-10-29 15:04 使用Android手机与CC2640连接,就有可能出现连接失败的情况。如果使用iphone与CC2640连接,基本不会出现连接失败。 目前证明问题出在Android系统上,CC2640的代码配置没有问题。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
697 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
607 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1069 浏览 1 评论
763 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
531 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
175浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
136浏览 14评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
130浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
126浏览 12评论
GD32F303RCT6配置PA4 ADC引脚,将PA2代替key功能,PA2连接时无法实现预期功能,为什么?
72浏览 10评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 18:21 , Processed in 1.134133 second(s), Total 66, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号