蓝牙bt AVCTP精讲之AVCTP 介绍

一.AVCTP

        架构位置:

        

        可以看到AVCTP的位置,其UL为ACRVP,底层则接L2CAP。

        

二.介绍

        

        AVCTP上承AVRCP,下接L2CAP。其本身不做具体的数据定义,主要的作用是利用L2CAP提供的面向连接的信令通道,定义了在TG和CT之间的数据传输方式以及数据包的总格式。为UL AVRCP提供传输方式,并且对AVRCP中定义的各种控制指令进行二次封包后,经过L2CAP传输给对方。比较需要注意的点如下:

        ①其由L2CAP 建立channel,使用signaling channel进行数据传输

        ②TG和CT双方都需要支持AVCTP

        ③在两个设备之间,多AVCTP连接是存在的。每一个AVCTP连接都需要建立自己的L2CAP signaling channel 以及独有的PSM值。一个AVCTP对应一个PSM对应一个ACL

       

三.封包格式

        两种封包格式:

        一种不需要分割:

        

           

                很明显,不需要分割的封包大小size小于L2CAP MTU。

        需要分割的封包:

        

        

        

        可以看到三个包类型,Packet_type不一样。Packet_type为01的为起始包,其中多了一个8字节字段Number of AVCTP Packets,代表本次发送一共有多少个AVCTP包。后面的Packet_type为10,Packet_type为11则分别对应继续包和结束包了。

四.空包分析

        举一个AVCTP包例子如下:

        这个包为CT 通过AVRCP发送播放命令给TG。

        右边框图中,红色为AVCTP封包定义。蓝色和绿色就是AVRCP的数据结构了。红框具体的数据结构定义请自查手册。

        可以了解到,AVCTP只是一个搬运工,加点自己的修饰,就通过L2CAP往下层传输。

五.空包连接分析

        ①通过L2CAP建立signaling channel,确定INT和ACP两边的CID

        

        ②AVRCP发送Get Capabilities command获取ACP的能力集

        

        在这一层中,更能体现AVCTP的位置,只是对AVRCP进行一个二次封包动作。

        至此,CT与TG之间已经正常连接通讯了

        ③发送设置音量指令

        

        

       

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值