前言8 l: B& X9 j: V" ]& V& | 在屡获殊荣的 STM32™ 微控制器上市后,意法半导体推出了 STM8S 系列,借此完成了其微控制器产品线的更新。为了使 MCU 产品组合合理化,意法半导体付出了很大努力,特别是对旨在简化产品移植的通用外设和软件工具方面的投入。 如采用新 MCU 系列进行设计,维持开发团队所需的时间成本和费用成本是选择微控制器供应商时的主要标准。因此,如果这种非重复性投资适用于范围广泛的 MCU,这将是一个优势。8 位 STM8S 和 32 位 STM32 系列 MCU 产品采用 20 到 144 引脚的封装,内存大小从 2 KB到 512 KB,这为产品组合的构建提供了极大的灵活性。如果 8 位应用耗尽 MIPS,可以升级到 STM32 系列。相反,如果希望削减 32 位平台的成本,切换到 STM8 系列也相当简单。, O% S3 R& n$ c! ? f 本文档介绍了 STM8S 和 STM32 产品线的相似之处和共同特性,旨在帮助用户从一个系列移植到另一个系列。 . D# p$ O0 j) W' H" b5 [7 |1 ? 1 内核3 x$ h f) M; u! }3 O STM8™ CPU 是一种专有架构,它保持了以前的 ST7 内核的传统,同时在 8 位 CPU 效率和代码密度方面实现了突破。STM32 围绕行业标准 ARM® Cortex™-M3 32 位内核构建,并受益于与 ARM 处理器有关的开发工具和软件解决方案的完整生态产业环境。尽管它们被认为是两种完全不同的处理器,但它们在架构方面实际有许多相似之处,表 1 对此进行了汇总。% [: c# P9 ]) a" b; B5 \ % A* R4 j& w% ^! O- u 两种内核均基于哈佛架构。它们采用 3 级流水线执行,可将执行时间降至最低,对于 STM8S,时钟速度高达 24 MHz,对于 STM32 系列,时钟速度高达 72 MHz。 它们具有多种低功耗模式,高效节能,并且受益于比平均指令长度更宽的存储器接口(分别为 32 位和 64 位宽总线)。这可以大幅减少对存储器总线的访问次数,从而降低与地址总线切换和非易失性存储器读访问有关的功耗。中断咬尾功能和退出时暂停/睡眠模式还有助于避免不必要的堆栈存取。 最后,在代码密度方面,它们均有优异的表现,这归功于 STM8S 系列的 8 位 CISC 指令集以及 STM32 系列的 Cortex 内核引入的 16 位 Thumb-2 模式。 上面的简单比较表明这两种处理器在微架构特性方面都具有领先的技术水平。STM8 处于传统 16 位处理器的级别,而 Cortex-M3 则满足当前使用 32 位 MCU 至中高端 16 位 MCU 的应用的要求。因此,STM8 和 STM32 的组合确保了性能的连续性,而且现在有第三方为这两条产品线提供了统一的开发平台,使这种连续性在工具层面上也得到支持。! t$ K5 f; a3 `" z/ g3 j % B8 g1 s7 U! v& U6 A0 l s # X( X3 [& F* } ]# \, A1 Q 9 T6 \& t9 V; U7 b! ^ 2 外设3 }0 [$ U+ F0 ]9 V8 C MCU 外设(也称为 IP)是 8 位和 32 位产品线之间保持 ST MCU 一致性的另一个示例:大多数基本 IP 均定义和构建为可从一个产品系列移植到另一个产品系列。这通过将 8 位外设简单但有效地修改为 32 位字来实现。这样做的好处是可节约成本和功耗,并且资源易于了解,如果需要更高性能,可在系统层面通过更宽的总线和 DMA 控制器对资源加以补充。在了解了外设的工作原理后,可以将外设应用到 STM8S 和 STM32 系列,从而加速两种器件之间的转换。 图 1 给出了数字外设的简化表示。6 @: t2 l6 M& I9 M6 a 9 X& |% n1 t. E% y / t2 W/ ~9 |! w- K$ ` : t. h. \# o/ Q 外设可分成两个主要部分。首先,内核包含状态机、计数器以及任意种类的组合逻辑或顺序逻辑,它们是执行不需要处理器的任务(如低级通信层、模拟后端管理或时序驱动的功能)时所必需的。如有必要,可通过 MCU 端口将内核与外界连接。外部连接可能包含一些 I/O或复杂总线。其次,应用程序通过与内部总线连接的寄存器来初始化和控制外设,该内部总线与其它 MCU 资源共用。在 8 位微控制器中,处理器直接写入和读取寄存器,而在 32 位产品中,寄存器读写操作通常通过总线桥来完成。然而,两个系列的主要区别在于外设必须& J n% b) d$ D6 I* E 遵循的内部总线规范。这解释了 STM8S 和 STM32 器件能够共用外设的原因:它们基于相同的内核,而且仅针对两种不同的总线接口定制。ARM 处理器和外设符合 AMBA 总线规范,采用 32 位数据总线,而 STM8S 器件使用更为简单但有效的 8 位总线标准。从功能角度看,它们仅在以下方面存在差异: ● 寄存器大小:8 位与 16 或 32 位 ● 直接取决于 CPU 运行速度的最大时钟频率 ● DMA,可通过简单数据管理减轻 CPU 的负荷并提高最大数据吞吐量" d/ g# a6 E/ [2 b1 Z ● 一些产品特定功能,如 I/O 端口管理 我们来看一下图 2 所示的 STM8S 和 STM32 SPI 框图。初看上去,它们的框图是相同的,只是有几个位不同(图 2 中以红色突出显示),例如,在 DMA 级别。 + {9 C# b0 ~/ l* z5 n # i8 t7 \8 o0 ^5 D! T W! _+ @' ` 现在看一下表 2 和表 3 所示的寄存器映射,它们明显是基于相同的设计:除了几个有区别的位和寄存器大小外,寄存器和位的名称以及在寄存器中的位置都是相似的。 ! S2 f# _# m2 O 表 4 列出了通用外设,强调了两种产品在寄存器、位和特性层面上的一致性。 6 }$ d* Y3 a- x! k& L " ]3 |4 A- |+ M$ A 尽管定时器看起来与许多配置不同,但它们在各产品系列之间和内部的架构是相同。只存在一种定时器架构的变体。从集合角度看,可以选择性地去除子集,以减少捕获/比较通道数,或仅删除一些特定应用(如电机控制)所需的选项。2 x( ~0 U! z" ]& T. K 7 w0 f3 @8 ~# |- S % F4 O, ?* j( z7 Q 完整版请查看:附件 ' O5 Y5 R+ @1 K7 v0 c |
CD00227488_ZHV1.pdf
下载452.16 KB, 下载次数: 3