Bluetooth 蓝牙介绍(一) :基础知识 您所在的位置:网站首页 蓝牙的多功能是什么 Bluetooth 蓝牙介绍(一) :基础知识

Bluetooth 蓝牙介绍(一) :基础知识

2023-12-04 03:56| 来源: 网络整理| 查看: 265

蓝牙背景

从1994年由电信商爱立信提出“希望创建一个RS-232数据线的无线通信替代版本,它能够链接多个设备,克服同步的问题”以来,蓝牙经过了20余个岁月的发展,蓝牙技术也经历了五次重要的迭代,目前由SIG(蓝牙技术联盟)来负责维护其技术标准。

第一代:产品处于开发初期,各个厂商版本因为实现不同出现不兼容,地址无法匿名化,通信间无法自适应跳频,速度慢,无错误自恢复等问题也亟须改良。第二代:蓝牙2.0+EDR版加入了“非跳跃窄频通道”(Non-hopping narrowband channel)。因为不需要与每个设备交换应答信号,这种通道可以用来将各种器件的蓝牙服务概要同时广播到巨量的蓝牙器件。实现了更快的连接速度。第三代:蓝牙核心规范3.0版,根据802.11适配层协议应用了Wi-Fi技术,使用一种全新的交替射频技术Generic Alternate MAC/PHY (AMP),他允许蓝牙协议栈针对任何一个任务动态的选择正确的射频。第四代:2010年7月7日,蓝牙技术联盟推出了蓝牙4.0规范。其最重要的特性是支持省电。还提出了“低功耗蓝牙”(BLE)、“传统蓝牙(BT)”和“高速蓝牙”(HS)三种模式。 其中,高速蓝牙主攻数据交换与传输;传统蓝牙则以信息沟通、设备连接为重点;低功耗蓝牙顾名思义,以不需占用太多带宽的设备连接为主。前身其实是NOKIA开发的Wibree技术,本是作为一项专为移动设备开发的极低功耗的移动无线通信技术,在被SIG接纳并规范化之后重命名为Bluetooth Low Energy(后简称低功耗蓝牙)。这三种协议规范还能够互相组合搭配、从而实现更广泛的应用模式。第五代:蓝牙5.0在2016年6月发布。在有效传输距离上将是4.2LE版本的4倍,传输速度将是4.2LE版本的2倍(速度上限为24Mbps)。蓝牙5.0还支持室内定位导航功能(结合WiFi可以实现精度小于1米的室内定位),允许无需配对接受信标的数据(比如广播、Beacon、位置信息等,传输率提高了8倍),针对物联网进行了很多底层优化。

当前的蓝牙技术主要分为BR/EDR(Basic Rate /Enhanced Data Rate)和低耗能(LE)两种技术类型。其中BR/EDR型是以点对点网络拓扑结构创建一对一设备通信;LE型则使用点对点(一对一)、广播(一对多)和网格(多对多)等多种网络拓扑结构。

低功耗蓝牙不能向后兼容原有的蓝牙协议(经典蓝牙协议),所以它们之间是不能互通的。蓝牙4.0规范允许设备同时支持经典与低功耗蓝牙协议。

蓝牙最终产品是一种蓝牙产品,它声称实现了一个或多个核心配置,符合规范的要求部分,并符合此处定义的强制性要求。蓝牙终端产品的补充产品仅限于蓝牙配置文件子系统产品。

蓝牙终端产品类型在表 3.2 中定义: 在这里插入图片描述

For the respective Core Configuration, the letter “M” indicates that it is mandatory to claim support, “O” indicates that it is optional to claim support, “P” indicates that it is optionally permitted to claim only partial support of the Core Configuration, “I” indicates that the Core Configuration is inherently included in the combined Core Configuration, “E” indicates that support for the Core Configuration shall not be claimed. 对于相应的核心配置,字母“M”表示必须要求支持,“O”表示可选择要求支持,“P”表示可选择仅允许要求部分支持核心配置 ,“I”表示核心配置固有地包含在组合的核心配置中,“E”表示不应声明对核心配置的支持。 在这里插入图片描述

