单片机多CPU系统设计

发布者:BeaLaity0170最新更新时间:2013-02-21 来源: 51hei关键字:单片机  多CPU系统  AT89C51 手机看文章 扫描二维码
随时随地手机看文章

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

1  传统的多CPU系统设计方法

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

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

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

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

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

该双CPU控制系统与传统的多CPU系统的设计方法完全不同,它由两片Atmel公司生产的AT89C51 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工作不正常

[page]

3  双机仲裁切换逻辑电路

在该双CPU控制系统中,两者互为热备份,同时运行,一台为主机,另一台为备份机。在双CPU都正常运行的情况下,系统默认CPU1为主机, CPU2为备份机。当主机出现故障时,要求系统能自动切换到备份机,使备份机提升成为主机,从而代替原主机从故障发生处连续运行并发出报警信号。同时要求能通过手动开关人为选定主机运行。设判别两个CPU是否正常工作的信号分别为ST1、ST2,工作正常时它们的状态为1,工作不正常时状态为0。仲裁切换电路输出为0的控制端控制工作正常的CPU的相应三态门组使能,仲裁切换电路输出为1的控制端控制另一CPU的相应三态门组禁止输出。自动或手动选择主机的控制开关为S,当两个CPU都工作正常时,可通过S开关自动选择或指定主机(当S开关状态为1时为自动默认CPU1为主机,当S开关状态为0时则强制CPU2为主机);当两个CPU中任意一个工作不正常时,则此时与S开关的状态无关,仲裁切换电路的输出能确保只有与工作正常的CPU相连的三态门组的使能端为0,从而控制该正常CPU正常读写数据和输出控制;当两个CPU都不正常时,仲裁切换电路的两个输出都为1,两个CPU都不能正常读写数据和输出控制。这样当两个CPU中任何一个或全正常时就能保证只有一个CPU能正常读写数据和输出控制,当两个CPU都不正常时,则理所当然系统不能正常工作。按要求可得真值表如表1所示。

由真值表可得仲裁切换电路的两路控制三态门的控制信号逻辑CTL1、CTL2分别为:

点击浏览下一页

构成的仲裁切换电路如图2所示。

点击浏览下一页

 

4  CPU状态监控电路

点击浏览下一页

监控电路采用了具有电源监控电路和看门狗功能的微处理芯片MAX813L,该芯片它具有4个功能:

①     看门狗计时器功能。当看门狗输入信号在1.6s内无变化时,产生看门狗输出;

②     电压监控功能。当掉电或电源监测电压低于1.25V时,产生掉电输出;

③     上电复位功能。当上电时自动产生脉宽200ms的复位信号;

④     人工复位功能。当人工复位端输入低电平时,产生复位信号输出。

MAX813L采用DIP-8封装,如图3所示,引脚功能说明如下:

①     MR:手工复位输入端,可接人工复位按钮,该端输入低电平保持140ms以上,可产生复位(RST)信号;

②     Vcc:+5v电源;

③     GND:电源地;

④     PFI:电源检测输入端;

⑤     PFO:电源检测输出端,电源正常时,保持高电平;

⑥     WDI:看门狗输入端。俗称“喂狗”信号,必须在1.6s内使该端输入反向信号;

⑦     RST:复位输出端。高电平有效,可输出200ms的正脉冲,当电源Vcc低于4.65v时,RST保持高电平;

⑧     WDO:看门狗输出端。正常工作时输出高电平,当WDI信号在1.6s内不能及时送入并反向时,该端输出低电平信号。

因AT89C51无看门狗功能,为了监测系统状态,在本系统中主要利用的是MAX813L的看门狗计时器功能。其中看门狗输入端WDI由CPU的P3.4提供,CPU在规定的时间内定时改变P3.4

