借此机会整理这些天我到底学习了蓝牙的什么,以及解决一些蓝牙理论学习中遇到的困惑
超级好的蓝牙协议剖析:[]: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的标准规范来看组成有:
- channel manager
负责创建、管理、关闭L2CAP的数据流
主要建立、维护信道 - L2CAP resource manager
管理L2CAP的资源 - Security Manager Protocol
负责加密、鉴权认证那一块 - Attribute Protocol
负责描述蓝牙的属性、提供的服务、特征值,描述符 - AMP manager protocol
负责管理AMP的检测和连接 - Generic Attribute Profile
负责通用GATT的连接(LE) - 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.传输部分 : 各种传输相关的
Role
Source
发送端
Sink
接收端
Mode
- setup
- process
Procedure
- setup
由SRC发起 - process
也是由SRC发起
a. encode data
b. 转换成mediapayload格式 (有需要的话加密)
c. 交给AVDTP、L2CAP去传输
Codeflow
AVRCP
本文来自博客园,作者:快乐过了阈值,转载请注明原文链接:https://www.cnblogs.com/black-worrior-2000/p/16528936.html
墨愁前路无知己,天下谁人不识君。