Cortex-M4

日前,业界领先的半导体供应商兆易创新(GigaDevice)正式发布基于120MHz Cortex®-M4内核的GD32F303/305/307多个系列主流型微控制器新品,以增强的处理效能和丰富的系统资源为市场主流应用注入澎湃动力。作为GD32微控制器家族的最新成员, GD32F3系列率先提供了3大系列37个产品型号,包括LQFP144、LQFP100、LQFP64和 LQFP48等4种封装类型选择。从而以前所未有的设计灵活性和兼容度轻松应对飞速发展的产业升级挑战。目前,该系列产品已经开始提供样片,并将于四月份正式投入量产及全面供货。

GD32F3系列新品最高主频可达120MHz并支持DSP指令运算。配备了128KB到3072KB的超大容量Flash及48KB到96KB的SRAM,内核访问闪存高速零等待。芯片采用2.6V-3.6V供电,I/O口可承受5V电平。配备了2个支持三相PWM互补输出和霍尔采集接口的16位高级定时器可用于矢量控制,还拥有多达10个16位通用定时器、2个16位基本定时器和2个多通道DMA控制器。并为广泛的主流应用配备了多种基本外设资源。包括多达3个USART、2个UART、3个SPI、2个I2C、2个I2S、2个CAN2.0B和1个SDIO,以及外部总线扩展控制器(EXMC)。

其中,全新设计的I2C接口支持快速Plus (Fm+)模式, 频率最高可达1 MHz (1MB/s),是以往速度的两倍,从而以更高的数据传输速率来适配高带宽应用场合。SPI接口也已经支持四线制,方便扩展Quad SPI NOR Flash并实现高速访问。内置的USB 2.0 OTG FS接口可提供Device、HOST、OTG等多种传输模式,还拥有独立的48MHz振荡器支持无晶振(Crystal-less) 设计以降低使用成本。10/100M自适应的快速以太网媒体存取控制器(MAC)可更协助开发以太网连接功能的实时应用。芯片还配备了3个采样率高达2.6M SPS的12位高速ADC,提供了多达21个可复用通道,并新增了16-bit硬件过采样滤波功能和分辨率可配置功能,还拥有2个12位DAC。多达80%的GPIO具有多种可选功能还支持端口重映射,并以增强的连接性满足主流开发应用需求。

由于采用了最新Cortex-M4内核,GD32F3系列主流型产品在最高主频下的工作性能可达150DMIPS,CoreMark®测试可达403分。同主频下的代码执行效率相比市场同类Cortex-M4产品提高10%-20%,相比Cortex®-M3产品更提高30%。不仅如此,全新设计的电压域支持高级电压管理功能,使得芯片在所有外设全速运行模式下的最大工作电流仅为380µA/MHz,电池供电时的RTC待机电流仅为0.8µA,在确保高性能的同时实现了最佳的能耗比,从而全面超越GD32F1系列产品。更令人振奋的是,GD32F3系列与GD32F1系列保持了完美的软件和硬件兼容性,并使得用户可以在多个产品系列间方便的自由切换,以前所未有的灵活性和易用性构建设计蓝图。

兆易创新资深产品市场经理金光一表示,“我们推出的GD32F3系列MCU开启了Cortex®-M4内核全面进入主流市场的新时代,并得以在进一步优化的成本基础上带来更高性能、更低功耗与方便易用的设计体验。无论是从现有产品升级,还是直接用于新项目,都可以无缝切换。我们诚邀开发者一起感受GD32F3系列MCU加速主流智能应用的澎湃动力。”

GigaDevice还为新产品系列配备了完整丰富的固件库,包括多种开发板和应用软件在内的GD32开发生态系统也已准备就绪。线上技术门户(www.GD32MCU.com)已经为研发人员提供了强大的产品支持、技术讨论以及设计参考平台。得益于广泛丰富的ARM生态体系,包括Keil MDK、CrossWorks等更多开发环境和第三方烧录工具也均已全面支持。这些都极大程度的简化了项目开发难度并有效加快产品上市周期。

GD32F3系列Cortex-M4产品线概览

GD32F303系列主流型Cortex-M4 MCU (18个型号)
● 120MHz MCU, Flash 256-3072KB, SRAM 48-96KB
● 17 x Timer, 5 x UART, 3 x SPI, 2 x I2C, 1 x CAN, USB FS
● I2S, SDIO, EXMC, 3 x ADC, 2 x DAC

GD32F305系列主流互联型Cortex-M4 MCU (10个型号)
● 120MHz MCU, Flash 128-1024KB, SRAM 64-96KB
● 17 x Timer, 5 x UART, 3 x SPI, 2 x I2C, 2 x CAN, USB OTG FS
● I2S, SDIO, EXMC, 2 x ADC, 2 x DAC

