蓝牙学习四(广播)

news2024/11/24 0:47:03

1.简介

        什么叫做广播,顾名思义就像广场上的大喇叭一样,不停的向外传输着信号。不同的是,大喇叭传输的是音频信号,而蓝牙传输的是射频信号

        BLE使用的是无线电波传递信息,就是将数据编码,调制到射频信号中发射。BLE使用的射频频率是2.4GHz。跟WIFI、Zigbee等协议使用的是同一频段。

        那如何做到使用同一频段而有不相互干扰呢?首先要知道的是2.4G指的不是某一个频率,而指的是一个频段2400MHz-2483.5MHz)。在这个频段内每隔2M为一个信道,共40个信道。2.4G频段是一个用于短距离,无须执照使用的开放频段。意思就是可以免费使用。为了不占用更多的资源从而造成相互干扰,每个设备在使用时,同一时刻,只会在一个信道进行工作,不会占用其他信道。一个BLE设备,在任一时刻,只能选择40个信道之中的一个进行发射或监听

         BLE将信道划分为广播信道数据信道。广播信道只有3个37、38、39。剩下的37个信道全都是数据信道0-36。

        在广播事件中,每一个广播事件都会在3个广播信道中进行数据传输,而且每一个事件都是从最小的信道编号开始传输。也就是说当广播事件来了,数据包从广播信道37、38、39中依次进行传输

2. 广播间隔

        设备每次广播时,会在3个广播信道发送相同的报文。这些报文报文的动作被称为一个广播事件。除了定向广播外,其他广播事件均可以选择20ms-10.28s不等的间隔。通常,一个广播中的设备会每一秒广播一次。两个相邻的广播事件之间的时间被称为“广播间隔”。

        设备周期性的发送广播会有一个问题:由于设备间的时钟会不同程度的漂移,两个设备可能在很长一段时间同时广播而造成干扰。为了防止这一情况的发生,除定向广播外的其他广播类型,发送时间均会有些许波动。实现方式为,在上一次广播事件后加入“0-10ms"的随机延迟。这意味着,即使两个设备广播间隔相同,并在相同信道及时间点上发送造成了冲突,但他们发送下一个广播事件时也很大概率不会冲突。

        所以,两个相邻的广播事件之间的时间间隔T_advEvent为:

        T_AdvEvent = advInterval + advDelay

        其中,advInterval必须是0.625ms的整数倍,范围是20ms-10.24s之间。对于可扫描非定向广播和不可连接非定向广播者两种广播类型,该值最好不小于100ms,即160个0.625ms。advDelay是LL层分配的一个随机数,范围为0-10ms。

         在实际的设置中,通过设置Advertising_Interval_Min(最小广播间隔)Advertising_Interval_Max(最大广播间隔)这两个参数来调整广播间隔。都是以0.625ms为单位。如果要固定广播间隔为某一个值,需要将这两个参数设置为同一个值即可。

3.广播类型

3.1 非定向可连接广播事件(ADV_IND)

        ADV_IND就是链路层通过广播信道发送广播的事件。发送的PDU(Protocol Data Unit-协议数据单元)是ADV_IND_PDU-通用广播报文。这个报文发送之后可以接收由扫描者发送的SCAN_REQ_PDU-扫描请求,或者由发起者发送的CONNECT_REQ_PDU-连接请求。而接收后链路层需要在同一个信道上进行扫描或回复发起者的应答。当接收的数据报文不符合广播滤波协议,要么就用下一个广播信道进行广播,要么就停止广播事件。如果接收到的SCAN_REQ_PDU通过了滤波协议,那么广播者需要在150±2us内在同一信道回复SCAN_RSP_PDU-扫描应答报文。如果接收到CONNECT_REQ_PDU,则进入连接状态,这个时候并不需要进行应答

        需要注意的是,一个广播事件中,相邻两个ADV_IND_PDU之间的时间需要不大于10ms

        接下来分类一下此类广播事件中广播包的发送情况。

        (1)仅仅有广播PDUS 

 (2)在广播事件中有SCAN_REQ_PDUS和SCAN_RSP_PDUS。

 注:当有扫描请求包再广播事件中的中间信道上收到时,T_IFS(帧间隔)为150us。

(3)在广播事件的结尾有SCAN_REQ和SCAN_RSP。

(4)在广播事件的中间接收到CONNECT_REQ-连接请求包。没有应答

3.2 定向可连接广播事件(ADV_DIRECT_IND)

        这个广播是为了快速建立链接。这种报文包含两个地址:广播者地址发起者地址。发起者收到发给自己的定向广播报文后,可以立刻发送连接请求事件作为回应,并立刻进入连接状态
