开关量接口技术.doc_第1页
开关量接口技术.doc_第2页
开关量接口技术.doc_第3页
开关量接口技术.doc_第4页
开关量接口技术.doc_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

轮机自动化系统微机应用技术讲义第二讲 开关量接口技术第一讲: 第七章 接口与并行通信回顾: 微机系统结构及控制信号的名称和作用。本讲重点:I/O接口概述,CPU与I/O接口,I/O接口与系统的连接。讲授内容:7.1 CPU与外设之间的数据传输一CPU与I/O接口接口电路按功能可分为两类:是使微处理器正常工作所需要的辅助电路:时钟信号或中断请求等;是输入/输出接口电路:CPU与外部设备信息的传送(接收、发送)。 最常用的外部设备:如键盘、显示装置、打印机、磁盘机等都是通过输入/输出接口和总线相连的,完成检测和控制的仪表装置也属于外部设备之列,也是通过接口电路和主机相连。1为什么要用接口电路需要分析一下外部设备的输入/输出操作和存储器读/写操作的不同之处:存储器都是用来保存信息的,功能单一,传送方式单一(一次必定是传送1个字节或者1个字),品种很有限(只有只读类型和可读/可写类型),存取速度基本上和CPU的工作速度匹配.。外部设备的功能多种多样的(输入设备,输出设备,输入设备/输出设备),信息多样(数字式的,模拟式的),信息传输的方式(并行的,串行的),外设的工作速度通常比CPU的速度低得多,而且各种外设的工作速度互不相同,这也要求通过接口电路对输入/输出过程起一个缓冲和联络的作用。注:接口电路完成相应的信号转换、速度匹配、数据缓冲等功能2接口的功能(8种):寻址能力:对送来的片选信号进行识别。输入/输出功能:根据读/写信号决定当前进行的是输入操作还是输出操作。数据转换功能:并行数据向串行数据的转换或串行数据向并行数据的转换。联络功能:就绪信号,忙信号等。中断管理:发出中斯请求信号、接收中断响应信号、发送中断类型码的功能。并具有优先级管理功能。复位:接收复位信号,从而使接口本身以及所连的外设进行重新启动。可编程:用软件来决定其工作方式,用软件来设置有关的控制信号。错误检测:一类是传输错误。另类是覆盖错误。注:一些接口还可根据具体情况设置其它的检测信息。二I/O接口与系统的连接1CPU与I/O设备之间的信号(三类)(1) 数据信息 包括三种形式:数字量、模拟量 、开关量(2) 状态信息 是外设通过接口往CPU传送的如:“准备好”(READY)信号、“忙”(BUSY)信号(3) 控制信息 是CPU通过接口传送给外设的 如:外设的启动信号、停止信号就是常见的控制信息2接口部件的I/O端口:数据端口、控制端口、状态端口CPU和外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为I/O端口,每个端口有一个端口地址。用于对来自CPU和内存的数据或者送往CPU和内存的数据起缓冲作用的,这些端口叫数据端口。用来存放外部设备或者接口部件本身的状态,称为状态端口。用来存放CPU发出的命令,以便控制接口和设备的动作,这类端口叫控制端口。如下图注:输入还是输出,所用到的地址总是对端口而言的,不是对接口部件而言的。为了节省地址空间,将数据输入端口和数据输出端口对应同一个端口地址。同样,状态端口和控制端口也常用同一个端口地址。CPU对外设的输入/输出操作就归结为对接口芯片各端口的读/写操作。 3接口与系统的连接.接口电路位于CPU与外设之间,从结构上看,可以把一个接口分为两个部分,用来和I/O设备相连;用来和系统总线相连,这部分接口电路结构类似,连在同一总线上。下图是一个典型的I/O接口和外部电路的连接图:联络信号:读/写信号,以便决定数据传输方向。地址译码器,片选信号:地址译码器除了接收地址信号外,还用来区分I/0地址空间和内存地址空间的信号(M/)用于译码过程。注:一个接口通常有若干个寄存器可读/写,一般用1-2位低位地址结合读/写信号来实现对接口内部寄存器的寻址。4输入输出的寻址方式CPU对外设的寻址方式通常有两种:(1) 存储器对应输入输出方式每一个外设端口占有存储器的一个地址。优点:CPU对外设的操作可使用全部的存储器操作指令,寻址方式多,使用方便灵活,且可寻址的外设数量多。缺点:由于外设占用了存储单元的地址,使内存的容量减小,同时,程序的可读性下降。(2) 端口寻址的输入输出方式CPU有专门的输入输出指令( IN, OUT),通过这些指令中的地址来区分不同的外设。优点:容易掌握,编出的程序可读性好。缺点:可寻址的范围较小,还必须有相应的控制线(M/)来区分是寻址内存还是外设。7.2 可编程并行接口芯片8255A一并行通信与接口并行通信就是把一个字符的各位同时用几根线进行传输。传输速度快,信息率高。电缆要多,随着传输距离的增加,电缆的开销会成为突出的问题,所以,并行通信用在传输速率要求较高,而传输距离较短的场合。Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。二8255A的编程结构8255A由以下几部分组成:见图7-31三个数据端口A,B,C 这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。2A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。 图7-3 8255A的编程结构2A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。3数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。4读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。习题与思考:1接口电路的主要作用是什么?它的基本结构如何?2说明接口电路中控制寄存器与状态寄存器的功能,通常它们可共用一个端口地址码,为什么?3CPU寻址外设端口的方式通常有哪两种?试说明它们的优缺点。4在CPU与外部设备接口电路的连接中,通过数据总线可传输哪几种信息?在这里地址译码器起什么作用?第二讲: 7.2 可编程并行接口芯片8255A回顾:接口与系统的连接, 并行通信与接口,8255A的编程结构。本讲重点:8255A的工作方式,8255A的编程及应用。讲授内容:三8255A的引脚功能引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。1面向CPU的引脚信号及功能D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;:片选,输入,用来决定芯片是否被选中;:读信号,输入,控制8255A将数据或状态信息送给CPU;:写信号,输入,控制CPU将数据或控制信息送到8255A;A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。,A1,A0这几个信号的组合决定了8255A的所有具体操作, 表7-1 8255A的操作功能表 A1 A0操 作数 据 传 送 方 式 0 0 1 0 0读 A 口A口数据 数据总线 0 0 1 0 1读 B 口B口数据 数据总线 0 0 1 1 0读 C 口C口数据 数据总线 0 1 0 0 0写 A 口数据总线数据 A口 0 1 0 0 1写 B 口数据总线数据 B口 0 1 0 1 0写 C 口数据总线数据 C口 0 1 0 1 1写控制口数据总线数据 控制口2面向外设的引脚信号及功能 PA0PA7:A组数据信号,用来连接外设; PB0PB7:B组数据信号,用来连接外设; PC0PC7:C组数据信号,用来连接外设或者作为控制信号。四8255A的工作方式8255A有三种工作方式,用户可以通过编程来设置。方式0简单输入/输出查询方式;A,B,C三个端口均可。方式1选通输入/输出中断方式;A ,B,两个端口均可。方式2双向输入/输出中断方式。只有A端口才有。工作方式的选择可通过向控制端口写入控制字来实现。 在不同的工作方式下,8255A三个输入/输出端口的排列示意图如图7-4所示。1方式0:为一种简单的输入/输出方式,没有规定固定的应答联络信号,可用A,B,C三个口的任一位充当查询信号,其余I/O口仍可作为独立的端口和外设相连。方式0的应用场合有两种:一种是同步传送;一种是查询传送。2方式1 方式1是一种选通I/O方式,A口和B口仍作为两个独立的8位I/O数据通道,可单独连接外设,通过编程分别设置它们为输入或输出。而C口则要有6位(分成两个3位)分别作为A口和B口的应答联络线,其余2位仍可工作在方式0,可通过编程设置为输入或输出。 (1) 方式1的输入组态和应答信号的功能 图7-5给出了8255A的A口和B口方式1的输入组态。 图7-5 方式1输入组态C口的PC3-PC5用作A口的应答联络线, PC0-PC2则作用B口的应答联络线,余下的PC6PC7则可作为方式0使用。应答联络线的功能如下:选通输入。用来将外设输入的数据打入8255A的输入缓冲器。IBF:输入缓冲器满。作为STB的回答信号,。INTR:中断请求信号。INTR置位的条件是STB为高且IBF为高且INTE为高。INTE:中断允许。对A口来讲,是由PC4置位来实现,对B口来讲,则是由PC0置位来实现。事先将其置位。 A口B口: PC4PC2IBF: PC5PC1INTR: PC3PC0 INTE: PC4置1 PC2置1(2) 方式1的输出组态和应答信号功能 图7-7 方式1的输出组态C口的PC3、PC6、PC7用作A口的应答联络线, PC0-PC2则作用B口的应答联络线,余下的PC4PC5则可作为方式0使用。应答联络线的功能如下:输出缓冲器满。当CPU已将要输出的数据送入8255A时有效,用来通知外设可以从8255A取数。:响应信号。作为对的响应信号,表示外设已将数据从8255A的输出缓冲器中取走。INTR:中断请求信号。INTR置位的条件是ACK为高且OBF为高且INTE为高。INTE:中断允许。对A口来讲,由PC6的置位来实现,对B口仍是由PC2的置位来实现。 A口B口:PC6PC2:PC7PC1INTR:PC3PC0 INTE:PC6置1PC2置13方式2方式2为双向选通I/O方式,只有A口才有此方式。这时,C口有5根线用作A口的应答联络信号,其余3根线可用作方式0,也可用作B口方式1的应答联络线。方式2:就是方式1的输入与输出方式的组合,各应答信号的功能也相同。而C口余下的PC0PC2正好可以充当B 口方式1的应答线,若B口不用或工作于方式0,则这三条线也可工作于方式0。(1) 方式2的组态 :PC4IBF:PC5:PC6:PC7INTR:PC3(2) 方式2的应用场合方式2是一种双向工作方式,如果一个并行外部设备既可以作为输入设备,又可以作为输出设备,并且输入输出动作不会同时进行。(3) 方式2和其它方式的组合(见书中183页) 方式2和方式0输入的组合: 控制字:11XXX01T 方式2和方式0输出的组合:控制字:11XXX00T 方式2和方式1输入的组合:控制字:11XXX11X 方式2和方式1输出的组合:控制字:11XXX10X 其中X表示与其取值无关,而T表示视情况可取1或0。五8255A的编程及应用18255A的编程对8255A的编程涉及到两个内容:写控制字设置工作方式等信息,使C口的指定位置位/复位的功能。注:均写入控制端口(1) 控制字格式控制字要写入8255A的控制口,写入控制字之后,8255A才能按指定的工作方式工作。8255A的控制字格式与各位的功能如图7-11所示。D7D6D5D4D3D2D1D0 =1 控制字标志 C口低4位 A组工作方式 1 - 输入 00 - 方式0 A口控制 0 - 输出 01 - 方式1 1 - 输入 B口控制 1x - 方式2 0 - 输出 1 - 输入 C口高4位控制 B组工作方式 0 - 输出 1 - 输入 0 - 方式0 0 - 输出 1 - 方式1 图7-11 8255A的控制字格式例1 某系统要求使用8255A的A口方式0输入,B口方式0输出,C口高4位方式0输出,C口低4位方式0输入。 则控制字为: 10010001 即91H 初始化程序为: MOV AL, 91H OUT CTRL_PORT,AL(2) C口的置位/复位功能只有C口才有,它是通过向控制口写入按指定位置位/复位的控制字来实现的。C口的这个功能可用于设置方式1的中断允许,可以设置外设的启/停等。 按位置位/复位的控制字格式如图7-12所示。D7D6D5D4D3D2D1D0 =0 控制字标志 1 - 置位 无意义 置位/复位引脚编码 0 - 复位 000 - PC0 001 - PC1 . 111 - PC7 图7-12 位置位/复位控制字格式例如在书中例2,A口方式2 要求发两个中断允许,即PC4和PC6均需置位。B口方式1要求使PC2置位来开放中断。初始化程序可补充完整如下。 MOV AL,0C4H OUT CTRL_PORT,AL;设置工作方式 MOV AL,09H OUT CTRL_PORT,AL;PC4置位,A口输入允许中断 MOV AL,ODH OUT CTRL_PORT,AL;PC6置位,A口输出允许中断 MOV AL, 05H OUT CTRL_PORT,AL;PC2置位;B口输出允许中断2接口应用举例例3 利用8255A的A口方式0与微型打印机相连,将内存缓冲区BUFF中的字符打印输出。试完成相应的软硬件设计。(CPU为8088)首先我们分析一下打印机的工作。微型打印机和主机之间的接口采用并行接口。图7-13 打印机数据传输时序表7-2 Centronics标准引脚信号引脚 名 称方向 功 能1STROBE入数据选通,有效时接收数据2-9DATA1-DATA8入数据线10ACKNLG出响应信号,有效时准备接收数据11BUSY出忙信号,有效时不能接收数据12PE出纸用完13SLCT出选择联机,指出打印机不能工作14AUTOLF入自动换行31INIT入打印机复位32ERROR出出错36SLCTIN入有效时打印机不能工作它的工作流程是:主机将要打印的数据送上数据线,然后发选通信号。打印机将数据读入,同时使BUSY线为高,通知主机停止送数。这时,打印机内部对读入的数据进行处理。处理完以后使ACK有效,同时使BUSY失效,通知主机可以发下一个数据。硬件连线如下图:说明:由PC0充当打印机的选通信号,通过对PC0的置位/复位来产生选通。同时,由PC7来接收打印机发出的“BUSY”信号作为能否输出的查询。8255A的控制字为:10001000 即88H A口方式0,输出;C口高位方式0输入,低位方式0输出PC0置位: 00000001 即 01HPC0复位: 00000000 即 00H 8255A的4个口地址分别为:00H,01H,02H,03H。编制程序如下:DADA SEGMENTBUFF DB This is a print program!,$DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATASTART:MOV AX, DATA MOV DS, AX MOV SI,OFFSET BUFF MOV AL, 88H ;8255A初始化,A口方式0,输出 OUT 03H, AL ; C口高位方式0输入,低位方式0输出 MOV AL, 01H; OUT 03H,AL ;使PC0置位,即使选通无效WAIT: IN AL, 02H TEST AL, 80H ;检测PC7是否为1即是否忙 JNZ WAIT ; 为忙则等待 MOV AL,SI CMP AL,$ ;是否结束符 JZ DONE ; 是则输出回车 OUT 00H,AL ;不是结束符,则从A口输出 MOV AL,00H OUT 03H, AL MOV AL, 01H OUT 03H,AL ;产生选通信号 INC SI ;修改指针,指向下一个字符 JMP WAITDONE: MOV AL,0DH OUT 00H,AL ;输出回车符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;产生选通WAIT1: IN AL, 02H TEST AL, 80H ;检测PC7是否为1即是否忙 JNZ WAIT 1 ; 为忙则等待 MOV AL,0AH OUT 00H,AL ;输出换行符 MOV AL, 00H OUT 03H,AL MOV AL, 01H OUT 03H,AL ;产生选通 MOV AH,4CH INT 21H CODE ENDSEND START例4 将上例中8255A的工作方式改为方式1,采用中断方式将BUFF开始的缓冲区中的100个字符从打印机输出。(假设打印机接口仍采用Centronics标准)分析:仍用PC0作为打印机的选通,打印机的作为8255A的A口,8255A的中断请求信号(PC3)接至系统中断控制器8259A的IR3,其它硬件连线同上例,如图7-15所示。图7-15 中断方式硬件连线8255A的控制字为:1010XXX0 PC0置位: 00000001 即 01HPC0复位: 00000000 即 00HPC6置位: 00001101 即 0DH ,允许8255A的A口输出中断由硬件连线可以分析出,8255A的4个口地址分别为:00H,01H,02H,03H。假设8259A初始化时送ICW2为08H,则8255A A口的中断类型码是0BH,此中断类型码对应的中断向量应放到中断向量表从2CH开始的4个单元中。主程序: MAIN: MOV AL,0A0H OUT 03H,AL ;设置8255A的控制字 MOV AL,01H ;使选通无效 OUT 03H,AL XOR AX,AX MOV DS,AX MOV AX,OFFSET ROUTINTR MOV WORD PTR 002CH,AX MOV AX,SEG ROUTINTR MOV WORD PTR 002EH,AX ;送中断向量 MOV AL,0DH OUT 03H,AL ;使8255A A口输出允许中断 MOV DI,OFFSET BUFF ;设置地址指针 MOV CX,99 ;设置计数器初值 MOV AL,DI OUT 00H,AL ;输出一个字符 INC DI MOV AL,00H OUT 03H,AL ;产生选通 INC AL OUT 03H,AL ;撤消选通 STI ;开中断NEXT: HLT ;等待中断 LOOP NEXT ;修改计数器的值,指向下一个要输出的字符 HLT中断服务子程序如下:ROUTINTR:MOV AL,DI OUT 00H,AL :从A口输出一个字符 MOV AL,00H OUT 03H,AL :产生选通 INC AL MOV 03H,AL ;撤消选通 INC DI :修改地址指针 IRET :中断返回思考:是否可以采用A口的作为打印机的选通信号?如可以的话,软件该如何修改?是否可用打印机的BUSY作为8255的A口 ?习题与思考:1试分析8255A方式0、方式1和方式2的主要区别,并分别说明它们适合于什么应用场合。2当8255A的A口工作在方式2时,其端口B适合于什么样的功能?写出此时各种不同组合情况的控制字。3若8255A的端口A定义为方式0,输入;端口B定义为方式1,输出;端口C的上半部定义为方式0,输出。试编写初始化程序。(口地址为80H83H)4假设一片8255A的使用情况如下:A口为方式0输入,B口为方式0输出。此时连接的CPU为8086,地址线的A1、A2分别接至8255A的A0、A1,而芯片的来自A3A4A5A6A7=00101,试完成8255A的端口地址和初始化程序。第一节 I/O接口的读写技术一、I/O端口的地址分配在众多的微型计算机(一般也称个人计算机)中,除了采用8088微处理器的个人计算机系统外,286以后包括PentiumIII个人计算机系统都采用和支持ISA(AT)总线标准。众所周知,Intel公司80X86微处理器组成的系统采用I/O映射编址方式,I/O端口与内存系统是分开独立编址的,共可寻址216=64K个8位I/O端口。在目前的策型计算机中主板上系统保留了1K=1024个I/O端口,1K以上(0400HFFFFH)留给用户扩展使用。应注意的是,80287协处理器使用00F8H00FFH;80386Pentium III使用8000000F8H800000FFH用于跟踪协处理器通信。访问0000H00FFH这个256个端口可使用固定端口(直接给出端口地址)指令存取访问00FFH以上的端口(超过255)仅能使用可变端口不定期访问(端口地址存于DX中)。下面给出系统板保留的1K个I/O端口的主要用途。1K个I/O端口的地址范围为0000H到03FFH,这1K个端口使用系统地址总线的A9A0,共10条地址线(210=1K)。表1为典型个人计算机中1K中系统占用的I/O端口的地址分配情况(80386Pentium III)。表1典型个人计算机的I/O端口地址分配情况I/O地址I/O设备端口I/O地址I/O设备端口0000000FDMA控制器1200207游戏口00200021中断控制器(主中断控制器)02740277ISA即插即用计数器00400043系统时钟27827F并行打印机口0060键盘控制器控制状态口2F82FF串行通信口2(COM2)0061系统扬声器0376第二个IDE硬盘控制器0064键盘控制器数据口37837F并行打印口100700071系统CMOS/实时钟3B003BBVGA显示适配器00810083DMA控制器103C003DFVGA显示适配器0087DMA控制器103D003DF彩色显示器适配器0089008BDMA控制器103F203F5软磁盘控制器00A000A1中断控制器(从中断控制器)03F6第一个硬盘控制器00C00DFDMA控制器203F803FF串行通信口1(COM1)00F000FF数值协处理器没有指明的端口,用户可以使用01700177H标准IDE/ESDI硬盘控制器01F001FF标准IDE/ESDI硬盘控制器用户在设计扩展接口时,应注意不要使用系统已占用的地址。表中没有出现的地址是最为可靠的用户可用地址,如250H26FH,330H34FH以及400H以上的端口等。要准确了解系统中使用了哪些端口,最好的方法是进入Windows95/98后,通过控制面板中的系统程序,查看I/O端口的分配。具体步骤是,先打开控制面板,然后双击其中的系统,接着选择设备管理器,选择按类型查看设备,然后选择其中的计算机,最后单击属性按钮,即可查看I/O端口的使用情况,从而确定哪些端口没有被使用。二、I/O端口的译码在微型计算机系统中,每当执行一个输入(如IN AL,DX)指令或输出(OUT DX,AL)指令,就进入输入/输出总线周期。首先是由DX指示的端口地址有效,端口地址有效使I/O端口的片选信号有效,然后使I/O的读或I/O写信号有效。端口地址通过译码逻辑输出有效的片选信号。因此片选信号有效的地址或地址范围就是该I/O端口的端码逻辑输出有效的片选信号。因此片选信号有效的地址或地址范围就是该I/O端口的端口。由于X86微型计算机系统(以Intel 8086/8088、80286、80386、80486及Pentium等系列微处理器为核心的微型计算机系统简称X86系统)中,在进行DMA操作时,也使用地址线及I/O读或I/O写控制信号。为区分DMA控制器和CPU,系统中使用AEN信号。当AEN为高电平时,为DMA控制器操作,否则为CPU操作。一般情况下,AEN可与地址线一起译码,然后用I/O读或写信号控制端口的读写,当然也可以不参加译码,与I/O读或I/O写信号结合起来控制端口的读写。I/O端口译码可利用基本门电路、专用译码器、开关式译码以及可编程逻辑器件等完成。1、采用译码器进选择地址译码如果一个扩展应用板或卡要用到多个端口,一般通过专用的译码器芯片来完成译码工作。常用的译码器有2-4译码器(如双2-4译码器74LS139)、3-8译码器(如带锁存的74LS131和不带锁存的74LS138)、4-16译码器(如高电平输出有效的4514和低电平输出有效的4515)和6-64译码器等。常用译码器的引脚如图1所示。图1 常用译码器引脚示意图例如,现要求产生250H257H共8个端口地址的译码信号,对应的地址关系如下:A9A8A7A6A5A4A3A2A1A0地址范围1001010000首地址250H1001010111末地址257H由于要产生8个端口的地址信号,因此选用3-8译码器74LS138。地址译码的方法是将3个低位地址线与3-8译码器的3个输入端相连,其他高位地址根据地址关系结合译码器的有效控制信号连接。利用部分门电路组成以使在A9=1,A8=0,A7=0,A6=1,A5=0,A4=1,A3=0,A2,A1,A0,的组合选中8个译码器的8个输出端,在组成选择信号产生电路时,注意AEN=0(非DMA操作)。译码电路如图2所示。图2 用3-8译码器产生250H到257H端口选择信号2、开关式选择端口对于某些端口地址不完全确定的场合,用上述两种方法不能适应多变的端口选择,这时可采用地址开关以改变所需的端口如74LS688等组成一个完整的端口选择电路。8位数据比较器74LS688如图3所示。74LS688的功能是,当所有的Pi=Qi(i=0,1.7)时,输出为低电平。因此,可借助于该功能,将大部分地址线与Pi或Qi端相接,地址开关的各位与另一端Qi或Pi相连。改变地址开关相应位的高低电平,就相当于改变地址线的高低电平,从而达到改变端口地址的目的。例如,在1K地址范围内产生任意8个外部设备端口的读选择信号,则采用地址开关及数据比较器如图3所示。如果要产生220H227H的读选择信号,则可使地址开关SW-DIP8的8与16脚相连,使P7=0(AEN=0),6与14、5与13、4与12、2与10以及1与9分别相连,使P5、P4、P3、P1和P0为低电平,即可使A8(Q5)、A7(Q4)、A6(Q3)、A4(Q1)、和A3(Q0)为0。其余开关位为高电平。通过改变地址开关的位置,就可以非常方便地改变为其它地址。地下范围如果改变为320H327H,地址开关的具体位置怎样,留给读者思考。图3中如果是写I/O端口,则只需将I/O读信号变成I/O写信号。图3 地址开关与数据比较器产生可选择端口示例三、端口的读写控制在进行输入输出操作中,一般来说,输入需要缓冲,输出需要锁存。输入缓冲,就是在输入时,CPU与外设之间接数据缓冲器,当读该缓冲器的控制信号有效时,才将缓冲器中的三态门打开,使外设的数据进入系统的数据总线。输出锁存是指输出操作时,CPU与外高之间接一锁存器,使有输出指令并指示该I/O端口时,才使总线上的数据进入锁存器。以后不管总线上的数据(锁存器输入端)如何变化,只要没有再次使锁存器锁存的信号有效,锁存器的输出端一直保持原来锁存的信息不变。端口读写操作的关键,除了由译码器产生片选信号外,还必须将读/写控制信号参加芯片的选通或控制。1、端口的读操作利用双向三态门74LS245作为缓冲器的读操作逻辑如图4所示。图4 读操作控制在进行输入或输出的过程中,外部设备经常有数据信息和状态信息送到CPU,这些信息已经存放在接口相应的寄存器中,通过端口的读操作即可将这些信息读入CPU。这些寄存器不能直接接到系统的数据总线上,以免长时间占用总线,而应该通过三态缓冲器接至数据总线上。只有对该寄存器占用的地址进行读操作时,才打开该数据缓冲器的三态门,将数据送到数据总线上。而其它时间,三态门处于高阻状态,不影响总线上的信息。除了内部带寄存器专用或通用接口电路中已集成了数据缓冲器外(如后面将介绍的8255、8259、8253等芯片内部都有数据总线缓冲器),常用的三态缓冲器有74LS244(单向,正逻辑)、74LS240(单向,负逻辑)以及74LS245(双向,正逻辑)等。当它们的三态门控制端有效时,三态门打开,允许数据通过,否则,三态门关闭,呈高阻状态。2、端口的写操作CPU向外部设备输出数据时就要进行写操作,写操作就是执行输出指令(如OUT)。输出操作时,通常I/O接口具有锁存功能。如果不具备锁存功能,则可另行加入锁存电路,以保证在输出时系统数据总线上的数据进入锁存器后,总线上的数据不会影响锁存输出的值,通常可有触发器或锁存器完成。如8D触发器74LS273和74LS377以及8位的锁存器74LS373等。触发器或锁存器都有一个写入控制引脚,当该引脚有写入脉冲时,才将其输入端的信息存入锁存器或触发器,其输出端才翻转到输入时的状态。利用8D触发器74LS273进行写入操作的端口如图5所示。图5 写操作控制3、利用端口的读写控制信号产生控制脉冲众所周知,当用IN或OUT进行输入或输出操作时,在总线的读控制或写控制引脚将产生一个负脉冲信号。利用这一负脉冲信号可对外部设备进行某种控制,例如读或写控制信号引脚接A/D变换器的START启动变换引脚,可以启动A/D变换等。4、用可编程器件实现端口译码和读写控制以上的译码以及端口的读写控制都采用传统的逻辑电路或时序电路完成相应的功能,这些逻辑电路或时序电路芯片都是中小规模的集成电路,使用起来简单方便。但如果控制逻辑复杂,且要求保密性能高,则一般不采用这些芯片,而采用可编程器件。可编程器件(PLD)有GAL(如16V8,20V8等)、PAL(数字电路中介绍的可编程门列)以及目前流行的PIC(可编程集成电路)和FPGA等高级可编程器件。这些可编程器件集成度较高,改变逻辑灵活多变,并具有可靠的加密功能,广泛应用于各个领域的逻辑和时器件编程,即可得到各种控制逻辑。限于篇幅,此略。5、端口读写实例图6为一个完整的I/O端口读写实例(I/O自检电路)。图6 I/O端口读写实例在图示读写实例中,对74LS273写入、读出及清除的程序段要求是先写入00H,判断是否为0,再写入0FFH,判断是否为全1,如果正确,清寄存器,否则转出错入口。汇编语言程序片段如下:TESTPORT PROC NEAR PUSH AXPUSH BXMOV DX, 240HMOV AL, 00HOUT DX, ALIN AL, DXCMP AL, 0JNZ ERRORMOV AL, 0FFHOUT DX, ALIN AL, DXCMP AL, 0FFHJNZ ERRORMOV DX, 241HOUT DX, ALJMP TRETERROR TRET: POP DXPOP AXRETTESTPORT ENDP第二节 并行接口的基本概念1. 并行通信和串行通信通信指计算机与外设、计算机与计算机间的信息交换通信的基本方法:并行通信和串行通信1) 并行通信:将数据的各位同时在多根并行传输线上进行传输。数据的各位同时由源到达目的地 快多根数据线 距离短、远程费用高并行通信适于短距离、高速通信2) 串行通信:将数据的各位按时间顺序依次在一根传输线上传输。 数据的各位依次由源到达目的地 慢数据线少 远程, 费用低串行通信适于长距离、中低速通信2. 并行接口概述l并行接口连接CPU与并行外设,实现两者间的并行通信,在信息传送过程中,起到输出锁存或输入缓冲的作用。l并行接口的典型硬件结构包括:1、一个或一个以上具有锁存或缓冲的数据端口2、与CPU进行数据交换所必须的控制和状态信号3、与外设进行数据交换所必须的控制和状态信号4、端口译码电路5、控制电路l不可编程并行接口和可编程并行接口不可编程并行接口的工作方式和功能:是由硬件接线决定,不能用软件来控制。可编程并行接口的工作方式和功能:可用软件编程的方法改变,使接口具有更大的灵活性和通用性。l在并行接口芯片中,不同的产品系列研制出与之相匹配的接口芯片。例 在80X86系列中使用8255A芯片 在Z80系列中使用Z80-PIO芯片在6800系列中使用MC6820PIA芯片一般情况下不交叉使用,因为:只有本系列的芯片才能更好地保证时序上的配合,和各种功能的发挥,使CPU可靠与外设交换信息。第三节 典型并行接口芯片8255应用一、8255A引脚、编程结构二、8255A的控制字三、8255A的工作方式1. 三种工作方式在8255A内部硬件结构中:A口和B口之间没有硬件关系,即可分别作为独立

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论