电子说
使用的抓包工具:Ellisys
今天用的Ellisys的界面如下所示,可以分为三个部分, 左上为40个信道监视图,左下为某一个或者多个设备(MAC地址)的交互数据,我们只谈只谈BLE,所以其他wifi,zigbee等功能可以忽略。
蓝牙设备工作状态介绍:
1.从机设备广播状态:
Connectable LE Coded -> LE Coded
Connectable LE Coded -> 2M on aux
2.主机连接从机过程:
主机在2M PHY 下建立连接
2M PHY切换到1M PHY
3.蓝牙MAC地址:
Slave: 0xF0F8F2D2BB7F
Master: F0:F8:F2:1F:57:1B
蓝牙5 PHY层简介:
蓝牙连接
上一讲讲了蓝牙5广播数据分析,今天接着看连接过程,下图是一个请求连接全过程,总共分为6个阶段,1-4阶段为广播,5为请求连接,6为回应连接。
1-4阶段分析请参考上一篇文章:
5,6阶段发生在数据信道上,5为连接请求,因为是专属蓝牙5连接,可以看到其指令为AUX_CONNECT_REQ(主请求),AUX_CONNECT_REQ携带的参数和BT4.2并无太大差异,hopping channel,interval,latency等等。
在接收到信号之后从机会回应一帧AUX_CONNECT_REP。
PHY层更新
如上面所示,Sniffer是在2M PHY下建立的连接,整个抓包实验,我把蓝牙的PHY 从2M PHY更新到1M PHY,最后更新到Coded PHY,三个阶段,如下图所示。
2M -> 1M PHY更新和Coded PHY更新
从下图可以看到,更新PHY阶段有三个阶段,主机发送更新请求:LLCP_PHY_REQUEST,在下图右下可以看到,主机请求更新PHY 层到1M PHY, 从机接收到请求,并回复LLCP_PHY_RESPONSE,RSPONSE中回复主机可以用1M PHY,最后主机发送LLCP_PHY_UPDATE,进过几个数据包的调整之后方能更新到1M PHY上。
1M PHY -> Coded PHY更新
过程和上面一致,不过多赘述。
总结
用两张图来总结我觉得恰到好处,图1,蓝牙5连接过程,图2,蓝牙5 PHY更新流程。
全部0条评论
快来发表一下你的评论吧 !