定向广播事件有特殊的时序要求。完整的广播事件必须每3.75ms之内重复一次,即3.75ms内在37、38、39三个广播信道上全部发送一次报文。这样的方法使得扫描设备只需要扫描3.75ms即可收到定向广播设备的消息。

         如果按照定向广播的要去持续发送报文的话,广播信道将充斥着大量的定向广播报文。如此其他设备将无法进行广播。所以,蓝牙协议规定,定向广播不能持续1.28S以上。如果主机没有主动要求停止,或者连接没有建立,控制器会自动停止广播。一旦超过1.28S,主机只能使用通用广播让其他设备连接。

3.3 非定向不可连接事件(ADV_NONCONN_IND)

        该广播的时间要求与通用广播事件相同。此外,该事件只向外发射广播报文,但是不可以被连接,也不接收任何信息。是唯一一个只有发射而没有接受的广播类型

3.4 非定向可发现不可连接事件(ADV_DISCOVER_IND/ADV_SCAN_IND)

        该广播的时间要求与通用广播事件相同,应答也是SCAN_REQ和SCAN_RSP。这个广播和通用广播的区别是,它不能建立连接

        注:所谓的定向非定向针对的是广播对象,如果是针对特定的对象进行广播(在广播包PDU中包含目标对象的MAC),则为定向广播。反之为非定向广播。可连接不可连接指的是是否接受连接请求。如果是不可连接的广播类型,它将不应答连接请求报文可扫描广播类型会回应扫描请求

        不同的广播类型对应的扫描请求和连接请求如下图:

 

4. 广播响应包

        广播包有两种:广播包(Advertising Data)和响应包(Scan Response)。其中广播包是每个设备必须广播的,而响应包是可选的。

        广播包在蓝牙5.0协议栈核心中介绍如下:

        应答包介绍如下:

         每个包都是31字节,数据包中分为有效数据(significant)和无效数据(non-significant)

         有效数据部分:包含若干个广播数据单元,称为AD Structure。AD Structure的组成是:第一个字节是长度值Len,表示接下来的Len个字节是数据部分。数据部分的第一个自己表示数据的类型AD Type,剩下的len-1个字节是真正的数据AD Data。

        无效数据部分:因为广播包的长度必须是31个字节,如果有效数据部分不到31字节,则剩余部分用0补全

        广播响应包是为了给广播一个额外的31字节数据,用于主机在主动扫描情况下反馈数据使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/46058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cmake使用

1. cmake概述及例子 CMake快速入门 cmake、qmake、cl之间关系 1.1 各种cmake cmake根据CMakeLists.txt生成makefile,make根据makefile行编译。 1.1.1 最简cmake:生成可执行程序(一个文件) #CMakeLists.txt cmake_minimum_req…

【正点原子FPGA连载】 第二十章 LCD触摸屏实验摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十章 LCD触摸…

第十一章 建立语义化版本并提交组件库到NPM仓库

语义化版本是这样规定的。 版本格式:主版本号.次版本号.修订号(MAJOR.MINOR.PATCH),版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改;次版本号:当你做了向下兼容的功能性…

springboot+vue毕业生离校系统

目 录 摘 要 I 目 录 III 第1章 概述 1 1.1 研究背景 1 1.2 研究现状 1 1.3 研究内容 2 第二章 开发技术介绍 2 2.1 系统开发平台 2 2.2 平台开发相关技术 3 2.2.1 B/S架构 3 2.2.2 Java技术介绍 4 2.2.3 mysql数据库介绍 4 2.2.4 …

盘点程序员的花式赚外快的骚操作

2022世界杯比赛难得如期开幕了,卡塔尔王子的表情包想必大家已经看到眼晕。 我拿2200亿和你玩,你踢一个0:2过不过分啊~ 现实中的投资可不比卡塔尔王子的表情包失落更多,毕竟投资有风险入行需谨慎。 然而悲惨的事实是,…

[附源码]SSM计算机毕业设计新生入学计算机配号系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

企业若要实现预期广告推广效果,必须做好这六个步骤

在网络营销中,软文营销是一种最常用的营销手段。 我们知道,很多公司都是用软文进行广告推广。 然而,许多公司都觉得,软文营销并不是一件容易的事情,因为它不仅要有高品质的内容,还要有一定的操作能力&#…

CAD最常用的快捷键大全来啦

CAD快捷键的使用能够让我们加快画图的速度,但是想想CAD中有那么多的功能命令,所以CAD快捷键是很多的,想要完全记住是不可能的,这里就总结了常用的CAD快捷键命令,可能不全但是很实用。 一、常用绘图快捷键 最基本的一…

低代码与mes生产管理系统:功能篇