的状态,由看门狗输出端WDO提供当前CPU的状态信号至仲裁切换电路的STi(i =1或2)端,从而由仲裁切换电路自动或手动确定主机。图4为用MAX813L为CPU1接的看门狗电路,当CPU1工作正常时能正常提供P3.4信号则WDO端ST1输出高电平,D1亮D2灭;当CPU1工作不正常时不能正常提供P3.4信号则WDO端ST1输出低电平,D2亮D1灭。[page]

点击浏览下一页

5  系统硬件电路

图5为利用本文介绍的双CPU的切换及控制系统组成的一种硬件电路。从图中可知,系统每个CPU都可以通过RS232串行口与上位机通信,两片CPU彼此独立运行,通过双机仲裁切换逻辑电路共享外部16KB RAM和控制8路I/O口输出。利用这种方法还可以通过增加三态门组成更大容量(最大64KB)的外部RAM和更多的输出控制I/O口或扩展I/O口。

点击浏览下一页

图5 一种双CPU的切换及控制系统的硬件电路

6  结束语

该双CPU控制系统构思独特,两个CPU彼此独立运行,但读写的都是同一块外部RAM的数据,只是只有主CPU能实际读写数据,故不存在内存数据交换和共享问题,同时也只有主CPU能输出控制外部设备,可广泛应用于要求高可靠性控制的场合,作者将该项技术应用到自行研制的电脑样板切割机上取得了较满意的结果。

关键字:单片机  多CPU系统  AT89C51 引用地址:单片机多CPU系统设计

上一篇:单片机收发短信设计
下一篇:单片机熨烫机自动控制系统设计

推荐阅读最新更新时间:2024-03-16 13:18

单片开关电源的快速设计法
在设计开关电源时,首先面临的问题是如何选择合适的单片开关电源芯片,既能满足要求,又不因选型不当而造成资源的浪费。然而,这并非易事。原因之一是单片开关电源现已形成四大系列、近70种型号,即使采用同一种封装的不同型号,其输出功率也各不相同;原因之二是选择芯片时,不仅要知道设计的输出功率PO,还必须预先确定开关电源的效率η和芯片的功率损耗PD,而后两个特征参数只有在设计安装好开关电源时才能测出来,在设计之前它们是未知的。   下面重点介绍利用TOPSwitch-II系列单片开关电源的功率损耗(PD)与电源效率(η)、输出功率(PO)关系曲线,快速选择芯片的方法,可圆满解决上述难题。在设计前,只要根据预期的输出功率和电源效率值,即可从曲线
[电源管理]
单片开关电源的快速设计法
单片机 ADXL346 IIC通讯
/* -----------------------------------------头文件-----------------------------------------*/ #include ADXL346.h #include math.h /* -----------------------------------------宏定义-----------------------------------------*/ #if BrakeMode_EN /* -----------------------------------------结构体定义-----------------------------
[单片机]
单片机当中ICP与ISP有哪些不同
在单片机设计当中,ISP和ICP是两个比较常见且重要的概念。ISP能够让单片机通过采用简单的方式来擦除或写入电路板上的程序,并能够进行在线调试。ICP也是比较常见的一种烧录程序。对于新手来说,对于这两种方式具有较大混淆性。 本篇文章主讲MCU当中这两种烧录方法的区别,帮助各位新手进行理解。 在开发阶段 改code时, 不再需要将MCU从板子上拔起来, 拿到烧录器上烧, 然后再装回去。可以直接利用ISP/ICP Programmer做板上烧录, 为开发者提供了极大的便利性。 在量产阶段 客户可以采用 先焊到板子上再烧code 的方式, 将烧code的动作安排在生产线的某一站。
[单片机]
IC解密之单片机算术运算指令
  单片机算术运算指令汇总,不带进位位的单片机加法指令   ADD A,#DATA ;例:ADD A,#10H   ADD A,direct ;例:ADD A,10H   ADD A,Rn ;例:ADD A,R7   ADD A,@Ri ;例:ADD A,@R0   用途:将A中的值与其后面的值相加,最终结果否是回到A中。   例:MOV A,#30H   ADD A,#10H   则执行完本条指令后,A中的值为40H。   下面的题目自行练习   MOV 34H,#10H   MOV R0,#13H   MOV A,34H   ADD A,R0   MOV R1,#34H   ADD A,@R1
