0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-01-30 17:37 次阅读

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): 蓝牙音乐协议.

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    112

    文章

    5522

    浏览量

    166746
  • HCI
    HCI
    +关注

    关注

    0

    文章

    27

    浏览量

    12878
  • 鸿蒙
    +关注

    关注

    55

    文章

    2090

    浏览量

    42264
收藏 人收藏

    评论

    相关推荐

    如何使用支持标准蓝牙HCI命令的定制BLE模块(如 DA14531)来代替ModusToolbox支持的蓝牙模块?

    如何使用支持标准蓝牙 HCI 命令的定制 BLE 模块(如 DA14531)来代替 Modus Toolbox 支持的蓝牙模块? 我正在使用 Modus Toolbox 3.2 和 CY8C62x5 MCU 进行
    发表于 06-03 07:05

    蓝牙模块选型之蓝牙功能

    蓝牙模块,是一种集成蓝牙功能的PCBA板,用于短距离无线通讯,蓝牙模块将芯片和外围硬件电路集成到一个PCB上,开发出所需的内置程序实现蓝牙
    的头像 发表于 05-28 17:48 239次阅读
    <b class='flag-5'>蓝牙</b>模块选型之<b class='flag-5'>蓝牙</b>功能

    蓝牙模块选经典蓝牙还是低功耗蓝牙

      经典蓝牙(classic Bluetooth)和低功耗蓝牙(Bluetooth low energy,简称BLE或者LE),两者有什么区别?为什么他们都叫“蓝牙”?Bluetooth low
    的头像 发表于 05-23 17:57 176次阅读
    <b class='flag-5'>蓝牙</b>模块选经典<b class='flag-5'>蓝牙</b>还是低功耗<b class='flag-5'>蓝牙</b>?

    鸿蒙开发实战:【蓝牙组件】

    蓝牙服务组件为设备提供接入与使用Bluetooth的相关接口,包括BLE设备gatt相关的操作,以及BLE广播、扫描等功能。
    的头像 发表于 03-13 17:27 322次阅读

    蓝牙模块CYW20706上下载应用程序到串行闪存失败了的原因?

    我尝试在蓝牙模块CYBT-343026-01(CYW20706)上下载应用程序到串行闪存,但失败了。 第一步是按照 AIROC™ HCI UART 控制协议文档(见下文)的指示向模块发送
    发表于 03-01 11:59

    在Modustoolbox下开发cyw20719B2的蓝牙应用, BTSDK是否可剪裁?

    请问,在Modustoolbox 下开发cyw20719B2的蓝牙应用,很多功能并不需要,比如:ADC, I2S, HCI UART... ... BTSDK是否可剪裁掉这些功能,以节省RAM空间,降低功耗?
    发表于 03-01 09:09

    芯科科技发布新版蓝牙开发流程

    查看Silicon Labs(亦称“芯科科技”)近日发布新版的蓝牙开发流程(Bluetooth Developer Journey),了解更多关于低功耗蓝牙蓝牙Mesh、
    的头像 发表于 01-25 10:09 417次阅读
    芯科科技发布新版<b class='flag-5'>蓝牙</b><b class='flag-5'>开发</b>流程

    蓝牙midi和蓝牙音频或者蓝牙audio有什么区别呢

    蓝牙midi和蓝牙音频或者蓝牙audio有什么区别呢 首先这里分为三个概念,也就是什么是蓝牙?什么是蓝牙midi?什么是
    的头像 发表于 01-09 15:22 697次阅读
    <b class='flag-5'>蓝牙</b>midi和<b class='flag-5'>蓝牙</b>音频或者<b class='flag-5'>蓝牙</b>audio有什么区别呢

    【应用笔记】STM32WB 低功耗蓝牙无线接口

    ,同时保持了相似的通信范围。标准 HCI 指令在“蓝牙核心规范 V5.3”(蓝牙®低功耗规范是其中一部分)中定义。此应用笔记描述了专有指令。
    发表于 12-12 16:30 1次下载

    STM32WB55开发(3)----断开蓝牙连接

    了解如何通过aci_hal_get_link_status函数获取当前的蓝牙连接状态,然后,我们将使用hci_disconnect函数来断开这些连接。
    的头像 发表于 12-01 15:43 611次阅读
    STM32WB55<b class='flag-5'>开发</b>(3)----断开<b class='flag-5'>蓝牙</b>连接

    蓝牙低功耗系统的开发

    电子发烧友网站提供《蓝牙低功耗系统的开发.pdf》资料免费下载
    发表于 11-10 16:16 2次下载
    <b class='flag-5'>蓝牙</b>低功耗系统的<b class='flag-5'>开发</b>

    TC-3000B蓝牙测试仪TESCOM tc-3000b

    的用户可定义的B/B出端口 基本的蓝牙协议分析仪功能 支持主从模式 在微网中的链路测试 在B/B、LMP与HCI层的包信息 在屏幕进行HCI指令执行 蓝牙测试仪TESCOM-TC-30
    发表于 08-18 11:46

    EBCP RoseRed蓝牙开发平台用户指南

    蓝牙开发平台(BDP)是一个基于集成商的开发系统,旨在提供灵活的环境以支持基于ARM的蓝牙设备的快速开发。 BDPena使您能够准确建模
    发表于 08-12 07:04

    TC-3000B蓝牙测试仪TESCOM tc-3000b

    功能 支持主从模式 在微网中的链路测试 在B/B、LMP与HCI层的包信息 在屏幕进行HCI指令执行 蓝牙测试仪TESCOM-TC-3000B蓝牙性能测试 测试在“
    发表于 08-09 14:57