蓝牙BLE基础知识

发布时间:2024年01月24日

目录

一、初识蓝牙BLE

1.课程介绍

2.为什么需要蓝牙技术

3.蓝牙发展历史

4.蓝牙技术优势

5.蓝牙技术简介

6.学习补充

二、物理层(Physical layer)

1.模拟调制

2.数字调制

3.射频信道

4.学习补充

三、链路层(link layer)

1.白化

2.链路层状态机

3.状态机详解

4.链路层数据包格式

5.知识补充

四、控制接口层(HCL)

1.物理接口

2.逻辑接口

3.HCI两种格式类型

五、L2CAP和属性

1.L2CAP介绍

2.L2CAP信道标识

3.学习收获


一、初识蓝牙BLE


1.课程介绍

  • 蓝牙BLE结构

2.为什么需要蓝牙技术

蓝牙和ziggbe技术更加的Low Power, 各个技术的使用场景不同, 各有优缺点。

3.蓝牙发展历史

4.蓝牙技术优势

比较于ziggbe, ble的传输速率更快。

5.蓝牙技术简介

????????蓝牙技术是一种无线通信技术,可以通过短距离无线信号传输数据。它使用在2.4GHz频段的无线电波来传输数据,具有低功耗、低成本和短距离通信的特点。 蓝牙技术最初是由爱立信公司在1994年提出的,目的是解决移动设备之间的无线通信问题。蓝牙技术得名于丹麦国王哈拉尔德·布隆尼尔(Harald Bluetooth),他在10世纪时推动了丹麦和挪威两国的统一。 蓝牙技术的应用非常广泛,主要用于个人电子设备之间的短距离通信,比如手机、平板电脑、电脑、耳机、键盘、鼠标等。它也被广泛应用于汽车、家庭音频设备、医疗设备和物联网等领域。 蓝牙技术的特点包括简单易用、低功耗、广域覆盖、可靠性较高等。目前,蓝牙技术的版本不断升级,最新版本是蓝牙5.2,具有更广泛的覆盖范围、更高的传输速度和更低的功耗。 总之,蓝牙技术通过无线通信方式,使得各种设备之间可以方便地进行数据传输和通信,大大提高了设备的互连性和便利性。

6.学习补充

  • 蓝牙BLE(Bluetooth Low Energy)和蓝牙Mesh

蓝牙BLE(Bluetooth Low Energy)和蓝牙Mesh是两种不同的蓝牙通信技术,其主要区别如下: 
?
1. 功能:蓝牙BLE主要是用于设备之间低功耗的点对点通信,适用于诸如智能手表、健康传感器、蓝牙耳机等小型设备。而蓝牙Mesh则是为了支持大规模设备之间的多对多通信,适用于物联网场景中的照明控制、家庭自动化等应用。
2. 网络拓扑:蓝牙BLE采用主从设备的连接方式,即一个主设备可以与多个从设备进行通信。而蓝牙Mesh则是采用网状拓扑结构,其中每个设备都可以与其他设备直接通信,形成一个自组织、多对多的网络。
3. 数据传输方式:蓝牙BLE的数据传输较简单,通常是通过广播和连接的方式进行,适合小量数据传输。蓝牙Mesh则可以支持大规模设备之间的复杂数据传输,通过多跳技术将数据从一个设备传输到另一个设备。
4. 覆盖范围:蓝牙BLE的覆盖范围相对较近,通常在几十米的范围内进行通信。而蓝牙Mesh可以通过多跳技术扩大网络范围,支持更大的覆盖范围。
5. 应用场景:蓝牙BLE常用于个人设备和低功耗设备的通信,如智能手表、健康传感器等。蓝牙Mesh则适用于大规模设备之间的互联和控制,如智能家居、工业自动化等。
?
总之,蓝牙BLE和蓝牙Mesh是两种不同的蓝牙通信技术,应用于不同的场景和设备。蓝牙BLE主要用于低功耗的点对点通信,而蓝牙Mesh则用于多对多、大规模设备之间的互联和控制。
  • 为什么uart发送AT指令可以控制uart模块工作

二、物理层(Physical layer)


  • 物理层

无论是数据的发送还是数据的接收, 数据都是一层一层的转发的。物理层实现的是基本的高频信号的无线电波通信

1.模拟调制

采取不同的幅度和不同的频率来区分不同的数据

  • 模拟调幅

  • 模拟调频

2.数字调制

3.射频信道

物理层将蓝牙的通信频段分成了很多, 为了支持频率跳变技术, 防止干扰。

4.学习补充

  • 蓝牙协议的物理层的具体的功能

