打印
[牛人杂谈]

单片机总线功能及使用要点

[复制链接]
611|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
duo点|  楼主 | 2023-3-21 15:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 duo点 于 2023-3-21 15:35 编辑

一、总线概述
计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据)。
计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据,控制总线用于传送控制信号,地址总线则用于选择存储单元或外设。
二、单片机的三总线结构
51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k(2的16次方)。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU通过地址选择访问的对象,完成与各对象之间的信息传递。

单片机三总线扩展示意如图1所示。
1、数据总线
51单片机的数据总线为P0口,P0口为双向数据通道,CPU从P0口送出和读回数据。
2、地址总线
51系列单片机的地址总线为16位。
为了节约芯片引脚,采用P0口复用方式,除了作为数据总线外,在ALE信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0口送出8位数据。
高8位地址则通过P2口送出。
3、控制总线
51系列单片机的控制总线包括读控制信号P3.7和写控制信号P3.6等,二者分别作为总线模式下数据读和数据写的使能信号。

使用特权

评论回复
沙发
duo点|  楼主 | 2023-3-21 15:38 | 只看该作者
三、单片机总线时序分析
51单片机总线时序如图2所示。

从图2中可以看出,完成一次总线(读写)操作周期为T,P0口分时复用,在T0期间,P0口送出低8位地址,在ALE的下降沿完成数据锁存,送出低8位地址信号。在T1期间,P0口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。
需要注意的是,在控制信号(读、写信号)有效期间,P2口送出高8位地址,配合数据锁存器输出的低8位地址,实现16位地址总线,即64kB范围的内的寻址。
由于CPU不可能同时执行读和写操作,所以读、写信号不可能同时有效。

使用特权

评论回复
板凳
duo点|  楼主 | 2023-3-21 15:39 | 只看该作者
四、常见单片机编址电路
1、简单地址扩展
51单片机的P2口可以直接作为高8位地址总线使用,在一些简单系统电路中,常使用P2口直接编址驱动。
下面以使用数据缓冲器74LS273驱动数码显示为例,分析P2口编址驱动的静态数码显示电路的设计。
一位LED数码显示单元电路如图3所示。
WR与A8(P2.0)相或提供74LS273的时钟信号,当执行“MOVX@DPTR,A”指令时,地址信息由DPTR寄存器确定,会出现有效的写信号WR,只有当地址A8为满足“0”时,写信号才可以作为74LS273的时钟信号输入,完成数据锁存。
P2口为A8~A15的8位地址线,很容易扩展到8只LED数码管,WR信号分别与A8~A15按或关系连接,每位地址线均为低电平有效,即可实现8个有效地址。
该方案电路简单,但有效地址数太少,不适用于复杂系统设计。

使用特权

评论回复
地板
duo点|  楼主 | 2023-3-21 15:44 | 只看该作者
2、低8位地址锁存
通常的设计电路是使用8D锁存器74LS373实现地址锁存,74HC573与之逻辑功能相同,只是引脚布局不一样,使用74HC573布线更容易。
74LS373真值表如图4所示。
在输出允许OE为L、控制使能LE为H时,输出为跟随状态;OE为L、LE为L时,输出为保持状态。
地址锁存电路如图5所示。OE接地,LE接单片机的ALE脚将产生满足时序的低8位地址信号。
执行以下三条指令会得到如图6所示的时序图。
MOVDPTR,#0FF55H;低8位地址为55H
MOVA,#0AAH;待发送数据0AAH→A(55H取反)
MOVX,@DPTR,A;A中的0AAH送地址为0FF55H的对象中会。
从图6中可以看出,P0口先送55H,在ALE下降沿实现地址锁存,随后送出数据0AAH,在WR有效(低电平)期间锁存器输出低8位地址55H,P0口送出数据0AAH。

使用特权

评论回复
5
duo点|  楼主 | 2023-3-21 15:47 | 只看该作者
3、带译码器的复杂地址接口电路
理论上高8位地址线可以产生256个有效地址,如何实现地址“扩展”呢?地址扩展准确描述是地址译码,例如3根地址线可以译码成8个地址,4根译码成16个有效地址。这里选择3-8译码器实现地址译码,电路图以及对应的编址如表1所示。
五、单片机总线编址电路实例
总线扩展接口的单片机系统,包括外部32kRAM扩展、LCD1602接口、输入输出口。
D0~D7接数据总线P0口,地址线A0~A14接单片机地址总线低15位,单片机地址线A15接RAM片选信号,低电平有效,这样RAM地址分配从0000H到7FFFH,与74138译码地址不冲突。

使用特权

评论回复
6
duo点|  楼主 | 2023-3-21 15:52 | 只看该作者
LCD1602接口电路如图9所示。
RS、RW分别接A12、A13,使能信号编址为Y7,这样LCD的四个驱动地址(数据读写和命令读写)为0CFFFH到0FFFFH(无关位为1)或者8700H到0B700H(无关位为0)。
有些时候单片机引脚不够用,还要进行扩展,输入口扩展电路如图10所示。
利用74HC573(74LS373)的高阻态功能,将其输出Q0~Q7接P0口,在满足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH或8000H。
输出口扩展电路如图11所示。
利用74LS273数据锁存功能,在满足总线地址写操作中,可以把单片机累加器里的数据写入273锁存输出,地址为0F8FFH或8000H。由于所用控制总线不同,可以和输入共用地址。
六、结束语
总线扩展是设计单片机控制电路必须掌握的技术,大量的特殊功能IC都支持总线接口,如ADC0809,TLC7528,DDS器件AD9851等。
总线接口的要点就是在严格的控制时序下,总线被分时复用,以实现复杂系统设计。

使用特权

评论回复
7
豌豆爹| | 2023-3-22 15:38 | 只看该作者
图文并茂介绍详细,知识很通用

使用特权

评论回复
8
豌豆爹| | 2023-3-24 14:34 | 只看该作者
总线扩展是设计单片机控制电路必须掌握的技术

使用特权

评论回复
9
星辰大海不退缩| | 2023-3-27 17:14 | 只看该作者
总线是一种内部结构,它是cpu、内存、输入、输出公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接。

使用特权

评论回复
10
豌豆爹| | 2023-3-28 09:14 | 只看该作者
计算机的总线分为控制总线、地址总线和数据总线等三种,挺不错的科普贴,还是得经常温顾一下基础知识。

使用特权

评论回复
11
小夏天的大西瓜| | 2023-3-28 13:36 | 只看该作者
单片机总线跟微机原理的总线差不多

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

428

主题

1603

帖子

1

粉丝