Cortex-M0

Cortex —M0处理器的各部分功能如下。
1)处理器内核包含寄存器组、算术逻辑单元( ALU )、数据总线和控制逻辑。按照设计
要求,流水线可以工作在取指、译码和执行三种状态下。
2)嵌套向量中断控制器( NVIC )用于处理最多32个中断请求和一个不可屏蔽中断(NM1)输人, NVIC 需要比较正在执行中断和处于请求状态中断的优先级,然后自动执行高优先级的中断。
3)唤醒中断控制器( WIC )在低功耗应用中使用。当微控制器的大部分模块关闭后,微控制器会进人待机状态。此时, WIC 可以在 NVIC 和处理器处于休眠的情况下执行中断监测功能,当 WIC 检测到一个中断时,会通知电源管理器给系统上电,让 NVIC 和处理器内核执行剩下的中断过程。
4)调试子系统由多个模块构成,用于处理调试控制、程序断点和数据监视点。当调试
进行时、处理器内核会自动进人暂停状态。
5) JTAG 和 SWD 接口提供了通向内部总线系统和调试功能的人口。 JTAG 一般用作测试功能,而 SWD 则是一种新型接口,只需两根线(时钟线和数据线)就可以完成芯片编程或实现与 JTAG 相同的调试功能。
6)内部总线系统、处理器内核的数据通路以及 AHB — LITE 总线均为32位宽,其中 AHB — LITE 是片上总线协议,应用于多款 ARM 处理器中。 AMBA 是 ARM 开发的总线架构,已经广泛应用于 IC 设计领域。
1.14Cortex—M0处理器的特点
Cortex —M0微控制器功耗非常低、门数量少、代码占用空间小,能在8位微控制器的价位上获得32位微控制器的性能,可明显降低系统成本,同时能保留对功能强大的 Cortex —M3微控制器开发工具的兼容能力。 Cortex —M0微控制器的主要特点如下。
1.功耗低
降低功耗是 Cortex — MO 处理器的设计初衷,在使用65nm半导体制造工艺时,处理器的功耗为12uW/ MHz ,在180nm工艺时功耗也仅为85uW/ MHz ,这对于32位处理器来说已经是很低的水平了。在 Cortex —M0处理器的开发过程中, ARM 应用了多种技术和优化措施,以确保硅片面积尽量小,并对处理器的每一部分都经过了小心处理和反复验证以降低功耗。通过尽量减少门数量,直接降低了芯片的动态功耗和漏电流:最低配置的 ARM 处理器仅需12000个门;为了追求更佳的性能,门的数量通常控制在17000~25000个,这已经同一般的16位处理器差不多了,但性能却是16位处理器的两倍有余。
2.效率高
Cortex —M0处理器拥有高效率的架构,这主要归功于 Thumb 指令集以及高度优化的硬件设计,可以使用较低的时钟频率来降低动态电流并获取高性能。 Cortex —M0处理器片内有快速乘法器(单周期)和小型乘法器(32周期)可供选择,在使用快速乘法器时,处理能力可以达到0.9 DMIPS / MHz ,而使用小型乘法器时,可以达到0.85 DMIPS / MHz 。这个性能与老式台式机他用的 80486DX2 的0.8I DMIPS/MHz 处理能刀差不多的,但硅片面积和 功耗方面来看就有相当大的差距了。
3架构先进
1.Cortets M0本身在架构上支持低功耗,还提供睡眠和深度睡眠两种低功耗模式也支持 Sleep-on-evit 功能,即一旦中断处理完成,微控制器会重返睡眠模式,从而缩短微控制器处于活跃状态的时间。另外, Cortex — MO 还提供可选的 WIC 切能,在深度睡腥 模块发出,由时钟频率的系整个系统时钟关闭,只保持 WIC 处于工作状态,用于在紧急时刻唤醒微控制器
4.中断时间确定
内置的嵌套向量中断控制器( NVIC )使中断配置和异常处理间洁而迅速。当接收到中断请求后,中断处理会立即自动执行,而且无需软件查找中断向量的位置,中断响应时间确定
同时保留不可屏蔽中断(NMI)输入,对打造可靠性系统提供可能
5.软件可移植
Contex — M 系列处理器主要是用于微控制器产品,其中 Cortex —M3处理器首先发布 其功能丰富且性能出众; Cortex — M1随后发布,主要用于 FPGA 严品。而 Cortex —M0则 是 Cortex — M 系列发布的第三个处理器。尽管这些处理器的应用场景不同,但它们都有一致的内核架构、相似的系统模型和兼容的指令集。
Cortex —M3处理器基于ARMv7-M内核架构,使用 Thumb —2指令集,而 Cortex —M0和 Cortex — M1处理器都是基于ARMv6— M 内核架构,使用 Thumb 指令集。 Thumb —2指令集是 1.1.7微 Thumb 指令集的超集,因此在 Cortex —M0上设计的程序可以在完全不用修改的情况下应用在 Cortex - M 处理器上。
对于所有基于 Cortex — M 内核的微控制器,其软件代码都可以使用 C 语言来编写、这样 具有高度的编程时间更短,而且可移植性强。另外, Cortex —M0架构支持嵌人式操作系统——在一些复杂的应用中,使用嵌入式操作系统会让并行任务处理变得更加得心应手。
RISC 架构
RISC ( Reduced Instruction Set Computer ,精简指令集计算机)是一种执行较少类型计算机指令的微控制器。 ARM 公司设计的微控制器均基于 RISC 架构,它能够以更快的速度执行操作。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,指令集越大,微控制器就会变得越复杂,执行操作也会更慢,因此使用 RISC 架构的微控制器可以增加工作效率并降低功耗。
RISC 微控制器不仅精简了指令系统,还采用了超流水线结构。虽然它们的指令数目只 微控制器厂有几十条,却大大增强了并行处理能力,可以在单一指令周期内容纳多个并行操作。Corte RISC 芯片的工作频率一般在400MHz数量级,时钟频低,功率消耗少、温升也少,机器不易发生故障和老化,提高了系统的可靠性。 AMBA 总线 ARM 研发的 AMBA ( Advanced Microcontroller Bus Architectre )椹供了一种特殊的机制可将 RISC 微控制器集成在其他 IP 芯核和外设中。2.0版的 AMBA 标准中定义了三组总线:高级高性能总线( Advanced High - performance Bus , AHB )、高级系统总线( Advanced System Bus , ASB )和高级外设总线( Advanced Peripheral Bus , APB )。. AHB 高级高性能总线由主模块、从模块和基础结构三部分组成,整个 AHB 上的传输都由主模块发出,由从模块负责回应。其基本结构由仲裁器、主模块到从模块的多路选择器、从模块到主模块的多路选择器、译码器、虚拟从模块、虚拟主模块等组成,是应用于高性能、高时钟频率的系统模块。它构成了高性能的系统骨干总线。
2.ASB高级系统总线适用于连接高性能的系统模块。它的读/写数据总线采用的是同一条双向数据总线,可以在某些高速且不需要使用 AHB 的场合作为系统总线使用,并可以支持处理器、片上存储器和片外处理器接口以及与低功耗外部单元之间的连接。
3. APB APB 是本地二级总线,通过桥与 AHB 或 ASB 相连,主要是为了满足不需要高性能流水线接口或不需要高带宽接口的设备互连。 APB 只有一个 APB 桥,用于将来自于 AHB 或 ASB 的信号转换为合适的形式以满足挂接在 APB 上设备的要求,如串行口、定时器等。1.1.7微控制器软件接口标准( CMSIS )随着嵌人式软件越来越复杂,软件代码的兼容性和可重用性变得非常重要,这样既可减轻项目开发者的压力、缩短开发时间,又方便第三方软件组件的使用。为了使这些软件产品具有高度的兼容性和可移植性, ARM 同许多微控制器和软件供应商共同努力,为 Cortex — M 处理器产品开发出一个通用的软件接口标准 CMSIS 。该标准相当于 Cortex — M 处理器的跨平台驱动程序,用于在不同的开发环境中调用。1. CMSIS 的软件功能 CMSIS 通常作为微控制器厂商提供的设备驱动库的一部分来使用,它提供了一种标准化的软件接口,并且针对 Cortex —M0、 Cortex —M3等处理器特性,定义了相应的操作函数,这也提高了软件的可移植性。 CMSIS 的软件功能如图1—3所示。图1—3中,采用 ARM 内核的微控制器产品由 Cortex —M0核和外设构成。对于外设来说,微控制器厂商通常会提供标准外设函数库来作为其外设产品的驱动,而 CMSIS 则是 ARM 公司为 Cortex — M 系列内核定义的驱动函数库。 CMSIS 提供了以下标准化的内容。口标准化的操作函数,用于访问 NVIC 、系统控制块( SCB )以及 SysTick 定时器。口使用 Cortex — M 微控制器特殊指令的标准化函数。因为有些指令不能由普通的 C 代码生成,如果需要这些指令,就可以使用 CMSIS 提供的相应函数来实现。口系统异常处理的标准化命名。当系统异常有了标准化命名以后,在一个操作系统里支持不同的设备驱动库也变得更加容易。口系统初始化函数的标准化命名。通用的系统初始化函数被命名为“SystemInit0”,提供了软件的兼容性。
4. 为时钟频率信息建立标准化的变量,SystemFreq,用于确定处理器的时钟频率
5. CMSIS组织结构
CMSIS集成在微控制器供应商提供的设备驱动包,主要是核心外设访问层,中间件访问层,设备外设访问层和外设访问函数。
(3内部)

