欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第3章微型计算机输入输出接口.ppt

    • 资源ID:6356681       资源大小:1.05MB        全文页数:74页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章微型计算机输入输出接口.ppt

    第3章 微型计算机输入输出接口,3.1 输入输出接口 3.2 输入输出数据传输的控制方式 3.3 开关量输入输出接口,3.1 输入输出接口,3.1.1 外部设备及其信号 3.1.2 I/O接口的功能3.1.3 I/O端口的编址方法 3.1.4 简单I/O接口的组成,3.1.1 外部设备及其信号 外部设备(Peripheral Device)按照与CPU数据传输的方向划分:(1)输入设备键盘、鼠标、光笔输入图形信息的扫描仪、数码相机检测现场信息的数字化测试仪表模拟量采集和模拟量数字量转换装置等,(2)输出设备显示器、打印机绘图仪现场控制的数字量模拟量转换装置和执行元件(3)复合输入输出设备外存储设备是典型的复合输入输出设备:磁带机(Tape Driver)软磁盘驱动器(Floppy Driver)硬磁盘驱动器(Hard Disk Driver)光盘驱动器(Compact Disk Driver)许多光盘只能读出信息,称为CDROM(Compact DiskRead Only Memory),只读光盘只能用作输入设备。,2.外部设备的信号(1)数据信号按照信号的物理形态,可分为以下几种;数字量:以二进制形式表述的数据、图形或文字信息。模拟量:现场的物理量通过传感器件,转换为大小与之对应的电压或电流信号。这些量呈连续变化的形态,称为模拟量(Analog)。开关量:开关量是只有二种状态(0,1)的量,如开关的接通(ON)与断开(OFF),电机的启停等脉冲量:计数脉冲、定时脉冲和控制脉冲对于输入设备,数据信号从外设送往CPU对于输出设备,数据信号从CPU发往外部设备。,(2)状态信号 状态信号表明外部设备当前的工作状态,用来协调CPU与外部设备之间的操作。典型的状态信号:READY,BUSY有的设备有指示出错状态的信号,如打印机的纸尽(Paper Out),故障(Fault)。不同的外设可以有不同的状态信号。状态信号总是从外部设备发往CPU。,(3)控制信号 控制信号是CPU向外设发出的命令,它指定设备的工作方式,启动或停止设备控制信号的格式因设备而异控制信号从CPU发往外部设备 数据信号、状态信号、控制信号都是以“数据”的形式,通过数据总线在CPU和外部设备之间进行传输的。,3.1.2 I/O接口的功能接口:计算机一个部件与另一个部件之间的连接界面。功能:1.设备选择功能CPU通过地址代码来标识和选择不同的外部设备接口对系统总线上传输的外设地址进行译码,在检测到本设备地址代码时,产生相应的“选中”信号2.信息传输功能设备被“选中”时:从CPU/数据总线接收数据或控制信息外部设备的数据或状态信息发往数据总线/CPU,3.数据格式转换功能外设使用的数据格式与CPU数据格式不同时,接口要进行二种数据格式之间的相互转换。联络功能从系统总线或外设接收一个数据后,发出“数据到”联络信号,通知外设或CPU取走数据数据传输完成,向对方发出信号,准备进行下次传输5.中断管理功能向CPU申请中断;向CPU发中断类型号;中断优先权的管理;在以8086为CPU的系统中,这些功能大部份可以由专门的中断控制器实现。,复位功能 接口在接收系统的复位信号后,将接口电路及其所连接的外部设备置成初始状态。7.可编程功能 有些接口具有可编程特性,可以用指令来设定接口的工作方式、工作参数和信号的极性。,错误检测功能(1)物理信道上的传输错误信号在线路上传输时,如果遇到干扰信号,可能发生传输错误。检测传输错误的常见方法是奇偶检验。(2)数据传输中的覆盖错误输入设备完成一次输入操作后,把所获得的数据暂存在接口内如果在该设备完成下一次输入操作之后,CPU还没有从接口取走数据,那么,在新的数据送入接口后,上一次的数据被覆盖,从而导致数据的丢失输出操作中也可能产生类似的错误覆盖错误导致数据的丢失,易发生在高速数据传输的场合,3.1.3 I/O端口的编址方法有两种不同的I/O端口编址方式:1.I/O端口与内存统一编址把内存的一部分地址分配给I/O端口,一个8位端口占用一个内存单元地址,也称为存储器映射编址方式优点:访问内存单元和I/O端口使用相同的指令,使用方便降低CPU电路的复杂性缺点:减少了内存可用范围难以区分访问内存和I/O的指令,降低了程序的可读性和可维护性,I/O端口与内存独立编址内存储器和I/O端口各自有自己独立的地址空间访问I/O端口需要专门的I/O指令8086/8088 CPU采用这种方式访问内存储器使用20根地址线A0A19使M/IO#=1内存地址范围为000000FFFFFH共1MB访问I/O端口使用低16根地址线A0A15使M/IO#=0I/O端口地址范围为00000FFFFH共64K,3 IBM PC 微型计算机I/O端口地址分配在PC系列微机中,仅使用A0A9共10条地址线定义I/O端口(设A11A15=0),寻址范围为03FFH前256个端口地址供主板上寻址I/O接口芯片使用,后768个供扩展槽接口卡使用用户设计I/O接口电路的时候,应使用系统未占用的端口地址区域为避免所选择的地址与其他扩展卡冲突,最好将其设计成地址可选的型式IBM-PC微机系统板各I/O接口器件端口地址见表3-1。,3.1.4 简单I/O接口的组成 端口 端口:接口内的寄存器,用来暂存CPU和外设之间传输的数据、状态和命令。端口地址:每一个端口有一个独立的地址。外部设备地址:设备接口内各端口的地址,一台外部设备可以拥有几个通常是相邻的端口地址。端口种类:数据端口、命令端口(控制端口)和状态端口。如果外部设备的信息(数据/状态)已经锁存,端口也可以由三态缓冲电路组成。,地址译码电路 地址译码是接口的基本功能之一。一个接口上的几个端口地址通常是连续排列的,可以把16位地址码分解为二个部分:高位地址码用作对接口的选择;低位地址码用来选择接口内不同的端口。例如:某接口占有地址330H333H:高8位地址为11001100B时,本接口被选中;低2位地址为00,01,10,11时,选择接口内的不同端口。,图3-1 端口的地址译码电路,为了避免地址冲突,许多接口电路允许用“跳线器(JUMPER)”改变端口地址。上页图3-1(b)将异或门的输出代替图3-1(a)中的A8,A9引脚:二个跳线引脚均接地时,上面译码电路仍然产生330H333H的端口译码信号;当二个跳线引脚均接“1”时,上面译码电路会产生030H033H的端口译码信号同理还可以产生130H133H,230H233H的译码信号。8086工作于最大模式时,上面的M/IO#、WR#、RD#信号由8288总线控制器发出的IORC#、IOWC#代替。,由于读、写操作不会同时进行,一个输入端口和另一个输出端口可以使用同一个地址编码。例如,可安排数据输入端口、数据输出端口使用同一个地址330H,命令端口和状态端口共同使用地址331H。需要注意的是,数据输入端口和数据输出端口虽然使用相同的地址,但却是二个各自独立的不同的端口。,数据锁存器与缓冲器数据(状态)输入端口:必须通过三态缓冲器与系统总线相连,保证数据总线能够正常地进行数据传送。输入设备在完成一次输入操作后,在输出数据的同时,产生数据选通信号,把数据打入八位锁存器74LS273锁存器的输出信号通过三态八位缓冲器74LS244连接到系统数据总线。数据端口读信号由地址译码电路产生。高电平(无效):缓冲器输出端呈高阻态。低电平(有效,端口被选中):已锁存的数据通过74LS244送往系统数据总线,被CPU所接收。,图3-3 输入设备接口的数据锁存和缓冲电路,数据(命令)输出端口:CPU送往外设的数据或命令,应由接口进行锁存,以便使外设有充分的时间接收和处理。八位输出锁存电路例(图3-4)。,图3-4 输出锁存电路,简单的输入输出接口(图3-5)把地址译码、数据锁存与缓冲、状态寄存器、命令寄存器各个电路组合起来,构成简单输入输出接口接口连接的信号:与系统总线连接:地址总线A0A15数据总线D0D7控制总线M/IO#、RD#、WR#(最小模式时)或IOWC#、IORC#(最大模式时)相连接与外部设备相连:数据、状态、命令。,图3-5 简单接口的组成,3.2 输入输出数据传输的控制方式,3.2.1 程序方式 3.2.2 中断方式3.2.3 直接存储器存取(DMA)方式,3.2.1 程序方式 在程序控制下进行信息传送分为无条件传送和条件传送二种1 无条件传送方式对于简单的外部设备的IO操作可以随时进行;例如,开关、发光二极管这些简单设备的输入信号一般不需要锁存,可以通过三态缓冲器与系统数据总线直接相连。简单输出设备的信号一般需要由锁存器锁存,图3-6 无条件输入输出传送接口,条件传送方式条件传送也称为查询式传送、异步传送;接口电路除了有传送数据的端口以外,还应有储存和传送状态的端口。对于输入过程:外设将数据准备好,“准备好(READY)”标志位置1;CPU将数据取走,READY=0对于输出过程:外设接收到数据,将“忙(BUSY)”标志位置1数据输出完成,将“BUSY”清零。,一个数据的“条件传送”过程:CPU从接口中读取状态字;CPU检测状态字的对应位是否满足“就绪”条件,如果不满足,则回到前一步重新读取状态字;如状态字表明外设已处于“就绪”状态,则传送数据。,图3-9 查询式输入流程,查询方式输入接口电路(图3-7)接口内有两个端口:数据端口(8位,输入)状态端口(1位,输入,连接在D7上,=1表示有数据)选通信号有二个作用:将外设的数据送到接口的锁存器中;使接口中的D触发器置“l”(READY=1)数据信息和状态信息从不同端口经过数据总线送到CPU。,图3-7 查询式输入接口电路,汇编语言程序:AGAIN:IN AL,STAT_PORT;读状态端口,D7=1表示“数据就绪”TEST AL,80H;测试“数据就绪”位 JZ AGAIN;未就绪,继续读状态端口 IN AL,DATA_PORT;已就绪,从数据端口读取数据 C语言程序:do stat=inportb(stat_port);while(stat/*数据已准备好则读取数据*/,查询方式输出接口电路(图3-8)接口内有两个端口:数据端口(8位,输出)状态端口(1位,输入,连接在D7上,=1表示正在输出,“BUSY”)CPU读取接口中的状态:外设忙(BUSY=1),CPU等待 外设空闲(BUSY=0),向外设输出数据,图3-8 查询式输出接口电路,“数据端口写”信号作用:把数据打入“锁存器”;将“状态触发器”置1D触发器的作用:为外设提供一个联络信号STB,告诉外设现在接口中已有数据可供提取;用作该设备的状态标志(“忙”,BUSY)。,汇编语言程序:ONE:IN AL,STATUS_PORT;读状态端口TESTAL,80H;测试“忙”位 JNZ ONE;忙,再读状态端口 MOV AL,DATA;不忙,取来数据OUT DATA_PORT,AL;送入数据端口C语言程序:do stat=inportb(status_port);while(stat/*设备空闲:输出数据*/,查询式输入输出的程序设计例某字符输入设备以查询方式工作:数据输入端口:0054H,状态端口:0056H。状态寄存器:D0=1,数据准备好,可以输入;状态寄存器:D1=1,输入设备发生故障要求:从该设备上输入80个字符,配上水平和垂直校验码(偶校验),向串行口输出。如果设备出错,显示错误信息后停止。,汇编语言程序:.dataBuffer DB 81 dup(?)Message DB Device Fault!,0DH,0AH,$.codeStart:MOV AX,data;对DS初始化 MOV DS,AX LEA SI,Buffer;设置SI为缓冲区指针 MOV CX,80;设置CX为计数器 MOVDL,0;DL置垂直校验码初值,Next:IN AL,56H;读入状态 TEST AL,02H;测状态寄存器D1 JNZ ERROR;设备故障,转ERROR TEST AL,01H;测状态寄存器D0JZ Next;未准备好,则等待,再测 IN AL,54H;准备好,输入字符AND AL,7FH;清最高位,进行校验JPE Store;已经是偶数个1,则转Store ORAL,80H;奇数个1,将最高位置为1Store:XOR DL,AL;产生垂直校验码MOV SI,AL;将字符送缓冲区 INC SI;修改地址指针LOOP Next;80个字符未输入完成,继续,MOVSI,DL;输入完成,保存垂直校验码Tranfer:LEA SI,Buffer;准备发送,SI中置字符串首址 MOV CX,81;发送字符数One:MOV AH,04H;设置串口输出功能号MOV DL,SI;取出一个字符INT 21H;从串口输出 INC SI;修改指针 LOOP One;输出下一个字符JMP Done Error:MOV AH,09H;设备故障,输出出错信息LEA DX,Message INT 21HDone:MOV AH,4CHINT 21H;返回DOSEND Start,说明:程序由二段循环程序组成:第一段程序从设备输入80个字符,同时产生它的水平/垂直校验码存入缓冲区;第二段程序将缓冲区内容通过串口输出。测试状态位要注意先后次序:由于设备故障将导致该设备不能正常输入,使完成标志(D0)恒为零。所以,在设备发生故障时先判是否完成可能导致程序死循环。产生水平校验码:从设备读入数据,清除最高位,根据剩余七位的奇偶特性决定最高位置1或不变(保持为0)。产生垂直校验码:将80个字节半加(异或)得到。,多个设备循环查询方法举例:三个设备,它们状态端口地址分别为STATl、STAT2、STAT3,三个状态端口均使用第5位作为准备好标志。TREE:MOV FLAG,3INPUT:IN AL,STAT l TEST AL,20H JZ DEV2 CALL PROC l,DEV2:IN AL,STAT2 TEST AL,20H JZ DEV3 CALL PROC2DEV3;IN AL,STAT3 TEST AL,20H JZ NOINPUT CALL PROC3NOINPUT:CMP FLAG,0 JNE INPUT,说明:PROCl、PROC2、PROC3是三个设备输入数据并进行处理的子程序。FLAG存放三个设备输入完成的标志,初始值为3。上例仅适用于三个设备工作速度都比较慢的情况;如果其中一个设备工作速度很快,而其他设备的输入输出处理程序运行时间又较长,可能发生“覆盖错误”。在这种情况下,应优先执行工作速度较快的外设的IO过程,然后再执行其他设备的IO过程。,3.2.2 中断方式程序查询方式的特点:程序查询方式解决了CPU与外设工作的协调问题,但是却大大降低了CPU的使用效率;在程序查询方式中,CPU处于主动地位,外设处于消极等待查询的被动地位;设备较多时,查询方式的数据传送很难使每一个外设都能工作在最佳状态。,程序中断方式特点:赋予系统中的外设某种主动申请、配合CPU工作的“权利”。外设把数据准备好时,主动向CPU发出一个请求信号。CPU接收到请求信号后,暂停当前的工作,进行该设备的数据传送操作。赋予外设“主动权”之后,CPU可以不必反复查询该设备的状态,而是正常地处理系统任务;CPU与外设处于某种“并行工作”的状态,从而提高CPU的工作效率。,中断方式举例:某外设在1秒内传送100个字节。若用程序查询的方式传送,则CPU为传送100个字节所化费的时间等于1秒。用中断控制方式传送,CPU为执行一个字节的传送需要进入一次中断服务程序。设CPU执行一次中断服务程序需要100s;传递100个字节CPU所使用的时间为100s100=10ms;CPU处理中断开销为1,99的时间可执行其他任务;中断方式的数据传送仍在程序的控制下执行,称为程序中断方式;适应于中、慢速的外部设备数据传送。,3.2.3 直接存储器存取(DMA)方式程序中断方式,程序查询方式的缺点:中断方式:每传送一次数据,CPU必须执行一次中断服务程序;对于高速数据传输,容易产生“覆盖错误”。程序查询方式:响应速度比中断方式要快一些,完成一次数据传输仍然需要执行七、八条以上的指令。CPU的工作速度不高时仍有可能跟不上外设数据传输的需要。,直接存储器传送(Direct Memory AccessDMA)将外设的数据不经过CPU直接送入内存储器;或者,从内存储器不经过CPU直接送往外部设备;一次DMA传送只需要执行一个DMA周期(相当于一个总线读写周期);能够满足高速外设数据传输的需要;需要一个专门的器件来协调外设接口和内存储器的数据传输,称为DMA控制器(DMAC),图3-10 DMA数据传送示意图,3.3 开关量输入输出接口,3.3.1 开关量输入接口 3.3.2 开关量输入接口,3.3.1 开关量输入接口 1 基本的开关量输入接口开关形态:单刀单掷开关/单刀双掷开关/按钮开关量通过三态缓冲器与系统数据总线连接常用的三态缓冲器:74LS244(输入输出同相)/74LS240(输入输出反相)一条输入指令可以同时读入8位或16位开关量。,图3-11 基本开关量输入接口,2 矩阵式开关量输入接口开关数量多时,可以排列成矩阵,例如:图3-13(键盘)数据输出端口连接8根“行线”(Row,R0R7);数据输入端口连接8根“列线”(Column,C0C7);电路特点:没有键按下时,列线端口输入为全“1”;行线端口输出全“1”时,不论有无键按下,列线端口输入仍然为全“1”;某一行线输出“0”时,如果该行上有一个键按下,则输入端口输入代码为7个“1”,1个“0”,0的位置与被按下键的位置相对应。,图3-12 键盘(矩阵式开关量输入)接口,键盘扫描与编码:对8根行线逐行扫描,识别按键的所在行、列,从而获得该键的代码;一个键的编码可以用它的二字节“行列码”表示。例如,(R3,C2)的二字节“行列码”为F7FBH:F7H=11110111:按键在R3行上;FBH=11111011:按键在C2列上;用“行列码”查表,可以得到这个键的代码。键的编码也可以用一字节“扫描码”表示。上例中按键的一字节“扫描码”为32H:高4位0011:键所在的行;低4位0010:键所在的列;键刚按下时,会产生“抖动”。,没有键被按下,返回1;有键按下时返回按键的二字节“行列码”(行码为高8位,列码为低8位);RPORT,CPORT 定义为行、列端口的地址。,键盘扫描程序:,unsigned int kbinput()unsigned int row,row0,column,code,k=0;outportb(RPORT,0);/*各行输出全0,测试有无键按下*/if(inportb(CPORT)/*延时20ms,消除抖动*/,if(inportb(CPORT)/*形成下一个行码*/,if(column=0 xff)return(0 xffff);/*未找到按键所在行,返回全“1”*/code=(row0,3.3.2 开关量输出接口1 基本的开关量输出接口常见的开关量输出:LED发光二极管LED指示灯用于指示室内仪表状态小功率LED可以由逻辑电路直接驱动:输出0:LED发光输出1:LED熄灭执行元件驱动线圈,表3-3 部分逻辑电路输出端电流,大功率LED驱动或执行元件驱动线圈的驱动:普通逻辑电路输出,外接功率放大三极管驱动;集电极开路驱动器(OC驱动器),输出端通过上拉 电阻接高压。,2 LED七段数码显示管接口,图3-15 多位LED数码显示接口,多位LED显示器驱动:设置位码,熄灭所有数码管;将一个数码管的字形代码(段码)送入段码端口;设置位码,点亮一个数码管适当延时后,重复以上过程多位不同的数字同时显示在不同的数码管上。送段码之前熄灭所有数码管可以消除“段码”和“位码”不同步产生的闪烁。,多位LED数码显示程序:需要输出的数字分别是1,2,3,4,5,6,7,8段码和位码的端口地址分别是segport 和 bitport,;数据段和堆栈段dataSegtabdb 40h,4fh,24h,30h,19h db 12h,02h,78h,00h,10hbuffer db 1,2,3,4,5,6,7,8 segcodedb?bitcodedb?stack100h,codeleddisp proc farpushds;保护各寄存器内容pushaxpushbxpushcxpushsimovax,data;装载dsmovds,axleabx,segtab;bx 置为七段码表首址movbitcode,80h;位码初始值为80H(从左边开始)movsi,0;si用作输出缓冲区指针,初值0movcx,8;cx 用作循环计数器,初值8,one:moval,0out bitport,al;送位码0,熄灭各LED moval,buffersi;取出一个待输出数字xlat;转换成七段码outsegport,al;向段码端口输出moval,bitcodeoutbitport,al;输出位码,点亮一个LEDrorbitcode,1;修改位码,得到下一个位码incsi;修改输出缓冲区指针calldelay;延时loopone;循环,点亮下一个LED,popsipopcx;恢复各寄存器popbxpopaxpopdsret;返回主程序leddispendpend,习题3,1.接口电路与外部设备之间传送的信号有哪几种?传输方向怎样?2.接口电路有哪些功能?哪些功能是必需的?3.I/O端口的编址有哪几种方法?各有什么利弊?80X86系列CPU采用哪种方法?4.按照传输信号的种类,I/O端口有几种?它们信号的传输方向怎样?5.I/O端口译码电路的作用是什么?在最小模式和最大模式下分别有哪些输入信号?6.外部设备数据传送有哪几种控制方式?从外部设备的角度,比较不同方式对外部设备的响应速度。,7.叙述一次查询式输出过程中,接口内各电路、信号的状态变化过程。8.比较程序中断方式和查询方式的区别,根据比较,指出中断工作方式的优缺点。9.比较DMA方式和程序中断方式的区别,根据比较,指出DMA工作方式的优缺点。10.某输入设备数据端口、状态端口、控制端口地址分别为70H,71H,72H。状态端口D5=1表示输入完成,控制端口D7=1表示启动设备输入(输入完成后由设备清除该位)。从该设备输入100个字节数据,存入以BUFFER为首地址的缓冲区。如果启动该设备1秒后仍未完成一次输入,则视为超时错,显示出错信息后返回。分别用8086汇编语言和C语言编写完成上述功能的I/O程序。,11.某输出设备数据端口、状态端口地址分别为220H,221H。状态端口D0=1表示输出完成。将数据段中以STRING为首地址的20个字符(用七位ASCII代码存储)添加水平和垂直校验发送到该外部设备。用8086汇编语言编写完成上述功能的I/O程序。12.试画出矩阵式键盘查询的程序流程图。13.试画出公用端口多位LED输出的程序流程图。,

    注意事项

    本文(第3章微型计算机输入输出接口.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开