杨泽彬的神秘商店

博客园 首页 新随笔 联系 订阅 管理

借此机会整理这些天我到底学习了蓝牙的什么,以及解决一些蓝牙理论学习中遇到的困惑
超级好的蓝牙协议剖析:[]:https://wlink.blog.csdn.net/category_9265860_4.html
只能说认真学过蓝牙才能感觉出这个蓝牙剖析的集合的威力。

蓝牙学习的前置知识

专业名词

信道:传输信息的通道
物理信道(channel):在蓝牙中指的是通过一系列跳频创建的专属频道,是信息传输的真实通道
逻辑信道:定义了传输什么信息
传输信道:定义了用什么方式传输信息
profile: profile可以理解为应用场景、使用方式
protocol:蓝牙中指核心协议栈
PDU:参数数据单元
BR:basic rate
EDR:enhanced data rate
LE:low energy
GAP:generic access profile
GARCP:
L2CAP:
A2DP:Advanced Audio Distribute Profile
SOURCE:发射
SINK:接收
USER scenario:用户可能会遇到的情况
Feature: 特性
OPP:Object Push Profile 对象存储规范 用于传输图片等
LMP: Link Manager Protocol
GOEP:General Object Exchange Profile 通用对象交换规范 可用于将对象从一个设备传输到另一个设备
OBEX:Object Exchange,用于在蓝牙设备间传数据对象
SPP:Serial Port Profile
HSP:
HFP:Hands-freeProfile 免提协议
RFCOMM:无线端口传输协议
A2DP:Advanced Audio Distribute Profile
GACDP:
AVRCP:
AVRTP:
AVCTP:
HID:human interface device
HOGP:HID Over Gatt Profile
MESH:组网
SDP:service discovery profile

架构

蓝牙的技术架构很大,总的(核心)分为三层:

  • Host层:面向用户数据的,我们在工作当中写代码很多时候应该着重关注这层。涉及很多应用相关的蓝牙协议栈(如GAP,A2DP,AVRCP等等)。
  • HCI层:上下两层的对接接口
  • Controller层:实现BR、EDR、LE、AMP等无线信号的固件层 工作中应该主要关注flow的流程而不用太过于纠结于弄懂固件层

host和controller的组合有很多种 最常见的就是host+BR/EDR/LE/AMP

Host层的架构(组成)

Host层由多个块组成,根据蓝牙5.2的标准规范来看组成有:

  1. channel manager
    负责创建、管理、关闭L2CAP的数据流
    主要建立、维护信道
  2. L2CAP resource manager
    管理L2CAP的资源
  3. Security Manager Protocol
    负责加密、鉴权认证那一块
  4. Attribute Protocol
    负责描述蓝牙的属性、提供的服务、特征值,描述符
  5. AMP manager protocol
    负责管理AMP的检测和连接
  6. Generic Attribute Profile
    负责通用GATT的连接(LE)
  7. Generic Access Profile
    负责通用蓝牙的连接

Controller层的架构(组成)

蓝牙数据传输架构

蓝牙的网络架构(结构)

马蹄卡的蓝牙软件架构

马蹄卡在soundbar中主要利用蓝牙的那些特性做哪些应用

蓝牙BR/EDR模式下的常见系统模式和事件(一般做些什么)

Role

Mode

Procedure

蓝牙BR/EDR GAP的具体学习

Role

Mode

Procedure

蓝牙应用层的具体学习

A2DP

Adanved Audio Distribute Profile
专门用于处理音频:音频编解码、加密、传输
定义了一系列协议栈以及程序用来实现高品质单声道、立体声的音频内容在ACL 信道上的分发。

A2DP需要用到的协议集合

AVDTP

AVDTP是A2DP的基础协议 不负责编解码,只负责音频数据传输

AVCTP

(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)
AVCTP也是一个基础协议 是A2DP与AVRCP的适配层

SDP

Service Discovery Protocol
蓝牙协议体系中的核心协议,是蓝牙系统重要组成部分,是所有用户模式的基础。在蓝牙系统中.客户端只有通过服务发现协议才能获得设备信息、服务信息及服务特征,才能在此基础上建立相互间的连接。

L2CAP

Logic link control adapt protocol
蓝牙逻辑链路控制和适配协议

A2DP的架构

  1. 音频设置层
  2. 音频处理层
设置层

有两类服务需要配置
1.应用部分 : 如编码格式,是否加密
2.传输部分 : 各种传输相关的

Role

Source

发送端

Sink

接收端

Mode

  1. setup
  2. process

Procedure

  1. setup
    由SRC发起
  2. process
    也是由SRC发起
    a. encode data
    b. 转换成mediapayload格式 (有需要的话加密)
    c. 交给AVDTP、L2CAP去传输

Codeflow

AVRCP

posted on 2022-07-28 22:36  快乐过了阈值  阅读(275)  评论(0编辑  收藏  举报