【蓝牙协议栈】精讲蓝牙PCM和URAT

前言

在蓝牙通信中,PCM和UART是两种不同的数据传输接口,用于连接蓝牙模块和其他设备。它们的作用和特点如下:

1. PCM(Pulse Code Modulation)

PCM:(pulse coded modulation)脉冲编码调制,是将模拟信号抽样量化,然后使已量化值变换成代码。通常pcm有4跟信号线:pcm-clk,pcm-sync,pcm-in,pcm-out。在使用pcm之前,应该配置好pcm接口。通常会设定frame sync,bit samples,tristate edge,pcm-sync,Enable GCI mode,Mute等等。市面上有很多codec,分单声道和立体声。举个例子,mc14583是一种单声道的codec,它的作用就是将从mic进来的模拟信号,转换成pcm-in信号,或者将pcm-out的信号变换为模拟信号从spk端输出。

PCM是一种用于传输模拟音频信号的数字编码方法。PCM接口通常用于音频数据的传输,特别是在蓝牙音频设备中。

1.1 主要特点:

  • 音频传输:PCM接口用于传输音频信号,例如语音数据。蓝牙耳机、蓝牙音箱和其他音频设备常常使用PCM接口。
  • 同步传输:PCM是同步传输接口,需要时钟信号来同步数据传输。
  • 数据格式:PCM数据流通常包括时钟信号(CLK)、帧同步信号(FS)和数据信号(DATA)。
  • 采样率和位深度:PCM音频数据可以有不同的采样率和位深度,如44.1kHz、16位等。

1.2 PCM基本工作原理:

脉冲调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输.脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程.

所谓抽样,就是对模拟信号进行周期性扫描,把时间上连续的信号变成时间上离散的信号.该模拟信号经过抽样后还应当包含原信号中所有信息,也就是说能无失真的恢复原模拟信号.它的抽样速率的下限是由抽样定理确定的.在该实验中,抽样速率采用8Kbit/s.

所谓量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示.

一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值.

所谓编码,就是用一组二进制码组来表示每一个有固定电平的量化值.然而,实际上量化是在编码过程中同时完成的,故编码过程也称为模/数变换,可记作A/D.

PCM话音信号先经防混叠低通滤波器,进行脉冲抽样,变成8KHz重复频率的抽样信号(即离散的脉冲调幅PAM信号),然后将幅度连续的PAM信号用"四舍五入"办法量化为有限个幅度取值的信号,再经编码后转换成二进制码.对于电话,CCITT规定抽样率为8KHz,每抽样值编8位码,即共有28=256个量化值,因而每话路PCM编码后的标准数码率是64kb/s.为解决均匀量化时小信号量化误差大,音质差的问题,在实际中采用不均匀选取量化间隔的非线性量化方法,即量化特性在小信号时分层密,量化间隔小,而在大信号时分层疏,量化间隔大.

脉冲调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输.脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。
一个模拟信号经过抽样量化后,得到已量化的脉冲幅度调制信号,它仅为有限个数值。PCM话音信号先经防混叠低通滤波器,进行脉冲抽样,变成8KHz重复频率的抽样信号(即离散的脉冲调幅PAM信号),然后将幅度连续的PAM信号用"四舍五入"办法量化为有限个幅度取值的信号,再经编码后转换成二进制码.对于电话,CCITT规定抽样率为8KHz,每抽样值编8位码,即共有28=256个量化值,因而每话路PCM编码后的标准数码率是64kb/s。
如下图PCM时序:
在这里插入图片描述

1.3 示例:

在蓝牙耳机中,音频数据可以通过PCM接口从蓝牙模块传输到数字信号处理器(DSP),然后经过解码、数字-模拟转换(DAC),最终输出到扬声器。

1.4 PCM

PCM:脉冲编码调制(pulse codemodulation)
是传输语音信号所使用的调制方式。
用途:传输通话时的语音信号。
硬件接口:
在这里插入图片描述

2. UART(Universal Asynchronous Receiver/Transmitter)

UART(通用异步收发传输器)是一种用于串行通信的硬件接口。UART接口常用于数据的异步串行传输,在蓝牙模块和主控制器之间传输控制指令和数据。

2.1 主要特点:

  • 数据通信:UART用于传输数据和控制指令,常用于蓝牙模块与微控制器或其他主设备之间的通信。
  • 异步传输:UART是异步传输接口,不需要时钟信号。数据传输通过起始位和停止位进行同步。
  • 双向通信:UART支持全双工通信,即同时进行数据接收和发送。
  • 常用速率:UART支持多种波特率,如9600、115200等。