传统蓝牙

蓝牙诞生之初,使用的是BR技术,此时蓝牙的理论传输速率,只能达到721.2Kbps。随着时代的发展,速度已经慢慢跟不上人类的需求,于是EDR应运而生。但是,没错,随着时代的又又又发展,EDR紧赶慢赶也追不上了,SIG看上了隔壁的老王,哎,WIFI,把你的PHY层和MAC层借我用用呗,即AMP(Alternate MAC and PHY layer extension)。

Basic Rate可以包括可选(optional)的EDR(Enhanced Data Rate)技术,以及交替使用的(Alternate)的MAC(Media Access Control)层和PHY层扩展(简称AMP)。又因为蓝牙自身的物理层和AMP技术差异太明显了,这次扩展只能是交替使用(Alternate)的,也就是说,有我(BR/EDR)没你(AMP),无法共存。即BR和EDR是可以同时存在的,但BR/EDR和AMP只能二选一。

蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。本文目前主要注重于core层协议。

Bluetooth Core由两部分组成,Host和Controller。这两部分在不同的蓝牙技术中(BR/EDR、AMP、LE),承担角色略有不同,但大致的功能是相同的。Controller负责定义RF、Baseband等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让Bluetooth Application更为方便的使用。

在一个系统中,Host只有一个,但Controller可以一个,也可以有多个。如:单独的LE Controller;单独的BR/EDR Controller;单独的LE+BR/EDR Controller;在单独的BR/EDR Controller或LE+BR/EDR Controller基础上,增加一个或多个额外的AMP Controller。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

协议架构

从OSI(Open System Interconnection)模型的角度看,蓝牙是一个比较简单的协议,它仅仅提供了物理层(Physical Layer)和数据链路层(Data Link Layer )两个OSI层次。由于经典蓝牙和低功耗蓝牙大都是点对点直连通信,完全不需要路由功能,所以没有特地定义网络层的协议,简单的寻址功能就在数据链路层的LMP层和LL层实现了,而蓝牙mesh由于是组建了mesh网络,有数据转发和寻址的需求,所以定义了一个Network Layer来做这件事情。 蓝牙mesh建立在BLE物理层和链路层之上,通过承载层(Bearer Layer) 把BLE层的数据抽象并供上层使用, 目前定义了两种承载,广播承载和GATT承载, 分别对应BLE的Advertising和Connection方式。 在这里插入图片描述 Bluetooth LE技术相比BR技术,差异非常大,可以说就是两种不同的技术,凑巧都加一个“蓝牙”的前缀而已,二者的协议层结构对比如下,本系列中主要介绍BLE蓝牙技术。

在这里插入图片描述

SPEC中蓝牙协议分为四个层次:物理层(Physical Layer)、逻辑层(Logical Layer)、L2CAP Layer和应用层(APP Layer)。 在这里插入图片描述 Mesh系统架构 在这里插入图片描述 架构图从最底下开始大概说明,在后续章节也会逐一展开

HW层:这里就是蓝牙芯片层,包含以下几个部分

RF(RADIO):射频层,本地蓝牙数据通过射频发送给远端设备,并且通过射频接收自远端蓝牙设备的数据BB(BASEBAND):基带层,进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。LMP(LINK MANAGER PROTOCOL):链路管理层,负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作HCI(HOST CONTROLLER INTERFACE):主机控制器接口层,HCI层在芯片以及协议栈都有,芯片层面的HCI负责把协议栈的数据做处理,转换为芯片内部动作,并且接收到远端的数据,通过HCI上报给协议栈。BLE PHY:BLE的物理层BLE LL:BLE的链路层

TRANSPORT层:此部分在硬件接口(UART/USB/SDIO)实现HOST跟CONTROLLER的交互,此部分会分为以下几个协议,在后续章节会对transport协议做详细的说明

