输入输出接口技术教学PPT.ppt

上传人:文库蛋蛋多 文档编号:2997627 上传时间:2023-03-07 格式:PPT 页数:63 大小:459.50KB
返回 下载 相关 举报
输入输出接口技术教学PPT.ppt_第1页
第1页 / 共63页
输入输出接口技术教学PPT.ppt_第2页
第2页 / 共63页
输入输出接口技术教学PPT.ppt_第3页
第3页 / 共63页
输入输出接口技术教学PPT.ppt_第4页
第4页 / 共63页
输入输出接口技术教学PPT.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《输入输出接口技术教学PPT.ppt》由会员分享,可在线阅读,更多相关《输入输出接口技术教学PPT.ppt(63页珍藏版)》请在三一办公上搜索。

1、7.1输入输出接口概述7.2CPU与外设数据传送的方式7.3 DMA控制器8237,第七章 输入/输出接口,接口的概念接口是指CPU和存储器、外设或者两种外设之间,或者两种机器之间通过系统总线进行连接的逻辑部件(或者电路),它是CPU与外界进行信息交换的中转站。,7.1 概述,7.1 概述,一、接口电路的分类和功能,外设必须通过接口电路与CPU相连接,数据总线,控制总线,地址总线,数据寄存器,外部设备,数据线,控制线,状态线,控制寄存器,状态寄存器,一、接口电路的分类和功能,接口电路按通用性分为两类:通用接口和专用接口通用接口:可供多种外部设备使用的标准接口,目的是使微机正常 工作通用接口通常

2、制造成集成电路芯片,称为接口芯片。最初的IBM-PC使用了6块接口芯片:8284(时钟信号发生器)、8288(总线控制器)、8255(并行接口)、8259(中断控制器)、8237(DMA控制器)、8253(计数器/定时器)后来的微机将这些芯片(当然还集成了其它的接口芯片)集成为大规模集成电路芯片,称为芯片组。,一、接口电路的分类和功能,专用接口:为某种用途或某类外设而专门设计的接口电路,目的 在于扩充微机系统的功能。专用接口通常制造成接口卡,插在主板总线插槽上使用。通用接口和专用接口的界限并不严格。,按照可编程性,接口芯片分成硬步线逻辑接口芯片和可编程接口芯片。可编程接口芯片的功能可以由指令来

3、控制。,一、接口电路的分类和功能,接口电路的功能:1)缓冲锁存数据比如外扩存储器时,使用锁存器将CPU的AD引脚上的地址数据锁存起来。当总线上挂接多个外设时,采用带三态门的缓冲器将各个外设和总线连接起来。2)地址译码通过接口的地址译码,产生选通信号,选中相应的外设。3)传递命令接口接收CPU送来的控制信号,对外设进行控制管理。同时,外设的状态和应答信号也通过它传给CPU。4)信号转换包括电平的转换,比如TTL电平和RS232电平的转换。AD/DA转换、数据编码(比如串并转换)的转换等等。5)中断、DMA管理为了提高传输速度,提高CPU利用率,接口有提出和处理中断、DMA的能力。,二、接口电路的

4、基本结构,二、接口电路的基本结构,接口电路通常包含一组能够与处理器交换信息的寄存器,称为I/O端口寄存器,简称为I/O端口1)数据端口存放数据信息2)状态端口存放状态信息,即反映外设当前工作状态的信息3)控制端口存放控制信息,状态信息与控制信息可以广义地看作数据信息,因此可以通过数据总线传送外设的工作状态和CPU对外设的控制命令。,三、I/O端口的编址方式,I/O端口与存储单元统一编址(20bit)I/O端口独立编址(16bit)统一编址:将端口视作存储器,并赋予相应的存储器地址。指令上不区分端口还是存储器,而由程序员根据地址不同来区分。相当于端口地址被映射到内存空间中,成为其一部分。优点:1

5、.使用上同存储器的使用,而存储器寻址方面的指令使用起来很灵活。2.可使用的I/O设备的数目更多(因为地址空间一般都很大)。3.读/写控制逻辑设计简单。缺点:1.占用了内存的一部分空间。2.指令一般较长,执行也慢。3.地址译码电路较复杂。独立编址:将I/O端口单独编址,不占用存储空间。CPU只能采用专用的I/O指令来访问I/O端口。优点:节省了内存空间。I/O译码电路简单,I/O指令执行快。但是种类少,程序设计的灵活性差些。,三、I/O端口的编址方式,端口地址是一种重要资源,三、I/O端口的编址方式,PC机中采用独立编制的I/O端口寻址方式把端口地址放在DX寄存器中,对该端口进行读写INAL,D

