我是靠谱客的博主 开心哈密瓜,最近开发中收集的这篇文章主要介绍蓝牙相关协议,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

蓝牙协议是蓝牙设备间交换信息所应该遵守的规则。与开放系统互联(OSI)模型一样,蓝牙技术的协议体系也采用了分层结构,从底层到高层形成了蓝牙协议栈,各层协议定义了所完成的功能和使用数据分组格式,以保证蓝牙产品间的互操作性。

蓝牙协议主要有传输协议、中介协议、应用协议;

传输协议负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路,传输协议包括底层传输协议和高层传输协议。

底层传输协议负责语言、数据无线传输的物理实现以及蓝牙设备间的联网组网,包括蓝牙射频协议、基带链路控制协议BLC、链路管理协议LMP。

射频协议(RF)

  1. 工作在2400M~2483.5M频带
  2. 采用调频方式传输数据
  3. 采用GFSK(DQPSK和8DPSK)调制方式
  4. 信道间隔(1MHZ/EDR模式,2MHZ/BLE模式)
  5. 采用跳频扩谱技术主动的避免工作频段受干扰。
  6. 发射功率:一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm); 
  7. 物理信道:由伪随机序列控制的79个跳频点构成,不同跳频序列代表不同的信道。
  8. 时隙:蓝牙跳频速率为1600次/s,每个时间为625uS(1S/1600)称为一个时隙;

基带链路控制协议(BLC)

  1. 全双工,时分多路复用。
  2. 描述了完成低层链路建立维护和执行基带协议的链路控制器的规范
  3. 主要作用有跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。
  4. 两个设备为了通信,使用共享信道,两者必须在同一时刻使用相同的频率。
  5. 发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进行发送;
  6. 接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。
  7. master从奇数时间片开始传输,slave从偶数时间片开始传输,可以连续占用多个时间片
  8. 两种状态:Standby(包括四种子状态: inquiry,inquiry-scan,page,page scan)和Connection(包括四种类型:Active, Sniff, Hold, and Park. )
  9. 四种物理通道:基本pico网通道 、自适应pico网通道 、Page scan物理通道 、inquiryscan物理通道
  10. 五种逻辑传输:SCO 基于同步连接逻辑传输、ACL 异步逻辑传输、 ESCO扩展SCO 、ASB 活动Slave广播 、PSB  Parked Slave广播。

链路管理协议(LMP)

  1. 用于链路的建立和控制,信号在链路管理层被解析和过滤,不会传递至上层。
  2. 协议由一系列的消息构成,这些消息通过ACL-C逻辑传输。
  3. 负责完成设备的功率管理、链路质量管理、链路控制管理、数据分组管理、链路安全管理。
  4. 用Link Manager Protocol (LMP)在两个设备的LM模块之间通信。
  5. 通过Data Medium rate (DM1) or Data Voice (DV) 发送控制消息。
  6. 比用户数据具有更高的优先级
  7. 连接控制:连接建立,断开,电源控制,自适应频率hopping,通道分类, 链路监控,通道质量驱动数据率变化,Qos,Paging参数,多slot包控制,EDR,LMP PDU封装。
  8. 安全:认证,配对,改变link key,改变当前link key类型,加密,请求加密keysize,简单安全配对。


高层传输协议为高层应用屏蔽了跳频序列选择等底层传输操作,为高层程序提供有效、有利于实现数据分组格式,包括主机控制接口协议HCI 。

主机控制接口协议 HCI

  1. 为上层协议提供一个独立于硬件实现统一的标准命令接口
  2. 流控制:Host到控制器以及控制器到Host数据流控制,基于包的数据流控制、基于块的数据流控制、命令流控
  3. HCI命令和事件:链路控制命令、链路策略命令、主机控制和基带命令、信息参数指令、状态指令参数、测试命令、LE控制器命令
  4. 为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接口
  5. 主要包括在主机中运行的驱动程序和在硬件中运行的固件。两者之间通过UART、USB和PC card等方式通信。

蓝牙主机-主机控模型 
这里写图片描述

蓝牙软件协议栈堆的数据传输过程: 
这里写图片描述

中介协议为在蓝牙逻辑链路上工作的高层应用协议或者程序提供必要的支持,为应用提供不同标准接口,包括逻辑链路控制与适配协议 L2CAP、服务发现协议SDP、串口仿真协议RFCOMM、电话控制协议TCS、AT指令集。

逻辑链路控制与适配协议 L2CAP

  1. L2CAP位于基带之上,将基带的数据分组转换为便于高层应用的数据分组格式
  2. 支持分组、高层协议复用、数据包分段重组和服务质量QoS
  3. L2CAP只支持ACL数据传输,不支持SCO数据。
  4. L2CAP本身不提供加强信道可靠性和保证数据完整性的机制,其信道的可靠性依靠基带提供。

服务发现协议SDP

  1. 发现可用的服务及服务的特征
  2. SDP有两种服务发现模式 服务搜索(查询具有特定服务属性的服务)和服务浏览(简单的浏览全部可用服务)。
  3. SDP的服务记录表对每一个服务进行描述,每条记录包含服务句柄和一组服务属性: 

这里写图片描述

串口仿真协议 RFCOMM

  1. RFCOMM提供L2CAP之上的串口仿真功能,为上层应用提供一个串口。
  2. 通过AT发送指令控制拨号上网、蓝牙耳机、耳麦、传真。
  3. 为建立在串口之上的传统应用提供环境接口,通过做比较少协议改动就可以在蓝牙无线通信链路上工作。

两个蓝牙设备之间可以支持多达60多路仿真串口,多路串口仿真是RFCOMM的重要功能,通过多路复用器(multiplexer),一条L2CAP链路可以同时有多个串行应用。 两台设备间的串口仿真如图所示

电话控制协议TCS_Binary
TCS_Binary在蓝牙设备间建立语音与数据呼叫控制信令,是一种基于分组电话控制二进制编码指令集,位于L2CAP之上。实现蓝牙无绳电话、对讲机功能。 

网络封装协议 BNEP

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

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

这里写图片描述

流stream:流是音视频传输的数据形式,单向传输,在AVDTP中被分为媒介分组。流有句柄HS统一标识。

这里写图片描述

AVCTP音视频控制传输协议

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

应用协议是指蓝牙协议栈之上的应用软件和所涉及到的协议,如:拨号上网、语言功能的应用程序。包括互操作协议IrDA、网络访问协议PPP、IP、TCP、UDP、

互操作协议IrDA

红外对象交互协议(IrOBEX 简称OBEX),使高层协议能够同时运作在蓝牙和红外的无线链路之上。主要操作指令有:连接操作(操作码0x80)、断开操作(操作码0x81)、Put操作(操作码0x82)、Get操作(操作码0x83)。

这里写图片描述

最后

以上就是开心哈密瓜为你收集整理的蓝牙相关协议的全部内容,希望文章能够帮你解决蓝牙相关协议所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部