蓝牙iBeacon工作原理

一、 什么是iBeacon

iBeacon技术是Apple公司在2013年9月发布的一种基于BLE蓝牙的通信协议。主要用于短距离传送少量数据。应该场景例如在商场中,当你靠近某个商品时,在不用解锁手机的情况下,会把这个商品的折扣信息推送到你的手机上。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
如上图所示,iBeacon设备一直发送广播数据,广播数据包括UUID,Major和Minor值。UUID为16个字节,major和minor各占两个字节。

名称大小说明
UUID16 字节一个商场中的iBeacon设备都共用一个UUID
Major2 字节商场中的一个商铺占用一个Major
Minor2 字节商铺中的一个商品占用一个Minor

由UUID,Major和Minor就可以定位是在哪个商场,哪个商铺,哪个商品。iBeacon设备并不能广播商品的优惠信息、商品的图片,只是广播了这个商品的ID而已,手机如何获得如上图所示的优惠信息?这就要看下图了
在这里插入图片描述
手机得到商品的ID后,通过ID向云端获取商品的详细信息,例如图片,折扣和其他商品详情。

二、 iBeacon工作原理

iBeacon蓝牙的广播包如下图所示:
在这里插入图片描述
Preamble:固定值01010101b。
Access Address:固定值0x8E89BED6
PDU:分为三个部分Header,Advertiser Address和Data。
Header:包含广播类型等相关信息
Advertiser Address:广播者的地址,该地址又有公共地址和私有地址之分。
Data:广播出去的真正有用信息。该部分信息不能超过31个字节。 在这里插入图片描述
对于iBeacons来说有,其Data部分主要包含了iBeacon Prefix,Proximity UUID,Major,Minor和TX power。从链路层上来说,其数据类型只有两种,如下图所示:
在这里插入图片描述
第一种数据类型为Flags,内容包括Flag Length,Flag Type和Flag Data。Flag Length是指Flag Type和Flag Data的长度(以字节为单位),对于iBeacon来说,很显然Flag Length为0x02。Flag Type根据蓝牙协议为固定值,其值为0x01。Flag Data主要用来表明广播的类型,支不支持传统蓝牙等信息。对于iBeacon来说其值为0x06,其表明该广播不支持BR/EDR,广播模式为一般可发现广播。
第二种为Manufacturer Specific Data,内容包括Manufacturer Specific Data Length,Manufacturer Specific Data Type和Manufacturer Specific Data。Manufacturer Specific Data Length是指Manufacturer Specific Data Type和Manufacturer Specific Data的长度(以字节为单位),从上图可知,很显然其值为26,即0x1A。Manufacturer Specific Data Type根据蓝牙协议为固定值,其值为0xFF。Manufacturer Specific Data有25个字节,分为6种数据,各部分数据解释如下:
Company ID:公司ID,对于苹果公司来说,其ID为0x004C
Beacon Type:固定值,其值为0x1502
Proximity UUID:一般一个商场用同一个UUID,自己定义
Major:一般一个商铺用同一个Major
Minor:一般是一个商品编号
TX power:是指距离iBeacon设备1m测得的信号强度值RSSI。用于测量iBeacon设备的距离。在实际应用中,由于人体或者其他通信阻碍物可能削弱信号,因此这个距离只是一个估算值。实际在测试的过程中,信号强度RSSI会有比较大的波动,对于如何测得比较准确的值,苹果公司给出了相应测试方法(以iphone 5S为例)。
在这里插入图片描述
CRC:用于广播包的校验。其校验多项式为 X24+X10+X9+X6+X4+X3+X+1

手环蓝牙模块是一种用于与智能手机或其他蓝牙设备进行通信的硬件组件。它通过蓝牙技术实现了无线通信功能,使手环能够与其他设备进行数据传输和控制。 手环蓝牙模块的工作原理如下: 1. 蓝牙连接建立:手环蓝牙模块首先需要与目标设备(如智能手机)建立蓝牙连接。这个过程通常是由手环主动发起连接请求,然后目标设备进行配对和连接确认。 2. 数据传输:一旦蓝牙连接建立成功,手环蓝牙模块就可以通过蓝牙协议栈与目标设备进行数据传输。手环可以向目标设备发送传感器数据、用户操作指令等信息,同时也可以接收来自目标设备的控制指令、通知等。 3. 蓝牙协议栈:手环蓝牙模块内部包含了蓝牙协议栈,用于处理蓝牙通信的各个层级。这包括物理层、链路层、协议层和应用层等。通过这些层级的协同工作,手环蓝牙模块能够实现可靠的数据传输和通信控制。 4. 电源管理:手环蓝牙模块通常需要通过电池供电,因此需要进行电源管理。它会根据需要进行功耗优化,以延长电池寿命。例如,在不需要与目标设备通信时,可以进入低功耗模式以节省能量。 总结来说,手环蓝牙模块通过蓝牙技术实现与其他设备的无线通信。它通过建立蓝牙连接、数据传输、蓝牙协议栈和电源管理等步骤,实现了与智能手机或其他蓝牙设备的数据交互和控制功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值