双机热bob综合体育官方入口备单片机系统内部通

2022-05-12 07:19 胡八一

分析了工业测控系统中双机热备单片机系统内部通信的特点,给出了两种旨在简化设计、降低成本和系统复杂度的内部通信接口设计方案。

本文引用地址:http://www.eepw.com.cn/article/171792.htm

关键词测控系统双机热备份单片机系统通信单片机以其高可靠性和高性价比,广泛应用于工业控制、数据采集系统、智能仪器、办公自动化等诸多领域。在测控系统中,有时对单片机系统的可靠性有非常严格的要求。除了在系统设计和生产中采取各种措施提高其可靠性外,双机热备份是一种非常有效且常用的方法。在双机热备系统中,两台单片机必须保持相同的工作状态,并且需要随时交换数据。通常可以利用多台单片机的信息共享技术来实现两台单片机之间的数据交换,如邮箱存储系统、共享内存等。但是这些方法实现复杂,并且硬件成本高1。大多数单片机都提供通用串行收发器(UART)。当单片机系统不与其他设备(如上位机)通信时,使用UART非常方便,但遗憾的是大多数情况下都使用了UART。当然,串行和并行通信接口也可以扩展,但硬件成本会增加。因此,在满足系统性能的条件下,如何充分利用单片机的资源,最大限度地简化内部通信的接口设计,是一个值得研究的问题。在单片机家族的众多成员中,MCS-51单片机以其优越的性能、成熟的技术、高可靠性和高性价比,广泛应用于工业测控领域。本文以MCS-51单片机为例,给出了两种简化的双机通讯接口设计。1单片机P0口内部通讯

这种通信接口只需要一个74LS245芯片就可以实现更高的传输速率。图1显示了这个接口的简单示意图。收发器74LS245连接在两个单片机的P0端口之间,作为内部数据传输的通道。P0端口既是分时地址/数据总线,也是I/O端口。由于端口P0为开路输出,当用作I/O端口时,应增加吸合电阻,为简单起见,图1中未显示。收发器的使能端和方向控制端DIR由逻辑控制单元控制。逻辑单元的输入是P1端口的三条端口线,以及指示单片机工作的两个信号U1ERR和U2ERR。为方便起见,先写出逻辑控制单元的逻辑方程。

u2p 12 = u1p 11 U1ERR u1p 12 = u2p 11 U2 erre =(u1p 13+u2p 13)U1ERR U2 errdir = u1p 13 u2p 13

U1ERR和U2ERR表示单片机的运行状态,通常反映ALE信号的有无。这里约定当U1ERR和U2ERR为0时,表示单片机运行正常(即有ALE信号)。U1P12,U1P11,U2P12,U2P11用于单片机之间的通信,约定高电平有效。如果任一单片机出现故障,其P1.1信号无法传输到另一单片机的P1.2端子。DIR由两个单片机的P1.3控制,决定数据是从单片机1发送到单片机2还是从单片机2发送到单片机1。同样由两个单片机的P1.3控制,但同时由U1ERR和U2ERR控制。任何一个单片机出现故障,174LS245就会关机。

1.1工作原理

以MCU 1请求向MCU 2发送数据为例,其工作过程如下:

1 MCU 1将其P1.1置1,表示请求发送数据,同时将其P1.3置1。

MCU 2检测到其P1.2端口的高电平后,将其P1.1置为高电平,表示其响应数据传输请求,同时也将其P1.3置为1。此时74LS245的0DIR为1,数据可以从MCU 1的P0口发送到MCU 2的P0口。

3 MCU 1将待发送的数据发送到端口P0,将其P1.1置为0,表示发送出一个字节的数据。

MCU 2检测到P1.2的低电平后,从端口P0读取数据,并将P1.1置0,表示已接收到数据。

在检测到P1.2的低电平后,MCU 51可以开始或结束下一个字节的传输。

MCU 2向MCU 1发送数据的过程与前一个类似,只是MCU 1收到数据传输请求后,将其P1.3置为低电平,使74LS245的DIR为低电平,数据传输方向与前一个相反。与图3所示的电路相比,这种设计具有更高的传输速率。

1.2接口电路描述

图1所示的电路是为了描述方便而简化的,可以根据应用中的实际情况进行重新设计。因此,上述电路和方程不是唯一的。

然而,这种电路要遵循的原则是:

(1)总线收发器用于数据的并行双向传输;

(2)总线收发器的使能端和方向控制端受逻辑控制电路控制,当没有数据传输和单片机故障时,可以关闭总线收发器;

(3)两个单片机应有联系信号,以决定何时进行内部数据通信。

根据上述原理,实际电路是多种多样的。除了P1端口的端口线之外,P3端口的未使用的端口线和P2端口的未使用的高地址线也可以用于控制信号。例如,可以用P3端口的端口线输出接触信号,接触信号的输入连接到单片机的外部中断输入端,使单片机以中断方式响应内部数据传输请求,传输速度可以进一步提高。

