本帖最后由 damiaa 于 2023-9-5 14:50 编辑
【stm32wba】+7 stm32wba低功耗蓝牙软件基本架构
【NUCLEO-WBA52CG】+1开箱贴
【STM32WBA52CG】+2 STM32WBA Web Bluetooth试玩
【STM32WBA52CG】+3 STM32WBA 外设应用一 按键和点灯
【STM32WBA52CG】+4 外设应用二 串口使用
【STM32WBA52CG】+5 THREADX使用
【STM32WBA52CG】+6 SEQUENCER调度器之后继续
物理层
BLE 是一种自适应跳频(AFH)技术,只能使用所有可用频率的一个子集,以避开其他非自适应技术使用的所有频率。通过使用特定的跳频算法确定下一个要使用的良好通道,可以从不良通道转移到已知良好通道。
STM32WBA低功耗蓝牙软件体系架构图
软件固件框架图
Application Firmware 用户应用层基于:
来自身体和第三方的IPs
蓝牙低功耗Profiles
应用和协议栈的Utilities
提供方便访问和如低功耗管理等基本特征的管理的通用的Utilities,Sequenerce序列器等
Bluetooth@LE Stack低功耗蓝牙堆栈
Bluetooth®LE堆栈是应用程序和用于Bluetooth®LE目的的硬件之间的主要接口。它由两层组成:
Bluetooth® LE Host stack Bluetooth®LE主机堆栈
Bluetooth®LE主机堆栈管理允许应用程序与其他设备通信的所有网络和传输协议。由ST提供,它也可以由用户自己的主机堆栈替代。
Bluetooth® LE Controller Bluetooth®LE控制器
Bluetooth®LE控制器管理硬件部分、RF状态,并确保正确遵循RF协议。它包括物理层、链路层和主机控制器接口。
Platform Resources 平台资源
平台资源保护HALS,BSPS,适配硬件平台的驱动
Stm32wba项目结构Project architecture
打开BLE_p2pServer项目可以看出,项目结构主要有四部分组成,Application,Drivers,Middleware,Utilities
Application应用部分
应用是这个项目的核心部分,用户应用的所有的主要信息和行为在这里发生。
Core 核心层
这部分是应用程序的主要切入点。它包含所有设置和入口代码,如硬件初始化例程、IRQ设置、调度器配置、任务注册等。 包含文件:main.c、app_entry.c等。
STM32_WPAN STM32_WPAN存储库重新组合与连接相关的文件。它由两个子部分组成:
应用程序 主要应用源文件部分。例如,在HR示例中,此存储库包含主应用程序文件(app_ble.c)和Bluetooth®LE服务实现。
Target目标 这专门用于中间件中存在的库和模块的接口和集成。
System系统 系统相关模块、接口和实用程序(PKA、RNG、高级内存管理器、USART、RTDebug等)
此存储库中有四个子部分:
Config 这是用户可以配置系统模块和调整系统体验的地方。
Interfaces接口 此文件夹重新组合所有硬件相关文件,例如timer_if.h、stm32_lpm等模块
Modules模块 包含所有系统模块源文件和头文件。
Startup启动 这是重置处理程序文件的位置。
Drivers 驱动层
驱动程序分为四个组件集:
硬件抽象层 该层提供硬件抽象驱动程序和硬件接口方法,以便与上层(应用程序、库和堆栈)进行交互。HAL由以下部分组成:
The HAL Drivers HAL封装驱动:
一组基于围绕独立进程构建的高级服务的可移植抽象API。HAL驱动程序以功能为导向。例如,定时器外围设备的API可以根据IP提供的功能(基本定时器、捕获、PWM等)分为几个类别。
Low Layer Drivers 低层驱动程序:
一组基本驱动程序,可以直接访问硬件,无需独立进程,该层可以由应用程序调用,也可以由HAL驱动程序调用。
The HAL Core drivers HAL核心驱动程序:
一组内部驱动程序,为USB和以太网等“复杂”外围设备提供低级别操作。它们都带有一个专用的源文件和头文件。某些驱动程序可能有一个包含扩展功能的附加文件。这些文件以“_ex”结尾。
The BSP Drivers BSP驱动程序
该层包含硬件(LED、按钮等)提供的不同功能的高级板服务,以及安装在所用板上的外部组件(IO扩展器等)的驱动程序。
CMSIS Drivers CMSIS驱动程序
Cortex微控制器软件接口标准(CMSIS)驱动程序,为所有Cortex Mx处理器系列供应商提供单一标准。它实现了代码重用和跨软件项目的代码共享。
Middleware中间层
中间层 包含库和协议的基本组件(Bluetooth®LE堆栈等)。此目录包含Bluetooth®LE服务管理、系统命令等。
该层组件之间的水平交互必须通过调用功能API直接完成,而与底层驱动程序的垂直交互必须通过库接口中实现的特定回调和静态宏来完成。
Utilities层
提供其他系统和媒体资源服务的杂项软件实用代码程序,如序列发生器工具箱、时间服务器、低功耗管理器、几个跟踪实用程序和标准库服务,如内存、字符串、计时器和数学服务。
这些实用程序并非特定于一个平台,而是可用于多个STM32系列。
以上就是stm32wba的低功耗蓝牙软件基本架构的基本情况,谢谢。