单片机总线设计方法攻略.pdf

上传人:飞****9 文档编号:136883177 上传时间:2020-07-03 格式:PDF 页数:27 大小:301.07KB
返回 下载 相关 举报
单片机总线设计方法攻略.pdf_第1页
第1页 / 共27页
单片机总线设计方法攻略.pdf_第2页
第2页 / 共27页
单片机总线设计方法攻略.pdf_第3页
第3页 / 共27页
单片机总线设计方法攻略.pdf_第4页
第4页 / 共27页
单片机总线设计方法攻略.pdf_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《单片机总线设计方法攻略.pdf》由会员分享,可在线阅读,更多相关《单片机总线设计方法攻略.pdf(27页珍藏版)》请在金锄头文库上搜索。

1、单片机总线设计法全攻略单片机总线设计法全攻略 1、目前广大工程师在设计单片机系统时的两种方案之我见、目前广大工程师在设计单片机系统时的两种方案之我见 针对 51 单片机,工程师们在设计系统时,从宏观上讲无非就是两种方案: 总线式设计方案和非总线式设计方案。所谓总线式设计方案就是利用 51 单片机 的读写外部 RAM 功能,将要设计的外部设备(比如说键盘、液晶等)统统挂到 单片机总线上,使其统一按类似读写外部 RAM 功能的指令方法进行操作;而所 谓非总线式设计方案, 则是不利用单片机的读写外部 RAM 功能, 而直接利用 I/O 口读写方式进行外部设备的读写,比如说 LED 灯、液晶等,因为液

2、晶有两种读 写方式,总线方式和模拟 I/O 方式(贵刊也有文章介绍过) ,而这里读写液晶的 模拟 I/O 方式就是这里我要说的非总线式设计方案。 那么这两种方案到底哪一种好呢?说这句话可能有点外行,我自己也这样 认为, 但是为了更好的让初学者了解其中的道理, 我还是班门弄斧简单阐述一下: 首先要说明,我的这种阐述是建立在有读写外部 RAM 功能的单片机的基础之上 的。我个人认为,两种方案各有利弊: 对于总线式设计方案来说,优点就是能够充分发挥单片机的总线读写功 能,系统一旦设计完成,易于日后的升级和扩展。缺点是灵活性差,硬件连接比 较固定;同时由于单片机读写总线时必定要产生一定的总线时间延迟,

3、这样对于 低速的单片机来说,如果设计的系统非常庞大的话,那就需要设计人员考虑一下 实时性要求了,但是根据我个人多年来的开发经验来说,只要设计得当,一般问 题不大,但还是将此问题摆出来,让大家商榷。 对于非总线式设计方案来说,最大的优点就是灵活性强,这种方案可以根 据设计者的爱好自由选择单片机端口进行外围设备的设计 (当然是要在符合设计 原则的前提下) ,缺点是升级需要重新设计电路图。 2、总线法设计单片机系统的原理和方法、总线法设计单片机系统的原理和方法 2.1 总线法设计原理简介总线法设计原理简介 总线式设计方案对于很多的初学者来说是比较困难的, 因为对于这种方法 来说,牵扯到单片机和外围设

4、备时序逻辑的分配、地址空间的分配、总线驱动能 力等等的问题,一旦设计不好,系统便无法启动,或者说部分模块无法工作。确 实,总线式设计方案存在一定的难度,我想这大概也就是很多初学者甚至包括很 多单片机设计工程师们也更趋向于利用非总线式设计方案来进行单片机系统设 计的原因吧(仅为个人观点,如有不对,还望切磋) 。所以在这一节接下来的内 容中我将会带领大家踏入单片机总线式设计方案的大门, 让你领略一下在这块设 计领域的无限精彩。 首先我们先来看看 51 单片机读写外部 RAM 的时序图,如图 1、2 所示: 图 1 为 51 单片机读外部 RAM 的时序图。 图 1 51 单片机读外部 RAM 的时

5、序图 注意在这里我们只需要关心 ALE、RD、PORT0、PORT2 四个信号的时序, 而不必关心PSEN信号,因为这个信号是用来控制读写外部程序存储器的,跟我 们的讨论不相关,有兴趣的可以自行研究,下同。下面我就跟大家一起讨论一下 这四路信号是如何共同使用的。 有过设计经验的人都很清楚,ALE 信号就是我们常说的地址锁存信号,那 么它为什么要锁信号呢?锁谁的信号呢?又是如何锁的呢?第一、 二个问题很简 单,因为 51 单片机的 P0 口是地址/数据复用的 8 位端口,在读写外部 RAM 时, P0 口上会顺序接连出现你要读写的地址信号和读到或要写的数据,如果当地址 信号出现时不将此 8 位地