6、XOUT DX,AL,可寻址的端口号为065535(FFFFH),端口地址小于或等于FFH(255),可以用立即数表示端口地址IN AL,42HOUT 43H,AL,7.2 CPU与外设数据传送的方式,程序传送方式中断传送方式DMA传送方式IO处理机,无条件传送程序查询传送(条件传送),一、程序传送方式,(一)无条件传送,CPU与外设间的数据交换在程序控制下进行,不查询外设状态,认为外设已经准备就绪,直接与外设传送数据,适用场合:简单外设或者外设的工作时间是固定的已知的。在任何时刻均处于准备好数据或者处于接受数据的状态。,由于不查询外设状态,接口电路不需要状态寄存器,一、程序传送方式,输入缓存

7、,输出锁存,一、程序传送方式,一、程序传送方式,(二)程序查询传送,在执行输入输出前,要先查询接口中状态寄存器的状态。输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪输出时,状态寄存器的状态指示输出设备是否空闲,外设准备就绪:对于输入设备,已经把数据放入接口电路的数据输入寄存器,CPU可以读取;对于输出设备,已经准备好接收数据(接口电路的数据输出寄存器已空),CPU可以向它输出数据,程序查询输入,程序查询输入,上图中,要获取设备的数据,需访问端口地址80H,要获得设备的工作状态,需访问端口地址81H.要求从外设中读取10B个数据,依次存入DATA数组中:MOV CX,0AHMOV DI

8、,OFFSET DATAX1:IN AL,81H;读取状态TEST AL,80H;Ready?JZ X1;No,继续查询INAL,80H;Yes,读取1B的数据MOV DI,AL;保存到DATA数组INCDI;LOOP X1;循环10次HLT,程序查询输出,程序查询输出,上图中,要向设备输出数据,需访问端口地址80H,要获得设备的工作状态,需访问端口地址81H.要求向外设输出10B个数据,数据存放于DATA数组中:MOV CX,0AHMOV SI,OFFSET DATAX1:IN AL,81H;读取状态TEST AL,80H;Ready?JZ X1;No,继续查询MOVAL,SI;Yes,读取

9、1B的数据OUT 80H,AL;输出到外设INCSI;LOOP X1;循环10次HLT,二、中断传送方式,使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备未准备好,CPU就要不断地查询,降低了CPU的运行效率中断方式:当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,而不必像查询方式那样一直等待,所以提高了CPU的利用率.每条指令完成后,CPU均可响应中断,因此当设备准备好时,可及时与CPU交换数据,提高了实时性。有关中断的控制方式,我们在下一章中会深入讲解。,三、DMA传送方式,对于高速外设(如磁盘、

10、高速A/D),中断方式不能满足数据传输速度的要求。原因:中断过程,包括中断服务子程序还是靠CPU的参与才能工作DMA=Direct Memory Access直接存储器访问DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CPU。这种专门的硬件电路称为DMA控制器,简称DMAC,三、DMA传送方式,CPU,内存,外设,数据通道,数据通道,非DMA方式(包括程序控制方式和中断方式),DMAC,内存,外设,数据通道,DMA方式,三、DMA传送方式,DMAC具有独立的控制三大总线来访问存储器和I/O端口的能力,它能像CPU一样提供数据传

11、送所需的地址信息和读写控制信息DMAC和CPU都挂在系统总线上,当进入DMA方式时,DMAC成为总线主控。在总线上,可以控制其他部件的部件称为总线主控或主控(bus master),被控部件称为从控(slave)。任意时刻,总线上只有一个主控。,三、DMA传送方式,DMA操作之前,应先对DMAC编程,把要传送的数据块长度、数据块在存储器中的起始地址,数据传送方向等信息发送给DMACDMA操作过程包括三个阶段:DMA请求DMA响应和数据传送传送结束,当外设要求以DMA方式为它服务时,发DMA请求信号DREQ到DMACDMAC检查该信号是否被屏蔽及其优先权,如确认该信号有效则向CPU发送总线请求信

12、号HRQ(连到CPU的HOLD),DMA请求阶段,CPU,DMAC,HRQ,外设,DREQ,地址总线,数据总线,存储器,每个总线周期结束时CPU检测HOLD,如为高电平,则响应HOLD请求进入保持态,使三态总线CPU侧呈高阻状态,并以总线保持响应信号HLDA通知DMAC,DMAC接管总线,并以DACK信号通知外设,使之成为DMA传送时被选中的设备,同时DMAC给出内存地址以及I/O读写和存储器读写控制信号,在外设和存储器之间完成数据传送,DMA响应和数据传送阶段,CPU,DMAC,HLDA,外设,DACK,存储器,地址总线,数据总线,IOR/IOW,MEMR/MEMW,传送结束阶段,传送完成后

