采用非对称双核 MCU 提高系统性能 –基于 C2000 Concerto 系列

时间:2022-03-17来源:佚名

摘要

本文系统地介绍了 C2000 Concerto 系列非对称双核MCU 的基础知识和重要特点。通过对比基于两个分立 MCU 和一个双核 MCU 的方案之间的差异,强调了异构双核 MCU 方案的众多优点。以TMS320F28M35H52C 为例介绍了 C2000 Concerto 系列的 C28x 和 Cortex-M3 两个子系统的性能、外设和软件平台,重点阐述了双核通讯 IPC 的多种高效的通讯机制和 controlSUITE 软件平台。最后,通过两个设计案例来讨论如何合理地为 C28x 和 Cortex-M3 两个内核进行任务分工,从而达到提高系统性能的目的。

1、背景介绍

随着各个行业朝着智能化方向的发展,嵌入式产品对能耗和效率的要求越来越苛刻。特别是在智能电网、工业和医疗等领域,一个产品的核心 MCU 处理器面临多重挑战。比如,一个自动化的马达系统或者分布式工业系统,一方面需要更多的数字信号处理能力来更精确地控制马达,另一方面也需要更多和更高级的网络接口(CAN,Ethernet 或者 Wireless 等)来实现实时的分布式监控或控制功能。再比如图 1,一个太阳能逆变系统,一方面需要 DSP 引擎来实现 DC/AC 或者 DC/DC 的算法,另一方面也需要将多个逆变器通过 Wireless 或者以太网 Ethernet 组成网络,从而实现智能诊断和监控。

面对这些需求,有两种传统的方案可以解决。一种方案是采用两颗单独的 MCU/DSP,其中一颗 MCU或者 DSP 用于实现数字信号处理或者控制算法,另外一颗 MCU 实现网络协议栈或者图形显示界面等。这类方案的存在诸多缺点,首先两颗 MCU 增加了 PCB 的面积,而且双 MCU 之间的通讯的可靠性和数据吞吐率受到限制,另外,功耗也将显著增加,程序开发者甚至需要维护多个软硬件开发环境。另外一种方案是采用更高主频和更多片内资源的单核 MCU/DSP,分时地完成数据处理和辅助通信或显示功能,这种方案显著增加了系统成本和功耗,最致命的是,当客户的产品需要增加新的功能的时候,工程师需要重新计算 MCU 内核的资源和不同任务所需要的运行时间,需要更多的测试时间,因此不利于扩展和产品维护。

面对种种不足,异构双核架构应运而生,可以很好解决上述问题。事实上,非对称双核架构 MCU 可以将不同的系统任务分配于不同的 MCU 内核,分工精细,并且可以最佳地平衡性能、功耗和成本。两个MCU 内核间的通信可以通过不同的方式来实现,比如分享内存区和消息区,非常简单和易于实现。在下面的章节,本文将以 TI 最新的 Concerto 系列产品 TMS320F28M35H52C 为例,详细阐述非对称异构双核 MCU 的优势,及其为系统带来的性能提升。

2、C2000 Concerto 双核 MCU 的特点

C2000 Concerto 系列 MCU 是 TI 推出的创新性的异构双核产品。Concerto 混合架构通过将业界最好的实时控制功能和通讯功能集成在一个芯片内,提供高性能、高效率和可靠性,从而实现实时控制环路和低延时的快速通讯响应[1]。以下从内核、存储器架构、通讯外设等方面阐述其特点。Concerto 系列 TMS320F28M35H52C 功能框图如下图 2 所示。

首先是高性能的内核。Concerto 系列 MCU 包含 Cortex-M3 和 C28x 两个内核。Cortex-M3 内核是Concerto 的主系统 Master 子系统内核,主频最高可运行于 125 MHz。Cortex-M3 内核是 32 位的ARM 核,超高的性价比,已经被业界广泛使用,其性能和稳定性也已被用户所广泛接受,非常适用于通讯和事件控制。C28x 是新一代的 32 位 DSP 内核,是 TI 大多数现有的 C2000 产品的内核,最高可运行于 150 MHz,Concerto 中的 C28x 带浮点运算单元(Floating-Point Unit),VCU 协处理器等,性能超强,非常适用于大吞吐量的数据处理。C28x 作为 Control 子系统,宏观上受控于 Cortex-M3 Master 子系统。

其次是优化的存储器架构。如图 2 所示,TMS320F28M35H52C 的 C28x 可支配 512KB 带 ECC 校验的 Flash 存储器,64KB ROM,36KB 带 ECC 校验的 RAM;Cortex-M3 可支配 512KB 带 ECC 校验的Flash 存储器,64KB ROM,32KB 带 ECC 校验的 RAM [3]。在两个内核之间,是共享的外设和存储区。总共 64K 字节的共享 RAM,4K 的消息 RAM。

再次是外设。如图 2 所示,TMS320F28M35H52C 的 C28x 内核可支配 DMA、高速 ADC(3MSPS)、多路高精度的 PWM(24 路 PWM和 16 路高精度 HRPWM)、eCAP、eQEP 等为闭环控制所优化的控制外设;Cortex-M3 内核可支配多个串行接口、以太网、CAN 等工业通讯外设。同时,两个内核还可共享 ADC 等外设,增强整个系统的灵活性。