STM2FO72家族微控制器内核采用了 ARM 公司的32位 Cortex —M0 CPU ,最大频率为48MH,在低成本、低功耗的前提下提供了出色的运算性能、较高的代码执行效率和快速的
中断响应
Flash 存储器:配置有6~128KB的 Flash 存储器,这些存储器可以被分成两部分
其中内部存储器区域用于存放程序和数据,选项字节则用于设定芯片的工作特性或为
存储区域提供读写保护
RAM 存储器:内部16KB SRAM 能以 CPU 的速度进行读写访问,无需等待周期,内置的奇偶校验功能可以防止在复杂苛刻的应用条件下发生错误。
3. CRC 计算单元
独立的 CRC (循环冗余校验)计算单元可以依靠硬件计算并生成 CRC 码,用干检验数据传送或存储的完整性。
4.DMA控制器
7通道 DMA 控制器用于管理存储器到存储器、外设到存储器以及存储器到外设的数据传送。每个 DMA 通道都连接到专用的 DMA 请求,并且每个通道都支持软件触发。使用 DMA 可以极大地减轻 CPU 的数据传输压力,提高运算性能。
5.复位和供电管即
STM32F072家族微控制器的电源供电分为儿个部分: Vpp 的供电电压为2.0~3.6V,
用于给1o口和内部电压调节器供电; VDDx 的供电电压同样为2.0~3.6V,用于给 ADC ,复位时钟, RC 振荡器和 PLL 供电; Vuxr 的供电电压为1.6~3.6V,当微控制器的 Vdd掉电后, Vbat 用于给 RTC 、外部32kHz时钟振荡器和备份寄存器供电。
口微控制器内部集成了上电复位( POR )和掉电复位( PDR )电路。这两个电路会一直保持有效,以确保做控制器在2V阈值之上正常工作。当电源电压低于规定的南值 yI 时,微控制器将处于复位状态
微控制器还内嵌一个可编程的电压检测器( PVD )以监控 VDD 电源。当 VDD 低于以
高于 Vpvd调值时,会引发中断用于产生警告信息或将微控制器置于某个安全状态。
口电压调节器有主电源( MR )、低功耗( LPR )和掉电三种工作模式。其中, MR 用干正常工作模式,功率消耗最大; LPR 用于停止( STOP )模式,这时微控制器工作在低功耗模式下:掉电用于待机( STANDBY )模式,电压调节器输出为高阻状态,内核电路掉电,寄存器和 SRAM 的内容全部丢失。
STM32FO72家族微控制器支持睡眠、停止和待机三种低功耗模式,以便在低电源功耗、 6.低功耗模式
快速启动时间和可唤醒三者之间实现最佳的低功耗解决方案。
STM32FO72家族微控制器可用的时钟源有4~32MHz外部晶体振荡器、32kHz的 RTC 7.时钟管理
振荡器、内部8MHz RC 振荡器(带×6锁相环倍颗)、内部40kHz RC 振荡器和48MHz振荡器。当微控制器复位后,默认情况下选择内部的8MHz RC 振荡器作为默认的时钟。通过配置也可以选择4~32MHz的外部时钟。如果外部时钟出现故障,系统会自动切换到内部 RC 振荡器上继续运行。通过设定相应的预分频器,软件可以配置 AHB 和 APB 总线频率, AHB 和 APB 的最大频率为48MHz。
8.通用输入输出接口( GPIO )
STM32F072家族微控制器最多可以配置87个高速1/O口,每个 GPIO 引脚都可以通过软件配置为输出(上拉或开漏)、输入(带或不带上拉/下拉)或作为外设的复用功能,所有 GPIO 可配置为外部中断输入。
9.模—数转换器( ADC )
STM32FO72家族微控制器内部集成有1个12位模—数转换器,转换范围为0~3.6V,最多有16个外部通道和3个内部通道(温度传感器、参考电压和 VBAT 电压测量)。 ADC 可以执行单次或扫描转换。 ADC 还具有模拟看门狗功能,允许精确地监测一个或多个模拟电压,当模拟电压超出可编程阈值时会产生一个中断。
10.数—模转换器( DAC )
12位的 DAC 转换器可以将数字信号转换成模拟电压信号输出,内部集成有运算放大器,可以选择电压或电流输出, DAC 可以通过定时器触发输出。
11.模拟比较器
微控制器内嵌两个快速低功耗轨至轨( rail to rail )模拟比较器,具有可编程的参考电压
源。模拟比较器可以将微控制器从 STOP 模式中唤醒、产生中断或中止定时器,还可组合成 窗口比较器。
12.触摸感应控制器
独立触摸感应控制器( TSC )具有最多24个电容感应通道,用于 VO 端口上触控感应采集,支持接近、触摸按键、线性和旋转触摸感应控制。
13.实时时钟( RTC )
实时时钟( RTC )是一个独立 BCD 编码的定时器/计数器,用于产生亚秒、秒、分、时、周、天、日、月、年等时间信息,时间数据采用 BCD 编码格式,并可自动调整月天数;
可编程闹钟可以将控制器从停止或待机中唤醒;具有两个可编程防侵人检测引脚,当检测的到侵入事件时可以将微控制器从停止或待机模式中唤醒;时间戳功能用来在发生时间戳事件,保存日历内容并唤醒微控制器。
STM32FO72家族微控制器内部配置有1个16位高级控制定时器,用于6通道 PWM 输出,并且带有死区时间发生器和紧急刹车功能:1个32位和7个16位定时器,具有最多4路输入捕获或输出比较通道,可用于红外控制和解码或 DAC 控制;1个独立的窗口看门狗定时器和24位向下计数的 SysTick 定时器。
15.通信接口
2个 I ℃接口支持快速脉冲模式( IMbit / s ),其中1个还支持 SMBus / PMBus 功能。 当我们
4个 USART 接口:支持主同步 SPI 和 Modem 控制功能,其中2个还支持ISO7816接口、 LIN 、 IrDA 、自动波特率检测和唤醒功能。 列微控制器
2个 SP 接口:通信速率18Mbit/ s ,支持4到16位可编程字长,支持I2S接口
1个 CAN 通信接口。
1个USB2.0全速接口,可以使用内部48MHz振荡器时钟运行。16.高清晰度多媒体接口(HDM1)
微控制器内嵌 HDM — CEC 控制器,提供消费电子控制( CEC )协议的硬件支持,可供多媒体设备间的高级控制和互联使用。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cortex-M0 是 ARM 公司推出的一款低功耗、低成本的 32 位微控制器处理器。Cortex-M0 例程是针对该处理器的代码示例集合,用于展示 Cortex-M0 的特点和使用方法。 Cortex-M0 例程通常涵盖了从基础的 GPIO 控制,到中断处理、定时器、串口通信等多个方面的功能代码。通过这些例程,开发者可以学习如何使用 Cortex-M0 处理器来实现各种任务。 在 Cortex-M0 例程中,首先需要配置和初始化相关硬件模块,如 GPIO 控制器、定时器等。然后,可以根据需求编写相应的代码来实现期望的功能。例如,如果想要通过 GPIO 控制 LED 的闪烁,可以设置引脚方向为输出,然后在循环中将引脚电平高低交替控制。如果想要实现定时器中断功能,可以设置定时器的周期和中断使能位,然后编写相应的中断服务函数来执行需要的操作。 Cortex-M0 例程不仅提供了硬件操作的代码示例,还提供了一些开发工具和环境的配置说明,以及对代码编译、下载和调试等方面的介绍。这些例程可以帮助开发者快速上手 Cortex-M0 处理器,并加深对其特性和应用的理解。 总之,Cortex-M0 例程是用于展示 Cortex-M0 处理器特点和使用方法的代码示例集合,可以帮助开发者学习和应用 Cortex-M0 处理器来实现各种功能。通过这些例程,开发者可以更加熟悉 Cortex-M0 的开发流程和操作方法,从而提高开发效率和代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值