目录
一、初识蓝牙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通信功能,实现了对蓝牙模块的配置、数据传输和控制。