GD32F307系列主流互联型Cortex-M4 MCU (9个型号)
● 120MHz MCU, Flash 256-1024KB, SRAM 96KB
● 17 x Timer, 5 x UART, 3 x SPI, 2 x I2C, 2 x CAN, USB OTG FS
● I2S, SDIO, EXMC, Ethernet, 2 x ADC, 2 x DAC

GD32 微控制器家族

GD32 MCU家族目前已经拥有300余个产品型号、17个产品系列及11种不同封装类型,也是中国首个ARM Cortex-M3及Cortex-M4 内核通用MCU产品系列。不仅提供了业界最为宽广的Cortex-M3 MCU选择,更以领先的技术优势持续推出Cortex-M4 MCU产品。所有型号在软件和硬件引脚封装方面都保持相互兼容,全面支持各种高中低端嵌入式应用与升级。融合了高性能、低成本与易用性的GD32系列通用MCU采用了多项自主知识产权的专利技术并为日益增长的多元化智能应用需求提供助力。产品通过长期市场检验,已成为系统设计与项目开发的创新首选。

围观 507

兆易创新GigaDevice GD32F403系列通用MCU基于168MHz Cortex®-M4内核并支持快速DSP和浮点运算功能,持续以业界领先的处理效率和均衡的接口资源配置,为工业制造、智能硬件和物联网等高性能计算需求提供高性价比入门之选。

日前,业界领先的半导体供应商兆易创新(GigaDevice)推出基于168MHz Cortex-M4内核的GD32F403系列高性能基本型微控制器新品,以均衡的系统资源和外设配置为高级运算需求提供了高性价比的入门之选。作为GD32微控制器家族的最新成员, GD32F403系列提供了20个产品型号,包括LQFP144、LQFP100、LQFP64和BGA100等4种封装类型选择。从而以极佳的设计灵活性和兼容度轻松应对飞速发展的智能应用挑战。目前,该系列产品已经开始提供样片,并将于三月份正式投入量产及全面供货。

GD32F403系列新品采用全新工艺制程设计,处理器最高主频可达168MHz,集成了完整的DSP指令集、并行计算能力和专用浮点运算单元(FPU)。配备了256KB到3072KB的超大容量Flash及64KB到128KB的SRAM。内核访问闪存高速零等待,最高主频下的工作性能可达210DMIPS,CoreMark®测试可达565分。同主频下的代码执行效率相比市场同类Cortex-M4产品提高10%-20%,并已全面超越Cortex®-M3产品,性能提升超过40%。

GD17022702

GD32F403系列芯片配备了2个支持三相PWM互补输出和霍尔采集接口的16位高级定时器可用于矢量控制,还拥有多达8个16位通用定时器、2个16位基本定时器和2个多通道DMA控制器。考虑到高级应用需求,均衡并实用地集成了多种外设资源。包括多达3个USART、2个UART、3个SPI、2个I2C、2个I2S、2个CAN2.0B和1个SDIO,内置的1个USB 2.0 OTG FS接口可提供Device、HOST、OTG等多种传输模式,并拥有独立的48MHz振荡器支持无晶振(Crystal-less) 设计。芯片配备了3个采样率高达2.6MSPS的12位高速ADC,提供了多达21个可复用通道,并新增了16-bit硬件过采样滤波功能和分辨率可配置功能,还拥有2个12位DAC。多达80%的GPIO具有多种可选功能还支持端口重映射,极佳的灵活性和易用性满足多种应用需求。

芯片采用2.6V-3.6V供电,I/O口可承受5V电平。全新设计的电压域支持高级电源管理并提供了三种省电模式。在所有外设全速运行模式下的最大工作电流仅为380µA/MHz,电池供电时的待机电流低于1µA,在确保高性能的同时实现了最佳的能耗比。更具备了6KV静电防护(ESD)和优异的电磁兼容(EMC)能力,全部符合工业级高可靠性和温度标准。

兆易创新资深产品市场经理金光一表示,“GD32F403系列通用MCU整合了强大的处理效能和均衡的外设资源,从而以更低的功耗效率和更高的性价比助力高级计算应用的基础设计实现。我们不仅进一步完善了高性能产品线,还将继续扩展并丰富Cortex-M4内核MCU的选择范围,让开发者以方便易用的主流和超值使用体验构建未来。”

GigaDevice还为新产品系列配备了完整丰富的固件库,包括多种开发板和应用软件在内的GD32开发生态系统也已准备就绪。全新的开发工具包括GD32403Z-EVAL、GD32403V-START和GD32403R-START对应三种不同封装和管脚的学习套件,方便用户进行开发调试。还提供了支持在线仿真、在线烧录和脱机烧录三合一功能的调试量产工具GD-Link。得益于广泛的ARM生态体系,包括Keil MDK、CrossWorks等更多开发软件和第三方烧录工具也均已全面支持。这些都极大程度的简化了项目开发难度并有效加快产品上市周期。

