以蓝牙为背景剖析无线通信原理以及协议栈 (6)

Non-connectable mode,不可被连接的模式;Directed connectable mode,可被指定的设备连接;Undirected connectable mode,可被连接(不指定设备);Auto connection establishment procedure,可自动连接模式;General connection establishment procedure,通用的连接过程等。

3.5.2 广播数据格式

  BLE协议31个bytes的广播数据和扫描应答数据的格式如下:

              

以蓝牙为背景剖析无线通信原理以及协议栈

                      图9 广播数据和扫描应答数据的格式

  广播数据/扫描应答数据一个个的AD Structure组成,未满31bytes的数据由0填充;每个ADStructure有1byte的长度信息(Data的长度),和剩余的Data组成。

  Data由AD Type和AD Data组成。其中AD Type可以指定Service UUID,设备支持哪些profile;Local Name,设备的名称; Flags,设备的GAP发现连接能力等。结合上面的例子,再分析下:

      

以蓝牙为背景剖析无线通信原理以及协议栈

  02 01 06,是一个AD Structure:Data的长度是02;Data是01 06;AD Type是01(Flags);AD Data是06,表明支持General Discoverable Mode可被发现、不支持BR。

  03 03 aa fe,是一个AD Structure:Data的长度是03;Data是03 aa fe;AD Type是03(16 bits的Service UUID);AD Data是aa fe,是Eddystone profile的Service UUID。

  17 16 aa fe 00 -10 00 01 02 03 04 05 06 07 08 09 0a 0b 0e 0f 00 00 00 00,是一个AD Structure:Data的长度是17(23bytes);Data是16 aa fe 00 -10 00 01 02 03 04 05 06 07 08 09 0a 0b 0e 0f 00 00 00 00;AD Type是16(Service Data);AD Data是aa fe 00 -10 00 01 02 03 04 05 06 07 08 09 0a 0b 0e 0f 00 00 00 00,是Eddystone profile具体的Service Data。

总结

  读罢全文,如果还有“似懂非懂、欲说还休”的感觉,太正常了,毕竟蓝牙协议是一个历史悠久又比较庞大的协议,本文当一个学习笔记吧,以后遇到相关的问题,来这篇文章查查应该就可以了。 

参考文档:

https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile

CSS(Core Specification Supplement)

https://github.com/google/eddystone/blob/master/protocol-specification.md

IPSP SPEC, 1.0, https://www.bluetooth.org/docman/handlers/DownloadDoc.ashx?doc_id=296307

IETF RFC7668, IPv6 over BLUETOOTH(R) Low Energy, https://datatracker.ietf.org/doc/rfc7668/?include_text=1

LE_PSM_IPSP, https://www.bluetooth.com/specifications/assigned-numbers/logical-link-control

https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx

https://tools.ietf.org/html/rfc4944

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgdpjp.html