H2:USB的transportH4: UART的transportH5: UART的transportBCSP: UART的transportSDIO Transport,我不知道叫什么transport,但是有走SDIO的蓝牙芯片,比如Marvell8887,可以选择走SDIO或者UART

其中2,3,4的主要差别在于H4需要BT CHIP UART_TX/UART_RX/UART_CTS/UART_RTS/VCC/GND接到MCU,而H5,BCSP只需要BT CHIP的UART_TX/UART_RX/VCC/GND接到MCU就可以通信。

H4是UART传输种最简的一个Transport,只是在HCI raw data的前面加一个type就行,如下HCI一共有五种HCI data:

HCI COMMAND:由蓝牙协议栈发送给芯片的命令HCI EVENT:由蓝牙芯片上报给蓝牙协议栈的事件HCI ACL:蓝牙协议栈跟蓝牙芯片双向交互的普通数据HCI SCO:蓝牙芯片跟蓝牙协议栈双向交互的通话/语音识别等音频数据HCI ISO(这部分是在core5.2才添加):LE audio用的数据包格式

在开发过程中,我们一般又把蓝牙的架构分为Host和Controller两个模块,Host主要是各种业务场景需求的实现,Controller部分主要负责的是蓝牙报文的收发以及蓝牙物理连接的管理这些基本功能。

所以通常绝大部分的开发工作都是在Host端进行,Controller部分的工作大都是由专门的蓝牙芯片厂商来负责;Host和Controller分模块的最初设计理念是想让这两个模块单独运行在两颗不同的芯片甚至系统上,之间通过硬件通信端口(串口,USB)使用HCI协议进行连接和通信,这样可以方便替换和升级。

例如对于不带蓝牙功能的电脑,我们可以买一个USB蓝牙接收器插到电脑上,就可以支持了蓝牙功能,这个场景下,HOST模块就是运行在电脑系统上,Controller模块就是运行在USB蓝牙接收器上。现在虽然有不少芯片把Host和Controller模块都放在了一颗芯片上,但是基本还是遵循这样的层次结构,只是将HCI协议从硬件通信端口换成了软件端口。

从应用场景来说,蓝牙规范针对了我们日常生活中会碰到的非常多的场景分别定义了不同的场景规范(Profile)来支持这些场景下的需求,有HFP(Hands Free Profile)来支持蓝牙耳机通话场景,SPP(Serial Port Profile)用于串口传输,OPP(Object Push Profile)用于设备之间的文件传输场景,A2DP(Advanced Audio Distribution Profile)用于蓝牙耳机收听音乐场景,AVRCP(A/V Remote Control Profile)用于蓝牙耳机音乐播放控制场景,PAN(Personal Area Networking Profile)可以让手机作为蓝牙热点提供上网服务。

为什么有好几种分类,这里的分层又怎么理解呢?我们如果把上面基于协议比作道路(传输功能)的话,下面的就好像在道路行驶的小轿车(数据包),在道路上有很多小轿车,我们怎么知道它属于哪家公司(包解析),这就需要各个模块的相互协作。 在这里插入图片描述 现在我们看看连接状态下是如何把数据0x53发送出去的,从中大家可以体会到蓝牙协议栈分层的妙处。

对开发者来说,很简单,他只需要调用send(0x53)GATT层定义数据的类型和分组,方便起见,我们用0x0013表示电量这种数据类型,这样GATT层把数据打包成130053(小端模式!)ATT层用来选择具体的通信命令,比如读/写/notify/indicate等,这里选择notify命令0x1B,这样数据包变成了:1B130053L2CAP用来指定connection interval(连接间隔),比如每10ms同步一次(CI不体现在数据包中),同时指定逻辑通道编号0004(表示ATT命令),最后把ATT数据长度0x0004加在包头,这样数据就变为:040004001B130053LL层要做的工作很多,首先LL层需要指定用哪个物理信道进行传输(物理信道不体现在数据包中),然后再给此连接分配一个Access address(0x50655DAB)以标识此连接只为设备A和设备B直连服务,然后加上LL header和payload length字段,LL header标识此packet为数据packet,而不是control packet等,payload length为整个L2CAP字段的长度,最后加上CRC24字段,以保证整个packet的数据完整性,所以数据包最后变成: 数据:AAAB5D65501E08040004001B130053D550F6 AA – 前导帧(preamble) 0x50655DAB – 访问地址(access address) 1E – LL帧头字段(LL header) 08 – 有效数据包长度(payload length) 04000400 – ATT数据长度,以及L2CAP通道编号 1B – notify command 0x0013 – 电量数据handle 0x53 – 真正要发送的电量数据 0xF650D5 – CRC24值

