BLE之Central类介绍

本文介绍CBCentral类在iOS蓝牙开发中如何与远程Central建立连接,包括UUID标识符的变化及其属性,如identifier和maximumUpdateValueLength的作用。

概述

CBCentral类表述了APP端的central设备与本地的peripheral设备连接的过程,就是说:当你实现了CBperipheral类时,central能够使用CBCentral对象类和你取得连接。远端的central设备被唯一的UUID(universally unique identifiers )所指定。这个iUUID在NSUUID对象中有显示。

需要实现的任务:

标识远端的Central

identifier:分配给central的UUID,这个是只读的对象,不能做修改。

maximunUpdateValueLength:指示central接受单个通知或象征的最大数据长度。

UUID:central的UUID,但在IOS 7以后已经被APPLE弃用了,使用identifier代替。

参数(Properties):

idertifier:central的UUID;定义方法为:@property(readonly, nonatomic) NSUUID *identifier,这个是Central唯一的标识符,central的UUID是有peripheral的服务、特性、以及描述来决定的。

maximumUpdateValueLength:central接收单个通知或者象征的数据的最大长度,以byte为单位。具体使用看updateValue:forCharacteristic:onSubscribedCentral:。

其实这个类很简单,最大的不同就是IOS 7之后用idertifier取代了UUID。

