蓝牙的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)
喜欢
打印举报
已投稿到:

最新文章

  1. DBCP 配置备注
  2. 【读书笔记《Android游戏编程之从零开始》】4.Android 游戏开发常用的系统控件(EditText、CheckBox、Radiobutton)
  3. js模块化规范
  4. BZOJ 2005: [Noi2010]能量采集 [莫比乌斯反演]
  5. java排序算法(九):归并排序
  6. RHEL6从源码安装python及其他软件包
  7. Deepin linux Compass.app安装
  8. Maven 学习总结 (七) 之 灵活构建
  9. 英语口语练习系列-C15-心情不好
  10. HTTP协议学习(一)
  11. win7 中 sql server2005 卸载简介
  12. JAVA核心技术I---JAVA基础知识(内部类)
  13. MTK NTP和NITZ更新时间的问题
  14. 开源WHMCS支付宝当面付和即时到账插件
  15. (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)
  16. 【转】python:让源码更安全之将py编译成so
  17. 7.0 FileProvide适配
  18. 第三届CCF软件能力认证
  19. 快速排序的C++实现
  20. VisualStudio使用技巧及快捷键

热门文章

  1. 利用keepalived构建高可用MySQL-HA
  2. JS+Zero Clipboard swf复制到剪贴板 兼容浏览器(bind事件绑定函数)
  3. 【转】如何在ASP.NET 2.0中定制Expression Builders
  4. window常用的快捷键
  5. DataSet常用简单方法
  6. C# 创建、部署、调用WebService
  7. js复选框全选反选
  8. js中windows的函数(随机数,计时器的实现)
  9. Maven学习总结(一):基本概念
  10. LintCode2016年算法比赛----二叉树的所有路径