目录
LIRC HIRC(内嵌低速阻容振荡器,内嵌高速阻容振荡器)
Architecture Diagram 模块功能解析:
ARM Cortex-M4F
Cortex系列属于ARMv7架构,其中M4系列应用于通用低端,工业,消费电子领域微控制器,与ARM7相似,不能跑操作系统(只能跑ucos2),偏向于控制方面,说白了就是一个高级的单片机。
硬件方面支持除法指令,并且有着中断处理程序和线程两种模式。在处理中断方面,M4F具有着自动保存处理器状态和回复低延迟中断。
与M3相比,M4处理器添加了DSP的数据(这里可以认为是浮点数)处理的指令,在需要运算大量浮点数据的时候,M4会大大提高处理器性能和运算速度,例如平衡车或者平衡器项目。
ARM Cortex 详解_jaronho的博客-CSDN博客_arm contex
NVIC(嵌套向量中断控制器)
NVIC属于内核外设,管理着包括内核和片上所有外设的中断相关的功能,可以设置每个中断的优先级。
STM32中的NVIC详解_AdamFriedrich的博客-CSDN博客_stm32nvic
中断-NVIC与EXTI外设详解(超全面)_rivencode的博客-CSDN博客_nvic和exti
MPU (存储器保护单元)
MPU位于存储器内部的一个可编程的区域,定义了存储器的属性和存储器的访问权限。可以设置不同存储区域的存储器访问特性(如只支持特权访问或全访问)和存储器属性(如可缓存、可缓冲、可共享),对存储器(主要是内存和外设)提供保护,从而提高系统可靠性。
STM32--MPU内存保护单元(一)_Z小旋的博客-CSDN博客_mpu内存保护单元
深入理解MPU_进击的蜗牛er的博客-CSDN博客_mpu是什么意思
JTAG(联合测试行动小组)
JTAG是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。 JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。
什么是JTAG?_LEEE@FPGA的博客-CSDN博客_jtag是什么
【开发工具】【JTAG】JTAG基础【一】_Evan_ZGYF丶的博客-CSDN博客_jtag电压
SWD(串行调试)
SWD是ARM目前支持的两种调试端口之一,另一个调试端口叫做JTAG。
优点:(1)高速模式更可靠;(2)接线少,占用的GPIO资源少;(3)自带复位协议,无需RST复位。
stm32 SWD调试接口的使用_hello_courage的博客-CSDN博客_swd接口
SWD接口说明_weixin_42204437的博客-CSDN博客_swd接口
FPB(Flash补丁和断点单元)
FPB用于实现硬件断点,并将代码和数据从代码空间补丁到系统空间。
Cortex-m4 处理器框图_John ZHNANG的博客-CSDN博客
DWT(数据观察点和跟踪单元)
用于实施观察点、数据跟踪和系统分析。
ITM(指令跟踪单元)
ITM是一种针对MCU进行跟踪调试的新方法,与打断点(Breakpoint)不同,ITM方法不需要暂停程序运行,可以在程序全速运行的过程中实时输出变量的数值以便观察,即Trace功能。
ITM机制-不用串口也能printf_天外飞仙CUG的博客-CSDN博客
TPIU(跟踪端口接口单元)
TPIU的作用是把跟踪数据格式化并输出到片外,提供跟踪端口分析仪之类的设备接收使用。
CM3内核调试组件_无为扫地僧的博客-CSDN博客_cm3内核
I-BUS, D-BUS(存储器接口)
负责对代码存储区的访问,前者用于取指令,后者用于数据访问等操作。从代码存储空间 0x00000000 到 0x1FFFFFFC 的指令提取通过 32 位 AHB-Lite 总线执行。
S-BUS(系统接口)
用于访问内存和外设,覆盖的区域包括 SRAM,片上外设,片外 RAM,片外扩展设备,以及系统级存储区的部分空间。对地址范围 0x20000000 到 0xDFFFFFFF 和 0xE0100000 到 0xFFFFFFFF 的取指令和数据以及调试访问是通过 32 位 AHB-Lite 总线执行的。
PPB(外部专用外设总线)
对外部 PPB 空间 0xE0040000 到 0xE00FFFFF 的数据和调试访问是通过 32 位高级外设总线 (APB) 总线执行的。跟踪端口接口单元 (TPIU) 和特定于供应商的外围设备在此总线上。
Cortex-m4 处理器框图_John ZHNANG的博客-CSDN博客
FPU(浮点运算单元)
负责一部分私有外设的访问,主要就是访问调试组件。FPU支持单精度浮点的加、减、乘、除、乘加以及平方根操作,还可用于转换定点和浮点数据格式。
【Tiva_C系列】一、ARM Cortex-M4F 处理器_屠龙归来仍是少年的博客-CSDN博客_arm cortex-m4f
WIC(唤醒中断控制器)
WIC用于接收外部中断信号,唤醒处于深度睡眠的处理器。
WIC(wake-up interrupt controller)介绍_硅农阿轩的博客-CSDN博客_wic是什么意思
DMA(直接存储器访问)
DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。
【STM32】 DMA原理,步骤超细详解,一文看懂DMA_Z小旋的博客-CSDN博客_dma stm32
DMAMUX(DMA控制器前一级的多路选择器)
建立DMA请求和DMA通道之间的映射关系,类似于路由的功能。无DMAMUX的MCU,DMA请求和DMA通道的映射关系是固定的,不能由软件修改。有了DMAMUX可以将DMA请求和DMA通道由软件联系起来,实现自定义链接。
【STM32H7教程】第39章 STM32H7的DMAMUX基础知识(重要)_硬汉eric2013的博客-CSDN博客
SMT32H7系列DMA和DMAMUX的一点理解_若水千点的博客-CSDN博客
RAM (随机存取存储器)
是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。
SRAM(静态随机存取存储器)
它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。掉电之后会丢失数据。
ROM(只读存储器)
ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写,在系统停止供电的时候仍然可以保持数据。
深入浅出DDR系列(一)--DDR原理篇_奇小葩的博客-CSDN博客_ddr原理详解
EEPROM(可擦除可编程ROM)
通过电子可以擦除原先的程序,价格很高,写入时间很长,写入很慢。
Flash(闪存)
FLASH存储器结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势)。
ROM、RAM、DRAM、SRAM和FLASH的区别_种瓜大爷的博客-CSDN博客
LDO(低压差线性稳压器)
稳压器是使输出电压稳定的设备。所谓压降电压,是指稳压器将输出电压维持在其额定值上下 100mV 之内所需的输入电压与输出电压差额的最小值。
LDO的原理及应用_strongercjd的博客-CSDN博客_ldo原理
bandgap(带隙基准)
作用是获得与温度无关的恒定电压
bandgap基本知识(转载)_Phenixyf的博客-CSDN博客_bandgap是什么
POR(上电复位)
作用是保证在施加电源后,模拟和数字模块初始化至已知状态。基本POR功能会产生一个内部复位脉冲以避免"竞争"现象,并使器件保持静态,直至电源电压达到一个能保证正常工作的阈值。
IC上电和关断 --- POR策略_元直数字电路验证的博客-CSDN博客_por 芯片
关于单片机PDR和POR应用注意事项_修才生的博客-CSDN博客_por单片机
LVW LVD(低电压警告,低电压检测)
LVW只产生中断,LVD可以产生中断和复位操作。
LVD的功能是检测 单片机VDD / VDDA 引脚上的供电电压是否低于低电压检测阈值
GD32F130之LVD低压检测_哈士奇上蔚的博客-CSDN博客_lvd低压检测
LIRC HIRC(内嵌低速阻容振荡器,内嵌高速阻容振荡器)
芯片手册里HIRC和LIRC是什么意思_金吴科技的博客-CSDN博客_lirc
OSC(晶体振荡器)
作用是产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电路中各种不同的总线频率。
射频篇(一) 模拟、射频器件学习(1) —— 晶振(OSC)_NemoYxc的博客-CSDN博客_osc晶振
PLL(锁相环)
作用是将一个电路板上的时钟相位与外部时序信号同步。PLL 电路的工作原理是将外部信号的相位与压控晶体振荡器 (VCXO) 产生的时钟信号的相位进行比较。然后,电路调整振荡器时钟信号的相位以匹配参考信号的相位。
ADC(模拟数字转换器)
ADC的基本工作原理_xtmtm的博客-CSDN博客_adc原理
也说说ADC以及ADC的主要技术参数及分类介绍_其利天下技术的博客-CSDN博客_adc芯片
DAC(数字模拟转换器)
数模转换器(DAC)——百度百科_D_daytime的博客-CSDN博客
CMP(比较器)
比较两端输入的电压,当另一输入端的电压大于参考点电压时,输出高电平,反之输出低电平。
MUX(多路选择器)
作用是从许多输入信号中选择一个作为输出。
多路选择器MUX总结-IC学习笔记(八)_Paul安的博客-CSDN博客_多选器mux
Cache(高速缓冲存储器)
是一块速度极快但是容量极小的存储设备。CUP从主储存load/store数据的时候,会首先从cache中查找对应地址的数据是否缓存在cache 中。如果其数据缓存在cache中,直接从cache中拿到数据并返回给CPU。
Cache的基本原理_bleauchat的博客-CSDN博客_cache颠簸
RTC(实时时钟)
RTC实质是一个掉电后还继续运行的定时器。
【STM32】RTC实时时钟,步骤超细详解,一文看懂RTC_Z小旋的博客-CSDN博客_rtc是什么意思
WDOG(看门狗)
在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗(喂狗),那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。
看门狗的作用就是防止程序发生死循环或者卡死,或者说程序跑飞。
基于S32K148 看门狗模块(WDOG)的使用_乌托邦626的博客-CSDN博客
EWDOG(外部看门狗)
旨在监控外部电路和 MCU 软件进程。这为内部看门狗提供了一种备份机制,以重置 MCU 上的 CPU 和外围设备。
EWDG 和内部看门狗的区别在于它不会复位 MCU 的 CPU 和外围设备。
GPT(通用定时器 )
通用定时器 (GPT) 可配置为带有可选预分频器的时间计数器,或带有可选毛刺滤波器的脉冲计数器。 它可以在所有电源模式和大多数系统复位事件中工作。
通用定时器的介绍_pdstar的博客-CSDN博客_通用定时器
GPIO(通用输入输出端口)
可以通过软件控制其输出和输入。负责采集外部器件的信息或控制外部器件工作,即输入输出
PORTA PORTB PORTC PORTD PORTE
PORTA 寄存器支持 32 位访问。 当引脚配置为 PORTA 时,DATAOUT 寄存器控制引脚的数据。 PORTA 的 DATAIN 寄存器显示各引脚对应的端口控制和中断模块使能时的逻辑值。
【PIC32学习笔记】关于如何控制PortA外围模块_anonyjusta的博客-CSDN博客
CAN(控制器局域网)
CAN 总线协议是 ISO 国际标准化的串行通信协议,已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。
STM32 CAN通信的学习笔记总结(从小白开始)_从心开始 >的博客-CSDN博客
SENT(单边半字节传输)
SENT是一种将传感器数据编码成一系列脉冲信号的单向通信方案,用于接收由执行 SENT 编码方案的传感器传输的串行数据帧,并将它们呈现给 CPU 进行进一步处理。
SENT协议学习_wenq77的博客-CSDN博客_sent协议解析
I2C(集成电路总线)
I2C是一种串行通信总线,使用多主从架构,它使用带有两条线的双向串行总线。开发 I2C 协议是为了在短距离内的多个设备之间提供简单高效的数据传输。
I2C协议靠这16张图彻底搞懂(超详细)_小麦大叔的博客-CSDN博客_i2c一主多从原理图
SPI(串行外围设备接口)
是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI原理超详细讲解---值得一看_Z小旋的博客-CSDN博客_spi
SPI协议详解(图文并茂+超详细)_小麦大叔的博客-CSDN博客_spi
UART(通用异步收发传输器)
UART是一种串行异步收发协议,工作原理是将数据的二进制位一位一位的进行传输。
UART协议快速扫盲(图文并茂+超详细)_小麦大叔的博客-CSDN博客
UART详解_sternlycore的博客-CSDN博客_uart
PWM(脉冲宽度调制)
PWM是一种对模拟信号电平进行数字编码的方法,广泛应用在从测量、通信到功率控制与变换的许多领域中。
STM32 PWM输出_strongercjd的博客-CSDN博客_stm32 输出pwm
PWM原理 PWM频率与占空比详解_Z小旋的博客-CSDN博客_pwm
TRGT(触发定时器)
TRGT 是具有 4 个定时器通道的低功耗触发定时器。 每个定时器通道可以在相应的定时器达到编程的计数值时产生触发输出信号。 触发输出信号可以作为片内其他模块的触发输入信号。
CRC(循环冗余校验)
循环冗余校验 (CRC) 模块通常用于计算 16/32 位 CRC 码以检测错误信息。 此外,基于CRC的技术用于验证数据信息传输或存储的完整性。
循环冗余校验(CRC)算法入门引导_liyuanbhu的博客-CSDN博客_crc
SHE security engine(SHE安全引擎)
SSE 旨在将对加密密钥的控制从软件域转移到硬件域,从而保护密钥免受软件攻击
CPU上电
首先,程序以机器码的形式,即二进制码的形式存在FLASH中;
上电后,CPU通过控制器将待运行的程序从FLASH中读入内存中;
代码在内存中运行时,控制器将需要计算的数据存入寄存器中;
运算器从寄存器中读取数据进行运算,并将结果存入寄存器中;
控制器将寄存器中的结果读入内存中;
由此,形成一个闭环的程序运行过程。
CPU的工作过程_顺其自然~的博客-CSDN博客_cpu如何工作
Arm芯片上电启动流程剖解_Yannick_J的博客-CSDN博客_芯片上电启动执行过程
扫盲:什么是单片机时序,如何看懂时序图_从零开始学单片机设计的博客-CSDN博客_单片机时序