<think>我们正在讨论蓝牙低功耗(BLE)中的Central(中央设备)和Peripheral(外围设备)的概念。根据引用内容,我们可以总结如下: 1. BLE是蓝牙技术的一个分支,具有低功耗和简单连接流程的特点,适用于间歇性、小数据包的传输,如传感器数据更新[^1]。 2. 蓝牙4.0规范中引入了BLE,并分为三种模式:高速蓝牙、传统蓝牙和低功耗蓝牙。其中低功耗蓝牙的功耗大大降低,传输距离可达100米以上,连接速度快,安全性高[^2]。 3. 在BLE网络中,Central(中央设备)负责发现Peripheral(外围设备)并与其建立连接。连接建立后,Central会发起服务发现过程,查询Peripheral提供的服务和特征值(Characteristics)。Central还负责发起数据请求并处理Peripheral发送的数据[^3]。 根据上述引用,我们可以详细解释Central和Peripheral的概念: ### Central(中央设备) - **角色**:CentralBLE网络中的主动设备,负责扫描和发现周围的Peripheral设备。 - **主要功能**: - 扫描广播:Central设备通过扫描广播信道来发现正在广播的Peripheral设备。 - 发起连接:当Central发现目标Peripheral后,会向其发起连接请求。 - 服务发现:连接建立后,Central会查询Peripheral所支持的服务(Services)和特征值(Characteristics)。 - 数据交互:Central可以读取或写入Peripheral的特征值,还可以订阅通知(Notify)或指示(Indicate)以接收Peripheral主动发送的数据。 - **典型设备**:智能手机、平板电脑等具有较强处理能力和电源供应的设备通常作为Central。 ### Peripheral(外围设备) - **角色**:Peripheral是BLE网络中的从设备,通常由电池供电,需要低功耗运行。 - **主要功能**: - 广播数据:Peripheral设备通过广播数据包来宣告自己的存在和提供的服务。 - 接受连接:Peripheral设备等待Central设备发起连接请求,接受连接后进入连接状态。 - 提供服务:Peripheral设备提供一组服务,每个服务包含多个特征值,用于数据存储和交互。 - 响应请求:Peripheral设备响应Central设备的读写请求,并在特定情况下(如特征值变化)主动发送通知或指示给Central。 - **典型设备**:心率监测器、温度计、智能手环等低功耗设备通常作为Peripheral。 ### Central与Peripheral交互流程 ```mermaid sequenceDiagram participant Central as Central Device participant Peripheral as Peripheral Device Peripheral->>Central: 广播数据(包含设备信息和服务UUID) Central->>Peripheral: 扫描到广播,发起连接请求 Peripheral-->>Central: 接受连接,建立链路 Central->>Peripheral: 发现服务(Service Discovery) Peripheral-->>Central: 返回服务列表及特征值 Central->>Peripheral: 读取/写入特征值或订阅通知 Peripheral-->>Central: 发送数据(通过通知或指示) ``` ### 关键点总结 1. **角色不对称性**:Central通常具有更强的处理能力和电源,而Peripheral则注重低功耗设计。 2. **连接建立**:连接由Central主动发起,Peripheral只能被连接(在广播状态下)。 3. **数据交互**:数据交互基于GATT(Generic Attribute Profile)协议,通过服务(Service)和特征值(Characteristic)组织数据。 4. **功耗优化**:Peripheral设备大部分时间处于休眠状态,仅在广播或连接事件中唤醒,从而实现低功耗[^1][^2]。 ### 相关问题 §§相关问题§§ 1. BLE连接建立过程中,Peripheral的广播参数(如广播间隔)如何影响设备发现速度和功耗? 2. 在BLE通信中,Central设备如何发现Peripheral提供的所有服务和特征值? 3. Peripheral设备在连接状态下如何实现低功耗? 4. BLE安全配对过程中,Central和Peripheral各自承担什么角色? 5. 一个BLE设备能否同时充当Central和Peripheral角色?如何实现? </think>### 蓝牙低功耗(BLE)中Central与Peripheral概念解析 根据蓝牙协议规范[^1][^2],Central(中央设备)与Peripheral(外围设备)是BLE网络的两种核心角色,其交互构成BLE通信的基础架构: --- #### 🔍 一、**Peripheral(外围设备)** 1. **角色定义** - 作为**数据提供方**,通常由电池供电的低功耗设备担任(如传感器、智能手环)[^1] - 工作模式:通过周期性广播(Advertising)宣告自身存在 - 设备型:单模(Single mode)BLE芯片设备,专为超低功耗优化[^2] 2. **核心行为** ```mermaid graph LR A[上电启动] --> B[广播数据包] B --> C{检测连接请求} C -->|接受| D[建立连接] D --> E[响应数据读写] C -->|拒绝| F[保持广播] ``` - **广播内容**:设备名称、服务UUID、发射功率等 - **连接控制**:接受/拒绝Central发起的连接请求 - **数据服务**:通过GATT协议提供特征值(Characteristics)供读取/订阅[^3] 3. **典型设备** - 健康监测器(心率/血氧) - 环境传感器(温湿度计) - 智能标签(iBeacon) --- #### 📡 二、**Central(中央设备)** 1. **角色定义** - 作为**数据消费方**,通常是资源较丰富的设备(如手机、平板)[^3] - 工作模式:主动扫描(Scanning)广播信道 - 设备型:双模(Dual mode)芯片,兼容经典蓝牙与BLE[^2] 2. **核心行为** ```mermaid graph TB S[启动扫描] --> T{发现Peripheral} T -->|目标设备| U[发起连接] U --> V[服务发现] V --> W[读写数据] W --> X[连接维护] ``` - **服务发现**:连接后获取GATT服务树(Services→Characteristics) - **数据操作**:主动读取特征值或订阅通知(Notify/Indicate) - **链路管理**:控制连接参数(间隔/延迟/超时)[^3] 3. **典型设备** - 智能手机 - 蓝牙网关 - 工业手持终端 --- #### ️ 三、**关键交互特性对比** | 特性 | Peripheral | Central | |--------------------|----------------------------------------|---------------------------------------| | **功耗** | 极低(纽扣电池供电)[^2] | 中等(依赖主电源) | | **主动行为** | 仅广播,被动响应连接 | 主动扫描/发起连接 | | **协议栈复杂度** | 简单(无需维护多连接) | 复杂(支持多设备管理) | | **典型传输方向** | 数据上传(→Central) | 指令下发(→Peripheral) | | **连接角色** | 从设备(Slave) | 主设备(Master) | > **注**:蓝牙4.0+支持角色切换(Role Switching),允许设备在会话中动态切换Central/Peripheral身份[^2]。 --- #### 🔄 四、**通信流程示例** 1. **温度传感器(Peripheral)↔ 手机(Central)** ```mermaid sequenceDiagram Sensor->>+Phone: 广播包(含温度服务UUID) Phone->>Sensor: CONNECT_REQ(发起连接) Sensor-->>Phone: CONNECT_RSP(接受连接) Phone->>Sensor: 发现服务(GATT Discover) Sensor-->>Phone: 返回温度特征值句柄 Phone->>Sensor: 订阅通知(Enable CCCD) Sensor->>Phone: 持续推送温度数据(Notify) ``` - 第6步:CCC(Client Characteristic Configuration)启用后,Peripheral可主动推送更新 --- #### 💡 五、设计意义 1. **功耗优化**:非对称架构使Peripheral 99%时间处于睡眠状态,仅广播/连接时唤醒[^1] $$E_{消耗} = P_{tx} \cdot t_{广播} + P_{rx} \cdot t_{扫描} + P_{sleep} \cdot t_{休眠}$$ 2. **快速连接**:BLE连接建立仅需3ms[^2],适用于瞬时交互场景 3. **资源适配**:角色分工匹配设备能力差异(传感器资源有限 vs 手机资源丰富) --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值