鸿蒙开发之【蓝牙HCI与蓝牙hld】

1. 简介

蓝牙的命名来源于一个丹麦国王的名字。

蓝牙的核心是短距离无线电通讯,它的基础来自于跳频扩频(FHSS)技术。

频率:[2.4GHz, 2.4GHz + 83.5MHz]

物联网领域需要研究Bluetooth + Mesh。

分类

两种:

  • 经典/传统蓝牙(< 4.0版本);
  • BLE低功耗蓝牙。

在IoT中,ble更常见一些;经典蓝牙常用于手机和耳机的通信。

芯片模式有两种:

  • 双模,就是支持以上两种,应用有降噪耳机、电视语音遥控及按键;
  • 单模则是只支持一种,通常是支持BLE。

发展

开始于爱立信在 1994 年提出的无线通信方案,以解决用户间互不兼容的移动电子设备的通信问题,用于替代 RS-232 串口通讯标准。

第一代蓝牙(传输率0.7Mbps):

  1. 1999 年,蓝牙 1.0A 版,确定使用 2.4GHz 频段, 蓝牙硬件地址叫做BD_ADDR
  2. 2001 年:蓝牙 1.1,蓝牙 1.1 版正式列入 IEEE 802.15.1 标准,定义了物理层和MAC层;

第二代蓝牙:

  1. 2004 年,蓝牙 2.0,新增的 EDR(Enhanced Data Rate)使得蓝牙设备的传输率可达 3Mbps;支持双工,可以边电话边传输数据;
  2. 2007 年,蓝牙 2.1,支持 NFC ,新增SSP(Secure Simple Pairing)安全配对,新增SniffSubrating省电功能;

2009 年,3.0(比较稳定了),可调用 802.11 WiFi,传输速率高达 24Mbps。蓝牙 3.0 的核心是 AMP(Generic Alternate MAC/PHY)。代表作是蓝牙适配器。

第四代

  1. 2010 年,4.0,支持BLE(Bluetooth Low Energy,基于 NOKIA 开发的 Wibree 技术)低功耗功能,传输距离提升到100米以上。代表作,iphone 4s;
  2. 2013 年,4.1支持云功能(可以用于iot了),支持IPv6,支持区中心(例如智能手表和计步器可以绕过智能手机,直接连接);
  3. 2014年,4.2,可以抛弃wifi,iot设备完全用蓝牙;

4.0之前的都是经典蓝牙,>=4.0的才支持BLE。

2016 年,蓝牙 5.0,iot入场,速度上限为 2Mbps,传输距离理论上可达 300 米,结合 WiFi 可以实现精度小于 1 米的室内定位;针对 IoT 物联网进行底层优化;引入Mesh网络。


说下Mesh

Mesh 网状网络能够将蓝牙设备作为信号中继站,数据覆盖广,兼容蓝牙 4 和 5 系列的协议。

传统的蓝牙连接是通过 配对 实现的,即 [一对一] 或 [一对多] 的微型网络关系。

Mesh 网络能够使设备实现「多对多」的关系。

产品架构

3种:

  1. 蓝牙芯片(含蓝牙协议栈host)直接与外设通信,这类芯片可作MCU,如蓝牙耳机、蓝牙音响、蓝牙手环;
  2. 蓝牙芯片(含蓝牙协议栈host)—MCU—外设,一般用于外设功能复杂的场景,
  3. 蓝牙芯片(controller)—MCU(含host)—外设,是蓝牙最复杂的方案,客户需要使用很多蓝牙协议,比如车载蓝牙、手机蓝牙。

组成

蓝牙设备:

  • 硬件层,即Controller蓝牙模块(由低到高排序):
  • 无线射频单元Radio,一种微带天线;
  • 基带BaseBand或链路控制单元LinkController,进行射频信号与数字或语音信号的相互转化;
  • 链路管理单元LinkManager,管理蓝牙设备之间的通信;
  • 主机控制器Host Controller
  • TRANSPORT层,实现HOST跟CONTROLLER的交互,有H2(USB使用), H4/H5/BCSP(UART使用)协议。5种数据:
  • HCI COMMAND:由蓝牙协议栈发送给芯片的命令
  • HCI EVENT:由蓝牙芯片上报给蓝牙协议栈的事件
  • HCI ACL:蓝牙协议栈跟蓝牙芯片双向交互的普通数据
  • HCI SCO:蓝牙芯片跟蓝牙协议栈双向交互的通话/语音识别等音频数据
  • HCI ISO(这部分是在core5.2才添加):LE audio用的数据包格式
  • HOST层,即蓝牙协议栈,或者说蓝牙主机,:
  • 主机控制接口(HCI),透过transport把协议栈的数据发送给蓝牙芯片;
  • 高层协议Higher Layer Protocol;
  • Application

一些蓝牙模块:

JDY-10M模块,含底板+蓝牙模块,十几块钱,供电建议5V。两种接法:

  • 连接UART-TTL转换器,再连接PC;
  • 直接连MCU。

M是Mesh的意思,JDY-10就是不支持组网的版本.

2. 协议

初学者先学蓝牙host(蓝牙协议栈),再学controller(蓝牙芯片)里面的协议。

蓝牙协议有很多,蓝牙电话(HFP),蓝牙音频(A2DP),蓝牙音乐控制(AVRCP),蓝牙电话本(PBAP),蓝牙短信(MAP),BLE,HID…

蓝牙协议分为传输协议、中介协议和应用协议:

  • 传输协议:互相确认对方的位置,建立和管理物理链路;
  • 底层传输协议,包括Radio, Baseband&Link Controller, Link Manager Protocol等;
  • 高层传输协议,包括L2CAP, HCI;
  • 中介协议:为应用提供不同标准接口;
  • 应用协议:协议栈之上的应用软件所涉及到的协议。

2.1 传输协议

L2CAP

Logical Link Control and Adaptation Protocol,逻辑链路控制与适配协议。

位于基带之上

2.2 中介协议

SDP

Service Discover Protocol,服务发现协议,发现哪些服务可用,并确定这些可用服务的特征

RFCOMM

Serial Port Emulation,串口仿真协议,为建立在串口之上的传统应用提供环境接口,用于蓝牙电话,蓝牙透传SPP等。

AT指令

AT指令是区分大小写的ascii码,以\r结束。

像mesh那样,要在组网中实现通信,就不能用at那样的ascii指令了,而要用特定的二进制协议格式。

只能在透传模式下工作(设备连接手机后进入透传模式,手机是服务端)。

2.3 其它(分类不太确定)

HFP

Hands-Free,蓝牙免提协议,用于蓝牙耳机。还有一个已经基本废弃的HSP,蓝牙耳机协议。

OBEX,对象交换协议,用于蓝牙电话本,蓝牙短信,文件传输等。

SPP(SERIAL PORT PROFILE):蓝牙串口协议。

IAP:苹果的特有协议,用于Carplay。

PBAP(Phone Book Access):蓝牙电话本访问协议。

MAP(Message Access Profile):蓝牙短信访问协议。

OPP(Object Push Profile):对象推送协议.

A2DP(Advanced Audio Distribution): 蓝牙音乐协议.

鸿蒙开发之【蓝牙HCI与蓝牙hld】_第1张图片

你可能感兴趣的:(鸿蒙,harmonyos,华为,鸿蒙开发,程序员开发,HarmonyOS,NEXT,鸿蒙系统,蓝牙开发)