关键词:蓝牙核心技术协议  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="" />
AVCTP能够使音视频设备同一时候支持多个应用框架。每一个应用框架定义了各自对应的消息格式与应用规则。

这部分操作,在现实的应用中也有不足的地方。蓝牙传输的数据量有限,实现这些功能有一定的不足。随着科学技术的发展,蓝牙在无线通信方面的长处、缺点都凸显出来,找的合适的方向。合理的发展方向是硬道理。

蓝牙核心技术概述(五):蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)的更多相关文章

  1. 蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)(转载)

    一.主机控制接口协议  HCI 蓝牙主机-主机控模型 蓝牙软件协议栈堆的数据传输过程: 1.蓝牙控制器接口数据分组:指令分组.事件分组.数据分组(1).指令分组 如:Accpet Connection ...

  2. 蓝牙LMP概述

    LMP 全称是Link Manager Protocol,我们还是要一张图,说明LMP 在哪里? 他是在HCI 以下,baseband 以上,实现在蓝牙控制器中. 按照协议规范,我们分几个部分来分别介 ...

  3. ZT android -- 蓝牙 bluetooth (五)接电话与听音乐

    android -- 蓝牙 bluetooth (五)接电话与听音乐 分类: Android的原生应用分析 2013-07-13 20:53 2165人阅读 评论(9) 收藏 举报 蓝牙android ...

  4. 蓝牙(CoreBluetooth)-概述

    蓝牙(CoreBluetooth)-概述 通过此框架可以让你的Mac和iOS应用程序与外部蓝牙设备通信 外部设备: 就是需要通过iOS App控制器的其他设备: 例如:心率检测仪.数字温控器 蓝牙通讯 ...

  5. ios蓝牙开发(五)BabyBluetooth蓝牙库介绍

    BabyBluetooth 是一个最简单易用的蓝牙库,基于CoreBluetooth的封装,并兼容ios和mac osx. 特色: 基于原生CoreBluetooth框架封装的轻量级的开源库,可以帮你 ...

  6. Java核心技术第五章——1.类、超类、子类(2)

    继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译 ...

  7. 蓝牙baseband概述

    从蓝牙specispecification中看,基带协议主要分为8个部分来介绍的,分别是概述.物理信道.物理连接.逻辑传输.逻辑连接.封包.比特流的处理.组网行为.这里面会涉及到很多的概念,主要是在概 ...

  8. android -- 蓝牙 bluetooth (五)接电话与听音乐

    1.蓝牙耳机接听电话         这个就对应HFP(Hands-freeProfile),Free your Hand,蓝牙的初衷之一.先来看这个功能的场景,手机来电,手机与蓝牙耳机已连接,这时会 ...

  9. 蓝牙(3)如何通过蓝牙传输数据及UUID详介

    如何通过蓝牙传输数据 通过蓝牙传输数据与Socket类似.在网络中使用Socket和ServerSocket控制客户端和服务端的数据读写.而蓝牙通讯也由客户端和服务端Socket来完成.蓝牙客户端So ...

随机推荐

  1. JS模块化开发----require.js

    前言 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前 ...

  2. js滚动加载小插件

    本文实例讲述了jquery滚动加载数据的方法.分享给大家供大家参考.具体分析如下: 少废话直接上代码!!!粗暴,直接,干脆 0//lk-2017-05-04 1(function($, win) { ...

  3. NLP论文泛读之《教材在线评论的情感倾向性分析》

    NLP论文泛读之<教材在线评论的情感倾向性分析> 本文借助细粒度情感分类技术, 对从网络上抓取大量计算机专业本科教材的评价文本进行情感极性 分析, 从而辅助商家和出版社改进教材的质量.制定 ...

  4. 自己动手修改Robotium代码(上)

    Robotium作为Android自动化测试框架,还有许多不完善的地方,也不能满足测试人员的所有要求.那么,本文以四个实际中碰到的问题为例,介绍改动Robotium源码的过程. public bool ...

  5. webpack 3.X学习之Babel配置

    Babel是什么 Babel是一个编译JavaScript的平台,它的强大之处表现在可以通过编译帮你达到: 使用下一代的javascript(ES6,ES7,--)代码,即使当前浏览器没有完成支持: ...

  6. Bitmap.Config 说明 ALPHA_8 ARGB_4444 ARGB_8888 RGB_565

    这篇文章的目的是了解Bitmap.Config 你可以在使用这个方法的时候会遇到 Bitmap android.graphics.Bitmap.createBitmap(int width, int ...

  7. 分布式监控系统Zabbix3.2跳坑指南

    zabbix是什么在此就不多作介绍了,可以参考之前的文章 零代码如何打造自己的实时监控预警系统 ,这篇主要介绍安装及注意事项. 主要分为服务端和客户端安装,客户端又分为Linux.Windows. 服 ...

  8. 对于Hibernate的底层浅谈

    哇,我发现忙起来真的是没有时间来写,最近在学框架,感觉特别有兴趣,对于框架的感激就是又恨又爱的感觉,hibernate,没有研究太深,模拟的写了一点底层的实现,其实就是发射吧,我没有追踪源码去看,就是 ...

  9. Mybatis(三)返回值

    Mybatis返回值 MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则 ...

  10. Java面向对象编程基础

    一.Java面向对象编程基础 1.什么是对象?Object 什么都是对象! 只要是客观存在的具体事物,都是对象(汽车.小强.事件.任务.按钮.字体) 2.为什么需要面向对象? 面向对象能够像分析现实生 ...