2.2 示例:

在一个蓝牙模块和微控制器之间的通信中,UART接口用于传输控制命令(如蓝牙连接、断开、配对等)以及数据(如传感器数据)。

2.3 蓝牙硬件接口概述(以UART接口接出的芯片为例)

在这里插入图片描述
蓝牙与主控部分硬件接口比较简单,分三部分,如上图框图所示:
UART部分:串口,主要负责数据传输;有其他USB、SDIO、PC card等通信;
PCM部分:语言接口,用于通话时语音数据传输;
Power部分:也就是BT模块的电源控制部分,VDD2.8V、PDN、RST。
1、UART:通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter)
硬件接口比较简单,只有RX、DX。UART0用于trout芯片的debug:
在这里插入图片描述

是传输数据的接口,可以传输音频数据和文件数据。
1)、当通过蓝牙和别人互传文件时,就用UART传输。数据传输如下所示:AP通过uart把数据发送到bt芯片中,通过无线发射出去,对方接收到后传给AP侧处理。
在这里插入图片描述

2)、当用蓝牙耳机听音乐时,音频信号也由UART传输。
音乐数据通过uart 传送出去,对方耳机接收到后解码播放。如果是录音数据,则同样传回手机端存储。
在这里插入图片描述

3. 比较

特性PCMUART
主要用途音频数据传输数据和控制指令传输
传输类型同步传输异步传输
数据方向单向或双向(取决于设计)全双工
信号CLK、FS、DATATX、RX
典型应用蓝牙音频设备(耳机、音箱)蓝牙模块与主控设备(微控制器、传感器等)

4. 结论

  • PCM接口主要用于音频数据的传输,在蓝牙音频设备中广泛应用。
  • UART接口主要用于数据和控制指令的传输,在蓝牙模块与微控制器或其他设备之间的通信中广泛应用。

理解这两种接口的作用和特点,有助于选择和设计蓝牙通信设备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537080.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Hybrid接口的基础配置

Hybrid模式是交换机端口的一种配置模式,它允许端口同时携带多个VLAN(虚拟局域网)的流量。Hybrid端口可以指定哪些VLAN的数据帧被打上标签(tagged)和哪些VLAN的数据帧在发送时去除标签(untagged)…

MySQL_数据类型简介

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :&#x1…

QT学习与数据库连接

1.基础 1. 安装最后一个非在线版本 5.14, 没有的话联系我 新建一个.cpp文件 #include <QApplication> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QHBoxLayout> #include <QVBoxLayout> #include <Q…

道路横幅检测数据集 2000张 街道横幅 带标注 voc yolo

项目背景&#xff1a; 城市中的街道横幅通常用于广告宣传、公共通知等目的&#xff0c;但在某些情况下&#xff0c;它们也可能影响交通安全或市容市貌。因此&#xff0c;对街道横幅进行自动化检测不仅可以帮助城市管理机构及时发现并处理不当悬挂的横幅&#xff0c;还可以辅助…

滑坡落石检测数据集

滑坡落石检测数据集 1500张 滑坡落石 带标注 voc yolo 项目背景&#xff1a; 滑坡落石是地质灾害中的一种常见现象&#xff0c;它对人类生活和基础设施构成了严重威胁。及时准确地检测滑坡落石对于预防灾害发生、减少损失至关重要。传统的检测方法往往依赖于人工巡查&#xff…

【Python】高效图像处理库:pyvips

月亮慢慢变圆&#xff0c;日子慢慢变甜。 在图像处理领域&#xff0c;pyvips 是一个轻量级且高效的库&#xff0c;适合处理大规模图像、实现高性能的操作。相较于其他常见的图像处理库如 PIL 或 OpenCV&#xff0c;pyvips 以其低内存占用和出色的速度脱颖而出。本文将介绍 pyv…

第312题|二重积分求旋转体体积(二)|武忠祥老师每日一题

解题思路&#xff1a;先画出图像&#xff0c;再利用旋转体体积计算公式进行解题。 1. 旋转体体积计算公式&#xff1a; 2.点到直线计算公式&#xff1a; 有了上面两条知识储备之后我们开始计算。 第一步&#xff1a;先计算出点到直线的距离&#xff1a; ymx&#xff0c;y-mx…

清理Go/Rust编译时产生的缓存

Go Mac 1T的磁盘频频空间高级&#xff0c;发现是/Users/yourname/Library/Caches/go-build 目录占用了大量空间。 此目录保存来自 Go 构建系统的缓存构建工件。 如果目录太大&#xff0c;请运行go clean -cache。 运行go clean -fuzzcache以删除模糊缓存。 当时直接手工清理了…