[单片机]
Bridgetek进一步强化其微控制器和显示产品线硬件组合的支持
凭借其CleO智能显示产品线与搭配一系列的配件的成功,Bridgetek开始将无线连接融入其中。CleO35-WiFi1模块支援2.4 GHz频段发送和接收,并符合常用的IEEE 802.11b / g / n Wi-Fi标准。可实现智能装置在居家环境中的控制和监控,在802.11b模式可达到+ 20dBm输出功率。 支持WPA和WPA2无线安全保护措施,防止未经授权的访问数据流。 不需外接3.3V电源,CleO35-WiFi1配有标准的16针0.5mm间距FFC电缆,可直接连接到CleO35模块(带3.5英寸TFT显示屏)或是使用CleO-IO Shield扩充模块,以便连接更大尺寸的CleO50模块(采用5英寸TFT
[电源管理]
Bridgetek进一步强化其<font color='red'>微控制器</font>和显示产品线硬件组合的支持
基于MCU设计的离线锂电池充电器
基于MCU设计的离线锂电池充电器 高效、低成本及可靠的电池充电器设计可用各种方法来实现,但采用8位闪速MCU不仅能缩短设计时间、降低成本及提供安全可靠的产品,而且还能使设计人员以最少的工作量来进行现场升级。 图1:(a):降压转换器开关“开”;(b):降压转换器开关“关” 考虑到电池安全充电的成本、设计效率及重要性,基于MCU的解决方案可为设计者们提供诸多优势。通过选择带适当外围与闪存的8位MCU,工程师们能充分利用其优势来设计一种离线锂电池充电器。带2KB闪存及适当外围以提供一种廉价解决方案的飞利浦 80C51型MCU就是这样一个例子。集成化闪存还能提供高效及方便地调试应用代码并进行现场软件升级(如果
[单片机]
基于<font color='red'>MCU</font>设计的离线锂电池充电器
STM8单片机产生随机数
最近需要用到单片机随机数,但是用rand()产生的随机数,发现每次单片机上电时产生的随机数都是一样的,没有实现真正的随机数。查资料发现要用到srand(t)产生一个随机种子,同样获取随机种子的时候也需要一个随机信号,随机信号可以通过系统时间或者悬空的AD引脚产生。但是对于单片机来说每次上电后系统时间都是一样的,所以每次上电产生的随机数也是一样的。也可以读取悬空的AD引脚值,这样每次读取AD的值是随机的,用这个产生随机数是可行的。但是由于条件限制没有悬空的AD引脚可以用。难道就没有更简单的方式实现每次上电都产生不同的随机数吗?突然想到了每次上电时单片机内存中有些地址的值是随机的,那么能不能每次一上电就去读内存中的值,然后用这些值去产
[单片机]
基于单片机和PWM控制方法调速实现无刷控制器检测设计
引言 伴随着城市化进程,人们生活的交通距离不断扩大,代替燃油汽车和自行车的电动车的普及大幅度的提高了电力资源的利用效率,促进了国民经济的健康发展。电动自行车以电力作动力,骑行中不产生污染,无损于空气质量。从改善人们的出行方式、保护环境和经济条件许可情况等因素综合来看,电动自行车目前乃至今后都有着广阔的发展空间。电动自行车所用直流电机分为有刷电机和无刷电机两种。其中有刷电机控制较简单。但其易磨损的电刷带来维修保养工作量相对较大、使用寿命相对较短等缺点。而直流无刷电机本身没有易磨损部件,电机寿命长,维修保养工作量小。但直流无刷电机采用电子换向原理工作,其控制过程比有刷电机复杂得多,因此对控制器质量的要求也高得多。 目前电动自行车采
[单片机]
基于<font color='red'>单片机</font>和PWM控制方法调速实现无刷控制器检测设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved