微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 采用非对称双核 MCU 提高系统性能

采用非对称双核 MCU 提高系统性能

时间:12-30 来源:互联网 点击:

态和中断标志。如果接收到的命令无效,则只有中断标志被确认(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:所有

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top