蓝牙的AVCTP协议笔记

(2013-07-31 08:52:41)

标签:

bluetooth

avctp

command

response

分类: Bluetooth
1.概述

    AVCTP协议描述了蓝牙设备间Audio/Video的控制信号交换的格式和机制,它是一个总体的协议,具体的控制信息由其指定的协议(如AVRCP)实现,AVCTP本身只指定控制command和response的总体的格式。
    几个重要的点:
(1)AVCTP uses point-to-point signaling over connection-oriented L2CAP channels.
(2)AVCTP shall be able to support both controller and target functionalities at both sides of the connection.
(3)Between two devices, multiple AVCTP connections may exist. Each AVCTP connection has its own L2CAP channel with its unique PSM value. There shall be only one AVCTP connection per PSM per ACL.
(4)Each AVCTP packet shall be transported on a single L2CAP packet.
(5)不同L2CAP channel上的相同的transaction Label是属于不同的message的。也就是说,两条L2CAP上的packets是没有关系的,不可能属于同一个message。
 
2.AVCTP Message
    如果message的字节数没有超过一个L2CAP的payload的MTU,那么不需要AVCTP Message Fragmentation,这时候一个L2CAP packet中包含一个AVCTP Packet;如果超过了一个L2CAP的payload的MTU,则需要AVCTP Message Fragmentation,这时一个AVCTP Packet可能横跨多个L2CAP的packets。
(1)Non-Fragmented AVCTP Message

PID表示使用的控制协议,如AVRCP等,message
information部分的格式参考PID指定的协议,如AVRCP。也就是说,具体的控制信息内容是根据PID指定的协议的规定来设置的,AVTCP本身不规定这部分的内容,它只规定整个的在AVTCP
连接上传输的massage格式。
Non-Fragmented AVCTP
Message的封装过程如下:
(2)Fragmented AVCTP Message
   
如果AVTCP的message所含的字节数更多,则需要AVCTP Message Fragmentation,它的packrt
format和(1)中 有所不同。


可以看出,第一个开始的Packet稍微复杂些。参数packet_Type指定该Packet是Start的,Continue的还是End的。只在Start
packet中指定Numble of packrts,这是包括Start packetd的。
一个AVCTP Message Fragmentation的包装过程如下:
(3)AVCTP 的Upper interface
    定义了两种service
interfaces:Event registration service
call
Application direct calls for
service
    Event registration
service
call只的是application注册了一些event,当远端的event发生改变时,可以通知application。这需要定义一个entry
point来call back application来处理这些event。
 
  Application direct calls for
service允许application向远端发送请求服务。
(1)Event Registration Service Call

参数Event:

参数Callback:

参数PID:
输出参数Result:
(2)Application Service calls
CONNECT REQUEST:

CONNECT RESPONSE:

DISCONNECT REQUEST:

SEND_MESSAGE:
 

分享:



 

0

喜欢

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

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

  1. ZT 蓝牙的AVDTP协议笔记

    我的电子杂烩饭 http://blog.sina.com.cn/wuchuchu2012 [订阅][手机订阅] 首页 博文目录 图片 关于我 个人资料 Tifnan Qing 微博 加好友 发纸条 写 ...

  2. 蓝牙的AVCTP协议笔记

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

  3. 蓝牙的AVDTP协议笔记

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

  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. LLDP协议、STP协议 笔记

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

  8. MQTT协议笔记之订阅

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

  9. MQTT协议笔记之发布流程

    MQTT协议笔记之发布流程 前言 这次要讲到客户端/服务器的发布消息行为,与PUBLISH相关的消息类型,会在这里看到. PUBLISH 客户端发布消息经由服务器分发到所有对应的订阅者那里.一个订阅者 ...

随机推荐

  1. Java 中 String 的常用方法(二)

    本文介绍剩下的一些常用的 String 中的方法. 1.replace 方法 .replaceFirst 方法和 replaceAll 方法 replace(char oldChar, char ne ...

  2. 【LeetCode题解】144_二叉树的前序遍历

    目录 [LeetCode题解]144_二叉树的前序遍历 描述 方法一:递归 Java 代码 Python 代码 方法二:非递归(使用栈) Java 代码 Python 代码 [LeetCode题解]1 ...

  3. 用Ajax爬取今日头条图片集

    Ajax原理   在用requests抓取页面时,得到的结果可能和浏览器中看到的不一样:在浏览器中可以正常显示的页面数据,但用requests得到的结果并没有.这是因为requests获取的都是原始 ...

  4. 网络IO之阻塞、非阻塞、同步、异步总结【转】

    1.前言 在网络编程中,阻塞.非阻塞.同步.异步经常被提到.unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解.网上有详 ...

  5. SQL Serever学习6——数据表

    数据表 表的构成 数据库中的基本表由记录(行)和字段(列)构成,SQLServer2008每个表可以有1024个列,每个列可以有8060字节(不包括iamge,ntext,text类型). 记录(Re ...

  6. 泛型委托Action与ActionT

    以前都是自己写委托,其实系统内部给我们系统了委托的. Action ——委托的非泛型版本就是一个无参数无返回值的委托. Action<T>——委托的泛型版本是一个无返回值,但是参数个数及类 ...

  7. 二、curator入门

    简介 curator是Apache下开源的项目,它包含了zookeeper的客户端高层级API的实现,并提供了一些常见的用例实现方便我们直接使用.简单来说,使用curator作为zookeeper客户 ...

  8. (二)Apache服务器的下载与安装

    PHP的运行必然少不了服务器的支持,何为服务器?通俗讲就是在一台计算机上,安装个服务器软件,这台计算机便可以称之为服务器,服务器软件和计算机本身的操作系统是两码事,计算机自身的操作系统可以为linux ...

  9. 使用dom4j写xml文件——源码

    1 dom4j下载与配置 1.1 dom4j下载 请移步下载链接 1.2 maven依赖 <dependency> <groupId>org.dom4j</groupId ...

  10. megajson 高性能的json序列化、反序列化工具

    go 自带的 encoding/json 支持json的序列化和反序列化, 然而它是基于反射的,有下面几个缺点: 反射是性能差的代名词, 并且无法在编译时进行优化. 只有 Public 字段才可以,反 ...