GD32F4系列Cortex-M4产品线概览

● GD32F450系列高性能增强型Cortex®-M4 MCU (11个型号)
200MHz MCU+FPU, Flash 512-3072KB, SRAM 256-512KB, 17 x Timer, 8 x UART, 6 x SPI, 3 x I2C, 2 x CAN, USB OTG HS/FS, I2S, SDIO, Camera, SDRAM, Ethernet, LCD-TFT, IPA, 3 x ADC, 2 x DAC

● GD32F407系列高性能互联型Cortex-M4 MCU(15个型号)
168MHz MCU+FPU, Flash 512-3072KB, SRAM 192KB, 17 x Timer, 6 x UART, 3 x SPI, 3 x I2C, 2 x CAN, USB OTG HS/FS, I2S, SDIO, Camera, SDRAM, Ethernet, 3 x ADC, 2 x DAC

● GD32F405系列高性能互联型Cortex-M4 MCU(9个型号)
168MHz MCU+FPU, Flash 512-3072KB, SRAM 192KB, 17 x Timer, 6 x UART, 3 x SPI, 3 x I2C, 2 x CAN, USB OTG HS/FS, I2S, SDIO, Camera, 3 x ADC, 2 x DAC

● GD32F403系列高性能基本型Cortex-M4 MCU(20个型号)
168MHz MCU+FPU, Flash 256-3072KB, SRAM 64-128KB, 15 x Timer, 5 x UART, 3 x SPI, 2 x I2C, 2 x CAN, USB OTG FS, I2S, SDIO, 3 x ADC, 2 x DAC

GD32 微控制器家族

GD32 MCU家族目前已经拥有250余个产品型号、14个产品系列及11种不同封装类型,也是中国首个ARM® Cortex®-M3及Cortex®-M4 内核通用MCU产品系列。不仅提供了业界最为宽广的Cortex®-M3 MCU选择,并以领先的技术优势持续推出Cortex®-M4 MCU产品。所有型号在软件和硬件引脚封装方面都保持相互兼容,全面支持各种高中低端嵌入式应用与升级。融合了高性能、低成本与易用性的GD32系列通用MCU采用了多项自主知识产权的专利技术并为日益增长的多元化智能应用需求提供助力。产品通过长期市场检验,已成为系统设计与项目开发的创新首选。

围观 606

Cortex-M4微控制器(MCU)将可加速马达控制设计。精准的马达控制须仰赖精密且复杂的算法才能达到,而Cortex-M4微控制器运算能力达100MHz,并具备DSP及硬件浮点运算单元,可有效执行马达控制所需的高阶计算,有助减轻开发负担。

透过内建Cortex-M4核心的微控制器(MCU),再搭配智能型连接的接口设备,将可轻松执行复杂的马达控制算法。本文将以永磁同步马达(PMSM)磁场定向控制(FOC)之中的方程式为例进行探讨,并显示如何利用CMSIS数字信号处理器(DSP)链接库进行处理。本范例使用的相同原则,可应用至其他控制算法及马达类型。此外,也将探讨智能型接口设备为何不需要第二个核心,并说明使用单一业界标准核心搭配CMSIS DSP链接库的众多优点。

在探讨控制算法及方程式之前,了解永磁同步马达的架构及运作相当重要。基本上,简易的三相永磁同步马达包含永磁转子及固定式定子,并且搭配了三个正弦分布绕组(图1)。

图1 (A)为基本永磁同步马达的截面图;(B)为定子绕组以正弦方式分布。中间有点或X的圆圈,分别代表离开或进入的电线。

永磁同步马达架构及运作原理

定子的正弦分布绕组类似于三相感应马达的正弦分布绕组。单相中任何角度的电线圈数约为NS cos(£\)。其他两相情况相同,但偏移120度,而在现实情况下,绕组只是以近似正弦的方式分布。

由于如果将三相正弦电流施加至本类定子,就会产生旋转的正弦分布磁通量。因此,设计人员可利用数学证实以上理论。由于绕组产生的磁通量,与通过绕组的电流及绕组圈数成正比,所以将圈数乘以该相电流,就可以得出该定子相产生的磁通量,也就是磁动势(MMF)。若是再加上其他两相的结果,就能够算出定子的总磁通量。然后找一位高中学生,请他使用「余弦定律」(公式1)将长方程式简化为以下的简易方程式。

公式1

