关于BLE需要知道的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于BLE需要知道的相关的知识,希望对你有一定的参考价值。
参考技术A蓝牙( Bluetooth® ) 是一种无线技术标准,可实现固定设备、移动设备和个人域网之间的短距离数据交换。如今蓝牙由蓝牙技术联盟(Bluetooth Special Interest Group,简称SIG)管理,负责监督蓝牙规范的开发,管理认证项目,并维护商标权益,制造商的设备也必须符合蓝牙技术联盟的标准才能以“蓝牙设备”的名义进入市场。
泛指支持蓝牙协议在4.0以下的模块,一般用于数据量比较大的传输,如:语音、音乐等。经典蓝牙模块多用在蓝牙音频模块,因为音频需要大码流的数据传输,更适合使用经典蓝牙。
BLE(Bluetooth Low Energy,低功耗蓝牙) 是对传统蓝牙技术的补充。尽管BLE和传统蓝牙都称之为蓝牙标准,且共享射频,但是BLE是一个完全不一样的技术。
BLE不具备和传统蓝牙的兼容性。它是专为小数据率、离散传输的应用而设计的。
蓝牙的波段为2400-2483.5MHz。这是全球范围内无需取得执照(但并非无管制的)的 2.4 GHz 短距离无线电频段。
蓝牙使用跳频技术,将传输的数据分割成数据包,通过79个指定的蓝牙频道分别传输数据包,每个频道的频宽为1 MHz。蓝牙4.0之后使用2 MHz 间距,可容纳40个频道。第一个频道始于2402 MHz,每1 MHz一个频道,至2480 MHz。
高斯频移键控(GFSK)是最初也是唯一可用的调制方案。运行GFSK的设备可以以基础速率(BR)运行,瞬时速率可达1 Mbit/s;增强数据率(EDR)可达2 和 3 Mbit/s。
在蓝牙无线技术中,两种模式(BR和EDR)的结合统称为“BR/EDR射频”。
基本速率:配置文件可确保不同生产商的产品之间具备互操作性,这是蓝牙技术的另一重要特点。
增强数据率:从蓝牙2.1版中增强了短射程无线技术,令蓝牙设备的连接更加容易,只要开启设备并从菜单中选择添加即可完成连接,之后设备将会自动搜索并自动连接。
此项特点带来的优势:
Bluetooth Smart 是2010年推出的一项创新技术,这个特征是以蓝牙核心规格4.0版首次推出,是蓝牙低功耗BLE的品牌名称。
Bluetooth Smart不仅具备低耗能的特点,它还适合应用创建。能耗较低是因为它使用的电能远远少于其它无线技术。适合应用创建,是因为采用这项技术创建适合于蓝牙智能传感器的应用成本较低,并可灵活选择开发结构。
Bluetooth Smart的吞吐量约为1 Mbps (具体还取决于应用场景)。蓝牙BR/EDR的吞吐量大于2Mbps,适合高品质音频位流,或其它需要保持连接状态的更高带宽的应用。
Bluetooth Smart技术特点:
Bluetooth Smart 设备主要应用于智能电子产品中,包括心率监测仪器、体温计、血糖仪、智能穿戴设备、胎压监测和电子烟等。
官方还有 Bluetooth Smart Ready 商标,为双模式射频,表示其同时支持传统蓝牙无线连接和新蓝牙低耗能连接。包括手机、平板电脑、个人电脑、机顶盒及电视机等处于消费者互联世界核心的电子设备,这些设备可有效地接受传统蓝 牙产品和未来推出的蓝牙设备以及BluetoothSmart设备发送的数据并传送至应用软件,从而将数据转换为有用的信息。
目前所有的低功耗应用的相关配置都是基于它而来的,这个配置描述了蓝牙设备具体是如何工作的。
Descriptor:描述Characteristic中的值(值的范围,值的单位,或者其他描述性信息)
提供数据的蓝牙设备向外开放一个Service(以UUID区分,SIG已有 定义 ),服务中有一组Characteristic供其他连接的设备读写。
需要获取数据的设备(Client)连接到提供数据的设备(Server),获取Server提供的服务,然后就可以读写服务中Characteristic的值。Client也可以使能Characteristic的通知,每当Characteristic变化时,Client会接收到通知。
中央设备(Central)和外围设备(Peripheral)区分的标准是是否可以发起连接。中央角色的设备可以向外围设备发起连接,允许设备同时支持两种模式。Bluetooth Smart 4.1开始支持双重模式。
配对对于蓝牙BR/EDR是强制性的,而对于Bluetooth Smart则是选择性的。通常情况下,如果音频设备(如耳机)支持蓝牙4.x,则兼容4.x BR/EDR的规格,而不兼容Bluetooth Smart。也就是说一般蓝牙耳机都要配对后使用。
常规的连接流程是:
注意:外围设备只允许被一个设备连接,中央设备可以连接有限多个外围设备
Server和Client区分是:提供数据作为Server,消费数据作为Client。
标准中Central和Peripheral都可以作为Server/Client。但是一般是外围设备做Server,中心设备做Client。连接后Client即可从Server端获取数据。
为随时可以接受连接请求,Server端启动后就会开放一个GattServer。
数据交换流程:
注意:
基于android写了一个Demo,用手机连接一个手表(可移植到手机),然后点击手表应用时发送一个消息给手机。有兴趣的可以看一下:
信标测距与 BLE 扫描
【中文标题】信标测距与 BLE 扫描【英文标题】:Beacon ranging vs BLE scanning 【发布时间】:2019-08-24 19:03:03 【问题描述】:我试图了解信标测距和 BLE 扫描之间的区别。据我了解,信标测距使用 BLE 扫描来查找信标。最重要的是,它使用信号强度(我不需要)计算信标的接近度。我只需要检测信标(类似于信标监控)。由于 IOS 中的 Always 权限要求,我没有使用信标监控。我知道与测距相比,信标监控得到了高度优化,但我想知道测距与 BLE 扫描相比如何。
我可以使用BLEModule.scanForDevices(UUID)
代替CLLocationManager.startRangingBeacons(region)
来检测信标吗?如果是,我可以在检测到信标时以类似方式获得回调吗?
在电池性能或检测时间等方面这样做有什么缺点吗?
请注意,我愿意在没有接近信息(与信标的距离)的情况下凑合。
还有一个相关的问题:
在 iOS 中是否可以在具有 WhenInUse 权限的情况下在前台使用信标监控?(我在最初的调查中发现了不同的看法)【问题讨论】:
【参考方案1】:您无法使用 Core 蓝牙扫描来检测 iBeacon。您必须使用核心位置并监控 CLBeaconRegion
才能发现 iBeacons。
发现信标后,您无需对其进行范围设置。
如Apple's documentation中所述
重要
应用必须始终具有使用区域监控的授权,并且必须配置位置更新后台模式才能启动。
即使您只希望在应用处于前台时通知信标,您也必须请求始终权限。
【讨论】:
我要补充一点,您不能使用 BLE 扫描的主要原因是 Apple 阻止访问作为 iBeacon 帧的 BLE 数据包的扫描数据有效负载。 CoreBluetooth 实际上使广告数据显示为空(实际上并非如此)。Apple 这样做是为了强制您使用 CoreLocation。 @davidgyoung,感谢您的解释。所以我想在我的应用程序中执行以下操作: 1. 使用信标监控发现 BLE 设备(如果我没有获得 Always 权限,则进行 BLE 扫描) 2. 使用 GATT 与设备交换信息。在这里,该设备旨在成为带有 BLE 芯片的微控制器。可以将 BLE 芯片配置为同时发布信标并公开 GATT 服务吗?这可以在同一个广告包中完成吗? 听起来你只是想识别一个正在宣传 GATT 服务的 BLE 外围设备;不需要 iBeacon。没有简单的方法可以将 iBeacon 发现和 Core 蓝牙外围设备联系起来;信标的 UUID 只是您分配的一个数字,您无法获取信标或 GATT 外围设备的 MAC 地址。 @Paulw11 - 感谢您的回复。信标测距与 BLE 扫描呢?即,如果我想从我的应用程序中发现一个 BLE 设备,我应该从该设备宣传信标并使用信标测距吗?或者我应该通过宣传其 GATT 配置文件来发现该设备。我问这个是因为这是为了从我的应用程序中发现设备,并且在用户进入设备范围并检测到设备之前,测距/扫描可能会持续一天以上。在这种情况下,与信标测距相比,BLE 扫描会影响电池性能吗?以上是关于关于BLE需要知道的的主要内容,如果未能解决你的问题,请参考以下文章