MCU 内部架构及程序运行原理讲解

第一章 MCU 内部架构

第一节 认识MCU及其内部架构

第一部分 MCU 简介

MCU:微控制单元(Microcontroller Unit) ,又称单片微型计算机(Single Chip Microcomputer )或单片机,是把中央处理器(Central Process Unit,CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。

通用MCU:包含了各种常见的外设,可以执行指定的各种用户程序并完成指定的功能,应用在通用领域而非专用领域。

常见MCU品牌:宏晶科技STC、兆易创新GigaDevice、飞思卡尔Freescale、意法半导体ST、瑞萨Renesas等等。

第二部分 MCU 内部架构 

1、MCU DATASHEET

        每种芯片都有所对应最权威的芯片数据手册,里面包含了各种重要的信息;其次,该手册可以通过芯片的官方网站或第三方的ALLDATASHEET网站进行获取;把翻看DATASHEET培养成一个良好且重要的习惯,在以后的实践及项目中是举足轻重的。

2、宏晶科技 STC89C52

 

        外设:UART串口、Timer定时器、WDT看门狗、GPIO等;

        存储器:RAM、Flash、EEPROM等;

3、兆易创新 GD32F101x

        1、CPU:ARM CortexM3;

        2、BUS:ARM AMBA AHB Bus Matrix and APB Bus;

        3、非易失性存储器:Flash;

        4、易失性存储器:SRAM;

        5、外设:UART串口、Timer定时器、GPIO等。

3、意法半导体 STM32F103C8

        1、CPU:ARM CortexM3;

        2、BUS:ARM AMBA AHB Bus Matrix and APB Bus;

        3、非易失性存储器:Flash;

        4、易失性存储器:SRAM;

        5、外设:UART串口、Timer定时器、GPIO等。

第三部分 MCU 内部模块简介

 1、数字部分&模拟部分

        数字部分:大部分使用Verilog编写的RTL代码,执行数据逻辑功能,都是数字电路;Flash等内部存储器则是直接使用现成的物理器件;

        模拟部分:大部分都是现成的物理器件,例如PLL、LDO电源等,都是模拟电路。

2、核心组建

        1、CPU:用于执行用户程序指令,MCU的大脑;

        2、BUS:MCU内部数据交互的“桥梁”,一般采用AMBA总线,包括AHB,APB,AXI总线;

                2.1、AHB总线属于高速总线,用于连接MCU内部的高速模块,如内部存储器,DMA控制器等,还连接高速总线外设,例如USB总线;

                2.2、APB总线属于低速总线,用于连接MCU内部的低速模块,如UART, SPI总线等。

        3、非易失性存储器(Non-Volatile Memory,NVM:“硬盘”,永久性保存用户程序、数据,掉电后数据依然可以保存;

        4、易失性存储器(Volatile Memory Storage,VMS:“内存”,用于保护程序的中间变量、堆栈、掉电后数据丢失;

        5、外设:执行指定的功能,包括功能外设和通信外设。

                5.1、功能外设包括:TIMER, 看门狗,中断控制器等;

                5.2、通信外设包括:UART,SPI,I2C,USB,SDIO等。

        6、地址映射表:“存储映射”,CPU读写操作都会有对应的地址,每一个模块都有自己的地址;

        7、系统控制器:用于控制MCU内部各个模块的状态;

        8、中断控制器:连接并管理来自各个模块的中断信号与CPU的中断线;

        9、时钟树:各个模块的时钟分配,每个模块的时钟信号都可以选择的;

        10、复位树:各个模块的复位分配,一个MCU中可能有多种复位状态。

第二节 认识CPU及其内部架构

第一部分 CPU 简介

CPU:中央处理器(Central Processing Unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。

指令集:CPU所有的指令集合,就是CPU中用来计算和控制计算机系统的一套指令的集合,而每一种新型的CPU在设计时就规定了一系列与其他硬件电路相配合的指令系统。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效的工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集精简指令集两部分。

常见的CPU核:Intel的89C51内核、ARM公司的Cortex系列、RISC V等。

第二部分 CPU内部架构

        本文以ARM Cortex-M3为例:

1、ARM Cortex-M3 特点

        1、指令集Thumb-2,指令宽度16位或32位,指令执行三级流水线;

        2、32位单周期乘法、硬件除法(该CPU没有浮点数计算单元(floating point unit,FPU),不过Cortex-M4及其之后就有了);

        3、低延迟进入和退出中断处理函数;

        4、NVIC支持1~240个外部中断和11个系统异常,优先级可动态配置;

        5、便于调试(利用Jlink调试,可以读取指定寄存器;Keil软件可单步调试 ); 

        6、包含MPU(内存保护单元)、SysTick滴答计时器等;

        7、低功耗、低成本。

2、ARM Cortex-M3 组件

        1、NVIC:嵌入式中断向量控制器

### AUTOSAR MCU架构详解 #### 一、MCU抽象层概述 MCU(Microcontroller Unit,微控制器单元)抽象层位于AUTOSAR分层结构中的较低位置,在ECU抽象层之下。这一层次的主要功能是对特定微控制器的功能进行封装和标准化处理,从而实现上层软件组件与具体硬件之间的解耦合[^2]。 #### 二、主要职责 - **外设访问接口提供**:通过定义统一的标准API来管理对不同型号MCU内部资源的操作方式,比如定时器配置、中断控制等。 - **内存映射支持**:负责建立并维护物理地址到逻辑空间的转换关系表,确保操作系统或其他应用程序能够正确无误地读写指定区域内的数据。 - **低级初始化服务**:执行启动阶段必要的设置工作,包括但不限于时钟树调整、电源模式切换以及I/O端口方向设定等基础任务。 #### 三、典型组成要素 1. **Driver Modules** - 驱动程序模块作为连接底层硬件设施的重要桥梁,实现了诸如ADC采集、PWM输出等功能的具体实现细节隐藏起来,只向上暴露简单易用的方法调用接口给应用开发者使用。 2. **Interrupt Management Layer (IML)** - 中断管理层专门用来协调来自各个源处触发事件的通知机制,保证系统能够在第一时间响应紧急情况的同时也兼顾到了效率考量;此外还提供了灵活多样的优先级调度策略供用户自定义选择适用场景下的最优方案[^1]。 3. **Clock & Power Control Units(CPCUs)** - 时钟和功耗控制单元承担着调节整个芯片运行频率及供电状态的关键角色,对于优化性能表现有着不可替代的作用——既可以在不影响正常工作的前提下尽可能降低能耗水平,又能在需要高性能计算能力的时候迅速提升运作速度满足需求变化的要求。 ```c++ // 示例代码展示如何获取当前CPU主频值 uint32_t GetSystemCoreClock(void){ return SystemCoreClock; // 假定此变量由CPCU自动更新维持最新状态 } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值