CPU对外设的访问实际上是CPU对I/O接口电路中的相应端口(寄存器)进行访问。两种编址方式:独立编址:相对存储器而言,将存储器地址空间和 I/O接口寄存器地址空间分开设置,互不影响。Intel系列。独立编址方式的特点:统一编址方式的特点:统一编址:完全相同。独 立编址:方法相同,通常I/O端口地址比存储器单元地址短,因此参与译码的地址线较少。8位端口(静态地址):地址线A7~A0(8根 线,其余忽略),00H~FFH,可直接在IN/OUT指令中出现。16位端口(动态地址):地址线A15~A0(16根线,其余忽略 ),0000H~FFFFH,端口地址必须先放在DX寄存器中,才能使用IN/OUT指令。74LS373锁存器74LS244缓 冲器74LS245收发器74LS373真值表课后作业7.2,7.4,7.5,7.6,7.9,7.10可编程DMA控制器 8237A8237A的基本结构和功能有4个独立的DMA通道,每个通道的DMA请求可分别被允许或禁止;每个DMA通道一次最 大可传送64KB的数据,可在存储器与外设、存储器与存储器之间传送数据;DMA有4种传送方式:单字节、数据块、请求传送和级连传送 ;允许外部用EOP信号结束DMA传送或重新初始化;每一个通道的DMA请求有不同的优先级,优先级可以是固定的,也可以由程序设 定成可变的(循环优先级);多个DMA芯片可以级连,任意扩展DMA通道。8237A的工作方式4种工作方式4个阶段DMA请 求阶段DMA响应阶段DMA传送阶段DMA结束阶段单字节传送方式数据块传送方式请求传送方式级联方式单字节传送方式允 许DMADMA请求?DMAC发BUS请求CPU响应DMA放弃BUSDMAC控制传一个字节块结束否?放弃总 线结束请求NDMA请求总线NYY数据块传送方式允许DMADMAC发BUS请求CPU响应DMA 放弃BUSDMAC控制传一个字节块结束否?放弃总线结束请求YN一次传送一个字节一次传送一组数据,传送过程不能停 止请求传送方式允许DMADMA请求?DMAC发出BUS请求CPU响应DMA放弃总线DMAC控制传一个字节块结 束否?放弃总线结束请求YDMA请求?Y放弃总线NNY是一种成组传送,但每传一个字节都查询DREQ传送过程中可 以强制停止级联方式类型DMA读DMA写DMA校验空操作,对8237A内部读/写功能进行校验MEM?I/OI/O? MEM功能MEM?I/OMEM?MEMI/O?MEM8237A的初始化编程A3A2A1A0端口地址通道读操 作写操作0000DMA+00读当前地址寄存器写基/当前地址寄存器0001DMA+1读当前字节计数器 写基/当前字节计数器0010DMA+21读当前地址寄存器写基/当前地址寄存器0011DMA+3读当前字 节计数器写基/当前字节计数器0100DMA+42读当前地址寄存器写基/当前地址寄存器0101DMA+5 读当前字节计数器写基/当前字节计数器0110DMA+63读当前地址寄存器写基/当前地址寄存器0111 DMA+7读当前字节计数器写基/当前字节计数器1000DMA+8公用读状态寄存器写命令寄存器1001 DMA+9——写请求寄存器1010DMA+10——写单个通道屏蔽字1011DMA+11——写方式寄 存器1100DMA+12——清除先/后触发器1101DMA+13读数据暂存器复位芯片(主清除)11 10DMA+14——清除屏蔽寄存器1111DMA+15——写4通道屏蔽寄存器8237A端口寄存器寻址列表 关闭8237A发送总清除命令输出16位地址值给相应通道的地址寄存器输出传送的字节数给基字节计数器和当前字节计数器 写工作方式字将屏蔽字写入屏蔽寄存器将命令字写入命令寄存器启动DMA传送。软件方法——将请求DMA操作字写入请求寄存器 ;硬件方法——等待DREQ引线端发出DMA传送申请。【例】利用8237A的通道1从外设输入32KB的一个数据块,传送至3000H 开始的存储区域(增量传送),采用块传送方式,传送完不自动初始化,外设的DREQ和DACK都为高电平有效。设8237A的端口首地址为 20H,试编制初始化程序段。方式字屏蔽字命令字85H01HA0HOUT 2DH,AL ;主清除命令MOV AL,0 0H ;基地址和当前地址的低8位OUT 22H,ALMOV AL,30H ;基地址和当前地址的高8位OUT 22H,ALM OV AL,00H ;基字节数和当前字节数低8位(00H,32KB=8000H)OUT 23H,ALMOV AL,80H ;基 字节数和当前字节数高8位(80H)OUT 23H,ALMOV AL,85H ;写方式字OUT 2BH,ALMOV AL,0 1H ;写屏蔽字,使通道1的屏蔽位复位(不屏蔽)OUT 2AH,ALMOV AL,0A0H ;写命令字OUT 28H,AL 第七章输入/输出技术三峡大学陈慈发0717-6394358,13972597617chcf0415@126. com1234I/O接口概述简单I/O接口芯片基本输入/输出方法※可编程DMA控制器8237A I/O:计算机通过外围设备同外界交换信息的过程称为“输入/输出(Input/Output,I/O)”。I/O接口 概述I/O接口:将CPU和外围设备连接起来实现信息交换的缓冲电路称为I/O接口(Interface)电路,简称“I/O接口”。 I/O接口的基本功能缓冲、隔离和锁存功能信息格式与电平转换功能信息交换的应答联络功能译码寻址外设功能基本原则:输入要缓 冲、输出要锁存、输入/输出要隔离I/O接口的基本结构地址总线(AB)、数据总线(DB)、控制总线(CB)数据(端)口=数据 寄存器:数据信息状态(端)口=状态寄存器:状态信息控制(端)口=命令寄存器:控制信息I/O端口的编址方式存储器和I/O 接口各自拥有独立的地址空间,相互之间不交叉不重叠,地址空间得到充分利用。存储器和I/O接口的读写控制逻辑相互独立,且I/O接口 通常需要“选通”、“应答”等控制信号,而存储器接口并不需要,因而控制逻辑可以分别设计,硬件设计比较方便。CPU的访内指令和访外 指令不同,程序设计非常清晰。I/O端口的地址码较短(8位或16位),译码电路比较简单,从而使IN/OUT指令的执行速度较快。 需要专用的访外指令,这些指令只能进行数据的输入输出,不能进行数据的运算,功能不如访内指令强大,程序设计的灵活性较差。统一编址: 又称存储器映像编址,将所有I/O接口电路中的寄存器作为存储单元对待,并给每一个寄存器分配相应的存储器地址。CPU访问外设就象访问存 储器一样,所不同的仅是地址而已。MCS-51系列,680X0系列,ARM系列等。访问存储器的指令也可用于外设的输入/输出操作, 因而对I/O端口寄存器的数据处理能力强。I/O接口和存储器共用译码电路和读写控制逻辑,电路非常简洁。CPU无需产生访内操作 和访外操作的控制信号。I/O端口的地址空间可大可小,比较灵活,从而使外设的数量几乎可以不受限制。不能充分利用地址空间,地址 空间的分配可能潜藏隐患,影响存储器空间的容量;CPU与I/O端口交换数据的指令执行时间较长。独立编址方式可以转换为统一编址 方式统一编址方式不一定能转换为独立编址方式I/O端口的地址译码与存储器单元的地址译码方法相同。IN AL,20H ;2 0H是8位端口地址,可直接在指令中作为操作数使用MOV DX,13F8HOUT DX,AL ;13F8H是16位端口地址,应先 将其装入DX,才能被寻址简单I/O接口芯片74LS373锁存器输入门控G输出允许输入D输出QHLLLHL HHLLD0(保持不变)Q0(原状态)LHD0(保持不变)Z(高阻态)HHXZ(高阻态)当G=H、O E=L时,xD?xQ;当输入门控G从高电平跳变到低电平且OE=L时,xQ?,即D被锁定;当OE=H时,xQ|;当G=H时,? xD。当G=L时,|xD74LS373可被用于锁存地址信息、数据信息和状态信息等,更多用于锁存地址信息。74LS244缓冲 器8个三态门,驱动、缓冲,2组第1组:1G门控,1Ax?1Yx第2组:2G门控,2Ax?2Yx74LS244缓冲器主 要用于三态输出的地址总线、数据总线或时钟驱动器。74LS245收发器双向,各8个三态门G是门控DIR是方向控制, DIR=H时,A?B;DIR=L时,B?A74LS245常用于数据的双向传送、缓冲和驱动。【例】设计一接口电路,构成16个 发光管流水灯,口地址85H~86H。画出电路原理图,编一驱动程序使发光管从上到下依次发光。GND1Q2Q3Q4Q 5Q6Q7Q8Q74LS3731D2D3D4D5D6D7D8DGOE1Q 2Q3Q4Q5Q6Q7Q8Q74LS3731D2D3D4D5D6D7D 8DOE74LS138CBAG2AG1G2BA0M/IOA1A2A 7WEGY5Y6D1D2D0D4D5D3D7D6 MOV BX,01HNEXT:MOV AL,BL OUT 85H,AL MOV AL,BH OUT 86H,AL MOV CX,0FFFHLOP: LOOP LOP;延时 SHL BX,1 JNZ NEXT HLT能否将74LS373改为74LS244或74LS245?基本输入/输出方法 CPUMEMI/ODMA方式数据传送指令IN/OUT指令程序控制的输入/输出直接存储器存取方式(DMA) 程序控制的输入/输出传送过程以CPU为中心,通过程序(数据传送指令和IN/OUT指令)完成数据传送传送路径必须经过CPU内 部的寄存器传送速度不高,响应比较慢无条件传送查询方式传送中断方式传送无条件传送又称同步传送,CPU可 以随时与I/O进行数据传送,不依赖于任何条件对于输入口,CPU总是认为外设数据已经准备好,可读对于输出口,CPU总是假设外 设数据端口已空,可写不需要在CPU和I/O之间建立任何握手信号,所需硬件很少,软件简单适用于开关、继电器、步进电机、LED 、数码管显示器等输入接口设计MOV DX,IN_PORTIN AL,DX输出接口设计MOV DX,OUT_PO RTOUT DX,AL查询方式传送CPU通过程序指令不断询问外设的工作状态,如果“就绪”就开始进行数据传送,如果未“ 就绪”则继续不断地询问又称应答式传送,在CPU和外设之间建立了问答机制除了使用数据口外,还要用到状态口①读取I/O 接口中的状态口,得到外设的状态字;②检测相应的状态位,以检查是否“就绪”;③若“就绪”则执行I/O操作,若未“就绪”,则重 复①~②步。优点:能保证CPU与外围设备之间的协调同步工作硬件线路简单,程序容易实现缺点:浪费CPU的时间, 效率低【例】某外设接口的8位数据端口地址为200H,状态端口地址为201H,状态口中第7位为1表示外设已准备好。如该外设为输入设 备,试编制从该设备输入一个字节数据的程序段。MOV DX,201H ;状态口地址LOP:IN AL,DX ; 读取外设的状态字TEST AL,10000000B;状态位第7位是否为1?JZ LOP ;不是1则 继续查询DEC DX ;数据口地址IN AL,DX ;从数据口输入数据【例】对于上例,如该外设为 输出设备,则向该设备输出一个字节数据的程序段又该如何编制?MOV DX,201H ;状态口地址LOP:IN AL,DX ;读取外设的状态字TEST AL,10000000B;状态位第7位是否为1?JZ LOP ;不是1则继续查询DEC DX ;数据口地址OUT DX,AL ;向数据口输出数据中断方式的输入 /输出外设“准备好”才发中断,效率高,实时性好CPU处于被动地位,外设处于主动地位是一种相对可靠的输入/输出方 式CPU与外设“并行”工作,多个外设也可“并行”工作创建数据传送缓冲区,配置好相关地址;初始化外设接口,配置好外设 的工作方式;初始化中断控制器(8259A),设置好包括中断优先级在内的中断控制逻辑;编制中断服务(子)程序;将中断向量 (中断服务(子)程序的入口地址)填入中断向量表中;适时启动外设。中断方式的输入输出仍属于程序控制的数据传送方式,其程序设计步 骤:①为了能够接受中断请求,CPU必须要有相应的中断控制逻辑,外围设备要提供中断请求信号及中断类型号。②中断方式每传送一 次数据就要中断一次CPU。CPU响应中断后,进入中断处理,将程序引导至“中断服务程序”入口。在“中断服务程序”中,一般都要保护现场 、恢复现场,浪费了很多CPU时间,较适合于传送少量数据以及中低速度的外围设备。缺点:直接存储器存取方式(DMA)——D irectMemoryAccess,DMA需要DMAC(DMAController)不受CPU干预纯硬 件方式进行高速传送,取决于存储器存取速度和I/O接口的工作速率DMA传送的请求与工作过程:①外设向DMAC发出DMA传送请求信号(DREQ)②DMAC向CPU发出总线请求保持信号HOLD,申请占用总线③CPU向DMAC发出总线响应信号HLDA,同时使CPU三总线处于高阻态,放弃总线控制权④DMAC获得总线控制权,并向外设发出DMA响应信号DACK,进入DMA工作方式⑤DMAC送出地址/控制信号,实现“内存?外设”或“内存?内存”之间的直接数据传送⑥DMAC自动修改地址和字节计数器,判断是否需要重复传送。规定的数据传送完后,DMAC就撤销HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期开始重新控制总线,继续执行原来的程序DMAC初始化:给DMAC中的地址寄存器及计数寄存器设置数据传输所用的源、目标内存首地址及传送数据的字节长度对DMAC送入适当的控制字,以指出数据传送方向及如何启动DMA操作 |
|