蓝牙协议的物理层主要负责将数字信号转换为物理信号,以进行蓝牙设备之间的无线通信。具体来说,蓝牙的物理层干了以下几件事情:
?
1. 调制与解调:物理层负责将数字信号转换为模拟信号,并将其调制成载波信号。这样,数字数据就能通过载波信号在空中传输。接收端则将接收到的模拟信号解调为数字信号。
?
2. 频率跳变:为了避免与其他无线设备干扰,蓝牙物理层通过频率跳变(Frequency Hopping)技术,在不同的载波频率上进行传输。蓝牙设备每隔一段时间就会跳转到不同的频率上发送数据,因此能够抵御干扰。
?
3. 信道管理:蓝牙物理层将频率划分为多个信道,用于传输数据。物理层通过频率跳变技术在这些信道之间切换,使得多个蓝牙设备能同时进行通信,而不互相干扰。
?
4. 发射功率控制:物理层负责控制蓝牙设备的发射功率,以确保通信距离适中。发射功率的控制也有助于延长设备的电池寿命。
?
总之,蓝牙协议的物理层负责将数字信号转换为物理信号,并通过调制、解调、频率跳变、信道管理和发射功率控制等技术提供可靠的无线通信。

  • 为什么uart发送AT指令可以控制uart模块工作

三、链路层(link layer)


链路层解决的问题是通信双方的连接和数据的传输, 一些组装, 校验等等

1.白化

白化这项技术也是为了解决数据传输和接收的问题

2.链路层状态机

3.状态机详解

什么是就绪态?就绪态是一种等待状态,等待上级下发指令从而进行指令的执行,做个比方,联欢会上你准备唱首歌,你和后台打好招呼,只要一招收就开始放伴奏,那么这个背后的操作人员就处于就绪态,等待你的指示形式,那么在蓝牙BLE的链路层,就绪态就是一种非活动的中间状态,它的重要之处就是听话,无时无刻在等待你得之灵形式,当你想让设备查看周围是否存在其他蓝牙设备时,可以告诉它帮我看看周围有没有可连接的设备,此时链路层就会从就绪态切换到扫描态扫描其他信息从而上报给你,如上图所示,任何的一种状态在处理完成之后都需要回到就绪态来继续等待指令,从就绪态可以前往扫描态、广播态和发起态三种状态。

扫描态即如同我们的耳朵,能够搜集周围的音频信息,蓝牙则是搜寻2.4G且符合蓝牙标准的数据信息,来告知我们周围是否存在其他设备,在蓝牙BLE中扫描态被分为两种形式

扫描态又分为主动扫描和被动扫描, 自动扫描自动的拿取设备的更多的信息。

连接态又分为两种分别是主连接和从连接。

4.链路层数据包格式

5.知识补充

  • 蓝牙协议中的链路层具体干了什么

/*
在蓝牙协议中,链路层是蓝牙通信的最底层,负责提供可靠的数据传输和连接管理。具体来说,链路层在蓝牙设备之间进行以下操作:
?
1. 连接管理:链路层负责建立、维护和关闭蓝牙设备之间的物理连接。它处理设备之间的连接请求、连接确认和连接断开操作。
2. 数据传输:链路层通过数据链路层协议(例如ACL协议,Asynchronous Connection-Less)来传输数据,可进行可靠或不可靠的数据传输,具体取决于所选择的链路层服务类型。
3. 数据帧封装:链路层将来自上层(例如L2CAP协议)的数据进行封装成链路层数据帧,添加必要的控制信息(如帧同步、地址和误码检测)。
4. 分组与重组:链路层根据需求将链路层数据帧进行分组,使其适应蓝牙物理层的传输,然后再在接收端进行重组以还原数据帧。
5. 误码检测与纠正:链路层负责检测和纠正传输过程中的数据传输错误。它使用如CRC(循环冗余检测)等技术来检测和纠正数据错误,以确保传输的数据的可靠性。
?
需要注意的是,链路层只负责设备之间的数据传输和连接管理,并不处理更高级别的协议内容,如数据传输的语义和语法。这些更高级别的操作将由上层协议(如L2CAP、RFCOMM等)来处理。
*/
  • host控制uart模块的原理理解

/*
host下发命令给控制器, 控制器接收命令做出处理回复主机这个过程叫做事件
?
我们发送的一些命令其实都是HCL层帮我们封装好的一些宏, 其实本质是一些数据
*/
  • 如何理解MAC地址