最后是软件架构。如图 3 所示,controlSUITE 是一个集成所有 C2000 MCU 的开发资源和软件包和开发平台,它为 TMS320F28M35H52C 的开发者提供了外设例程、DSP 库、文档、开发板资料。ControlSUITE 还提供免费的全功能实时操作系统 TI-RTOS 平台,如图 4 所示,TI-RTOS 是基于SYS/BIOS 实时内核,集成了稳定的中间件,例如 TCP/IP 协议栈、USB 协议栈、FAT 文件系统、IPC多核通讯组件等。

3、IPC 内核间通信

Cortex-M3 和 C28x 内核之间的通信主要完成两大功能,一是数据通信,二是传递状态和控制信息。IPC(内核间通讯)的数据通信需要较大的 RAM 来支持,而传递状态和控制等信息只需要一系列状态标志位即可。此外,Cortex-M3 侧的 UART4 与 C28x 侧的 SCIA;以及 Cortex-M3 侧的 SSI3 与 C28x侧的 SPIA 在 Concerto 内部实现互联,不需要在芯片外部硬件连接,而是否使能这类功能则有 CortexM3 系统配置。

3.1 Message RAM 内存区

TMS320F28M35H52C 使用 Message RAM 实现 IPC 的数据通信。如图 5 所示,2K 字节的 MTOC Message RAM 用于从 Master (Cortex-M3)子系统向 Control(C28x)子系统传递消息;2K 字节的CTOM Message RAM 用于从 Control 子系统向 Master 子系统传递消息。由于两个子系统都配有 DMA外设,因此,DMA 也可以读写 Message RAM,从而提高系统效率。Message RAM 区通过 RAM 内存的读写权限保证了 Message 的互斥访问,例如,C28x CPU 与 DMA 可以读写访问 CTOM Message RAM 区,而 Cortex-M3 CPU 和 uDMA 只能读访问 CTOM Message RAM。同样,两个内核对于MTOC Message RAM 区的读写访问权限则正好相反。

Message RAM 仅仅作为 IPC 的数据缓存,IPC 还需借助于特定的控制逻辑电路来完成。如图 6 所示,Master 子系统和 Control 子系统都是通过 5 个寄存器来实现 IPC 的逻辑流程控制:IPCACK、IPCSTS、IPCFLG、IPCCLR、IPCSET。这 5 个寄存器都是 32 位,每一个 bit 对应于 IPC 的一个通道,因此最多可实现 32 个通道的握手通信。Bit0 到 Bit3 总共 4 个通道可以触发消息接收方的 IPC 中断,Bit4 到Bit31 共 28 个通道则需要消息接收方的软件查询来获取 Message RAM 中是否收到数据。如果两个内核之间仅仅传递状态和控制信息(例如 RTOS 中的 Semaphore),仅通过以上寄存器便可以实现,而无需 Message RAM 的参与。

以下通过举例 Master 子系统往 Control 子系统发送一帧数据,来简单介绍 IPC 模块的操作流程。

1. Cortex-M3 先在 MTOC Message RAM 中写入一帧数据;

2. Cortex-M3 置位 MTOCIPCSET(CM3 映射存储器区)的 Bit9,如图 6 所示,此时 MTOCIPCSTS(C28x 映射存储器区)的 Bit9 也将置位;

3. C28x 轮询 MTOCIPCSTS 的 Bit9,查询到 Bit9 已置位;(如果之前的操作是 Bit0 到 Bit3 其中之一, 则将触发 C28x 产生一个 IPC 中断)

4. C28x 读 MTOC Message RAM 中的数据,此时,Cortex-M3 成功将一帧数据发送至 C28x。

3.2 Shared RAM 内存区

大部分情况下,2K 字节的 IPC Message RAM 区能够满足 C28x 和 M3 子系统之间的数据通信,配合DMA,通信效率也可以进一步提高。如果用户希望一次性在两个子系统传递更大块的数据,另一种方法是通过 Shared RAM 内存。

TMS320F28M35H52C 有一个 64K 字节大小的 Shared RAM 区,总共 8 块 S0-S7,每块 8K 字节大小,如图 7 所示。Cortex-M3 可以设置让任何一块 Shared RAM 区由 C28x 或 M3 主控,比如,映射 S0 至C28x 侧以后,C28x CPU 和 DMA 可以读写 S0,而 M3 和 uDMA 将只能读 S0,不能写入和预取。

假如 Cortex-M3 需要一次性发送 6K 字节的数据到 C28x 侧,它可以先将 Shared RAM 区 S0 映射到本地存储器空间,接着通过 IPC 发送一个标志位给 C28x 来通知其可以将数据取走。

3.3 IPC 的软件驱动

controlSUITE 软件开发包中提供 2 种 IPC 的软件驱动库,IPC Driver 和 IPC_Lite Driver。IPC_Lite Driver 仅使用 IPC 寄存器来实现通信,不需要额外的 RAM,但是用户只能支持一个 IPC 中断服务 ISR,且不支持以队列形式来处理 IPC 请求。IPC_Lite Driver 使用方式如下:

