精华内容
下载资源
问答
  • 【无线通信协议笔记】蓝牙篇:传输速率
    千次阅读
    2022-02-08 10:08:16

    BLE PHY简介

    BLE4.0版本起,低功耗蓝牙标称的数据传输速率是1Mbps,到了BLE 5.0以后版本,数据传输速率提升到了2Mbps。上述的提到标称速率,并不代表实际的数据传输速率。这里面有很多个限制因素会影响到实际的数据传输速率的水平,比如:
    主从机的最大数据包长度设置(MTU)
    数据包之间的延迟
    主从机之间的连接间隔

    更多相关内容
  • 蓝牙BLE协议中文版.pdf

    2020-06-16 13:54:08
    蓝牙BLE协议中文版,帮助初学者更快掌握协议内容。协议为SIG官方协议的中文版,所有协议内容均与英文原版协议内容保持一致
  • Silicon Labs公司在2018年3月份底发布了蓝牙Mesh标准协议的第一个SDK正式版本,加入调光功能,这标志着蓝牙Mesh网络的商用之路将逐渐被照亮。贝能国际推出基于蓝牙Mesh网络标准协议的参考方案,为更多物联网产品设计...
  • 蓝牙标准等等的。可以下来看看,东西比较多
  • Android开发之——蓝牙-协议

    千次阅读 2021-12-14 16:51:52
    蓝牙进行通信的四大必需任务 关键俗语和概念 Android 应用可通过 Bluetooth API 执行的操作 二 传统蓝牙和低功耗蓝牙 2.1 经典蓝牙模块(BT) 泛指支持蓝牙协议在4.0以下的模块 一般用于数据量比较大的传输,比如:...

    一 概述

    • 传统蓝牙和低功耗蓝牙
    • 蓝牙进行通信的四大必需任务
    • 关键俗语和概念
    • Android 应用可通过 Bluetooth API 执行的操作

    二 传统蓝牙和低功耗蓝牙

    2.1 经典蓝牙模块(BT)

    • 泛指支持蓝牙协议在4.0以下的模块
    • 一般用于数据量比较大的传输,比如:语音、音乐、较高数据量传输等
    • 经典蓝牙模块可再细分为:传统蓝牙模块高速蓝牙模块
    • 传统蓝牙模块:在2004年推出,主要代表是支持蓝牙2.1协议的模块,在智能手机爆发的时期得到广泛支持。
    • 高速蓝牙模块:在2009年推出,速率提高到约24Mbps,是传统蓝牙模块的8倍,可以轻松用于录像机至高清电视、PC至PMP、UMPC至打印机之间的资料传输

    2.2 低功耗蓝牙(BLE)

    • BLE:是指支持蓝牙协议4.0或更高的模块,也称为BLE模块(Bluetooth Low EnergyModule)
    • 最大特点是成本和功耗的降低,应用于实时性要求比较高,但是数据速率比较低的产品。如:遥控类的(鼠标、键盘)、传感设备的数据发送(心跳带、血压计、温度传感器)等

    三 蓝牙进行通信的四大必需任务

    • 设置蓝牙
    • 查找局部区域内的配对设备或可用设备
    • 连接设备
    • 以及在设备之间传输数据

    四 关键俗语和概念

    4.1 BLE 关键术语和概念

    通用属性配置文件 (GATT)

    • Generic Attribute Profile (GATT):通用属性配置文件
    • GATT 配置文件是一种通用规范
    • 内容针对在 BLE 链路上发送和接收称为“属性”的简短数据片段
    • 目前所有低功耗应用配置文件均以 GATT 为基础

    属性协议 (ATT)

    • Attribute Protocol (ATT):属性协议
    • 属性协议 (ATT) 是 GATT 的构建基础,二者的关系也被称为 GATT/ATT
    • ATT 经过优化,可在 BLE 设备上运行
    • 每个属性均由通用唯一标识符 (UUID) 进行唯一标识,UUID是用于对信息进行唯一标识的字符串 ID 的 128 位标准化格式
    • 由 ATT 传输的属性采用特征服务格式

    特征 (Characteristic)

    • 特征包含一个值和 0 至多个描述特征值的描述符
    • 特征理解为类型,后者与类类似

    描述符 (Descriptor)

    • 描述符是描述特征值的已定义属性
    • 例如,描述符可指定人类可读的描述、特征值的可接受范围或特定于特征值的度量单位。

    Service

    • 服务是一系列特征
    • 例如,您可能拥有名为“心率监测器”的服务,其中包括“心率测量”等特征
    • 您可以在 bluetooth.org 上找到基于 GATT 的现有配置文件和服务的列表

    4.2 角色和职责

    中央与外围。这适用于 BLE 连接本身。担任中央角色的设备进行扫描、寻找广播;外围设备发出广播
    GATT 服务器与 GATT 客户端。这确定两个设备建立连接后如何相互通信。

    中心设备

    • 中心设备相对比较强大,用来连接其他外围设备
    • 例如:手机等

    外围设备

    • 这一般就是非常小或者简单的低功耗设备
    • 用来提供数据,并连接到一个更加相对强大的中心设备
    • 例如:小米手环

    GATT 服务器

    • 中心设备与外围设备建立连接后,开始相互传送GATT数据
    • 中心设备如手机,就是GATT服务器

    GATT 客户端

    • 中心设备与外围设备建立连接后,开始相互传送GATT数据
    • 外围设备如小米手环就是GATT客户端

    五 Android 应用可通过 Bluetooth API 执行的操作

    • 扫描其他蓝牙设备
    • 查询本地蓝牙适配器的配对蓝牙设备
    • 建立 RFCOMM 通道
    • 通过服务发现连接到其他设备
    • 与其他设备进行双向数据传输
    • 管理多个连接

    六 参考

    展开全文
  • 蓝牙协议分析

    2021-11-03 14:59:19
    蓝牙协议是通信协议的一种,为了把复杂问题简单化,任何通信协议都具有层次性,特点如下: 从下到上分层,通过层层封装,每一层只需要关心特定的、独立的功能,易于实现和维护; 在通信实体内部,下层向上层提供...

    1. 前言

    本文是蓝牙协议分析的第二篇文章,在“蓝牙协议分析(1)_基本概念”的基础上,从整体架构的角度,了解蓝牙协议的组成,以便加深对蓝牙的理解。

    2. 协议层次

    蓝牙协议是通信协议的一种,为了把复杂问题简单化,任何通信协议都具有层次性,特点如下:

    从下到上分层,通过层层封装,每一层只需要关心特定的、独立的功能,易于实现和维护;

    在通信实体内部,下层向上层提供服务,上层是下层的用户;

    在通信实体之间,协议仅针对每一层,实体之间的通信,就像每一层之间的通信一样,这样有利于交流、理解、标准化。

    蓝牙协议也不例外,其协议层次如下:

    bluetooth_stack_layer

    从OSI(Open System Interconnection)模型的角度看,蓝牙是一个比较简单的协议,它仅仅提供了物理层(Physical Layer)和数据链路层(Data Link Layer )两个OSI层次。但由于蓝牙协议的特殊性、历史演化因素等原因,其协议层次又显的不简单,甚至晦涩难懂(如上面图片所示的Physical Link、Logical Transport等)。

    蓝牙协议分为四个层次:物理层(Physical Layer)、逻辑层(Logical Layer)、L2CAP Layer和应用层(APP Layer)。

    物理层,负责提供数据传输的物理通道(通常称为信道)。通常情况下,一个通信系统中存在几种不同类型的信道,如控制信道、数据信道、语音信道等等。

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

    L2CAP层,L2CAP是逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol)的缩写,负责管理逻辑层提供的逻辑链路。基于该协议,不同Application可共享同一个逻辑链路。类似TCP/IP中端口(port)的概念。

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

    在以上四个层次的基础上,蓝牙协议又将物理层和逻辑层划分了子层,分别是Physical Channel/Physical Links和Logical Transports/Logical Links,这一划分,相当使人崩溃,要多花费大量的脑细胞去理解它们,具体请参考下面的分析。

    2.1 物理层

    物理层负责提供数据传输的物理信道,蓝牙的物理层分为Physical Channel和Physical Links两个子层。我们先介绍Physical Channel。

    2.1.1 Physical Channel(物理信道)

    一个通信系统中通常存在多种类型的物理信道,蓝牙也不例外。另外,由“蓝牙协议分析(1)_基本概念”的介绍可知,蓝牙存在BR/EDR、LE和AMP三种技术,这三种技术在物理层的实现就有很大的差异,下面让我们一一介绍。

    首先是相同点,BR/EDR、LE和AMP的RF都使用2.4GHz ISM(Industrial Scientific Medical) 频段,频率范围是2.400-2.4835 GHz。

    注1:不同国家和地区蓝牙的频率和信道分配情况是不同,本文所有的描述都以中国采用的“欧洲和美国”标准为准。

    除了相同点,剩下的都是不同点了。

    BR/EDR是传统的蓝牙技术,它这样定义物理信道:

    1)ISM频率范围内被分成79个channel,每一个channel占用1M的带宽,在0 channel和78 channel之外设立guard band(保护带宽,Lower Guard Band为2MHz,Upper Guard Band为3.5MHz)。

    2)采用跳频技术(hopping),也就是说,某一个物理信道,并不是固定的占用79个channel中的某一个,而是以一定的规律在跳动(该规律在技术上叫做"伪随机码",就是"假"的随机码)。因此蓝牙的物理信道,也可以称作跳频信道(hopping channel)。

    3)BR/EDR技术定义了5种物理信道(跳频信道),BR/EDR Basic Piconet Physical Channel、BR/EDR Adapted Piconet Physical Channel、BR/EDR Page Scan Physical Channel、BR/EDR Inquiry Scan Physical Channel和BR/EDR Synchronization Scan Channel。

    4)BR/EDR Inquiry Scan Physical Channel用于蓝牙设备的发现操作(discovery),即我们常用的搜索其它蓝牙设备(discover)以及被其它蓝牙设备搜索(discoverable)。

    5)BR/EDR Page Scan Physical Channel用于蓝牙设备的连接操作(connect),即我们常用的连接其它蓝牙设备(connect)以及被其它蓝牙设备连接(connectable)。

    6)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设备占用的频点。

    7)BR/EDR Synchronization Scan Channel可用于无连接的广播通信,后续文章会详细介绍。

    8)同一时刻,BT 设备只能在其中一个物理信道上通信,为了支持多个并行的操作,蓝牙系统采用时分方式,即不同的时间点采用不同的信道。

    LE是为蓝牙低功耗而生的技术,为了实现低功耗的目标,其物理信道的定义与BR/EDR有些差异:

    1)ISM频率范围内被分成40个channel,每一个channel占用2M的带宽,在0 channel和39 channel之外设立guard band(保护带宽,Lower Guard Band为2MHz,Upper Guard Band为3.5MHz)。

    2)LE技术定义了2种物理信道,LE Piconet channel和LE Advertisement Broadcast Channel。

    3)LE Piconet Channel用在处于连接状态的蓝牙设备之间的通信,和BR/EDR一样,采用调频技术。和BR/EDR不一样的地方是,只会在40个频率channel中的37个上面跳频。

    4)LE Advertisement Broadcast Channel用于在设备间进行无连接的广播通信,这些广播通信可用于蓝牙的设备的发现、连接(和BR/EDR类似)操作,也可用于无连接的数据传输。

    8)和BR/EDR一样,同一时刻,BT 设备只能在其中一个物理信道上通信,为了支持多个并行的操作,蓝牙系统采用时分方式,即不同的时间点采用不同的信道。

    AMP是为高速数据传输设计的技术,其物理层规范直接采用802.11(WIFI)的PHY规范,主要有如下特点:

    AMP物理信道只有一种,即AMP Physical Channel,主要用于已连接设备之间的数据通信,和BR/EDR技术中的BR/EDR Adapted Piconet Physical Channel位于一个级别,可以互相切换使用。

    2.1.2 Physical Links(物理链路)

    由2.1.1的描述可知,蓝牙协议为BR/EDR、LE和AMP三种技术定义了8种类型的物理信道,包括:

    AMP physical channel

    BR/EDR Basic Piconet Physical Channel
    BR/EDR Adapted Piconet Physical Channel
    BR/EDR Page Scan Physical Channel
    BR/EDR Inquiry Scan Physical Channel
    BR/EDR Synchronization Scan Channel

    LE Piconet Channel
    LE Advertisement Broadcast Channel

    而物理链路,则是对这些物理信道(主要是BR/EDR技术中的Basic Piconet Physical Channel和Adapted Piconet Physical Channel)的进一步封装,其主要特征是(可参考2.5中的图片以辅助理解):

    1)Physical Link是一个虚拟概念,不对应协议中任何的实体,数据包封包/解包的过程中不被体现。

    2)AMP Physical Channel、LE Piconet Channel、LE Advertisement Broadcast Channel均有一个一一对应的Physical Link,分别是AMP Physical Link、LE Active Physical Link、LE Advertising Physical Channel。

    3)BR/EDR Page Scan Physical Channel、BR/EDR Inquiry Scan Physical Channel、BR/EDR Synchronization Scan Channel只在特定时间段使用,且无法控制任何属性,因此不需要再Physical Link中体现。

    4)BR/EDR Basic Piconet Physical Channel和BR/EDR Adapted Piconet Physical Channel是BR/EDR技术中已连接设备之间进行数据通信的通道,且同一时刻只能根据应用场景选择一种channel进行数据传输。因此这两个channel被map到BR/EDR Active Physical Link、BR/EDR Parked Physical Link和BR/EDR Connectionless Slave Broadcast Physical Link三个物理链路上。

    5)BR/EDR Active Physical Link和BR/EDR Parked Physical Link的抽象主要有两个方面的意义:
            5-1)屏蔽底层的Basic/Adapted Piconet Physical Channel之间的差异,统一使用Physical Link取代。在需要的时候,可以通过上层的链路管理协议,指定使用哪一种physical channel(Basic or Adapted)。
            5-2)可以通过Physical Link的抽象,控制Physical Channel的一些属性(如发射功率、收发周期等),以达到节省功耗的目的。而上面的层次(如逻辑层)不需要对这些动作知情。

    6)BR/EDR Active Physical Link定义了连接状态的蓝牙设备在链路处于active状态时的物理链路,该物理链路对应的设备的发射功率是可修改的。

    7)BR/EDR Parked Physical Link定义了连接状态的蓝牙设备在链路处于parked状态时的物理链路。parked状态是一种特殊的连接状态,连接双方没有正在进行的数据传输,所有的链路消耗,都是为保持连接所做的事情。此时可以通过降低在物理信道上的收发频率而降低功耗。该物理链路和BR/EDR Active Physical Link使用相同的物理信道。

    8)BR/EDR Connectionless Slave Broadcast Physical Link使用BR/EDR Adapted Piconet Physical Channel,用于一点到多点的广播通信。

    9)由上面的描述可知,物理链路这一层抽象,实在是可有可无,希望大家不要纠结,知道怎么回事即可。

    2.2 逻辑层

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

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

    这里的车道(逻辑信道),从物理角度看,并没有什么分别,只是为了方便交通(数据传输),人为的抽象出来的。和车道类似,蓝牙逻辑信道的划分依据是传输类型,主要包括下面3类(即Logical Link):

    1)用于管理底层物理链路的控制类传输,包括AMP-C、ACL-C、PSB-C、LE-C、ADVB-C。

    2)传输用户数据的用户类传输,包括AMP-U、ACL-U、PSB-U、LE-U、ADVB-U。

    3)其它比较特殊的传输类型,包括流式传输(stream)、PBD(Profile Broadcast Data)。

    以上每种Logic Link都会在下层对应一个Logical Transport,这些Logical Transport具有一些属性值,如流控、应答/重传机制等。如下:

    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提供服务。

    注2:AMP-C没有对应的Logical Transport,而是直接控制AMP Physical Link完成所需功能。

    注3:蓝牙逻辑层的抽象也是让人醉了!还是那句话,不要逼自己去理解一个疯子的行为,不然自己也会疯的。

    2.3 L2CAP Channels

    L2CAP是Logical Link Control and Adaptation Protocol(逻辑链路控制和适配协议)的缩写,蓝牙协议到这个层次的时候,就清爽多了:

    对下,它在用户类XXX-U Logical Link的基础上,抽象出和具体技术无关的数据传输通道(包括单播和广播两类),至此用户就不再需要关心繁杂的蓝牙技术细节。

    对上,它以L2CAP channel endpoints的概念(类似TCP/IP中的端口),为具体的应用程序(profile)提供独立的数据传输通道(当然,也是一个逻辑通道)。

    2.4 Profiles

    profile是蓝牙Application的代指,也可以翻译为服务,为了实现不同平台下的不同设备的互联互通,蓝牙协议为各种可能的、有通用意义的应用场景,都制定的了规范,如SPP、HSP、HFP、FTP、IPv6/6LoWPAN等等。

    Profiles基于L2CAP提供的L2CAP channel endpoints实现,在它们对应的层次上进行数据通信,以完成所需功能。有关蓝牙profile的介绍,会在后续文章中陆续给出,这里就不再详细说明了。

    2.5 总结

    下面图片包含上面各个层次(除了APP layer)中涉及到的一些实体、概念以及相互关系,供大家参考。

    Overview of transport architecture entities and hierarchy

    摘录自:Core_v4.2.pdf---->Vol1: Architecture & Terminology Overview---->Part A: Architecture---->3 DATA TRANSPORT ARCHITECTURE---->3.2 TRANSPORT ARCHITECTURE ENTITIES

    3. 蓝牙核心框架

    蓝牙规范有两类:一类是蓝牙核心规范,由Bluetooth Core Specification定义,囊括到L2CAP层,以及相关的核心profile;另一类是蓝牙Application规范,包含了各种各样的profile规范(具体可参考“Specifications | Bluetooth® Technology Website”中的列表)。

    蓝牙核心规范所定义的框架如下:

    正在上传…重新上传取消​摘录自:Core_v4.2.pdf ---->Vol1: Architecture & Terminology Overview---->Part A: Architecture---->2 CORE SYSTEM ARCHITECTURE

    经过第2章协议层次的介绍,蓝牙核心框架已经比较容易理解了,这里对层次中各个模块做一个简单的说明,更为详细的分析,请参考后续的文章。

    1)BR/EDR Radio & LE Radio & AMP PHY

    蓝牙RF层(物理层),包括BR/EDR、LE以及AMP三种。负责在物理channel上收发蓝牙packet。

    对BR/EDR和LE RF来说,还会接收来自Baseband的控制命令来控制RF频率的选择和timing。

    AMP PHY使用802.11(WIFI)的规范,本文不再详细介绍,后续有关AMP的内容,也不过多涉及。

    2)Link Controller & Baseband resource management

    Link Controller和Baseband resource management组成了蓝牙的基带(baseband)。

    Link Controller负责链路控制,主要是根据当前物理channel的参数、逻辑channel的参数、逻辑transport的参数将数据payload组装成bluetooth packet。另外,通过Link Control Protocol(对LE来说是LL Layer Protocol),可以实现流控、ack、重传等机制。

    Baseband resource management,主要用于管理RF资源。

    3)Link Manager

    Link Manager主要负责创建、修改、释放蓝牙逻辑连接(Logical Link),同时也负责维护蓝牙设备之间物理连接(Physical Link)的参数。它的功能主要是通过Link Management Protocol(LMP,for BR/EDR)和Link Layer Protocol(LL,for LE)完成。

    4)Device Manager

    Device Manager主要负责控制蓝牙设备的通用行为(蓝牙数据传输除外的行为),主要是:

    搜索附近的蓝牙设备

    连接到其他的蓝牙设备

    使得本地的蓝牙设备connectable和discoverable

    控制本地蓝牙设备的属性(例如本地蓝牙设备的名字、link key等)

    5)HCI(Host Controller Interface)

    我们在“蓝牙协议分析(1)_基本概念”介绍过,蓝牙系统分为Bluetooth Controller和Bluetooth Host两个大的block。它们之间通过HCI接口以HCI协议进行通信。

    6)L2CAP

    L2CAP位于Bluetooth Host中,包括两个子模块:

    Channel Manager主要负责创建、管理、释放L2CAP channel。

    L2CAP Resource Manager负责统一管理、调度L2CAP channel上传递的PDU(Packet Data Unit),以确保那些高QoS的packet可以获得对物理信道的控制权。

    7)SMP(Security Manager Protocol)

    SMP是一个点对点的协议,基于专用的L2CAP channel,用于生成加密(encryption)和识别(identity)用的密匙(keys)。

    8)SDP(Service Discover Protocol)

    SDP也是一个点对点的协议,基于专用的L2CAP channel,用于发现其它蓝牙设备能提供哪些profile以及这些profile有何特性。在了解清楚了其他蓝牙设备的profile以及特性之后,本蓝牙设备可以发起对自己感兴趣的蓝牙profile的连接动作。

    9)AMP Manager

    基于L2CAP channel,和对端的AMP manager交互,用于发现对方是否具备AMP功能,以及收集用于建立AMP物理链路的信息。

    10)GAP(Generic Access Profile)

    GAP是一个基础的蓝牙profile,用于提供蓝牙设备的通用访问功能,包括设备发现、连接、鉴权、服务发现等等。

    GAP 是所有其它应用模型的基础,它定义了在 Bluetooth 设备间建立基带链路的通用方法。还定义了一些通用的操作,这些操作可供引用 GAP 的应用模型以及实施多个应用模型的设备使用。GAP 确保了两个 蓝牙设备(不管制造商和应用程序)可以通过 Bluetooth 技术交换信息,以发现彼此支持的应用程序。

    展开全文
  • android蓝牙通信标准

    2016-02-17 10:01:55
    android蓝牙通信协议标准。profile规则,标准
  • 蓝牙协议1.1,对有志于学习蓝牙技术,开发蓝牙底层驱动的有一定帮助
  • 蓝牙是无线数据和语音传输的开放式标准,它将各种通信设备、计算机及其终端设备、各种数字数据系统、甚至家用电器采用无线方式联接起来。  蓝牙技术的系统结构分为3大部分。  (1)底层硬件部分,包括无线跳频...
  • 蓝牙蓝牙协议

    万次阅读 多人点赞 2019-03-14 09:46:25
    蓝牙协议学习整理(一)蓝牙的概述 转自: https://blog.csdn.net/guoxiaolongonly/article/details/78414870 传送门:(一)蓝牙的概述(二)蓝牙协议规范(射频、基带链路控制、链路管理)(三)蓝牙协议规范...

    蓝牙协议学习整理(一)蓝牙的概述

     

    转自: https://blog.csdn.net/guoxiaolongonly/article/details/78414870

    传送门: 
    (一)蓝牙的概述 
    (二)蓝牙协议规范(射频、基带链路控制、链路管理) 
    (三)蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM) 
    (四)蓝牙协议规范(irOBEX、BNEP、AVDTP、AVCTP)

    引用自xubin的博客

     

    第一章 蓝牙的概述

    一、蓝牙版本信息

    蓝牙共有六个版本1.1/1.2/2.0/2.1/3.0/4.0

    1、1.1版本

    传输率约在748~810kb/s,因是早期设计,容易受到同频率之产品所干扰下影响通讯质量。

    2、1.2版本

    同样是只有748~810kb/s 的传输率,但在加上了(改善 Software)抗干扰跳频功能。

    3、2.0+EDR版本

    是1.2的改良提升版,传输率约在1.8M/s~2.1M/s,开始支持双工模式——即一面作语音通讯,同时亦可以传输档案/高质素图片,2.0 版本当然也支持 Stereo 运作。

    应用最为广泛的是Bluetooth2.0+EDR标准,该标准在2004年已经推出,支持Bluetooth 2.0+EDR标准的产品也于2006年大量出现。虽然Bluetooth 2.0+EDR标准在技术上作了大量的改进,但从1.X标准延续下来的配置流程复杂和设备功耗较大的问题依然存在。

    4、2.1版本

    更佳的省电效果:蓝牙2.1版加入了SniffSubrating的功能,透过设定在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。

    5、3.0+HS版本

    2009年4月21日,蓝牙技术联盟(Bluetooth SIG)正式颁布了新一代标准规范”Bluetooth Core Specification Version 3.0 High Speed”(蓝牙核心规范3.0版 ),蓝牙3.0的核心是”GenericAlternate MAC/PHY”(AMP),这是一种全新的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频。最初被期望用于新规范的技术包括802.11以及UMB,但是新规范中取消了UMB的应用。

    6、4.0 版本

    蓝牙4.0包括三个子规范,即传统蓝牙技术、高速蓝牙和新的蓝牙低功耗技术。蓝牙 4.0的改进之处主要体现在三个方面,电池续航时间、节能和设备种类上。拥有低成本,跨厂商互操作性,3毫秒低延迟、100米以上超长距离、AES-128加密等诸多特色此外,蓝牙4.0的有效传输距离也有所提升。3.0版本的蓝牙的有效传输距离为10米(约 32英尺),而蓝牙4.0的有效传输距离最高可达到100米(约328英尺)。

    7、典型蓝牙与BLE蓝牙对比

    蓝牙与BLE对比

    二、蓝牙的技术特点

    简单地说,蓝牙是一种短程宽带无线电技术,是实现语音和数据无线传输的全球开放性标准。它使用跳频扩谱(FHSS)、时分多址(TDMA)、码分多址(CDMA)等先进技术,在小范围内建立多种通信与信息系统之间的信息传输。

    1、Bluetooth的主要技术特点:

    (1)、工作频段 :2.4GHz的工科医(ISM)频段,无需申请许可证。大多数国家使用79个频点,载频为(2402+k)MHz(k=0,1, 2…78),载频间隔1MHz。采用TDD时分双工方式。 
    (2)、传输速率:1Mb/s(V2.0以上版本) 
    (3)、调试方式:BT=0.5的GFSK调制,调制指数为0.28-0.35。 
    (4)、采用跳频技术:跳频速率为1600跳/秒,在建链时(包括寻呼和查询)提高为3200跳/秒。蓝牙通过快跳频和短分组技术减少同频干扰,保证传输的可靠性。 
    (5)、语音调制方式:连续可变斜率增量调制(CVSD,ContinuousVariable Slope Delta Modulation),抗衰落性强,即使误码率达到4%,话音质量也可接受。 
    (6)、支持电路交换和分组交换业务:蓝牙支持实时的同步定向联接(SCO链路)和非实时的异步不定向联接(ACL链路),前者主要传送语音等实时性强的信息,后者以数据包为主。语音和数据可以单独或同时传输。蓝牙支持一个异步数据通道,或三个并发的同步话音通道,或同时传送异步数据和同步话音的通道。每个话音通道支持64kbps的同步话音;异步通道支持723.2/57.6kbps的非对称双工通信或433.9kbps的对称全双工通信。 
    (7)、支持点对点及点对多点通信:蓝牙设备按特定方式可组成两种网络:微微网(Piconet)和分布式网络(Scatternet),其中微微网的建立由两台设备的连接开始,最多可由八台设备组成。在一个微微网中,只有一台为主设备(Master),其它均为从设备(Slave),不同的主从设备对可以采用不同的链接方式,在一次通信中,链接方式也可以任意改变。几个相互独立的微微网以特定方式链接在一起便构成了分布式网络。所有的蓝牙设备都是对等的,所以在蓝牙中没有基站的概念。 
    (8)、工作距离:蓝牙设备分为三个功率等级,分别是:100mW(20dBm)、2.5mW(4dBm)和1mW(0dBm),相应的有效工作范围为:100米、10米和1米。

    三、Bluetooth的系统构成

    构成

    1、无线射频单元(Radio):

    负责数据和语音的发送和接收,特点是短距离、低功耗。蓝牙天线一般体积小、重量轻,属于微带天线。

    2、基带或链路控制单元(LinkController):

    进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。

    3、链路管理单元(LinkManager):

    负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作。

    4、蓝牙软件协议实现:

    如上图紫色部分,这个后面我们做详细说明。 
    这里写图片描述

    四、蓝牙协议规范

    传输协议、中介协议、应用协议;

    1、传输协议

    负责蓝牙设备间,互相确认对方的位置,以及建立和管理蓝牙设备间的物理链路;

    • 底层传输协议:蓝牙射频(Radio)部分、基带链路管理控制器(Baseband&Link Controller)、链路管理协议(Link ManagerProtocol LMP)。负责语言、数据无线传输的物理实现以及蓝牙设备间的联网组网。

    • 高层传输协议:逻辑链路控制与适配器(LogicalLink Control and Adaptation Protocol)L2CAP 、主机控制接口(HostControl Interface,HCI)。为高层应用屏蔽了跳频序列选择等底层传输操作,为高层程序提供有效、有利于实现数据分组格式。

    2、中介协议

    为高层应用协议或者程序,在蓝牙逻辑链路上工作提供必要的支持,为应用提供不同标准接口。

    • 串口仿真协议:RFCOMM、服务发现协议:SDP、互操作协议IrDA、网络访问协议:PPP、IP、TCP、UDP、电话控制协议:TCS、AT指令集。

    这里写图片描述

    3、应用协议

    蓝牙协议栈之上的应用软件和所涉及到的协议,如:拨号上网、语言功能的应用程序。

    蓝牙的应用框架如下:

    1. 通用应用类框架:查询、建立连接服务等;
    2. 蓝牙电话应用类框架:电话控制、语言;
    3. 蓝牙连网应用类框架:网络应用相关;
    4. 对象交互服务类框架:IrDA、OBEX;
    5. 蓝牙音视频控制类框架。

    五、硬件接口

    一般蓝牙芯片通过UART、USB、SDIO、I2S、PcCard和主控芯片通信。如下图所示,通过UART和主控芯片通信。 
    这里写图片描述

     

    第二章 蓝牙协议规范(射频、基带链路控制、链路管理)


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

    一、射频协议
    射频位置如上图红色部分。

    1、工作频率
    蓝牙工作在2.4GHz ISM频段上,蓝牙采用跳频扩谱技术主动的避免工作频段受干扰(微波炉的工作频率也是2.4GHz)。 


    地理位置    ISM频段范围    射频信道频率
    中国、美国、欧洲    2400.0~2483.5MHz    F=(2402+k)MHz,k在0、1、……78中随机取值
    法国    2446.5~2483.5MHz    F=(2454+k)MHz,k在0、1、……22中随机取值
    日本    2471.0~2497.0MHz    F=(2473+k)MHz,k在0、1、……22中随机取值
    西班牙    2445.0~2475.0MHz    F=(2449+k)MHz,k在0、1、……22中随机取值
    我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。

    2、跳频技术、发射功率、时隙
    (1)、发射功率:蓝牙发射功率分三级:一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm); 
    (2)、物理信道:蓝牙物理信道有伪随机序列控制的79个跳频点构成,不同跳频序列代表不同的信道。 


    (3)、时隙:蓝牙跳频速率为1600次/s,每个时间为625uS(1S/1600)称为一个时隙; 


    二、基带与链路控制协议


    蓝牙发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。

    作用:跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。

    1、蓝牙分组编码为小端模式;
    2、蓝牙地址
    **BD_ADDR:**BluetoothDevice Address;
    **LAP:**LowerAddress Part 低地址部分;
    UAP: UpperAddress Part 高地址部分;
    NAP: Non-significantAddress Part 无效地址部分。


    3、蓝牙时钟

    每个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(Local Clock),决定定时器的收发跳频。为了与其他设备同步,本地时钟要加一个偏移量(offset),提供给其他设备同步。

    蓝牙基带四个关键周期:312.5uS、625uS、1.25mS、1.28S。

    CLKN:本地时钟:
    CLKE:预计时钟,扫描寻呼过程中用到;
    CLK:设备实际运行的时钟频率。

    CLKE、CLK由CLKN加上一个偏移量得到的。

    4、蓝牙物理链路:
    通信设备间物理层的数据连接通道就是物理链路。

    ACL(Asynchronous Connectionless)异步无连接链路;对时间要求不敏感的数据通信,如文件数据、控制信令等。

    SCO(Synochronous Connection Oriented)同步面向连接链路;对时间比较敏感的通信,如:语音;最多只支持3条SCO链路,不支持重传。

    ACL用于数据传输;

    5、蓝牙基带分组:
    基带分组至少包括:接入码、分组头、有效载荷;
    1


    (1)、接入码用于同步、直流、载频泄漏偏置补偿标识; 
    (2)、分组头包含链路信息,确保纠正较多的错误。 
    分组类型如下:

    分组类别    Type(b3b2b1b0)    时隙    SCO    ACL
    链路控制分组    0000    1    NULL    NULL
    0001    POLL    POLL
    0010    FHS    FHS
    0011    DM1    DM1
    单时隙分组    0100    1    未定义    NULL
    0101    HV1
    0110    HV2
    0111    HV3
    1000    DV
    1001    NULL    AUX1
    3时隙分组    1010    3    未定义    DM3
    1011    DH3
    1100    未定义
    1101
    5时隙分组    1010    5    未定义    DM5
    1111
    ACL分组形式为:D(M|H)(1|3|5),D代表数据分组,M代表用2/3比例的FEC的中等速率分组;H代表不使用纠错码的高速率分组;1、3、5分别代表分组所占用的时隙数目; 
    DM1、DM3、DM5、DH1、DH3、DH5

    SCO分组形式为:HV(1|2|3)。HV代表高质量语言分组,1、2、3有效载荷所采用的纠错码方法。1为1/3比例FEC,设备2个时隙发送一个单时隙分组;2为2/3比例FEC,设备4个时隙发送一个单时隙分组;3为不使用纠错码,设备6个时隙发送一个单时隙分组

    HV1、HV2、HV3

    ALC 分组:

    类型    有效载荷头/字节    用户有效载荷/字节    FEC    CRC    对称最大速率/kbps    非对称速率/kbps
    前向    后向
    DM1    1    0~17    2/3    有    108.8    108.8    108.8
    DH1    1    0~27    无    有    172.8    172.8    172.8
    DM3    2    0~121    2/3    有    258.1    387.2    54.4
    DH3    2    0~183    无    有    390.4    585.6    86.4
    DM5    2    0~224    2/3    有    286.7    477.8    36.3
    MH5    2    0~339    无    有    433.9    723.2    57.6
    AUX1    1    0~29    无    无    185.6    185.6    185.6
    SCO分组:

    类型    有效载荷头/字节    用户有效载荷/字节    FEC    CRC    有效载荷长度    同步速率/kbps    占用Tsco数目/语言长度
    HV1    无    10    1/3        240位    64    2/1.25ms
    HV2    20    2/3    4/2.5ms
    HV3    30    无    6/3.75ms
    DV    1D    10+(0-9)D    2/3D    有D    64+57.6D    
    注释:D 只对数据段有用,DV分组包含数据段,也包含语言段。
    1
    (3)、有效载荷 分语言有效载荷、数据有效载荷。

    6、蓝牙的逻辑信道
    链路控制信道:LinkControl LC
    链路管理信道:Link Manage LM
    用户异步数据信道:User AsynchronizationUA
    用户同步数据信道:UserSynchronization US
    用户等时数据信道:UserIsochronous UI UI
    7、蓝牙的收发规则
     
    上图为RX缓存。 
     
    上图为TX缓存。 
    新分组到达时,ACL链路的RX缓存器要流量控制,SCO数据不需要流量控制;

    8、蓝牙基带信道和网络控制
    (1)、链路控制器状态: 
    待机、连接 
    寻呼page、寻呼扫描pagescan、查询inquiry、查询扫描inquiry scan、主设备相应Master Response、从设备相应Slave Response、查询相应inquiry response 
    (2) 、连接状态 
    激活模式active、呼吸模式sniff、保持模式hold、休眠模式park。 
    (3)、待机状态 
    待机状态是蓝牙设备缺省低功耗状态,此状态下本地时钟以低精度运行。蓝牙从待机转入寻呼扫描状态,对其他寻呼进行响应成为从设备;也可以从待机状态进入查询扫描状态,完成一个完整的寻呼,成为主设备。

    9、接入过程
    注释: 
    IAC Inquiry AccessCode 查询接入码; 
    GIAC:通用查询接入码 DIAC:专用查询接入码; 
    DAC:DeviceAccess Code 设备接入码; 
    LAP: 
    建立连接,必须使用查询、寻呼;查询过程使用IAC,发现覆盖区域内的设备、设备的地址及其时钟;连接过程使用DAC,建立连接的设备处理寻呼过程,成为主设备。

    (1)、查询过程 
    蓝牙设备通过查询来发现通信范围内的其他蓝牙设备。查询信息分为GIAC、DIAC两种。查询发起设备收集所有相应设备的地址、时钟信息。 
    一设备进入查询状态去发现其他设备,查询状态下连续不断的在不同频点发送查询消息。查询的跳频序列有GIAC的LAP导出。 
    一设备想被其他设备发现,就要周期性进入 查询扫描状态,以便相应查询消息。如:我们选择设备多长时间可见,其实就是 进入查询扫描状态。 
    A、查询扫描 
    查询扫描状态下,接收设备扫描接入码的时间长度,足以完成对16个频率的扫描。扫描区间长度Twindow inquiry scan。扫描在同一个频率上进行,查询过程用32跳专用查询跳频序列,此序列有通用查询的地址决定,相位有本地时钟决定,每隔1.28S变化一次。 
    B、查询 
    与寻呼类似,TX用查询跳频序列、RX用查询相应跳频序列。 
    C、查询相应 
    从设备响应查询操作。每个设备都有自己的时钟,使用查询序列相位相同的几率比较小。为了避免多个设备在同一查询跳频信道同时激活,从设备查询响应规定:从设备收到查询消息,产生0-1023只觉得额一个随机数,锁定当时相位输入值进行跳频选择,从设备此后的RAND时隙中返回到连接或者待机状态。

    (2)、寻呼扫描 
    DAC:DeviceAccess Code 设备接入码 
    寻呼扫描状态下的设备扫描窗口Twindowpage scan内监听自己的DAC。监听只在一个跳频点进行。Twindow page scan足够覆盖16个寻呼扫描频点。 
    寻呼扫描状态,扫描在同一个频率上进行,持续1.28S,在选择另一个不同频率。

    SR模式    Tpage scan    寻呼次数Npage
    R0    连续    >=1
    R1    <=1.28S    >=128
    R2    <=2.56S    >=256
    预留    –    –
    (3)、寻呼 
    主设备使用寻呼发起一个主—从设备连接,通过在不同的跳频点上重复发送从设备DAC来扑捉从设备,从设备在寻呼扫描状态被唤醒,接收寻呼。 
    (4)、寻呼相应过程

    三、链路管理器
     
    如上图红色部分,负责完成设备:功率管理、链路质量管理、链路控制管理、数据分组管理、链路安全管理。

    1、链路管理协议数据单元
    蓝牙链路管理器接收到高层的控制信息后,不是向自身的基带部分分发控制信息,就是与另一台设备的链路管理器进行协商管理。这些控制信息封装在链路管理协议数据单元LMP_PDU中,由ACL分组的有效载荷携带。

    2、链路管理器协议规范
    (1)、设备功率管理 
    RSSI保持模式、呼吸模式、休眠模式。 
    (2)、链路质量管理 QoSQuality of Service 
    A、ACL链路。 
    B、SCO链路。 
    (3)、链路控制管理 
    设备寻呼模式、设备角色转换、时钟计时设置、信息交换:版本信息、支持特性、设备名称;建立连接、链路释放。 
    (4)、数据分组管理

    第二章 蓝牙协议规范(射频、基带链路控制、链路管理)


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

    一、射频协议
    射频位置如上图红色部分。

    1、工作频率
    蓝牙工作在2.4GHz ISM频段上,蓝牙采用跳频扩谱技术主动的避免工作频段受干扰(微波炉的工作频率也是2.4GHz)。 


    地理位置    ISM频段范围    射频信道频率
    中国、美国、欧洲    2400.0~2483.5MHz    F=(2402+k)MHz,k在0、1、……78中随机取值
    法国    2446.5~2483.5MHz    F=(2454+k)MHz,k在0、1、……22中随机取值
    日本    2471.0~2497.0MHz    F=(2473+k)MHz,k在0、1、……22中随机取值
    西班牙    2445.0~2475.0MHz    F=(2449+k)MHz,k在0、1、……22中随机取值
    我国的蓝牙频率在2.402GHz~2.483GHz,蓝牙每个频道的宽度为1MHz,为了减少带外辐射的干扰,保留上、下保护为3.5MHz和2MHz,79个跳频点中至少75个伪随机码跳动,30S内任何一个频点使用时长不能超过0.4S。

    2、跳频技术、发射功率、时隙
    (1)、发射功率:蓝牙发射功率分三级:一级功率100mW(20dBm);二级功率2.5mW(4dBm);三级功率1mW(0dBm); 
    (2)、物理信道:蓝牙物理信道有伪随机序列控制的79个跳频点构成,不同跳频序列代表不同的信道。 


    (3)、时隙:蓝牙跳频速率为1600次/s,每个时间为625uS(1S/1600)称为一个时隙; 


    二、基带与链路控制协议


    蓝牙发送数据时,基带部分将来自高层的数据进行信道编码,向下发给射频进行发送;接收数据时,将解调恢复空中数据并上传给基带,基带进行信道编码传送给上层。

    作用:跳频选择、蓝牙编址、链路类型、信道编码、收发规则、信道控制、音频规范、安全设置。

    1、蓝牙分组编码为小端模式;
    2、蓝牙地址
    **BD_ADDR:**BluetoothDevice Address;
    **LAP:**LowerAddress Part 低地址部分;
    UAP: UpperAddress Part 高地址部分;
    NAP: Non-significantAddress Part 无效地址部分。


    3、蓝牙时钟

    每个蓝牙设备都有一个独立运行的内部系统时钟,称为本地时钟(Local Clock),决定定时器的收发跳频。为了与其他设备同步,本地时钟要加一个偏移量(offset),提供给其他设备同步。

    蓝牙基带四个关键周期:312.5uS、625uS、1.25mS、1.28S。

    CLKN:本地时钟:
    CLKE:预计时钟,扫描寻呼过程中用到;
    CLK:设备实际运行的时钟频率。

    CLKE、CLK由CLKN加上一个偏移量得到的。

    4、蓝牙物理链路:
    通信设备间物理层的数据连接通道就是物理链路。

    ACL(Asynchronous Connectionless)异步无连接链路;对时间要求不敏感的数据通信,如文件数据、控制信令等。

    SCO(Synochronous Connection Oriented)同步面向连接链路;对时间比较敏感的通信,如:语音;最多只支持3条SCO链路,不支持重传。

    ACL用于数据传输;

    5、蓝牙基带分组:
    基带分组至少包括:接入码、分组头、有效载荷;
    1


    (1)、接入码用于同步、直流、载频泄漏偏置补偿标识; 
    (2)、分组头包含链路信息,确保纠正较多的错误。 
    分组类型如下:

    分组类别    Type(b3b2b1b0)    时隙    SCO    ACL
    链路控制分组    0000    1    NULL    NULL
    0001    POLL    POLL
    0010    FHS    FHS
    0011    DM1    DM1
    单时隙分组    0100    1    未定义    NULL
    0101    HV1
    0110    HV2
    0111    HV3
    1000    DV
    1001    NULL    AUX1
    3时隙分组    1010    3    未定义    DM3
    1011    DH3
    1100    未定义
    1101
    5时隙分组    1010    5    未定义    DM5
    1111
    ACL分组形式为:D(M|H)(1|3|5),D代表数据分组,M代表用2/3比例的FEC的中等速率分组;H代表不使用纠错码的高速率分组;1、3、5分别代表分组所占用的时隙数目; 
    DM1、DM3、DM5、DH1、DH3、DH5

    SCO分组形式为:HV(1|2|3)。HV代表高质量语言分组,1、2、3有效载荷所采用的纠错码方法。1为1/3比例FEC,设备2个时隙发送一个单时隙分组;2为2/3比例FEC,设备4个时隙发送一个单时隙分组;3为不使用纠错码,设备6个时隙发送一个单时隙分组

    HV1、HV2、HV3

    ALC 分组:

    类型    有效载荷头/字节    用户有效载荷/字节    FEC    CRC    对称最大速率/kbps    非对称速率/kbps
    前向    后向
    DM1    1    0~17    2/3    有    108.8    108.8    108.8
    DH1    1    0~27    无    有    172.8    172.8    172.8
    DM3    2    0~121    2/3    有    258.1    387.2    54.4
    DH3    2    0~183    无    有    390.4    585.6    86.4
    DM5    2    0~224    2/3    有    286.7    477.8    36.3
    MH5    2    0~339    无    有    433.9    723.2    57.6
    AUX1    1    0~29    无    无    185.6    185.6    185.6
    SCO分组:

    类型    有效载荷头/字节    用户有效载荷/字节    FEC    CRC    有效载荷长度    同步速率/kbps    占用Tsco数目/语言长度
    HV1    无    10    1/3        240位    64    2/1.25ms
    HV2    20    2/3    4/2.5ms
    HV3    30    无    6/3.75ms
    DV    1D    10+(0-9)D    2/3D    有D    64+57.6D    
    注释:D 只对数据段有用,DV分组包含数据段,也包含语言段。
    1
    (3)、有效载荷 分语言有效载荷、数据有效载荷。

    6、蓝牙的逻辑信道
    链路控制信道:LinkControl LC
    链路管理信道:Link Manage LM
    用户异步数据信道:User AsynchronizationUA
    用户同步数据信道:UserSynchronization US
    用户等时数据信道:UserIsochronous UI UI
    7、蓝牙的收发规则
     
    上图为RX缓存。 
     
    上图为TX缓存。 
    新分组到达时,ACL链路的RX缓存器要流量控制,SCO数据不需要流量控制;

    8、蓝牙基带信道和网络控制
    (1)、链路控制器状态: 
    待机、连接 
    寻呼page、寻呼扫描pagescan、查询inquiry、查询扫描inquiry scan、主设备相应Master Response、从设备相应Slave Response、查询相应inquiry response 
    (2) 、连接状态 
    激活模式active、呼吸模式sniff、保持模式hold、休眠模式park。 
    (3)、待机状态 
    待机状态是蓝牙设备缺省低功耗状态,此状态下本地时钟以低精度运行。蓝牙从待机转入寻呼扫描状态,对其他寻呼进行响应成为从设备;也可以从待机状态进入查询扫描状态,完成一个完整的寻呼,成为主设备。

    9、接入过程
    注释: 
    IAC Inquiry AccessCode 查询接入码; 
    GIAC:通用查询接入码 DIAC:专用查询接入码; 
    DAC:DeviceAccess Code 设备接入码; 
    LAP: 
    建立连接,必须使用查询、寻呼;查询过程使用IAC,发现覆盖区域内的设备、设备的地址及其时钟;连接过程使用DAC,建立连接的设备处理寻呼过程,成为主设备。

    (1)、查询过程 
    蓝牙设备通过查询来发现通信范围内的其他蓝牙设备。查询信息分为GIAC、DIAC两种。查询发起设备收集所有相应设备的地址、时钟信息。 
    一设备进入查询状态去发现其他设备,查询状态下连续不断的在不同频点发送查询消息。查询的跳频序列有GIAC的LAP导出。 
    一设备想被其他设备发现,就要周期性进入 查询扫描状态,以便相应查询消息。如:我们选择设备多长时间可见,其实就是 进入查询扫描状态。 
    A、查询扫描 
    查询扫描状态下,接收设备扫描接入码的时间长度,足以完成对16个频率的扫描。扫描区间长度Twindow inquiry scan。扫描在同一个频率上进行,查询过程用32跳专用查询跳频序列,此序列有通用查询的地址决定,相位有本地时钟决定,每隔1.28S变化一次。 
    B、查询 
    与寻呼类似,TX用查询跳频序列、RX用查询相应跳频序列。 
    C、查询相应 
    从设备响应查询操作。每个设备都有自己的时钟,使用查询序列相位相同的几率比较小。为了避免多个设备在同一查询跳频信道同时激活,从设备查询响应规定:从设备收到查询消息,产生0-1023只觉得额一个随机数,锁定当时相位输入值进行跳频选择,从设备此后的RAND时隙中返回到连接或者待机状态。

    (2)、寻呼扫描 
    DAC:DeviceAccess Code 设备接入码 
    寻呼扫描状态下的设备扫描窗口Twindowpage scan内监听自己的DAC。监听只在一个跳频点进行。Twindow page scan足够覆盖16个寻呼扫描频点。 
    寻呼扫描状态,扫描在同一个频率上进行,持续1.28S,在选择另一个不同频率。

    SR模式    Tpage scan    寻呼次数Npage
    R0    连续    >=1
    R1    <=1.28S    >=128
    R2    <=2.56S    >=256
    预留    –    –
    (3)、寻呼 
    主设备使用寻呼发起一个主—从设备连接,通过在不同的跳频点上重复发送从设备DAC来扑捉从设备,从设备在寻呼扫描状态被唤醒,接收寻呼。 
    (4)、寻呼相应过程

    三、链路管理器
     
    如上图红色部分,负责完成设备:功率管理、链路质量管理、链路控制管理、数据分组管理、链路安全管理。

    1、链路管理协议数据单元
    蓝牙链路管理器接收到高层的控制信息后,不是向自身的基带部分分发控制信息,就是与另一台设备的链路管理器进行协商管理。这些控制信息封装在链路管理协议数据单元LMP_PDU中,由ACL分组的有效载荷携带。

    2、链路管理器协议规范
    (1)、设备功率管理 
    RSSI保持模式、呼吸模式、休眠模式。 
    (2)、链路质量管理 QoSQuality of Service 
    A、ACL链路。 
    B、SCO链路。 
    (3)、链路控制管理 
    设备寻呼模式、设备角色转换、时钟计时设置、信息交换:版本信息、支持特性、设备名称;建立连接、链路释放。 
    (4)、数据分组管理
    --------------------- 

    第三章 蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)
    一、主机控制接口协议 HCI
    蓝牙主机-主机控模型 


    蓝牙软件协议栈堆的数据传输过程: 


    1、蓝牙控制器接口数据分组:
    指令分组、事件分组、数据分组

    (1)、指令分组 


    如:Accpet Connection Request

    Opcode为:0x0409
    参数长度为: 07
    参数中蓝牙地址为:00:0d:fd:5f:16:9f
    角色为:从设备 0x01
    大端数据模式

    指令为:09 04 07 9f 16 5f fd 0d 00 01
    (2)、事件分组 


     
    如上图:

    Opcode :0x0409
    状态: 0x00
    总长度: 4字节
    命令状态:0x0f
    (3)、数据分组 
    ACL 数据分组

    连接句柄(12bit)    PB(2bit)    BC(2bit)    数据长度(16bit)
    数据…………
    注:PB  Packet_Boundary  BC Broadcast Flag
    1
    SCO 数据分组

    连接句柄(12bit)    PB(2bit)    BC(2bit)    数据长度(16bit)
    数据…………
    (4)、RS232分组指示器:

    HCI 分组类型    RS232分组指示器
    HCI指令分组    0x01
    HCI ACL数据分组    0x02
    HCI SCO数据分组    0x03
    HCI事件分组    0x04
    HCI错误消息分组    0x05
    HCI协商分组    0x06
    2、HCI控制命令
    (1)、链路控制指令

    命令    OCF    概述
    Inquiry    0x0001    蓝牙设备进入查询模式,搜索临近设备
    Inquiry Cancel    0x0002    退出查询模式
    Periodic Inquiry Mode    0x0003    蓝牙设备在指定周期内自动查询
    Exit Periodic Inquiry Mode    0x0004    退出自动查询模式
    Create Connection    0x0005    按指定蓝牙设备的BD_ADDR创建ACL链路
    Disconnect    0x0006    终止现有连接
    Add SCO Connection    0x0007    利用连接句柄参数指定的ACL连接创建SCO
    Cancel Create Connection    0x0008    
    Accept Connection Request    0x0009    接收新的呼入连接请求
    Reject Connection Request    0x000A    拒绝新的呼入连接请求
    Link Key Request Reply    0x000B    应答从主机控制器发出的链路密钥请求事件,并指定存储在主机上的链路密钥做为与BD_ADDR指定的蓝牙设备进行连接使用的链路密钥请求事件
    Link Key Request Negative Reply    0x000C    如果主机上没有存储链路密钥,作为与BD_ADDR指定的蓝牙设备进行连接使用的链路密钥,就应答从主机控制器发出的链路密钥请求事件
    PIN Code Request Reply    0x000D    应答从主机控制器发出的PIN请求事件,并指定用于连接的PIN
    PIN Code Request Negative Reply    0x000E    当主机不能指定连接的PIN时,应回答从机控制器发出的PIN请求事件
    Change Connection Packet Type    0x000F    改变正在建立连接的分组类型
    Authentication Request    0x0011    指定连接句柄关联的两个蓝牙设备之间建立身份鉴权
    Set Connection Encryption    0x0013    建立取消连接加密
    Change Connection Link Key    0x0015    强制关联了连接句柄的两个设备建立连接,并生成一个新的链路密钥
    Master Link Key    0x0017    强制关联了连接句柄的两个设备利用主设备时链路密钥或常规密钥
    Remote Name Request    0x0019    获取远端设备的名称
    Cancel Remote Name Request        
    Read Remote Supported Features    0x001B    请求远端设备所支持的特性列表
    Read Remote Extended Features        
    Read Remote Version Information    0x001D    从远端设备读取版本信息
    Read Clock Offset    0x001F    读取远端的时钟信息
    (2)、链路策略指令

    命令    OCF    简介
    Hold Mode    0x0001    改变LM状态和本地及远程设备为主模式的LM位置
    Sniff Mode    0x0003    改变LM状态和本地及远程设备为呼吸模式的LM位置
    Exit Sniff Mode    0x0004    结束连接句柄在当前呼吸模式里的呼吸模式
    Park State    0x0005    改变LM状态和本地及远程设备为休眠模式的LM位置
    Exit Park State    0x0006    切换从休眠模式返回到激活模式的蓝牙设备
    QoS Setup    0x0007    指出连接句柄的服务质量参数
    Role Discovery    0x0009    蓝牙设备连接后确定自己的主从角色
    Switch Role    0x000B    角色互换
    Read Link Policy Settings    0x000C    为指定连接句柄读链路策略设置。链路策略设置允许主机控制器指定用于连接句柄的LM连接模式
    Write Link Policy Settings    0x000D    为指定连接句柄写链路策略设置。链路策略设置允许主机控制器指定用于连接句柄的LM连接模式
    Read Default Link Policy Settings    0x000E    
    Write Default Link Policy Settings    0x000F    
    Flow Specification    0X0010    
    (3)、主机控制器与基带指令

    Set Event Mark    0x0001    使能主机过滤HCI产生的事件
    Reset    0x0003    复位蓝牙控制器、链路管理器、基带链路管理器
    Set Event Filter    0x0005    使能主机指定不同事件过滤
    Flush    0x0008    针对指定的蓝牙句柄,放弃所有作为当前待传输数据,甚至当前是属于多个在主机控制器里的L2CAP指令的数据块
    Read PIN Type    0x0009    主机读取指定主机的PIN类型是可变的还是固定的
    Write PIN Type    0x000A    主机写入指定主机的PIN类型是可变的还是固定的
    Create New Unit Key    0x000B    创建新的单一密钥
    Read Stored Link Key    0x000D    读取存放在蓝牙控制器中的单个或者多个密钥
    Write Stored Link Key    0x0011    写入存放在蓝牙控制器中的单个或者多个密钥
    Delete Stored Link Key    0x0012    删除存放在蓝牙控制器中的单个或者多个密钥
    Write Local Name    0x0013    修改蓝牙设备名称
    Read Local Name    0x0014    读取蓝牙设备名称
    Read Connection Accept Timeout    0x0015    读连接识别超时参数值,定时器终止后蓝牙硬件自动拒绝连接
    Write Connection Accept Timeout    0x0016    写连接识别超时参数值,定时器终止后蓝牙硬件自动拒绝连接
    Read Page Timeout    0x0017    读寻呼超时参数值,本地设备返回连接失败前,该值是允许蓝牙硬件定义等待远程设备连接申请时间
    Write Page Timeout    0x0018    写寻呼超时参数值,本地设备返回连接失败前,该值是允许蓝牙硬件定义等待远程设备连接申请时间
    Read Scan Enable    0x0019    写出扫描允许参数值—用来控制蓝牙设备周期性查询
    Write Scan Enable    0x001A    读出扫描允许参数值—用来控制蓝牙设备周期性查询
    Read Page Scan Activity    0x001B    读寻呼扫描间隔、寻呼扫描区间参数
    Write Page Scan Activity    0x001C    写寻呼扫描间隔、寻呼扫描区间参数
    Read Inquiry Scan Activity    0x001D    读查询扫描间隔、查询扫描区间参数
    Write Inquiry Scan Activity    0x001E    写查询扫描间隔、查询扫描区间参数
    Read Authentication Enable    0x001F    读取鉴权允许参数—控制蓝牙设备是否对每个连接进行鉴权
    Write Authentication Enable    0x0020    写取鉴权允许参数—控制蓝牙设备是否对每个连接进行鉴权
    Read Encryption Mode    0x0021    读加密模式数值—控制蓝牙设备是否对每个连接进行加密
    Write Encryption Mode    0x0022    写加密模式数值—控制蓝牙设备是否对每个连接进行加密
    Read Class Of Device    0x0023    读取设备类型参数值,用于区别设备能力
    Write Class Of Device    0x0024    写设备类型参数值,用于区别设备能力
    Read Voice Setting    0x0025    读取语音设置参数值,控制语音连接的各种设置
    Write Voice Setting    0x0026    写语音设置参数值,控制语音连接的各种设置
    Read Automatic Flush Timeout    0x0027    对指定句柄,读取刷新超时值
    Write Automatic Flush Timeout    0x0028    对指定句柄,写入刷新超时值
    Read Num Broadcast Retransmissions    0x0029    读取设备的广播重复发送次数,重复发送提高广播消息的可靠性
    Write Num Broadcast Retransmissions    0x002A    写入设备的广播重复发送次数,重复发送提高广播消息的可靠性
    Read Hold Mode Activity    0x002B    读取Hold Mode Activity的参数值,用来确定Hold挂起的时间
    Write Hold Mode Activity    0x002C    写入Hold Mode Activity的参数值,用来确定Hold挂起的时间
    Read Transmit Power Level    0x002D    对指定句柄,读取传输功率的参数值
    Read Synchronous Flow Control Enable    0x002E    读取SCO流量控制设置。通过使用该设置,主机控制器决定是否主机控制器发送与SCO连接句柄相关的完成分组事件的数量
    Write Synchronous Flow Control Enable    0x002F    读写入SCO流量控制设置。通过使用该设置,主机控制器决定是否主机控制器发送与SCO连接句柄相关的完成分组事件的数量
    Set Host Controller To Host Flow Control    0x0031    主机控制器的打开、关闭,主机控制器到主机的流量控制
    Host Buffer Size    0x0033    主机通知主机控制器自己的ACL、SCO数据缓冲区大小。主机控制器分段传输数据,而数据不会超出这个范围
    Host Number Of Completed Packets    0x0035    当主机对于任何连接的句柄准备接受较多的HCI指令时,该指令用于通过主机指出主机控制器
    Read Link Supervision Timeout    0x0036    读取连接管理超时参数。主从蓝牙设备用该参数监视链路丢失情况
    Write Link Supervision Timeout    0x0037    写入连接管理超时参数。主从蓝牙设备用该参数监视链路丢失情况
    Read Number of Supported IAC    0x0038    读取查询扫描期间本地蓝牙扫描的查询识别码(ICA)的数值
    Read Current IAC LAP    0x0039    读取创建在查询扫描期间本地蓝牙设备正同时扫描的蓝牙识别码的LAP
    Write Current IAC LAP    0x003A    写入创建在查询扫描期间本地蓝牙设备正同时扫描的蓝牙识别码的LAP
    Read Page Scan Period Mode    0x003B    读取本地蓝牙设备的强制寻呼扫描区间模式
    Write Page Scan Period Mode    0x003C    写入本地蓝牙设备的强制寻呼扫描区间模式
    Read Page Scan Mode    0x003D    读取本地蓝牙设备的默认寻呼扫描区间模式
    Write Page Scan Mode    0x003E    写入本地蓝牙设备的默认寻呼扫描区间模式
    (4)、信息指令参数

    Read Local Version Information    0x0001    读取本地蓝牙版本信息
    Read Local Supported Features    0x0003    读取本地蓝牙设备特征表
    Read Local Extended Features    0x0004    
    Read Buffer Size    0x0005    返回HCI缓冲容量。缓冲容量用于传输缓冲数据
    Read Country Code [Deprecated]    0x0007    读取国家代码状态参数值
    Read BD ADDR    0x0009    读取BD_ADDR的参数值
    (5)、状态指令参数

    Read Failed Contact Count    0x0001    读取对于其他设备特殊连接的Failed Contact Count参数值。Failed Contact Count记录在刷新时终止及当前正在传输的L2CAP数据指令被自动刷新后,主单元或从单元不能连续响应事件次数
    Reset Failed Contact Count    0x0002    复位时对于其他设备的连接的Failed Contact Count的参数值。Failed Contact Count记录在刷新时终止及当前正在传输的L2CAP数据指令被自动刷新后,主单元或从单元不能连续响应事件次数
    Get Link Quality    0x0003    读取指定连接句柄的Link Quality的值
    Read RSSI    0x0005    读取对于其他蓝牙设备连接句柄的接收信号强度指示
    Read AFH Channel Map    0x0007    
    Read BD Clock    0x0009    
    (6)、测试指令

    Read Loopback Mode    0x0001    读取主机端控制器会送模式的设置值。回送模式设置可以确定信息发送路径
    Write Loopback Mode    0x0002    写入主机控制器会送模式的设置值。回送模式设置可以确定信息发送路径
    Enable Device Under Test Mode    0x0003    允许本地蓝牙设备模块通过LMP测试指令接入测试模式。当主机要求本地设备作为待测试设备,实现蓝牙测试模式文件中规定测试场景,则发送该指令
    (7)、错误代码

    错误代码    错误含义    错误代码    错误含义
    0x01    位置HCI指令    0x14    由于另一端引起连接中断:资源限制
    0x02    不能连接    0x15    由于另一端引起连接中断:关机
    0x03    硬件故障    0x16    本机中断连接
    0x04    寻呼超时    0x17    重复尝试
    0x05    身份验证失败    0x18    不允许匹配
    0x06    键丢失    0x19    未知LMP PDU
    0x07    存储器已满    0x1A    不支持远端特性
    0x08    连接超时    0x1B    拒绝SCO补偿
    0x09    最大连接数    0x1C    拒绝SCO间歇模式
    0x0A    连接到设备A的最大SCO连接数    0x1D    拒绝SCO无线模式
    0x0B    ACL连接已存在    0x1E    非法链路管理参数
    0x0C    指令非法    0x1F    未特别指明错误
    0x0D    由于资源有限,主机被拒绝    0x20    不支持链路管理器协议参数
    0x0E    由于安全原因,主机被拒绝    0x21    不允许角色改变
    0x0F    由于远端设备单连接设备,主机拒绝    0x22    链路管理响应超时
    0x10    主机超时    0x23    链路管理错误处理事务冲突
    0x11    不支持特性或参数值    0x24    不允许LMP PDU
    0x12    非法主机控制接口指令    0x25~0xFF    保留
    0x13    由于另一端引起连接中断:用户中断连接        
    二、逻辑链路控制与适配协议 L2CAP
    L2CAP位于基带之上,将基带的数据分组转换为便于高层应用的数据分组格式,并提供协议复用和服务质量交换等功能。L2CAP只支持ACL数据传输,不支持SCO数据。

    L2CAP本身不提供加强信道可靠性和保证数据完整性的机制,其信道的可靠性依靠基带提供。

    1、协议复用:
    底层传输协议没有提供对高层协议的复用机制,因而L2CAP支持高层协议复用,L2CAP层可以区分其上的SDP、RFCOMM、TCS等。

    2、分段重组:
    L2CAP层帮助实现基带的短PDU和高层的长PDU相互传输,L2CAP本身不完成任何PDU的分段重组,具体的分段重组有低层和高层来完成。

    3、服务质量
    Qualityof Serivce 信息的交换:蓝牙建立连接的过程中,L2CAP允许交互蓝牙所期望的服务质量,建立完成后,通过监视资源的使用情况,来保证服务质量。

    4、组抽象:
    L2CAP忽略地址组概念,他只关心数据。 
    L2CAP信道有三种类型: 
    **A、面向连接信道:**Connection-OrientedCO,用于两个设备之间的数据通信。 
    **B、无连接信道:**Connection-LessCL,用来向一组设备广播方式传输数据。CID为固定值:0x0002。 
    **C、信令信道:**Signaling,用于创建CO通道,可以通过协商改变CO信道的特性。 
    CL信道的L2CAP_PDU

    长度(2bytes)    信道ID(0x0002)    PSM(最小为2bytes)    有效载荷
    PSM为 协议/服务复用器Protocol/Service Multiplexer,一般为SDP、RFCOMM、TCS等中介协议复用。小于0x1000的值,0x0001对应SDP,0x0003对应RFCOMM、0x0005对应TCS。

    (1)、蓝牙逻辑链路控制与适配协议信令: 
    L2CAP的信令通道的CID为0x0001 
    信令指令分组:

    长度(2byte)    CID(0x0001)    指令1    指令2    ……………    指令n
    L2CAP 分组头部分    
    信令指令格式:

    代码(1byte)    标识符(1byte)    长度(2byte)    数据
    信令指令头


    如上图所示,一条L2CAP信令,1为L2CAP分组头,2为信令指令头,3为数据部分。 
    L2CAP: 
    Role:Master 
    Address:11 
    PDULength: 6 //指令的长度,值为06 00 
    ChannelID: 0x0001 (Signaling)//L2CAP的信令通道,值为01 00 
    Code:Information request//信息请求,值为0a 
    Identifier:1//标识符,值为01 
    CommandLength: 2//命令长度,值为02 00 
    InfoType:Extended features supported//02 00 
    所以这条指令完整的为: 
    06 00 01 00 0a 01 02 00 02 00

    信令的其他操作如下: 


    L2CAP信令指令码:

    Code    Description    
    0x00    RESERVED    保留
    0x01    Command reject    拒绝命令
    0x02    Connection request    连接请求
    0x03    Connection response    连接响应
    0x04    Configure request    配置请求
    0x05    Configure response    配置响应
    0x06    Disconnection request    断开请求
    0x07    Disconnection response    断开响应
    0x08    Echo request    
    0x09    Echo response    
    0x0A    Information request    信息请求
    0x0B    Information response    信息响应
    1)、连接请求Connection_Request Code=0x02

    代码(0x02)    标识符(1字节)    长度(2字节)    PSM(2字节)    源CID(2字节)
    例如:SDP 连接请求

    如上红框所示:

    代码(0x02)    标识符(1字节)    长度(2字节)    PSM(2字节)    源CID(2字节)
    0x02    3    4    SDP    0x0040
    2)、连接相应Connection_Response Code=0x03

    代码(0x03)    标识符    长度    目标CID    源CID    结果    状态
    例如:SDP请求响应 
     
    如上面红框所示:

    代码(0x03)    标识符    长度    目标CID    源CID    结果    状态
    0x03    3    8    0x0040    0x0040    0x0000    
    (2)、MTU MAXIMUMTRANSMISSION UNIT最大传输单元

     
    MTU最大传输单元,L2CAP应用必须支持最小为48字节的MTU,默认值为672 
    (3)、QoS 服务质量

    三、服务发现协议SDP
    SDP两种服务发现模式: 
    1)、服务搜索:查询具有特定服务属性的服务; 
    2)、服务浏览:简单的浏览全部可用服务。

    1 、PDU 格式:(协议数据单元)
    PDU ID(1byte)    Transaction ID(2byte)    参数长度(2byte)    参数1    ……    参数N
    Header    
    不同PDU ID实现SDP的不同功能,概述如下表格:

    Value    Parameter Descirption    
    0x00    Reserved    保留
    0x01    SDP_ErrorResponse    错误响应
    0x02    SDP_ServiceSearchRequest    服务搜索请求
    0x03    SDP_ServiceSearchResponse    服务搜索响应
    0x04    SDP_ServiceAttributeRequest    服务属性请求
    0x05    SDP_ServiceAttributeResponse    服务属性响应
    0x06    SDP_ServiceSearchAttributeRequest    服务搜索属性请求
    0x07    SDP_ServiceSearchAttributeResponse    服务搜索属性响应
    0x08-0xff    Reserved    保留
    2、服务记录表
    SDP的服务记录表对每一个服务进行描述,每条记录包含服务句柄、一组服务属性: 


    Service Record Attributes:服务记录;
    Service Record Handle 服务句柄;


    四、串口仿真协议 RFCOMM

    为建立在串口之上的传统应用提供环境接口,使他们可以做比较少协议改动就可以在蓝牙无线通信无线链路上工作。多路串口仿真是RFCOMM的重要功能,通过多路复用器(multiplexer),一条L2CAP链路可以同时 多个串行应用。 
    两台设备间的串口仿真: 


    RFCOMM 两个蓝牙设备之间可以支持多达60多路仿真串口。

    RFCOMM帧类型如下:

    SABM    异步平衡模式设置指令
    UA    未加编号的确认响应
    DM    断开连接模式响应
    DISC    断开连接指令
    UIH    带头校验的未编号信息命令和响应

     

    展开全文
  • 用术语来讲,蓝牙其实是一个开放性的无线通信标准,通过使用隐形的连接线代替电缆来完成“保持联系、不靠电缆、拒绝插头”的目标,虽然目前它的魅力不足WIFI。  蓝牙简介  蓝牙是一种支持设备短距离...
  • 蓝牙HSP协议

    2018-05-11 18:43:47
    蓝牙官网HSP协议标准,官方原版。HSP 描述了Bluetooth 耳机如何与计算机或其它Bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口。
  • BM4342 模块是一款符合蓝牙标准的蓝牙产品,单模双协议, 基于BK方案开发的.目前支持的协议包括 BR/SPP/HID, 支持 UART 通信( 流控功能可定制),主要应用于IOT、无线扫描枪、无线测量监控、医疗、蓝牙POS机.
  • 蓝牙协议学习整理(一)蓝牙的概述

    万次阅读 多人点赞 2017-11-01 15:45:51
    第一章 蓝牙的概述一、蓝牙版本信息蓝牙共有六个版本1.1/1.2/2.0/2.1/3.0/4.01、1.1版本传输率约在748~810kb/s,因是早期设计,容易受到同频率之产品所干扰下影响通讯质量。2、1.2版本同样是只有748~810kb/s 的传输...
  • BLE低功耗蓝牙协议

    2022-03-14 17:52:42
    (1)蓝牙核心协议(Bluetooth Core) (2)蓝牙应用层协议(Bluetooth Application) (3)BLE低功耗蓝牙核心协议层详解(Bluetooth Core) ① 物理层(PHY) ② 链路层(LL) ③ 主机控制接口层(HCI) ④ ...
  • 在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针。谷歌和Broadcom之间的合作,开发新的蓝牙协议栈,取代了基于堆栈的Bluez。...
  • 这种芯片的速度是当今其他蓝牙解决方案的三倍,也是业内封装规格最小的单芯片之一,它支持蓝牙标准2.0版本以及最新发布的增强数据级协议(EDR),具备超低功耗和出色的射频性能,是GSM、EDGE和UMTS移动电话的理想...
  • 摘 要:针对具有蓝牙配置的手机,运用蓝牙协议栈和J2ME 蓝牙通信API 来实现手机文件数据的传输。在分析蓝牙通信流程的基础之上,研究C/S 模式下J2ME 蓝牙通信的实现、手机内文件的收发以及图片处理等问题,并对关键...
  • 蓝牙协议(1)-- 基本协议

    万次阅读 多人点赞 2018-11-30 11:56:36
    蓝牙协议分析(1)基本概念  蓝牙4.1,是一个大杂烩:BR/EDR沿用旧的蓝牙规范;LE抄袭802.15.4;AMP直接使用802.11。而这一切的目的,就是以兼容性和易用性为基础,在功耗和传输速率之间左右为难。 1.蓝牙技术的...
  • 随着测控系统的自动化程度、复杂性、 和可靠性要求的不断提高,人们...以往的现场总线一般都是采用有线的连接方式,采用一定的总线协议;而无线网络的出现,为现场总线的发展开辟了新的领域,提高了现场总线的灵活性。
  • 蓝牙4.0BLE协议浅析

    千次阅读 2018-02-28 00:03:41
    上一篇大致分析了下BLE... 原文地址 http://blog.csdn.net/zzfenglin/article/details/51706290 有兴趣的可以深入研究蓝牙协议: https://crifan.com/files/doc/docbook/bluetooth_intro/release/html/bluetoot...
  • 蓝牙4.0协议详解

    万次阅读 2018-07-31 14:52:59
    二、蓝牙4.0BLE协议协议栈的关系 三、如何使用蓝牙4.0BLE协议栈 四、深入理解蓝牙4.0BLE协议协议栈概述 协议栈基础 详细介绍如下: 五、GATT定义了若干在GATT服务器和客户端之间的通信的子过程: 六、...
  • 较其他无线协议蓝牙标准更完善,定义了各种应用的实现规范.保证设备间的互操作性,其应用及开发日益广泛。这里采用Bluecore5-MM(简称BC5-MM)设计一款车载蓝牙设备。首先介绍BC5-MM的器件特性、车载蓝牙设备的蓝牙...
  • 微功率无线通信协议

    2013-11-05 18:16:31
    电力用户用电信息采集系统通信协议第4部分基于微功率无线通信的数据传输协议
  • 蓝牙Mesh协议一基本概念

    千次阅读 2021-01-18 10:35:14
    蓝牙SIG联盟在2017年发布了蓝牙Mesh1.0的协议规格,基于低功耗广播包来实现的多对多的通信技术,Mesh协议建立在BLE的物理层和链路层上,所以也可以和BLE的蓝牙进行通信 本章主要介绍蓝牙Mesh的基本概念和协议中的...
  • 蓝牙协议简介

    千次阅读 2021-04-20 13:45:25
    从左到右依次为:经典蓝牙(BR/EDR)、双模蓝牙(同时支持BR/EDR/LE)和低功耗蓝牙(BLE)。其中经典蓝牙和低功耗蓝牙互不兼容。 其实看结构也可以看出双模蓝牙是经典蓝牙和低功耗蓝牙的合集。 (二)、蓝牙原理及...
  •  蓝牙(bluetooth)技术是一种个人无线网络的通信协议,它起源于是1998年由爱立信、IBM、英特尔、诺基亚、东芝等5家公司联合推出的一项先进的近距离无线通信技术。  1998年2月,以爱立信为首,联合东芝、IBM、...
  • 不同的应用场景有不同的需求,因此不同的应用场景对蓝牙实现方案的要求也不一样,从而催生不同的蓝牙架构实现方案,或者说蓝牙协议栈方案。 架构1:host+controller双芯片标准架构 蓝牙是跟随手机而诞生的,如何在...
  • 引言 Bluetooth(蓝牙技术)是由爱立信、诺基亚、摩托罗拉、英特尔、IBM和日立等信息技术公司发起的一种短距离无线通信协议标准。由于Bluetooth技术具有低功耗、抗干扰能力强、适用于多种通信场所以及集成电路相对...
  • 6LoWPAN——这可能是折磨人的首字母缩写词,6LoWPAN是基于IPv6的低功耗个域网络标准。这完全是为了安抚那些认为没有网络协议就没有真正互联网的人,它本质上... 蓝牙——对于物联网来说,蓝牙无线通信协议主要有两种

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,674
精华内容 5,469
关键字:

蓝牙标准通信协议