个人资料
Tifnan

加好友 发纸条

写留言 加关注

  • 博客等级:
  • 博客积分:1267
正文 字体大小:

蓝牙的AVDTP协议笔记

(2013-07-30 17:28:00)

标签:

avdtp

bluetooth

command

stream

sep

分类: Bluetooth
1.概述

   AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)是用来描述音频/视频在蓝牙设备间的传输的协议,是A2DP协议的基础协议,其在协议栈中的位置如下:
AVDTP协议建立在connection-oriented L2CAP channel上,只能支持point-to-point signaling。
 
2.一些术语
Stream:represents the logical end-to-end connection of streaming media data (audio or video) between two A/V devices.
Media Packets, Recovery Packets, and Reporting Packets:根据三种不同的数据类型,有这三种数据包。其中,Basic Service会用到Basic service,Report service会用到Reporting Packets,Recovery service会用到Recovery Packets,此外Multiplexing service会用到Media Packets和其余一种或两种Packet。
Stream End Point (SEP):应用程序通过这个接口提供Transport Services and AV capabilities来建立Stream。【是否可以参考网络编程中的端口号??】
Stream Context (SC):两端设备都有的关于Stream的信息。
Stream Handle (SH):主要是暴露给用于程序使用的。【可理解为文件操作的handle吧??】
Stream End Point Identifier (SEID):标识Stream End Point的。
Transport Session:一条stream可以分解为多个transport sessions,每个transport session对应一个AVDTP的packet category ,which means Media, Recovery, or Reporting packets。 
Transport Session Identifier (TSID):标识Transport Session。
Transport Channel:通常和一个L2CAP Channel对应。不用AVDTP Multiplexing Mode时,一条Transport  Channel只传输一个transport session;用transport session的情况下,一条Transport  Channel可以传输多个transport session(media,report或者recovery)。
Transport Channel Identifier (TCID):标识Transport Channel,唯一关联一条L2CAP channel。
 
3.Signaling Procedures
    一个典型的Stream End-point Discovery to Stream Release过程:

State Machine如下,共有5个状态:

一些主要的procedure如下:
Stream End Point Discovery:远端设备提供支持的SEP列表和media
Type。
Get All Capabilities:Using the SEID as a
reference, the local device can query the service capabilities of
the remote SEP。
Stream Configuration:By referencing both the
local and the remote SEID, the local device (the INT) configures
the SEP of the remote device (the ACP)。
Stream Get Configuration:etrieve the last
capabilities settings performed by the remote device on the
SEP。
Stream Establishment:The opening of a transport
session, while referencing the remote SEID, includes, if necessary,
the establishment of a new Transport Channel。
Stream Start:After the Stream Establishment is
complete, the Start Streaming procedure causes the streaming to
start; i.e., Media (Reporting, Recovery) packets can be
exchanged。
Stream Release:initiated by the upper layer
within a device; a signal is sent indicating
that a stream end-point be closed.
Stream Suspend:挂起。
Stream Reconfigure:对Stream进行配置。
Stream Reconfigure:再次配置。
Security Control:对AV data transmitted over a
Bluetooth 提供protection。
Abort:用于两个设备的同步。
General Reject:对包含invalid Signal
Identifier的Command进行的response。
Delay Reporting:provide an initial delay report
required for synchronized audio/video playback。
 
4.Transport Procedures
    分为三种Service:Basic
Service,Reporting Service,Recovery Service和Multiplexing
Service。
Basic Service只提供signaling 和media streaming。Media Packet
Format如下图:

参数定义如下:

Reporting packet格式如下:
注意:如果不使用multiplexing mode ,一个PDU包含一个meida或者reporting或者recovery
packet
每个transport session 使用不同的L2CAP Channel。如果使用Multiplexing
Service,则一个transport channel上可能有好几种transport transport,需要AL header
来进行区分。
4.signaling
message
一个Signal Fragmentation的实例:

Signal command and response headers:

参数Packet Type:

参数Message Type:
 
 

分享:



 

0

喜欢

阅读(325)
评论 (0) 收藏(0)
转载(0)
喜欢
打印举报
已投稿到:

