蓝牙BLE数据包格式汇总

以蓝牙4.0为例说明:

BLE包格式有:广播包、扫描包、初始化连接包、链路层控制包(LL层数据包)、逻辑链路控制和自适应协议数据包(即L2CAP数据包)等;

其中广播包又分为:定向广播包和非定向广播包;

逻辑链路控制和自适应协议数据包又分为:ATT指令包、信令指令包、SMP包;

1. 首先,所有的包都符合如下格式:

2. 广播包:

3. 非定向广播包:

4. 定向广播包:

5. 扫描包:

6. 初始化连接包:

7. 链路层数据包:

8. 链路层控制包:

9. L2CAP层数据包:

10. 信令指令包:

11. ATT指令包:

12. SMP指令包:

SMP指令与ATT指令类似,只是channel ID为0x0006,数据格式如下:

根据操作码不同,后面数据的格式不通同。

附:

L2CAP层的区分:

原文地址:https://www.cnblogs.com/unrulife/p/10764005.html

时间: 2024-10-12 03:51:15

蓝牙BLE数据包格式汇总的相关文章

详解BLE 空中包格式—兼BLE Link layer协议解析

BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(packet)涉及BLE协议栈link layer,L2CAP,SMP和ATT等各层次,但link layer跟空中包格式关系最紧密,掌握了BLE packet的格式,就很容易理解BLE link layer协议的工作原理,因此文章取名"详解BLE空中包格式-兼BLE link layer协议解析&qu

NC传送数据包格式以及用其制作手机短信炸弹

NC -v IP地址 端口<c:\1.txt 具体实例:NC -v 211.157.106.78 8080 <c:\1.txt 打开记事本,写一段批处理让nc自动传包  格式 :go nc -v 211.157.106.78 8080<c:1.txt goto go 将文件保存为批处理1.bat NC传送数据包格式以及用其制作手机短信炸弹,码迷,mamicode.com

ETHERNET数据包格式( IP &amp; UDP &amp; ICMP &amp; ARP )

ETHERNET数据包格式( IP & UDP & ICMP & ARP ) ETHERNET数据包格式 一.ETHERNET 数据包的协议类型 TYPE 的值为 0x0800:IP协议,即:ETHERTYPE_IP,    该值在 /usr/include/net/ethernet.h中有定义.ETHERNET 数据包的格式又细分    为如下几种情况: (1) IP 报头中的协议号码为 IPPROTO_TCP,其值为 6 .ETHERNET 数据包的格式如下: |<---

蓝牙ble数据转语音实现Android AudioRecord方法推荐

蓝牙ble数据转语音实现Android AudioRecord方法推荐 教程 欢迎走进zozo的学习之旅. 概述 蓝牙BLE又称bluetooth smart,主打的是低功耗和快速链接,所以在支持的profile并没有audio的部分,而蓝牙语音协议A2DP只在传统蓝牙中有,本文就是提供一种利用ble数据来传输压缩语音,并最终在实现用android语音框架中的AudioRecord方法来获取语音流. 主要思路 首先问题的需求是从一种非标准的协议挂载成为一个标准协议.那通过修改kernel的blu

TCP/IP数据包格式详解-包括数据链路层的头部

图中括号中的数字代表的是当前域所占的空间大小,单位是bit位. 黄色的是数据链路层的头部,一共14字节 绿色的部分是IP头部,一般是20字节 紫色部分是TCP头部,一般是20字节 最内部的是数据包内容 黄色部分:链路层 目的MAC:当前step目的主机的mac地址 源MAC:当前step的源主机的mac地址 类型:指定网络层所用的协议类型,通常是IP协议,0x0800 绿色部分:网络层,这里用的是IP包头格式 版本:记录数据报属于哪一个版本的协议,如IPv4或IPv6 首部长度:指明IP头部长度

北斗数据包格式封装和解析

1.北斗协议的具体格式如下图 2.数据包类型 根据北斗协议类型定义如下枚举类型 /// <summary> /// 数据包类型 /// </summary> public enum BDFrameType : ushort { /// <summary> /// 默认 /// </summary> Default = 0x00, /// <summary> /// 终端通用应答 /// </summary> TerCommonResp

IP数据包格式

0 4 8 16 31 |4位版本 | 4位首部长度 | 8位服务类型 | 16位总长度(字节数)| |16位标识 | 3位标志 | 13位片偏移 | |8位生存时间| 8位协议 | 16位首部校验和 | |32位源IP地址| |32位目的IP地址| |选项(可无)| |数据| netinet/ip.h中定义ip: struct ip { #if __BYTE_ORDER == __LITTLE_ENDIAN unsigned int ip_hl:4; /* header length */ u

TCP数据包格式

TCP数据格式. 序列号(seq,32位长) * 如果含有同步化旗标(SYN),则此为最初的序列号:第一个数据比特的序列码为本序列号加一. * 如果没有同步化旗标(SYN),则此为第一个数据比特的序列码. * 确认号(ack,32位长)—期望收到的数据的开始序列号.也即已经收到的数据的字节长度加1. * 报头长度(4位长)—以4字节为单位计算出的数据段开始地址的偏移值. * 保留—须置0 * 标志符 * URG—为1表示高优先级数据包,紧急指针字段有效. * ACK—为1表示确认号字段有效 *

8.1.7 OSPF数据包格式

OSPF的协议号为89,当OSPF数据包多播发生时,它们的TTL设置为1,, 1.数据包头部 所有的OSPF数据包都是由一个24个八位组字节的头部开始 版本version OSPF的版本号,OSPF的版本号为2. 类型Type 跟在头部后面的数据包类型 数据包长度 Packet Length OSPF数据包的长度,包括数据包头部的长度,以八位组字节计 路由器ID Router ID 始发路由器的ID 区域ID Area ID 始发数据包的路由器所在的区域 校验和Checksum 对整个数据包(包