双核实时系统的架构是如何设计的?
为共享数据,按照写后及时更新的原则,利用中断方式通过双核间的数据通信实现数据同步。这种方法适用于共享数据满足一定条件时,即该共享数据对于其中一个内核是只读的,否则,由于双核独立运行,运行进度几乎没有制约,若出现双核均改写共享数据的话,无法保证数据的有效性。
4. 双核任务分配
任务分配的原则在于充分利用双核资源,最大限度缩小系统响应时间。例如在运动控制领域利用ARM+DSP双核处理器构架控制系统,在ARM核中实现系统逻辑控制,在DSP核中实现运动控制输出,ARM核控制运动过程,通过命令的形式驱动DSP核实现具体的运动动作。另外在注塑机控制实例中,利用ARM核实现注塑过程控制,而在DSP端完成注塑机位置和温度的智能控制算法,实现系统优化处理。
5. F28M35双核处理器的软件架构设计
5.1 F28M35双核存储结构
TI 的全新Concerto-F28M35微控制器采用了一种双子系统架构,其中包含一个TI C28x内核与一个ARM Cortex-M3内核。这种混合架构将业内用于控制和主机通信功能的最佳技术融入到单个控制器中,而该控制器可提供维持实时控制环路所需的性能、效率及可靠性,并具备低延迟通信所需的快速响应能力。
如图1所示,在F28M35中包含两类共享内存,一类是MTOC-message RAM(MTOCMSGRAM)和CTOM-message RAM(CTOMMSGRAM),大小都为2K,其特点是一个内核对其有读写的权限,而另外一个内核仅有只读权限。例如,M3内核可以读写 MTOCMSGRAM内存,而C28内核只能对MTOCMSGRAM进行读操作。另外一类共享内存包含8个内存块(S0-S7),大小均为8K。该类内存可以被划分到任意内核,系统通过控制寄存器MSxMSEL设置该类内存的属性,每块内存对应该寄存器中的一位,通过设置相应位来设置相应内存块的归属权。例如,若S0被设置为归属M3内核,则M3内核可读写该内存,而C28内核只能对其进行读操作。同时需要注意的是,控制寄存器MSxMSEL只能在M3内核中进行设置。
图1.F28M35x系统结构
5.2 IPC机制
在双核技术中,双方之间的通信是核心。在F28M35x体系结构中,基于IPC信号和IPC中断实现IPC通信(Inter ProcessorCommunicaTIons)机制。其工作原理如图2所示。
图2.IPC机制原理
该处理器在每个方向(MTOC/CTOM)上定义了32个IPC信号,前4个信号促发时可以附加中断功能。处理器通过一套寄存器组实现IPC信号的操作。如图所示,每个内核通过自己存储空间内的一套寄存器实现IPC功能,每个寄存器32位,每一位分别代表一个IPC信号,第0-3位同时可设置为IPC中断。以C28内核为例,寄存器组分别包括:
1)CTOMIPCSET,用于向M3核发送IPC信号或者IPC中断。该寄存器置位时,同时将CTOMIPCFLG和CTOMIPCSTS寄存器相应位置为1。
2)CTOMIPCCLR,用于清除C28到M3方向上的IPC信号或IPC中断标志。该寄存器置位时,同时将CTOMIPCFLG和CTOMIPCSTS寄存器相应位清零。
3)CTOMIPCFLG,该寄存器为只读寄存器,用于显示C28核到M3核方向上当前IPC信号的状态。该寄存器和M3存储空间中的CTOMIPCSTS寄存器在物理上是同一个寄存器。
4)MTOCIPCSTS,作用和CTOMIPCFLG类似,同样是只读的,只是表征方向相反,用于显示M3核到C28核当前IPC信号的状态。同样,它和M3存储空间中的MTOCIPCFLG寄存器在物理上是同一个寄存器。
5)MTOCIPCACK,该寄存器置位时,同时将MTOCIPCFLG和MTOCIPCSTS寄存器相应位清零。当C28内核收到M3发送来的IPC信号或者IPC中断时,利用该寄存器发送确认信息,完成二者的握手。
形象的说,双核之间维护了两条相互独立的全双工通道,每条通道包含了一个方向的信号发送(SET)和反向的信号确认(ACK)。同时双方可以随时读取两个方向下的当前IPC状态(FLG/STS)。最终实现双核间的IPC交互机制。
此外,F28M35还提供了一套IPC消息寄存器,分别是MTOC Message Registers和CTOM Message Registers,分别在每个内核空间对应4个寄存器。结合IPC信号和IPC中断实现双核之间的便捷通信。以M3内核空间为例说明,如表1所示,该寄存器组包括命令寄存器,地址寄存器,写数据寄存器,读数据寄存器。
5.3 双核芯片的软件系统
以系统控制块数据结构为核心的双核系统的架构方法。即设计了一种数据结构,称作系统控制块(System Control Block,SCB)。将系统所有相关控制对象均映射到系统控制块中,每个任务对系统的操作均可转化为对SCB的读写操作,这样系统可以很方便的实现模块化,定义SCB操作管理模块即可实现多任务对系统操作的统一管理。关于SCB与
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)
- 适用于工业能源采集的技术 (08-10)
- 单片式电池充电器简化太阳能供电设计(08-20)