您的位置 首页 主动

选用非对称双核 MCU 进步体系功能 C 根据 C2000 Concerto 系列

1、背景介绍随着各个行业朝着智能化方向的发展,嵌入式产品对能耗和效率的要求越来越苛刻。特别是在智能电网、工业和医疗等领域,一个产品的核心 MCU 处理器面临多重挑战。比如,一个自动化的马达系统或者分

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)用来开释中止给后续的指令,而状况标志依然置位。

IPC Driver 经过在 Message RAM 中树立环形缓冲区,使得多个 IPC 通讯指令可以以行列的方法被缓冲,然后逐一处理,并且可以一起支撑多个 IPC 中止服务程序 ISR,当然,IPC Driver 需求更多的RAM 来支撑。和 IPC-Lite 不同,为了运用 IPC 驱动,需求在 M3 和 C28 的项目中增加一些设置。

第一步是在 M3 和 C28 的链接定位文件(.cmd)中增加 IPC 循环缓冲区和指针段到 CTOM和 MTOC message RAM。如下所示:

第二步,使用程序源码中有必要界说并且初始化至少一个 volatile global tIpcController 变量 (为 C28 –M3 IPC 中止运用),如下所示:

1. 主动建议数据恳求的内核会首要调用 IPC Driver 供给的一个指令函数。这个比如中,M3 是建议数据恳求的内核,履行“IPCMtoCSetBits”函数。

• g_sIpcController1 是 tIpcController 类型的变量,操控 M3 和 C28 IPC 中止通道之间的通讯。

• SETMASK_16BIT 是 16-bit 掩码,指示应该被置位的位域。IPC_LENGTH_16_BITS 指示指令操作的数据对象是 16-bits。

• 函数被装备成答应堵塞 “ENABLE BLOCKING”, 意味着函数会一向等候直到 M3 PutBuffer 有空的缓冲区。假设函数被装备成不许堵塞 “DISABLE BLOCKING”, 一旦”Put”缓冲区满,它会当即回来STATUS_FAIL 并且不会发送音讯到 C28。假设”Put”缓冲区有空余,函数会回来 STATUS_PASS,

音讯被成功发送到 C28.

2. 被迫承受数据恳求的内核会接连调用 IpcGet 函数来读取 sMessage 结构体里的音讯,只需有音讯在”Get”缓冲区。在 ISR 中 IpcGet 函数被调用,C28 侧的 tIpcController 变量被用来绑定两个相同的M3 和 C28 的 IPC 中止通道(和 M3 侧用来发送指令的 tIpcController 相同)。

3. 即便被迫接纳数据的内核没有承认(acknowledged)IPC 中止标志,主动恳求数据的内核依然可以接连发送音讯,因为 tIpcController 变量会把音讯排队放到”Put”缓冲区(与被迫接纳数据恳求的内核的”Get”缓冲区相同)。被迫接纳数据恳求的内核的 ISR 会接连获取并处理音讯,直至”Get”缓冲区为

空。

4、Cortex M3 和 C28x 核的使命分工

Cortex-M3 子体系的优势在于处理业务和办理通讯外设的才能,C28x 内核子体系在实时操控和数据处理方面功用优越。因而,在一个体系中,合理地分配两个子体系的所处理的业务,优化资源的装备是至关重要的。依据 Concerto 的体系,一方面应当最大化地运用 C28x 的 DSP 和实时操控优势,发挥ADC、PWM、C28x 组成的闭环体系的优势;另一方面应将人机界面、通讯协议栈、文件体系等尽或许运转在 Cortex-M3 子体系一侧。下面经过两个使用事例来评论怎么经过合理使命分工来进步体系功率。

4.1 光伏逆变器网络节点

光伏逆变器的首要功用是把光伏面板输出的 DC 直流电逆变为 110V/220V 的 AC 交流电,终究接入电网或许离网输电至用电设备。在一个大功率的光伏发电网络拓扑中,往往有许多个光伏逆变器,这些逆变器需求被监测,操控中心需求实时观测各个光伏逆变器的作业状况。因而,光伏逆变器网络节点的功用首要包含 DC/AC 逆变器和网络衔接。如图 9 所示,C28x 子体系(运转于 100MHz)完结MPPT 和 DC/AC 逆变算法。网络衔接可以有多种方法,常用的方法包含 Ethernet 以太网、RS485 或CAN 等,TMS320F28M35H52C 的 Cortex-M3 子体系(100 MHz)带 Ethernet、RS485 和 CAN 等接口,支撑多种有线和无线衔接功用。

