微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 双机热备单片机系统内部通信接口的简化设计

双机热备单片机系统内部通信接口的简化设计

时间:06-24 来源:互联网 点击:


2.1 工作原理

两个单片机与其他设备的通信通过RS-485收发器SN75174进行,图3中U1ERR和U2ERR的含义同图2。IT1、IT2是内部通信联络信号,TE1、RE1分别是单片机1控制外部RS-485通信的发送和接收信号,TE2、RE2与此类似,皆使用P3口的I/O口线。其内部通信接口由一片GAL16V8实现。GAL16V8完成以下功能:

①为两个单片机提供三态的内部通信接口,当其中一个单片机出现故障时即阻塞内部通信接口;
②为两个单片机提供联络信号,当其中之一要求进行通信时,及时通知另一个单片机;
③对两个单片机的对外通信接口进行控制,内部通信时将单片机与RS-485总线隔离。
为叙述方便,现将GAL的逻辑方程中与此相关的部分以FAST-MAP的格式给出:

RXD1=TXD2
RXD1.OE=IT1 IT2
RXD2=TXD1
RXD2.OE=IT1 IT2
IT1=/TE2 RE2 /U2ERR
IT2=TE1 RE1 /U1ERR
TE10=TE1 /U1ERR
TE20=TE2 /U2ERR

假设单片机1发起与单片机2的内部通信?其工作过程如下?

①单片机1禁止对外数据收发。即使得TE1为低电平?RE1为高电平,从而使得IT2为高电平,向单片机2提出内部通信请求;
②单片机2在检测到单片机1的内部通信请求后,禁止对外数据收发,使得TE2为低电平?RE2为高电平,从而使得IT1为高电平,响应单片机1的内部通信请求,这时,两个单片机的串行数据收发通过GAL互连,内部通信接口打开;
③单片机1在检测到IT1为高电平后,通过串行口发送数据;
④通信完成后,两个单片机打开对外的数据收或数据发,从而使得内部通信接口处于高阻状态。

从上述方程和通信过程可以看出,内部通信和外部通信是分时进行的,且互相隔离,互不干扰。当一个单片机出现故障后,由于使用了U1ERR和U2ERR信号,相应的内部通信联络信号总是无效的,对外数据发信号也是无效的,从而使得内部通信接口总是处于高阻状态,且不会发送数据到RS-485总线。因此不会影响另一个单片机的对外通信和与故障单片机相连的RS-485总线。

2.2 接口电路说明

可编程逻辑器件在单片机系统中的应用是系统设计的发展方向,本文以GAL为例介绍接口的设计,但只要能完成上述的逻辑功能,也可以使用其他器件。而且,单片机与其他设备的通信也不一定是RS-485通信,但电路的设计与此类似。这类接口电路都需解决的问题是?

①内部通信应在单片机与其他设备通信的间隙进行,避免数据丢失;
②内部通信与外部通信的信号应良好隔离,防止相互干扰;
③当一个单片机出现故障时,应当自动与另一个单片机隔离,防止通过内部通信接口影响另一个单片机的对外通信。

上述第一个问题可以根据通信协议由软件解决,后两个问题由硬件电路解决。

本文给出了内部通信接口的两种简化设计方案,同时给出了电路实例。设计中GAL不是专为接口电路而设的,可以与其他逻辑功能合并使用。两种通信接口在笔者设计的多个单片机系统中得到了应用,实际应用证明达到了简化设计、降低成本、降低系统复杂度的目标,具有一定的实用价值。

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

网站地图

Top