微型计算机原理与接口技术第二版刘彦文等第5章.ppt
《微型计算机原理与接口技术第二版刘彦文等第5章.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理与接口技术第二版刘彦文等第5章.ppt(133页珍藏版)》请在三一办公上搜索。
1、第5章 输 入 输 出,教学提示:微处理器同外设的连接和信息交换,是微型机系统要解决的主要问题之一。本章描述了输入输出的基础知识,包括外设接口的一般结构、I/O端口的寻址方式和数据传送的控制方式,以及PC机I/O地址空间、基本输入和输出接口等内容。另外还描述了DMA控制器8237A的结构、功能及实际应用。,教学目标:了解微处理器同外设接口交换的3种信息;清楚端口与接口的区别;了解I/O端口的编址方式。深刻理解程序控制传送方式的原理、特点及应用场合,能够编写简单的应用程序。深刻理解PC机I/O地址空间、基本输入和输出接口、地址译码器等内容。理解DMA方式数据传输的基本工作原理。熟知8237A芯片
2、内部结构以及外部引脚的连接方法;熟知8237A的4种工作方式;熟知8237A内部寄存器的作用;能够读懂并编写简单的初始化程序和应用程序。,5.1 概 述,5.1.1 接口的功能 如图5.1所示,用户可以根据自己的需要,选择不同类型的外设,配置相应的接口电路,通过接口将不同类型的外设连接到系统总线上,构成不同用途、不同规模的应用系统。,一般情况下,存储器接口电路及相应的控制比较单一,而I/O设备种类和型号繁多,相应I/O接口电路逻辑不同,控制较复杂。因此本章及后续章节接口多指I/O接口,也称为外设接口。虽然接口因外设的种类繁多而结构各异,但作为连接计算机系统总线与外部设备的桥梁,一般均有如下的功
3、能:,图5.1 CPU与外设连接示意图,1.数据缓冲功能和接口状态的表示 数据缓冲功能主要解决CPU的高速度与外设的低速度之间的矛盾,从而避免了因速度不一致而导致的数据丢失。一般在接口中通过设置数据缓冲器或锁存器解决此类矛盾,通常把具有缓冲或锁存数据能力的寄存器称为数据端口。接口从系统总线或外设接收一个数据,通过发出“准备好”联络信号,通知外设或CPU取走数据。一次数据传输完成后,接口又可发出“数据缓冲区空”信号,准备进行下一次传输。接口有向CPU提供接口状态或外设工作状态的能力。在接口电路中这些用于表示“空”、“满”、“准备好”、“忙”、“闲”等状态信号的寄存器称为状态端口。,2.接收和执行
4、CPU命令的功能 CPU对I/O设备的控制命令一般均以代码的形式发送到接口的命令寄存器,命令寄存器称为控制端口或命令端口。接口电路将这些命令代码进行识别和分析,产生若干个控制信号。这些控制信号的作用一般有两个:一是控制所连接外设的工作,二是用于设置接口的工作方式。,3.信号转换功能 因为外设所需的控制信号与外设提供的状态信号往往与微型机总线的信号不匹配,信号转换是不可以避免的。信号转换的主要内容是对信号之间的逻辑关系、时序配合以及电平匹配进行转换。,4.设备选择功能 微型机系统中可能带有多种外设,或者多台同种外设,需要CPU通过地址信号来标识和选择不同的接口。因此接口应对系统总线上传输的地址进
5、行译码,检测到本端口地址时,产生相应的“选中”信号,并按CPU的要求进行信息传输。一般情况下,端口寻址方法类似存储器的寻址方法,通过高位地址译码产生片选信号选择外设接口芯片,低位地址选择芯片内部寄存器或锁存器。,5.中断管理功能 外设需要及时得到CPU的服务,所以接口必须要有简单的中断管理功能。如:发出中断请求,提供中断类型码等。在PC机中,有些功能由专门的中断控制器实现。6.数据格式转换功能 CPU能直接处理的是并行数据,如8位、16位和32位等。而有些外设只能处理串行数据,如串行通信设备、终端机等。所以当外设使用的数据格式与CPU数据格式不同时,接口要进行两种数据格式之间的相互转换。,7.
6、可编程功能 目前接口芯片大部分是可编程的,可以用命令字或控制字来设定其工作方式、工作参数。所以在不改动硬件电路的情况下只修改相应的命令字或控制字,就可以改变接口的工作方式,大大增加了接口的灵活性和可扩充性。,8.错误检测及复位功能 许多数据传输量大、传输速率高的接口,具有检测信号传输错误的功能。常见的信号传输错误有以下两种:物理信道上的传输错误(主要由干扰造成)和数据传输中的覆盖错误(主要由数据收发不及时造成)。在数据传输的过程中接口应能及时检错和纠错。常用的检错方法有奇偶校验法、方阵码校验法和CRC冗余校验法等。同时,接口在收到系统的复位信号后,应能将接口电路和所连的外部设备置为初始状态。,
7、5.1.2 接口与端口 图5.2所示的I/O接口,称为输入/输出接口,也称为外设接口。外设接口是CPU与外设之间传送信息的一个界面、一种连接电路。外设接口一端通过系统三总线(数据总线、地址总线、控制总线)与CPU相连,另一端与外设相连并与外设交换三种信息:数据信息、状态信息和控制信息。,图5.2 I/O接口典型结构,1.数据信息 数据信息是CPU与外设接口交换信息的主要部分。外设有数字量、模拟量和开关量三种信号。接口电路将输入设备的输入信号,转变成CPU能够接收的数据信息,保存在寄存器中等待CPU读取;接口电路将CPU输出到外设的数据信息,转变成外设能够接收的信号,送往外设。,2.状态信息 状
8、态信息表明外部设备或接口当前所处的工作状态,用来协调CPU与外部设备之间的输入/输出操作。输入设备在完成一次输入操作后,发出就绪信号(READY),表明输入设备已经把数据送到接口,等待CPU给予处理。输出设备接口在接收从CPU送出的一批数据信息进行输出的过程中,发出忙信号(BUSY),表明目前接口不能接收新的数据信息。状态信息用于协调CPU与外设之间的通信。,3.控制信息 控制信息是CPU向接口发出的命令,用于控制外设及接口的工作方式以及外设的启动或停止。控制信息的格式因设备及接口而异。控制信息也可以设置接口芯片的工作方式。,数据信息、状态信息和控制信息通常都通过接口与CPU交换,这些信息分别
9、存放在外设接口的不同的寄存器中。CPU同外设之间的信息传送,实际上是CPU对接口中的寄存器进行读或写操作。接口中这些可以由CPU进行读或写的寄存器被称为端口。,按存放信息的不同类型,这些端口可以分为:“数据端口”“状态端口”“控制端口”分别存放数据信息、状态信息和控制信息。CPU通过向控制端口发送控制字,对接口工作方式进行设置。CPU访问设备是通过访问相关的端口来实现的。,5.1.3 I/O端口的编址方式 在一个外设接口中往往有多个I/O端口。将接口中的端口进行编号,将编号加上所在接口的基地址即为该端口的I/O端口地址。对I/O端口的编址有存储器映象编址和独立编址两种方式。,1.存储器映象编址
10、(存储器与I/O端口统一编址)存储器映象编址的地址空间分配如图5.3所示。这种编址方式的特点是存储器和I/O端口共用统一的地址空间,它把内存的一部分地址分配给I/O端口,一个8位端口占用一个内存单元地址。已经用于I/O端口的地址,存储器不能再使用。,图5.3 统一编址方式地址空间分配,这种编址方式的优点是:访问内存单元和I/O端口可以使用相同的指令,不需要专用的I/O指令,这有助于降低CPU控制电路的复杂性,同时可使系统变得比较灵活;I/O端口的地址空间是内存空间的一部分,其地址空间可大可小,从而使连接外设的数目几乎不受限制。但是,这种编址方式也存在着一定的缺点,即I/O端口占用内存地址,相对
11、减少了内存的可用空间;而且难以区分指令是访问内存还是访问I/O,降低了程序的可读性和可维护性。,2.独立编址(I/O端口单独编址)独立编址方式的地址空间分配如图5.4所示。这种方式的特点是内存储器和I/O端口各自有自己独立的地址空间。访问I/O端口需要专门的I/O指令。8086CPU采用这种编址方式。,图5.4 单独编址方式地址空间分配,这种编址方式的优点是:I/O端口地址码较短,译码电路较简单;存储器和I/O 端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计;指令执行速度较快。其缺点是:需要专用的I/O指令,这些指令的功能一般不如存储器访问指令丰富,导致程
12、序设计的灵活性较差。,5.2 数据传送的控制方式,计算机的各种操作中最基本和最频繁的操作是数据传送,在微型机系统中,数据传送主要在CPU、存储器和I/O接口之间进行。由于CPU与外设的工作速度相差很大,所以在CPU与外设的数据传送过程中,需要解决数据传送的控制方式,即CPU何时从输入设备读取数据以及何时向输出设备写入数据。按照I/O控制组织的发展顺序以及外设与CPU并行工作的程度,微型机系统中数据传送的控制方式主要有两种:程序控制传送方式和直接存储器存取(DMA)方式。,5.2.1 程序控制传送方式 1.无条件传送方式,图5.5 无条件传送方式电路原理图,例如:要求某数据采集系统每秒钟定时采样
13、某点的温度信号2次。温度传感器已经将温度信号转换成电信号,经过A/D转换器转变为数字量送入输入端口。当CPU读取端口数据时,端口中的温度数字量已“准备好”。若端口地址为40H,2次采集之间需要适当延时,并且读端口数据同时启动了下一次A/D转换。相应的采集程序如下:,ADSTART:MOVCL,2;置采集次数MOVBX,2000H;置存放温度值首地址LOOPAINAL,40H;取温度值 MOVBX,AL;存入内存 INCBX;修改内存偏移地址CALL DELAY;调用延时子程序 DECCL;修改采集次数 JNZLOOPA;未采完返回LOOPA继续 RET,2.查询传送方式查询传送方式也称为条件传
14、送方式。在这种传送方式下,当CPU需要与一个I/O设备进行数据传送时,它首先通过程序不断读取并测试接口的状态。如果输入设备处于准备好状态,则CPU执行输入指令从对应端口输入数据,反之CPU就等待。输出时,当输出设备处于空闲状态,CPU向该设备接口对应端口输出数据。,为此,接口电路除了有传送数据的端口外,还应有传送状态的端口。对于输入过程来说,外设将数据送到接口时,同时使接口状态端口中“准备好”标志位置1。对于输出过程来说,外设取走一个数据后,接口便将状态端口的对应标志位清零。表示当前输出寄存器已经处于“空”状态,可以接收CPU传送的下一个数据。,查询方式输入接口电路原理图见图5.6。从图中可以
15、看出:当输入设备将准备好的数据传送到接口的锁存器的同时,发出一个选通信号,该选通信号一方面将数据锁入锁存器,同时通过D触发器置1表示数据准备好。CPU在输入数据前,应先通过状态端口读取状态信息(在此系统中,使用数据总线的D0位),以便查询输入设备的数据是否准备好。若未准备好,则CPU处于等待外设的状态;如准备好,则执行输入指令,该指令同时将触发器清0,表示数据已被CPU读取。相应的汇编语言程序段如下:,LOOP1:IN AL,STATUS_PORT;读状态端口,;D0=1表示“数据就绪”TEST AL,01H;判断“数据就绪”位 JZ LOOP1;未就绪,循环读状态端口等待 IN AL,DAT
16、A_PORT;已就绪,;从数据端口读取数据,图5.6 查询方式输入接口电路原理图,图5.7表示用查询方式进行输出的接口电路工作原理图。输出传送的工作原理及编程方式与输入传送有许多的类似之处。当CPU需要向外设输出数据时,先读取状态端口中的状态位(在此系统中使用数据总线的D0位),如果状态位表明外设空闲(或不忙),则执行输出指令,向外设输出数据,否则CPU需查询等待。相应的汇编语言程序段如下:,LOOP2:IN AL,STATUS_PORT;读状态端口,D0=1表示“空闲”TEST AL,01H;判断“空闲”位JZ LOOP2;忙,再读状态端口循环等待MOV AL,DATA;空闲,取数据准备输出
17、OUT DATA_PORT,AL;将数据输出至数据端口,图5.7 查询方式输出接口电路原理图,进行多个数据的输入/输出时,每进行一次输入/输出都要首先查询它的状态字,只有当设备就绪时才可以进行数据的传输。图5.8所示为一个查询方式输入的流程图。,图5.8 查询方式输入流程图,如果系统有多个外设需要使用查询方式进行输入/输出,则可采用循环查询的方式。如假定有三个设备(A、B、C),分别用状态端口的D7、D6、D5 位表示它们的状态信息,则CPU可周期性逐个查询,测试状态端口的相应位是否准备好。其流程如图5.9(p201)所示,相应的汇编语言程序如下:,PRO:IN AL,STATUS-PORT1
18、;读设备A的状态端口 TEST AL,80H;测试状态位,;如果为0表示没准备好 JZ PROB1;没准备好,;转移去读设备B的状态端口 CALL PROAINOUT;准备好了,;调子程序进行数据交换PROB1:IN AL,STATUS-PORT2 TEST AL,40H JZ PROC1 CALL PROBINOUT,PROC1:IN AL,STATUS-PORT3 TEST AL,20H JZ INPUT1 CALL PROCINOUTINPUT1:,3.中断传送方式为了提高CPU的工作效率,同时又能及时地传送数据,可以采用中断传送方式。当CPU需要与外设进行数据传送时启动外设。在外设准备
19、数据的同时,CPU继续执行程序,此时CPU与外设并行工作。,当外设将传送数据准备好,通过接口向CPU发出中断请求信号,CPU收到中断请求信号并予以响应,CPU暂停正在执行的原程序(主程序),而转去执行中断请求对应的输入输出中断处理程序,待处理完成,CPU返回原程序继续运行。由于CPU的工作速度很快,传送一次数据(包括进入中断、退出中断程序)所需的时间很短。,图5.10 中断传送方式电路原理图,5.2.2 直接存储器存取(DMA)方式所谓直接存储器存取(Direct Memory Access,DMA)是指在存储器和外设接口之间、存储器和存储器之间直接进行数据传送(如磁盘接口与内存交换数据、高速
20、数据采集卡与内存交换数据、内存与内存的高速数据块传送等),传送过程无需CPU介入。,使用DMA方式传输时,仍然使用系统的数据总线、地址总线和控制总线。但系统总线原来由CPU或者总线控制器管理,在用DMA方式进行数据传输时,接口电路要向CPU发出申请,使CPU让出总线的控制权,交由控制DMA传输的接口电路。这个接口电路就是DMA控制器,简称DMAC。,DMAC控制DMA传输过程时,应具备如下功能:(1)当外设准备就绪,需要进行DMA操作时,通过外设接口向DMA控制器发出“DMA请求信号”。DMA控制器收到此信号后,向CPU发“总线请求”信号。CPU收到总线请求信号后,如果允许,会在当前总线周期结
21、束后,发出“总线响应”信号,同时放弃对总线的控制。这时DMA控制器开始实行对总线的控制。,(2)DMAC得到总线控制权后,要向地址总线发送地址信号。为此,DMA内部设有地址寄存器,事先由程序往此寄存器中设置DMA首地址。对于数据输入过程,向外设接口发出“I/O读”控制信号,同时向存储器发出“存储器写”信号。在这两个信号的作用下,一字节的数据从外设接口送往数据总线,而存储器从数据总线接收这个数据,写入由地址总线上的地址指定的内存单元。对于数据输出过程,情况正好相反。DMAC向存储器发读命令,向外设接口发写命令,一字节数据从存储器传送到外设接口,完成一次输出操作。,(3)传送1个字节之后,DMAC
22、自动对地址寄存器的内容进行修改,指向下一个要传送的字节。同时,为了判断DMA传送是否结束,在DMA内部必须有一个字节计数器,用来存放所传送的字节数,即数据块长度。在开始传送前,由程序设置数据块长度,在DMA传送过程中,每传送一个字节,字节计数器减1,当减到0时,DMA传送结束。,(4)一次数据传输结束,DMA控制器向CPU申请撤销“总线请求”信号,于是CPU撤销允许使用总线的“总线响应”信号,并且收回对总线的控制权。以上过程完全由硬件电路实现,速度很快。用DMA方式进行一字节数据传输所经历的时间称为“DMA周期”,大体上相当于一次总线读写周期的时间。,在DMAC的内部,为了实现内存与I/O接口
23、间传送数据,应包括如下寄存器:一个地址寄存器,存放内存和I/O交换数据时内存的起址;一个字节计数器,存放交换字节的个数;一个用于存放CPU设定DMA传输方式及各种控制信息的控制寄存器;一个用于存放DMAC当前的状态,包括有无DMA请求、是否结束等状态信息的状态寄存器。,图5.12 DMAC内部基本结构及在系统中的连接,在系统中,DMAC有如下特点:它一方面是一个接口电路,因为它也有I/O端口地址,CPU可以通过端口地址对DMAC进行读写操作,以便对DMAC进行初始化或读取状态。另一方面,DMAC在得到总线控制权后,能够控制系统总线,它可以提供一系列控制信号,像CPU一样控制外设和内存之间的数据
24、传输,此时,DMAC又不同于一般的接口电路。所以,它在系统中具有总线从模块和总线主模块双重功能。,(1)总线从模块:当CPU对DMAC进行预置参数,即向DMAC写入内存传送区的首地址、传送字节数和控制字时,DMAC相当于一个外设接口,称为总线从模块。(2)总线主模块:当进行DMA传输时,CPU暂停对系统总线的控制,DMAC取得了对总线的控制权,这时的DMAC称为总线主模块。,5.3 PC机I/O地址空间及基本输入、输出接口,5.3.1 I/O地址空间1.I/O地址空间 基于8086/8088 CPU的I/O地址空间为64KB,每个地址可以访问1字节数据,从偶地址开始相邻的两个地址中的2字节数据
25、,也可以使用1条指令访问。例如:IN AL,20H;I/O端口地址20H中的数据,读入AL,访问1字节 IN AX,20H;I/O端口20H、21H中的数据,读入AX,访问2字节;20H端口数据读入AL、21H端口数据读入AH,指定I/O端口地址的方法有2种。一种是在指令中直接给出地址,但是要求地址小于等于255;另一种是由DX内容作为地址,地址范围为065535。例如:OUT 40H,AL;AL内容输出到40H地址指定的I/O端口 MOV DX,200H;I/O端口地址为200H,送入DX OUT DX,AX;AX内容送I/O端口,地址为200H、201H的单元;AL内容送200H单元,AH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 接口 技术 第二 版刘彦文 等第
链接地址:https://www.31ppt.com/p-5293735.html