1、概述
MCU,微控制单元(Micro Controller Unit),又称为单片型计算机、单片机,将中间处理器(CPU)进行频率和规格的缩减,并将内存(memory)、Timer、UART、SPI等外设资源整合在单一芯片上,形成芯片级的计算机,用于各种低成本、低要求的控制应用场合。根据实际应用场景的不同,MCU片上资源可根据需要进行裁剪定制,以获取应用系统的最佳性能,最低成本。
从应用角度讲,MCU片上资源可分为三类:存储、系统和外设。存储资源通常指用于存储程序的FLASH及存储运行时数据的RAM;系统资源用于确保MCU系统的运行及稳定,如时钟,看门狗等;外设资源用于提供系统工作所需的接口或其他资源。以Crotex-Mx系列内核的MCU为例,具体说明如下。
2、存储资源
存储资源,指存储数据的相关电路部分,通常MCU会带有不同容量的程序存储空间(FLASH)和数据存储空间(RAM),不同型号的MCU所带有的存储空间大小也会有所差异,存储空间从KB到MB均有覆盖,以满足不同应用的需要。当然,价格也是与存储空间成正比的,存储空间越大,价格也会越高些。
- FLASH:程序存储空间。非易失型数据存储空间,掉电后数据不丢失,通常用于存储程序代码信息,也可根据业务需要存储业务相关数据。
- RAM:数据存储空间。易失型数据存储空间,掉电后数据丢失,通常用于存储程序运行期间的数据信息,访问速度较FLASH快,成本较FLASH贵些,容量通常比FLASH小。
3、系统资源
系统资源指维持MCU正常工作或保证MCU正常工作的一些资源,如系统运行所必须的时钟、防止系统死机的看门狗。
- RCC:系统时钟配置,如系统主频时钟设置。
- SYS:系统工作相关配置,如Debug接口。
- PMU:系统电源管理单元,通常用于保证系统上下电复位。
- IWDT:系统看门狗,在指定时间未喂狗将复位MCU,以避免系统死机。
- WWDT:窗口看门狗,与系统看门狗类型,用于复位MCU以避免系统死机。与系统看门狗不同的是:系统看门狗可以在设置的看门狗时间内任意时刻喂狗,而窗口看门狗只能在设置的时间端内喂狗,过早或过晚的喂狗,都会导致系统复位。
- GPIO:通用输出输入口,这个其实应该输入外设资源的,但对一个嵌入式系统而言,通用输出输入口是必须的,所以这里就把通过输入输出口归类于系统资源了。
- DMA:Direct Memory Access,直接内存存取,使用硬件就行数据的传输,从而不需要大量的CPU中断负载,减轻到大量数据传输时CPU的负担。DMA最主要的功能就是将数据从一个地址移动到另一个地址,在DMA工作期间,DMA控制器直接控制系统总线操作数据,从而避免CPU的参数。
- NVIC:Nested Vectored Interrupt Controller,内嵌向量中断控制器,NVIC与控制器内核紧密相连。以Cortex-M3为例,NVIC提供的功能有:可嵌套中断支持,向量中断支持,动态优先级调整支持,短中断延迟,中断可屏蔽。
4、外设资源
系统相关资源用于保证系统的运行,而外设资源往往用于满足系统的业务需要,通过硬件实现与外设器件的高效的通信或操作。MCU外设种类繁多,除了标准的Time、UART等,根据业务的需要也衍生了多种相似的外设用于满足应用的需求,如LPTIM(低功耗定时器)、LPUART(低功耗串口),单线SPI等。按其功能分类,可分为以下几类。
- Analog:模拟外设,如ADC、DAC、OPA、比较器等。模拟外设为MCU提供了数字信号与模拟信号交互的通道。
- Timer:定时器,如STM32的BTIM、GTIM、LPTIM、RTC等。定时器为系统提供了时间概念,便于获取时间、定时等,满足不同的应用需求。
- Connectivity:连接接口,如IIC、SPI、UART,包括并行接口FMSC等。连接接口为MCU提供了连接多种外部设备的能力,使得MCU具有极强的通用性。
- Security&Computing:安全和计算相关,如RAND,CRC等。安全和计算单元,为原本计算能力较弱的MCU,提供的硬件加速功能,同时也为MCU在系统安全应用需求方面提供了多种解决解决方案。
- Multimedia:多媒体,如IIS、DCMI、LCD等。多媒体接口,为MCU提供了丰富的人机交互的接口,通过硬件实现,也提高了MCU在处理人机交互信息时的能力及效率。
MCU外设多种多样,对于同一功能,不同的微控制器厂商的实现也会略有差异,但各个接口的标准,功能是一致的,对于不同的MCU对应用户手册查阅相关寄存器进行配置后使用就行。
5、外设与系统资源
对于MCU的一个外设使用,需要首先配置外设的相关寄存器,为了实现将MCU与外围设备器件数据交互,通常又需要配置GPIO,使用GPIO与外围设备器件连接,进行数据传输。为提高系统运行的实时性要求,又需要NVIC提高系统的响应速度。当外设存在大量数据传输的需求时,使用CPU会增加CPU的负担,这时DMA可以提供数据传输的通道,在不需要CPU干预的情况下完成数据的传输。所以,为了一个外设正常工作,通常需要使用系统资源中的GPIO、NVIC、DMA等资源进行辅助,以满足应用系统的需求。