当前位置: 首页 > news >正文

低功耗蓝牙主机与从机四种数据交流方式

第一种:读取

数据流向:主机 → 请求 → 从机 → 响应 → 主机
本质:主机主动查询从机数据的“问答”模式。

  • 过程描述

    1. 主机发起:主机向从机某个特征的句柄发送一个“读取请求”

    2. 从机响应:从机必须回复一个“读取响应”数据包,该数据包中包含了所请求特征的最新值。

  • 关键特性

    • 同步且确认:每次读取都需要一对明确的请求和响应,主机可以立即知道操作是否成功以及获得数据。

    • 主机驱动:数据何时被获取完全由主机决定。

    • 功耗相对较高:如果主机需要频繁获取数据,它必须不断发起请求和接收响应,从机也需要频繁唤醒并回复。

  • 典型应用场景

    • 偶尔查询的状态信息。例如:读取设备名称、读取电池电量百分比、读取设备的序列号、读取某个静态配置参数。


第二种:写入

数据流向:主机 → 指令/请求 → 从机 (→ 确认 → 主机)
本质:主机主动修改或下发数据到从机。

写入操作分为两种类型,可靠性不同:

A. 带响应的写入
  • 过程描述

    1. 主机发起:主机向从机发送一个“写入请求”,其中包含要写入的数据。

    2. 从机确认:从机收到数据后,必须回复一个“写入响应”以确认已成功接收并处理。

  • 关键特性

    • 高可靠性:通过响应确认机制,保证数据可靠送达。如果主机未收到响应,它会认为写入失败并可重试。

    • 速度稍慢:因为需要等待一个往返的确认。

  • 典型应用场景

    • 重要的控制命令或配置。例如:设置闹钟时间、更改设备名称、下发需要保证执行的指令(如“锁门”)。

B. 无响应的写入
  • 过程描述

    1. 主机发起:主机向从机发送一个“写入命令”

    2. 从机沉默:从机收到数据后,不会发送任何确认或回复

  • 关键特性

    • 高效、低功耗:无需等待确认,主机可以连续快速地发送数据包。

    • “尽力而为”的可靠性:数据可能在传输中丢失,而主机和从机都无从知晓。链路层有基础校验,但应用层无确认。

    • 适用于流式或高频数据

  • 典型应用场景

    • 需要快速、连续下发的数据,且可以容忍偶尔丢失。例如:控制玩具小车的实时方向指令、向LED灯发送连续变化的颜色流数据。


第三种:通知

数据流向:从机 → 数据 → 主机
本质:从机主动向主机推送数据的“广播”模式(无需应用层确认)。

这是BLE中实现低功耗数据流的最关键机制。

  • 过程描述

    1. 主机使能:连接后,主机必须先在从机的特定描述符上写入一个使能值,告诉从机:“我准备好接收这个特征的通知了”。

    2. 从机推送:当从机该特征的值发生变化或有新数据时,它会在下一个通信时刻(连接事件)主动向主机发送一个“通知”数据包。

    3. 主机接收:主机被动接收,并不回复任何应用层的确认包

  • 关键特性

    • 从机驱动:数据推送的时机完全由从机(外设)控制,非常符合传感器的工作模式(有数据时才上报)。

    • 极低功耗:主机无需轮询,从机也仅在需要时才通信。

    • 无应用层确认:优点是简单高效,缺点是发送方无法知道对方是否成功收到。数据可靠性由底层的链路层CRC校验和ACK保证,但应用层无重传。

  • 典型应用场景

    • 持续或周期性更新的传感器数据。例如:心率传感器持续推送心率值、温度计定时上报温度、按键状态改变时上报按键事件。


第四种:指示