1,主动发起数据请求的内核会首先调用 IPC_Lite Driver 提供的名函数。在这个例子汇总,M3 是发送数据的内核并执行“IPCLiteMtoCDataRead” 函数。

• IPC_FLAG2 是 C28 中断标志,指示 C28 内核一个消息到来。

• IPC_FLAG17 是响应标志,C28 用其指示 M3 核一个命令已经被处理。

• 需要读取数据的 C28 的地址也被作为一个参数传递给 C28 内核。

• 这个函数在 while 循环中被调用的原因是,它可能返回 STATUS_FAIL 并且不会发送信息给C28 直至 MtoC IPC 中断 2 和标志 17 可用, 之后,该函数返回 STATUS_PASS.

2,被动接收数据请求的内核会在 ISR 中解析其 IPCCOM寄存器的命令。这个例子中,C28 MtoCIPCINT2 ISR 知道标志置位,解析 MTOCIPCCOM寄存器的命令,识别出是读数据命令。

3,被动接收数据请求的内核会调用与主动发起数据请求的内核相同的函数名。这个例子中,C28 执行 IPCLiteMtoCDataRead, IPC_FLAG2 作为中断标志参数, IPC_FLAG17 作为状态标志参数。

4,如果接收到命令有效,IPC_Lite 的驱动函数会处理读命令并确认(acknowledges)状态和中断标志。如果接收到的命令无效,则只有中断标志被确认(acknowledged)用来释放中断给后续的命令,而状态标志仍然置位。

相关阅读

高层住宅楼体亮化的意义

高层住宅建筑是城市空间重要的一部分,城市夜景照明 工程的大力发展,住宅建筑的夜景照明也得到了人们的高度重视。居住小区由以前的单纯照明演变成景观照明 ,甚至是智能照明系...
2022-07-15

城市亮化工程开展前要准备的事项

大家常常用灯和光来描述这一城市的夜里。现如今,城市夜景的发展好像早已变成每一个城市的风格,这离不了 城市亮化工程 ,但不一样的城市有自身的城市亮化整体规划,依据每一...
2022-10-06
城市亮化工程开展前要准备的事项

商业街夜景亮化如何突出主题和个性?

在城市中上,必须明确并考虑如何突出 商业街夜景亮化 的主题和个性。我们的设计目标是突出商业街夜景亮化的主题和个性。 1.了解商业街的夜间组织结构。 商业街道不仅是人工景观...
2022-09-15
商业街夜景亮化如何突出主题和个性?

楼体亮化设计需要注意哪些方面?

夜晚城市的灯红酒绿是它与众不同而又鲜丽的妆面。根据 楼体亮化设计 每个建筑上的灯光,像街头的道路路灯、及其广告牌子等都在黑夜中释放着光辉,它不单是能够 照明,另外还能...
2022-10-16
楼体亮化设计需要注意哪些方面?

河南照明亮化工程公司哪家好?

对于现阶段市场上的亮化工程公司,哪个更好,那么 河南照明亮化工程公司 哪家好?如何选择? 河南(郑州)明亮照明工程有限公司,专业从事照明设计,照明工程设计,建筑照明设...
2022-09-13
河南照明亮化工程公司哪家好?

热销商品

304不锈钢连胶条喉箍R型固定夹管夹U型电缆电线连胶条卡箍橡胶减

304不锈钢连胶条喉箍R型固定夹管夹U型电缆电线连胶条卡箍橡胶减震,是一种高效、耐用的管路连接解决方案。该产品采用高品质304不锈钢材料,具有优异的耐腐蚀性和强度...
0.29

电焊机焊把线电焊线国标电缆线16 25 35 50 70平方纯铜焊把线

电焊机焊把线(电焊线)是焊接作业中的关键连接线,采用国标纯铜导体,导电性能优异、电阻低、发热少,确保电流稳定传输。常见规格包括16、25、35、50、70平方毫米,适用于不...
3.8

塑料镊子 黑色平头弯头尖头扁嘴圆头塑料防静电镊子 碳纤维镊子

塑料镊子是一种轻便、耐腐蚀且防静电的精密工具,广泛应用于电子、医疗、实验室及精密装配等领域。黑色款式多采用碳纤维增强塑料材质,兼具高强度与导电性,有效防止静...
0.6

阻燃尼龙编织网管 PET伸缩网套管 电脑机箱电线避震蛇皮管 10米

阻燃尼龙编织网管(PET伸缩网套管)是一种高性能电线保护套管,采用环保PET材料经精密编织而成,具有优异的阻燃、耐磨、抗拉伸及柔韧性能。其独特的蛇皮状结构可自由伸缩...
4.01

萝卜头螺丝刀磁性两用伸缩螺丝刀一字十字梅花平口短小改锥

萝卜头螺丝刀是一款多功能、便携实用的手动工具,集一字、十字、梅花(星型)等多种刀头于一体,采用磁性设计,可牢固吸附螺丝,提升操作效率。其独特的伸缩结构让刀头可灵活...
3.28

网站栏目