虽然开发者只调用了 send(0x53),但由于低功耗蓝牙协议栈层层打包,最后空中实际传输的数据将变成下图所示的模样,这就既满足了蓝牙通信的需求,又让用户API变得简单,可谓一箭双雕! 在这里插入图片描述

SCO是一条单独链路,不基于任何链路,是新建的一条独立链路。 在这里插入图片描述

如果我们想深入学习各个协议里的内容,我们可以按照官网分类作为参考,可以看到,其实四大类主要的蓝牙规范就完全覆盖了整个蓝牙技术架构: 1、核心规范:Core Specifications,定义了蓝牙技术最核心的内容。覆盖了从物理层一直到传输层的内容。 2、Protocol规范: Protocol Specfications,在核心规范之上针对某一大类场景(例如音视频传输,线缆通信传输,网络通信传输)的数据通信需求来定义的传输协议,属于应用层协议,只在经典蓝牙中存在。 3、Profile规范:包含经典蓝牙的Traditional Profile Specifications和低功耗蓝牙的GATT Specifications。这类规范是针对某一个特定场景需求(例如听音乐,打电话)来对核心规范和protocol做出更细化的定义和对这些协议无法满足的一些细化需求做了补充协议。 4、蓝牙mesh规范:Mesh Networking Specifications,这是蓝牙最新的mesh规范。

在这里插入图片描述

在这里插入图片描述

物理层

物理层负责提供数据传输的物理信道,蓝牙的物理层分为Physical Channel和Physical Links两个子层。一个通信系统中通常存在多种类型的物理信道,BR/EDR、LE和 AMP 在物理层的实现就较大的差异。而物理链路,则是对这些物理信道(主要是BR/EDR技术中的Basic Piconet Physical Channel和Adapted Piconet Physical Channel)的进一步封装,如上图所示。

相同点:BR/EDR、LE和AMP的RF都使用2.4GHz ISM(Industrial Scientific Medical) 频段,频率范围是2.400-2.4835 GHz。不同点: BR/EDR作为经典蓝牙, 其ISM频率范围内被分成79个channel,每一个channel占用1M的带宽,在0 channel和78 channel之外设立guard band(保护带宽,Lower Guard Band为2MHz,Upper Guard Band为3.5MHz)。通过采用跳频技术(hopping),减少信道干扰。同一时刻,BT 设备只能在其中一个物理信道上通信,为了支持多个并行的操作,蓝牙系统采用时分方式,即不同的时间点采用不同的信道。 BR/EDR技术定义了5种物理信道(跳频信道),BR/EDR Basic Piconet Physical Channel、BR/EDR Adapted Piconet Physical Channel、BR/EDR Inquiry Scan Physical Channel(用于扫描,也就是discovery)、BR/EDR Page Scan Physical Channel(用于连接,也就是connect)和BR/EDR Synchronization Scan Channel(用于无连接状态)。 其中,BR/EDR Basic Piconet Physical Channel和BR/EDR Adapted Piconet Physical Channel主要用在处于连接状态的蓝牙设备之间的通信。它们的区别是,BR/EDR Adapted Piconet Physical Channel使用较少的RF跳频点。BR/EDR Basic Piconet Physical Channel使用全部79个跳频点,而BR/EDR Adapted Piconet Physical Channel是根据当前的信道情况使用79个跳频点中的子集,但是跳频数目也不能少于20个。这个主要是因为蓝牙使用ISM频段,当蓝牙和WIFI共存的时候,部分跳频点被WIFI设备占用而使得蓝牙设备在这些跳频点上的通信总是失败,因此,需要避过那些WIFI设备占用的频点。LE作为低功耗蓝牙,ISM频率范围内被分成40个channel,每一个channel占用2M的带宽,在0 channel和39 channel之外设立guard band(保护带宽,Lower Guard Band为2MHz,Upper Guard Band为3.5MHz)。 LE技术定义了2种物理信道,LE Piconet channel和LE Advertisement Broadcast Channel。LE Piconet Channel用在处于连接状态的蓝牙设备之间的通信,和BR/EDR一样,采用调频技术。和BR/EDR不一样的地方是,只会在40个频率channel中的37个上面跳频。LE Advertisement Broadcast Channel用于在设备间进行无连接的广播通信,这些广播通信可用于蓝牙的设备的发现、连接(和BR/EDR类似)操作,也可用于无连接的数据传输。AMP是为高速数据传输设计的技术,其物理层规范直接采用802.11(WIFI)的PHY规范,AMP物理信道只有一种,即AMP Physical Channel,主要用于已连接设备之间的数据通信,和BR/EDR技术中的BR/EDR Adapted Piconet Physical Channel位于一个级别,可以互相切换使用。 逻辑层

