如何通过3/8译码器扩展处理器片选信号

本文的内容本来是打算放在我刚出版的《专业嵌入式软件开发 — 全面走向高质高效编程》一书中的。但后来由于将该书定位为偏向软件,所以将本文所在的章全部删除了,打算将之放在我另一本偏向硬件的书中。最近,由于网友在我的博客空间中问起如何通过3/8译码器扩展地址空间,所以在此将之整理与大家分享。

假设我们希望实现图1所示的采用3/8译码器将处理器的CS1片选信号扩展成两个以分别控制以太网芯片和Flash芯片。为了方便解释,进一步假设CS1的片选空间是0xFFE00000~0xFFFFFFFF。我们希望经过片选扩展以后,Flash位于0xFFE00000~0xFFEFFFFF地址空间,而以太网芯片位于0xFFF00000~0xFFFFFFFF地址空间。
    图1
 

先来说一说3/8译码器的功能是什么,从名字来看就是将3位比特转换为8(2的3次方)根独立的信号线。3/8译码器有三根输入信号线(图1中74LS138的A、B和C)和八根输出信号线(Y0~Y7)。注意:图1中如在管脚名称上加了一条横线则表示该信号是低电平有效,否则是高电平有效。

图 2是74LS138译码器的真值表,其表达了输入与输出之间的对应关系,表中的“X”表示信号是高阻态。从图中可以看出,这一3/8译码器的作用,其实就是将CBA的二进制数值分别转换为Y0~Y7中一根线的低电平信号。从图 1中的原理图来看,CS1与G1是相连的,即只有当CS1为高电平有效时,Y0~Y7才会有低电平信号输出。另外,Y6和Y7是被用作片选信号扩展的两根管脚,当Y6为低电平时,CBA三根信号线的电平组合分别是110,而Y7为低电平时CBA的组合变为了111。如何将CBA三根信号线与处理的地址线连接,以实现片选信号扩展呢?
    图2
 
 
 
图 3列出了Flash和以太网芯片各自开始地址所对应的比特位,其中只列出了四个比特。可以看出,A20地址线将能决定是选择哪一块芯片。如果将A22与74LS138的C相连、A21与74LS138的B相连以及A20与74LS138的A相连,则完全可以实现将Y6和Y7作为两个片选信号,且各片选信号的地址空间也是我们所希望的。
图3  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值