蓝牙AVCTP协议概述
AVCTP(Audio/Video Control Transport Protocol)协议描述了蓝牙设备间
Audio/Video 的控制信号交换的格式和机制,它是一个总体的协议,具体的控制
信息由其指定的协议(如 AVRCP)实现,AVCTP 本身只指定控制 command 和
response 的总体的格式。
AVCTP 是基于 L2CAP 协议的,他有两组 PSM,
AVCTP 封包格式分为两种:
没有被分隔的(小于 L2CAP MTU)
被分隔的(大于 L2CAP MTU)
没有被分隔的 AVCTP
Transaction label field:传输标示,由上层提供
Packet_type field:必须是00,表示没有被分割
C/R:0代表command,1代表response
IPID:在command中为0,在response中0代表正常情况,1代表收到了无效的PID
Profile Identifier (PID):此部分填写 16bit 的 UUID,比如 AVRCP 的 UUID 0x110e后续的 Message Infomation 就是上层协议的数据
被分割的AVCTP数据包格式有三种
Packet_type:开始封包是 01b,继续封包 10b,结束封包是 11b
Number of AVCTP Packets:这个是开始封包才有的,标示整个分隔封包的数量,包含这个开始封包,所以此封包的个数肯定是大于 1 的。