【UE5 C++课程系列笔记】01——Visual Studio环境安装

1. 进入Visual Studio 官网&#xff0c;点击下载 下载社区版即可 下载后点击应用程序开始安装 2. 在“工作负荷”中&#xff0c;勾选如下选项 在“单个组件”中&#xff0c;勾选如下选项&#xff1a; 3. 等待下载安装 4. 安装好后&#xff0c;点击“继续但无需代码” 选择“工具…

机器学习-梯度下降实验一

import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split, KFold from sklearn.metrics import mean_squared_error, r2_score from mpl_toolkits.mplot3d import Axes3D # 用于3D图plt.rcParams[fon…

LEAN 赋型唯一性(Unique Typing)之 κ 简化 (κ reduction)

在《赋型唯一性的证明过程简介》 提及到&#xff0c;κ 简化 &#xff08;κ reduction&#xff09;概念的引入&#xff0c;是为了证明&#xff0c;在不考虑 证据不区分&#xff08;Proof Irrelevance&#xff09;的情况&#xff0c;表达式具备唯一常态&#xff08;Unique norm…

基于paddleocr的批量图片缩放识别

说明 在进行ocr文字识别的时候&#xff0c;有时候我们需要使用批量测试的功能&#xff0c;但是有些图片会识别失败或者个别根本识别不出来&#xff0c;这时候我们可以通过对原图片进行缩放&#xff0c;提高图像的分辨率&#xff0c;然后再次识别&#xff0c;这样可以大大提高图…

轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数

示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7,1,2,3,4]示例 2: 输入&#xff1a;nums [-1,-100,3,99], k 2 输出&#xff1a;[3,99,-1,-100] 解释: 向右…

网络安全学习(四)Burpsuite

经过测试&#xff0c;发现BP需要指定的JAVA才能安装。 需要的软件已经放在我的阿里云盘。 &#xff08;一&#xff09;需要下载Java SE 17.0.12(LTS) Java Downloads | Oracle 1.2023版Burp Suite 完美的运行脚本的环境是Java17 2.Java8不支持 看一下是否安装成功&#xff0c…

智慧火灾应急救援:无人机、直升机航拍视角下的火灾应急救援检测数据集代码

智慧火灾应急救援&#xff1a;无人机、直升机航拍视角下的火灾应急救援检测数据集 引言 随着科技的发展&#xff0c;无人机、直升机等飞行器在火灾应急救援中的应用越来越广泛。这些飞行器不仅能快速到达火场&#xff0c;而且可以通过搭载的高清摄像机和其他传感器获取火场的…

编辑器拓展(入门与实践)

学习目标:入门编辑器并实现几个简单的工具 菜单编辑器 MenuItem [MenuItem("编辑器拓展/MenuItem")]static void MenuItem(){Debug.Log("这是编辑器拓展");} } 案例 1&#xff1a;在场景中的 GameObject 设置 1. 设置面板2. 直接创建 GameObject 结构…

jvisualvm工具使用-jvm本地调优(一)

前言&#xff1a; 公司的项目上线后&#xff0c;吞吐量越来越小了&#xff0c;也没有特殊异常抛出&#xff0c;测试环境、预生产又一切正常&#xff0c;反复看了日志&#xff0c;不纠结了&#xff0c;直接把可能影响的因素复制到本地开始jvm调试&#xff0c;随便记录贴个安装教…

linux概述与安装虚拟机

linux 1.Linux 概述 Linux 是一个极具影响力和广泛应用的操作系统。 它起源于芬兰人林纳斯・托瓦兹在大学期间编写的开源内核。Linux 作为一个整体&#xff0c;是免费供用户使用的&#xff0c;具备多用户、多任务、支持多线程的强大特性。 Linux 内核是其核心部分&#xff…

鸿蒙 ArkUI组件二

ArkUI组件&#xff08;续&#xff09; 文本组件 在HarmonyOS中&#xff0c;Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容&#xff0c;而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…

上海餐饮数据分析与可视化

数据下载入口&#xff1a;PandasPyecharts | 上海市餐饮数据分析可视化 - Heywhale.com 数据介绍 类别&#xff1a;餐饮类别的名称&#xff08;如烧烤、美食、粤菜等&#xff09;行政区&#xff1a;餐厅所在行政区的名称&#xff08;如浦东新区、闵行区等&#xff09;点评数&a…