图 8 Solar HV DC-AC Kit

关于 C28x 子体系,选用状况机的规划思路来差异不同的体系状况。不同的状况代表着不同的运转形式,其它的使命可以依据特定的运转形式采纳相应的举动。例如,可以选用下面 5 种不同的运转形式。

• Power On Mode: 体系上电后进入 Power On Mode,体系上电后,F28M35H52C1 中的 Cortex-M3内核 boot 程序首要发动,此刻 C28x 操控子体系和模仿子体系处于复位状况,需求 M3 主子体系将其从复位状况免除。M3 主子体系设定 M3 和 C28x 内核的时钟频率,因为 M3 和 C28x 的主频之比有必要

为整数比,因而 M3 和 C28x 的主频设定只能为 60/60MHz、75/150MHz、100/100MHz。在 M3 和C28x 的主频设定完结之后,需求由 M3 主子体系对整个芯片的外设资源以及 GPIO 进行装备,来决议哪些 GPIO 可以由 C28x 操控子体系进行装备。本体系中 M3 和 C28x 主频设定为 75/150MHz。当一切的初始化操作完结后,体系主动转入到 Standby Mode。

• Standby Mode:一切的 PWM 和继电器被封闭。体系等候发动指令,也检测是否产生过错。

• Soft Start Mode: 接纳到发动指令,体系进入软发动形式,PWM 和继电器敞开。假设发动成功并且没有过错产生,体系主动进入正常逆变形式。

• Normal Inverter Mode: 该形式下体系输出功率,假设没有过错产生也没有收到封闭指令,体系会一向处于这个形式。

• Fault Mode: 假设产生过错,例如母线过压,体系当即进入 Fault Mode。一切 PWM 输出被封闭,输出继电器被断开。Fault 状况可以被按键或许 GUI铲除。铲除后,体系会回来到Standby Mode

图 90 C28x 端程序体系状况机

图 101 Concerto ADC 框图

Concerto 系列有两个 12-bit ADC 模块,每个 ADC 模块包含两个采样坚持电路,支撑同步或许次序采样形式,3 个带 10-bitDAC 的模仿比较器,模仿信号的输入规模 0V~3.3V( 内部参阅)或许VREFHI/VREFLO 比例关系(外部参阅)。

图 11 给出了具体的 ADC 装备,TMS320F28M35H52C 的 Cortex-M3 和 C28x 内核都可以拜访 ADC的成果寄存器,并且 2 个 ADC 模块同享 4 个模仿输入, Concerto ADC 模块的这个特性答应对要害信号进行安全性验证,进步体系的可靠性。

4.2 电力线载波通讯 PLC 智能家居网关

智能家居网关可以将房间内的智能电器以有线或许无线的方法组成网络,会集进行办理。如图 10 所示,TMS320F28M35H52C 的 C28x(运转于 150MHz)首要完结电力线载波通讯(Power Line CarrierCommunication)PLC 的 OFDM 物理层算法。Cortex-M3(75MHz)的运转 TCP/IP 协议接入以太网,其次,可选地经过 UART 接口外接 GPRS 模块或许经过 EBI 外扩总线衔接 TFT 彩屏用户界面。

5、总结

Concerto C2000 异构双核 MCU 将 C28x DSP 内核与 ARM 公司的 Cortex-M3 内核交融在一起,展示出高效的数据处理、数据通讯和事情办理的强壮功用。C28x 和 Cortex-M3 两个子体系分工清晰,又经过 IPC 模块奇妙完结了实时高效地核间通讯。在软件方面,controlSUITE 开发渠道供给多种组件,包含 TCP/IP 协议栈、IPC 驱动、USB 协议栈、FAT 文件体系等,可协助用户更快地开宣布立异性的产品。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/291559.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部