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

news/2024/10/21 6:01:52/

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

蓝牙控制器与主机

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

蓝牙控制器

蓝牙控制器就是上面说的硬件部分,这部分会做成一个单独的芯片或者集成在一个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是指主机部分,也就是协议栈的部分。这些内容在后面篇幅会一一讲解。


http://www.ppmy.cn/news/461300.html

相关文章

[蓝牙] 1、蓝牙核心技术了解(蓝牙协议、架构、硬件和软件笔记)

声明:这篇文章是楼主beautifulzzzz学习网上关于蓝牙的相关知识的笔记,其中比较多的受益于xubin341719的蓝牙系列文章,同时还有其他网上作者的资料。由于有些文章只做参考或统计不足,如涉及版权请在下面留言~。同时我也在博客分类中新建一个蓝牙通信分类,用来研究分享蓝牙相…

蓝牙硬件简介

蓝牙硬件模块由蓝牙协议栈的无线收发器(RF)、基带控制器(BB)和链路管理层(LMP)组成。大多数生产厂家都是利用片上系统技术SOC(System-On-Chip)将这三层功能模块集嵌在同一块芯片上。…

因子分析——SPSS实例分析

【续上篇主成分分析】 因子分析常用于通过可观测变量推断出其背后的公共因子(也称为隐变量),样本在公共因子上的取值变化影响其在可观测变量上的取值,因为一般公共因子的个数小于可观测变量的数目,所以因子分析也可以…

如何引蜘蛛?

大自然的蜘蛛我相信大家都看到过,它是通过网来进行爬取的。而搜索引擎的蜘蛛是通过链接来爬取的。蜘蛛在网页上爬取到一个链接就会把它放到一个单独的数据库。这些数据库都是有特性的,特性就是域名的后缀。 常用的后缀有.net、.org、.com、.cn、.com.cn…

最佳搜索引擎蜘蛛工具

最佳搜索引擎蜘蛛工具 https://tangehao.lanzous.com/iCesgojtzyb

禁止所有搜索引擎蜘蛛的爬行收录

一、在根目录创建robots.txt 文件 1、屏蔽搜索引擎爬取网站代码 User-agent: * Disallow: / 2、允许所有搜索引擎爬取网站代码 User-agent: * Disallow:

N * N螺旋矩阵(以5*5螺旋矩阵为例)

N * N螺旋矩阵(以5*5螺旋矩阵为例) 代码如下: public class NnMatrix {public static void main(String[] args) {test.matrix(5);//直接调用方法} }class test{public static void matrix(int n) {int arr[][] new int[n][n];//定义一个二…

螺旋矩阵(正螺旋和逆螺旋)

package com.classmassage.cn.util;public class Lxjz {/*** question: 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且* 元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。*/public static void main(String[] args) {printMatrix(generate…