低功耗蓝牙(BLE)学习记录
[电子工程] 揭秘你不知道的低功耗蓝牙(BLE)测试技术
![[电子工程] 揭秘你不知道的低功耗蓝牙(BLE)测试技术](https://img.taocdn.com/s3/m/36869db0b9f3f90f76c61bee.png)
电子工程专辑我们生活在一个幻想与现实辉映、科技与人文交织、个体与整体相融、隐私与透明平衡的空间里。
在万物互联的世界,一切趋向足够出色,且性能完美的可穿戴设备,已然一步步实现在我们的身边。
可穿戴设备通常被定义为物联网技术最直接的落地应用之一,随着创新技术的不断发展,可穿戴设备的形态日趋多样化,带动了整个物联网产业链的商业化延伸,而低功耗蓝牙(BLE)又是可穿戴设备中应用最广泛的无线连接技术。
过去十年间,相关用例从连接电脑外围设备扩展到与可穿戴设备进行全面通信和更多其他应用。
最新版Bluetooth®规范(5.0、5.1、5.2)进一步涵盖了IoT 领域的更多应用。
相较经典蓝牙,BLE在保持同等通信范围的同时,显著降低功耗和成本,是将不同传感器、外围设备和控制设备连接在一起的理想选择。
从智能家居、智慧城市、智能工业等领域,BLE给人类提供了一个无限可能的智能生活场景,在我们身边曾经简朴、分割的一切,现在都开始连接,并且变得智能。
无可否认,在低功耗蓝牙技术的发展和推动下,"人机交互",甚至"人机共生"将成为我们当下和未来生活的常态。
由于低功耗蓝牙智能设备越发强调外形紧凑小巧与高集成度,对其测试测量的方法也因此有了更高的标准,而空口测试(OTA)当仁不让的将获得更多的关注。
但为了优化测试程序,所有方法优势互补才是最佳选择。
蓝牙联盟 (Bluetooth SIG) 通过认证流程的各种测试用例确保设备具备协同工作的能力,以及在其交换中具有合格的质量和性能,完成声明后方可获得蓝牙标签进入市场。
让我们先来先来认识一下针对低功耗蓝牙的几种测试方法:直接测试模式直接测试模式(DTM-Direct Test Mode)是一种用于低功耗蓝牙射频性能测试的模式,也是蓝牙核心规范的一部分,任何符合蓝牙核心规范的芯片都能进行DTM测试。
DTM通过测试仪器直接连接蓝牙设备控制接口,执行测试项目,自动完成和蓝牙模块之间的交互命令和蓝牙参数设定,DTM可以用于研发、预认证和一致性生产之中,是目前符合BlueSig 规范的蓝牙低功耗测试方法。
BLE——低功耗蓝牙(BluetoothLowEnergy)

BLE——低功耗蓝⽛(BluetoothLowEnergy)1、简介以下蓝⽛协议特指低功耗蓝⽛协议。
蓝⽛协议是由SIG制定并维护的通信协议,蓝⽛协议栈是蓝⽛协议的具体实现。
各⼚商都根据蓝⽛协议实现了⾃⼰的⼀套函数库——蓝⽛协议栈,所以不同⼚商的蓝⽛协议栈之间存在差别,但都遵循制定的蓝⽛协议。
蓝⽛技术的实质是建⽴通⽤⽆线接⼝及其控制软件的标准,使移动通信与计算机⽹络之间能实现⽆缝连接。
蓝⽛通讯最初设计初衷是⽅便移动电话(⼿机)与配件之间进⾏低成本、低功耗⽆线通信连接。
通俗地说,蓝⽛最初就是为了替代串⼝,实现⽆线串⼝的功能。
蓝⽛4.1就是⼀个⼤杂烩:BR/EDR沿⽤旧的蓝⽛规范,LE抄袭802.15.4,AMP直接使⽤802.11。
以上操作的⽬的是为了提⾼蓝⽛的兼容性和易⽤性,但是需要在功耗和传输速率之间取得平衡,整体来说,这个设计并不⼗分优雅,只是存在即合理。
标准号:IEEE 802.15.1核⼼:低功耗技术,即Low EnergyRF规格⼯作频段:2.4GHz~2.4835GHz,ISM(Industrial,Scientific and Medical)频段;⼯作频道:40个频道,每个频道2MHz的间隔,3个⼴播信道(37-2402MHz,38-2426MHz,39-2480MHz),37个数据信道,⼴播报⽂还是数据报⽂由信道决定;调制⽅式:GFSK,调制指数为0.5中⼼频率容限:±150kHz功耗功耗限制:-20dBm~10dBm特性可靠性:⾃适应跳频,保证在⽆⼲扰信道上通信;安全性:认证、绑定、配对,配对绑定在⼀些⼿机上可能存在兼容性问题,慎⽤;数据速率:PHY层1Mbps,4.2及以上⽀持PHY2Mbps;传输距离:⼀般认为在30m以内,可靠通信距离最好保持在15m以内,穿墙会⼤幅降低传输距离;蓝⽛5协议中的coded技术可以增加蓝⽛传输距离;BLE优势在于低功耗、低成本、有⼿机作为强⼤的后盾,安全,应⽤⼴泛。
低功耗(BLE)蓝牙跳频通信技术原理

低功耗(BLE)蓝牙跳频通信技术原理BLE蓝牙跳频通信技术可以将可用频点扩展开来,可以容纳更多的设备量,另外还能大大的提高保密性能,其中的3个绿色信道是用来搜索设备的时候广播用的,另外剩下的37个信道主要用于数据通信。
它的数据传输间隔从7.5mS到4S即0.25Hz到133.3Hz之间,一般情况下用0.25到1s 的间隔,这个范围比其他同类通信无线技术要大很多。
BLE蓝牙主机和从机会先进行“交流”,共同商议一个双方都认可的连接间隔,这样可以使发射与接收同步进行,从而降低电量和带宽的损耗。
通信频率是2402MHz到2480MHz区间,其中有3个广播信道,37个数据信道,跳频通信在前面提到了,这种方式可以有效提高传输抗干扰能力和空间内同时容纳的设备数量,同时加强了传输保密性能。
识别不同设备的方式是采用48位共可以编号2的48次方即281474976710656,即10的14.45次方个设备而不重号。
打个比喻,比如厚度1cm的心率传感器,叠起来可以从太阳到地球跑9个来回。
也有人大致算过可以给地球上每一粒沙子都编上号还可以用。
这个地址是蓝牙芯片生产厂商预先刻录在芯片里面的,所以是不会存在重号的情况。
所以,在低功耗蓝牙通信这块,基本可以总结出以下结论:BLE蓝牙的跳频技术在抗干扰性、容纳相同设备同时通信、数据安全性方面具有非常好的性能。
此外,在当前BLE蓝牙最新版本中可以实现多对多连接。
扩展到BLE蓝牙模块中也是一样的,如今蓝牙5.0技术已经非常成熟,应用也非常广泛,众多蓝牙模块厂家都已应用上最新蓝牙技术,如云里物里的蓝牙模块MS50SFB就是采用的蓝牙5.0技术。
低功耗蓝牙的优势极为明显,在保密性,数据传输,功耗,主机控制,拓扑结构等等表现都不错。
基于蓝牙技术受众面广,在未来不论是智能家居还是可穿戴设备或是消费电子,都会实现互联互通,创造更多的智能化服务,这也是物联网发展的新趋势。
深入浅出低功耗蓝牙(BLE)协议栈

深入浅出低功耗蓝牙(BLE)协议栈低功耗蓝牙(BLE)协议栈是一种用于低能耗设备间通信的无线通信技术。
它主要用于物联网设备、传感器和其他低功耗设备之间的通信。
本文将深入浅出地介绍BLE协议栈的工作原理和主要组件,以及其在物联网和其他领域的应用。
BLE协议栈由多个层级组成,包括物理层(PHY)、链路层(LL)、主机控制器接口(HCI)、主机层(Host)和应用层(Application)。
每个层级负责不同的功能,并通过各自的接口与上下层通信。
物理层是BLE协议栈的最底层,负责将数据转化为无线信号进行传输。
BLE使用2.4GHz频段进行通信,采用频率跳变技术来抵抗干扰和提高传输稳定性。
链路层建立在物理层之上,负责处理与设备之间的连接和数据传输。
它包括广播(Advertisement)和连接(Connection)两种传输模式。
广播模式用于设备之间的发现和配对,而连接模式用于实际的数据传输。
主机控制器接口(HCI)是链路层与主机层之间的接口,负责传输控制命令和事件信息。
主机层负责处理设备的连接管理、数据传输和高层协议等任务。
应用层则是最上层,负责处理具体的业务逻辑和应用程序。
BLE协议栈的工作流程一般分为广播、扫描、连接和数据传输四个阶段。
在广播阶段,设备会周期性地发送广播包,以便其他设备发现和连接。
扫描阶段是其他设备主动并发现正在广播的设备。
连接阶段是建立起连接后的设备之间进行数据传输。
数据传输阶段则是实际进行数据交换的阶段。
BLE协议栈的优势在于其低功耗、简单易用和成本低廉。
它适用于大量的物联网设备,如健康追踪器、智能家居设备等。
同时,BLE协议栈也在其他领域有着广泛的应用,例如无线鼠标、键盘、耳机等。
总之,低功耗蓝牙(BLE)协议栈是一种用于低能耗设备间通信的无线通信技术,具有低功耗、简单易用和成本低廉等优势。
它在物联网和其他领域有着广泛的应用,为设备间的通信提供了可靠和高效的解决方案。
低功耗蓝牙(BLE)学习记录

低功耗蓝牙(BLE)学习记录RW_BLE_CORE记录传输信道BLE的传输信道在2.4G频段有40个channel。
包括2种物理信道:广播信道和数据信道。
数据帧中设置Access Address用于标识该信道,防止信道碰撞。
Channel MAP如下:数据帧通信蓝牙帧结构如下:Preamble:根据Access Address而定,假如AA的LSB(最右bit)bit为1,则前导便是10101010b,反之则为01010101b。
Access Address:广播帧的AA为:0x8E89BED6。
其他情况可以是一个32bit的随机数。
AA需满足以下条件·不超过连续6个1或者0。
·与广播帧的AA不同bit超过1个。
·不能4byte相同。
·0 1跳变不能超过24次·MSB 6bit 0 1跳变超过2次。
以下逐个介绍PDU。
一、Advertising Channel PDU蓝牙广播帧帧结构其中Header的帧格式如下:其中,a、广播帧类型(PDU Type)分为以下几类:• ADV_IND: connectableundirected advertising event• ADV_DIRECT_IND: connectable directed advertising event• ADV_NONCONN_IND: non-connectable undirected advertising event• ADV_SCAN_IND: scannable undirected advertising eventb、Length:3~37bytes广播帧分为很多种,其区别就是payload所代表的意义不同,以下分别对几种广播帧作分别阐释:1、ADV_INDADV_IND的payload格式如下:在广播帧帧头中的TxAdd位是广播地址的标示位:TxAdd==0:AdvA地址为公用地址;TxAdd==1:AdvA地址为随机地址。
低功耗蓝牙ble安全机制研究

Layer,LL)以及主机控制接口层(Host Controller Inter-face,HCI);主机层包括:逻辑链路控制和适配器层(Logical Link Control and Adaptation Protocol,L2CAP)、属性协议层(Attribute Protocol,ATT)、通用属性协议配置规范层(Generic Attribute Profile,GATT)、安全管理层(Security Manager Protocol,SMP)以及通用访问规范层(Generic Access Profile,GAP)。
Controller用来实现与硬件相关的射频接收发送初步数据逻辑协议等工作,Host处理完全纯数据协议逻辑的工作,比较特别的HCI层用于衔接Host和Controller通信的中间层。
本文主要研究和分析BLE建立连接时的配对绑定过程。
BLE协议体系结构如图1所示。
BLE的配对绑定过程分为3个阶段[1],第一个阶段是发起配对绑定请求,实际上是配对特征交换得到临时密钥(Temporary Key,TK)值;第二个阶段使用SMP协议进行各种中间密钥的传送和计算,实际上是身份确认以及短期密钥(Short Term Key,STK)生成;第三个阶段是在第二个阶段的基础上进行密文通信交换各种所需要的密钥,例如:长期秘钥(Long Term Key,LTK)、身份解析秘钥(Identity Root Key,IRK)和连接签名解析秘钥(Connec-tion Signature Resolving Key,CSRK)等。
配对绑定阶段流程如图2所示。
2 安全管理协议■2.1 SMP中加密算法BLE协议规定了SMP中使用的是一个单向函数,用于产生秘钥、加密和提供完整性检查。
这种加密引擎被称为先进加密系统(Advanced Encryption Standard,AES)。
BLE 中使用AES的128位版本[2],也就是明文、秘钥和密文都52 | 电子制作 2020年02-03月软件开发是 128 位的,其加解密的安全函数为e,加解密表达式如(1): 密文=ekey(明文)/密文=e(key,明文) (1)这里的加密引擎函数e为AES标准中的电子密码本模式(Electronic Codebook mode encryption,ECB),计算MAC(Media Access Control)地址时使用到了函数CMAC,它是由Counter with Cipher Block Chaining-Message Au thentication Code (CCM)实现。
蓝牙低能耗(BLE)技术简介

