【Android系统蓝牙开发】蓝牙基础知识-蓝牙核心系统架构

2023-11-20

在这里插入图片描述

什么是蓝牙?

在开启基于蓝牙Spec v5.2的学习前,我们先了解下什么是蓝牙?蓝牙在我们日常生活中又存在哪些实际应用呢?
蓝牙无线技术是一种短距离无线通信系统,其核心特性主要是以下三点:

  1. robustness - 鲁棒性,抗干扰能力强
  2. Low power consumption - 低功耗
  3. Low cost - 低成本

蓝牙无线通信有两种类型的系统: Basic Rate(BR) 和 Low Energy(LE).

两者都包含了: 设备发现(device discovery)、连接建立(connection establishment)、连接机制(connection mechanisms)。

对于Basic Rate系统还存在另外两种更好通信速率的选择,Enhanced Data Rate(EDR)和 Alternate Media Access Control (MAC) and Physical (PHY) layer extensions(这一项在我们的实际开发和产品中很少见到,在以后的文章就不会再讲述到AMP)。

现在我们经常会提到的传统蓝牙通常就是指的: BR/EDR
低功耗蓝牙通常就是指的:LE也就是BLE

在数据传输速率方面,Basic Rate系统理论传输速率可以达到721kb/s. 现在使用更多的Enhanced Data Rate理论上的传输速率可以达到2.1Mb/s. 而对于BLE,在协议设计和使用场景上更多是考虑低功耗,从而传输速率也会低于BR/EDR, 虽然物理层面上BLE也可以达到2Mb/s,但实际的应用和芯片设计为了更低的功耗,往往通信速率会比理论低得多,我之前用的一款叫做Ambiq Apollo 2的BLE芯片实际的传输速率也就6KB/s(48kb/s).

蓝牙的核心系统是由两部分构成: Host 和 Controllers.
Host是逻辑的实体概念,位于Host Controllers interface(HCI)之上。
Controller也是一个逻辑实体,位于Host Controllers interface 之下,
而Host Controllers interface主要是定义了Host 与 Controller之间的通信协议。

对于蓝牙核心系统的实现,Controllers部分有且只能有一个Primary Controller,可以有如下几种配置:

  • 一个 BR/EDR Controller,包含Radio,Baseband,Link Manager 以及HCI(可选)
  • 一个LE Controller,包含LE PHY,Link Layer以及HCI(可选)
  • 将BR/EDR和LE 组合进一个Controller
    如下图所示(由于很少用到AMP Controller,请忽略).

在这里插入图片描述
在这里插入图片描述

蓝牙在实际实际产品中又有哪些应用呢?

  1. 在智能手机中通过会基于蓝牙通信技术用于手机与TWS耳机建立连接用于用于音乐播放以及通过蓝牙协议在手机上获取耳机的信息并在手机上进行显示.

在这里插入图片描述

  1. 基于BLE Mesh,在智能家居领域的应用,如下图所示小米小爱音箱和米家LED灯泡都集成了BLE Mesh,实现了基于BLE Mesh的本地一对多控制. 相对WiFi的方式功耗更低.

在这里插入图片描述
在这里插入图片描述

