低功耗蓝牙(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学习应用笔记1OSAL 学习笔记1-OSAL.C* @fn osal_strlen 计算字符串的长度。
字符串必须空结尾。
* @fn osal_memcpy 一般内存复制* @fn osal_revmemcpy//一般的颠倒内存复制。
从资源缓存的最后开始,通过使用资源地址的指针移动len字节的,然后指针自减。
* @fn osal_memdup//分配一个缓存(和osal_mem_alloc()),并复制这个资源缓存到刚分配好的控件.* @fn osal_memcmp 一般内存比较* @fn osal_memset 设置内存缓存值* @fn osal_rand 产生随机数* @fn osal_msg_allocate 动态分配一个OSAL消息缓存* @fn osal_msg_deallocate 释放一个OSAL消息缓存(接收任务调用)* @fn osal_msg_send 为某个任务发送一个OSAL消息* @fn osal_msg_receive 检索接收命令消息。
* @fn osal_msg_find 发现在一个OSAL消息匹配任务ID和事件参数。
* @fn osal_msg_extract* //从OSAL队列中间提取和移除一个OSAL消息* @fn osal_set_event 为一个任务设置一个OSAL 事件* @fn osal_clear_event 清除一个任务的事件标志。
* @fn osal_init_system OSAL 初始化,必须在主函数中被调用* @fn osal_start_system 开始运行OSAL 主循环* @fn osal_run_system 现至少一个等待事件的第一个任务。
2-OSAL_bufmgr.c* @fn osal_bm_alloc 分配器函数的实现* @fn osal_bm_free 取消分配器函数的实现* @fn osal_bm_adjust_header 调整header* @fn osal_bm_adjust_tail 调整tail3-OSAL_cbtimer.c* @fn osal_CbTimerInit 初始化函数* @fn osal_CbTimerProcessEvent//回调定时器任务事件处理函数* @fn osal_CbTimerStart//当定时器到期,注册调用函数将被调用。
BLE协议栈-学习

BLE协议栈CC2540 and CC2541 Bluetooth low energy softwaredeveloper’s Reference Guide学习TI CC254xBLE协议栈,参考其软件开发手册。
记录一些重要的概念以及API。
本文主要参考资料《CC2540 and CC2541 Bluetooth low energy software developer’s Reference Guide》。
1、状态:2、连接参数:连接间隔:有效连接间隔= 连接间隔* (1 + 从机延时)Effective Connection Interval = (Connection Interval) × (1 + [Slave Latency])Where:• Connection Interval: 80 (100 ms)• Slave Latency: 4• Effective Connection Interval: (100 ms) × (1 + 4) = 500 msWhen no data is sent from the slave to the master, the slave will transmit during a connection event once every 500 ms.从机延时管理超时连接参数更新,由L2CAP层处理,包括的内容有:最小、最大连接间隔、从机延时、超时。
连接参数更新——从机发出更新请求,主机接受更新或拒绝。
3、连接终断:主机、从机任何时间以任何原因都可以终断连接。
4、GAP Abstraction从图中可知道,绝大部分GAP功能在GAP Role 任务中处理,一小部分必须直接由GAP层处理。
配置GAP层:其大部分函数被定义在库代码中,这一部分TI以Lib的形式提供给开发者,开发者看不到具体的代码;可以从gap.h中找到函数头,并且其中大部分的函数在GAP Role任务中调用,不需要开发者直接调用。
BluetoothLE(低功耗蓝牙)

BluetoothLE(低功耗蓝⽛)回顾在本系列的前两篇⽂章中,我们已经了解了⼀些关于Bluetooth LE的背景并建⽴⼀个简单的Activity / Service框架。
在这篇⽂章中,我们将探讨Bluetooth LE的细节以及蓝⽛设备查找的⼀些问题。
扫描并发现蓝⽛设备蓝⽛设备的发现是⼗分简单的,它是⼀个在蓝⽛可见范围内查找设备的过程。
⾸先我们要做的就是在Manifest中添加必要的权限,否则我们将在⼀开始就碰壁。
我们需要的权限是android.permission.BLUETOOTH(⼀般蓝⽛使⽤)和android.permission.BLUETOOTH_ADMIN(额外的任务,如蓝⽛发现)。
在我们深⼊之前,值得说明的是BleService 将作为⼀个状态机,在不同的状态执⾏不同的任务。
这些状态中,我们⾸先要考虑的是扫描状态。
当BleService 接收到⼀个MSG_START_SCAN消息后进⼊扫描状态:private static class IncomingHandler extends Handler {@Overridepublic void handleMessage(Message msg) {BleService service = mService.get();if (service != null) {switch (msg.what) {...case MSG_START_SCAN:service.startScan();Log.d(TAG, "Start Scan");break;default:super.handleMessage(msg);}}}}startScan()⽅法开始扫描:public class BleService extends Service implementsBluetoothAdapter.LeScanCallback {private final Map<String,BluetoothDevice> mDevices =new HashMap<String, BluetoothDevice>();public enum State {UNKNOWN,IDLE,SCANNING,BLUETOOTH_OFF,CONNECTING,CONNECTED,DISCONNECTING}private BluetoothAdapter mBluetooth = null;private State mState = State.UNKNOWN;...private void startScan() {mDevices.clear();setState(State.SCANNING);if (mBluetooth == null) {BluetoothManager bluetoothMgr = (BluetoothManager)getSystemService(BLUETOOTH_SERVICE);mBluetooth = bluetoothMgr.getAdapter();}if (mBluetooth == null || !mBluetooth.isEnabled()) {setState(State.BLUETOOTH_OFF);} else {mHandler.postDelayed(new Runnable() {@Overridepublic void run() {if (mState == State.SCANNING) {mBluetooth.stopLeScan(BleService.this);setState(State.IDLE);}}}, SCAN_PERIOD);mBluetooth.startLeScan(this);}}}⾸先,我们需要确保⼿机上的蓝⽛已启⽤,如果没有则提⽰⽤户打开它。
深入浅出低功耗蓝牙(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)实现。
RC6621D 低功耗蓝牙(BLE)透传协议数据手册说明书

RC6621DQ低功耗蓝牙透传模块数据手册文档信息型号RC6621D备注名称低功耗蓝牙透传模块文档类型数据手册文档编号RCBM-H02版本日期V2.0.02020-10-18版本更新版本号文档日期更新内容V2.0.02020/10/18 第一次发布;注:本文档讲不定期更新,在使用此文档前,请确保为最新版本。
文档中的信息仅供深圳市智汉科技有限公司RF Crazy®的授权用户或许可人使用。
没有深圳市智汉科技有限公司RF Crazy®的书面授权,请勿将本文档或其他部分内容印制或者作为电子文档副本传播。
目录1.产品概述 (1)主要特点 (1)模式默认配置 (2)设备状态 (2)2.工作模式示意图 (3)3.模块尺寸及引脚 (3)4.串口透传协议说明 (5)5.BLE协议说明(APP接口) (5)Service UUID (5)BLE数据接收UUID (5)BLE数据发送UUID (6)AT指令操作UUID (6)6.AT指令 (6)AT命令表 (7)进入AT指令模式 (7)退出AT指令模式 (8)设备名称 (8)MAC地址 (8)串口回显 (9)显示设备状态 (9)广播参数 (10)连接间隔 (10)Service (11)断开连接 (12)自定义广播内容 (12)发射功率 (13)休眠模式 (14)串口波特率 (14)用户鉴权 (15)设备重启 (16)恢复出厂设置 (16)固件版本查询 (16)7.用APP测试透传功能 (16)8.IOS APP编程参考 (19)9.主机(MCU)参考代码(透传) (20)10.使用条件及注意事项 (21)联系我们................................................................................................错误!未定义书签。
附录A:BLE模块应用方案提示. (24)附录B:模块射频参数测试报告 (25)附录C:功耗测试截图 (37)1.产品概述智汉科技RF Crazy®RC6621DQ是基于OnMicro的HS6621D SoC设计开发的高性能、高灵敏、低成本的蓝牙5.2(BLE)模块。
- 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 advertisingevent• ADV_NONCONN_IND: non-connectable undirectedadvertising event• ADV_SCAN_IND: scannable undirected advertising event b、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的伪随机数。
连续广播帧发送示意图如下:a)Connectable Undirected Event Type如图4.5接收到CONNECT_REQ之后,广播方便退出广播状态,进入Slave状态。
b)Connectable Directed Event Typec)Scannable Undirected Event Typed)Non-connectable Undirected Event Type1、scanning检测状态是用来监听广播帧的,其状态由HOST控制,分为主动扫描和被动扫描。
扫描状态下有两个参数scanWindow、scanInterval用于设置一次扫描的时间。
扫描时间不能长与10.24s,scanWindow<scanInterval。
被动扫描(Passive Scanning):只接收帧,不发送帧。