linux系统蓝牙框架

devtools/2024/11/14 19:47:26/

一、前言

本文主要从大框架上介绍linux系统蓝牙功能架构,包括硬件架构以及软件架构。本文将从如下方面展开:
1.硬件选型及连接
2.软件架构。

二、硬件架构及连接

市面上带蓝牙功能的消费电子主要是采用soc + 无线模组的硬件架构。很多无线模组都集成了蓝牙和wlan的功能,市面上常见的无线模组厂有正基、海华、络达、中科蓝讯、杰理等等。
框架如下:
在这里插入图片描述

(2-1)
如上图,soc和bt模组主要有4条连接线:用于通信以及音频数据传输的uart、传输语音数据的pcm、使能脚、唤醒脚。
如果忽略掉模组的功能,其实就是一个soc + mcu的架构。在蓝牙中采用的是host-controller的术语来描述这种架构。其中soc是host,module是controller。

三、软件架构

第二节从硬件上描述了蓝牙功能架构,本节将介绍linux系统软件层面的架构。软件架构如下图所示:
在这里插入图片描述

(3-1)
上图清晰简介的呈现了soc + module架构下linux系统的软件架构。下面加详细介绍每个部分的功能:

bt module:

上面介绍过,蓝牙模组本质上就是个mcu,其主要处理无线数据的收发。module的固件一般是由无线芯片的原厂开发的。

soc:

kernel层:
从2-1中的连接框图中可以看出,soc主要通过4种接口和bt模组进行连接的。在kernel层的主要工作就是将soc上的uart、pcm以及相关io bring up,以便后续应用能够正常使用这些接口。

stack层:
蓝牙协议栈是蓝牙spec的具体实现,这是蓝牙功能的核心,一般也是由蓝牙芯片厂来实现的。蓝牙协议栈暴露接口给上层的应用去调用。

app层:
app层就是开发人员接触的最多的层面,其作用是通过直接或间接的去调用蓝牙协议栈提供的接口去组织出具体的功能。一般包括控制流和数据流以及客制化的需求。


http://www.ppmy.cn/devtools/115587.html

相关文章

redisson实现分布式锁

文章目录 什么是redisson?主要特点主要功能使用场景开发者友好总结 redisson实现分布式锁1. 添加依赖2. 配置 RedissonClient3. 获取并使用锁注意事项 锁超时处理1. 自动超时设置2. 动态设置超时时间3. 监控锁的状态4. 使用可重入锁注意事项 看门狗机制如何工作?实…

上海市计算机学会竞赛平台2024年7月月赛丙组子集归零

题目描述 给定 nn 个数字 a1,a2,,…,ana1​,a2​,,…,an​,请统计能从 11 到 nn 中,选出多少种不同的下标子集,使得这些下标对应的数字之和等于 00。 注意空集与全集也是子集中的一种。 输入格式 第一行,单个整数表示 nn第二行…

状态模式:将对象行为与状态解耦

状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态改变时改变其行为,使对象看起来好像修改了其类。 状态模式的核心思想是将对象的行为封装在不同的状态对象中,每个状态对象都代表了对象在某一特定状…

【25.5】C++智能交友系统

实现男生女生自动匹配的功能 void autoPair(const vector <Boy>& boys, const vector <Girl>& girls) {for (int i 0; i < boys.size(); i) {for (int j 0; j < girls.size(); j) {if (boys[i].satisfied(girls[j]) && girls[j].satisfie…

Git常用命令详解

Git 是一个功能强大的版本控制系统&#xff0c;以下是一些常用的 Git 命令及其解释和案例&#xff1a; 1、配置 git config --global user.name "Your Name"&#xff1a;配置全局用户名。 git config --global user.email "emailexample.com&#xff1a;配置全…

spring boot 定时器配置

1、首先在主类上加EnableScheduling注解 2、在应用类上加Scheduled注解&#xff0c;同时记得添加spring的组件注解Component&#xff0c;不然无法成功

Qt:静态局部变量实现单例(附带单例使用和内存管理)

前言 本文主要写静态局部变量实现的单例以及单例的释放&#xff0c;网上很多教程只有单例的创建&#xff0c;但是并没有告诉我们单例的内存管理&#xff0c;这就很头疼。静态局部变量实现的单例应该是最简单的单例&#xff0c;而且不需要内存管理。 正文 静态局部变量单例&a…

python --PyAibote自动化

官文: https://www.pyaibote.com/ 下载安卓集成环境: 可以看到开发的一些信息