蓝牙协议入门(四)应用层协议

1.irOBEX 红外对象交互协议

irOBEX 红外对象交互协议,简称 OBEX,使高层协议同时运作在蓝牙和红外的无线链路之上。主要操作指令包括:

  • 连接操作
  • 断开操作
  • Put 操作
  • Get 操作

1.1.连接操作

连接操作的操作码为: 0x80。

字节0 字节1、2 字节3 字节4 字节5、6 字节7~n
0x80 连接请求分组长度 OBEX版本号 标志 客户端可接收最大的OBEX分组长度 可选头

下面是一个连接操作的示例:

字节0 字节1、2 字节3 字节4 字节5、6 字节7~n
0x80 Connect命令 7 0x10 flags 65534 可选头

1.2.断开操作

断开操作的操作码为:0x81。

1.3.Put 操作

Put 操作的操作码为:0x02。

1.4.Get 操作

Get 操作的操作码为:0x03。

2.音频与电话控制协议

2.1.协议架构

蓝牙音频如上图协议栈所示:音频通过基带传输同步面向连接分组实现,没有以规范的形式给出,不是协议栈的一部分。
TCS_Binary 是一种基于分组电话控制二进制编码指令集,位于 L2CAP 之上。实现蓝牙无绳电话、对讲机功能。
RFCOMM 用于 AT 指令,拨号上网、蓝牙耳机、耳麦、传真通过 AT 发送指令控制。

2.2.音频部分

64kbps 电信级语言质量音频流
CVSD continuous variable slope delta 连续可变斜率增量。
PCM pulse code modulation
PCM 存在斜率效应。CVSD 使用音节压缩算法,编码步长根据信号斜率变化自动调整,是现在比较好的编码方案,提高语言的抗干扰能力。

2.3.电话控制部分

TCS-Binary 电话控制部分。

  • 电话呼叫

    ​呼叫控制、呼叫建立、呼叫拆除;

  • 组管理

    ​访问权限请求、分布式配置、快速内部成员访问。

3.网络封装协议 BNEP

BNEPBluetooth Network Encapsulation Protocol) 网络封装协议。为了使集成蓝牙技术的电脑、电话、PDA、家用电器等网络设备交换信息,需要在网络层统一数据分组。网络封装协议将来自不同网络的数据分组重新封装,通过 L2CAP 进行传输。BNEP 支持 Ipv4、Ipv6、IPX

4.音视频分发协议AVDTP

AVDTP (Audio/Video Distribution Transport Protocol)音视频分发传输协议。

AVDTP 信令列表:

命令 信令标识符 描述
AVDTP_DISCOVER 0x01 发现设备中的流端点
AVDTP_GET_CAPABILITIES 0x02 获得流端点的信息能力
AVDTP_SET_CONFIGURATION 0x03 对SEP进行配置
AVDTP_GET_CONFIGURATION 0x04 获取SEP当前配置
AVDTP_RECONFIGURE 0x05 对SEP重新配置
AVDTP_OPEN 0x06 成功的配置SEP后,打开流
AVDTP_START 0x07 流被打开:用于开始形成流;流暂停时:用于重新形成流。
AVDTP_CLOSE 0x08 对SEP关闭
AVDTP_SUSPEND 0x09 请求SEP暂停
AVDTP_SECURITY_CONTROL 0x0A 设置设备内容保护、或者请求设备状况信息
AVDTP_ABORT 0x0B 中断正在建立或者传输的过程
AVDTP_GET_ALL_CAPABILITIES
AVDTP_DELAYREPORT

5.音视频控制传输协议AVCTP

AVCTP 可以使音视频设备同时支持多个应用框架,每个应用框架定义了各自相应的消息格式与应用规则。

6.参考链接

蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)