蓝牙简介

A.使用低功耗蓝牙技术的意义

一 低功耗蓝牙架构

BLE协议架构从上到下分为三层:

1应用端APP

2主机Host:  

3控制器Controller:(对外接口是天线,对内接口是HCI)实现射频相关的模拟数字部分,完成最基本的数据发送和接收

  HCI 主机-控制接口Host Controller interface

    存在于主机Host控制器Controller之中,控制器Controller通过HCI发送数据和事件给主机Host,主机Host通过HCI发送命令和数据给控制器Controller。HCI逻辑上定义一系列的命令、事件:物理上有UART、SDIO、USB,事件可能包含里面的任意一种或几种。

  PHY物理层和

      GFSK信号调制,2402-2408MHZ,40个Channel,每两个Channel间隔2MHZ(经典蓝牙协议间隔是1MHZ),数据传输速率是1Mbit/s

  LL链路层,

    广播通道Advertising Channels,三个通道37ch(2402MHZ),38ch(2462MHZ),39ch(2480MHZ)(不会在这三个通道之间跳频),当BLE匹配过后,链路层LL由广播通道切换到数据通道,数据通道由37个,数据传输时会在这37个通道切换,切换规则在设备间匹配时约定

    数据通道Data Channels

  DTM 直接测试模式Diret Test Mode,射频物理层测试接口,射频数据分析之用。

二、低功耗蓝牙的分类

1.单模蓝牙 Blutooth SMART

  为了实现低功耗,在软件和硬件上都做了优化,这样的设备只支持BLE.淡漠蓝牙芯片往往是一个带有单模蓝牙协议栈的产品。

2.双模蓝牙Blutooth SMART READY

  可支持蓝牙BR/EDR和BLE。在双模设备中BR/EDR和BLE技术使用同一个射频前端和天线。典型的双模设备手机、平板、PC等往往具有足够的供电能力。

  双模设备和BLE设备通信的功耗  低于< 双模设备和BR/EDR设备通信的功耗。在使用双模解决方案时,需要用一个外部处理器才可以实现蓝牙协议栈。

B.蓝牙规范

一、蓝牙协议体系结构

  整个蓝牙协议体系结构科恩为三大部分:底层硬件模块、中间协议层、高端应用层。

  底层硬件模块

    链路管理层LMP

      负责连接的建立和拆除 以及链路的安全控制

      它们为上层软件模块提供了不同的访问入口,但是两个模块接口之间的消息和数据传递必须通过蓝牙主机控制器接口KCI的解释才能进行。

    基带层BBP

      负责跳频和蓝牙数据及信息帧的传输

    蓝牙无线电信道

  中间协议层

    逻辑链路控制与适配协议L2CAP(logical link control and adaption protocol)

      完成数据拆装、服务质量控制、协议复用和组提取等功能,是其他上层协议实现的基础,是蓝牙协议的核心部分。

    服务发现协议SDP

      为上层应用提供一种机制来发现网络中可用的服务及特性。

  高端应用层

    对应于各种应用模型的剖面,是剖面的一部分,有多种剖面。

  (1)蓝牙底层模块

  蓝牙底层模块是蓝牙技术的核心,是任何蓝牙设备都必须包括的部分。工作在2.4GHZ的ISM频段。能够提供高达720Kbit/s的数据交换速率

  蓝牙支持电路交换分组交换两种技术,分别定义了两种链路类型,及面向连接的同步链路SOC和面向无连接的异步链路ACL。

  为了在低功率下是啦呀设备处于连接状态,蓝牙规定了三种节能状态,按功耗由低到高,Park停等<保持hold<呼吸sniff状态

  蓝牙的三种纠错方案:1/3前向纠错FEC、2/3前向纠错、自动重发ARQ

    大噪声采用前向纠错,SCO链路中采用1/3前向纠错;ACL链路采用2/3前向纠错

    ARQ方案中,一个时隙传送的数据必须在下一个时隙得到 收到的确认。只有接收端通过包头错误检测和循环冗余校验码CRC后认为无误时,才向发送端回确认消息,否则返回一个错误消息。

  (2)软件模块

  RFCOMM是射频通信协议,通过RFCOMM,蓝牙可以再无线环境下实现对高层协议,如:PPP、TCP/IP、WAP等的支持。

二、低功耗BLE蓝牙协议

  BLE不在支持传统的蓝牙BR/EDR协议。

  在BLE应用中,所有的协议服务都是基于GATT(Generic Attribute Profile)的。

    其中服务描述了特点(及它们的UUID),服务描述自身有什么特点和形式,并且描述清楚如何应用这些特点以及需要什么安全机制。

    应用协议定义了其使用的服务,说明是传感器端还是接收端,定义GATT的角色(Service/Client)和GAP的角色(Peripheral/Central)

原文地址:https://www.cnblogs.com/sunupo/p/10296844.html