蓝牙低能耗蓝牙低能耗((BLE )技术技术简介简介蓝牙低能耗技术简介蓝牙低能耗(BLE)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM 射频频段。
它从一开始就设计为超低功耗(ULP)无线技术。
它利用许多智能手段最大限度地降低功耗。
蓝牙低能耗技术采用可变连接时间间隔,这个间隔根据具体应用可以设置为几毫秒到几秒不等。
另外,因为BLE 技术采用非常快速的连接方式,因此平时可以处于“非连接”状态(节省能源),此时链路两端相互间只是知晓对方,只有在必要时才开启链路,然后在尽可能短的时间内关闭链路。
BLE 技术的工作模式非常适合用于从微型无线传感器(每半秒交换一次数据)或使用完全异步通信的遥控器等其它外设传送数据。
这些设备发送的数据量非常少(通常几个字节),而且发送次数也很少(例如每秒几次到每分钟一次,甚至更少)。
超低功耗无线技术蓝牙低能耗技术的三大特性成就了ULP 性能,这三大特性分别是最大化的待机时间、快速连接和低峰值的发送/接收功耗。
无线“开启”的时间只要不是很短就会令电池寿命急剧降低,因此任何必需的发送或接收任务需要很快完成。
被蓝牙低能耗技术用来最小化无线开启时间的第一个技巧是仅用3个“广告”信道搜索其它设备,或向寻求建立连接的设备宣告自身存在。
相比之下,标准蓝牙技术使用了32个信道。
这意味着蓝牙低能耗技术扫描其它设备只需“开启”0.6至1.2ms 时间,而标准蓝牙技术需要22.5ms 时间来扫描它的32个信道。
结果蓝牙低能耗技术定位其它无线设备所需的功耗要比标准蓝牙技术低10至20倍。
值得注意的是,使用3个广告信道是某种程度上的妥协:这是在频谱非常拥挤的部分对“开启”时间(对应于功耗)和鲁棒性的一种折衷(广告信道越少,另外一个无线设备在选用频率上广播的机会就越多,就越容易造成信号冲突)。
不过该规范的设计师对于平衡这种妥协相当有信心——比如,他们选择的广告信道不会与Wi-Fi 默认信道发生冲突(见图1)图1:蓝牙低能耗技术的广告信道是经过慎重选择的,可以避免与Wi-Fi发生冲突蓝牙低能耗技术的广告信道是经过慎重选择的,一旦连接成功后,蓝牙低能耗技术就会切换到37个数据信道之一。
b e a c o n 蓝 牙 入 门 教 - 程 ( 2 0 2 0 )

低功耗蓝牙BLE - 学习笔记蓝牙的分类BLE【实操恋爱课-程】协议框架关键术语及概念广播数【扣】据格式广播网【1】络拓扑GAT【О】T 连接的网络拓扑GATT【⒈】通讯事务服务和特【б】征Ser【9】vice?Char【5】acteristic?最近由【2】于项目需求在学习 BLE,网上Android BLE开发的资料相比其他【6】 Android 资料显得有些匮乏,在此记录学习例程,希望能能对学习 BLE 的童鞋有所帮助。
在上手 Android 之前我们需要先搞清楚蓝牙的协议及通讯过程,才不会在调用 Google 提供的 API 时似懂非懂。
蓝牙的分类当前的蓝牙协议分为基础率 - 增强数据率(BR-EDR)和低耗能(BLE)两种类型。
当然现在 BLE蓝牙模块?还有单模和双模之分,单模指的是仅支持BLE ,双模即 Bluetooth Classic + BLE。
蓝牙BD-EDR和蓝牙BLE主要区别BLE协议框架蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙使用层协议(Bluetooth Application)。
蓝牙核心协议关心对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何运用这些机制;蓝牙使用层协议,是在蓝牙核心协议的基础上,根据具体的使用需要定义出各种各样的策略,如 FTP、文件传输、局域网.?蓝牙核心协议(Bluetooth Core)又包含 BLE Controller 和 BLE Host 两部分。
这两部分在不一样的蓝牙技术中(BR-EDR、AMP、BLE),承担角色略有不一样,但大致的功能是相同的。
Controller 负责定义 RF、Baseband?等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host?负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让 Bluetooth Application 更为方便的运用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RW_BLE_CORE记录传输信道BLE的传输信道在2.4G频段有40个channel。
包括2种物理信道:广播信道和数据信道。
数据帧中设置Access Address用于标识该信道,防止信道碰撞。
Channel MAP如下:数据帧通信蓝牙帧结构如下:Preamble:根据Access Address而定,假如AA的LSB(最右bit)bit为1,则前导便是10101010b,反之则为01010101b。
Access Address:广播帧的AA为:0x8E89BED6。
其他情况可以是一个32bit的随机数。
AA需满足以下条件·不超过连续6个1或者0。
·与广播帧的AA不同bit超过1个。
·不能4byte相同。
·0 1跳变不能超过24次·MSB 6bit 0 1跳变超过2次。
以下逐个介绍PDU。
一、Advertising Channel PDU蓝牙广播帧帧结构其中Header的帧格式如下:其中,a、广播帧类型(PDU Type)分为以下几类:•ADV_IND: connectable undirected advertising event•ADV_DIRECT_IND: connectable directed advertising event•ADV_NONCONN_IND: non-connectable undirected advertisingevent•ADV_SCAN_IND: scannable undirected advertising eventb、Length:3~37bytes广播帧分为很多种,其区别就是payload所代表的意义不同,以下分别对几种广播帧作分别阐释:1、ADV_INDADV_IND的payload格式如下:在广播帧帧头中的TxAdd位是广播地址的标示位:TxAdd==0:AdvA地址为公用地址;TxAdd==1:AdvA地址为随机地址。
AdvData则是广播HOST的广播数据。
2、ADV_DIRECT_IND这种帧用于直接接入的广播事件。
ADV_DIRECT_IND的payload帧格式如下:其中AdvA的意义与ADV_IND相同。
InitA为广播发起者地址:RxAdd==0:发起者地址是公用地址;RxAdd==1:发起者地址是随机地址。
注意:该帧不包含任何HOST数据。
3、ADV_NONCONN_IND用于不可接入不直达(non-connectable undirected)的网络。
其payload意义与ADV_IND 类似。
4、ADV_SCAN_IND用于可扫描不直达网络。
Payload意义与ADV_IND类似。
二、Scaning PDUs1)SCAN_REQ:这是扫描请求帧,处于广播状态的接收设备接收这种帧。
此处,ScanA为扫描者的地址,其地址由TxAdd控制是公共地址还是随机地址。
AdvA为该扫描帧的目的地址。
由RxAdd控制意义。
2)SCAN_RSP扫描确认。
处于广播状态的设备在收到扫描请求后,需要回复扫描确认帧。
AdvA地址意义由TxAdd确定。
ScanRspData为广播端的附带数据。
三、Initiating PDU该部分为连接发起协议。
发起的帧格式仅一种:CONNECT_REQ。
由发起方发送该帧,广播方接收该帧。
1)CONNECT_REQCONNECT_REQ帧格式如下:TxAdd确认InitA地址为公共地址还是随机地址;RxAdd确认AdvA地址为公共地址还是随机地址。
LLData的数据格式如下:AA:AccessAddressCRCInit:CRC校验的初始值,它应该是LinkLayer产生的一个随机值。
WinSize:发送窗长度参数。
transmitWindowSize=WinSize*1.25ms。
WinOffset:发送窗起始偏移量。
TransmitWindowOffset=WinOffset*1.25ms。
上述两个window意义如下:Interval:确定connect interval的时间长度。
connInterval = Interval * 1.25 ms。
Latency:connSlaveLatency =Latency。
TimeOut:connSupervisionTimeout= Timeout * 10 ms(100ms~32s之间),当两帧数据之间的时间间隔超过6*connInterval或者connSupervisionTimeout时,则认为连接丢失。
ChM:即ChannelMAP,一共0~36个信道。
LSB代表channel0,哪一个是1,则哪一个信道有效。
Channel 37~39保留。
Hop:5~16之间的随机值,用于设置HopIncrement。
用于计算不使用的信道编号。
unmappedChannel = (lastUnmappedChannel + hopIncrement) mod 37如果计算结果是属于保留信道,则通过下式计算:remappingIndex = unmappedChannel mod numUsedChannels SCA:设置Master睡眠时钟精确度的最大值。
对应表如下:四、Data Channel PDU数据信道的帧格式如下:其中包括16bit Header,长度可变的Payload,和一个信号完整性确认字段(MIC)。
1、关于Header和MICHeader的数据格式如下:每个字段的意义如下:MIC字段使用的时候,有两个条件:1、不能使用于非加密的数据帧;2、数据帧payload长度不能为0。
字长为4byte。
2、关于PayloadPayload分为两类,LL Data PDU和LL Control PDU(LLID==11b)。
LL Data PDU里面又分为两类,一类是完整数据帧或帧碎片起始帧(LLID==10b),另一类是帧碎片(LLID==01b)。
其中,帧碎片帧的帧长度可以为0,而完整(起始)帧的长度不可以为0。
下面具体介绍LL Control PDU:LL Control PDU的帧格式如下:其帧长度不能为0,其中包含两个字段:Opcode和CtrData。
Opcode用于确定控制帧类型:假如收到的LLC PDU格式不支持或者是无用帧,则回复LL_UNKNOWN_RSP PDU,此时的Type字段需设置成收到的无用的opcode。
LL_CONNECTION_UPDATA_REQ:该帧的帧格式如下:这些信息的意义在下一章的四中有详述。
LL_CHANNEL_MAP_REQ:LL_TERMINATE_IND:这个ErrorCode在蓝牙协议中有具体制定意义。
[Vol2 Part D]LL_ENC_REQ:和加密相关的请求帧LL_ENC_RSP:和加密相关的回复帧LL_START_ENC_REQ:没有CtrData字段LL_START_ENC_RSP:没有CtrData字段LL_UNKNOWN_RSP:LL_FEATURE_REQ:LL_FEATURE_RSP:LL_PAUSE_ENC_REQ:没有CtrData字段LL_PAUSE_ENC_RSP:没有CtrData字段LL_VERSION_IND:LL_REJECT_IND:关于蓝牙通信协议的理解一、时钟要求Active状态下小于±50ppm。
Sleep Mode下小于±500ppm。
二、设备过滤除了仅支持不可连接的广播系统(non-connectable advertising),其他模式均需支持设备过滤。
广播、扫描、连接发起均具有各自独立的过滤机制。
如果芯片不支持这几种模式的话,那就可以不支持设备过滤。
设备过滤是为了尽量减少不必要的数据通信。
设备过滤时需要具备一个白名单,白名单内容包括不过滤设备的地址和地址类型(公共或随机)。
白名单内容由HOST设置。
以下对各种过滤模式作一个介绍:1、广播过滤支持过滤方式如下,一次仅支持一种方式:·广播设备仅处理来自白名单的设备的扫描、连接请求。
·广播设备处理一切设备的扫描、连接请求。
(复位值)·广播设备处理所有设备的扫描请求,仅处理白名单的连接请求。
·广播设备处理所有设备的连接请求,仅处理白名单的扫描请求。
2、扫描过滤支持过滤方式如下:·扫描设备仅处理来自白名单设备的广播帧。
·扫描设备处理一切设备的广播帧。
假如广播方已经过滤该扫描设备的话,通信不能成功。
3、发起过滤支持过滤方式如下:·被发起设备处理来自白名单内所有设备的连接发起请求。
·被发起设备忽略白名单,仅处理host给出设备的连接发起请求。
三、非连接状态简述1、standbyStandby是复位后的芯片初始状态,由它可以进入广播、扫描和连接状态。
2、advertising进入广播状态后,便开始发送广播帧。
在发送完一帧广播帧以后,advertising event将被关闭,来适应其他功能。
广播事件有以下几种类型:第一帧广播帧应该在channel index中的最低的广播信道发送。
广播事件是否有回复帧由广播帧类型决定,具体如下表:当收到错误的返回帧时,广播端会在下一个广播信道发送广播帧,或直接停止广播事件。
广播事件间隔必须是625us的倍数,范围在20ms~10.24s,其设置方式如下:T_advEvent = advInterval + advDelayscannable undirected和non-connectable undirected事件,advInterval长度必须大于100ms;connectable undirected事件,advInterval长度必须大于等于20ms 。
advDelay 是0~10ms的伪随机数。
连续广播帧发送示意图如下:如图4.5接收到CONNECT_REQ之后,广播方便退出广播状态,进入Slave状态。
c)Scannable Undirected Event Typed)Non-connectable Undirected Event Type1、scanning检测状态是用来监听广播帧的,其状态由HOST控制,分为主动扫描和被动扫描。
扫描状态下有两个参数scanWindow、scanInterval用于设置一次扫描的时间。
扫描时间不能长与10.24s,scanWindow<scanInterval。
被动扫描(Passive Scanning):只接收帧,不发送帧。
主动扫描(Active Scanning):监听广播帧,根据广播帧格式,回复相应帧。
ADV_IND/ADV_SCAN_IND -> SCAN_REQADV_DIRECT_IND PDU/ADV_NONCONN_IND不回复SCAN_REQ 扫描需进行退避操作。