为有效控制马达,让产生的定子磁通量与转子磁通量90度异相,如此一来马达扭矩就能与定子磁通量振幅成正比。

简化磁场定向控制理论

此外,采用MCU型的不断电系统(UPS),主要是搭配整合式模拟数字转换器(ADC)及脉冲宽度调变(PWM)模块连接至半桥及变压器,产生正弦电压。输出电压预期应为无噪声的110伏特(V)60Hz正弦,不受负载影响。设计人员为了产生PWM值,首先可使用简易的PI控制器搭配110V、60Hz参考讯号,目的是透过ADC信道读取实际电压,与所需电压进行比对,将误差送入PI控制器,并使用输出控制PWM值;可惜这种方式并不成功,容易把电路板烧掉。

因此,可以考虑执行复杂的非线性控制法则,藉此取代PI控制器。透过已经制作好的正弦PWM值的对照表,将其储存于MCU内存,并且在每次PWM中断时,将指数增加至对照表中,接着将数值复制至PWM缓存器。采用这种方式虽然可以产生良好的60Hz正弦讯号,但是仍然会受到负载较大的影响。为了控制本正弦电压的振幅,可将对照表数值乘以比例因子,再将其传输至PWM缓存器,然后使用简易的PI控制器控制比例因子;而这次的结果顺利许多,在使用三角函数计算的情况下,即使只有近似于直流电的电压振幅时,采用简易PI控制器就能运作。

磁场定向控制运作时也采用类似原则。利用三角函数移除系统的正弦属性,然后针对振幅应用简易的线性PI控制器。为了检视其中的运作方式,在此可使用向量简化图1(B);图2类似于图1,只是其中把很难绘制的小圆圈替换为a、b及c轴。

图2 (A)为三相永磁同步马达的向量图标显示三相电流(ia、ib、ic)及其向量总和(iS);(B)则显示转子及其以旋转「d」轴定向的磁通量。为了实现最高效率,iS必须对齐转子的正交q轴。

由于磁通量与电流成正比,因此磁通量与电流这两个名词可以互换。三定子电流产生的总磁通量是以向量iS表示,也就是ia+ib+ic的向量总和;目标是让is与转子磁铁产生的磁通量保持90度的差距。在图2(B)中,若iS对齐转子正交或q轴,就代表定子磁通量对齐的位置适当,而图中有部分没有对齐的地方。

为了将定子磁通量对齐转子,首先必须找出与转子适当对齐的定子磁通量组件。这是与转子q轴对齐的磁通量组件,称为iq。我们也须找出未与转子适当对齐的组件,这是与转子d轴对齐的磁通量组件,称为id。如图3所示,id及iq只是iS在d及q轴的投射。

作者: Mike Copeland

图3 iq是产生实用扭矩的定子磁通量组件,id是应控制为零的定子磁通量组件,将iS投射至d及q轴即可发现以上两项组件。请注意转子角度是以φ 表示。

文章来源:新电子

围观 485

关于systick在Cortex-M4中有讲到,我们大家平常在单片机开发中经常会使用到延时函数,一般的,我们会使用变量自加循环判断的方法来实现软件延时。但是这种方法有个弊端——延时时间不精确。

主要体现在:

1、在C语言编写的延时函数中,每条函数语句的执行时间可能不同,这样,在实现延时的过程中,想通过增加或减少函数语句来实现延时的增加或减小控制起来不太方便,时间的精确性当然很难控制;

2、由于各种不同的控制器运行的主频可能不同,执行相同的延时函数所需要的的时间值可能就不同。这样,使得这种延时函数在不同的平台上移植起来时间的精确性就更不可靠。所以,我们就不使用这样的延时方法。

从ARM Cortex-M0内核开始,一直到现在的ARM Cortex-M4,这些内核中都搭载了systick滴答定时器,它放在了NVIC中,主要目的是为了给操作系统提供一个滴答中断。当然,毕竟它也是一个定时器,我们就可以利用它来做到精确的软件延时。

systick定时器是一个递减的计数器,如果设定初值并使能它以后,它会在每个系统时钟周期里计数器减1,直到减到0为止。然后,systick计数器自动重装初值并继续递减计数,如果软件上又使能了systick计数器的中断,那么,在systick计数器减到0的时候,中断被触发,当然,中断标志位也被置位。那么,每次计数器递减到0,所经过的时间值为:系统时钟周期*计数器初值。

systick定时器内部几个常用的寄存器:

1、systick控制及状态寄存器CTRL:

其中,CTRL[16]位是COUNTFLAG标志位,当systick计数到0的时候,该位置1,如果读取该位,则硬件自动清0,所以我们可以用软件判断是否计数到0。

