低功耗蓝牙(BLE)学习记录
- 格式:docx
- 大小:1.01 MB
- 文档页数:21
电子工程专辑我们生活在一个幻想与现实辉映、科技与人文交织、个体与整体相融、隐私与透明平衡的空间里。
在万物互联的世界,一切趋向足够出色,且性能完美的可穿戴设备,已然一步步实现在我们的身边。
可穿戴设备通常被定义为物联网技术最直接的落地应用之一,随着创新技术的不断发展,可穿戴设备的形态日趋多样化,带动了整个物联网产业链的商业化延伸,而低功耗蓝牙(BLE)又是可穿戴设备中应用最广泛的无线连接技术。
过去十年间,相关用例从连接电脑外围设备扩展到与可穿戴设备进行全面通信和更多其他应用。
最新版Bluetooth®规范(5.0、5.1、5.2)进一步涵盖了IoT 领域的更多应用。
相较经典蓝牙,BLE在保持同等通信范围的同时,显著降低功耗和成本,是将不同传感器、外围设备和控制设备连接在一起的理想选择。
从智能家居、智慧城市、智能工业等领域,BLE给人类提供了一个无限可能的智能生活场景,在我们身边曾经简朴、分割的一切,现在都开始连接,并且变得智能。
无可否认,在低功耗蓝牙技术的发展和推动下,"人机交互",甚至"人机共生"将成为我们当下和未来生活的常态。
由于低功耗蓝牙智能设备越发强调外形紧凑小巧与高集成度,对其测试测量的方法也因此有了更高的标准,而空口测试(OTA)当仁不让的将获得更多的关注。
但为了优化测试程序,所有方法优势互补才是最佳选择。
蓝牙联盟 (Bluetooth SIG) 通过认证流程的各种测试用例确保设备具备协同工作的能力,以及在其交换中具有合格的质量和性能,完成声明后方可获得蓝牙标签进入市场。
让我们先来先来认识一下针对低功耗蓝牙的几种测试方法:直接测试模式直接测试模式(DTM-Direct Test Mode)是一种用于低功耗蓝牙射频性能测试的模式,也是蓝牙核心规范的一部分,任何符合蓝牙核心规范的芯片都能进行DTM测试。
DTM通过测试仪器直接连接蓝牙设备控制接口,执行测试项目,自动完成和蓝牙模块之间的交互命令和蓝牙参数设定,DTM可以用于研发、预认证和一致性生产之中,是目前符合BlueSig 规范的蓝牙低功耗测试方法。
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蓝牙跳频通信技术可以将可用频点扩展开来,可以容纳更多的设备量,另外还能大大的提高保密性能,其中的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协议栈由多个层级组成,包括物理层(PHY)、链路层(LL)、主机控制器接口(HCI)、主机层(Host)和应用层(Application)。
每个层级负责不同的功能,并通过各自的接口与上下层通信。
物理层是BLE协议栈的最底层,负责将数据转化为无线信号进行传输。
BLE使用2.4GHz频段进行通信,采用频率跳变技术来抵抗干扰和提高传输稳定性。
链路层建立在物理层之上,负责处理与设备之间的连接和数据传输。
它包括广播(Advertisement)和连接(Connection)两种传输模式。
广播模式用于设备之间的发现和配对,而连接模式用于实际的数据传输。
主机控制器接口(HCI)是链路层与主机层之间的接口,负责传输控制命令和事件信息。
主机层负责处理设备的连接管理、数据传输和高层协议等任务。
应用层则是最上层,负责处理具体的业务逻辑和应用程序。
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地址为随机地址。
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)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的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个数据信道之一。
低功耗蓝牙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 更为方便的运用。
赛普拉斯BLE培训要点这次培训主题是赛普拉斯推介针对物联网应用提供的整套解决方案,速率约1Mbps。
主办方现场演示了4个examples并提供了开发套件,会后展示了设计成品(手机端遥控并语音)。
一、开发套件低功耗蓝牙先锋套件(C Y8CKIT-042-BLE,图1和图2)包括:1.调试板:红色大块基板;图 1 图 2图 32.两个单芯片模块(图3):PSoC 4 BLE(红色小模块)和PRoC BLE (黑色小模块);B蓝牙接收器及接线。
●二、两款IC详细介绍1.PSoC 4 BLE:包含48MHz ARM Cortex-M0内核、BLE模块、电容式触摸功能、模拟部分(12位ADC、2个电流型DAC、2个低功耗比较器、4个低功耗运放)、数字模块(4个定时器也可做计数器/PWM用、4个通用数字块、2线串口通讯块)。
2.PRoC BLE:包含48MHz ARM Cortex-M0内核、BLE模块、电容式触摸功能、2线串口通讯块、12位ADC、4个定时器也可做计数器/PWM用、4个额外的PWM、I2S和LCD功能。
●三、会议要点1.BLE当前主要应用于物联网IOT、智能家居领域;2.赛普拉斯采用的蓝牙4.1技术现在支持16个设备;3.赛普拉斯提供可靠且性能优异的电容式触摸按键;4.这两款IC赛普拉斯只量产了128k Flash的型号(不支持蓝牙在线升级),256k还没量产(可支持蓝牙在线升级);5.IC程序本身占用60kb-70kb,更新这些程序用时5min左右;6.BLE主要通过缩短蓝牙轮询时间来降低功耗(待机18.9μA @1sec)7.IC内部集成阻容,简化设计且减小体积;IC外部仍需放置一个1.2pF电容和?H电感;8.这两款IC做了硬件识别,设备名一般识别为:赛普拉斯04b4;9.CapSense Touch Sensing, SmartSense Ato-Tuning;10.I C单价1美元左右,取决于量;11.信号有效范围20米到30米,灵敏度-92dB。
培训资料低功耗蓝牙培训资料:低功耗蓝牙在当今科技飞速发展的时代,蓝牙技术已经成为我们日常生活和工作中不可或缺的一部分。
而低功耗蓝牙(Bluetooth Low Energy,简称BLE)作为蓝牙技术的一个重要分支,更是因其低功耗、低成本、短距离传输等特点,在物联网、智能家居、可穿戴设备等领域得到了广泛的应用。
一、低功耗蓝牙的基本概念低功耗蓝牙是一种短距离无线通信技术,它在传统蓝牙技术的基础上进行了优化和改进,以实现更低的功耗和更高效的数据传输。
与传统蓝牙相比,低功耗蓝牙的最大特点就是功耗低,这使得它能够在使用小型电池供电的设备上长时间运行,例如智能手环、智能手表、蓝牙传感器等。
二、低功耗蓝牙的工作原理低功耗蓝牙采用了一种称为“广播”的通信方式。
设备可以在不建立连接的情况下,周期性地发送广播数据包,其他设备在接收到广播数据包后,可以根据需要决定是否与发送设备建立连接。
这种广播方式大大降低了设备的功耗,因为在大多数时间里,设备都处于睡眠状态,只有在发送或接收数据时才会短暂唤醒。
低功耗蓝牙的连接过程相对简单。
当两个设备需要进行数据传输时,其中一个设备作为主设备发起连接请求,另一个设备作为从设备响应请求。
连接建立后,主设备和从设备可以进行双向的数据传输。
在数据传输过程中,低功耗蓝牙采用了多种节能策略,例如调整传输速率、缩短连接时间等,以进一步降低功耗。
三、低功耗蓝牙的应用场景1、物联网在物联网领域,低功耗蓝牙可以用于连接各种传感器和智能设备,实现数据的采集和传输。
例如,在智能农业中,低功耗蓝牙传感器可以监测土壤湿度、温度、光照等环境参数,并将数据传输到控制中心,实现精准灌溉和施肥。
2、智能家居智能家居是低功耗蓝牙的另一个重要应用领域。
通过低功耗蓝牙,用户可以使用手机或其他智能设备控制家中的智能灯具、智能门锁、智能窗帘等设备,实现家居的智能化和自动化。
3、可穿戴设备智能手环、智能手表等可穿戴设备通常采用低功耗蓝牙与手机等设备进行连接,实现数据同步和通知推送。
1.BLE client和server通俗地说吧,Server(服务器)就是数据中心,Client(客户端)就是访问数据者。
特别说明,它与主/从设备是独立的概念:一个主设备既可以充当Server,又可以充当Client;从设备亦然Server首先将一个服务按“属性/句柄/数值/描述”这种格式予以组织,然后调用API 函数GATTServApp_RegisterService将服务数据进行注册。
举个实例吧,设提供一个电池电量服务字节,它允许Client读取,数据为一个8比特无符号数(0~100%),它的组织如下:02 25 00 19 2A, 这5个数据(小端格式)分别是:0x02=只读属性,0x0025=句柄;0x2A19=服务UUID。
句柄(Handle)就是服务数据在数据中心的地址,当所有的服务数据组织起来后,它总得有个先后顺序,某个服务的位置就是它的句柄。
还是上面的类比,如果想去图书馆借阅《现代操作系统》,需要查明该书在哪一层楼,哪个房间,这就是该书的Hanle大致分三类:读取服务的值,需要知道服务的UUID或者Handle;写服务的值,需要知道服务的Hanle;写服务描述符,需要知道该Descriptor的Hanle。
根据服务的UUID调用API函数GATT_ReadUsingCharUUID协议栈会返回该服务的Handle。
特别注意的是,一个服务的Descriptor的Handle总是该服务的Handle+1,如电池电量服务的Handle是0x0025,那么它的Descriptor的Handle是0x0026蓝牙通信中,Server不能直接访问(读/写)Client,但是可以通知(Notification)Client,通知的前提是Client通过写Descriptor使能通知功能。
例如,某Server发现电池电量已经低于安全阀值,它可以调用GATT_Notification通知所有已连接的Client,但是Client接收后如果处理是它自己的事情。
前言:我认为最优雅的BLE抓包方式应该是启动软件之后,点击开始抓包按钮,然后就能罗列出环境中的BLE设备,然后我选择某一个设备之后就能看到它的任何数据了。
当然还有最重要的一点,那就是能稳定可靠的抓到数据,并对数据进行各个协议层的解析。
遗憾的是市面上大多数BLE Sniffer都达不到这个要求,要么是软件不友好,要么是很难抓到数据,其最根本的原因是这些BLE Sniffer设计原理问题,我们都知道,BLE设备是在37,38,39这3个频道进行广播,有时候是在一个频道广播,有时候是在这3个频道中轮询广播,而这些BLE Sniffer却只能监听某一个频道的数据,或者是轮询监听3个频道的数据,若只监听一个频道的数据,那么就有可能找不到不在这个频道广播的设备,当然用轮询监听3个频道的数据是可以解决这个问题,但是还是会有新的问题,那就是监听BLE设备连接问题,因为BLE设备在建立连接的时候,除了单频道广播的设备,其他多频道广播设备建立连接的频道是不固定的,这样就会导致轮询监听3个频道数据的BLE Sniffer存在丢失数据的可能。
所以这就是为什么市面上大多数BLE Sniffer抓BLE设备的数据非常不可靠,或者是很多时候很难抓到数据的原因。
市面上常见BLE Sniffer对比:Sniffer Price优点缺点Adafruit Bluefruit LE Sniffer $25低价格,使用NordicnRFSniffer(命令行)软件采集数据,使用Wireshark软件解析数据只能监听一个频道的广播包数据,无法可靠抓取设备正常通信数据,Wireshark支持的版本较老,支持的上层协议解析较少TI BLE Sniffer (CC2540EMK-USB dongle)$50低价格,使用较为简单只能监听一个频道的广播包数据,无法可靠抓取设备正常通信数据,使用TI自己的协议解析软件,功能Wireshark强大,显示也没Wireshark友好,而且软件偶尔会崩溃。
A501 BLE快速入门基础目录A5011.BLE概述2.广播、扫描3.连接4.属性数据库5.对属性的基本操作BLE概述A501 BLE与蓝牙4.0的区别蓝牙4.0实际是个三位一体的蓝牙技术,它将三种规格合而为一,分别是传统蓝牙、低功耗蓝牙和高速蓝牙技术,这三个规格可以组合或者单独使用。
单模设备只支持低功耗蓝牙。
双模设备即支持经典蓝牙,又支持低功耗蓝牙。
仅支持经典蓝牙的设备。
BLE概述A501 BLE的应用(未来五年将有十亿的设备需求量)2.4G蓝牙低功耗系统消费类电子产品移动电话外围扩展设备运动和休闲设备健康医疗用品(血压计、体温计……)汽车电子设备人机接口设备(鼠标、键盘、遥控器……)USB DongleBLE概述A501 BLE的体系结构BLE概述A501 BLE设备链路层状态BLE概述A501 信道频率/MHz 信道编号2402 37(广播信道)2404~2424 0~10(数据信道)2426 38(广播信道)2428~2478 11~36(数据信道)2480 39(广播信道)广播A501设备每次广播时,会在3个广播信道上发送相同的报文。
称为一个广播事件。
广播间隔,2次广播事件之间的时间。
广播间隔的取值范围20ms~10.28s链路层会在每两次广播事件期间产生一个随机广播延时时间(0~10ms),避免数据碰撞凡是在广播信道传输的都是广播报文。
广播A501 广播数据最大长度31个字节数据格式,长度:类型:数据020106 06FF32342E3435 050863636363 00000000000000000扫描A501 每次扫描设备打开接收器去监听广播设备,称为一个扫描事件。
扫描事件交替地发生在三个特定的广播信道:37,38,39扫描的两个参数扫描间隔:扫描设备的扫描频率扫描窗口:每次扫描事件的持续时间连接A501连接A501连接请求参数:接入地址----链路层使用CRC初始值----链路层使用连接间隔传输窗口偏移传输窗口大小从设备延迟监控超时信道图调频算法增量休眠时钟精度连接A501连接间隔:一个连接事件是指主设备和从设备之间相互发送数据包的过程。
BLE技术知识点大全BLE(Bluetooth Low Energy)是一种低功耗的无线通信技术,主要用于物联网设备的远程连接。
以下是关于BLE技术的一些知识点:1.BLE的基本原理:BLE是基于蓝牙技术的一种低功耗通信协议,在2.4GHz频段进行通信,使用GFSK调制方式,传输距离通常在10-100米之间。
2.BLE的应用场景:BLE技术广泛应用于物联网设备、智能家居、健康监测、智能手环、智能手表、无线耳机等领域,可以实现设备之间的远程通信和数据传输。
3.BLE的工作模式:BLE有两种工作模式,一种是广播模式,设备以广播的形式发送数据,其他设备可以接收到数据;另一种是连接模式,设备之间建立连接后进行数据传输。
4.BLE的主从模式:BLE设备可以分为主设备和从设备,主设备发起连接和控制从设备,从设备接收并响应主设备的指令。
5. BLE的数据传输方式:BLE使用GATT(Generic Attribute Profile)协议进行数据传输,通过定义服务、特征和描述符来实现数据的读取、写入和通知。
6.BLE的功耗优势:相比传统蓝牙技术,BLE在传输过程中功耗更低,主要通过降低通信速率、减少连接时间和采用快速连接方式来实现。
7.BLE的安全性:BLE使用128位的AES加密算法来保证数据的安全传输,可以防止数据被窃听和篡改。
8.BLE的频谱共存技术:BLE采用频率跳变技术,将通信频率在不同的时间片段进行跳变,以避免和其他无线设备的干扰。
9.BLE与传统蓝牙的区别:BLE相比传统蓝牙具有更低的功耗、更短的连接时间和更简化的协议栈,适合于低功耗设备和短距离通信。
10. BLE的版本:BLE的技术标准由Bluetooth SIG(SpecialInterest Group)制定,目前最新的BLE版本是5.2,不断更新的版本提供了更高的速率、更低的功耗和更广的覆盖范围。
11. BLE Mesh:BLE Mesh是基于BLE技术的一种网络拓扑结构,可以实现设备之间的多对多通信,适用于大规模物联网设备的部署。
低功耗蓝牙BLE (4.0规范)蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。
一般将蓝牙3.0之前的 BR/EDR 蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE 蓝牙称为低功耗蓝牙。
蓝牙4.0标准包括传统蓝牙模块部分和低功耗蓝牙模块部分,是一个双模标准。
低功耗蓝牙也是建立在传 统蓝牙基础之上发展起来的,并区别于传统模块,最大的特点就是成本和功耗降低,应用于实时性要求 比较r 司oBTWBLE 的对比分析:BLE (Bluetooh Low Energy)蓝牙低能耗技术是短距离、低成本、可互操作性的无线技术,它利用许多智 能手段最大限度地降低功耗。
BLE 技术的工作模式非常适合用于从微型无线传感器(每半秒交换一次数据)或使用完全异步通信的遥控 器等其它外设传送数据。
这些设备发送的数据量非常少(通常几个字节),而且发送次数也很少(例如 每秒几次到每分钟一次,甚至更少)。
BLE 协议栈的结构和配置1、协议有两个部分组成:Controller 和Host2、Profiles 和应用总是基于GAP 和GATT 之上传统蓝牙模块(8T vl.0/2.0)高速蓝牙模块(BT v3.0)技术规范 痂电允率 发送散密所* = 响应延时 ⅛MW(BT) 2 4GHZ 10* 100ms 约 100ms低功口魂牙(BLE )2 4GHZ aχιoo* <3ms 6ms安全性 64∕128∙D<t 及用户目定义的应用层128∙bιt AES 及用户目定义的应用层空中传断数品速查1∞% (r ef)1∙3Mt√S1‰50% 1Mb∕S手矶,游戏机.耳机、立体・、邦数JB 流.g PCW手机、游之矶.PC.表、休・0勇、医疗保 使.M 能分金设务,汽至、东用电子等3、在单芯片方案中,Controller和Host, profiles,和应用层都在同一片芯片中4、在网络控制器模式中,Host和Controller是在一起运行的,但是应用和profiles在另外一个器件上,比如PC或者其他微控制器,可以通过UART, USB进行操作5、在双芯片模式中,Controller运行在一个控制器,而应用层,profiles和Host是运行在另外一个控制器上BLE设备连接状态流程图低功耗蓝牙体系结构BLE蓝牙模块主要应用领域1、移动扩展设备2、汽车电子设备3、健康医疗用品:心跳带、血压计等4、定位应用:室内定位、井下定位等5、近距离数据采集:无线抄表、无线遥测等6、数据传输:智能家居室内控制、蓝牙调光、打印机等结语:很多人对蓝牙的认识还很局限于手机领域,其实蓝牙的应用已经远远不止于此。
BLE低功耗蓝牙的优势及典型应用BLE(Bluetooth Low Energy)是一种低功耗蓝牙技术,主要用于在低功耗设备之间进行无线通信。
相较于传统蓝牙技术,BLE有许多优势,同时也有广泛的典型应用。
首先,BLE的优势之一是低功耗和节能。
传统的蓝牙技术在传输数据时需要较大的功耗,而BLE通过频繁地进行短暂的通信交互,可以大大降低能耗。
这使得BLE非常适合于电池供电的设备,如智能手表、健康监测设备和智能家居中的传感器。
其次,BLE的通信距离相对较短,通常在10米内,这有助于减少干扰和提高数据传输的稳定性。
此外,BLE还支持广播模式,可以向附近的设备发送广播消息,这对于广告和位置服务等应用非常有用。
另外,BLE的启动时间非常短,通常在几毫秒内就能与设备建立连接。
这使得BLE非常适合于需要快速响应的应用,如健康监测中的心率检测和运动跟踪。
此外,BLE还具有数据传输速率较高的优势。
虽然传输速率不及传统蓝牙技术,但对于大多数应用来说足够高效,并且可以提供稳定的数据传输。
根据以上的优势,BLE有许多典型的应用。
其中最常见的是物联网(IoT)领域。
物联网设备通常需要低功耗、短距离、快速响应和稳定的数据传输,这正是BLE所能提供的。
因此,物联网中的传感器、智能家居设备和智能手表等都广泛采用BLE技术。
此外,BLE还被广泛应用于健康监测和体育运动领域。
智能手环和智能手表等设备可以通过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: 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 扫描需进行退避操作。