未完待续!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Android系统蓝牙开发】蓝牙基础知识-蓝牙核心系统架构 的相关文章

  • 蓝牙之三-StateMachine

    蓝牙和wifi的管理上都使用到了状态机 该状态机属于分层状态机管理消息 一个状态对应于一个
  • STM32 BlueNRG-1低功耗介绍,包含CPU堆栈恢复和外设恢复

    概述 在消费类电子产品形态中 通常用锂电池 纽扣电池 干电池等设备供电 需要现有供电情况下能连续使用几个月或者1年 而这些供电电源通常只有20 40mAh左右的电 要达到要求的运行时间 通常要求平均功耗在uA级别 芯片正常工作下的工作级别基
  • 蓝牙DA14580学习教程(附开源可编程手环/手表全套学习资料下载地址)

    DA14580学习 DA14580用来干什么 1 超长待机的智能手环 手表和其他智能穿戴设备 2 智能鼠标 键盘 遥控器 触控板 语音和手势识别控制板等 3 计步 如小米手环 活动和睡眠监测器 血压血糖心率监测器 4 多感测器运动电脑平台
  • Bluetooth 蓝牙介绍(七):逻辑链路控制和适配协议规范(L2cap 协议)

    文章目录 前言 L2CAP 特性 前提 术语 常规操作 通道标识符 操作模式 数据包格式 CONNECTION ORIENTED CHANNELS IN BASIC L2CAP MODE CONNECTIONLESS DATA CHANNE
  • 安卓蓝牙广播大全

    android bluetooth 提供了皆如扫描设备 连接设备以及对设备间的数据传输进行管理的类 这些类对蓝牙设备进行功能性管理 蓝牙模块API提供的应用包括了 扫描其它蓝牙设备 通过查询本地蓝牙适配器来匹配蓝牙设备 建立RFCOMM 无
  • [Filco]蓝牙连接键盘

    第一次用蓝牙键盘 断连后的重连太痛苦了 蓝牙里搜不到键盘 搜到了PIN码不知道输入什么 不输入PIN码连接 Filco方法 控制面板 设备和打印机 点击 添加设备 搜索到 Filco 点击下一步 尝试从设备输入 对着数字敲 然后Enter就
  • 蓝牙之十八- bluetooth pair

    蓝牙之十八 bluetooth pair 在蓝牙核心规范2 1之后 蓝牙配对除了传统的PIN Code Pairing方式外 新增了Secure Simple Pairing配对方式 根据核心规范4 2 简单配对主要有两种目的 蓝牙配对过程
  • 蓝牙(二)蓝牙搜索、配对、连接

    1 搜索 从上一节我们可以知道 蓝牙状态发生了改变 并发生了回调 咱们就从回调开始 DevicePickerFragment java 用于蓝牙设置界面的蓝牙配置和管理 Override public void onBluetoothSta
  • pulseaudio使用过程中遇到的问题

    W pulseaudio main c This program is not intended to be run as root unless system is specified E pulseaudio core util c H
  • 红米ac2100 刷openwrt以及刷回记录

    redmiac2100 刷机 参考 手动升级漏洞固件 https wwx lanzoux com i6iqxhqp98f 或者百度网盘链接 https pan baidu com s 1H355Ym9p TLrVOux2w2b7Q 提取码
  • 使用Arduino开发ESP32(22):蓝牙作为客户端使用

    文章目录 目的 基础准备 搜索蓝牙设备 搜索设备 信息查询 连接与交互 总结 目的 ESP32的蓝牙除了作为服务器 从设备 使用还可以作为客户端 主机 使用 这篇文章将对相关内容做个简单说明 基础准备 这篇文章中测试需要先准备一个蓝牙服务器
  • Android 蓝牙开发基本流程

    http blog csdn net q610098308 article details 45248423 此例子基于 Android demo 对于一般的软件开发人员来说 蓝牙是很少用到的 尤其是Android的蓝牙开发 国内的例子很少
  • 蓝牙设备中的Device UUID 与 Service UUID

    Device UUID也可以被称作为DeviceID Android 设备上扫描获取到的 deviceId 为外围设备的 MAC 地址 相对固定 iOS 设备上扫描获取到的 deviceId 是系统根据外围设备 MAC 地址及发现设备的时间
  • Dns.GetHostEntry Method(String) 实际上是做什么的?

    我在文档中找不到任何正确的描述来说明它的实际作用 它是否检查 A 记录或 CNAME 记录或两者都存在 我的理解是 在 NET 4中 如果主机不存在 则会抛出 SocketException 并且我的测试证实了这一点 Dns GetHost
  • Java简单网络IP地址扫描器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想制作自己的 ip 扫描器 扫描本地网络上的可用 ip 就像 Angry IP Scanner 那样 我还想获取一些基本的设备信息
  • Android USB Host API:批量传输缓冲区大小

    我正在编写软件平板电脑之间进行通信 摩托罗拉 Xoom Android 版本 4 0 3 内核版本 2 6 39 4 以及使用 USB Host API 的外围设备由安卓提供 我只使用两种类型的通信 control controlTrans
  • 安卓4.0.3。 USB 主机 - 通过 controlTransfer 发送数据

    我是 Android 新手 刚刚开始使用 Android 4 0 3 启用 USB 主机连接 我正在尝试通过 USB 向相机发送一些信号 假设它应该是相机必须接收的一些字符 例如开始录音 我想通过 controlTransfer 来完成此操
  • 批量传输和 Android USB API

    我有一个程序 我尝试通过 USB 将我的 Android 设备连接到网络摄像头 我在一些事情上遇到了麻烦 即正确传输数据 我尝试过使用bulkTransfer 但似乎无法识别它的使用情况 我一直在尝试寻找可能对我有帮助的例子 例如here
  • 如何在 Apache HttpClient 4.3+ 中设置默认 HttpHost 目标?

    在 Apache HttpClient 4 2 中 可以创建一个DefaultHttpClient并设置一个主机 以便那些制作execute调用不必在输入请求 URI 中提供主机信息 即 HttpHost targetHost new Ht
  • (Flutter) HTTPClient 参数无效:URI 中未指定主机

    目前正在开发一个小应用程序 允许用户查看存储在 Heroku 上的数据库 但是在使用数据库的 URL herokuapp com api 时 我遇到了上述问题 var client createHttpClient var response

