STM32G431RBT6——(2)浅析Cortex-M4内核

本篇博客是一个对Cortex-M4内核了解性的简介,不会涉及到深奥的理论,请大家放心食用。

我们所学习的STM32G431RBT6单片机是基于ARM的Cotex-M4内核,因此我们有必要对此内核做一个大概了解。其实M4内核和M3内核有很大的相似之处,很多资料也都将其放在一起去说,我们这里也先了解一下M3的内核,请看图:

这个图就向我们展示了ARM公司的M3内核,对于这样的内核,和我们用到的芯片,比如STM32F103C8T6,有什么关系呢?

1.内核与芯片的制造关系

请看下面这张图:

你是不是以为一个芯片,上面有某个公司的商标,就是完全由这个公司生产的?这样的理解是片面的。

请看上图,以ST公司的STM32系列(如F1/F4)为例,我们可以清晰看到半导体产业链的分工协作关系。ARM公司 作为IP核设计商,提供标准化的处理器核心解决方案------即图中蓝色区域(Cortex-M3内核)及紫色区域(调试系统)。芯片厂商如ST则基于ARM授权的IP核,进行芯片级集成设计,具体包括:

  1. 外设开发:根据市场需求添加GPIO、UART、ADC、定时器等专用模块;

  2. 存储配置:设计Flash、SRAM的容量与布局;

  3. 时钟与电源管理:定制PLL、低功耗模式等电路;

  4. 物理实现:完成芯片的物理层设计(如制程选择、引脚排布)与封装测试。

这些东西结合在一起,才形成了我们使用的芯片。

这种模块化分工的优势在于:

  • ARM专注核心架构创新:持续优化处理器性能与能效比;

  • 芯片厂商快速定制:通过调整外设组合,灵活满足工业、消费电子等不同领域需求(如F1侧重基础控制,F4强化DSP性能)。

2. Cortex-M3内核内部简介

我们把那个内核放大看,其实就是右边这个绿框框里的东西:

我们只需要大概知道里边有什么,可以看到,包括NVIC,取指单元,指令译码寄存器组,存储器接口,ALU,调试系统等,这里的一些东西我们后边会用到,比如NVIC,是管理STM32中断的,我们后边再说,想深入了解这个内核的工作原理,需要了解一些微机原理的计数,由于笔者微机原理学的不好,只能讲个大概:

首先我们要知道,内核不就是CPU吗,CPU的作用是什么,CPU的作用就是执行程序,而我们单片机的程序都在哪呢,都在闪存flash里放着,CPU怎么将程序拿过来呢?CPU是通过总线将程序从flash里拿过来的,而执行这个过程的就是取指单元,取到指令后,要知道这段指令是干什么的,就要对指令进行解码,此时就需要指令解码器,知道指令后肯定要进行执行啊,比如1+1,这里的运算就是算术逻辑单元ALU的工作了,当然算出来结果是2,肯定要找一个地方放着,就放到寄存器组里,然后结果再转移到外部的存储器系统比如RAM,如此一直循环。大概是这个意思,更严谨我也不会。

3.Cortex-M4内核

其实M4和M3内核基本一模一样,包括工作的基本原理,其实你看明白了M3内核,M4内核自然都明白了。

这个就是M4内核的图,下面我们将其与M3内核放一起对比:

可以看到M3和M4内核再其他部分是一摸一样的,只有画红框的部分不一样,M4比M3多了一个DSP和一个FPU,这两个东西是什么意思呢?

(1) 浮点单元(FPU)

  • 浮点单元(FPU, Floating-Point Unit)是一个硬件模块,用于加速浮点数运算的执行,特别是在涉及到浮点加法、减法、乘法、除法等运算时。FPU将浮点运算的处理从软件实现转移到硬件中,从而显著提高了运算速度,减少了CPU的负担。
  • Cortex-M4内核配备了单精度FPU ,即它支持32位浮点数(符合IEEE 754标准)。通过硬件支持,Cortex-M4可以直接进行浮点数的加减乘除运算,而不需要像某些处理器那样通过软件仿真来实现浮点运算。
  • FPU的引入对于需要高精度数学计算的应用非常重要,如数字信号处理、科学计算、图形处理等。