在物理层的基础上,提供两个或多个设备之间、和物理无关的逻辑传输通道(也称作逻辑链路)。

逻辑层的主要功能,是在已连接(LE Advertisement Broadcast可以看做一类特殊的连接)的蓝牙设备之间,基于物理链路,建立逻辑信道。所谓的逻辑信道,和城市道路上的车道类似:

一条城市道路可以看做一个物理链路(可能有两个方向,我们只考虑其中一个即可),该物理链路根据行车用途,可以划分为多个逻辑信道,如直行车道、右转车道、左转车道、掉头车道、快速车道、慢速车道等等。

在这里插入图片描述

AMP ACL(Asynchronous Connection-Oriented Link),基于AMP技术的、面前连接的、异步传输链路,为AMP-U提供服务。

BR/EDR ACL,基于BR/EDR技术的ACL链路,为ACL-C、ACL-U提供服务。

SCO/eSCO(Synchronous Connection-Oriented/Extended SCO),基于BR/EDR技术的、面向连接的、同步传输链路,为stream类型的Logical Link提供服务。

ASB(Active Slave Broadcast)、PSB(Parked Slave Broadcast),基于BR/EDR技术的、面向连接的广播传输链路,为ACL-U、PSB-U、PSB-C提供服务。

CSB(Connectionless Slave Broadcast),基于BR/EDR技术的、无连接的广播链路,为PBD提供服务。

LE ACL,基于LE技术的、面前连接的、异步传输链路,为LE-U、LE-C提供服务。

ADVB(Advertising Broadcast),基于LE技术的、广告/广播链路,为ADVB-U、ADVB-C提供服务。

L2CAP层

L2CAP是逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol)的缩写,负责管理逻辑层提供的逻辑链路。基于该协议,不同Application可共享同一个逻辑链路,类似TCP/IP中端口(port)的概念。通过L2CAP层可以将ACL数据分组交换为便于高层应用的数据分组格式,并提供协议复用和服务质量交换等功能。

L2CAP提供多路复用角色,允许许多不同的应用程序共享ACL-U,ASB-U,LE-U或AMP-U逻辑链接。应用和服务协议与L2CAP接口使用channel-oriented interface创建与其他设备上的等效实体的连接。L2CAP信道端口有Channel Identifier(CID)分配给其客户端,每个设备L2CAP信道端口具有不同的CID,通过监听端口,连接CID建立L2CAP连接。

在这里插入图片描述 通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务,L2CAP还屏蔽了低层传输协议中的很多特性,使得高层协议应用开发人员可以不必了解基层协议而进行开发。 在这里插入图片描述