随机推荐

  • 外观设计模式

    外观设计模式 根据实际案例分析外观模式 Facade 示例 业务与设计模式落地案例 根据实际案例分析外观模式 Facade 案例 假设一个放电影功能 在播放电影时 需要放下窗帘 打开空调 打开播放机 打开音响 考虑用户观影时间较长时 提供暂
  • frp实现内网穿透(一) 最简配置

    frp实现内网穿透 一 最简配置 内网环境现在可以说非常的普遍 如果连接控制的内网环境设备的话 就变得非常不方便 像端口映射 dmz主机已经不能满足我们的要 不过好在现在实现内网穿透的工具也很多 在这里就记录下一这款配置简单 功能强大的内网
  • 线性代数-初等行变换与初等行矩阵

    定义 初等行变换 在矩阵的行上进行倍加 倍乘 对换变换 初等行矩阵 在单位矩阵上应用初等行变换得到的矩阵 初等行矩阵乘上矩阵 就相当于在矩阵上实施了对应的初等行变换 以矩阵为例 倍加 将第二行乘2加在第三行上 r3 2 r2 r3 所用的初
  • VMWare安装Windows10出现以下问题

    VMWare虚拟机安装Win10出现 Attempting to start up from 直接上图 选择ISO镜像以后 开启虚拟机出现以下界面 等待一会没有操作以后出现以下界面 解决方法 1 关闭虚拟机电源 一定要关闭 2 找到该虚拟机
  • 阿里巴巴为什么不用 ZooKeeper 做服务发现?

    原文地址 https yq aliyun com articles 599997
  • Git 多个GitHub账号配置和多个Hexo博客地址配置

    文章目录 需求场景 方法 TL DR 非图形界面方法 1 生成密钥 2 配置config 3 添加新的 SSH 密钥 到 SSH agent 4 验证配置 5 配置仓库设置 5 1 删除全局配置 5 2 设置local配置 6 示例 6 1
  • Linux-centos花生壳实现内网穿透

    Linux centos花生壳实现内网穿透 官网教程 1 安装花生壳 下载网址 点击复制就可以复制下载命令了 wget https dl oray com hsk linux phddns 5 2 0 amd64 rpm O phddns
  • 递归寻找第n位数字

    编写递归函数digit n j 返回整数n的从右边开始的第j位数字 首先来看非递归法 只需用n 10 j 1 10即可 include
  • linux连接Xshell

    一 下载和安装Xshell 1 下载Xshell 官网下载地址 有时需要科学上网 https www netsarang com en all downloads 点击下载 教育版 2 安装 和软件安装方式一样 二 Xshell连接linu
  • 快乐数(Java)

    编写一个算法来判断一个数 num 是不是快乐数 快乐数 定义为 对于一个正整数 每一次将该数替换为它每个位置上的数字的平方和 然后重复这个过程直到这个数变为 1 也可能是 无限循环 但始终变不到 1 如果 可以变为 1 那么这个数就是快乐数
  • 瀑布流布局2

    要实现瀑布流布局中让图片先排满第一行再排第二行 你可以使用 CSS 的多列布局 CSS multi column layout 来控制 目前你的布局使用了 column count 和 column gap 来定义列数和列之间的间隙 但这会
  • 记一次ElasticSearch 更改 mapping 字段类型的过程

    我的个人博客 逐步前行STEP 首先 es不支持直接更改mappinng 所以 更改 mapping 实质上是重建索引 操作步骤如下 1 为当前这个索引old index设置一个别名my index curl XPOST localhost
  • 数据类型分类

    分为四种类型
  • Java垃圾回收机制(GC)

    一 要回收哪些区域 在JVM内存模型中 有三个是不需要进行垃圾回收的 程序计数器 JVM栈 本地方法栈 因为它们的生命周期是和线程同步的 随着线程的销毁 它们占用的内存会自动释放 所以只有方法区和堆需要进行GC 二 如何判断对象是否存活 1
  • linux 开放端口

    我们可以输入命令查看防火墙的状态 firewall cmd state 如何在CentOS 7下开放8080端口 如果上一步处于关闭状态 输入命令 systemctl start firewalld service 如何在CentOS 7下
  • 计算机毕业设计Node.js+Vue大型零售电商平台——购物车管理子系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • 华硕T100HA鼠标乱跳及点击问题解决

    从入手此平板开始就一直有此问题 一直没有解决 今天正好装系统 就顺便解决此问题 一开始打算给这个平板安装Win7 8 网上说装了之后驱动不适配 就此放弃 然后 将系统恢复出厂设置了 然后问题依然在 在网上一直找啊找 终于在百度帖吧里找到问题
  • 人工智能概念

    人工智能概念 人工智能就是用人工方法在机器 计算机 上实现的智能 或称机器智能 即是研究如何用计算机来表示和执行人类的智能活动 以模拟人脑所从事的推理 学习 思考和规划等思维活动 并解决需要人类的智力才能处理的复杂问题 如医疗诊断 管理决策
  • 两个任意长度的长整数相乘(华为oj,C++)

    pre class cpp include oj h include pre
  • 【Android系统蓝牙开发】蓝牙基础知识-蓝牙核心系统架构

    什么是蓝牙 在开启基于蓝牙Spec v5 2的学习前 我们先了解下什么是蓝牙 蓝牙在我们日常生活中又存在哪些实际应用呢 蓝牙无线技术是一种短距离无线通信系统 其核心特性主要是以下三点 robustness 鲁棒性 抗干扰能力强 Low po