13、,DMAC放弃总线,撤消总线请求(HRQ为低),CPU检测到HRQ(HOLD)为低后,撤消HLDA,CPU重新获得总线控制权,CPU,DMAC,HRQ,外设,EOP,地址总线,数据总线,存储器,DMA控制器的功能,从前面的描述中可以看出,当外设需要进行DMA方式传输数据时,DMAC要向CPU提出请求,使CPU让出总线控制权,交由DMAC来接管总线,这样就可以完成外设和内存之间的数据交换。完毕后,DMAC释放总线,将总线控制权交由CPU。所以,DMA控制器必须具备以下的功能:能向CPU发出要求控制总线的DMA请求信号HRQ(接CPU的HOLD引脚);当收到CPU发出的HLDA信号后能接管总线,进

14、入DMA模式;能发出地址信息对存储器寻址并能修改地址指针;能向存储器和外设发出读、写控制信号;决定传送的字节数,并能判断DMA传送是否结束;接受外设的DMA请求信号和向外设发出DMA响应信号;能发出DMA结束信号,使CPU恢复正常。,PC系列微机使用可编程DMA控制器 8237A(简称8237)实现DMA功能8237有四个通道,每个通道都有独立的与相应外设接口相联系的信号,四个通道共享与CPU相连的控制信号、地址信号、数据信号8237有两种工作状态:主态方式8237获得总线控制权,控制外设和内存间的数据交换.2.从态方式CPU读写8237,相当于DMA是个外设。,四、8237A可编程DMA控制

15、器,8237的引脚功能,8237的引脚功能,请求(输入)/应答(输出)信号外设接口电路向8237的请求信号:DREQ3DREQ08237对外设接口电路的应答信号:DACK3DACK08237向CPU申请总线的信号:HRQ(连至CPU的HOLD)CPU向8237传送的允许使用总线信号:HLDA,8237的引脚功能,地址信号(双向,作用随8237的工作模式而不同):CPU初始化8237或读8237状态时所需的片选信号A7A0(输出):8237访问存储器的地址信号的低8位。A3A0(输入):CPU初始化8237或读8237状态时,用于寻址8237内部寄存器,8237的引脚功能,数据信号(双向):DB

16、7DB0,CPU为主控时,可以通过I/O读命令查询8237的状态寄存器的内容,或通过I/O写命令对8237的内部寄存器进行编程,数据传送通过DB7DB08237为主控时,DB7DB0输出要访问的内存地址的高8位,并通过ADSTB锁存到外部地址锁存器中,和A7A0输出的低8位地址一起构成16位地址,8237的引脚功能,地址允许信号:AEN(输出)8237作为主控时(8237控制总线),输出AEN=1。表示16位的偏移地址已经由8237生成。8237作为从控时(CPU控制总线),输出AEN=0。DMA传输结束信号:(双向)当DMAC内部任一通道传输结束,8237发出若由外部给DMAC送入有效的,则

17、强制DMAC内部所有通道结束传输。,8237的引脚功能,MEMR/MEMW:(输出),8237发出的存储器读/写信号,IOR/IOW:(双向),8237作为主控时,输出I/O读/写信号。8237作为从控时,CPU发出的I/O读/写信号,用于读/写8237,8237的引脚功能,ADSTB:地址选通信号(输出),用于启动地址锁存器,READY:存储器或I/O的就绪信号(输入)如果外设和存储器速度慢的话,可以将Ready无效,使得8237在DMA周期中插入等待周期。,8237的编程结构,8237的编程结构,控制寄存器(命令寄存器,从态方式写入)8位,4个通道共用,用于设定8237的信号形式、工作时序

18、、传输方向。端口地址08H信号形式:DREQ/DACK信号的有效形式。工作时序:普通时序(3个时钟周期完成一次传输)压缩时序(2个时钟周期完成一次传输)传输方向:内存 I/O(常用)I/O内存(常用)内存内存(PC系列机未用),8237的编程结构,D7:0=DACK高电平有效;1=DACK低电平有效 D6:0=DREQ高电平有效;1=DREQ低电平有效D5:1=扩展写信号,IOW/MEMW比正常时序提前一个周期;0=不扩展写信号D4:0=固定优先级,通道0优先级最高,通道3优先级最低;1=循环优先级D3:0=正常时序 1=压缩时序D2:0=启动(指允许)8237工作;1=停止(指禁止)8237

