|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、单片机I/O扩展基础知识
7 M; D( A" O$ J" z1 、I/O接口电路的功能
' e" r+ `6 S" }: b9 f; h$ h外部设备的速度十分复杂,必须通过I/O接口电路实现。
8 M2 `2 I0 e6 E(1) 速度协调
$ o; I' ^' g& f% E* v( `2 o面对各种设备的速度差异,单片机无法按固定的时序以同步方式进行I/O操作,只能以异步方式进行,也就是只有在确认设备已为数据传送做好准备的前提下才能进行I/O操作。为此需要接口电路产生状态信号或中断请求信号,表明设备是否做好准备。即通过接口电路来进行单片机与外部设备之间的速度协调。
! W x- i1 x" w! P6 w(2) 输出数据锁存9 k& m( v2 V0 k& t4 g" t7 o: X) A
由于CPU与外设速度的不一致,需要有接口电路把输出数据先锁存起来,待输出设备为接收数据做好准备后,再把传送数据。这就是接口电路的数据锁存功能。
4 X a1 b6 @; y& H3 ^9 I(3) 数据总线隔离
. H4 }) |% B' |6 i5 T线上可能连接着多个数据源(输入设备)和多个数据负载(输出设备)。一对源和负载的数据传送正在进行时,所有其他不参与的设备在电性能上必须与总线隔开。这就是接口电路的总线隔离功能。% ~: O* D5 r3 X6 _. e: y0 D! a
为了实现总线隔离,需要有接口电路提供具有三态缓冲功能的三态缓冲电路。/ Y1 k1 V6 k& \' a i+ W0 {; S
(4)数据转换
# G9 ?2 H; H8 k7 y' S p0 ]外部设备种类繁多,不同设备之间的性能差异很大,信号形式也多种多样。单片机只能使用数字信号,如果外部设备所提供或需要的不是电压形式的数字信号,就需要有接口电路进行转换,其中包括模/数转换和数/模转换等。
: o1 K4 a" r% c8 F4 L" O(5)增强驱动能力
7 V! s! E! b6 F0 r. B S通过接口电路为输出数据提供足够的驱动功率,以保证外部设备能正常、平稳地工作。
; l. |/ ^$ P1 N- Q$ H5 D1 q# l' u: g6 [: j1 C
2、 关于接口电路的更多说明
4 C2 w' X; A# |7 i(1)接口与接口电路4 `/ p0 K" B2 Q7 ?
“接口” (InteRFace),具有界面、相互联系等含义,通过接口能使两个被连接的器件协同工作。单片机接口,则是研究单片机与外部设备之间的连接问题。单片机与外部设备之间接口界面的硬件电路称为接口电路,或称为I/O接口电路。, k; {) u# Q0 `( e
(2) 口或端口4 h$ V' ] r/ @# D5 W. w
为了实现I/O接口电路的界面功能,在接口电路中应包含一些寄存器,通常把接口电路中这些已编址并能进行读或(和)写操作的寄存器称为端口或简称口(Port)。完整的接口功能是靠软硬件相结合实现的,而口则是供用户使用的硬件内容,用户在进行扩展连接和编写相关程序时,要用到接口电路中的各个口,为此就需要知道这些口的设置和编址情况。% n: V0 Z4 I: z/ j3 Y( O4 B
(3) I/O接口的特点1 x! R* n6 R& d2 B; R
外部设备和I/O操作的复杂性,使接口电路成为单片机与外部设备之间必不可少的界面,通过接口电路居中协调和控制,保证外部设备的正常工作。有关I/O接口的特点可归结为如下3点:1 e, u9 | B8 T+ U
① 异步性。平时单片机与外部设备按各自的时序并行工作,只有在需要时外部设备才通过接口电路接受单片机的控制。' D1 P% \% ~3 [% ~2 C$ Y. e
② 实时性。单片机对外部设备的控制以查询或中断方式进行,以便最大限度地实现控制的实时化。
7 X- g3 \4 Y0 ]/ w7 O2 P③ 与设备无关性。接口芯片不一定是专用的,同一个接口芯片通过软件设置可为多种设备实现接口。$ u( K8 f; P% M$ R9 S
(4)并行接口与串行接口1 g. B0 p" F/ h; r9 T
按数据传输方式的不同,接口有并行与串行之分,即并行接口与串行接口。本章重点是并行接口。
4 V& {" E k: H) H% y# {7 X
& T2 C1 P. ~1 l" x( u/ O3、 I/O编址技术; L, `+ G$ V. g R3 N) O- w
为了对I/O接口电路中的寄存器(端口)进行读/写操作,就需要对它们进行编址,所以就出现了I/O编址问题。有两种I/O编址方式:统一编址方式和独立编址方式。在80C51单片机系统中,采用统一编址方式。
3 u! ]9 B) W6 G所谓统一编址方式,就是把I/O接口中的寄存器与外扩展的数据存储器中的存储单元同等对待,合在一起使用同一个64 KB的外扩展地址空间。I/O和存储器的统一编址,使得I/O口也采用16位地址编址,并使用数据存储器读/写指令进行I/O操作,而不需要专门的I/O指令,& _- w0 z" A7 R
所谓独立编址方式,就是把I/O与存储器分开进行编址。这样,在一个单片机系统中就形成了两个独立的地址空间:存储器地址空间和I/O地址空间。独立编址方式的优点是两个地址空间相互独立界限分明,但同时也存在许多麻烦并增加系统开销,所以独立编址方式在单片机中较少采用。' @- B5 z9 D& H. a. `$ m
( r9 f6 T t, M7 E |) l4 、单片机I/O控制方式
! c6 w) j2 [5 `(1)无条件方式
1 p0 n, `( N0 |0 \4 u无条件传送也称为同步程序传送。只有那些能一直为I/O操作作好准备的设备,才能使用无条件传送方式。在进行无条件I/O操作时,无需测试设备的状态,可以根据需要随时进行I/O操作。
# w3 z y- _' ~8 z无条件传送适用于两类设备的I/O操作。一类是具有常驻的或变化缓慢的数据信号的设备。例如,机械开关、指示灯、发光二极管、数码管等,另一类则是工作速度非常快,足以和单片机同步工作的设备,例如数/模转换器(DAC)。3 { w9 @ K" R: @
(2)查询方式! t0 T# w$ `. t) n5 g% z2 \
查询方式又称有条件传送方式,在I/O操作前,要检测设备的状态,只有在确认设备已“准备好”的情况下,单片机才能执行I/O操作。检测也称为“查询”,所以就把这种有条件的I/O控制方式称为查询方式。
4 m# X! X; s6 k+ l/ H9 z D& t为实现查询方式的I/O控制,需要由接口电路提供设备状态,接口电路中的状态寄存器或状态位就是为此而准备的查询方式只适用于规模比较小的单片机系统。
# @' w3 d& ~, o% I6 t(3) 中断方式
) R2 g; `5 H. I g9 `! x' K中断方式与查询方式的主要区别在于如何知道外部设备是否为I/O操作做好准备。采用中断方式进行I/O控制时,当设备做好准备之后,就向单片机发出中断请求。单片机接收到中断请求之后作出响应,暂停正在执行的原程序,而转去执行中断服务程序,通过执行中断服务程序完成一次I/O操作,然后程序返回,单片机再继续执行被中断的原程序。* v- J( ~' A1 `) t9 E
中断方式效率较高,所以在单片机系统中被广泛采用。但中断请求是一种不可预知的随机事件,所以实现起来对单片机系统的硬件和软件都有较高的要求。( T2 j) j; d) e3 p
1 T# U( Q1 t8 m- {/ M二、可编程并行接口芯片82556 k8 l' P& B& [" g9 X& Q
8255是Intel公司产品,因其工作方式和操作功能等可通过程序进行设置和改变,称为可编程接口芯片。
: E) K7 i0 @, t# _# `" W0 }1 、8255硬件逻辑结构
# n! I9 |( l: r7 H ]1 F8255的全称是“可编程并行输入/输出接口芯片”,具有通用性强且使用灵活等优点,可用于实现80C51系列单片机的并行I/O口扩展。
- f0 H8 e* R5 z% h& C
) X3 u) u# q8 B
按功能可把8255的内部结构分为3个逻辑电路部分,分别为:口电路、总线接口电路和控制逻辑电路。如下图:+ h) g" [4 q- H+ Y }# c
; y9 t5 M h1 m$ G. Z0 Z3 Z- J2 B(1)口电路' x+ _+ d; G; G y
8255共有3个8位口,其中A口和B口是单纯的数据口。而C口则既可以作数据口使用,又可以作控制口使用,主要用于实现A口和B口的控制功能。在使用中常把C口分为两部分,即C口高位部分(PC7~PC4)和C口低位部分(PC3~PC0)。
; U j2 E# t4 H把A口和C口高位部分合在一起称为A组;把B口和C口低位部分合在一起称为B组。
1 R& f4 T9 \. ` K; b(2)总线接口电路
: o# J' n/ T4 k% N总线接口电路用于实现8255和单片机芯片的信号连接。其中包括:5 C3 p! g8 |: A8 S1 j' a1 V
数据总线缓冲器。与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送的。
0 H" `, J {4 C& E读/写控制逻辑。相关的控制信号有:
; j/ p# S) w: b4 L$ |/ J2 i+ o+ R/CS片选信号(低电平有效)。
7 ^2 z# [- l S: @6 i2 w" c/RD读信号(低电平有效)。9 B! u0 y& o. m- `: P( v
/WR写信号(低电平有效)。
/ X S6 L7 d9 A I8 U4 t3 F ~A0、A1低位地址信号,用于端口选择。8255共有4个可寻址的端口。. u9 ?) H7 w9 x) l' X
RESET复位信号(高电平有效)。芯片复位后,控制寄存器清0,各端口被置为输入方式。
3 I" C1 H0 R7 p/ I; w(3)A组和B组控制电路
- o1 U* |( f7 }A组控制和B组控制合在一起构成8255的控制电路,其中包括一个8位控制寄存器,用于存放编程命令和实现各口操作控制。9 N. H" _) J6 R3 T
(4)中断控制电路3 ~/ G O6 D% F% [& }* j# s) p
8255逻辑电路中还包含一个中断控制电路。中断控制电路中对应A、B两个口各有一个中断触发器,即触发器A和触发器B,用于对中断的允许和禁止进行控制。置位为允许,复位为禁止。对两个触发器的置位和复位控制是通过口C的有关位进行的。
' u; C6 v& C/ H) B0 x
0 b: \# R' }, T5 ^ |
|