双机热备单片机系统内部通信接口的简化设计
发布时间:2008/6/3 0:00:00 访问次数:549
摘 要 分析了工业测控系统中双机热备单片机系统内部通信的特点,以简化设计、降低成本、降低系统复杂度为目标,给出了内部通信接口的两种设计方案。 | |||||
单片机以其高可靠性和高性价比在工业控制、数据采集系统、智能化仪表、办公自动化等诸多领域得到极为广泛的应用。在测控系统中,有时对单片机系统的可靠性有非常严格的要求。除了在系统设计、生产中采用多种措施以提高其可靠性之外,双机热备份是一种非常有效且经常被采用的方法。在双机热备份系统中,两个单片机必须保持工作状态的完全一致,需要随时进行数据交换。通常可以使用多单片机信息共享技术来实现两个单片机的数据交换,如信箱存储系统、共享存储器等,但这些方法实现复杂,硬件成本高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。为方便起见,先将逻辑控制单元的逻辑方程写出。 u2p12=u1p11u1err u1p12=u2p11u2err e=(u1p13+u2p13)u1err u2err dir=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被关闭。 1.1 工作原理 以单片机1请求传送数据给单片机2为例,其工作过程如下: 1单片机1将其p1.1置1,表示请求发送数据,同时将其p1.3置1 2单片机2检测到其p1.2口的高电平后,将其p1.1置为高电平,表示响应数据发送请求,同时也将其p1.3置1。这时74ls245的为0dir为1,数据可以从单片机1的p0口送往单片机2的p0口 3单片机1将要传送的数据送上p0口,并将其p1.1置为0,表示一字节数据发出 4单片机2检测到其p1.2的低电平后,将数据从p0口读入,并将其p1.1置为0,表示数据已被接收 5单片机1检测到其p1.2的低电平后可以开始下一字节的传送或结束传送。 数据由单片机2送往单片机1的过程与上类似,只不过单片机1在接收到数据传送请求后是把其p1.3置为低电平以使74ls245的dir为低电平数据传送方向与上相反。与图3给出的电路相比,这种设计方式有着更高的传输速率。 1.2 接口电路说明 图1所示电路是为叙述方便而简化的,应用中可以根据实际情况重新设计。因此,上述电路及方程都不是唯一的。 | |||||
但此类电路需共同遵循的原则是: (1)使用总线收发器以进行数据的并行双向传送; (2)总线收发器的使能端和方向控制端受逻辑控制电路的控制,且能在不进行数据传送和单片机故障时,使总线收发器处于关闭状态; (3)两个单片机应有联络信号,以决定什么时候进行内部数据通信。 按照以上原则,实际电路是多种多样的。控制信号除了可以使用p1口的口线外,p3口未用的口线以及p2口未用的高位地址线也可以使用。例如,可以使用p3口的一根口线输出联络信号,而联络信号的输入接到单片机的外部中断输入端,这样单片机以中断的方式响应内部数据传送请求,可以进一步提高传送速度。 逻辑控制单元可以由门电路构成,但许多情况下都使用可编程逻辑器件如gal降低整个系统的成本,提高可靠性。<
|