19、工作D1:内存到内存传输时,D1=1使源地址(0通道)保持不变D0:0=内存 I/O间的传输;1=内存内存间的传输,控制寄存器,8237的编程结构,PC系列微型机中,BIOS初始化时将控制寄存器设为00H禁止内存内存的传送,允许读/写操作,使用正常时序固定优先级不扩展写信号DREQ高电平有效DACK高电平有效,8237的编程结构,状态寄存器(从态方式读取),8位,4个通道共用,与控制寄存器共用一个端口地址端口地址08H记录每个通道是否有请求、传输是否结束,D3D0:分别对应通道30,指出4个通道的DMA传 送是否结束,结束为1D7D4:分别对应通道30,表示4个通道是否有 DMA请求,有DMA

20、请求为1,暂存寄存器8位,端口地址0DH在内存内存传输时,暂存数据。注意:内存 I/O传输时,数据不进入8237内部,只存在于数据总线上,8237的编程结构,8237的编程结构,工作方式寄存器(也称作模式寄存器)8位,设定DMA的传输模式,4个通道的工作方式寄存器共用一个端口地址,端口地址0BH传输模式:单字节传输模式数据块传输模式请求传输模式级联传输模式,单字节传输模式:每次DMA操作只传送一字节后,接着8237释放总线块传输模式:8237获得总线控制权后,连续传送多个字节,每传输一个字节,当前字节计数器减1,当前地址寄存器加1或减1,直到所要求的字节数传输完(当前字节计数器减至0),823

21、7在EOP引脚上发出结束信号,然后释放总线。在块传输过程中,若向8237的EOP引脚上输入低电平,可强行结束传输。,工作方式寄存器,8237的编程结构,请求传输模式:在传输过程中,8237要检测DREQ信号(询问外设),当DREQ为低时,8237暂停传输(不释放总线),当DREQ再次有效后,继续进行传输。级联传输模式:多片8237级联时,可以构成主从式DMA系统。级联的方式是把从片的请求线HRQ连至主片的DREQ引脚,主片的DACK联至从片的HLDA引脚.此时,主片输出的信号除了HRQ外都被禁止。若主8237的某通道(DREQ)连接从8237的HRQ,主8237的该通道应设置为级联传输模式,但

22、从8237不设置级联传输模式,而是设置其它三种模式之一。,工作方式寄存器,8237的编程结构,二级8237A级联,8237的编程结构,D7,D6:模式选择00=请求传输模式 01=单字节传输模式10=块传输模式 11=级联传输模式D5:存储器地址增减选择,0=地址增1,1=地址减1D4:自动预置功能,0=禁止,1=允许自动预置:在当前字节计数器到达0时,当前字节计数器和当前地址寄存器从基本字节计数器和基地址寄存器中自动获得新的初值,8237的编程结构,D3,D2:传输类型选择01=写传输(I/O内存),10=读传输(内存 I/O)00=校验传输,11=无意义校验传输用来对读传输和写传输功能进行

23、校验,它是一种虚拟传输,8237也会产生存储器地址信号,但不产生存储器读/写、I/O读/写信号,校验传输一般用于器件测试D1,D0:通道选择00=通道0 01=通道110=通道2 11=通道3,8237的编程结构,基地址寄存器和当前地址寄存器每个通道一个基地址寄存器,一个当前地址寄存器,16位,占用相同的端口地址基地址寄存器:DMA传输的内存地址初值,在初始化时由CPU分两次写入。当前地址寄存器:DMA传输过程中,内存地址的当前值。每传输一字节,该寄存器的值增1或减1。CPU可分两次读出其值。基地址寄存器和当前地址寄存器的写入端口相同,运行时,基地址寄存器的值不能再被修改。当执行自动预置操作时

24、,使当前地址寄存器能恢复到初始值。,8237的编程结构,基本字节计数器和当前字节计数器每个通道一个基本字节计数器,一个当前字节计数器,16位,占用相同的端口地址基字节计数器:DMA传输的字节数初值,在初始化时由CPU分两次写入。8237规定,初值比实际传输的字节数少1当前字节计数器:DMA传输过程中,当前的计数值。每传输一字节,该寄存器的值减1。当计数值从0减到FFFFH时,8237发出结束信号EOP。CPU可分两次读出其值。,8237的编程结构,先/后触发器端口地址0CHCPU写入基地址寄存器、基本字节计数器时,均分两次写入,先/后触发器用于控制写入的值是低8位还是高8位写入过程:使先/后触