SDP

SDP(SERVICE DISCOVERY PROTOCOL):服务发现协议,服务发现协议(SDP)为应用程序提供了一种方法来发现哪些服务可用,并确定这些可用服务的特征。 在这里插入图片描述

RFCOMM

RFCOMM(Serial Port Emulation,Serial cable emulation protocol based on ETSI TS 07.10):串口仿真协议,上层协议蓝牙电话,蓝牙透传SPP等协议都是直接走的RFCOMM。

在这里插入图片描述

OBEX

OBEX(OBject EXchange protocol):对象交换协议,蓝牙电话本,蓝牙短信,文件传输等协议都是走的OBEX

在这里插入图片描述 在这里插入图片描述

HFP

HFP(Hands-Free protocol):蓝牙免提协议。 在这里插入图片描述 一共分为两个角色:AG跟HF,举一个例子你一下就会懂,蓝牙耳机 or 车机 跟 手机连接,那么手机的角色就是AG,蓝牙耳机 or 车机 的角色是HF。 在这里插入图片描述

在这里插入图片描述

HSP

HSP(Headset profile):早期蓝牙耳机规范,目前几乎已经没有产品使用,算是一个简化版的HFP。 在这里插入图片描述

SPP

SPP(SERIAL PORT PROFILE):蓝牙串口规范。 在这里插入图片描述 在这里插入图片描述

PBAP

PBAP(Phone Book Access Profile):蓝牙电话本访问规范,架构如下: 在这里插入图片描述 此部分尤其注意,PBAP在V1.2跟V1.1架构变化很大,V1.1 PBAP直接走的RFCOMM,在V1.2的时候如果GOEP是V2.0版本,那么PBAP是直接走的L2CAP,并且是L2CAP ERTM mode,不是basic mode.

角色如下:同样举例说明,我们车载蓝牙跟手机连接,车载蓝牙下载手机的电话本,那么手机的角色就是PSE,车载蓝牙就是PCE。

在这里插入图片描述

MAP

MAP(MESSAGE ACCESS PROFILE):蓝牙短信访问规范。 在这里插入图片描述 如图 1.1 所示,消息访问配置文件依赖于通用对象交换配置文件、串行端口配置文件和通用访问配置文件与 GOEP 1.1 设备交互时需要串行端口配置文件。

此配置文件旨在与电话簿访问配置文件 (PBAP) v1.2 或更高版本的并置实现共享联系信息。可以共享发送者、接收者或即时消息对话参与者的完整联系方式。此配置文件和 PBAP 之间的接口取决于实现,此处未定义。

MAP跟PBAP很像,都是在V1.2的时候架构有变化,V1.1 MAP直接走的RFCOMM,在V1.2的时候如果GOEP是V2.0版本,那么MAP是直接走的L2CAP,并且是L2CAP ERTM mode,不是basic mode。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

OPP

OPP(OBJECT PUSH PROFILE):对象推送规范。对象推送配置文件依赖于通用对象交换、串行端口(为了与实现此配置文件早期版本的设备兼容)和通用访问配置文件。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

A2DP

A2DP(Advanced Audio Distribution profile): 蓝牙音频传输规范,它定义了在ACL信道上进行高质量的音频分发的协议过程,这与SCO上传输的语音数据不一样。

A2DP是一个规范,设备数据流协商需要依赖AVDTP协议,远程控制需要参考AVRCP规范。A2DP取决于通用访问配置文件(GAP)以及通用音频/视频分布规范(GAVDP)。 在这里插入图片描述 在这里插入图片描述 角色如下:举一个例子说明,还是拿蓝牙耳机跟手机连接,手机传输音乐给蓝牙耳机,那么手机就是A2DP source端,蓝牙耳机是A2DP sink端。 在这里插入图片描述 在这里插入图片描述 SNK 的 AVDTP 实体应使用选定的传输服务从传输通道接收流数据,并通过 AVDTP 第 2 章中定义的公开接口将其传递给应用层。

