新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机多CPU系统设计

单片机多CPU系统设计

作者:时间:2013-02-21来源:网络收藏

单片微机具有小巧灵活、易扩展成为功能强大的控制系统。目前,一些监控终端以及许多独立的控制系统(如:发电机的微机励磁装置)多以单片微机为核心构成。但由于诸如工作环境恶劣、电磁干扰等原因,即使使用按工业测控环境要求设计的单片微机也难以保证控制系统能长期可靠的运行,从而导致控制系统瘫痪。这样,如何提高控制系统的可靠性,保证测控系统能正确稳定的运行就尤为重要。显然,采用双CPU冗余设计是非常有效的一种解决办法。由于单片微机的功能强大,价格低廉,为设计双机冗余系统提供了很好的条件。为此,我们设计了一种由两片单片微机组成的双机容错系统,以比较简单和与传统的完全不同思路的设计方法实现了双机的互为备用及相互切换。在该双机冗余系统设计中,其关键问题是双机系统的重构策略和双机系统的仲裁逻辑切换。

1 传统的设计方法

传统的的常用设计方法有三种:

① 利用双口RAM实现CPU之间的通信。双口RAM是一种高速的并行传输芯片,具有两套I/O口和竞争裁决电路,可以同时联接两个CPU,这样通过双口RAM可以实现多CPU之间通信。

② 利用共享内存的方法实现CPU之间的通信。这种方法与上一种方法类似,所不同的是,上一种方法是利用双口RAM的竞争裁决电路实现对RAM的访问,而这种方法是利用不同的时序实现内存共享的。

③ 利用总线方法实现CPU之间的通信。通过接口芯片或CPU本身具备的SPI、I2C以及SMBus等接口实现CPU之间的通信。

2 该双CPU系统的结构和工作原理

该双CPU控制系统与传统的多CPU系统的设计方法完全不同,它由两片Atmel公司生产的 CPU构成,双机互为备用,彼此独立并行运行,硬逻辑切换。其双CPU控制系统原理框图如图1所示。

这是一种非表决式的双机冗余系统,一个CPU 作为另一CPU的热备份 ,双机在任务上同步运行。所有输入信号通过输入接口同时送给两个CPU,但CPU 运算、处理后的输出量受到仲裁切换电路的控制,只有主CPU允许读写外部数据存贮器及输出至外部设备,当主CPU发生故障时,系统的自我检测切换逻辑将发出信号,自动切断其输出通道,并通过CPU的工作指示系统报警。此时,系统或自动或人工切换到另一个备用的CPU,并同时打开其输出通道,备用机变为主机运行状态,控制系统这时降级为单机运行。人们可以将原主机拔离系统以便进行维修。从图中可知,两个CPU的地址、数据及控制总线都通过一组三态门(三态门1、2)输出与外部数据存贮器相接,两个CPU的某些输出控制I/O口都通过另一组三态门(三态门3、4)输出与外部输出控制设备相接,两组三态门的控制端都同时受仲裁切换电路控制,而仲裁切换电路的两路输出互为反逻辑,即只有一路输出能使所控制的对应三态门(如三态门1、3)正常输出,另一路输出使所控制的对应三态门(如三态门2、4)处于高阻状态,从而不影响主CPU正常读写数据和向控制I/O口输出数据。

点击浏览下一页

图1双CPU控制系统原理框图

表1 双机仲裁切换逻辑真值表

ST1 ST2

S

CTL1 CTL2

CPU1 CPU2

1 1

1

0

0 1

1 0

主 辅

辅 主

0 0

´

1 1

两CPU均工作不正常

1 0

´

0 1

CPU1为主机,CPU2工作不正常

0 1

´

1 0

CPU2为主机,CPU1工作不正常


上一页 1 2 3 下一页

评论


相关推荐

技术专区