随着信息技术的发展和应用,信息系统在企业中的使用也越来越广泛。不仅可以使企业内部和企业间的信息流通更为便捷和频繁,同时可以提高管理的水平,有助于提高企业的生产效益。其中mes生产管理系统就是美豳的调查资询公司AMR(Advanced Manufacturing Resea…

牛顿法,高斯牛顿法,列文伯格-马夸尔特(LM)法

文章目录一:牛顿法 (Newtons method)1:概述2:牛顿方向与牛顿法3:牛顿法的基本步骤4:举例二:高斯牛顿法 (Gauss–Newton algorithm)1:概述2&#x…

若依、多选框前后端处理,MyBatis处理多对多关系

背景 很经典的CRUD&#xff0c;整理下笔记。 后端 实体类 /*** 专业方向主键&#xff0c;用于下拉框搜索*/private Long disasterTypeId;/*** 专业方向*/private List<DisasterType> disasterType;业务层 /*** 新增专家信息库** param expertInfo 专家信息库* return 结…

mac pro M1(ARM)安装:php开发环境

0. 引言 最近在处理各个语言的加密算法&#xff0c;正好需要安装php环境&#xff0c;特此记录&#xff0c;以供后续参考 1. 安装php 1、安装php包管理工具composer brew install composer2、安装php brew install php # 同时可以指定版本安装 brew install php8.0 # 查…

基于Java+SpringBoot+Mybatis+Vue+ElementUi的航空公司电子售票系统

项目介绍 本系统是利用Spring Boot框架而设计的一款结合用户的实际情况而设计的平台&#xff0c;前端利用VUE技术开发&#xff0c;将可供教师和管理员来使用的所有界面来显示出来&#xff0c;利用Java语言技术来编程实现用户和管理员所执行的各类操作业务逻辑&#xff0c;以My…

在MacOS上实现两个网络调试助手的UDP通信测试

文章目录一、背景二、网络调试助手软件三、UDP通信过程一、背景 因为有一个项目要中会使用本机中两个应用程序之间的UDP通信。 因此本文记录一下怎么在MacOS上实现两个网络调试助手的UDP通信测试。 二、网络调试助手软件 我使用的网络调试助手软件是&#xff1a;网络调试助…

Revit 中参数化多边形的画法?

Revit 中参数化多边形的画法 问题提出 :在 Revit 中&#xff0c;系统画多边形的命合都无法参数化&#xff0c;网上有“六边形”参数化的画法教学 ( 这个教学被收入《每日一技》第 76期“Revit 中族编辑时可控六边形的画法详解”)&#xff0c;却对任意多边形无可奈何。 网上及前…

Spring-全面详解(学习总结---从入门到深化)

目录 Spring简介 Spring体系结构 IOC_控制反转思想 IOC_自定义对象容器 IOC_Spring实现IOC IOC_Spring容器类型 ​ 容器实现类 IOC_对象的创建方式 使用构造方法 使用工厂类的方法…

少儿编程 电子学会图形化编程等级考试Scratch一级真题解析(判断题)2022年9月

2022年9月scratch编程等级考试一级真题 判断题(共10题,每题2分,共20分) 26、一个角色只能包含一个造型 答案:错 考点分析:考查角色造型,一个角色可以有多个造型,所以错误 27、我们可以根据需要将角色的任意一点设为造型中心 答案:对 考点分析:考查角色造型,角色…

CC1310F128RSMR Sub-1GHz射频微控制器 - MCU 433MHz 868MHz 915MHz ULP Wireless MCU

CC1310F128RSMR Sub-1GHz射频微控制器 - MCU 433MHz 868MHz 915MHz ULP Wireless MCU CC1310设备是德州仪器公司生产的一款性价比高、超低功耗、Sub-1GHz射频设备,这是SimpleLink的一部分,微控制器&#xff08;MCU&#xff09;平台。该平台包括Wi-Fi&#xff0c;蓝牙低能耗&am…

世界杯中隐藏的IoT物联网黑科技

世界杯首个大冷门上演&#xff01;&#xff01;夺冠热门阿根廷竟然一比二输给了沙特队&#xff0c;实在让人始料未及&#xff0c;让不少球迷都在黯然神伤。 回过头看&#xff0c;上半场4粒进球&#xff0c;被判越位无效的有3粒。整场比赛累计7次越位判罚&#xff0c;超过了上届…

APS智能排产系统的优势

APS智能排产系统是通过同步考虑多种有限能力资源的约束&#xff0c;依据各种预设规则&#xff0c;针对解决&#xff1a;客户订单交期评估与答复、人工排产效率低、设备资源利用率低、物料计划与生产计划脱节、生产计划执行率低、库存积压与生产缺料等相关问题&#xff0c;依靠严…