找回密码
 注册
关于网站域名变更的通知
查看: 196|回复: 2
打印 上一主题 下一主题

单片机总线概述,单片机的三总线结构

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-5 10:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
一、总线概述
& M: g2 S: Y$ e5 i! P计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。
% W2 e' i- T- G5 V2 M计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据,控制总线用于传送控制信号, 地址总线则用于选择存储单元或外设。: n( `, o( h- G" ~/ |# p3 e+ u
二、单片机的三总线结构! D4 H' Y) P) }5 \$ n' X' f" B
51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 2的16次方) 。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的对象,完成与各对象之间的信息传递。
( x% j4 R* u. S& a: ~7 O* M; U0 K& w
单片机三总线扩展示意如图1 所示。" ^+ W+ \- d4 h: b- M
1、数据总线
( u& H7 H4 v- c, q1 m' P) D51 单片机的数据总线为P0 口,P0 口为双向数据通道,CPU 从P0 口送出和读回数据。
; a8 D0 h% q2 U8 C1 B. Y2、地址总线
( T0 `5 x: u2 j! J  R51 系列单片机的地址总线为16 位。2 s4 M2 ?  c6 J8 {( G
为了节约芯片引脚,采用P0 口复用方式,除了作为数据总线外,在ALE 信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出8 位数据。
# W- ^, o! {7 f& @/ _( G高8位地址则通过P2 口送出。
7 u+ m' X+ `/ f2 K# _3、控制总线
, K7 u( _) T! N+ i! r% E" X' K4 g51 系列单片机的控制总线包括读控制信号P3.7 和写控制信号P3.6 等,二者分别作为总线模式下数据读和数据写的使能信号。" O/ V5 Z' g6 A8 g8 D! V
三、单片机总线时序分析
$ |, Z3 w) a& i& z4 p+ ]/ w! C* ]51 单片机总线时序如图2 所示。
5 D  y1 ~, m4 F' [5 v
( ^" [- n) j! U3 q: L) T+ j9 ?从图2 中可以看出,完成一次总线( 读写) 操作周期为T,P0 口分时复用,在T0 期间,P0 口送出低8 位地址,在ALE 的下降沿完成数据锁存,送出低8位地址信号。在T1 期间,P0 口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。* h4 z1 [' {( w5 `/ N/ l" i" t
需要注意的是,在控制信号( 读、写信号) 有效期间,P2 口送出高8位地址,配合数据锁存器输出的低8 位地址,实现16 位地址总线,即64kB 范围的内的寻址。
) j3 U* a  F, B# @; w% P  b由于CPU不可能同时执行读和写操作,所以读、写信号不可能同时有效。# m9 q/ t( Y0 f/ E7 F; w: z
四、常见单片机编址电路
& w" U- O& ~* k$ u1、简单地址扩展
5 z, f" A* x- }5 B0 N6 y# z51 单片机的P2 口可以直接作为高8位地址总线使用,在一些简单系统电路中,常使用P2口直接编址驱动。! h! N  z( b8 e! _; W* b! W8 Z# G
下面以使用数据缓冲器74LS273 驱动数码显示为例,分析P2 口编址驱动的静态数码显示电路的设计。
" [* X8 o8 ~; {7 ~# D0 Y一位LED 数码显示单元电路如图3 所示。
# y5 y2 n$ R' ^8 e$ d$ {
+ ^+ ~2 p5 W$ I) h' BWR 与A8( P2.0) 相或提供74LS273的时钟信号,当执行“MOVX @DPTR,A”指令时,地址信息由DPTR 寄存器确定,会出现有效的写信号WR,只有当地址A8 为满足“0”时,写信号才可以作为74LS273 的时钟信号输入,完成数据锁存。
4 i% _& A9 x  \$ w3 x) XP2 口为A8~A15 的8 位地址线,很容易扩展到8 只LED 数码管,WR 信号分别与A8~A15 按或关系连接,每位地址线均为低电平有效,即可实现8 个有效地址。
7 P2 d8 g$ w2 `该方案电路简单,但有效地址数太少,不适用于复杂系统设计。/ m7 E/ ~4 Q2 B) M- |  w# l7 i7 E
2、低8 位地址锁存7 {. e" }3 p( J! b2 W- c
通常的设计电路是使用8D 锁存器74LS373 实现地址锁存,74HC573 与之逻辑功能相同,只是引脚布局不一样,使用74HC573 布线更容易。
! K! r# R/ N6 X% x74LS373 真值表如图4所示。4 e5 C' M7 ~0 m+ q: n8 T

, q! l! X4 ^( z$ U3 |在输出允许OE 为L、控制使能LE 为H 时,输出为跟随状态;
, v: [9 f  F& ~: S  \, ^OE 为L、LE 为L 时,输出为保持状态。
' a' p) E! L' Q% V6 i; o$ o; |地址锁存电路如图5 所示。OE 接地,LE 接单片机的ALE脚将产生满足时序的低8 位地址信号。- {' I' G% j3 M0 Q1 w
执行以下三条指令会得到如图6所示的时序图。
2 ?- {% f* ?4 O3 JMOV DPTR,# 0FF55H; 低8 位地址为55H8 g* r) ?$ j0 O# ~
MOV A,# 0AAH; 待发送数据0AAH→A( 55H 取反)9 n. ^; m) \* p  k3 p
MOVX,@DPTR,A; A 中的0AAH送地址为0FF55H 的对象中会。4 {! A! \3 Q" m, J  B, U) |7 ^% n
  |5 j7 t& V# q
从图6 中可以看出,P0 口先送55H,在ALE 下降沿实现地址锁存,随后送出数据0AAH,在WR 有效( 低电平) 期间锁存器输出低8 位地址55H,P0 口送出数据0AAH。; H9 ~* Q/ F8 i6 J$ y* h9 |+ o
3、带译码器的复杂地址接口电路8 y1 }( X$ b& N+ L) z, x& Q
理论上高8 位地址线可以产生256 个有效地址,如何实现地址“扩展”呢? 地址扩展准确描述是地址译码,例如3 根地址线可以译码成8 个地址,4根译码成16 个有效地址。这里选择3-8 译码器实现地址译码,电路图以及对应的编址如表1 所示。4 c( p; N0 g- ?5 u# D1 |

( \& {" \4 {; i0 d6 ^: o6 G1 Z4 `( l五、单片机总线编址电路实例
2 Y; {' i# x# \! i" \. Y带总线扩展接口的单片机系统,包括外部32k RAM 扩展、LCD1602 接口、输入输出口。2 k% @) G0 i4 A5 l3 C1 _
带编址扩展的单片机最小系统电路如图7 所示。$ [8 p, E& ~+ |2 v7 Y6 p& D4 s

+ Z( |  X8 u  r4 a# P0 T使用74HC573 锁存低8 位地址;74138 实现8 个地址扩展,74138 的A、B、C 接A8 ~A10,E1 接A15, E2、E3 接地常有效,得到0F8FFH 到0FFFFH8 个地址( 无关位用1 表示) 或者8000H 到8700H( 无关位用0 表示) 。  ?/ X* T; A+ `6 q% q5 a
32k RAM 接口如图8 所示。
- \5 E" a  u, u
1 @; Q. _5 s3 g: T) F6 O% tD0~D7 接数据总线P0 口,地址线A0~A14接单片机地址总线低15 位,单片机地址线A15 接RAM 片选信号,低电平有效,这样RAM 地址分配从0000H 到7FFFH,与74138 译码地址不冲突。9 C  r6 w4 ^1 _; r5 C! Y+ I' U& |
LCD1602 接口电路如图9 所示。+ e: T4 O7 c+ {# V0 \. t
& J6 @5 g1 s$ c, V" |( ^+ B
RS、RW 分别接A12、A13,使能信号编址为Y7,这样LCD 的四个驱动地址( 数据读写和命令读写) 为0CFFFH 到0FFFFH ( 无关位为1) 或者8700H 到0B700H( 无关位为0)。1 G* f4 O1 a& q" V) |7 _& w
有些时候单片机引脚不够用,还要进行扩展,输入口扩展电路如图10 所示。
# j# k' q5 n$ g% ^+ C3 t+ `7 t
% u, G. _8 a* K( X5 U4 ^8 p利用74HC573( 74LS373) 的高阻态功能,将其输出Q0~Q7 接P0 口,在满足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH 或8000H。
# ]& ~, H7 W6 `输出口扩展电路如图11 所示。5 f3 ^8 T6 l+ O; f% f

' T' x- s0 G  I+ `利用74LS273 数据锁存功能,在满足总线地址写操作中,可以把单片机累加器里的数据写入273 锁存输出,地址为0F8FFH 或8000H。由于所用控制总线不同,可以和输入共用地址。  q: P4 e; E+ j  k
六、结束语
( q! Y2 h9 p3 ^; f# K& Z总线扩展是设计单片机控制电路必须掌握的技术,大量的特殊功能IC都支持总线接口, 如ADC0809,TLC7528,DDS 器件AD9851 等。
2 ^3 ~! [% v+ |* y: S' {  Q总线接口的要点就是在严格的控制时序下,总线被分时复用,以实现复杂系统设计。
2 M5 ~  J4 N( t, A9 {! r  ?

该用户从未签到

2#
发表于 2022-8-5 13:11 | 只看该作者
经典的东西,必须得支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-4 09:20 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表