当内容保护方法处于活动状态时,SNK 的应用层应按照内容保护方法的描述处理检索到的 AVDTP 有效载荷。通常,该处理需要对相关的加密内容进行内容保护报头分析和解密。

如果适用,音频数据帧应根据选择的编码格式进行解码。 在这里插入图片描述

AVDTP

AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL):音视频分布传输协议,是A2DP的底层。其规定了音频和/或视频分发连接以及通过蓝牙空中接口传输音频或视频媒体的传输协议。音频和视频数据流需要同步数据传输能力。

A/V分发传输协议(以下简称AVDTP)的传输机制和消息格式基于RTP,它由两大协议组成:RTP Data Transfer Protocol (RTP) and RTP Control Protocol (RTCP)。

AVDTP 定义了蓝牙设备之间的二进制事务,用于使用 L2CAP 进行音频和视频的流设置和媒体流。A/V 流和流设置信令通过 L2CAP 数据包传输。 Protocol/Service Multiplexer (PSM) 值用于识别用于 AVDTP 的 L2CAP 数据包。 在这里插入图片描述 图 2.1 显示了 AVDTP、蓝牙协议栈和上层是如何集成在一起的。AVDTP 向上层公开了三个接口,向蓝牙协议栈公开了两个接口。为了检索 A/V 设备的详细信息,上层使用蓝牙协议栈提供的 SDP 接口。

当 A/V 应用程序通过蓝牙链接传输音频和/或视频流时,AVDTP 执行 A/V 参数协商。基于此协商的结果,A/V 应用程序传输音频和/或视频内容。 在这里插入图片描述 在这里插入图片描述

AVRCP

AVRCP(AUDIO/VIDEO REMOTE CONTROL PROFILE):蓝牙音频控制规范。 在这里插入图片描述 基带、LMP 和 L2CAP 是 OSI 第 1 层和第 2 层蓝牙协议。AVCTP 和 BIP 定义了为控制 A/V 设备而交换的过程和消息。SDP 是蓝牙服务发现协议。OBEX 是 IrOBEX 的蓝牙改编版,它是 BIP 的底层传输协议,BIP 是提供与媒体相关联的图像交换功能的实体。

图 2.1 中的括号中描述了 BIP,以表明某些 BIP 功能被重用或重新定义为 AVRCP,但 BIP 并未用作独立的配置文件。AV/C 是负责基于 AV/C 命令的设备控制信令的实体。应用程序是 AVRCP 实体,交换本规范中定义的控制和浏览命令。 在这里插入图片描述 举例说明,蓝牙耳机就是controller(CT),手机就是target(TG)。 在这里插入图片描述 在这里插入图片描述

AVCTP

AVCTP(AUDIO/VIDEO CONTROL TRANSPORT PROTOCOL):音视频控制传输协议,该协议描述了用于传输控制消息(command and response)的传输机制,它包含对消息分段、重置的功能。

AVCTP协议使设备能够同时支持多个profile实际的消息格式和使用规则由profile自己配置。其对下依赖于L2CAP协议,对外主要是为AVRCP(AUDIO/VIDEO REMOTE CONTROL PROTOCOL)服务。 在这里插入图片描述 在这里插入图片描述

应用层

理解蓝牙协议中的应用层,基于L2CAP提供的channel,实现各种各样的应用功能。Profile是蓝牙协议的特有概念,为了实现不同平台下的不同设备的互联互通,蓝牙协议不止规定了核心规范(称作Bluetooth core),也为各种不同的应用场景,定义了各种Application规范,这些应用层规范称作蓝牙profile。

在这里插入图片描述 在这里插入图片描述

参考资料 wikipedia - 蓝牙蓝牙组织 - specificationsIEEE Standards 下载地址蜗窝科技-蓝牙协议分析深入浅出低功耗蓝牙(BLE)协议栈- iini三张图带你入门蓝牙规范CSDN - Wireless_Link - 吐血推荐历史最全的蓝牙协议栈介绍


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有