6、址锁住,那么它将会迅速消失,便无法利用此地址进行 外部存储器的地址选择;而针对第三个问题,信号时如何锁的,稍微有点麻烦, 因为灵活性很大。大家请仔细看图 1 的 ALE 和 PORT0 两个信号, LHLL tALE 的有效脉冲宽度 AVLL t+为 P0 口地址信号的有效时间长度 LLAX t 我们先暂且研究一下这两个信号便可解答上面的问题,注意到 P0 口地址的 有效时间长度为+两个时间长度的和,那么我们到底在哪个时间段来锁 存地址信号呢?通过时序图我们可以发现,显然必须在 ALE 的有效脉冲宽度内 来截取这个 P0 口的地址信号,那么有人会问多出这个时间段干什么用,在 这个时间段内 P0

7、 口其实也在继续保持有效的低 8 位地址,请继续往下看便可理 解。好了,既然这样,我们要锁存此时的 P0 口地址信号很显然就要在 ALE 的有 效脉冲宽度内来动手脚了,大家一看,哈,这简单,这要在 ALE 信号为高电平 的时候,直接利用 373 芯片获取 P0 口地址信号不就完了嘛!不错,是的,目前 大家都是这么做的。那么我现在问你,方法唯一吗?我这么一提醒,大家可能又 会想,奥,对了,在 ALE 信号的两个边沿也可以啊!那么你又错了,我说还有 一个方法就是在 ALE 信号的下降沿可以,上升沿是不行的啊!为什么啊?你看 看图 1 的时序, P0 口地址的有效起始时间的左边沿在 ALE 信号的有

8、效脉冲 上升沿后面呢,这显然不行吧!当然我们经常用的方法还是利用 74ls373 这类高 电平传输的芯片。这里告诉了大家两种方法,只是想提醒大家有时候方法是非常 灵活的,后面我会就这两种锁存地址的方法分别以实例的形式体现在大家面前。 AVLL t LLAX t LLAX t AVLL t 好了,地址我们锁存完了,既然 P0 口是地址和数据复用端口,那我们再来 研究一下后面的数据又是怎么传输的。 为了更好的让大家同时了解外部存储器的 读和写的原理,这部分我打算结合图 2 介绍一下数据的写入。 图 2 为 51 单片机写外部 RAM 的时序图。 图 2 51 单片机写外部 RAM 的时序图 同样在

9、这里我们只需要关心 ALE、WR、PORT0、PORT2 四个信号的时序。 请看下面几个时间量: LLWL tALE 信号跳为低到WR信号开始变低的时间段 WLWH tWR信号有效宽度 QVWX tP0 口数据有效开始到WR信号开始有效 WHQX tWR信号有效结束到 P0 口数据有效结束 通过上面我们可以看出, 也就是说在 ALE 信号跳为低电平以后, 延迟这 么长的时间后, LLWL t WR低电平信号会紧跟着出现,注意这个信号是单片机自动产生 的,很多读者总是以为要设置什么寄存器之类的东西,容易出现迷惑,只要我们 在程序里一调用 MOVX 或者在 C 语言里读写 XDATA(外部)的地址

10、,WR或者 RD便会自动出现了。于是乎这时候我们便可以写入我们需要传输的数据了。问 题由来了,我们在什么时候把数据写入到外部 RAM 或者说外部设备呢?这里请 大家注意,我们发现 P0 口数据有效的总时间段为+,显然要长 于 WLWH t QVWX t WHQX t WR信号有效宽度,并且将其包含在之内,所以在这里,根据这个时序原 理,我们可以利用 WLWH t WR的下降沿时刻、低电平阶段或是上升沿时刻进行数据的写 入, 但是我们最常用的是在WR的低电平时期和WR上升沿时刻将有效数据写入, 而利用WR的低电平时期写入数据又是最为普遍,因为好多公司生产的带外部总 线读写功能的芯片都是要求在WR