CTRL[2]位是CLKSOURE标志位,用来指示当前systick定时器的时钟源,CLKSOURCE=1表示时钟源是内核时钟(一般我们会选择这种情况);CLKSOURCE=0表示时钟源是外部时钟源。

CTRL[1]位是TICKINT标志位,用来指示systick计数到0的时候是否产生systick异常请求。CTRL[0]位是ENABLE位,该位是systick定时器的使能位。

2、systick重装载计数器LOAD:

该寄存器是一个24位的寄存器,保存着systick定时器的初值,使得当systick计数到0的时候,将该寄存器中的数据重装载到当前计数器中继续递减计数。

3、systick当前数值计数器VAL:

该寄存器是一个24位的寄存器,用来指示当前的计数值。

围观 314

最近在关注Cortex-M处理器,针对目前进入大众视野的M0、M3、M4做了如下简单对比,内容来自ARM等官网,这里仅仅是整理了下,看起来更直观点,

Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。.

一、比较 Cortex-M 处理器

1

Cortex-M 系列处理器都是二进制向上兼容的,这使得软件重用以及从一个

2

Cortex-M 处理器无缝发展到另一个成为可能。

M Cortex-M 技术

3

CMSIS

ARM Cortex 微控制器软件接口标准 (CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。 使用 CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新产品的上市时间。

深入:嵌套矢量中断控制器 (NVIC)

NVIC 是 Cortex-M 处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力。 Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。接受中断时,处理器会从该矢量表中提取地址。

为了减少门数并增强系统灵活性,Cortex-M 处理器使用一个基于堆栈的异常模型。出现异常时,系统会将关键通用寄存器推送到堆栈上。完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。使用此方法,便无需编写汇编器包装器了(而这是对基于 C 语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。NVIC 支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。

在硬件中完成对中断的响应

Cortex-M 系列处理器的中断响应是从发出中断信号到执行中断服务例程的周期数。它包括:

● 检测中断
● 背对背或迟到中断的最佳处理(参见下文)
● 提取矢量地址
● 将易损坏的寄存器入栈跳转到中断处理程序

4

5

这些任务在硬件中执行,并且包含在为 Cortex-M 处理器报出的中断响应周期时间中。在其他许多体系结构中,这些任务必须在软件的中断处理程序中执行,从而引起延迟并使得过程十分复杂。

NVIC 中的尾链

在背对背中断的情况下,传统系统会重复完整的状态保存和还原周期两次,从而导致更高的延迟。Cortex-M 处理器通过在 NVIC 硬件中实现尾链技术简化了活动中断和挂起的中断之间的转换。处理器状态会在比软件实现时间更少的周期内自动保存在中断条目上并在中断退出时还原,从而显著提升低 MHz 系统的性能。

NVIC 对迟到的较高优先级中断的响应

如果在为上一个中断执行堆栈推送期间较高优先级的中断迟到,NVIC 会立即提取新的矢量地址来为挂起的中断提供服务,如上所示。Cortex-M NVIC 对这些可能性提供具有确定性的响应并支持迟到和抢占。

NVIC 进行的堆栈弹出抢占

6

同样,如果异常到达,NVIC 将放弃堆栈弹出并立即为新的中断提供服务,如上所示。通过抢占并切换到第二个中断而不完成状态还原和保存,NVIC 以具有确定性的方式实现了缩短延迟。

二、为什么选择 1、为什么选择Cortex-M0

能耗最低的最小 ARM 处理器

Cortex-M0 的代码密度和能效优势意味着它是各种应用中 8/16 位设备的自然高性价比换代产品,同时保留与功能丰富的 Cortex-M3 处理器的工具和二进制向上兼容性。 超低的能耗
Cortex-M0 处理器在不到 12 K 门的面积内能耗仅有 85 µW/MHz(0.085 毫瓦),所凭借的是作为低能耗技术的领导者和创建超低能耗设备的主要推动者的无与伦比的 ARM 专门技术。

简单

指令只有 56 个,这样您便可以快速掌握整个 Cortex-M0 指令集(如果需要);但其 C 语言友好体系结构意味着这并不是必需的。可供选择的具有完全确定性的指令和中断计时使得计算响应时间十分容易。

优化的连接性

设计为支持低能耗连接,如 Bluetooth Low Energy (BLE)、IEEE 802.15 和 Z-wave,特别是在这样的模拟设备中:这些模拟设备正在增加其数字功能,以有效地预处理和传输数据。

2、为什么选择Cortex-M3

提供更高的性能和更丰富的功能

于 2004 年引进、最近通过新技术进行了更新并更新了可配置性的 Cortex-M3,是专门针对微控制器应用开发的主流 ARM 处理器。

性能和能效

具有高性能和低动态能耗,Cortex-M3 处理器提供领先的功效:在 90nmG 基础上为 12.5 DMIPS/mW。将集成的睡眠模式与可选的状态保留功能相结合,Cortex-M3 处理器确保对于同时需要低能耗和出色性能的应用不存在折衷。

全功能

该处理器执行 Thumb-2 指令集以获得最佳性能和代码大小,包括硬件除法、单周期乘法和位字段操作。Cortex-M3 NVIC 在设计时是高度可配置的,最多可提供 240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。

丰富的连接

7

功能和性能的组合使基于 Cortex-M3 的设备可以有效处理多个 I/O 通道和协议标准,如 USB OTG (On-The-Go)。

3、为什么选择Cortex-M4 ®

目标用用:专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。

曾获大奖的高能效数字信号控制

Cortex-M4 提供了无可比拟的功能,以将 32 位控制与领先的数字信号处理技术集成来满足需要很高能效级别的市场。

易于使用的技术

Cortex-M4 通过一系列出色的软件工具和 Cortex 微控制器软件接口标准 (CMSIS) 使信号处理算法开发变得十分容易。

三、规范

1、M0

ARM Cortex-M0 处理器执行 Thumb 指令集,包括少量使用 Thumb-2 技术的 32 位指令。这是 ARM Cortex-M3 和 ARM Cortex-M4 支持的指令集的二进制向上可兼容子集。

2、

8

M3

9

内核面积、频率范围和功耗取决于工艺、库和优化。上面引用的数字是使用通用 TSMC 工艺技术和 ARM 物理 IP 标准单元库和 RAM 的合成核心的说明。面积数字包括
CM3Core、嵌套向量中断控制器 (NVIC) 和总线矩阵,但不包括可选组件(包括内存保护单元、嵌入式跟踪宏单元、断点单元、数据检测点单元和跟踪端口接口单元)。

速度优化的实现是指为了实现目标频率性能而做出的库选择、合成流决策和折衷。面积优化的实现是指为了实现目标面积密度而做出的库选择、合成流决策和折衷。

3、M4

10

11

12

内核面积、频率范围和功耗取决于工艺、库和优化。上面引用的数字是使用低功耗工艺技术和 ARM 物理 IP 标准单元库和 RAM 的合成内核的说明。面积数字包括中央内核(包括 DSP 扩展、嵌套矢量中断控制器 (NVIC) 和总线矩阵),但不包括可选组件

13

(包括内存保护单元、嵌入式跟踪宏单元、断点单元、数据检测点单元和 Trace Port Interface Unit。

速度优化的实现是指为了实现目标频率性能而做出的库选择、合成流决策和折衷。面积优化的实现是指为了实现目标面积密度而做出的库选择、合成流决策和折衷。

以下的一点为M4页面特有的介绍:

系统 IP

系统 IP 组件对于在芯片上构建复杂的系统至关重要,通过利用系统 IP 组件,开发人员可以显著缩短开发和验证周期,从而节省成本并缩短产品的上市时间。

14

来源:百度文库

围观 517

大部分采用Cortex-M3/M4 MCU的目标应用是便携式的,并且供电电源来自电池或能源收集系统,因此我们所探讨的大部分概念涉及如何减少系统整体能耗的技术。然而,在许多情况下,这些节能技术也是处理器应用设计的有力工具,可提供:

●更符合成本效益的解决方案

●更大的升级和采用新特性的设计冗余

●有助于产品在激烈竞争市场上脱颖而出的性能和特性

小知识:Cortex-M3对比Cortex-M4

Cortex-M3架构背后的指导思路是设计一种既要满足应用的成本效益又要提供高性能计算和控制1的处理器。类似的应用包括汽车车身系统、工业控制系统和无线网络/传感器产品等。M3系列为32位的ARM处理器架构引进了多项重要特性,包括:

●不可屏蔽式中断

●高度确定性、嵌套、向量式中断

●原子位操作

●可选的存储保护(MPU)

除了绝佳的计算性能,Cortex-M3处理器先进的中断结构还能确保系统迅速响应真实世界的事件,同时仍然提供极低的动态与静态功耗。

图1 ARM Cortex M3和M4对比

SWO接口节省I/O引脚并加速调试

除了传统的串行调试(Serial Wire Debug)功能之外,基于ARM Cortex-M的MCU还可以通过它的单引脚串行监视器输出(Serial Wire Viewer Output,SWO)3提供指令跟踪接口,如图2所示。这个接口可以直接把“printf格式的”调试信息传递给应用代码。SWO允许调试信息直接在任何标准的IDE中浏览。此外,这些信息也可以用独立的SWO监视器(例如,Segger的J-Link SWO Viewer软件4,或是Silicon Labs的energyAware Commander 4)进行浏览。由于SWO输出内建于内核硬件本身,因此它是Cortex-M内核与生俱来的优点。SWO不占用MCU的任何UART接口,这些接口它们可能早已被分配给了应用。

图2 专用ARM Cortex SWO接口节省I/O引脚并加速调试

基于SWO的调试还有一个重要的优势在于,它让微控制器在进入最低的休眠模式时,保持调试连接有效,而在大多数情况下,传统的调试连接这时是不能正常工作的。SWO的指令追踪还可以用于跟踪程序计数器,以帮忙IDE统计出程序各项功能所占用的时间。这些统计数字能够与电流测量结合起来,帮助开发人员对设计功耗进行微调。

目前一些供应商正在开始重新认识这项优点,而且有些厂商已经为了这个目的而把功耗模式和电流测量硬件纳入到本身的开发平台。例如,Silicon Labs的EFM32 Gecko MCU入门级和开发级工具包都包含功耗测量输出,并可搭配energyAware Profiler工具6中的程序代码追踪功能。图3显示了如何让设计人员精确定位到哪个程序功能块最耗费能源,并且能够快速调试其它与能源有关的问题。

图3 软硬件工具精确定位耗能最大的功能,无需示波器和万用表,快速排除问题

智能休眠节省每一微瓦

ARM Cortex-M处理器的Sleep-on-Exit(中断完成时直接进入休眠)是另一项“一箭双雕”的功能,可同时节省CPU周期和能耗。这点在由中断所驱动的应用中格外有用,因为处理器的大部分时间不是在执行中断处理,就是在中断事件之间休眠。在进入中断服务例程(ISR)时,MCU必须花费好几个指令周期把当前线程状态入栈,然后在退出中断处理返回时恢复原有线程状态,即“出栈”。当应用需要处理器在退出ISR后直接进入休眠状态时,传统MCU仍然必须恢复原先存储的状态信息,然后线程代码才能让MCU进入休眠状态。同样地,当下次的中断唤醒MCU时,它的状态必须再次入栈。

而当使能ARM Cortex-M微控制器上的Sleep-on-Exit功能后,MCU就会在中断处理完成后直接进入休眠状态,而不用先返回到原有线程上(见图4)。这会使处理器仍然保持在中断状态,因为消除了唤醒再入栈过程,因而节省下许多宝贵的机器周期。消除入栈出栈过程既节省了时间也节省了能耗,否则电能就会被不必要的指令周期白白消耗,也包括哪些传统MCU在休眠和唤醒之间管理堆栈的代码。而且,当处理器被中止调试请求(Halt Debug Request)唤醒时,出栈过程将会自动进行。

流程图


图4:ARM Cortex-M的Sleep-on-Exit功能通过避免不必要的代码执行和减少出栈入栈操作降低功耗

ARM Cortex-M4运行更快、休眠功耗更低

像许多MCU一样,Cortex-M3/4处理器通常能够采用高时钟速率的方法在中断驱动的应用中节省能耗。如果处理器大部分时间处于休眠状态,这种看似违背直觉但普遍采用的节能策略就会很好,因为运行时间减少所节省的能耗远远大于稍高的操作电流。简单来说,多花10%的电可以省掉 20%的时间,总体来说是节能了。

这种技术可以应用在任何Cortex-M系列的处理器上,而涉及密集运算任务的应用也能从Cortex-M4处理器的额外能力中受益。它的单周期DSP指令和可选的浮点加速器能大大减少诸如数字信号处理、过滤、分析或波形合成等功能所需要的执行周期数。

上面提及的节能特性也能带来其它优势。例如,在超音波/声学水表之类的应用中,它们必须在小电池供电下运行多年,需要MCU尽可能长的保持在休眠状态。除了有助于减少MCU唤醒时间之外,Cortex-4 DSP和浮点算术指令也能使用成熟的滤波功能从廉价声学传感器输出中获得所需的信息,从而避免采用昂贵的超声波流量传感器。在这个应用实例中,Wonder Gecko MCU的外设还能够作为模拟状态机提供额外的能量节省,它仅仅在需要时才唤醒Cortex-M4处理器。

虽然并不完备,但这些林林总总的秘诀与妙方应该能让各位产生好的思路,可以在下一次设计中充分利用Cortex-M系列中一些较不为人知的特性所带来的好处。为了发挥ARM Cortex-M系列的这些和其它重要功能,可参考本文末段的参考资料,它们提供了所需的更多细节。

文章来源: 畅学电子网

围观 426

本文主要从M3和M4的MPU、DSP能力、debug调试和电源管理4个方面说明两者的区别。

1、内存保护单元MPU

与Cortex - M3的相同,MPU是一个Cortex - M4中用于内存保护的可选组件。处理器支持标准ARMv7内存保护系统结构模型。您可以使用在MPU执行 特权/访问 规则,或者独立的进程。这个MPU提供全面支持:

  • 保护区
  • 重叠保护区域,提升区域优先级(7 =最高优先级,0 =最低优先级)
  • 访问权限
  • 将存储器属性输出至系统
  • 2、DSP能力

    下图展示了处理器运行在相同的速度下Cortex - M3和Cortex - M4在数字信号处理能力方面的相对性能比较。
    在下面的数字,Y轴代表执行给出的计算用的相对的周期数。 因此,循环数越小,性能越好。以Cortex - M3作为参考,Cortex - M4的性能计算,性能比大概为其周期计数的倒数。举例说明,PID功能,Cortex - M4的周期数是与Cortex - M3的约0.7倍,因此相对性能是1/0.7,即1.4倍。

    Cortex - M系列16位循环计数功能

    Cortex - M系列32位循环计数功能

    这很清楚的表明,Cortex - M4在数字信号处理方面对比Cortex - M3的16位或32位操作有着很大的优势。
    Cortex-M4执行的所有的DSP指令集都可以在一个周期完成,Cortex - M3需要多个指令和多个周期才能完成的等效功能。即使是PID算法——通用DSP运算中最耗费资源的工作,Cortex - M4也能提供了一个1.4倍的性能得改善 。另一个例子,MP3解码在Cortex-M3需要20-25Mhz,而在Cortex-M4只需要10-12MHz。

    1) 32位乘法累加(MAC)

    32位乘法累加(MAC)包括新的指令集和针对Cortex - M4硬件执行单元的优化它是能够在单周期内完成一个 32 × 32 + 64 - > 64 的操作 或 两个16 × 16 的操作。如下表列出了这个单元的计算能力。

    2) SIMD

    Cortex - M4支持SIMD指令集,这在上一代的Cortex - M系列是不可用的。上述表中的指令,有的属于SIMD指令。与硬件乘法器一起工作(MAC),使所有这些指令都能在单个周期内执行。受益于SIMD指令的支持,Cortex - M4处理器是能在单周期完成高达32 × 32 + 64 - >64的运算,为其他任务释放处理器的带宽, 而不是被乘法和加法消耗运算资源。考虑以下复杂的算术运算,其中两个16 × 16乘法加上一个32位加法,被编译成由一个单一指令执行:SUM = SUM +(A* C)+(B *D)

    3) FPU

    FPU是Cortex - M4浮点运算的可选单元。因此它是一个专用于浮点任务的单元。这个单元通过硬件提升性能,能处理单精度浮点运算,并与IEEE 754标准 兼容。这完成了ARMv7 - M架构单精度变量的浮点扩展。FPU扩展了寄存器的程序模型与包含32个单精度寄存器的寄存器文件。这些可以被看作是:

  • 16个64位双字寄存器,D0 - D15
  • 32个32位单字寄存器,S0 - S31 该FPU提供了三种模式运作,以适应各种应用
  • 全兼容模式(在全兼容模式,FPU处理所有的操作都遵循IEEE754的硬件标准)
  • Flush-to-zero 冲洗到零模式(设置FZ位浮点状态和控制寄存器FPSCR [24]到flush-to-zero 模式。在此模式下,FPU 在运算中将所有不正常的输入操作数的算术CDP操作当做0.除了当从零操作数的结果是合适的情况。VABS,VNEG,VMOV 不会被当做算术CDP的运算,而且不受flush-to-zero 模式影响。结果是微小的,就像在IEEE 754 标准的描述的那样,在目标精度增加的幅度小于四舍五入后最低正常值,被零取代。IDC的标志位,FPSCR ,表示当输入Flush时变化。UFC标志位,FPSCR ,表示当Flush结束时变化)
  • 默认的NaN模式(DN位的设置,FPSCR ,会进入NaN的默认模式。在这种模式下,如对任何算术数据处理操作的结果,涉及一个输入NaN,或产生一个NaN结果,会返回默认的NaN。仅当VABS,VNEG,VMOV运算时,分数位增加保持。所有其他的CDP运算会忽略所有输入NaN的小数位的信息)
  • 下表显示的是FPU指令集


    3.debug调试

    与Cortex - M3的相同, Cortex - M4的设备是通过标准JTAG或串行线调试连接器调试。要连接到主机的接口,一个简单,标准化外部连接器是必要的。

    4. 电源

    1) 电源管理


    2) 功耗比较

    从图所示,很明显在功率效率方面Cortex - M4的性能大大优于表Cortex - M3。

    围观 501
    订阅 RSS - Cortex-M4