ZT 蓝牙的AVDTP协议笔记的更多相关文章

  1. ZT 蓝牙的AVCTP协议笔记

    蓝牙的AVCTP协议笔记 (2013-07-31 08:52:41) 转载▼ 标签: bluetooth avctp command response 分类: Bluetooth 1.概述     A ...

  2. 蓝牙的AVDTP协议笔记

    1.概述    AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL)是用来描述音频/视频在蓝牙设备间的传输的协议,是A2DP协议的基础协议,其在协议栈中 ...

  3. 蓝牙的AVCTP协议笔记

    1.概述     AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制comm ...

  4. 蓝牙的HFP协议笔记

    1.概述     HFP(Hands-free Profile),可以让蓝牙设备可以控制电话,如接听.挂断.拒接.语音拨号等,拒接.语音拨号要视蓝牙耳机及电话是否支持. HFP定义了音频网关(AG)和 ...

  5. ZT A2DP协议笔记

    A2DP协议笔记 (2013-07-30 10:07:54) 转载▼ 标签: a2dp bluetooth src sink 分类: Bluetooth 1.概述     A2DP(Advanced ...

  6. 蓝牙HID协议笔记【转】

    蓝牙HID协议笔记 转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html 1.概述     The Human Interface Devic ...

  7. A2DP协议笔记

    1.概述     A2DP(Advanced Audio Distribution Profile)是蓝牙的音频传输协议,典型应用为蓝牙耳机.A2DP协议的音频数据在ACL Link上传输,这与SCO ...

  8. LLDP协议、STP协议 笔记

    参考: 数据链路层学习之LLDP 生成树协议 LLDP协议.STP协议 笔记 LLDP 提出背景: 随着网络技术的发展,接入网络的设备的种类越来越多,配置越来越复杂,来自不同设备厂商的设备也往往会增加 ...

  9. MQTT协议笔记之订阅

    前言 记忆不太好的时候,只能翻看以前的文章/笔记重新温习一遍,但找不到MQTT协议有关订阅部分的描述,好不容易从Evernote中找到贴出来,这样整个MQTT协议笔记,就比较齐全了. SUBSCRIB ...

随机推荐

  1. Linux系统快速查找文件

    有时候下载新的文件或安装新的包 但是却搞不清默认放在哪个目录了,这个时候可以使用locate命令进行快速模糊查找 比如我使用 go get github.com/coreos/bbolt/... 在一 ...

  2. 前端自动化Gulp工具常用插件

    npm init命令初始化当前文件夹后,在当前文件夹新建gulpfile.js文件.当前目录下的所有操作流都在gulpfile.js文件中定义. gulp自动化 gulp-uglify (JS压缩) ...

  3. 每天一道剑指offer-二叉树的下一个结点

    题目 每天一道剑指offer-二叉树的下一个结点 https://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a?tpId=13& ...

  4. 问题集录--新手入门深度学习,选择TensorFlow 好吗?

    新手入门深度学习,选择 TensorFlow 有哪些益处? 佟达:首先,对于新手来说,TensorFlow的环境配置包装得真心非常好.相较之下,安装Caffe要痛苦的多,如果还要再CUDA环境下配合O ...

  5. 有关css和js针对不同浏览器兼容的问题

    首先谈一下浏览器,虽然现在ie依然是浏览器市场的老大,大约占有67%的份额,但是由于其各方面的欠缺,用户开始选择其他浏览器作为自己浏览网页的主要 工具,比如firefox.theworld.maxth ...

  6. Cannot find module 'rxjs/operators/share'

    描述: ionic项目,在使用了ngx-translate之后,项目编译完成,运行到浏览器时,出现如下错误: 其中ngx-translate参照官网最新教程使用,并且也尝试了angular4.3之前的 ...

  7. nodejs搭建简易的rpc服务

    这里主要使用的是jayson包,使用jayson实现rpc server端十分简单,如下: var jayson = require('jayson') // create a server var ...

  8. 961 -尺寸2N阵列中的N重复元素

    在一个A大小的数组中2N,有N+1独特的元素,这些元素中的一个重复N次. 返回重复N次的元素. 例1: 输入:[1,2,3,3] 输出:3 例2: 输入:[2,1,2,5,3,2] 输出:2 例3: ...

  9. 文件下载(Servlet/Struts2)

    文件上传(Servlet/Struts2/SpringMVC)的链接:http://www.cnblogs.com/ghq120/p/8312944.html 文件下载 Servlet实现 目录结构 ...

  10. LeetCode GrayCode

    class Solution { public: vector<int> grayCode(int n) { vector<int> res; res.push_back(); ...