众所周知,微处理器是通过总线(数据总线、地址总线、控制总线)与存储器小接口交换数据、传递命令和各种信息的。通常CPD和单片机的总线驱动能力十分有限,大多不允许超过四个标准TTL外部扩展的芯片越多,微处理器负载越重,轻则引起芯片发热,重则产生逻辑混乱,波形失真。因此凡结构比较复杂的微机系统,都必须强化总线的驱动能力按照信息流动的方向,总线有单向与双向之分。地址总线及大部分控制总线、状态线是单向的,可以通过恒定接通的单向总线缓冲器加以驱动。图1.5所示的是CPU扩展地址总线及控制总线驱动能力的电路。图中的三态缓冲器如果用74系列TTL芯片,有8位的44、6位的367、4位的125等可供选择。
CPU的一些输入控制线己通过电阻上拉,这样既能防止因悬空造成的状态不定,又能增强对一些“线与”的控制线的驱动能力。数据总线是双向总线,相应的驱动电路的设计要复杂得多。数据总线缓冲器可以使用单向缓冲器背靠背组成,也可以直接使用双向总线缓冲器。如74245即为常用的8位双向缓冲器。74245在A、6两侧各有八根一一对应的数据线,另外有一个位能端G和一个方向控制端DIR。其工作方式为:G为逻辑1时PA、U之间断开:G为逻辑0时名DIR=“0”,则A流向15,反之DIR=“l”时,B流向A。
根据74245的工作方式PF难验证图1.6所示的驱动电路能够保证CPL J对位于?化H另一侧的ROM、XAM及I/O芯片执行正确的读/写操作。然而这一简单的数据总线驱动电路存在两个问题。首先,它不支持来自I心接口的Z奶方式2中断。这是因为当这种中断发生时,CPU不是以更D有效P6是以M都IORQ同时有效作出响应的,致使芯片送出的中断向量无法通过总线缓冲器到达CP耀2g使74245两侧的总
线状态出现竞争。其次,由于总线缓冲器的使能端(;始终有效,使它处在“非读即写”的状态,从而在读/写操作的间隔中,外部器件仍作为负载,加大了总线缓冲器的功耗。改进后的电路如图1.6(b)所示。一方面,增加了中断应答信号1N1AK=M1、IoRq,对方向的控制,使数据总线缓冲器在中断响应周期保持E到A的正确方向;另一方面,使能端G仅在而W更或更而万灭其中之一有效时把74245接通,从而避免了不必要的功耗。
在图15(b)中,所有外部数据接口均位于74245的同侧,如果CPU与7424;之间另有一部分存储器或I/O芯片(多板结构的微机系统常常如此),则应当把这些芯片的片选信号与非后经或门控制方向端DIR,如图1.6(c)所示。这样当CPU存取这些数据口时,74245的指向始终为A到B表明数据在这些芯片与CFU之间流动。显然这个电路不完善,它不支持来自这些芯片的向量中断。
更为复杂的总线驱动逻辑电路完全可以通过以上逐层深入的方法设计出来。必要时可以借助于卡诺图化简设计结果。根据微机系统的具体结构,可以使设计的数据总线驱动器支持内、外向量中断,支持内、外DMA操作,甚至支持多处理器系统。以上设计原理同样适用于其它类型的CPU或单片机,只是要注意选择相应的控制信号。(本文来源:正航仪器)
http://www.dgzhenghang.net