数字量输入输出接口

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第5章数字量输入/输出接口5.1概述一、接口电路的分类和功能外设必须通过接口电路与CPU相连接数据总线控制总线地址总线接口电路外部设备数据线控制线状态线5.1.2I/O接口接口电路的功能:1)缓冲锁存数据2)地址译码3)传递命令4)码制转换5)电平转换接口电路按通用性分为两类:通用接口和专用接口通用接口:可供多种外部设备使用的标准接口,目的是使微机正常工作通用接口通常制造成集成电路芯片,称为接口芯片。最初的IBM-PC使用了6块接口芯片:8284、8288、8255、8259、8237、8253后来的微机将这些芯片集成为大规模集成电路芯片,称为芯片组。如82430TX芯片组,由两片芯片组成:北桥:82439TX南桥:82371AB接口电路的基本结构接口电路通常包含一组能够与处理器交换信息的寄存器,称为I/O端口寄存器,简称为I/O端口1)数据端口——存放数据信息2)状态端口——存放状态信息,(忙、空闲、准备好等机器状态)即反映外设当前工作状态的信息3)控制端口——存放控制信息(启动、停止等动作)状态信息与控制信息可以广义地看作数据信息,因此可以通过数据总线传送数据信息分数据量、模拟量和开关量三类。接口电路组成5.1.3I/O端口及其编址方式一、I/O端口和I/O操作1.I/O端口端口(port)是接口电路中能被CPU直接访问的寄存器的地址。CPU通过这些地址即端口向接口电路中的寄存器发送命令,读取状态和传送数据,因此,一个接口可以有几个端口,如命令口、状态口和数据口,分别对应于命令寄存器、状态寄存器和数据寄存器。I/O操作通常所说的I/O操作是指对I/O端口的操作,而不是对I/O设备的操作,即CPU所访问的是与I/O设备相关的端口,而不是I/O设备本身。端口地址编址方式对上述端口有两种编址方式:一种是端口地址和存储器地址统一编址,即存储器映射方式;另一种是I/O端口地址和存储器地址分开独立编址,即I/O映射方式。1.统一编址这种方式,是从存储器空间划出一部分地址空间给I/O设备,把I/O接口中的端口当作存储器单元一样进行访问,不设置专门的I/O指令,有一部分对存储器使用的指令也可用于端口。2.独立编址这种方式是接口中的端口地址单独编址而不和存储空间合在一起,大型计算机通常采用这种方式,统一编址优点:1、由于对I/O设备的访问是使用访问存储器的指令,所以指令类型多,功能齐全,这不仅使访问I/O端口可实现输入/输出操作,而且还可对端口内容进行算术逻辑运算,移位等等;2、另外,能给端口有较大的编址空间,这对大型控制系统和数据通信系统是很有意义的。这种方式的缺点是端口占用了存储器的地址空间,使存储器容量减小,另外指令长度比专门I/O指令要长,因而执行速度较慢。独立编址主要优点是:1、I/O端口地址不占用存储器空间;使用专门的I/O指令对端口进行操作,I/O指令短,执行速度快。2、并且由于专门I/O指令与存储器访问指令有明显的区别,使程序中I/O操作和存储器操作层次清晰,程序的可读性强。3、同时,由于使用专门的I/O指令访问端口,并且I/O端口地址和存储器地址是分开的,故I/O端口地址和存储器地址可以重叠,而不会相互混淆。I/O端口与存储单元统一编址(51单片机)•I/O端口独立编址(INTEL86系列)1、地址相互独立2、控制信号不同独立编址方式的端口访问1.I/O指令中端口地址的宽度IBM-PC系列采用I/O指令访问端口。实现数据的I/O传送。在I/O指令中可采用单字节地址或双字节地址寻址方式。若用单字节地址作为端口地址,则最多可访问256个端口。是直接在指令中给出端口地址,其指令格式为INAL,PORT;输入OUTPORT,AL;输出这里,PORT是一个8位的字节地址。若用双字节地址作为端口地址,则最多可寻址216=64K个端口。采用双字节地址,并且是用寄存器间接给出端口地址,地址总是放在寄存器DX中。其指令格式为MOVDX,xxxxHINAL,DX;8位传送MOVDX,xxxxHOUTDX,AL;8位传送这里,xxxxH为16位的两字节地址。I/O端口访问所谓对端口的访问就是CPU对端口的读/写。而通常所说的微处理器CPU从端口读数据或向端口写数据,仅仅是指I/O端口与CPU的累加器之间的数据传送,并未涉及数据是否传送到存储器(RAM)的问题。例如:输入时MOVDX,300H;I/O端口INAL,DX;从端口读数据到ALMOV[DI],AL;将数据从AL存储器输出时MOVDX,301H;I/O端口MOVAL,[SI];从内存取数到ALOUTDX,AL;数据从Al送端口I/O端口地址分配对于接口设计者来说,搞清楚系统I/O端口地址分配十分重等。因为要把新的I/O设备加入到系统中去就要在I/O地址空间中占一席之地。哪些地址已分配给了别的设备,哪些是计算机制造商为今后的开发而保留的,哪些地址是空闲的,了解了这些信息才能为我所用。下面以IBM-PC系列为例来分析I/O端口地址分配情况。不同的微机系统对I/O端口地址的分配是不同的。PC微机是根据上述I/O接口的硬件分类,把I/O空间分成两部分。虽然,PC微机I/O地址线可有16根,对应的I/O端口编址可达64K,但由于IBM公司当初设计微机主板及规划接口卡时,其端口地址译码是采用非完全译码方式,即只考虑了低10位地址线AOA9,而没有考虑高6位地址线A10A15,故其I/O端口地址范围是0000H03FFH,总共只有1024个端口,并且把前512个端口分配给了主板,后512个端口分配给了扩展槽上的常规外设。I/O端口地址选用的原则只要设计I/O接口电路,就必然要使用端口地址。为了避免端口地址发生冲突,在选用I/O端口地址时要注意:①凡是被系统配置所占用了的地址一律不能使用;②原则上讲,未被占用的地址,用户可以使用,但对计算机厂家申明保留的地址,不要使用,否则,会发生I/O端口地址重叠和冲突,造成用户开发的产品与系统不兼容而失去使用价值;②一般,用户可使用300~31FH地址,用户可以使用。但是,由于每个用户都可以使用,所以在用户可用的这段I/O地址范围内,为避免与其他用户开发的插板发生地址冲突,最好采用地址开关。I/O端口地址译码CPU为了对I/O端口进行读写操作,就需确定与自己交换信息的端口(寄存器),那么,是通过什么媒介把来自地址总线上的地址代码翻译成为所需要访问的端口(寄存器)的,这就是所谓的端口地址译码问题。这个“媒介”就是I/O地址译码电路。5.1.4I/O的控制方式1.程序传送方式2.中断传送方式3.DMA传送方式无条件传送程序查询传送(条件传送)一、程序传送方式(一)无条件传送CPU与外设间的数据交换在程序控制下进行不查询外设状态,认为外设已经准备就绪,直接与外设传送数据外设准备就绪:对于输入设备,已经把数据放入接口电路的数据输入寄存器,CPU可以读取;对于输出设备,已经准备好接收数据(接口电路的数据输出寄存器已空),CPU可以向它输出数据由于不查询外设状态,接口电路不需要状态寄存器输入方式输出方式INAL,0A0HOUT0A1H,ALA1A0CE例:采用同步传送系统•查询式输入接口电路数据端口状态端口D7D6D0D78位1位状态口数据口I/O控制线控制线Poll:Inal,S_portTestal,80hJzpollInal,D_port(二)条件传送•查询式输出接口电路Poll:Inal,S_portTestal,80hJnzpollmoval,storeOutD_port,al状态口数据口I/O控制线控制线例:采用查询方式传送的数据采集系统Start:movdl,0f8h;1111,1000启动A/D转换leadi,detor;输入数据存放地址Again:moval,dl;andal,0efh;∧1110,1111,AL=1110,1000out[4],al;停止A/D转换,并选择模拟量A0calldelay;moval,dl;AL=1111,1000out[4],al;启动A/D转换poll:inal,[2];输入状态信息shral,1;jncpoll;若未Ready,等待inal,[3];否则,输入数据stosb;将数据存入内存incdl;取下一个模拟量jneagain;状态端口数据口状态口控制口A7~A0D0程序查询传送的小结在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输出时,状态寄存器的状态指示输出设备是否空闲图1.6程序查询方式流程图N准备就绪?YN超时?YYY对接口进行控制与接口交换数据置正常标志值返回状态结束置超时错标志程序查询开始读输入状态寄存器二、中断传送方式使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备未准备好,CPU就要不断地查询,降低了CPU的运行效率中断方式:当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了CPU的利用率每条指令完成后,CPU均可响应中断,因此当设备准备好时,可及时与CPU交换数据,提高了实时性查询式输入输出方式是通过对外设的状态查询,实现CPU与外设间的正确的输入输出操作,从而使不同工作速度的外设可以和CPU协调工作。由于查询过程中,CPU实际上处于等待状态,不能进行其它操作,降低了CPU的效率。特别是当外部设备输入输出速度较低时(如键盘、打印机等),CPU为了完成一次输入输出操作,用于查询的时间要比实际用于输入输出指令的执行时间要长得多,从而造成CPU的极大的浪费。因此,提出了中断传送方式。中断输入输出方式的思想是:当CPU需要输入输出数据时,先执行启动外设工作的指令,然后CPU继续执行原程序。如果是输入操作,当输入数据已存入外设接口的输入寄存器中时;或是输出操作,当外设已经把前一个输出数据从接口寄存器中取走,就由外设向CPU发出中断请求,CPU在收到中断请求信号后,就暂时停止原来执行的程序(即实现中断),转去执行输入或输出处理程序。三、DMA传送方式对于高速外设(如磁盘、高速A/D),中断方式不能满足数据传输速度的要求。DMA=DirectMemoryAccess——直接存储器访问DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CPU。这种专门的硬件电路称为DMA控制器,简称DMAC中断输入输出方式可以大大提高CPU的效率,但仍需要CPU通过程序进行传送。每次中断处理需要保护断点、保护现场及恢复现场恢复断点,这些操作都要占用CPU的额外时间。这对于高速的外部设备在成批地交换数据时,这种中断传送方式,就显得太慢,因而不能满足高速交换数据的要求。DMA方式能摆脱CPU的直接干预,利用硬件控制设备DMA控制器(DMAC),实现外部设备与内存间的直接数据传送。几种传送方式的比较:1.无条件传送:只能用于外部设备与CPU动作同步时,否则出错。这种方式已较少使用。2.查询传送:•接口简单,•但在传送过程中,若外设数据没有准备好,则CPU一直在查询、等待,而不能做其他事情。CPU的效率低下。3.中断传送:•只有当外设数据准备好时(向CPU发出请求),CPU才进行数据传送(在中断服务程序中),其余时间CPU可以做其他事情。CPU效率大大提高。•但是,每传送一次数据,CPU都要执行一次中断服务程序,在中断服务程序中,除执行IN和OUT指令外,还要进行下列工作:保护断点、保护标志寄存器、保护某些通用寄存、恢复等一些工作,95%的时间是额外开销,从而传送效率并不高。4.DMA传送:在DMAC的控制下,外设直接和存储器(也可外设与外设,存储器与存储器之间)进行数据传送,而不必经过CPU,传送速度基本取决于外设与存储器的速度,从而传送效率大大提高。

1 / 40
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功