数据流向:从机 → 数据 → 主机 → 确认 → 从机
本质:带应用层确认的通知,是“可靠”的推送模式。

  • 过程描述

    1. 主机使能:与通知类似,主机需要先写入使能值。

    2. 从机推送:从机发送一个“指示”数据包。

    3. 主机确认:主机在收到指示后,必须回复一个“确认”数据包。

    4. 从机安心:从机只有收到这个确认后,才会认为该数据已被可靠接收,否则会尝试重发。

  • 关键特性

    • 高可靠性:通过应用层的确认机制,确保关键数据必定送达。

    • 功耗略高于通知:因为每次发送都需要一个额外的确认包,增加了通信开销。

    • 顺序保证:在等待前一个指示被确认之前,从机不应发送下一个指示。

  • 典型应用场景

    • 必须确保送达的关键状态或事件。例如:智能锁上报“门已锁死”的状态、医疗设备上报一条重要的警报信息、需要保证顺序的传输。


总结对比表

操作类型发起方确认机制可靠性功耗倾向典型场景
读取主机有(读取响应)较高(需轮询)查询静态信息(电量、名称)
写入(带响应)主机有(写入响应)中等下发重要指令或配置
写入(无响应)主机低(尽力而为)实时控制流(如遥控指令)
通知从机无(仅链路层ACK)中等极低传感器数据流(心率、温度)
指示从机有(应用层确认)最高关键状态/警报(门锁状态)

核心概念关联

  1. 连接事件:所有这些数据传输都发生在预先约定好的、周期性的连接事件时间窗口内。设备在事件外保持睡眠以省电。

  2. CCCD:通知和指示功能能否启用,完全取决于主机是否写入了客户端特征配置描述符。这是主机控制从机推送权限的开关。

  3. MTU 大小:一个数据包能承载的最大字节数。默认约20字节,协商后可增大,影响单次传输数据的效率。

简而言之,BLE的数据传输设计精妙地平衡了功耗、可靠性和实时性。开发者根据数据的重要性、更新频率和方向,从这四种基本操作中选择最合适的一种或组合,即可构建出高效的无线通信应用。

http://www.jsqmd.com/news/172979/

相关文章:

  • MySQL COALESCE 函数使用详解
  • AI Agent的多语言支持:跨语言理解与生成
  • 函数式编程:Lambda 表达式:Compose 的核心。比如 { onClick() },请直接给出一些练习事例出来
  • 基于SMO滑模观测器算法的永磁同步电机无传感器矢量控制
  • 什么是Agentic AI?通俗解释为什么企业都在做智能体
  • nim游戏原理
  • spring项目中业务逻辑涉及异步调用
  • Java CountDownLatch 代码示例:协调多个线程的执行顺序(比赛起跑)
  • 电气设备的发热量计算
  • 试过很多方法没用!怎么让孩子近视度数涨得慢些?
  • Segmentation Fault 调试指南:gdb + ASan + Valgrind 全流程实战
  • 微网优化调度:Matlab + Yalmip 实现之旅
  • 荣膺行业殊荣,iBox以数字科技激活文化传承新生态
  • MATLAB + 深度学习 = 心电图分类神器!完整流程 + 关键代码
  • 北京陪诊机构推荐守嘉陪诊:全链条护航让首都就医更从容 - 品牌排行榜单
  • 2025最新!自考党必看!10个AI论文平台测评与推荐
  • 不止是整理
  • UKB数据库/RAP平台批量下载数据教程
  • javaSE继承随笔
  • 做好孩子视力守护者预防“小眼镜”秘籍在这里
  • 智能一卡通系统配置清单包含管理中心设备、门禁、考勤、访客、通道闸机、梯控、停车场等九大子系统。核心设备包括服务器、管理平台、读卡器等,各子系统通过统一平台实现数据交互与权限管理
  • 云服务器 vs 传统服务器:核心区别与选型指南​
  • 云服务器成本管控:从粗放投入到精细运营
  • 智慧指挥中心建设厂商重磅盘点,成功案例+专业背书,itc保伦股份值得信赖 - 速递信息
  • Java+React全栈开发面试宝典(完整60题)
  • 云服务器架构演进:从虚拟化到容器化与无服务器的跨越
  • 云服务器架构演进:从虚拟化到容器化与无服务器的跨越
  • 2026年AI入门指南:四个学习平台的使用体验 - 速递信息
  • 墨香飘洋:当外国友人执起中国毛笔
  • 基于微信小程序的课程资料共享平台设计与实现