接口/总线/驱动
MCU 现在拥有数量惊人的片上外设,这些外设可以同时用于从 CPU 中卸载低级功能。这可以显着提高处理效率、降低功耗并简化您的设计。但是,如果您的外围功能压倒了内部总线接口并且数据传输速度显着降低,您可能会感到意外。幸运的是,MCU 制造商添加了新的高效总线接口,通常在关键外设和片上存储器之间具有多条路径,有助于支持多种数据传输。然而,这些新总线确实有局限性,因为将所有东西连接到其他所有东西在芯片面积和功率方面都过于昂贵。了解这些新片上总线的常用模型将帮助您创建高效的设计,最大限度地提高数据传输带宽。
本文将快速回顾一些常见的智能片上总线特性,并将举例说明利用这些关键特性的示例设计。涵盖的一些主题包括:片上总线矩阵架构、DMA 控制器的使用、专用外设数据传输功能、智能缓冲、总线优先系统和中断控制。
通用总线接口架构
几乎每个高性能总线互连结构中都出现了几种关键的架构方法。这应该不足为奇,因为支持高带宽的关键策略是能够建立多个可以独立运行的并行连接。总线矩阵架构,其中几个总线主机可以独立访问多个总线从机,可能是高效总线架构最常见的构建块。飞思卡尔 Kinetis K70 MCU 是高效数据处理和移动所需的互连架构类型的一个很好的例子。
如图 1 所示,飞思卡尔Kinetis K70MCU 使用多级总线矩阵,可以在八个独立的总线主控器和八个独立的总线从属器之间互连。多个主机和从机可以独立运行。内存分配对于最大化效率至关重要。例如,以下操作都可以并行操作而没有重叠:
内核 - Flash 中的指令和 SRAM_L 中的仅内核数据和堆栈
USB - SRAM_U 中的数据缓冲区
LCD 控制器 - DDR 中的图形缓冲区
图 1:飞思卡尔 Kinetis K70 MCU 总线互连架构。(由飞思卡尔提供)
飞思卡尔还为 K70 提供模块化开发平台,这是其飞思卡尔塔式系统的一部分,可通过可重新配置的硬件实现快速原型设计和工具重用。TWR-K70F120M可与多种塔式系统外围模块一起使用,包括接受来自 K70 MCU 图形 LCD 控制器的 RGB 数据的新型 TWR-LCD-RGB。
当两个或多个主设备尝试访问单个从端口时,接口将使用仲裁算法来确定哪个主设备将首先访问该端口。通常可用于总线访问的两种常见仲裁方案是固定优先级或循环法。在固定优先级方案中,主控优先级是固定的,赋予高优先级主控对低优先级主控的访问权限。如果有多个具有相同优先级的主设备,则可以使用循环优先级方案。在此方案中,主机轮流优先级,以便随着时间的推移对资源具有平等的访问权。
请注意 DMA 访问总线矩阵的重要性。通常,DMA 传输是最节能的,因此 DMA 对总线矩阵进行有效的主机访问至关重要。一些资源将与总线矩阵有多个连接——例如,注意 DRAM 控制器——因为它们是多个主控器的关键资源。这通过消除多个主服务器需要访问同一资源时可能发生的“访问阻塞”来提高整体性能。
用于提高效率的高级外设总线架构
在许多 MCU 应用中,外设操作与 CPU 和内存操作一样重要。如果有先进的总线接口与关键的外围功能以及基于 CPU 的功能一起使用,它可以提高传输效率。瑞萨电子 RX600 MCU 具有多个外围总线,可用于更有效地分散带宽负载。如图 2 所示,RX600 不仅有一个面向 CPU 的操作的总线矩阵(如图顶部所示),还有多个外设总线(如图底部所示),以更好地在智能外设之间分配带宽。大量外设流量永远不需要访问 CPU 总线矩阵,这提高了数据传输效率,而无需增加 CPU 总线矩阵的大小,通常是更高性能、大芯片尺寸和更高功率的子系统。
图 2:瑞萨电子 RX600 多总线架构分散带宽负载。(瑞萨电子提供)
在图 2 中,同时发生了六个并行数据传输操作:
CPU取指令
USB 数据传输到 CPU
以太网数据移出 SRAM
RGB 数据从外部 SDRAM 移出到 LCD
ADC 值加载到 SRAM
定时器数据写入 DAC 输出
当多个活动同时发生时,单独的外围总线的可用性可以显着提高效率。在具有较少同时外围设备要求的系统中,一个或两个外围总线可能就足够了。
双 CPU 内核架构
具有双 CPU 内核的 MCU,例如 Atmel SAM4C8CA,也需要高性能总线接口,甚至可能比单核 MCU 更多,因为允许每个 CPU 访问关键资源非常重要。并行,以便整体系统性能不受影响。在许多实现中,一个 CPU 具有较高的处理能力,而另一个 CPU 具有较小的能力。这在需要较低性能系统控制器和较高性能应用处理器的设计中很有用。
如图 3 所示,Atmel SAM4C8C 有一个具有浮点能力的 CPU,而另一个具有定点 CPU。SAM4C8C 具有 512 KB 的 Flash 存储器和 128+16+8 KB 的 SRAM。处理任务分配给适当的 CPU 以提高效率。两个高速 AHB 多层总线矩阵互连用于支持最大数量的处理重叠。独立的 DMA 控制器和中断控制器支持高效的数据传输,无需 CPU 干预。一个简单的异步 AHB 到 AHB 桥用于处理 CPU 寻址空间之间的同步和数据传输,即使在 DMA 控制下也是如此。
图 3:Atmel 双 CPU 内核 SAM4C8CA 总线接口架构。(由爱特梅尔提供)
低功耗和高效的数据传输
您可能会认为这些多总线架构针对的是最高性能的系统,但即使是低功耗应用程序也可以利用高效的总线架构。Texas Instruments MSP430F5507IRGZR属于供应商的MSP430 MCU 系列,将 USB、LCD 控制和高性能模拟集成在一个芯片上,适用于小尺寸应用。外设有几种自主运行的方法,当 CPU 进入低功耗模式时,这有助于降低运行功耗,如图 4 所示。
图 4:TI MSP430 系列通过使用自主外设实现低功耗运行。(由 TI 提供)
通过使用即使在低功耗操作期间也保持活动状态的外围总线,可以在 CPU 运行期间从 ADC 采样数据、将数据传输到存储器、输出 PWM 信号、更新 LCD 显示以及发送/接收串行数据通信处于低功耗待机状态。请注意,快速唤醒时间可以在需要时快速响应外设请求,而不会在唤醒时消耗大量电力。有了这种能力,即使是短时间的 CPU 操作也可以是高效的。
概括
从复杂的 MCU 中获得最大性能需要外设和内存之间的大量重叠总线活动,以及在需要时与 CPU 之间的重叠总线活动。通常,最有效的实现会同时进行多个传输,而不涉及任何 CPU 活动。了解 MCU 总线接口架构的功能和局限性对于实现高效率至关重要。
全部0条评论
快来发表一下你的评论吧 !