(2)数字信号处理(DSP)

  • 数字信号处理(DSP, Digital Signal Processing)指的是对离散信号(如声音、图像、传感器数据等)进行数学处理的过程。DSP通常涉及对信号的分析、滤波、变换和其他类型的运算。它是通信、音频处理、图像处理等领域的核心技术。
  • Cortex-M4内核不仅支持浮点运算,还专门设计了DSP指令集 ,可以加速某些特定的信号处理算法。例如,Cortex-M4支持乘法累加指令(MAC)快速傅里叶变换(FFT)滤波器设计等操作,这些操作对于实时数字信号处理至关重要。
  • DSP指令集和FPU一起使Cortex-M4成为一种高效的信号处理平台,能够在不牺牲计算性能的情况下提供低功耗和高实时性。

(3)DSP和FPU的协同作用

  • Cortex-M4的内核结合了DSP指令集浮点单元(FPU),使得它既能够高效地进行整数型信号处理(如滤波器和卷积),也能够执行复杂的浮点型计算(如数字信号处理中的傅里叶变换和滤波)。
  • 这使得Cortex-M4内核非常适合需要进行高效数字信号处理和浮点计算的应用,例如音频处理、传感器数据分析、语音识别等。

由此我们不难看出,单从内核层面上,M4内核就要比M3内核强大很多,而且在单片机层面上,G4系列的单片机其实是要强于F1系列的,举个例子F1系列主频72M,而G4系列主频达到了180M,两倍还多,这对于一些信号处理,比如ADC采集等就是降维打击,我是做电源的,G4系列在高精度数控电源方面还是很好用的。

下面做了一张M3内核和M4内核的区别的表

4.CM4内核与STM32G431

(1)Cortex-M4内核的核心特性

Cortex-M4是ARM公司设计的32位RISC处理器内核,专为高性能嵌入式实时应用设计,结合数字信号处理(DSP)浮点运算(FPU)**能力,适合复杂控制与信号处理场景。其核心特性包括:

  • ARMv7-M架构:哈佛结构(分离指令与数据总线),三级流水线,支持低延迟中断响应。

  • Thumb-2指令集:16/32位混合编码,兼顾代码密度与执行效率。

  • 单精度FPU(浮点单元):支持IEEE 754单精度浮点运算,加速数学运算(如PID控制、FFT)。

  • DSP扩展指令:SIMD(单指令多数据)、饱和运算、乘累加(MAC)指令,优化数字信号处理算法。

  • 嵌套向量中断控制器(NVIC):支持多达240个中断源,优先级可动态配置。

  • 低功耗模式:支持Sleep、Stop、Standby模式,适应电池供电场景。


(2)STM32G431ZET6芯片的关键特性

STM32G431ZET6是STMicroelectronics基于Cortex-M4内核的高性能微控制器,属于STM32G4系列,专为数字电源、电机控制、高级传感等应用优化。其核心参数如下:

a. 处理器与性能
  • 内核:Cortex-M4 @ 170 MHz(理论性能约213 DMIPS)。

  • FPU:集成单精度浮点单元(FPU)。

  • 数学加速器 :STM32G4系列特有CORDICFMAC单元,加速三角函数、滤波等运算。

b. 存储器配置
  • Flash:512 KB(支持ECC校验)。

  • SRAM:128 KB(32 KB带ECC校验)。

  • 附加存储:16 KB CCM-SRAM(紧耦合内存,用于高速数据存取)。

c. 外设与功能模块
  • 高分辨率定时器(HRTIM):支持184 ps分辨率,用于数字电源开关控制(如LLC谐振变换器)。

  • 模拟外设

    • 4个12位ADC(5 Msps,支持硬件过采样)。

    • 2个12位DAC(支持波形生成)。

    • 4个运算放大器(OPAMP)和7个比较器(COMP),用于信号调理。

  • 通信接口

    • 6个USART/UART、3个SPI、3个I2C、2个CAN FD。

    • USB 2.0全速接口(支持无晶振设计)。

  • 电机控制专用外设

    • 6通道PWM定时器(支持死区插入、紧急关断)。

    • 硬件编码器接口(用于位置反馈)。

