精华内容
下载资源
问答
  • 蓝牙基础(四):蓝牙协议栈之底层协议 0 前言 在这篇博客里,博主将蓝牙协议栈进行了分类,后续博客会进行分别介绍。 由于蓝牙协议栈在实际应用中已被封装起来,博主介绍的蓝牙协议不会过多涉及具体细节,比如...

    蓝牙基础(四):蓝牙协议栈之底层协议

    0 前言

    这篇博客里,博主将蓝牙协议栈进行了分类,后续博客会进行分别介绍。

    由于蓝牙协议栈在实际应用中已被封装起来,博主介绍的蓝牙协议不会过多涉及具体细节,比如数据包形式、指令形式等,更多的是围绕着功能与作用,便于理解与吸收。在建立整体认识的基础上再进行深入研究。

    这片博客只讨论BT(BR/EDR)的底层协议:RF、BB&LC、LM。

    1 射频 Radio

    射频部分位于蓝牙协议栈的最底层,与天线相接,相当于通信系统中的“空中接口”。

    1.1 射频功能

    射频部分的主要功能包括

    • 载波产生
    • 信号调制
    • 数据收发
    • 功率控制
    • 信号强度
    1.2 射频协议

    射频规范规定了蓝牙射频频段、调制方式、调频频率、发射功率、接收机灵敏度等参数。

    (1)射频频段

    工作频段:最低频率为2.402GHz,最高频率为2.48GHz
    频道宽度:1MHz
    调频频点:0 1 2 ... 7879 个
    调频频率:1600/s
    

    (2)调制方式

    高斯频移键控 GFSK
    	二进制“1”用正频偏表示,“0”用负频偏表示	
    	即通过以载频f0位中心上下偏移一定的频率分别发送二进制“0”和“1

    (3)发射功率

    蓝牙设备有 3 个功率等级
    一级功率:100mW (20dBm)
    二级功率:2.5mW (4dBm)
    三级功率:1mW (0dBm)
    

    (4)接收机灵敏度

    接收器灵敏度是接收器能够测量到的最小信号强度的度量。
    换言之,它是接收器能够检测到无线电信号、保持连接、且仍能够解调数据的最低功率电平。
    
    实际灵敏度为蓝牙通信系统误比特率达到1%时所需要的输入电平。蓝牙接收机灵敏度应该优于-70dbm
    
    1.3 信道与时隙

    (1)信道

    蓝牙的物理信道 是由 伪随机序列 控制的79个调频频点构成,即不同的调频序列代表着不同的信道
    

    (2)时隙

    蓝牙调频速率为1600/S,每个频率持续的时间为625us称为一个时隙。
    

    (3)时分双工

    主设备在偶数时隙发送数据,在奇数时隙接收数据
    从设备在偶数时隙接收数据,在奇数时隙发送数据
    
    根据数据分组的大小,一个数据分组可占用1-5个时隙进行发送与接收
    

    2 基带与链路控制器

    基带与链路控制器位于蓝牙协议栈射频的上方,链路管理器LM的下方,该协议主要解决的问题有

    射频部分何时发送,何时接收数据?
    某一时刻具体选择79个频点中的哪一个进行收发?
    射频发射功率采用三个等级中的哪一个?
    
    2.1 基带与链路控制功能
    • 跳频选择
    • 蓝牙编址
    • 链路类型
    • 信道编码
    • 收发规则
    • 信道控制
    • 音频规范
    • 安全设置
    展开全文
  • 主机和控制器的分离要追溯到蓝牙BR/EDR设备时期,控制器和主机通常会分开实现。 协议栈的实现方式采用分层的思想,控制器部分包括:物理层、链路层、主机控制接口层;主机部分包括:逻辑链路控制及自适应协议层、...

    深入理解蓝牙4.0BLE协议栈


    协议栈概述


    我们以TI的CC254X系列BLE芯片为例来深入了解下蓝牙4.0BLE协议栈。TI的蓝牙4.0BLE协议栈包含两部分:主机和控制器。主机和控制器的分离要追溯到蓝牙BR/EDR设备时期,控制器和主机通常会分开实现。

     

    协议栈的实现方式采用分层的思想,控制器部分包括:物理层、链路层、主机控制接口层;主机部分包括:逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置文件层、通用属性配置文件层;上层可以调用下层提供的函数来实现需要的功能。


    蓝牙技术联盟提供的标准规范下载链接:

    https://www.bluetooth.com/zh-cn/specifications/adopted-specifications


    蓝牙4.0标准规范CSDN下载链接:

    点击打开下载页链接



    协议栈基础


    蓝牙4.0BLE协议栈的结构图如下:



    详细介绍如下:

    1.物理层(Physical Layer,简写 PHY):

    是1Mbps自适应跳频的GFSK射频,工作于免许可证的2.4GHz ISM(工业、科学与医疗)频段。


    2.链路层(Link Layer,简写 LL):

    用于控制设备的射频状态,设备将处于五种状态之一:等待、广告、扫描、初始化、连接。广播设备不需要建立连接就可以发送数据,而扫描设备接收广播设备发送的数据;发起连接的设备通过发送连接请求来回应广播设备,如果广播设备接受连接请求,那么广播设备与发起连接的设备将会进入连接状态。发起连接的设备称为主机,接受连接请求的设备称为从机。


    3.主机控制接口层(Host Controller Interface,简写 HCI):

    为主机和控制器之间提供标准通信接口。这一层可以是软件或者硬件接口,如UART、SPI、USB等。


    4.逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol,简写 L2CAP):

    为上层提供数据封装服务,允许逻辑上的点对点数据通信。


    5.安全管理层(Security Manager,简写 SM):

    定义了配对和秘钥分配方式,并为协议栈其他层与另一个设备之间的安全连接和数据交换提供服务。


    6.属性协议层(Attribute protocol,简写 ATT):

    允许设备向另外一个设备展示一块特定的数据,称之为属性。在ATT环境中,展示属性的设备称为服务器,与之配对的设备称为客户端。链路层状态(主机和从机)与设备的ATT角色是相互独立的。例如:主机设备既可以是ATT服务器,也可以是ATT客户端;从机设备既可以是ATT服务器,也可以是ATT客户端。


    7.通用属性配置文件层(Generic Attribute profile,简写 GATT):

    定义了使用ATT的服务框架。GATT规定配置文件(profile)的结构。在BLE中,所有被profile或者服务用到的数据块称为特性,两个建立连接的设备之间的所有数据通信都是通过GATT子程序处理。GATT层用于已连接的蓝牙设备之间的数据通信,应用程序和profile直接使用GATT层。


    当两个设备建立连接之后,它们就处于下面两种角色之一:

    GATT服务器:为GATT客户端提供数据服务的设备。

    GATT客户端:从GATT服务器读写应用数据的设备。


    注意:GATT角色中的客户端和服务器的概念与链路层的主机和从机的概念完全独立,与GAP层角色中的外设和集中器的概念也是完全独立。 主机既可以是GATT客户端也可以是GATT服务器;从机既可以是GATT客户端也可以是GATT服务器。


    一个GATT服务器中可包含一个或多个GATT服务,GATT服务是完成特定功能的一系列数据的集合。每一个应用工程大致包含下列三种服务:

    (1)强制的GAP服务。这一服务包含了设备和访问信息。例如,设备、设备供应商和产品标示。它是协议栈的一部分,是BLE规范对每一个BLE设备的强制要求。这部分没有提供源代码,而是直接编译到协议栈库文件中了。

    (2)强制的GATT服务。这一服务包含了GATT服务器的信息,是协议栈的一部分,同样也是BLE规范对每一个BLE设备的要求。这部分同样没有提供源代码而是直接编译到协议栈库文件中了。

    (3)自定义服务。这部分服务包含应用数据的信息,与应用数据的传递密切相关,我们可以按照特定的格式编写自己的GATT服务。


    特性(Characteristic)是服务用到的值,以及其内容和配置信息。GATT定义了在BLE连接中发现、读取和写入属性的子过程。GATT服务器上的特性值及其内容和配置信息(称为描述符)存储于属性表中。属性表是一个数据库,包含了成为属性的小块数据,除了值本身,每个属性都包含下列属性:  

    (1)句柄:属性在表中的地址,每个属性有唯一的句柄。

    (2)类型:表示数据代表的事物,通常是蓝牙技术联盟规定或用户自定义的UUID(Universally Unique Identifier)。

    (3)权限:规定了GATT客户端设备对属性的访问权限,包括是否能访问和怎样访问。


    GATT定义了若干在GATT服务器和客户端之间的通信的子过程:

    (1)读特性值:客户端设备请求读取句柄处的特性值,服务器将此值回应给客户端(假定属性有读权限)。

    (2)使用特性的UUID读:客户端请求读基于一个特定类型的所有特性值,服务器将所有与指定类型匹配的特性的句柄和值回应给客户端设备(假设属性有读权限)。  

    (3)读多个特性值:客户端一次请求中读取几个句柄的特性值,服务器将这些特性值回应给客户端(假设属性有读权限),客户端需要知道如何解析这些不同的特性值数据。

    (4)读特性描述符:客户端请求读特定句柄处的特性描述符,服务器将特性描述符的值回应给客户端设备(假设属性有读权限)。  

    (5)使用UUID发现特性:客户端通过发送特性的类型UUID来请求发现这个特性的句柄。服务器将这个”特性”的声明回应给客户端设备,其中包括特性值的句柄以及特性的权限。

    (6)写特性值:客户端设备请求向服务器特定的句柄处写入特性值,服务器将数据是否写入成功的信息反馈给客户端(假设特性有写权限,另外有一种特殊的写类型是不需要服务器来反馈是否写入成功的信息的,使用的时候根据具体应用来具体分析使用)。

    (7)写特性描述符:客户端设备请求向服务器特定的句柄处写入特性描述符,服务器将特性描述符是否写入成功的信息反馈给客户端(假设特性描述有写权限)。  

    (8)特性值通知:服务器将一个特性值通知给客户端,客户端设备不需要向服务器请求这个数据,客户端收到这个数据时,不需要属性协议层确认特性值是否被成功接收。

    (9)特性值指示:服务器将一个特性值指示给客户端,客户端设备同样不需要向服务器请求这个数据,但是跟通知不一样的是,客户端收到这个数据之后,属性协议层必须确认特性值被成功接收。


    通知与指示功能的流程如下:





    何时发送通知或指示的条件可以在配置文件中设置,也可以通过应用来设置。要想使能通知和指示功能,需要分别在相应的句柄特性描述符写入0x00010x0002,如下表所示:



    每个Profile初始化其相应的服务并内在的通过设备的GATT服务器来注册服务。GATT服务器将整个服务加到属性表中,并为每个属性分配唯一句柄。GATT属性表中有一些特殊的属性类型,其值由蓝牙技术联盟定义:

    (1)GATT_PRIMARY_SERVICE_UUID:表示新服务的起始和提供的服务类型。

    (2)GATT_CHARACTER_UUID:称为特性声明,紧随其后的是GATT特性值。

    (3)GATT_CLIENT_CHAR_CFG_UUID:这一属性代表特性描述符,它与属性表中它前面最近的句柄处的特性值相关,它允许GATT客户端设备使能特性值通知或者指示。

    (4)GATT_CHAR_USER_DESC_UUID:这一属性代表描述符,它与属性表中它前面最近的句柄处的特性值相关,包含一个ASCII字符串,是对相关特性的描述。


    8.通用访问配置文件层(Generic Access Profile,简写 GAP):

    负责处理设备访问模式和程序,包括设备发现、建立连接、终止连接、初始化安全特性和设备配置。


    GAP层总是作为下面四种角色之一:

    (1)广播者:不可连接的广播设备。

    (2)观察者:扫描设备,但不发起建立连接。

    (3)外部设备:可连接的广播设备,可以在单个链路层连接中作为从机。

    (4)集中器:扫描广播设备并发起连接,可以在单个链路层连接中作为主机。


    外部设备广播特定的数据使集中器知道它是一个可以连接的设备。广播内容包括设备地址以及一些额外的数据,如设备名等,当然也可以是自定义的数据,只要满足广播数据中广告的格式即可。集中器收到广播数据后向外部设备发送扫描请求,然后外部设备将特定的数据回应给集中器,称为扫描回应。集中器收到扫描回应后便知道这是一个可以建立连接的外部设备。这就是设备发现的全过程。此时集中器可以向外部设备发起建立连接的请求。连接请求包括一些链接参数。关于蓝牙4.0BLE的广播和连接,请参看下面几篇博文:


    蓝牙BLE报文:

    http://blog.csdn.net/zzfenglin/article/details/51165093


    蓝牙BLE广播:

    http://blog.csdn.net/zzfenglin/article/details/51165543

    http://blog.csdn.net/zzfenglin/article/details/51166830


    蓝牙BLE连接:

    http://blog.csdn.net/zzfenglin/article/details/51303211

    http://blog.csdn.net/zzfenglin/article/details/51304084



    GAP层也处理BLE连接中安全特征的初始化。只有在已认证的连接中特定的数据才能被读写,一旦连接建立,两个设备进行配对,当配对完成后,形成加密链接的密钥。典型应用中外设请求集中器提供密钥来完成配对工作,密钥可以是一个固定的值,如000000,也可以随机生成一个数据提供给使用者,集中器设备发送正确的密钥后,两设备交换安全密钥并加密认证链接。


    在许多情况下,同一对外设和集中器会不定时地连接和断开,BLE的安全机制中有一项特性允许两个设备之间建立长期的安全密钥信息,这种特性称为绑定,它允许两设备重新连接时快速地完成加密认证,而不需要每次连接时执行配对的完整过程。




    蓝牙4.0BLE协议栈分层思想的优点


    蓝牙4.0BLE协议栈采用分层思路的最大优点是:将服务、接口和协议这三个概念明确的区分开来。服务说明某一层为上一层提供了一些什么样的功能;接口说明上一层如何使用下一层的服务;而协议涉及到如何实现本层的服务。这样,各层之间就具有很强的独立性,当协议的一部分发送变化时,只需对与此相关的分层进行修改即可,其他分层不需要改变。

    展开全文
  • 蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。当前的蓝牙协议分为基础率/增强...

    b4ee4b3974c6253fd59583bbd47aebb3.png

    蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。

    当前的蓝牙协议分为基础率/增强数据率(BR/EDR)和低耗能(LE)两种技术类型,本文将重点介绍BLE(Bluetooth Low Energy)。

    0820feacc75d0b9701f97adf966dd1fb.png

    1、BLE低功耗蓝牙协议栈框架

    要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键。那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中。

    蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。蓝牙核心协议关注对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何使用这些机制;蓝牙应用层协议,是在蓝牙核心协议的基础上,根据具体的应用需求,百花齐放,定义出各种各样的策略,如FTP、文件传输、局域网等等。

    8534ae8058e92219b04b3c6b0f947a70.png

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

    0a4e8317fc685ef20cc0e443b60fad1a.png

    2、BLE低功耗蓝牙核心协议层详解(Bluetooth Core)

    1、物理层(Physical Layer,简写 PHY):PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。是1Mbps自适应跳频的GFSK射频,工作于免许可证的2.4GHz ISM(工业、科学与医疗)频段。PHY层做得好不好,直接决定整个BLE芯片的功耗,灵敏度以及selectivity等射频指标。

    2、链路层(Link Layer,简写 LL):LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点。LL层要做的事情非常多,比如具体选择哪程度 个射频通道进行通信,怎么识别空中数据包,具体在哪个时间点把数据包发送出去,怎么保证数据的完整性,ACK如何接收,如何进行重传,以及如何对链路进行管理和控制等等。LL层只负责把数据发出去或者收回来,对数据进行怎样的解析则交给上面的GAP或者ATT。

    3.主机控制接口层(Host Controller Interface,简写 HCI):HCI是可选的,HCI主要用于2颗芯片实现BLE协议栈的场合,用来规范两者之间的通信协议和通信命令等。

    4、通用访问配置文件层(Generic access profile,简写GAP):GAP是对LL层payload(有效数据包)如何进行解析的两种方式中的一种,而且是最简单的那一种。GAP简单的对LL payload进行一些规范和定义,因此GAP能实现的功能极其有限。GAP目前主要用来进行广播,扫描和发起连接等。

    5逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol,简写 L2CAP):L2CAP对LL进行了一次简单封装,LL只关心传输的数据本身,L2CAP就要区分是加密通道还是普通通道,同时还要对连接间隔进行管理。

    6、安全管理层(Security Manager,简写 SM):SMP用来管理BLE连接的加密和安全的,如何保证连接的安全性,同时不影响用户的体验,这些都是SMP要考虑的工作。

    7、属性协议层(Attribute protocol,简写 ATT):简单来说,ATT层用来定义用户命令及命令操作的数据,比如读取某个数据或者写某个数据。BLE协议栈中,开发者接触最多的就是ATT。BLE引入了attribute概念,用来描述一条一条的数据。Attribute除了定义数据,同时定义该数据可以使用的ATT命令,因此这一层被称为ATT层。

    8、通用属性配置文件层(Generic Attribute profile,简写 GATT):GATT用来规范attribute中的数据内容,并运用group(分组)的概念对attribute进行分类管理。没有GATT,BLE协议栈也能跑,但互联互通就会出问题,也正是因为有了GATT和各种各样的应用profile,BLE摆脱了ZigBee等无线协议的兼容性困境,成了出货量最大的2.4G无线通信产品。

    展开全文
  • CC2640R2F BLE5.0 蓝牙协议栈概述

    千次阅读 2017-08-03 10:34:11
    从这部分开始详细介绍蓝牙协议栈功能和接口,协议栈工程关联实现协议栈的文件以及实现协议栈的任务,该任务也作为协议栈应用的最高优先级任务。 TI采用库文件提供方式作为协议栈提供的一个主策略,尽管如此,还是...
    公司主页 文档归类 淘宝

    Overview

    从这部分开始详细介绍蓝牙协议栈功能和接口,协议栈工程关联实现协议栈的文件以及实现协议栈的任务,该任务也作为协议栈应用的最高优先级任务。
    TI采用库文件提供方式作为协议栈提供的一个主策略,尽管如此,还是需要开发者了解协议栈各个抽象的功能和相互作用。

    介绍

    蓝牙5.0核心规范包含LE和BR/EDR两种设备类型,其中LE主要是设计为低功耗、小数据终端产品。
    BLE5.0核心主要包含以下功能:

    • 2MSym/s PLY层设计(2M Symbol Rate 物理层)。
    • LE 信道选择算法#2
    • LE 安全连接
    • LE 数据长度扩展
    • LE 隐私
    • LE LCAP 面向连接的信道支持
    • LE 链路层拓扑结构
    • LE Ping
    • 从机功能扩展
    • 连接参数请求

    以上功能均在蓝牙5.0协议栈实现,并且可以选择编译。

    BLE协议栈基础


    蓝牙协议栈包含一个Host和Controller两个逻辑实体,这种区分从经典蓝牙的BR/EDR就存在了,各种功能独立实现,任务配置文件和应用相关都在Host的GAP、GATT抽象层。
    BLE 工作在无需认证的2.4G免费频段,该频段广泛应用于ISM(工业、科学、医疗)领域。通过跳频通信实现抗干扰特性,GFSK调制,采用1Mbps码元率PHY层设计,可以实现1Mbps波特率通信,BLE5.0优化的物理层设计可以实现2Mbps的PHY层。

    GAP

    GAP工作在以上5个状态机

    • Standby
    • Advertising
    • Scanning
    • Initiating
    • Connected

    Standby状态,双方设备都处于未连接状态,Advertiser尝试广播数据,Scanner接收到广播数据后尝试进行扫描请求,并且得到扫描回复。此时Scanner产生连接意图,转变成Initiator发送连接请求,成功连接后发送广播的Advertiser作为Master,进行连接请求的Initiator成为Slave.

    以上状态机转变,角色扮演以及中间完成的设备发现、链路建立、链路终止均由GAP完成。

    HCI

    以上我们讲解过蓝牙系统由Host和Controller两个逻辑实体组成,他们之间的通信、交互通过HCI标准接口完成,基于该标准接口,Host和Controller可以独立在两个MCU实现,通过Uart/SPI等外设完成通信。

    L2CAP

    逻辑链路控制适配协议层由上层服务提供逻辑链路层访问和进行端对端的数据通信。

    SM

    安全管理层完成配对和密钥分布,提供同连接设备各层之间的通信安全。

    GATT/ATT

    GATT负责主从设备之间的应用数据交换。GATT作为使用的ATT的子流程的一个服务型框架。为主从设备交互数据提供Profile、Service、Characteristic等概念的抽象、管理。

    加入我们

    文章所有代码、工具、文档开源。加入我们QQ群 591679055获取更多支持,共同研究CC2640R2F&BLE5.0。

    CC2640R2F&BLE5.0-乐控畅联© Copyright 2017, 成都乐控畅联科技有限公司.

    展开全文
  • 蓝牙协议栈(四、协议)

    千次阅读 2019-09-11 17:43:22
    BTstack是一种模块化双模蓝牙堆栈,支持蓝牙基本速率/增强日期速率(BR / EDR)以及蓝牙低功耗(LE)。BR / EDR技术也称为经典蓝牙,可在专为高数据速率设计的设备之间提供强大的无线连接。相比之下,LE技术具有更低...
  • (转)CC2640R2F BLE5.0 蓝牙协议栈概述[复制链接]Overview从这部分开始详细介绍蓝牙协议栈功能和接口,协议栈工程关联实现协议栈的文件以及实现协议栈的任务,该任务也作为协议栈应用的最高优先级任务。TI采用库文件...
  • 蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。当前的蓝牙协议分为基础率/增强数据...
  • 一、Device Modes(设备模式) BLE 蓝牙低功耗 BR 基本速率 EDR 增强数据速率 同时支持BLE和BR / EDR的...单模(BLE或低功耗蓝牙)设备仅实现BLE,并且能够与单模和双模设备通信,但是不能与仅支持BR / EDR的设...
  • 蓝牙解析(3):BLE协议栈解析

    千次阅读 2018-09-28 10:09:45
    为什么会有蓝牙协议栈(Why)? 怎样实现蓝牙协议栈(How)? 蓝牙协议栈的最终样子是什么(What)? 我们知道,当前的蓝牙协议包含BR/EDR、AMP、LE三种技术,为了降低复杂度,本文将focus在现在...
  • <br />ARM平台上蓝牙协议栈Bluez的移植使用和配置 <br /> 作者:刘旭晖 Raymond转载请注明出处 <br /> Email:colorant@163.com <br /> BLOG:http://blog.csdn.net/colorant/ <br /> 主页:...
  • <br />ARM平台上蓝牙协议栈Bluez的移植使用和配置  作者:刘旭晖 Raymond转载请注明出处 <br />Email:colorant@163.com <br />BLOG:http://blog.csdn.net/colorant/ <br />主页:...
  • 为什么会有蓝牙协议栈(Why)? 怎样实现蓝牙协议栈(How)? 蓝牙协议栈的最终样子是什么(What)? 另外,我们知道,当前的蓝牙协议包含BR/EDR、AMP、LE三种技术,为了降低复杂度,本文将focus在现在比较...
  • 至今分为五个版本1.1,1.2,2.0,3.0,4.0(4.1),现在市面上流行三种设备传统蓝牙(Bluetooth简称BR),低功耗蓝牙(bluetoothSmart即是Bluetooth Low Energy简称BLE,蓝牙4.0(BluetoothSmartReady即是BR+BLE)) ...
  • Bluetooth协议栈学习之SDP

    千次阅读 2010-07-07 09:19:00
    <br />本文作者的博客地址:http://blog.sina.com.cn/samzhen1977<br /> 作者:Sam (甄峰) sam_code@hotmail.com<br /> <br /> <br />...SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是
  • 控制器与主机分离的形式来自标准的蓝牙 BR / EDR设备,这两个部分通常分别描述。任何 profiles(配置文件)和应用程序都是使用 GAP 与 GATT 层协议栈来编写程序。 1.1 控制器部分(Controller) 1.1.1 物理层(PHY...
  • 蓝牙协议规范2.1 3.0 4.0 4.1

    热门讨论 2014-10-05 12:03:18
    本资源不同版本的蓝牙协议规范,包括蓝牙 2.1 BR/EDR 3.0 High Speed 4.0 BLE 4.1 I0T 希望这些规范文档对朋友们开发蓝牙驱动协议栈及应用有所帮助
  • 大家好,今天开始给大家介绍一下蓝牙BLE技术,整个蓝牙技术其实从技术上分经典蓝牙和BLE蓝牙,而从技术模式上分三种:单模(only BLE),双模(BLE和经典都有,如手机),经典蓝牙BR/EDR。蓝牙应用领域较广,分布在消费...
  • 本章节主要探讨蓝牙的物理层,物理层的协议栈的分析,以及实际芯片设计时候的原理。物理层作为协议栈的最底层,它的作业至关重要。 2.spec章节参考 上图表红圈是core_4.2关于物理层的介绍的地方,我们现在只看...
  • Atitit BLE 协议栈艾提拉总结 目录 1. ——关于BLE的一些基本概念—— 1 1.1. Generic Attribute Profile (GATT) 1 1.2. Attribute Protocol (ATT) 1 2. 当前的蓝牙协议包含BR/EDR、AMP、LE三种技术, 2 2.1...
  • Bluetooth设备是经典蓝牙设备(比如蓝牙耳机),包括BR/EDR/AMP三种技术;Bluetooth smart是BLE设备(比如蓝牙温度计),即低功耗蓝牙设备;Bluetooth smart ready是双模蓝牙设备(比如手机),即同时支持传统蓝牙个...
  • 蓝牙BLE协议分析【附代码实例】

    千次阅读 2020-08-14 18:55:36
    目录0x01 蓝牙概述0x02 蓝牙技术分类Basic Rate(BR)/AMPLow Energy(LE)0x03 蓝牙架构0x04 蓝牙协议应用层(App Layer)L2CAP(Logical Link Control and Adaptation Protocol Layer)逻辑层(Logical Layer)...
  • <br />在bluez4.32协议栈中执行hcitool cc 蓝牙地址后,执行hcitool con 显示无连接,奇怪<br />但是在开发板上的bluez2.25协议中就可以执行,是怎么回事呢?真是郁闷!。<br />运行hcidump显示连接后又立即断开了。...
  • 蓝牙相关知识

    2020-07-03 17:33:15
    蓝牙概述蓝牙版本BLE蓝牙协议栈Physical LayerLink LayerHCIL2CAPATTGAP 概述 蓝牙至今已发展至5.0版本 蓝牙4.0增加BLE版本,同时增加ATT、GATT、SM(security manager)、AES加密; 蓝牙4.1版本,不与4G相互干扰;...
  • 蓝牙5学习笔记1-蓝牙5概述 蓝牙5简述:  蓝牙5包含两种规格的蓝牙设备,1.BR/...CC2640R2蓝牙协议栈顶层设计:  Application层-协议栈的应用层,位于协议栈的顶层通过协议栈提供的API函数与协议栈进行交互。  
  • 1.单模蓝牙/双模蓝牙   我们常说的单模蓝牙是指只有一种蓝牙版本,运行一种蓝牙协议栈的模块,通常运用于BLE,简称单模。...蓝牙BR/EDR 蓝牙4.0双模 BLE单模 Bluetooth Bluetooth Smart Ready Bluetoo
  • WinCE蓝牙驱动

    2010-07-15 14:45:00
    <br />现在由于项目需要,需要使用ce上的蓝牙协议栈。网上看到这篇文章帮助入门。2008年05月06日 星期二 下午 02:51<br />之前没有摸过蓝牙,这回的项目里面有蓝牙模块.而我目前对蓝牙只知道的有:1.我们的设计里蓝牙...
  • 蓝牙mesh介绍

    2018-12-04 16:38:00
    低功耗蓝牙技术是蓝牙mesh使用的无线通信协议栈蓝牙BR / EDR能够实现一台设备到另一台设备的连接和通信,建立“一对一”的关系,大多数人所熟悉的“配对”(pairing)一词就是这个意思。 蓝牙mesh能让我们建立...

空空如也

空空如也

1 2 3
收藏数 54
精华内容 21
关键字:

蓝牙br协议栈