第八章基本的IO接口.ppt
第八章第八章 基本的基本的I/O接口(接口(22学时)学时)第二节第二节 中断系统(中断系统(6学时)学时)退 出 第一节第一节 接口技术(接口技术(4学时)学时)知知 识识 概概 述述 第三节第三节 DMA系统(系统(4学时)学时)第四节第四节 计数计数/定时器(定时器(2学时)学时)第五节第五节 并行接口(并行接口(2学时)学时)第六节第六节 串行接口(串行接口(4学时)学时)第七节第七节 微机接口芯片组介绍微机接口芯片组介绍第八章第八章接口:CPU与外设间的中间电路。接口的分类如下图所示:接口分类接口分类基本接口:基本接口:8259,8237,8254通用接口:通用接口:8255,8251 专用接口:键盘接口,显示器接口专用接口:键盘接口,显示器接口退 出第一节第一节 接口技术(接口技术(4学时)学时)接口设计涉及到两个基本问题:一是CPU如何寻址I/O设备,实现多个I/O设备的识别;二是CPU如何与I/O设备连接,进行数据、状态和控制 信号的交换。退 出8.1.1 接口技术的基本概念接口技术的基本概念 一、一、I/O接口的主要功能接口的主要功能 1.I/O设备选择功能;2.对输入/输出数据进行缓冲、隔离和锁存;3.对信号的形式和数据的格式进行变换;4.与CPU和I/O设备进行联络;退 出8.1.1二、二、I/O接口的典型结构接口的典型结构1内部结构内部结构 图8.1为I/O接口的典型结构。1)端口:接口电路中的寄存器。2)接口中一般设有数据口、状态口、控制口。3)对于数据口,在I/O设备输入时,保存I/O设备输入的数据;在I/O设备输出时,保存向I/O设备输出的数据。有些数据寄存器同时支持输入/输出,那是因为其内部具有输入和因为其内部具有输入和输出两个寄存器,但共用输出两个寄存器,但共用个端口地址个端口地址,随读写控制的不随读写控制的不同分别访问其中的输入或输出奇存器。同分别访问其中的输入或输出奇存器。4)通过数据总线通过数据总线,CPU从状态口中读取当前的状态,也可向控制口写入命令,以控制I/O设备的工作。退 出8.1.12.外部特性外部特性 接口引脚根据其连接的对象又分为面向面向CPU一侧的信一侧的信号和面向外设一侧的信号号和面向外设一侧的信号。对于面向CPU一侧的信号,一般都引出了数据线、地址线和控制线。因为I/O接口是连接CPU系统和外设的桥梁,所以对对其外部特性的掌握是实现其外部特性的掌握是实现I/O接口物理连接的基础,是接接口物理连接的基础,是接口是技术的一个重点口是技术的一个重点。3.接口的可编程性接口的可编程性1)“可编程”的:是指接口芯片的功能和工作方式可通过程序 设定。2)初始化程序初始化程序:对接口芯片功能和工作方式等的定义,是对接口芯片功能和工作方式等的定义,是通过向一些寄存器写入相应的信息来完成的,这样的写入通过向一些寄存器写入相应的信息来完成的,这样的写入程序一般称为接口芯片的初始化程序程序一般称为接口芯片的初始化程序。3)对可编程寄存器的掌握是学习接口技术的另一个重点对可编程寄存器的掌握是学习接口技术的另一个重点。退 出8.1.1三、三、I/O接口的编址方法接口的编址方法1.I/O接口的统一编址接口的统一编址 统一编址方式也称为存储器映象I/O寻址方式。即每一个端口占一个存储单元地址。1)这种编址方法的优点是:(1)不需要专门的I/O指令;(2)端口寻址方式也就是内存的寻址方式,有利于I/O程序的设计。2)缺点是:(1)I/O端口占用一部分存储器的地址空间;(2)在程序中不容易区分哪些指令是访问存储器、哪些指令是访问外设,所以程序不易阅读。退 出8.1.12.I/O接口的独立编址接口的独立编址 独立编址方式,就是将存储器和I/O端口建立两个完全独立的地址空间。CPU使用专门的控制信号来区分是对存储器访问还是对I/O端口进行访问。这些控制信号的产生,是由指令来控制。1)这种方法的优点是:(1)由于使用了专门的I/O指令,所以程序清晰易读;(2)又因为I/O接口的地址空间独立且般小于存储器的存储空间,所以其不占用存储器的存储空间,且地址译码电路相对简单。2)其缺点是:(1)访问端口的指令没有访问存储器的指令丰富。(2)CPU需设置专门的控制信号,区分存储器与端口访问。退 出8.1.2 输入/输出传送方式 一、程序方式一、程序方式 指用输入、输出指令,来控制信息传送的方式。1.无条件输入无条件输入/输出输出 CPU与外设交换信息时,如果输入/输出的时刻,都可以保证外设总是处于“准备好”状态,则可以直接利用输入/输出指令进行信息的输入/输出操作。其硬件实现原理图如8.2所示。假设,地址译码器的译码为380H,我们可用指令:MOV DX,380H IN AL,DX 把外设的数据输入到AL寄存器。同样,我们可用指令:MOV DX,380H OUT DX,AL 把AL的值输出外设。退 出8.1.22.条件输入条件输入/输出方式输出方式 输入/输出操作的程序流程如图8.3所示。图8.4、8.5分别给出了实现条件输入/输出方式的硬件原理图。例如,假设从某输入设备上输入一组数据送缓冲区,接口电路如图8.4,若缓冲区已满则输出一组信息“BOFFER OVERFLOW”,然后结束。设该设备的数据端口为382H,状态端口为383H。见程序 当CPU需对多个设备进行输入/输出时,就出现了所谓的优先级问题,即究竟先为哪个设备服务。一般来讲,在这种情况下都是采用轮流查询的方式来解决,如图8.6所示。退 出8.1.2二、中断方式二、中断方式1.为什么要采用中断传送方式为什么要采用中断传送方式 CPU就避免了把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大地提高。中断方式程序执行流程如所示。2.中断方式下的接口电路中断方式下的接口电路 以输入方式为例,接口电路如图8.8所示。3.中断优先级中断优先级 解决优先级的问题一般可有三种方法:软件查询法、简单硬件方法及专用硬件方法。现在通常采用专用的硬件方法,也就是用专用的芯片,如Intel8259A。其连接方法如图8.9所示。4.中断服务子程序中断服务子程序 中断服务子程序的流程如图8.10所示。退 出8.1.2三、三、DMA方式方式1.为什么要采用为什么要采用DMA方式方式 DMA数据传送,它是在内存的不同区域之间,或者在内存与外设端口之间直接进行数据传送,而不经过CPU中转的、由硬件直接控制一种数据传送方式,可以大大提高数据的传送速度。2.DMA方式下的接口方式下的接口 其接口电路如图8.11所示。3.DMA优先级优先级 与中断一样,DMA的请求判优也是由专门的芯片完成,即DMA控制器完成。4.DMA方式下的支持程序方式下的支持程序退 出第二节第二节 中断系统(中断系统(6学时)学时)8.2.1 中断的基本原理中断的基本原理 一、中断及其相关概念一、中断及其相关概念1.中断的基本概念中断的基本概念1)中断:是微处理器程序运行的一种方式。计算机在 执行正常程序的过程中,当出现某些紧急情 况,异常事件或其它请求时,处理器会暂时 中断正在运行的程序,转而去执行对紧急情 况或其它请求的操作处理。处理完成以后,CPU回到被中断程序的断点处接着往下继续 执行,这个过程称为中断。退 出8.2.12)中断的作用:第一,实现CPU与I/O设备之间的数据传送。第二,实时的硬件故障处理。第三,通过软中断指令可以使得应用程序调用操作系统的底层功能。2.中断源中断源 1)中断源:引起中断的原因或设备称为中断源。2)中断源的种类如图8.12所示。3.禁止中断与中断屏蔽禁止中断与中断屏蔽 禁止中断:中断允许触发器通过指令CLI复位,以达到禁止CPU的 INTR中断,称为禁止中断。中断屏蔽:将中断源对应的中断屏蔽触发器置1,则该中断源的中断请 求被屏蔽,称为中断屏蔽。4.中断嵌套中断嵌套 当CPU正在处理某种类型的中断时,又有级别更高的新的中断源申请中断,这时CPU就会暂停当前的中断服务程序,而转去执行新的中断处理,这种中断的处理方式就叫中断嵌套。退 出8.2.15.中断类型号和中断向量表中断类型号和中断向量表1)中断类型号:为每个中断源指定的一个8位的编号,以识别不同的中断源,这8位的编号称为中断类型号。2)中断向量:每一个中断服务程序的入口地址,称为中断向量。3)中断向量表:把系统中所有的中断向量集中起来,根据中断类型号从小到大的顺序存放到存储器的某一个区域内,这个存放中断向量的存储区称为中断向量表。8088CPU以存储器的00000003FFH共l024个单元作为中断向量的存储区,每个中断向量占用4个存储单元。CPU响应中断后,怎样从中断向量表找到该中断服务程序的中断向量呢?是通过中断类型号4得到中断向量在中断向量表中的首地址。中断类型号和中断向量所在的位置关系如图8.13所示。退 出8.2.1二、中断的过程二、中断的过程 下面以可屏蔽中断为例。CPU在INTR引脚上接到一个中断请求信号,如果此时IF1,并且,当前具有最高的优先级,CPU就会在当前指令执行完以后开始响应外部的中断请求,这时,CPU通过引脚连续发两个负脉冲,外设接口在接到第二个负脉冲以后,在数据线上发送中断类型码,CPU接到这个中断类型码后,CPU做如下操作:第一,将中断类型码放入暂存器保存;第二,将标志寄存器内容压入堆栈,以保护中断时的状态;第三,将IF和TF标志清0;第四,保护断点;第五,根据取到的中断类型码,在中断向量表中找出相应的中断向量,将其装入IP和CS,这样就实现自动转向中断服务子程序的执行;第六,中断返回。可以看出,中断的工作过程可以概括为五大步骤:即中断请求、中断判优、中断响应、中断服务和中断返回。退 出8.2.1三、三、8088的中断优先级别及对中断源的管理的中断优先级别及对中断源的管理 CPU设立的中断源的优先级别顺序如表8.1所示。8088对各中断源的管理如图8.14所示。退 出8.2.2 中断控制器8259A Intel8259A是一种可编程的中断控制器,有如下功能:可管理8个中断源电路的中断,并对其进行优先级管理;具有8级中断优先控制,通过级连可以扩展至64级优先权控制;对中断源有屏蔽或允许申请中断的操作;CPU响应中断时,能自动提供中断类型码。退 出8.2.2一、一、8259A的内部结构的内部结构 8259A的内部结构及引脚如图8.15所示,它主要由下列主要部分组成:1.数据总线缓冲器 它是8259A与系统数据总线的接口,是8位双向三态缓冲器。2.读/写控制逻辑 CPU通过它实现对8259A的读/写操作。3.级连缓冲器 用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。4.控制逻辑电路 对整个芯片内部各部件的工作进行协调和控制。退 出8.2.25.中断请求寄存器IRR 用以分别保存8个中断请求信号,当相应的中断请求输入引脚有中断请求时,该寄存器的相应位置1。6.中断屏蔽寄存器IMR 对应位用以对8个中断源的中断请求信号进行屏蔽控制。7.中断服务寄存器ISR 当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。8.优先级比较器 用以比较正在处理的中断和正在请求的中断源的优先级别,以决定是否产生中断嵌套。退 出8.2.2二、二、8259的外部引脚的外部引脚1.与CPU相连的引脚 D7D0:数据线,双向、三态。一般直接与系统的数据总线相连,用以与CPU进行信息交换。A0:奇/偶地址选择信号,输入。A00:ICW1、OCW2、OCW3 A01:ICW2ICW4、OCW1 :片选信号,输入、低电平有效。一般由系统地址总线的高位地址译码后形成,决定了8259A的端口地址范围。:写控制信号,输入、低电平有效。一般与系统控制总线的 相连。退 出8.2.2 :读控制信号,输入、低电平有效。一般与系统控制总线的 相连。INT:中断请求信号,输出、高电平有效。一般与CPU的INTR相连,用以向CPU发出中断请求。:中断响应信号,输入、低电平有效。一般与CPU的 相连,在CPU发出第二个 时,8259A将其中最高级别的中断请求的中断类型码传送给CPU。2.与外设相连的引脚与外设相连的引脚 IR7IR0:8个中断请求信号,输入,有效电平由程序设定。退 出8.2.22.与外设相连的引脚与外设相连的引脚 IR7IR0:8个中断请求信号,输入,有效电平由程序设定。3.其它引脚其它引脚 CAS2-CAS0:级连信号。当8259A为主片时,为输出;当8259A为从片时,为输入。与 信号配合,实现芯片的级连,这三个引脚信号000111的不同组合,刚好对应于8个从片号。:从片开启/缓冲信号,这是一个多功能引脚。在非缓冲方式下,为输入,若8259A在系统中作从片使用,则 =0;主片则 =1;在缓冲方式下,为输出,用作8259A外部数据总线缓冲器的启动信号。+5V、GND:电源和接地引脚。退 出8.2.2三、三、8259可编程寄存器可编程寄存器1.8259的初始化字的初始化字1)ICW1字 8259A开始必定写入的是ICW1,由引脚A0=0和ICW1内的D4=1确定。ICW1的格式如图8.16所示。2)ICW2字中断类型号 是8259A必定写入的字,由引脚A0=1确定。其格式如图8.17所示。3)ICW3字级连控制字 是8259A可选写入字,由引脚A0=1确定。该命令字仅用于级连方式,对主片和从片都必须写人ICW3,但两者含义不同。对于主8259A芯片,ICW3的格式如图8.18所示,从片8259A的格式如图8.19所示。退 出8.2.2 4)ICW4字格式中断方式字 是8259A可选写入字,由引脚A0=1和D7D5=000确定。只有当ICW1中的D01时才需要设置,其格式如图8.20所示。8259A作为中断控制器 D2:M/S位,主/从选择位。在缓冲方式下,若D2=1,则表示为主8259A;若D2=0,则表示为从8259A。在非缓冲方式下,该位无效。D3:BUF位,设定8259是否工作于缓冲方式。若D3=1,则8259A工作于缓冲方式;若D3=0,则8259工作于非缓冲方式。D4:SFNM位,嵌套方式选择为。若D4=1,则8259工作于特殊的全嵌套模式;若D4=0,则工作于普通的全嵌套模式。普通全嵌套方式 特殊全嵌套方式退 出8.2.22.8259的操作命令字的操作命令字1)OCW1中断屏蔽控制字 OCW1是中断屏蔽操作命令字,由引脚A0=1确定,格式如图8.21所示。2)OCW2中断结束和优先级循环控制字 OCW2用来设置非自动中断结束和优先级循环方式的操作命令字,由引脚A0=0及D4D3=00确定,格式如图8.22所示。3)OCW3屏蔽和读状态控制字 OCW3由A0=0及D4D3=01确定。其格式如图8.23所示。D1D0:为读命令。D1D0=11,表示读中断服务寄存器;D1D0=10,表示读中断请求寄存器;D1=0,D0无意义。D2:决定8259A是否设置为查询工作方式。查询字的格式如图8.24 所示。D6D5:决定8259A是否设置为特殊屏蔽模式命令。若D6D5=11,则 为设置特殊屏蔽模式命令;若D6D5=01,则为撤消特殊屏蔽 模式、返回普通屏蔽模式命令;若D6=0,则D5无意义。退 出8.2.2四、四、8259A的实例应用的实例应用 我们可以认为,现在微机系统中断控制器的连接原理如图8.25所示。这里,主片的端口地址仍为20H、21H,从片的端口为A0H、A1H。见BIOS中初始化主片8259A的程序。需要注意,主、从片8259都采用的是普通的EOI方式,对于从片提出的中断,其服务程序返回前应发两个EOI命令,一个给从片8259,一个给主片8259:MOVAL,20H OUT 0A0H,AL OUT 20H,AL退 出8.2.22.主片中断子程序的编程举例主片中断子程序的编程举例下面给出的程序是PC机中的日时钟中断子程序,也就是主8259的IR0中断子程序。它占用的是外部中断的最高优先级,每隔(1/18.2)s时间自动产生一次中断请求。;数据段DATA,段地址为0040H,其中包括有关的伪指令:wTimer_lowDW?;地址为0040:006CHwTimer_highDW?;地址为0040:006EHbTimer_oflDB?;地址为0040:0070HbMotor_statusDB?bmotor_countDB?eoiEQU20H;中断子程序(见连接)退 出8.2.23.从片中断子程序的编程举例从片中断子程序的编程举例 下面我们通过系统保留的中断源IR9展示从片中断子程序的编写方法。IR9系统保留给用户,其信号线接到了系统总线的引脚B4,下面我们利用该中断源,通过图8.26设计的电路,向CPU提出中断请求,CPU响应中断后显示“Interrupt was acknowledged!”。所以8086 PC机的可屏蔽中断服务程序的设计主要有两个方面。第一,根据8259中断输入线对应的中断类型码,将中断服务程序的入口地址填入中断向量表;第二,向8259写入操作命令字对中断屏蔽与中断结束进行处理(初始化字系统已设置)。实现程序(见连接)退 出8.2.3 32位机的中断系统 32机的中断系统的逻辑结构仍然采用主、从两片8259相连的结构,但实模式下与保护模式下中断的处理过程有很大的差别。一、一、32机实模式下的中断机实模式下的中断 在实模式下,32机的中断处理过程与16机是一样的,仅仅在于种类的增多,如图8.27所示。退 出8.2.3二、二、32机保护模式下的中断机保护模式下的中断 保护模式下的中断机理与实模式中断机理的本质和目的是一致的,指令的格式也完全一样,但中断的处理过程差别很大。第一,保护模式下用中断门对应实模式下的中断向量,数量仍然是256个,每个中断门用一个描述符来表示。第二,保护模式下用中断描述符表对应实模式下的中断向量表。第三,实模式中断服务入口地址寻址空间限制在最低端的1MB之内,只需一次性查找中断向量表就直接获取了中断服务程序的入口地址。保护模式中断子程序的入口地址寻址空间没有限制,需要通过2次查表才能得到中断子程序的入口地址,提高了系统的安全性,图8.28描述了实模式下与保护模式下中断子程序入口地址的寻址过程。退 出第三节第三节 DMA系统(系统(4学时)学时)8.3.1 DMA的基本原理的基本原理 退 出 图8.29是实现DMA传送的基本原理图,DMA传送的基本过程如下:第一,当IO接口准备好,希望进行DMA操作时,就向DMAC发出DMA请求信号DRQ;第二,DMA控制器将此请求信号转变成对CPU的总线请求信号HRQ;8.3.1 退 出 第三,CPU当前总线周期执行结束,响应DMA请求,发出总线应答信号HLDA,此时,由DMA控制器接管对总线的控制。第四,由DMA控制器对存储器寻址,并发出相应控制信号(DACK、及 ),使存储器与IO接口之间直接交换数据。第五,在传送一字节数据后,DMAC自动修改存储器地址和传送字节计数器,并检测传送是否结束。第六,DMA传送结束,DMA控制器向CPU发出结束信号,并释放总线,使CPU重新获得总线控制,恢复正常工作。8.3.2 DMA控制器控制器8237A 其主要功能如下:在一个片子中有4个独立的DMA通道。每个通道的DMA请求都可以分别允许和禁止。每个通道的DMA请求有不同的优先权。优先权可以是固定的,也可以是循环的,由编程决定。每个通道一次传送的最大长度可达64KB。可以用级连的方法扩展通道数。一、一、8237A的内部结构的内部结构 8237A的内部结构由以下三个基本部分组成:控制逻辑单元、缓冲器组和内部寄存器,其内部结构与引脚如图8.30所示。退 出8.3.2 1.控制逻辑单元控制逻辑单元 定时和控制逻辑单元。命令控制逻辑。优先权控制逻辑。2.缓冲器组缓冲器组 缓冲器组包括两个双向缓冲器和一个输出缓冲器,通过这三个缓冲器把8237A的数据线、地址线和系统总线相连。3.内部寄存器内部寄存器 8237A内部寄存器共有12个,分为两大类:类是控制或状态寄存器,另一类是地址寄存器和字节计数器,如表8.2所示。退 出8.3.2 1.基地址寄存器、当前地址寄存器 这两个寄存器都用来存放DMA操作时将要访问的存储器的地址,是16位的寄存器,每个通道都有。2.基字节计数器、当前字节计数器 这两个计数器都用来存放DMA传送时传送的字节数。是16位计数器,每个通道都有。3.暂存寄存器 在存储器到存储器的传送方式下,该寄存器保存从源存储单元读出的数据,再由它写到目的存储单元。退 出8.3.2 二、二、8237A的外部引脚的外部引脚 1.与与CPU相连的引脚相连的引脚 D7D0:数据线,双向、三态。有两种不同的使用情况,第一种是在8237A空闲时,即CPU控制总线时,提供CPU访问8237A寄存器的数据通道;第二种是在进行DMA操作时,即DMAC控制总线时,提供访问存储器高8位地址A15A8,并由ADSTB信号将这些地址信息锁存入地址锁存器。A3A0:低8位地址线的低4位,双向、三态。有两种不同的使用情况,第一种是在CPU控制总线时,8237作为一般I/O接口,此时为输入,作为选中8237A内部寄存器的地址选择线。第二种是8237A进行DMA操作时,A3A0为输出,作为选中存储器的低4位地址。A7A4:低8位地址线的高4位,三态、输出。A7A4仅用在8237A进行DMA操作时,提供访问存储器低字节的高4位地址。退 出8.3.2 :片选信号,输入、低电平有效。:存储器读信号,输出、三态、低电平有效。:存储器写信号,输出、三态、低电平有效。:I/O读信号,双向、三态、低电平有效。在8237为从态时,它为输入控制信号,CPU利用它读出8237A内部寄存器。在DMA为主态时,它为输出控制信号,与 配合实现DMA写操作。:I/O写信号,双向、三态、低电平有效。在DMA为从态时,它为输入控制信号,CPU利用它把数据写入8237A内部寄存器。在DMA为主态时,它为输出控制信号,与 配合实现DMA读操作。HRQ:请求占用总线信号,输出、高电平有效。HLDA:同意占用总线信号,输入、高电平有效。退 出8.3.2 2.与外设相连的引脚与外设相连的引脚 DREQ3DREQ0:DMA请求信号,输入、有效电平可由工作方式命令字确定。DACK3DACK0:DMA响应信号,输出、有效电平可由工作方式命令字确定。一般利用该信号选中某端口,一般利用该信号选中某端口,实现实现I/O存储器的传送。存储器的传送。3.其它引脚其它引脚 CLK:时钟信号,输入。RESET:复位信号,输入、高电平有效。READY:准备好信号,输入、高电平有效。AEN:地址允许信号,输出、高电平有效。DMA操作时,AEN=1;CPU控制总线时,AEN=0。ADSTB:地址选通信号,输出、高电平有效。退 出8.3.2 :过程结束信号,双向、低电平有效。作为输出,在DMA传送期间,当字节数计数器减至0时,使EOP引脚变为低电平,表示DMA传送结束;作为输入,当EOP端输入一个低电平时,强迫DMA操作停止,并使内部寄存器复位。VCC、GND:电源和接地引脚。三、三、8237A可编程寄存器可编程寄存器 1.方式字方式字 方式字格式如图8.31所示。D1D0:通道选择位。D3D2:传输类型选择位。DMA传送 退 出8.3.2 D4:自动预置功能选择位。当D4=1时,允许自动预置。当D4=0时,禁止自动预置。D5:地址增减选择位。D5=1,每传送一个字节,当前地址寄存器的内容减l,D5=0,当前地址寄存器的内容加l。D7D6:方式选择位。单字节传送方式 块传送方式 请求传送方式 级连传送方式退 出8.3.2 2.命令字命令字 命令字是在初始化时写入8位命令寄存器,4个通道共用,各位定义如图8.32所示。D0:允许或禁止存储器至存储器的传送操作。D0=1时,允许存储器至存储器的传送。D0=1时,禁止存储器至存储器的传送。D1:设定在存储器至存储器传送过程中,源地址保持不变或改变。当D1=0时,传送过程中源地址是变化的。反之,当D1=1时,在整个传送过程,源地址保持不变。当D0=0时,不允许存储器至存储器传送,则D1位无意义。D2:允许或禁止8237工作的控制位。D3:时序类型选择位。D3=0时为普通时序。D3=1时为压缩时序。D4:优先权方式选择位。D4=0,采用固定优先级;D4=1,采用循环优先级。退 出8.3.2 D5:扩展写信号选择位。D5=1,为扩展写信号时序,它使 或 的负脉冲加宽,提前一个时钟周期有效,即与读控制信号同时有效。D5=1,为滞后写时序,或 比 或 滞后一个时钟周期有效。D6:用来选择DMA请求信号DREQ的有效电平。D7:用于选择DMA响应信号DACK的有效电平。3.请求字请求字 DMA请求可以由I/O设备产生DREQ信号,也可以由软件产生。请求寄存器就是用于由软件来产生DMA请求。存储器到存储器的传送,一般利用软件产生DMA请求。软件请求是不可屏蔽的,其格式如图8.33所示。退 出8.3.2 4.屏蔽字 屏蔽字记录了各通道的DMA请求是否被允许,各位的定义如图8.34所示。5.状态字 状态字的格式如图8.35所示。四、8237A的应用实例 1.现行微机系统中的DMA系统的逻辑结构 在PC机中,有两个8237A DMA控制器,采用主、从结构形式相连,共有7条通道。其使用定义如表8.2所示,其在16机系统中的结构简图如图8.36所示。DMA系统中用于事先锁存高位地址的锁存器称为DMA页面寄存器,其端口号如表8.3所示。退 出8.3.2 2.PC机中编程举例机中编程举例 PC机中DMA通道2专用于软盘的读写操作,在ROM-BIOS中有一段对该通道的初始化程序,该程序名为DMA-SETUP,它被软盘读、软盘写和软盘校验等程序调用。在磁盘格式化时所使用的每扇区字节数已存于磁盘基区DISK-BASE的第3号单元,03号单元的数为03,对应每扇区的字节数分别如下:0128B/扇区 1256/扇区 2512/扇区 3 1024/扇区退 出8.3.2 DMA-SETUP的入口参数归纳如下:入口参数:AL=DMA通道2的方式控制字 4AH通道2、DMA读、单一传送(写 软盘)46H通道2、DMA写、单一传送(读 软盘)42H通道2、DMA校验、单一传送 (校验软盘)DHDMA传送的扇区数 出口参数:CY=1操作不成功 CY=0操作成功 源程序退 出第四节第四节 计数计数/定时器(定时器(2学时)学时)计数、定时是计算机系统工作不可缺少的功能。主板上的8254除了形成日内计时的信号之外,还为存储器刷新产生定时信号和为主机板上的扬声器提供可编程的声频信号。退 出8.4.1 定时技术定时技术 在计算机系统中经常要用到定时信号。一般说,定时信号可用软件和软硬件相结合两种方法来获得。软件的方法:是通过编程,利用执行一条指令所需时钟数,统计执行一段程序花费的时钟数,乘以一个时钟周期的时间,就得到定时的时间。软件硬件相结合方法:其主要思想是根据需要的定时时间,用指令对计数/定时器设置定时常数,并用指令启动计数/定时器,即到定时值时,便产生一个定时输出。退 出8.4.2 计数计数/定时器定时器8254 8254是Intel公司为解决与微处理器系统设计有关的公共时间问题而设计的计数/定时器器件,24引脚双列直插式封装,其主要功能如下:三个独立16位计数器;每个计数器可按二进制或十进制编程;每个计数器可编程6种不同的工作方式;每个计数器计数频率最高为10MHZ;可读回状态。退 出8.4.2 一、一、8254的内部结构的内部结构 8254的内部结构及外部引脚如图8.37所示。1.数据总线缓冲器 2.读写控制逻辑 3.计数通道 8254有3个相互独立的同样的计数电路,分别称作计数器0、计数器1和计数器2。计数器的结构如图8.38所示。退 出8.4.2 二、二、8254的外部引脚的外部引脚 1.与与CPU相连的引脚相连的引脚 D7D0:数据线,双向、三态。:读信号,输入、低电平有效。:写信号,输入、低电平有效信号。:片选信号,输入、低电平有效。A1、A0:地址线,输出。这两根线连接到地址总线的A1、A0上,以选中8254内部的寄存器,对它们进行读写操作。A1、A0与8254内部寄存器的关系如表8.4所示。退 出8.4.2 2.与外设相连的引脚与外设相连的引脚 CLK:计数时钟,输入。GATE:门控信号,输入、有效电平可分成电平控制和上升沿控制两种类型。OUT:计数结束信号,输出。当计数器计数到0时,在OUT引脚必定有输出。在不同的模式下,可输出不同电平的信号。方式字的具体格式如图3.39所示。D0:BCD位。该位用来设置装入初值寄存器数的格式,是BCD码数还是二进制数。D3D2D1:M2M1M 0。用来选择计数器以下六种工作方式中的一种。方式0计数结束产生中断 方式1可重触发的单稳触发器退 出8.4.2 方式2分频器 方式3方波发生器 方式4软件触发选通 方式5硬件触发选通 D5D4:RW1RW0指明要写入的控制字是哪一个计数器的控制寄存器。2.读回命令字读回命令字 其格式如图8.46所示。3.状态寄存器状态寄存器 其格式如图8.47所示。D5D0:反映方式控制字所规定的计数其编程方式。D6:NULL COUNT,无效计数位。NULL COUNT=1,表示无效计数值;NULL COUNT=0,表示可读计数值。D5:反映了该计数器OUT引脚的现行状态。退 出8.4.2 四、四、8254的实例应用的实例应用 在PC机中,以8254定时/计数器构成的定时逻辑结构框图如图8.42所示。PC机系统分配了4个I/O端口地址0040H0043H。三个通道的时钟输入CLK端的频率均为1.19318MHz,三个通道分别在PC机中的作用如下:1)通道0 通道0是一个系统计时器。从图8.48可以看出,中断0每隔55ms产生一次中断,系统利用这个计时器完成日历时钟计数、控制软盘驱动器读写操作后的电动机自动延时停机以及为用户提供INT 1CH定时中断调用。见初始化程序退 出8.4.2 2)通道1 定时器通道1时专门为系统的动态存储器刷新设置的。假设刷新时间为15.6s,见其初始化程序 3)通道2 PC机这个定时通道的功能是驱动系统机箱内的声频扬声器。将计数器2编程为方式3,作为方波发生器输出约为1kHz的方波,经滤波驱动后推动扬声器发声。见初始化程序 退 出第五节第五节 并行接口(并行接口(2学时)学时)8.5.1 并行接口概念并行接口概念 计算机系统的信息交换有两种形式:并行数据传输方式和串行数据传的方式。并行数据传输是以计算机的字长,通常是8位、16位或32位为传输单位,一次传送个字长的数据。并行接口的“并行”含义不是指接口与系统总线一侧的并行数据而言,而是指接口与I/O设备或控制对象一侧的并行数据线。退 出8.5.2 并行接口并行接口8255 8255A是为Intel公司的微处理器配套的通用可编程并行接口芯片,其基本功能如下:8255A接口芯片有3个8位并行输入/输出端口,可利用编程方法设置3个端口是作为输入端口还是作为输出端口;8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送,查询方式传送,中断方式传送。与此相应,8255A设置了方式0、方式1以及方式2。8255A的C口比较特殊,除作数据口外,在工作方式1和2下,它的部分信号线被分配作专用的联络应答信号。退 出8.5.2 一、一、8255的内部结构的内部结构 8255A的内部结构机外部引脚如图8.49所示,它包括四个部分:数据总线缓冲器,读写控制逻辑,A组和B组控制电路。1.数据总线缓冲器 2.读写控制逻辑 3.A组和B组控制 A和端口C的高4位(PC7PC4)构成A组,由A组控制部件来对它进行控制;端口B和端口C的低4位(PC3PC0)构成B组,由B组控制部件对它进行控制。退 出8.5.2 二、二、8255的外部引脚的外部引脚 1.与与CPU相连的引脚相连的引脚 D7D0:数据线,双向、三态。:读信号,输入、低电平有效。:写信号,输入、低电平有效信号。:片选信号,输入、低电平有效。A1、A0:地址线,输出。A1、A0与8255内部寄存器的关系如表8.5所示。退 出8.5.22.与外设相连的引脚与外设相连的引脚 PA7PA0:A端口数据信号引脚 PB7PB0:B端口数据信号引脚。PC7PC0:C端口数据信号引脚。3.其它引脚其它引脚 RESET:复位信号,输入、高电平有效。VCC、GND:电源和接地引脚。三、三、8255的可编程寄存器的可编程寄存器1.8255的方式控制字的方式控制字8255A的工作方式控制字格式和各位的含义如图8.50所示。A组有三种工作方式,而B只有两种工作方式。方式0基本的输入/输出方式 方式1选通式输入/输出 方式2双向选通输入/输出方式退 出8.5.2 2.C口置位/复位控制字 8255A的C口置位/复位控制字的格式如图8.56所示。其中,D6D5D4位无意义。3.C口的状态字 图8.57给出三个状态字的格式。四、8255的实例应用 IBM PCXT使用一片8255A管理键盘、控制扬声器和输入系统配置开关DIP的状态等,其连接电路如图8.58所示。A口在加电自检时为输出,输出当前检测部件的标志信号。正常工作时为输入,用来读取键盘扫描码。B口工作于输出方式,用于键盘的管理、RAM和IO通道检验以及扬声器的启动和控制。C口为输入方式,高4位为状态测试位,低4位用来读取系统板的系统配置开关D1P状态。在PC/XT机中,DIP开关的设定状态与意义如图8.59所示。现在以ROM-BIOS初始化部分的读系统配置开关的一段程序来说明8255A的编程应用。退 出第六节第六节 串行接口(串行接口(4学时)学时)在串行通信中引出了一系列的约定和概念。双方约定以何种速率进行数据的发送和接收(波特率);约定采用何种数据格式(帧格式),如果包含控制信息,其定义是什么;接收方如何得知一批数据的开始和结束(帧同步);接收方如何从位流中正确地采样到位数据(位同步);接收方如何判断收到数据的正确性(数据校验);收发出错时如何处理(出错处理)。退 出3.6.1 串行通信的基本概念串行通信的基本概念8.6.1 一、异步通信一、异步通信 串行的异步通信是以字符为单位进行传输。其传输字符格式如图8.60所示。1.帧格式帧格式 例如用ASCII编码,字符为7位加1个奇偶校验位,一个起始位,以及一个停止位,共10位。如图8.61表示了传送D字符的ASCII码波形0010001。2.波特率波特率 波特率即数据送速率的约定,对于CPU与外界的通信是很重要的。假如数据传送的速率是120字符/s,而每一个字符如上约定包含10个数据位(b),则传送的波特率为:12010=120(b/s)退 出8.6.1 二、同步通信二、同步通信 同步通信的信息格式:一帧同步信息包括由固定长度(如200个)的字符组成的一个数据块,其中每个字符也由58位组成,在数据块的前面置有12个同步字符,最后是错误校验字符。如图8.62所示。三、传输模式三、传输模式 1.单工传送单工传送 2.半双工半双工 3.全双工全双工 如图8.63退 出8.6.1 四、传送速率四、传送速率 1.传送速率:是指每秒钟传送的二进制位数,也称为波特率。2.发送时钟和接收时钟的频率和波特率之间有如下关系:发送/接收时钟频率M波持率 式中M叫做波特率系数或波特率因子。3.串行接口直接传送串行信息的最大距离与传输速率及传输线的电气特性有关,如图8.64所示。五、信号的调制与解调五、信号的调制与解调 计算机的通信要求传送数字信号,而在进行远程数据通信时,通信线路大多数借用电话线传送。为此,在发送时需要将数字信号(二进制信号)调制成适合在电话线上传输的音频信号。在接收时,需要解调还原成数字信号,如图8.65所示。退 出8.6.2 串行接口8251 可用于同步和异步通信。同步传送:58位字符,可内或外同步,自动插入同步字符。异步传送:58位字符,时钟速率可为通信速率的