e. 安全与可靠性
  • 硬件加密:AES-128/256、HASH、RSA加速器。

  • 存储保护:Flash读保护(RDP)、写保护(WRP)。

  • 安全启动:支持安全固件更新(SB)。

f. 低功耗特性
  • 运行模式:低至100 µA/MHz(典型值)。

  • Stop模式:保留SRAM,电流低至10 µA。

  • Standby模式:最低2 µA(支持RTC唤醒)。


(3) STM32G431ZET6如何发挥Cortex-M4的优势

a. 高性能数字信号处理
  • 电机控制

    • 利用FPU加速磁场定向控制(FOC)算法。

    • 通过CORDIC单元快速计算电机角度(如Park/Clarke变换)。

  • 数字电源

    • 高分辨率HRTIM生成精确PWM,配合ADC实时反馈,实现闭环控制。

    • 使用FMAC单元加速数字滤波(如PID补偿器)。

b. 实时响应能力
  • 中断响应:NVIC支持低于10个时钟周期的中断延迟,确保PWM故障保护等硬实时需求。

  • 紧耦合内存(CCM-SRAM):关键代码/数据存放于CCM,避免总线争用,提升实时性。

c. 低功耗优化
  • 动态电压调节:通过电源管理单元(PWR)调整内核电压(1.2V~3.6V),平衡性能与功耗。

  • 外设时钟门控:按需启用外设时钟,减少待机能耗。


(4) 典型应用场景

  1. 工业电机驱动:BLDC/PMSM电机的高效控制(如无人机电调、工业机器人)。

  2. 数字电源:AC/DC转换器、无线充电、太阳能逆变器。

  3. 智能传感:结合ADC和OPAMP,实现高精度传感器信号采集(如电流/电压检测)。

  4. 音频处理:利用DSP指令加速音频编解码(如语音识别前端)。


(5)开发工具与资源

  • IDE:STM32CubeIDE(免费,集成STM32CubeMX配置工具)。

  • 软件库

    • STM32CubeG4 HAL库:提供外设驱动与示例代码。

    • DSP库:优化数学运算(如FFT、FIR滤波)。

  • 调试工具:ST-LINK/V3、J-Link(支持SWD/JTAG接口)。

  • 参考设计

    • STM32G4数字电源开发套件(STEVAL-DPSG4SIC)。

    • STM32G4电机控制应用笔记(AN5484)。

5.总结

结合Cortex-M3内核学习M4,同时与M4内核对应的芯片结合起来,就能对M4内核产生一个基本的认识,如果想要深入学习,可以参考: Cortex-M3/M4权威指南

相关推荐
电气_空空3 分钟前
基于单片机和蓝牙通讯的简易钢琴控制装置设计
单片机·嵌入式硬件·毕业设计·毕设
yrx02030738 分钟前
stm32 jlink烧录时写保护
stm32·单片机·嵌入式硬件
Kurbaneli2 小时前
微软平台下 C 语言:编程世界的闪耀基石
c语言·单片机·microsoft
promising-w2 小时前
【蓝桥杯单片机】第十二届省赛
单片机·嵌入式硬件·蓝桥杯
solomonzw3 小时前
物联网系统搭建
单片机·嵌入式硬件
练习&两年半3 小时前
C语言:51单片机 程序设计基础
c语言·开发语言·单片机·51单片机
电气_空空3 小时前
基于单片机和Wifi技术的智能台灯设计
单片机·嵌入式硬件·毕业设计·毕设
DOMINICHZL4 小时前
STM32 RTC实时时钟详解与HAL库实战教程
stm32·单片机
亿道电子Emdoor4 小时前
【ARM】DS如何查看工程的堆栈使用情况
arm开发·stm32·单片机·arm
子豪-中国机器人5 小时前
2月28日,三极管测量,水利-51单片机
单片机·嵌入式硬件·51单片机