逻辑单元可以由门电路组成,但很多情况下采用GAL等可编程逻辑器件,以降低整个系统的成本,提高可靠性。

图2是作者设计的接口电路在数据采集系统中的应用实例。P0端口所需的上拉电阻未简单显示。在该系统中,P1和P3端口都被占用,并且扩展了2K字节的外部静态RAM。系统需要收集16个数字输入。因此,当P2端口的高位地址线A13A12A11 A12A11为00 ~ 10时,逻辑控制选通存储器和输入通道。逻辑单元使用一块GAL16V8。GAL16V8兼作地址解码器,可以门控静态RAM和输入通道(图中只显示了与内部通信相关的输出)。GAL16V8逻辑方程中与内部通信相关的六个方程如下(快速映射格式)2:

U1P27=U2P26U1P27。OE=/U2ERRU2P27=U1P26U2P27。OE =/u1err 245 e = u1a 12 u1a 11 u2a 12 u2a 11245 dir = u1a 13 u2a 13

从上面的逻辑方程可以看出,只有两台单片机通信成功后,才能开启总线收发器进行数据传输。当一个单片机出现故障时,它的触点信号被GAL设置为高阻状态,另一个单片机无法与之接触,所以处于off状态的总线收发器不会影响单片机的正常工作。

2通过单片机的UART进行内部通信

单片机的UART用于与上位机等其他设备通信时,可以分时用于内部通信。这种设计方法具有最简单的硬件电路。为了提高通信距离和防止干扰,单片机系统与其他设备的通信大多采用RS-485通信。以此为例介绍内部通信接口的设计。图3直接示出了该接口的电路示例。

2.1工作原理

两台单片机与其它设备之间的通信通过RS-485收发器SN75174进行。图3中U1ERR和U2ERR的含义与图2中的含义相同。IT1、IT2为内部通信接点信号,TE1、RE1分别为MCU 1控制的外部RS-485通信的发送和接收信号。TE2、RE2是类似的,它们都使用P3端口的I/O端口线。其内部通信接口由一片GAL16V8实现。GAL16V8执行以下功能:

①为两台单片机提供三态内部通讯接口,当一台单片机出现故障时,封锁内部通讯接口;(2)为两台单片机提供联络信号,当其中一台需要通讯时,及时通知另一台单片机;③控制两个微控制器的外部通信接口,内部通信时将微控制器与RS-485总线隔离。为了描述方便,GAL的逻辑方程的相关部分以快速映射格式给出:RXD1 = TXD2RXD1。OE = IT1IT2RXD2 = TXD1RXD2。OE = it 1 it 2 it 1 =/te2re 2/U2 erit 2 = te1re 1/u1errte 10 = TE1/u1errte 20 = TE2即使TE1为低电平,RE1为高电平,IT2为高电平,向MCU 2发出内部通信请求;② MCU 2检测到MCU 1的内部通信请求后,禁止外部数据发送和接收,使TE2为低,RE2为高,从而使IT1为高,响应MCU 1的内部通信请求。此时,两个微控制器的串行数据发送和接收通过GAL互联,内部通信接口打开;③ MCU 1检测到IT1为高电平后,通过串口发送数据;④通信完成后,两个单片机打开外部数据接收或发送,使内部通信接口处于高阻状态。从上面的等式和通信过程可以看出,内部通信和外部通信是分时的,相互隔离,互不干扰。当单片机出现故障时,由于使用了U1ERR和U2ERR信号,相应的内部通信信号总是无效的,外部数据信号也是无效的,使得内部通信接口始终处于高阻状态,不会向RS-485总线发送数据。因此不会影响另一台单片机的外部通讯和与故障单片机相连的RS-485总线。

2.2接口电路描述可编程逻辑器件在单片机系统中的应用是系统设计的发展方向。本文以GAL为例介绍接口设计,但只要能完成上述逻辑功能,也可以使用其他器件。而且单片机和其他设备的通信不一定是RS-485通信,电路设计和这个差不多。这类接口电路要解决的问题是:①内部通信要在单片机与其他设备的间隙进行,避免数据丢失;②内部通信和外部通信的信号要做好隔离,防止相互干扰;③当一个单片机出现故障时,应自动与另一个单片机隔离,防止通过内部通信接口影响另一个单片机的外部通信。

前面提到的第一个问题可以根据通信协议用软件解决,后两个问题可以用硬件电路解决。

本文给出了内部通信接口的两种简化设计方案,并给出了电路实例。在设计中,GAL不是为接口电路而设计的,而是可以与其他逻辑功能相结合。这两种通信接口已在作者设计的几个单片机系统中得到应用。实际应用证明,它们达到了简化设计、降低成本和系统复杂度的目的,具有一定的实用价值。参考文献。1何立民。单片机应用文集。北京:北京航空航天大学出版社19932张友志。可编程逻辑器件PLD的原理及应用。北京:中国铁道出版社,1963高船山。接口和通信。上海复旦大学出版社19894李华。的接口技术。MCS-51系列单片机。北京:北京