蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)
关键词:蓝牙核心技术协议 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,使高层协议同一时候运作在蓝牙和红外的无线链路之上。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
主要操作指令有:连接操作、断开操作、Put操作、Get操作。
1、连接操作 ,操作码0x80
字节0 |
字节1、2 |
字节3 |
字节4 |
字节5、6 |
字节7~n |
0x80 |
连接请求分组长度 |
OBEX版本号号 |
标志 |
client可接收最大的OBEX分组长度 |
可选头 |
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
字节0 |
字节1、2 |
字节3 |
字节4 |
字节5、6 |
字节7~n |
0x80 Connect命令 |
7 |
0x10 |
标志 |
65534 |
可选头 |
连接响应
2、断开操作 操作码为0x81
3、Put操作 操作码为0x02
连接成功后。client通过Put请求向server“推送”对象,假设对象较大,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 获取支持特性
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
(3)、set configuration 配置音频參数
其它指令相似去上面两个的操作。
五、音视频控制传输协议AVCTP
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHViaW4zNDE3MTk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
这部分操作,在现实的应用中也有不足的地方。蓝牙传输的数据量有限,实现这些功能有一定的不足。随着科学技术的发展,蓝牙在无线通信方面的长处、缺点都凸显出来,找的合适的方向。合理的发展方向是硬道理。
蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)的更多相关文章
- 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)
一.主机控制接口协议 HCI 蓝牙主机-主机控模型 蓝牙软件协议栈堆的数据传输过程: 1.蓝牙控制器接口数据分组:指令分组.事件分组.数据分组(1).指令分组 如:Accpet Connection ...
- 蓝牙LMP概述
LMP 全称是Link Manager Protocol,我们还是要一张图,说明LMP 在哪里? 他是在HCI 以下,baseband 以上,实现在蓝牙控制器中. 按照协议规范,我们分几个部分来分别介 ...
- ZT android -- 蓝牙 bluetooth (五)接电话与听音乐
android -- 蓝牙 bluetooth (五)接电话与听音乐 分类: Android的原生应用分析 2013-07-13 20:53 2165人阅读 评论(9) 收藏 举报 蓝牙android ...
- 蓝牙(CoreBluetooth)-概述
蓝牙(CoreBluetooth)-概述 通过此框架可以让你的Mac和iOS应用程序与外部蓝牙设备通信 外部设备: 就是需要通过iOS App控制器的其他设备: 例如:心率检测仪.数字温控器 蓝牙通讯 ...
- ios蓝牙开发(五)BabyBluetooth蓝牙库介绍
BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮你 ...
- Java核心技术第五章——1.类、超类、子类(2)
继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...
- 蓝牙baseband概述
从蓝牙specispecification中看,基带协议主要分为8个部分来介绍的,分别是概述.物理信道.物理连接.逻辑传输.逻辑连接.封包.比特流的处理.组网行为.这里面会涉及到很多的概念,主要是在概 ...
- android -- 蓝牙 bluetooth (五)接电话与听音乐
1.蓝牙耳机接听电话 这个就对应HFP(Hands-freeProfile),Free your Hand,蓝牙的初衷之一.先来看这个功能的场景,手机来电,手机与蓝牙耳机已连接,这时会 ...
- 蓝牙(3)如何通过蓝牙传输数据及UUID详介
如何通过蓝牙传输数据 通过蓝牙传输数据与Socket类似.在网络中使用Socket和ServerSocket控制客户端和服务端的数据读写.而蓝牙通讯也由客户端和服务端Socket来完成.蓝牙客户端So ...
随机推荐
- JS模块化开发----require.js
前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前 ...
- js滚动加载小插件
本文实例讲述了jquery滚动加载数据的方法.分享给大家供大家参考.具体分析如下: 少废话直接上代码!!!粗暴,直接,干脆 0//lk-2017-05-04 1(function($, win) { ...
- NLP论文泛读之《教材在线评论的情感倾向性分析》
NLP论文泛读之<教材在线评论的情感倾向性分析> 本文借助细粒度情感分类技术, 对从网络上抓取大量计算机专业本科教材的评价文本进行情感极性 分析, 从而辅助商家和出版社改进教材的质量.制定 ...
- 自己动手修改Robotium代码(上)
Robotium作为Android自动化测试框架,还有许多不完善的地方,也不能满足测试人员的所有要求.那么,本文以四个实际中碰到的问题为例,介绍改动Robotium源码的过程. public bool ...
- webpack 3.X学习之Babel配置
Babel是什么 Babel是一个编译JavaScript的平台,它的强大之处表现在可以通过编译帮你达到: 使用下一代的javascript(ES6,ES7,--)代码,即使当前浏览器没有完成支持: ...
- Bitmap.Config 说明 ALPHA_8 ARGB_4444 ARGB_8888 RGB_565
这篇文章的目的是了解Bitmap.Config 你可以在使用这个方法的时候会遇到 Bitmap android.graphics.Bitmap.createBitmap(int width, int ...
- 分布式监控系统Zabbix3.2跳坑指南
zabbix是什么在此就不多作介绍了,可以参考之前的文章 零代码如何打造自己的实时监控预警系统 ,这篇主要介绍安装及注意事项. 主要分为服务端和客户端安装,客户端又分为Linux.Windows. 服 ...
- 对于Hibernate的底层浅谈
哇,我发现忙起来真的是没有时间来写,最近在学框架,感觉特别有兴趣,对于框架的感激就是又恨又爱的感觉,hibernate,没有研究太深,模拟的写了一点底层的实现,其实就是发射吧,我没有追踪源码去看,就是 ...
- Mybatis(三)返回值
Mybatis返回值 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则 ...
- Java面向对象编程基础
一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...