/*
注意, 在发送复位指令的时候, 可能因为发送了复位指令在消息队列中的消息就不见了
?
MAC地址(Media Access Control address,媒体访问控制地址)是用于唯一标识网络设备的硬件地址。在计算机网络中,每个网络接口卡(NIC)都被分配了一个唯一的MAC地址。
?
理解MAC地址可以从以下几个方面来考虑:
?
1. 唯一性:MAC地址是全球唯一的,并且由网络设备的制造商在生产过程中为每个设备分配。这样,每个网络设备都具有一个独特的MAC地址,用于识别和标识设备。
2. 硬件标识: MAC地址是与网络设备的物理硬件相关联的标识符。它通常由48位二进制数表示,分为六组,每组以冒号或破折号分隔。前三组称为组织唯一标识符(OUI),用于标识设备的制造商,后三组用于具体的设备标识。
3. 数据链路层:MAC地址在数据链路层起着重要作用。它用于在局域网(如以太网)中识别和定位物理设备。数据包通过包含源MAC地址和目标MAC地址的数据帧在网络中进行传输。
4. 不可更改性:通常情况下,MAC地址是固定的,不能修改。它是作为网络设备硬件的一部分而分配的,所以它唯一且不可更改。因此,MAC地址能够在网络中唯一地识别和标识设备。
?
总的来说,MAC地址是用于唯一标识网络设备的硬件地址,它由制造商分配,并且在数据链路层中用于定位和传输数据包。它的唯一性和不可更改性使得它成为网络中识别设备的重要标识符。
?
标识在局域网内部的一些特定的标识好的物理设备
*/

四、控制接口层(HCL)


1.物理接口

2.逻辑接口

因为逻辑接口面向的是将控制器和主机做在一起的这种方案设计的,所以在主机与控制之间通信就不需要硬件接口, 这种就叫做软件接口, 也就是逻辑接口

3.HCI两种格式类型

  • 数据包数据格式

  • 命令包格式

Reset类似的uart指令或者说是命令都是在芯片内部固化的程序进行解析的, 转换为对应的机器码, 指导硬件电路工作

五、L2CAP和属性


1.L2CAP介绍

2.L2CAP信道标识

3.学习收获

  • Elipese IDE

Eclipse IDE(Integrated Development Environment,集成开发环境)是一款开源的、跨平台的集成开发工具,主要用于软件开发和编程。它提供了丰富的功能和工具,包括代码编辑器、调试器、编译器、项目管理和版本控制等,可以用于开发多种编程语言,如Java、C++、Python等。
?
Eclipse IDE是一个非常受欢迎的开发工具,广泛用于企业级应用、Web开发、移动应用、科学计算和开源项目等各个领域。它的强大之处在于它的插件体系,允许开发者根据自己的需要安装各种插件,以扩展其功能和适应不同的开发需求。

  • 关于蓝牙的l2cap层的理解

L2CAP(Logical Link Control and Adaptation Protocol)是蓝牙协议栈中的一个重要层,位于蓝牙核心协议栈中的传输层之上。它提供了在蓝牙设备之间建立逻辑连接的功能,并定义了数据的传输方式和协议。
?
L2CAP层主要负责以下几个方面的功能:
?
1. 提供逻辑连接:L2CAP层允许两台蓝牙设备之间建立逻辑连接,建立了一个可靠的端到端通信通道。这个逻辑连接可以用于传输数据、通信和控制信息。
2. 分段与重组:L2CAP层将上层应用的数据进行分段,然后发送给接收方进行重组。这样可以适应不同的数据包大小,并保证数据的完整性。
3. 数据包的可靠性:L2CAP层可以使用可靠的传输方式来发送数据包,确保数据的可靠传输。它使用错误检测和重传机制来处理数据包的丢失、错误或损坏。
4. 流量控制:L2CAP层还提供了流量控制机制,以确保发送方和接收方之间的数据传输速度协调一致。这可以防止数据发送方的过载,保证数据传输的平稳性。
?
总的来说,L2CAP层在蓝牙协议栈中扮演着重要的角色,负责建立逻辑连接、分段与重组数据、保证数据可靠性,以及控制数据传输的流量等功能。它为上层的应用提供了一个可靠的通信通道,并为蓝牙设备之间的数据传输提供了必要的支持。

  • 为什么uart发送AT指令可以控制uart模块工作

通过单片机的UART发送AT指令使蓝牙模块工作的原因主要有以下几点:

1. AT指令集:蓝牙模块内部集成了AT指令集的解析和执行功能。AT指令集规定了各种操作命令的格式和功能,通过发送合适的AT指令,可以对蓝牙模块进行配置和控制。

2. UART通信:蓝牙模块一般通过UART与单片机进行通信。UART是一种通信接口,通过串口通信,单片机可以发送数据到蓝牙模块并接收来自蓝牙模块的响应。

3. 数据传输:通过发送特定的AT指令,单片机可以向蓝牙模块发送数据,蓝牙模块将这些数据进行处理并传输给其他设备,实现了蓝牙通信。

4. 配置和控制:AT指令还允许单片机对蓝牙模块进行配置和控制。通过发送不同的AT指令,可以设置蓝牙模块的名称、波特率、工作模式、传输协议等参数。

总的来说,通过单片机的UART发送AT指令,利用了蓝牙模块内部的AT指令集和UART通信功能,实现了对蓝牙模块的配置、数据传输和控制。

文章来源:https://blog.csdn.net/m0_74976404/article/details/135831142
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。