• 搞定蓝牙——第二篇(蓝牙架构)


    哪吒跑过去掰扯着她师傅手里的法宝,左看右看,嘴里嘟囔着,这叫蓝牙的法宝怎么这么厉害呢,怎么都看不明白。太乙真人笑眯眯的对她说,来吧,我带你走进蓝牙的时间,让你一窥里面的奥秘。。。

    蓝牙控制器与主机

    在上一篇中讲到了三种蓝牙方案,蓝牙技术是包含了硬件芯片、软件程序。
    蓝牙硬件部分就是射频电路部分,最基本的功能就是将数字信号转换成电磁波发送出去。软件部分要实现的就是将用户要发送的数据按照一定的协议格式封包发给硬件部分发送,需要封包的原因是需要识别数据的类型、用户的一些参数、数据的加密、传输错误的处理等。

    蓝牙控制器

    蓝牙控制器就是上面说的硬件部分,这部分会做成一个单独的芯片或者集成在一个MCU里面。
    目前这种控制器有两类:经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)控制器,其实还有第三种AMP控制器,但是这个控制器在蓝牙5.3版本中弃用了。
    现在目前使用较多的是低功耗蓝牙,因为经典蓝牙虽然速度上会有优势,但是随着低功耗蓝牙的发展,这优势越来越不明显了,而且,低功耗蓝牙功耗比经典蓝牙低很多(低功耗蓝牙学习起来简单)。

    • 双模与单模
      单模控制器就是一块蓝牙芯片只有一个控制器(要么是经典蓝牙,要么是低功耗蓝牙)
      双模控制器就是一块芯片有两个控制器(经典蓝牙+低功耗蓝牙),如下图所示

      单模与双模

    蓝牙主机

    蓝牙主机就是上面说的软件部分了,软件通常会在MCU上运行,控制外设的芯片、蓝牙控制器和蓝牙主机三者组合成了三种方案(第一篇写了)。
    这些程序非常复杂,不过已经有很多开源的程序了,例如google的bluedroid、linux系统的bluez、linux基金会的Nimble(只支持BLE)、BlueKitchen的Btstack。

    BLE蓝牙框架

    BLE蓝牙的框架如下所示。
    BLE蓝牙框架
    图中分为了两大部分(Controller、Host、Application)。
    Controller是硬件部分,也就是控制器的部分,硬件部分只做一个大概的了解,以后的内容主要讲协议栈部分的功能和程序。
    PHY是物理层,将电信号的数据转换成电磁波的形式,通过天线发送出去。
    LL是链路层,该部分非常复杂。负责广播、扫描、建立和维护连接。
    LMP是链路管理层,负责蓝牙设备的通讯,实现两设备通讯的连接、验证、配置等。
    HCI是Host和Controller的通讯接口协议,这部分在Controller是硬件来实现,而在Host有对应的程序实现
    Host是指主机部分,也就是协议栈的部分。这些内容在后面篇幅会一一讲解。

  • 相关阅读:
    MySQL——统计函数count,合计函数sum,(avg,max,min)函数
    Android中蓝牙设备的状态值管理
    微信小程序组件传值
    特种设备怎么运输到国外
    【Java学习Note】第8章 多线程
    Java多线程之线程池(合理分配资源)
    SpringMVC常用注解
    如何理解数据序列化
    可以部署个人大模型的在线平台
    史上第三大收购案,博通以 610 亿美元收购 VMware
  • 原文地址:https://blog.csdn.net/hyh80227/article/details/126549817