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

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

蓝牙控制器与主机

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

蓝牙控制器

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

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

    搞定蓝牙——第二篇(蓝牙架构)_第1张图片

蓝牙主机

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

BLE蓝牙框架

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

你可能感兴趣的:(蓝牙技术,蓝牙)