关键词:蓝牙核心技术协议 irDA BNEP AVDTP AVCTP
作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢!)
欢迎指正错误,共同学习、共同进步!!
下载链接:Bluetooth PROFILE SPECIFICATIONS (基本涵盖所有蓝牙协议)、buletooth core 2.1-4.0 SPECIFICATION(三蓝牙版本的核心协议v2.1\v3.0\v4.0)、蓝牙核心技术与应用 马建仓 版(蓝牙协议相关初学者必读,开发者参考)
蓝牙核心技术概述(一):蓝牙概述
蓝牙核心技术概述(二):蓝牙使用场景
蓝牙核心技术概述(三): 蓝牙协议规范(射频、基带链路控制、链路管理)
蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)
蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)
一、IrDA互操作协议
IrOBEX 红外对象交互协议,简称OBEX,使高层协议同时运作在蓝牙和红外的无线链路之上。
主要操作指令有:连接操作、断开操作、Put操作、Get操作。
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 | 标志 | 65534 | 可选头 |
连接响应
2、断开操作 操作码为0x81
3、Put操作 操作码为0x02
连接成功后,客户端通过Put请求向服务器“推送”对象,如果对象较大,Put请求可以用多个Put请求分组。
4、Get操作操作码为0x03
二、音频与电话控制协议
1、框架部分
蓝牙音频如上图协议栈所示:音频通过基带传输同步面向连接分组实现,没有以规范的形式给出,不是协议栈的一部分。
TCS_Binary是一种基于分组电话控制二进制编码指令集,位于L2CAP之上。实现蓝牙无绳电话、对讲机功能。
RFCOMM用于AT指令,拨号上网、蓝牙耳机、耳麦、传真通过AT发送指令控制。
2、音频部分
64kbps电信级语言质量音频流
CVSD continuous variable slope delta 连续可变斜率增量。
PCM pulse code modulation 。
PCM存在斜率效应。CVSD使用音节压缩算法,编码步长根据信号斜率变化自动调整,是现在比较好的编码方案,提高语言的抗干扰能力。
3、电话控制部分
TCS-Binary电话控制部分。
(1)、电话呼叫
呼叫控制、呼叫建立、呼叫拆除;
(2)、组管理
访问权限请求、分布式配置、快速内部成员访问。
三、网络封装协议 BNEP
BNEP BluetoothNetworkEncapsulation Protocol 网络封装协议。
为了使集成蓝牙技术的电脑、电话、PDA、家用电器等网络设备交换信息,需要在网络层统一数据分组。网络封装协议将来自不同网络的数据分组重新封装,通过L2CAP进行传输。这部分协议感觉在现实中用处不大,有更多简单便捷的方法去实现网络功能。
BNEP支持Ipv4、Ipv6、IPX
四、音视频分发协议AVDTP
AVDTPAudio/Video Distribution Transport Protocol音视频分发传输协议
有关A/V的协议 AVDTP音视频分发传输协议、AVCTP音视频控制传输协议、GAVDP通用音视频分发框架、A2DP高级音频分发框架、AVCRP音视频遥控框架
1、基本概念术语
流stream:流是音视频传输的数据形式,单向传输,在AVDTP中被分为媒介分组。流有句柄HS统一标识。
2、信令
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 |
|
|
这部分信令,实现了蓝牙的A2DP 数据流的控制;
(1)、流的信令管理流程
(2)、get capabilities 获取支持特性
(3)、set configuration 配置音频参数
其他指令类似去上面两个的操作。
五、音视频控制传输协议AVCTP
AVCTP可以使音视频设备同时支持多个应用框架,每个应用框架定义了各自相应的消息格式与应用规则。
这部分操作,在现实的应用中也有不足的地方,蓝牙传输的数据量有限,实现这些功能有一定的不足。随着科学技术的发展,蓝牙在无线通信方面的优点、缺点都凸显出来,找的合适的方向,合理的发展方向是硬道理。