各位前辈您好,小白日前在开发一块BLE开发板与手机BLE调试助手建立连接,目前遇见以下问题: 1.由于目前采用的是对任何来自主机的数据包都回复空包,使用嗅探可以捕获到CONNECTION_IND,但无法获得后续任何数据包,wireshark截图如下 使用示波器对过程进行监控时可以看到陆续是发送接收了有40个包左右,请问是哪里有问题导致的抓包失败呢?
补充:设计的从机在广播和SCAN_RSP都是正常的,对连接过程的数据包发送,也是按照接收到主机数据包后150us发送数据包的
补充:在手机BLE调试助手点击连接,示波器显示连续按照协议的时序要求发送了40多个数据包,但连接失败,嗅探也没有捕捉到这40多个数据包
捉包器的灯有没有常亮?参考下述的链接。 https://docs.wireless-tech.cn/doc/34/
Wireless-Tech 没有的,手机点击连接后,嗅探会闪灯,过一会就灭了,包也没有抓到
Wireless-Tech 并且手机连接也显示超时
Kuangwei 那说明是你从机有问题,导致捉包器没有找到这个过程。你现在用的哪家的芯片?
Wireless-Tech 用的也是Nodric52833,SCAN_RSP的过程也是我自己实现的,这个没有问题。就是连接过程只回复空包没法被抓到,我打断点查了链接时主机发送的前两个包,都是REQ请求包,(跳频也没有问题),会不会是因为我无视了这些请求,只回复了空包导致抓不到的呢?
Kuangwei
Wireless-Tech 请问下抓包器如果要显示连接的数据包,是不是连接后的过程至少需要持续一定时间才能显示,比如说连接的持续时长得超过2s,通信的包才会输出到Wireshark上,低于这个时间的就算抓到了包也不显示
Kuangwei 没有这一说,一般有数据就会被捉取到。你可以先用一个标准的示例工程来捉取数据包。我目前怀疑是你的工程写得有问题。
Wireless-Tech 你好,问题解决了,是因为Wireshark缓存的问题,确实有数据包被嗅探接收到了,但可能Wireshark需要积累一定量的数据包再块输出,我通过添加了链接失败后重新回到广播模式,可以看到连接过程交互的数据包了