原创 使用74系列芯片作为I/O并行扩展的方法

2008-11-15 10:06 3373 3 3 分类: MCU/ 嵌入式

使用74系列芯片作为I/O并行扩展的常见于过去单片机I/O口不够的情况,而且是需要大量的内存和程序存储器严重不足的情况下。


开关量输出的扩展经常使用的芯片是74LS273/74LS373/74LS573/74LS574;这些芯片的共同特点是具有数据锁存的功能;


开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;


通过138139153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓冲器的选通输入。下面以74LS138为例。


要特别注意到,对245574273等使用TTL芯片以RAM方式做I/O扩展的,跟825581558253825162256等系列芯片不一样的地方,就是:


1825581558253825162256等芯片本身有wrrdce等信号,所以138的地址译码输出,可以直接接到CE;但是,245574273等芯片,没有wr或者rd信号,因此,如果系统中有这样的芯片扩展,就需要把wr或者rd加入到138中;


2)对于245或者244,要把数据读到数据总线上,芯片的数据的使能端必须是WR和地址译码数据的混和;


3)对于要把数据总线上的数据,锁存到574或者273的数据输出端口上,必须锁存器的LE,是地址和wr的混和;


因此,138的接法是:


1A15-》138A23


2A14-》138A12


3A13-》138A01


4RDWR74LS0000的输出接138E3(6)


5138的输出接245E或者574CLK


这样,使用 MOVX a@dptr的时候,才能在245E上出现带地址的RD信号;


使用 MOVX @dptr,A的时候,才能在574CLK上出现带地址的WR信号;


参见574的真值表,可见,E应该接低电平;


373573273574有所区别:


1573是从低-》高-》低,在从高-》低的瞬间,锁存数据;但是,在高电平的时候,数据是直通的,所以也可以使用这个特性做缓冲器,把LE直接接高电平;OE是三态门,直接接地;


2、但是138的输出是,当地址的输入有效的时候,是低电平,其它时间是高电平,所以在时序上跟573是不配合的,因此,573不能作为数据锁存器,除非138的输出加一个反向门接到LE


574是上升沿锁存数据,138的输出直接作为锁存脉冲即可;


如果系统中没有825581558253825162256这样的芯片,也可以使用139RDwr分别接入一个2-4译码器,译码器的输出分别接到245E574LE,这样可以省去一个74LS00


地址、数据、RDWR等时序是51MOVX a@dptr或者MOVX @dptr,A时自动产生的。


245244不具备锁存的功能,具备选通输入或者输出的功能,所以可以作为扩展I/O输入;


245244同时作为总线芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管等,也可以用于驱动微型的继电器!



也可以利用三态门的选通功能,把作为多个子板(地址不同)的输出并联在一起,


三态门芯片主要是74LS24574LS24474LS240;还有一些芯片但是不怎么常用;



1、数据总线:


只能使用74LS245,因为数据总线是双向的;而74LS245是双向的总线驱动器,有一个芯片管脚DIR是控制方向的;


2、地址总线


使用74LS244,也可以使用74LS245,因为245的输入输出排列在芯片一侧,比较好布线


74LS240比较少使用到,因为它是反向的。


244245作为数据总线和地址总线芯片使用在:


1、电路板上大量使用TTL芯片,比如,74LS57474LS27374LS24574LS244作为I/O并行扩展;因为芯片比较多,单片机的数据和地址总线驱动能力比较弱,无法带动这么大的负载;


而且,往往电路板的面积比较大,线路比较长;使用总线驱动芯片成了唯一的选择;


2、多板结构的仪器或者设备,例如STD总线的CPU模板和其它的接口模板;还有ISA总线的板卡,尤其是工控行业的ISA总线的I/O板,更是经常看见一片74LS245;这是作为数据总线驱动芯片的;


3、也可以利用三态门的选通功能,把作为多个子板(地址不同)的输出并联在一起


例如在我设计的一个多板的系统中,每个板子有2位的地址;一共有16个输出;


每个电路板根据地址选择其中的4路输出;其它的12路为高阻态。


通过拨码开关作为地址选择输出是哪4路;


然后把这4块的电路板的输出通过背板并联接到一个CPU板进行处理,解决了这4块同样的电路板输出并联在一起的问题。

文章评论0条评论)

登录后参与讨论
我要评论
0
3
关闭 站长推荐上一条 /2 下一条