11、的低电平时期写数据,跟上面一样,我们在这 里讨论这个,主要是给大家提供一种思路,在自己进行地址分配或时序逻辑设计 时也许用得上。在下面的实例中,这两种方法我都会做介绍,请大家仔细体会。 2.2 两种地址锁存法介绍两种地址锁存法介绍 上面我已经提到,在进行地址锁存时有两种锁存方案:高电平地址锁存法和 下降沿地址锁存法,注意我这里所说的这两种方法名称是针对单片机的 ALE 端 信号而言。下面我将结合具体的电路给大家做一下详细介绍(为节省画图空间, 考虑到单片机复位电路和晶振电路不是本文所讨论的话题,故省略) : 2.2.1 高电平地址锁存法高电平地址锁存法 本小节介绍的高电平地址锁存法是单片机开发

12、工程师使用最为广泛的一种 方法。 在这种方法中选用 373 或者 573 芯片, 以 573 为例, 其真值表如表 1 所示: 表 1 74HC573 真值表 OE LE D Q L H H H L H L L L L X Q0 H X X Z 由上述真值表我们不难看出, 这个片子的特点是: 在输出控制端 OE 有效 (低 电平)的前提下,当锁存端 LE 为高电平时,输出端 Q 随着输入端 D 变化,而 当 LE 为低电平时,输出端 Q 保持上一次的输入端数据,这样的逻辑正好符合我 们在第一节分析的有关单片机 ALE 端信号的变化情况,即 ALE 端为高电平时, 单片机 P0 口的低 8 位地

13、址信号输出到 573 的输入端,而输出端跟随变化,一旦 ALE 变为低电平,573 便不再跟随单片机的 P0 口地址,因为这时候(应该是过 一会)P0 口马上就要输出 8 位“数据”了,这样便完成了单片机低 8 位地址的 锁存。 图 3 高电平地址锁存法 2.2.2 下降沿地址锁存法下降沿地址锁存法 本小节给大家介绍另一种方法下降沿地址锁存法。 这种方法在我们的实 际设计中并不是很常见,但是我仍然给大家做一个简单的介绍,目的是让大家开 拓思路,了解问题的实质。 在这种方法中选用 374 或者 574 芯片,以 374 为例,其真值表如表 1 所示: 表 2 74HC374 真值表 OE CLK

14、 D Q L H H L L L L L X Q0 H X X Z 由上述真值表我们不难看出, 这个片子的特点是: 在输出控制端 OE 有效 (低 电平)的前提下,当锁存端 LE 输入上升沿信号时,输入端 D 的信号才能送到输 出端 Q,而当 LE 为非上升沿时,输出端 Q 保持上一次的输入端数据,这样的逻 辑正好符合我们在第一节分析的有关单片机 ALE 端信号的变化情况, 即 ALE 端 为高电平时,单片机 P0 口的低 8 位地址信号输出到 374 的输入端,但是输出端 不跟随输入端变化,一旦 ALE 信号变为低电平,这样便瞬间产生了一个下降沿, 但是 374 需要的是一个上升沿信号才能将

15、数据从输入端打进输出端,为此,必须 在 ALE 与 CLK 端进行一下反相。这样在单片机这次整个的读写数据的过程中, 374 的输出端,也就是锁存的单片机的低 8 位地址就不再变化了,因为,ALE 端 信号在一次读写过程中是始终保持低电平的,不会再次产生下降沿,也就不会再 次更新 374 的输出端。这样也同样完成了单片机低 8 位地址的锁存。 图 4 下降沿地址锁存法 3、总线法设计单片机模块全突破、总线法设计单片机模块全突破 通过上面第二节我们知道单片机总线低 8 位地址有两种锁存方法。 在这一节 里, 我将就总线设计法中经常用到的一些单片机外围模块的设计思路或者方法详 细的介绍给大家,希望

16、大家看完后能从中有所体会。 首先我先把下面各个模块中用到的 138 地址译码电路摆出来: 图 5 地址译码电路 地址分配: CS_LED: 0X80000X8FFF; LED 指示灯片选地址 CS_SHUMA: 0X90000X9FFF; 数码管片选地址 CS_A/D: 0XA0000XAFFF; A/D 转换器片选地址 CS_D/A: 0XB0000XBFFF; D/A 转换器片选地址 CS_LCD: 0XC0000XCFFF; 液晶片选地址 CS_KEY_RD: 0XD0000XDFFF; 读键盘片选地址 CS_KEY_WR: 0XE0000XEFFF; 写键盘片选地址 地址分配解析: 首先咱们先来看看 LED 指示灯的地址控制端 CS_LED 为什么是 0X80000X8FFF,74HC138 首先要工作,必须将它的片选输入(E

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号