|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、总线概述8 ^ A6 |+ B) Z. c, }( v7 G
计算机系统是以微处理器为核心的,各器件要与微处理器相连,且必须协调工作,所以在微处理机中引入了总线的概念,各器件共同享用总线,任何时候只能有一个器件发送数据(可以有多个器件同时接收数据) 。) E. _2 S1 k: s' J4 |. a- U* R
计算机的总线分为控制总线、地址总线和数据总线等三种。而数据总线用于传送数据,控制总线用于传送控制信号, 地址总线则用于选择存储单元或外设。
0 Z2 }* }& N" G- S! [二、单片机的三总线结构3 K' g% z* a. V; o: l. e0 H3 h8 w
51系列单片机具有完善的总线接口时序,可以扩展控制对象,其直接寻址能力达到64k( 2的16次方) 。在总线模式下,不同的对象共享总线,独立编址、分时复用总线,CPU 通过地址选择访问的对象,完成与各对象之间的信息传递。3 r' _0 [* \0 m# N9 L
![]()
3 U; Q4 r& z! T% |单片机三总线扩展示意如图1 所示。
S5 E7 @2 N, }6 x9 D& Q4 I% f1、数据总线
9 q K- o" |) w7 _51 单片机的数据总线为P0 口,P0 口为双向数据通道,CPU 从P0 口送出和读回数据。. t! l. U2 X7 i4 m, |) p
2、地址总线/ V/ b9 V b; s5 X4 l0 B2 E" W
51 系列单片机的地址总线为16 位。
' r, w) d2 {8 e1 r为了节约芯片引脚,采用P0 口复用方式,除了作为数据总线外,在ALE 信号时序匹配下,通过外置的数据锁存器,在总线访问前半周期从P0口送出低8位地址,后半周期从P0 口送出8 位数据。
: P/ [7 l& i Y高8位地址则通过P2 口送出。
& I; G$ L7 Z% v# S0 C3、控制总线6 l* j: Y2 Q! Z W- z( i
51 系列单片机的控制总线包括读控制信号P3.7 和写控制信号P3.6 等,二者分别作为总线模式下数据读和数据写的使能信号。9 v0 a1 v& {9 L$ S! ?8 e' b) O
三、单片机总线时序分析
% }8 W3 m9 a, y8 S6 `+ n$ ?$ R y51 单片机总线时序如图2 所示。
( I# S- ?1 s6 B1 _' o![]()
4 c% |' [6 G# ?9 p从图2 中可以看出,完成一次总线( 读写) 操作周期为T,P0 口分时复用,在T0 期间,P0 口送出低8 位地址,在ALE 的下降沿完成数据锁存,送出低8位地址信号。在T1 期间,P0 口作为数据总线使用,送出或读入数据,数据的读写操作在读、写控制信号的低电平期间完成。
$ w W: L g$ {: R* w* O y7 n; i需要注意的是,在控制信号( 读、写信号) 有效期间,P2 口送出高8位地址,配合数据锁存器输出的低8 位地址,实现16 位地址总线,即64kB 范围的内的寻址。/ m% _9 r8 t1 P; C) P) o
由于CPU不可能同时执行读和写操作,所以读、写信号不可能同时有效。& ~2 o* u; R: d$ Q
四、常见单片机编址电路
. @8 h9 _$ m/ w& j6 `; o6 L/ U3 i1、简单地址扩展# t8 K$ ?$ j P9 y" m: Z4 G/ A
51 单片机的P2 口可以直接作为高8位地址总线使用,在一些简单系统电路中,常使用P2口直接编址驱动。7 n# f) b3 S! u8 E; ]
下面以使用数据缓冲器74LS273 驱动数码显示为例,分析P2 口编址驱动的静态数码显示电路的设计。8 Z" o9 J+ P, n8 n G
一位LED 数码显示单元电路如图3 所示。
5 i/ K9 F, r1 l; w3 Y, i# ? + \; x% Z5 L: }
WR 与A8( P2.0) 相或提供74LS273的时钟信号,当执行“MOVX @DPTR,A”指令时,地址信息由DPTR 寄存器确定,会出现有效的写信号WR,只有当地址A8 为满足“0”时,写信号才可以作为74LS273 的时钟信号输入,完成数据锁存。
`4 U8 y& R. w! wP2 口为A8~A15 的8 位地址线,很容易扩展到8 只LED 数码管,WR 信号分别与A8~A15 按或关系连接,每位地址线均为低电平有效,即可实现8 个有效地址。4 r6 S, V- C# C1 W
该方案电路简单,但有效地址数太少,不适用于复杂系统设计。7 `* l* V5 X7 N( F2 {2 l/ n, P2 b
2、低8 位地址锁存
0 }2 O. I8 o2 E8 c9 y5 Z通常的设计电路是使用8D 锁存器74LS373 实现地址锁存,74HC573 与之逻辑功能相同,只是引脚布局不一样,使用74HC573 布线更容易。
% @/ w+ `9 v- w V74LS373 真值表如图4所示。# K. P. p H2 s% z5 C, ~! t9 }% h
3 J& r( ]5 ]$ |' I; Y4 j% y
在输出允许OE 为L、控制使能LE 为H 时,输出为跟随状态;
0 a4 K0 u+ }% h! X8 _OE 为L、LE 为L 时,输出为保持状态。
. t( { X$ u% w1 x地址锁存电路如图5 所示。OE 接地,LE 接单片机的ALE脚将产生满足时序的低8 位地址信号。
: G% R) y% A+ E* }! a) k2 Q执行以下三条指令会得到如图6所示的时序图。
2 s2 ?; Y/ c- Z) x2 ^MOV DPTR,# 0FF55H; 低8 位地址为55H% H7 }9 j3 M/ l$ F$ S- K! q# @, E- v
MOV A,# 0AAH; 待发送数据0AAH→A( 55H 取反)
% y4 O* n9 p& p( gMOVX,@DPTR,A; A 中的0AAH送地址为0FF55H 的对象中会。: Q- @. A( j9 y
6 r4 V4 ~, K$ O! j& ~
从图6 中可以看出,P0 口先送55H,在ALE 下降沿实现地址锁存,随后送出数据0AAH,在WR 有效( 低电平) 期间锁存器输出低8 位地址55H,P0 口送出数据0AAH。: Y# n8 X4 U3 y
3、带译码器的复杂地址接口电路' a6 u9 u( C, R N0 ~0 H) S
理论上高8 位地址线可以产生256 个有效地址,如何实现地址“扩展”呢? 地址扩展准确描述是地址译码,例如3 根地址线可以译码成8 个地址,4根译码成16 个有效地址。这里选择3-8 译码器实现地址译码,电路图以及对应的编址如表1 所示。- x; M& b4 ]9 Q0 @8 o1 b# F% p; T( P3 a
3 n% b) j$ c! E# i! Y4 B2 r
五、单片机总线编址电路实例& ?, I) p8 T" b4 F1 O
带总线扩展接口的单片机系统,包括外部32k RAM 扩展、LCD1602 接口、输入输出口。
% }) F5 ]' b, k7 f" h带编址扩展的单片机最小系统电路如图7 所示。" b" |( c& a/ x3 o( x
![]()
! E) ?; q6 E9 C使用74HC573 锁存低8 位地址;74138 实现8 个地址扩展,74138 的A、B、C 接A8 ~A10,E1 接A15, E2、E3 接地常有效,得到0F8FFH 到0FFFFH8 个地址( 无关位用1 表示) 或者8000H 到8700H( 无关位用0 表示) 。
. `1 [3 S% a/ N/ V; D8 P32k RAM 接口如图8 所示。
( n* p4 x5 x% w![]()
) A' O, @ o( Y( }% V' |D0~D7 接数据总线P0 口,地址线A0~A14接单片机地址总线低15 位,单片机地址线A15 接RAM 片选信号,低电平有效,这样RAM 地址分配从0000H 到7FFFH,与74138 译码地址不冲突。0 P' A) G8 ^ e$ g$ @
LCD1602 接口电路如图9 所示。: t5 E9 K% M$ S
# V) I3 u- c% n, t8 K3 O/ l
RS、RW 分别接A12、A13,使能信号编址为Y7,这样LCD 的四个驱动地址( 数据读写和命令读写) 为0CFFFH 到0FFFFH ( 无关位为1) 或者8700H 到0B700H( 无关位为0)。
3 a3 E- M! y; C- l3 S+ @有些时候单片机引脚不够用,还要进行扩展,输入口扩展电路如图10 所示。- `; W' k0 J( y
3 h0 {3 j. _3 O
利用74HC573( 74LS373) 的高阻态功能,将其输出Q0~Q7 接P0 口,在满足总线地址读操作中,可以把输入InPORT的数据读入单片机的累加器,地址为0F8FFH 或8000H。5 o: V; a5 m/ ]; j* s! p8 A, b
输出口扩展电路如图11 所示。
' A" U- T$ P, c8 Z+ o![]()
3 o2 F x2 { B利用74LS273 数据锁存功能,在满足总线地址写操作中,可以把单片机累加器里的数据写入273 锁存输出,地址为0F8FFH 或8000H。由于所用控制总线不同,可以和输入共用地址。
5 Z# K5 q+ O7 i9 m* }9 T六、结束语
F7 a% f4 \7 Z: j总线扩展是设计单片机控制电路必须掌握的技术,大量的特殊功能IC都支持总线接口, 如ADC0809,TLC7528,DDS 器件AD9851 等。
: T3 e% H# }; \$ o8 q总线接口的要点就是在严格的控制时序下,总线被分时复用,以实现复杂系统设计。: W. y4 R; N5 L
|
|