BLE蓝牙的广播类型
广播的类型一般分为四种,见如下表格:
1. 可连接的非定向广播(Connectable Undirected Event Type):
这是一种用途最广的广播类型,包括广播数据和扫描响应数据,它表示当前设备可以接受其他任何设备的连接请求。进行通用广播的设备能够被扫描设备扫描到,或者在接收到连接请求时作为从设备进入一个连接。通用广播可以在没有连接的情况下发出,换句话说,没有主从设备之分。
鉴于此种广播类型用的最多,下面我们来讨论一下此类型下广播事件中广播包的发送情况,另外要注意在一个广播事件中,前一个“ADV_IND PDUs”的开始到相邻的下一个“ADV_IND PDUs”的开始处的时间要小于等于 10ms :
第一种情况:仅仅有广播 PDUs 。截图显示如下:
第二种情况:在广播事件的中间有“SCAN_REQ”和“SCAN_RSP PDUs”。截图显示如下:
第三种情况:在广播事件的结尾有“SCAN_REQ”和“SCAN_RSP PDUs”。截图显示如下:
第四种情况:在广播事件的中间接收到“CONNECT_REQ PDU”的情况。截图显示如下
2. 可连接的定向广播(Connectable Directed Event Type):
定向广播类型是为了尽可能快的建立连接。这种报文包含两个地址:广播者的地址和发起者的地址。发起者收到发给自己的定向广播报文之后,可以立即发送连接请求作为回应。
定向广播类型有特殊的时序要求。完整的广播事件必须每3.75ms重复一次。这一要求使得扫描设备只需扫描3.75ms便可以收到定向广播设备的消息。
当然,如此快的发送会让报文充斥着广播信道,进而导致该区域内的其他设备无法进行广播。因此,定向广播不可以持续1.28s以上的时间。如果主机没有主动要求停止,或者连接没有建立,控制器都会自动停止广播。一旦到了1.28s,主机便只能使用间隔长得多的可连接非定向广播让其他设备来连接。
当使用定向广播时,设备不能被主动扫描。此外,定向广播报文的净荷中也不能带有其他附加数据。该净荷只能包含两个必须的地址。
3. 不可连接的非定向广播(Non-connectable Undirected Event Type):
仅仅发送广播数据,而不想被扫描或者连接。这也是唯一可用于只有发射机而没有接收机设备的广播类型。不可连接广播设备不会进入连接态,因此,它只能根据主机的要求在广播态和就绪态之间切换。
4. 可扫描的非定向广播(Scannable Undirected Event Type):
又称可发现广播,这种广播不能用于发起连接,但允许其他设备扫描该广播设备。这意味着该设备可以被发现,既可以发送广播数据,也可以响应扫描发送扫描回应数据,但不能建立连接。这是一种适用于广播数据的广播形式,动态数据可以包含于广播数据之中,而静态数据可以包含于扫描响应数据之中。
注意:所谓的定向和非定向针对的是广播的对象,如果是针对特定的对象进行广播(在广播包PDU中会包含目标对象的MAC)就是定向广播,反之就是非定向。可连接和不可连接是指是否接受连接请求,如果是不可连接的广播类型,它将不回应连接请求。可扫描广播类型是指回应扫描请求。
不同的广播类型对扫描请求和连接请求的不同结果如下图:
BLE蓝牙的广播类型相关推荐
- BLE蓝牙笔记----广播连接过程
本文是参考一些博文和书籍做的笔记,如有不适联系删除 参考:https://www.cnblogs.com/iini/p/8977806.html 参考文章: <BLE4.0 低功耗蓝牙 协议 总 ...
- BLE蓝牙广播包的比特流处理之白噪化和CRC校验
目标: 1. 通过蓝牙协议了解BLE蓝牙的广播帧结构 2.了解蓝牙比特流处理流程 3.使用matlab重现白噪化和CRC校验 1.蓝牙的广播帧结构: 通过蓝牙BLE协议我们可以看到,蓝牙的广播帧结构如 ...
- 低功耗蓝牙(BLE)-- advertisements广播篇
为了更方便理解 BLE 中的广播,首先要先了解 BLE 架构中的通用访问配置文件 (GAP)层. GAP 为BLE 设备相互交互提供了一个框架,包括: BLE 设备角色 广播(广播.发现.广播参数.广 ...
- BLE蓝牙广播入门(一)
一.概述 BLE广播是低功耗蓝牙协议最重要的组成部分之一.深入理解如何使用广播可以有效降低蓝牙模块的功率.提高连接速度以及改善连接的可靠性. BLE蓝牙协议一共有三层,分别是应用层,主机层和控制器层. ...
- 低功耗蓝牙搜索广播的实现流流程介绍 /BLE scan flow ----- 蓝牙低功耗协议栈
零. 概述 主要介绍下蓝牙协议栈(bluetooth stack)低功耗蓝牙搜索广播的流程以及协议栈的实现流程,BLE scan flow btsnoop以及流程在资料中的......\STM32_U ...
- BLE蓝牙广播和扫描主要数据设置解析与总结
(一)蓝牙之广播: 1 广播参数之广播名称 typedef enum {BLE_ADVDATA_NO_NAME, /**< Include no device name in advertisi ...
- 三.非协议栈实现BLE蓝牙广播(2.4G实现BLE广播)
非协议栈实现BLE广播(2.4G实现BLE广播) 现在的人啊,用协议栈用多了,BLE物理层是怎么广播都不知道了,且听我慢慢道来 这里实现的BLE广播包是基于上一章介绍的,我要通过2.4G来发出这个广播 ...
- Android BLE学习(三):编写自己的 BLE蓝牙读写工具(功能仿照nrf master control panel)
http://my.csdn.net/lidec 背景 由于nordic官方的nrf master control panel只提供了apk,很多同学学习起来都得自己摸索蓝牙的读写,项目中整理了BLE ...
- android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2
Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...
最新文章
- iOS 获取指定时间的前后N个月
- 教你实现Vscode的Markdown预览
- Win32 结构化异常处理(SEH)探秘【下篇】
- mysql与redis面试题
- [唐胡璐]Java操作Sql Server 2008数据库
- Spring--SPeL
- 叠数的加法与字符串 RUNOOB python练习题 18
- 文字排版不在单调!可临摹的网页UI设计模板,轻松驾驭!
- 曹讯 计算机摄像学,计算摄像学: 全光视觉信息的计算采集
- 百度DuerOS负责人景鲲晋升副总裁,继续向李彦宏汇报
- Python:学习笔记(一)
- java 静态库和动态库_Android下Java的静态库和动态库
- simulink中不能改名_王者荣耀:万格改名教学,空白名、重复名、个性符号名改法技巧!...
- 【感悟随笔】我只是一直很努力
- kali linux 虚拟机iso 下载,Kali Linux 2016.2发布提供虚拟机以及系统镜像下载
- 假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()
- 计算机网络——网络安全(湖科大 教书匠)
- Word2007 无法给尾部空格加下划线
- IntelliJ IDEA创建java项目
- python 编写获取阿里巴巴行业分类数据代码