25、发器=0。写入低8位,先/后触发器自动置1。写入高8位,先/后触发器自动置0。,8237的编程结构,请求寄存器 四个通道的请求触发器构成一个请求寄存器(8位)一般情况下,DMA请求由硬件信号DREQ发出,也可由软件设置请求触发器来发出DMA请求。,D2=1设置DMA请求D1D0:指定软件DMA请求的通道,端口地址09H,8237的编程结构,屏蔽寄存器 四个通道的屏蔽触发器构成一个屏蔽寄存器(8位)当屏蔽寄存器的屏蔽标志置1时,将禁止该通道的硬件DMA请求和软件DMA请求。,D2=1,设置屏蔽;D2=0,清除屏蔽;D1D0:选通道,端口地址0AH,8237的编程结构,综合屏蔽寄存器 8237可以

26、一次完成四个通道的屏蔽设置,D3D0:分别对通道30设置屏蔽1,设置屏蔽,禁止DREQ;0,清除屏蔽;,端口地址0FH,清除屏蔽寄存器 对端口0EH写入0,可以一次清除四个通道的屏蔽触发器,端口地址0EH,MOV DX,DMA+0EHMOV AL,0OUT DX,AL,8237的编程结构,8237的编程结构,复位命令寄存器 对端口0DH写入0,使8237复位,其功能等同于硬件复位,端口地址0DH,8237复位后的状态为:控制寄存器 状态寄存器 请求寄存器 暂存器 先/后触发器,清0,屏蔽寄存器 置1,8237的编程结构,一片8237占用连续16个端口地址,用DMA+00HDMA+0FH表示。其

27、中,DMA表示该片8237的基地址。在AT以上的微机中,使用2片8237,其地址为:第一片8237,基地址DMA=0000H,使用0000H000F I/O地址。第二片8237,基地址DMA=00C0H,使用00C0H00CF I/O地址。,8237的编程结构,8237的应用,8237A编程,写入控制寄存器写入屏蔽寄存器屏蔽要初始化的通道写入工作方式寄存器先后触发器置0写入基地址和基本字节寄存器解除屏蔽写入请求寄存器,8237的应用,例:用一片8237A设计了DMA传输电路,8237A的基地址为00H。要求利用它的通道0,从外设输入1KB的数据块,传送到内存中6000H开始的区域中,每传送一个

28、字节,地址增1,采用数据块连续传送方式,禁止自动预置,外设的DMA请求信号DREQ和响应信号DACK均为高电平有效。8237A的初始化程序如下:,DMA EQU00H;8237A的基地址为00H1)输出清除命令MOV AL,0OUTDMA+0DH,AL2)将基地址6000H写入通道0基地址和当前地址寄存器,分两次MOVAX,6000HOUT DMA+00H,AL;先写入低8位地址MOVAL,AHMOVDMA+00H,AL;再写入高8位地址3)把要传送的总字节数1K=400H减1后,送到基字计数器和当前字计数器MOVAX,400H;总共传送1KBDECAXOUTDMA+01H,AL;先写入字节数

29、的低8位MOVAL,AHOUTDMA+01H,AL;再写入字节数的高8位,4.)写入方式字:数据块传送,地址递增,禁止自动预置,写传送,选择通道0MOVAL,10000100B;OUTDMA+0BH,AL;写入方式字5.)写入屏蔽字:通道0屏蔽位清0MOVAL,00H;OUTDMA+0AH,AL;写入屏蔽字6.)写入命令字:DACK和DREQ为高电平,固定优先级,非存储器间传送MOVAL,10000000B;OUTDMA+08H,AL;写入命令字7.)写入请求字:通道0产生请求MOVAL,04H;OUTDMA+09H,AL;写入请求字,软件启动8237A.,8237的应用,8237的应用,例:利用主板上的8237通道1,将内存起始地址为80000H的300H字节直接输出给外设,MOVAL,0;清除先/后触发器OUT0DH,AL;写地址OUT02,ALOUT02,ALMOVAL,8OUT83H,AL;传送的字节数MOVAX,300HDECAXMOV 03,ALMOVAL,AHOUT03,AL,;写模式寄存器MOVAL,49HOUT 0BH,AL;清除通道1屏蔽MOVAL,1OUT0AH,AL;读通道1状态WAIT:IN 08ANDAL,02JZ WAIT;完成后屏蔽通道1MOV AL,5OUT 0AH,AL,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号