EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
双机热备单片机系统内部通信接口的简化设计
4 N( ~5 w1 @1 _7 F6 k# a+ n S. T- x1 I* |* m5 F* w
摘 要 分析了工业测控系统中双机热备单片机系统内部通信的特点,以简化设计、降低成本、降低系统复杂度为目标,给出了内部通信接口的两种设计方案。
9 \- L! n# v k) u) W" J# @* o
关键词 测控系统 双机热备份 单片机系统 通信
0 ]0 m; H9 e' @ D4 H& ~
7 P/ s6 [2 ]9 E7 L5 t单片机以其高可靠性和高性价比在工业控制、数据采集系统、智能化仪表、办公自动化等诸多领域得到极为广泛的应用。在测控系统中,有时对单片机系统的可靠性有非常严格的要求。除了在系统设计、生产中采用多种措施以提高其可靠性之外,双机热备份是一种非常有效且经常被采用的方法。在双机热备份系统中,两个单片机必须保持工作状态的完全一致,需要随时进行数据交换。通常可以使用多单片机信息共享技术来实现两个单片机的数据交换,如信箱存储系统、共享存储器等,但这些方法实现复杂,硬件成本高1。大多数单片机都提供通用串行收发器(UART),在单片机系统不与其他设备(如上位机)进行通信的情况下,使用UART是非常方便的,但不幸的是绝大多数情况下UART已被使用。当然也可以扩展串行和并行通信接口,但硬件成本又会增加。因此,在满足系统性能的条件下,充分利用单片机本身的资源,最大程度地简化内部通信的接口设计非常值得研究。在单片机家族的众多成员中,MCS-51单片机以其优越的性能、成熟的技术、高可靠性和高性价比,在工业测控领域中有着广泛应用,本文即以MCS-51单片机为例给出两种双机通信的简化接口设计。
9 z% g- q, d( h9 c % m& J. I6 i' Q0 P; u! r
1 通过单片机的P0口进行内部通信 这种通信接口可以在只使用一片74LS245的情况下获得较高的传输速率。图1给出了这种接口的简单示意图。总线收发器74LS245接在两个单片机的P0口之间,作为内部数据传输的通道。P0口既是分时的地址/数据总线,又可作为I/O口使用。由于P0口为开路输出,作为I/O口应用时应加上拉电阻,为了简洁,图1中未画。总线收发器的使能端和方向控制端DIR均受逻辑控制单元控制。逻辑控制单元的输入是P1口的三根口线,和指示单片机运行情况的两个信号U1ERR和U2ERR。为方便起见,先将逻辑控制单元的逻辑方程写出。 U2P12=U1P11U1ERR1 P& w% y/ e7 Z3 Z' a9 I
U1P12=U2P11U2ERR8 p! z% T, |% F8 F1 G/ f
E=(U1P13+U2P13)U1ERR U2ERR
$ k8 G" q# r* P) NDIR=U1P13 U2P13 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被关闭。 / N/ p. T3 |3 Y
) w/ u0 _* ~4 l) L* H4 G: ]4 [
|