【蓝牙AVDTP A2DP协议】

蓝牙AVDTP A2DP

  • 一.AVDTP
    • 1.1 AVDTP概念
    • 1.2 Source Sink整体框架
    • 1.3 AVDTP术语
      • 1.3.2 Stream
      • 1.3.2 SRC and Sink
      • 1.3.3 INT and ACP
      • 1.3.4 SEP:
    • 1.4 AVDTP体系
    • 1.4.1 体系概括
      • 1.4.2 Transport Services
    • 1.5 Signaling Procedures
      • 1.5.1 General Requirements
      • 1.5.2 Transaction Model
      • 1.5.3 Stream Management Signaling Overview
      • 1.5.4 Signal Command Set![请添加图片描述](https://img-blog.csdnimg.cn/45235bb134be40d28ced34f705be63a2.bmp)
    • 1.6 Transport Procedures
    • 1.6.1 Basic Service
    • 1.7 Signaling Messages
      • 1.7.1 数据格式
      • 1.7.2 信令集概括
      • 1.7.3 AVDTP_DISCOVER

一.AVDTP

1.1 AVDTP概念

AVDTP 即 AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL(音视频分配传输协议),主要负责 A/V stream 的协商、建立及传输程序,还指定了设备之前传输A/V stream 的消息格式.
AVDTP的传输机制和消息格式是以 RTP 为基础的。

RTP 由 RTP Data Transfer Protocol (RTP)和 RTP Control Protococl(RTCP)组成。
AVDTP是在L2CAP上传输的。AVDTP有专门的PSM(0x19)值。AVDTP和蓝牙协议栈的结构图:

【蓝牙AVDTP A2DP协议】_第1张图片A/V stream 和 A/V signaling 都在 L2CAP 上传输。通过PSM 建立两条L2CAP通路,1条 Singnaling通路,1条 Streaming Media通路。
Signaling负责stream的发现、配置、建立和传输控制。Stream传输音频。

1.2 Source Sink整体框架

【蓝牙AVDTP A2DP协议】_第2张图片

1.3 AVDTP术语

1.3.2 Stream

音频数据流

1.3.2 SRC and Sink

SRC:Source 发送音频数据的一端。
Sink:接受音频数据的一端。
例如:
手机与耳机:

手机:发送音频数据到耳机,手机是Source。
耳机:接受音频数据,耳机是Sink。

1.3.3 INT and ACP

Initiator (INT) and Acceptor (ACP)

INT和 ACP的角色 与 SRC, ACP无关。
INT 和 ACP是一直在在变的。谁发起命令,谁就是INT.谁接受命令响应,谁就是ACP.

1.3.4 SEP:

Stream End Point 流端点
流端点配置过程示例分为三个步骤:
设备A 发现 设备B 的资源 包括SEID和媒介类型
收集SEP z的应用和传输服务能力
在了解到所有的能力并与自身的能力比较之后,设备A 可以对流 进行配置。

【蓝牙AVDTP A2DP协议】_第3张图片
状态图::
【蓝牙AVDTP A2DP协议】_第4张图片

1.4 AVDTP体系

1.4.1 体系概括

【蓝牙AVDTP A2DP协议】_第5张图片

Singnalling:  命令以及命令响应交互通道
Stream Manager: 流管理组件,一共有以下几种能力:传输流,组合 media 封包,时间戳管理,media
封包序号管理,报告丢包给上层,抖动计算
Recovery: 封包回复组件
Adaptation Layer:适配层

以上所需接口功能:
【蓝牙AVDTP A2DP协议】_第6张图片

1.4.2 Transport Services

AVDTP 一共分为几个传输服务
1)Basic Service (常用)
2)Recovery Service
3)Reporting Service
4)Adaptation Service – Multiplexing
5)Adaptation Service – Robust Header Compression
6)Transport and Signaling Channel Establishmen

Basic Service
基本服务,当基本服务开启的时候只有两个组件可用Signalling ,Stream Manager ,如图:
【蓝牙AVDTP A2DP协议】_第7张图片AVDTP基本服务确保每个会话的媒体数据包在单个传输信道上的传输。该服务提供了一个适当的接口,使应用程序能够流式传输符合传输通道最大大小要求的数据包单元。当通道已成功配置时,此数据包大小限制将返回给应用程序。

后续几种service不常用,暂不讲解

1.5 Signaling Procedures

1.5.1 General Requirements

信令交换,需要先建立ACL连接,然后通过PSM(0x19) 建立L2CAP连接,连接上AVDTP.
【蓝牙AVDTP A2DP协议】_第8张图片

1.5.2 Transaction Model

信令交换方式,遵循L2CAP中的req responed模式。
【蓝牙AVDTP A2DP协议】_第9张图片

1.5.3 Stream Management Signaling Overview

【蓝牙AVDTP A2DP协议】_第10张图片如果 AVDTP Version of ACP >= 1.3 使用Get All Capabilities

使用AVDTP Version of ACP < 1.3 使用Get Capabilities。

1.5.4 Signal Command Set【蓝牙AVDTP A2DP协议】_第11张图片

1.6 Transport Procedures

传输过程需要先前在一对互连设备之间建立的ACL链路。在通信设备之间的链路上可用的面向连接的信道上执行事务。

1.6.1 Basic Service

AVDTP提供给上层的基本服务 信令 和 媒体流。通过PSM(0x19)连接2条 L2CAP链路,1条Singnalling 1条Stream.
【蓝牙AVDTP A2DP协议】_第12张图片

1.7 Signaling Messages

1.7.1 数据格式

【蓝牙AVDTP A2DP协议】_第13张图片
数据格式 :L2CAP Header + SingnallingHeader + Signalling Message
SingnallingHeader格式:
【蓝牙AVDTP A2DP协议】_第14张图片分为三种:单包,开始包,继续包结束包。常用的是单包

Transaction Label(4位): 交易标签Command 传什么 Respond就回什么

Packet Type(2位) :
【蓝牙AVDTP A2DP协议】_第15张图片

Message Type:
【蓝牙AVDTP A2DP协议】_第16张图片

1.7.2 信令集概括

【蓝牙AVDTP A2DP协议】_第17张图片

1.7.3 AVDTP_DISCOVER

每个 AVDTP 端都会注册一个或者多个 SEP,通过 SEID 来表示,这个命令就是获取对端的 SEP 信息,包括 SEID(SEP 的 ID),In Use(是否被使用),MediaType(Audio,Media,MultiMedia),TSEP(角色是 Sink 还是 Source)

流程如下:
【蓝牙AVDTP A2DP协议】_第18张图片命令如下:

Stream End Point Discovery Command: 获取到 remote 端所有的 SEP 的信息
【蓝牙AVDTP A2DP协议】_第19张图片

请添加图片描述
【蓝牙AVDTP A2DP协议】_第20张图片
参数介绍:
(1).SEID :0x01~ 0x3E
【蓝牙AVDTP A2DP协议】_第21张图片
(2).In Use:

【蓝牙AVDTP A2DP协议】_第22张图片

(3).MediaType : 在Assigned_Numbers 中
【蓝牙AVDTP A2DP协议】_第23张图片(4).TSEP: 表示SRC 还是 SNK
【蓝牙AVDTP A2DP协议】_第24张图片

hci log:


后续待定

你可能感兴趣的:(bluetooth,a2dp,avdtp,AVDTP,蓝牙,bt)