微机原理及接口技术课件CH6.ppt
第6章 输入/输出接口,输入输出接口基础 接口的功能与结构 端口编址接口地址译码方式接口信息传输方式 程序控制(无条件、条件)、中断、DMA、通道四.接口设计并行接口设计:无握手(无条件)、带握手信号、可编程并行接口串行接口设计 同步、异步,关键:设置接口电路,计算机与直接相联的外围设备进行数据交换的过程通常称为输入/输出(In/Out),而与远方设备进行数据交换的过程习惯上称为数据通信(data communication)。,3/81,CPU与外设两者的信号不兼容,在信号类型、功能定义、逻辑定义和时序关系上都不一致。如:信号类型有机械的、物理的、电信号等,信号形式有脉冲、模拟量或数字量等;两者的工作速度不匹配,CPU速度高,外设速度低;若不通过接口,而由CPU直接对外设的操作实施控制,就会使CPU处于穷于应付与外设打交道之中,大大降低CPU的效率;数据传输方式不同,有并行、串行之分。它们不能与CPU直接相连,必须经过中间电路再与系统相连,这部分电路被称为I/O接口电路。,接口结构与功能,接口主要功能 数据缓冲 信号转换 联络控制接口硬件结构 存储器接口、外设接口接口技术组成 硬件:地址译码、读写控制、总线(数据)缓冲 软件:驱动程序(初始化、传送控制、结束控制等),CPU与外设都是面向接口而非直接联络!,端口和接口的区别?,端口(PORT),一定要理解,I/O接口通常设置有若干个寄存器,用来暂存CPU和外设之间传输的数据、状态和控制信息。一般有三类寄存器,分别是数据寄存器、状态寄存器、控制寄存器。接口内的寄存器通常被称为端口。根据寄存器内暂存信息的类型,分别称为数据端口、控制端口和状态端口。每个端口有一个独立的地址,CPU可以用端口地址代码来区别各个不同的端口,并对它们分别进行读/写操作。,端口和接口的区别?,一定要理解,接口(Interface),1、若干个端口加上相应的控制逻辑电路构成了接口2、一个接口包含多个端口,端口是接口的一部分3、对接口的访问实质是对寄存器(端口)的访问,接口举例-USB通用接口芯片,-支持USB设备的控制传输、批量传输、中断传输。-内置控制传输的协议处理器,简化常用的控制传输。-通过U盘文件级子程序库实现单片机读写USB 存储设备中的文件。-并行接口包含8位数据总线,4线控制:读选通、写选通、片选、中断输出。-,接口举例,接口举例,接口分类,并行接口:一次传输多个数据位,串行接口:一次只有一位数据,传输方式,同步接口:总线相连,同步传输,异步接口:无共同的基准时钟,时序控制方式,程序查询方式:程序的执行实现,程序中断方式:传输时由中断请求信号触发,存储器直接存取访问方式(DMA),通道控制器,I/O处理机,传输控制方式,外围接口:与外设无关,是系统的一部分,外设接口:用于连接外设的接口,工作对象,端口编址,为了区分接口电路的各个寄存器,系统为它们各自分配了一个地址,称为I/O端口地址,以便对它们进行寻址并与存储器地址相区别 I/O端口有两种编址方式:存储器映像方式、I/O独立编址方式,端口编址方式1:独立编址(如Intel的系列芯片),特点:系统视端口和存储单元为不同的对象。优点:系统中存储单元和I/O端口的数量可达到最大。缺点:需专门信号来指示系统地址线上出现的是存储单元地址还是端口地址;专用的端口操作指令比较单一;,独立端口编址总线结构,端口编址方式2:存储器映像编址(如Freescale的系列芯片),特点:将端口看作存储单元,仅以地址范围的不同来区分两者。优点:对端口的操作和对存储单元的操作完全一样,因此系统简单,并且对端口操作的指令种类较多。缺点:CPU对存储单元和I/O端口的实际寻址空间都小于其最大寻址空间。,统一编址总线结构,I/O接口地址译码方法,地址译码的方法灵活多样 低位地址线直接接到I/O接口芯片的地址引脚,进行I/O接口芯片的片内端口寻址 高位地址线与CPU的控制信号进行组合,经译码电路产生I/O接口芯片的片选信号CS,实现系统中的接口芯片寻址,接口地址译码的设计,接口芯片的片选信号的生成仍然可以采用存储器的译码方式,即线译码、部分译码和全译码三种方式:,每组芯片使用一根地址线作片选,只有部分高位地址线参与译码形成片选信号,全部高位地址线都参与译码形成片选信号,课本P184 例6.1,练习:分析图中74LS138输出端的译码地址范围,课本P184 例6.2,输入输出控制方式程序控制方式,无条件控制 1.特点:要求外设数据变化缓慢,操作时间固定,可以被认为始终处于 就绪状态,如一组开关或LED显示管。2.优点:简单,CPU随时可无条件读/写数据。3.缺点:无法保证数据总是有效,适用面窄。条件控制(查询控制)1.特点:CPU主动、外设被动。执行I/O操作时CPU总要先查询外设状态;若传输条件不满足时,CPU等待直到条件满足。2.优点:解决了CPU与外设之间的同步问题,可靠性高。3.缺点:CPU利用率低,低优先级外设可能无法及时得到服务。,无条件控制方式举例,无条件控制,外设数据变化缓慢,始终处于就绪状态,如开关或LED接口结构简单(通常只需要数据端口),适用面较窄,无条件控制方式举例,条件控制(程序查询)方式,输入设备,输入选通,DB(数据、状态),输出设备,输出选通,DB(数据、状态),BUSY(1bit),接口避免了对端口的“盲读”、“盲写”,数据传送的可靠性高,且硬件接口相对简单。,外设应具有必要的联络(握手)信号如READY、ACK等;,缺点是CPU工作效率低,I/O响应速度慢;在有多个外设的系统中,CPU的查询顺序由外设的优先级确定,实时性差。,程序查询方式的打印机接口,状态位为0,则表明先前送出的数据已被打印,可以再送下一个数据;若状态位为1,则表明先前送出的数据还没打印,就不能再送数据出去,接口信息传输方式中断控制方式,中断(软件层面):是指CPU在执行正常程序时,为处理一些紧急发生的情况,暂时中止当前程序,转而对该紧急事件进行处理,并在处理完后返回正常程序的过程。,烧水的过程,方式1:查询 缺点:不停地到厨房查看,方式2:中断机制 优点:可以同时做多件事情或 处理紧急情况,中断(硬件层面):“中断”是外设向CPU发出的信号(高电平或低电平),它告诉CPU已发生了某种需要特别处理的事件,需要CPU停止正在执行的程序,转而去处理该事件或为其服务。,在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序(中断服务子程序),五.然后再返回被中断了的程序,继续执行。六.这个过程就是计算机系统中的中断。,计算机中断的过程,main()int a,b,sum;a=123;b=456;sum=a+b;,产生一个打印机中断,中 断 系 统,计算机中断系统:计算机中实现中断功能的软、硬件的总称,一般包括CPU内部配置的中断机构、外设接口中设计的中断控制器及各类中断服务子程序。,中断的相关概念,中断源:引起中断的原因,或能够发出中断请求信号的外设,中断的相关概念,中断类型码:处理器对各类中断的中断源进行的统一编号N。,中断系统相关概念,中断向量:中断向量即中断服务子程序的入口地址,也就是中断服务子程序的第一条指令在存储器中的存放地址。,中断系统相关概念,中断优先级:在系统中多个中断源可能同时提出中断请求时,需要按中断的轻重缓急给每个中断源指定一个优先级别,这就是中断优先级。CPU按照中断优先权的高低顺序,依次响应。同级优先级问题,断点:是指CPU执行的现行程序被中断时的下一条指令的地址,又称断点地址。,中断现场:是指CPU转去执行中断服务程序前的运行状态,包括CPU内部各寄存器、断点地址等。中断嵌套:若有更高级别的新中断源发出请求,且新中断源满足响应条件,则CPU中止当前的中断服务程序,转而响应高级中断。这种多级(重)中断的处理方式称为“嵌套”。,中 断 系 统,中断嵌套必须具备的几个条件,正处于响应状态的中断服务程序中,应开放总中断(IF位置1)新中断应具有比原中断有高的优先级;同级或低级均不能嵌套为保护各级中断服务程序的数据不被破坏,所有服务程序中均应有保护现场、恢复现场的指令每个中断服务程序末尾必须有IRET指令以示结束,从而返回被中断的程序地址处,中断屏蔽:在某些情况下,CPU可能不对中断请求信号作出响应或处理,这就是中断屏蔽。中断屏蔽标志系统在处理优先级别较高的中断请求时,不会理睬后来的级别较低的中断请求。,中断处理过程,中断检测 CPU内部硬件自动完成 中断判优 是否已有中断,哪个优先级更高中断响应 CPU内部硬件自动完成 中断处理服务 中断服务是根据用户自行编制的指令顺序完成各项操作的。中断返回,中断的全过程,Y,N,中断响应周期时序,CPU从引脚 INTA 发中断响应信号,接口芯片接收此信号,把中断类型号准备好;CPU再从引脚 INTA 发中断响应信号,接口芯片接此信号后,将中断类型号送至数据总线上;CPU从数据总线获取中断类型号。,中断如何判优?,中断优先级的判决,一个系统中可能有很多外设,而CPU可能只有有限的中断请求引脚。在可能有多个外设同时发出中断请求信号的系统中,应该设置外设的优先级判断机制。,软件查询2.硬件排队3.可编程中断管理芯片,简单易修改,先查询的优先级别就高。但占用CPU时间,且中断源较多时响应慢。,中断响应速度快,CPU利用率高;但成本高,且硬件一旦确定后中断源的优先级别不可更改。,(如中断优先权编码电路和菊花链式排队电路),结合了软件判优和硬件判优的特点。,(如Intel8259),中断的软件判优法,至CPU的INTR引脚,设备优先级由软件查询流程确定。,试画出工作流程(P193);,中断优先权编码电路,至CPU的INTR引脚,优先权失效信号(CPU没有处理中断时,置位),设备优先级由编码器连接方式确定。,1中断、1中断后2中断、2中断后1中断,1和2同时中断,设备优先级由链式电路连接顺序确定。,菊花链式排队电路,接口的中断方式电路,(同P195图6-22),程序中断与子程序调用的区别,子程序的执行是程序员事先安排好的(由调用子程序的指令转入);中断服务子程序的执行一般由随机的中断事件引发。子程序的执行受到主程序或上层子程序的控制;中断服务子程序一般与被中断的现行程序无关。不存在同时调用多个子程序的情况,因此子程序不需要进行优先级排队;而不同中断源则可能同时向CPU提出服务请求。,微处理器中的中断设置其实和人类活动相似,微处理器毕竟是一门人造科学。,直接存储器访问(DMA)方式,程序查询传送方式的特点电路简单不能实时响应适用于简单的无实时性要求的场合需要CPU参与程序中断传送方式的特点实时响应,需要中断控制电路适用于传输数据量较少,而要求实时性较高的场合需要CPU参与DMA方式解决一次性传输大量数据一般用于存储器与I/O之间,CPU不参与传输而运行其他程序,DMA 控制方式,内存与外设间有大量数据交换时,采用中断方式,每传送一次数据,就必须经历中断处理的全部步骤,而且一般需要借助CPU内部的寄存器作为中介DMA方式:不用CPU的寄存器作传数中介,完成存储器和外设间的直接传数,CPU必须将系统总线的控制权让给DMA控制器(DMAC),DMA 控制方式,DMA特点:数据不通过CPU,而由DMAC直接完成存储单元或IO端口之间的数据传送。,程序/中断控制方式:以CPU为控制中心。DMA控制方式:DMAC管理大部分的I/O事物,完成传送后DMAC主动通知CPU。,DMA方式原理方框图,CPU,DMA控制器,存储器,IO外设,HLDA,HOLD,DB,AB&CB,PC机中的DMA,DMA控制器结构,外设申请 DMA操作,总线响应 DMA,DMAC初始化,DMAC传输,DMAC具备的功能,向CPU发出总线请求信号HOLD。当CPU允许出让总线控制权时,能够接收CPU发出的总线应答信号HLDA,并接管总线进入DMA方式。具有寻址功能,对存储器及I/O寻址并修改地址指针。具有控制逻辑,能发出读/写控制信号。决定传输的字节数,并判断DMA是否结束。发出DMA结束信号,交出总线权,使CPU恢复正常工作状态,DMA传送过程,I/O,DMA请求,DMAC,总线请求,CPU,总线响应,DMA响应,可在I/O设备和存储器之间直接传送数据。传送时,源和目的均直接由硬件指定。传输的数据块长度需要指定,计数由硬件自动进行。在一批数据传输完成后,一般通过中断方式通知CPU进行后续处理。CPU和I/O设备能在一定程度上并行工作,效率高。一般用于高速批量数据的传输,通道方式,I/O处理机:采用专用计算机(通道Channel、外围处理机PPU)来负责I/O工作。智能终端、智能外设,无握手并行接口(对应无条件程序控制方式),端口译码器,外设数据变化缓慢,始终处于就绪状态,如开关或LED 接口结构简单(通常只需要数据端口),适用面较窄,实例键盘接口,一、线性键盘:按键并联方式与接口连接每一个按键需要占用I/O接口的一根口线 由程序处理按键的操作情况二、矩阵键盘:按键按照行、列方式排列 比线性键盘节约I/O口线 非编码键盘:CPU处理按键的操作,降低了CPU效率 编码键盘:专用的单片机处理按键操作,缓减了CPU的负担,矩阵键盘结构,8,位,并行,输入,端口,8,位,并行,输出,端口,+5V,10k,10k,10k,10k,第,0,行,第,1,行,第,2,行,第,7,行,第,0,列,第,1,列,第,2,列,第,3,列,第,7,列,采用行扫描法和行反转法识别按键,第一步:判断是否有键按下 令输出端口的各位都为低电平,即各列都为0 读取输入端口数据,如果输入不等于FFH,则有键被按下,第二步:确定按键号确定按键的列数:令输出端口的某一列为低电平,其它列为高电平;读取该列对应的输入端口值,看是否有行线处于低电平 确定按键的行数:低电平0对应的那一位(采用右移一位的方式找到该位)。,行扫描法(P199),采用行反转法的88矩阵键盘(课本没有),8位并口B,+5V,10k,10k,10k,10k,1.A口输出全0(“00H”)。2.B口读入数据,若为全1(“0FFH”)则表明无键按下,退出;否则B口读入值包含按键所在列信息(如“0FEH”表示按键在第0列)。3.B口输出步骤2中读入的数据(如“0FEH”)。4.A口读入数据,即可判断按键所在行信息(如“0FBH”表示按键在第2行)。5.根据步骤2及4中读入的信息即可知道按键编码。,8位并口A,键盘接口实例,ARM也可通过GPIO口与键盘相连,AT89C52,数码显示接口,共阴结构:输入控制端为高电平时,对应的LED亮;共阳结构:输入控制端为低电平时,对应的LED亮;多位数码管组成的数码显示屏可以有动态和静态两种显示方式。,68数码显示屏静态显示接口,各位(每位8段)输入控制端分别与接口电路的输出端相连,占用I/O口线多;各段(LED数码管)恒定地导通或截止;,68数码显示屏动态显示接口,带锁存功能的并行输出端口,D,0,D,7,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,D,5,D,4,D,3,D,2,D,1,D,0,位,0,位,1,位,2,位,3,位,4,位,5,D,0,D,5,段选有效,位选有效,带锁存功能的并行输出端口,两种显示方式的比较,一、静态显示:显示位数少时使用各位(每位8段)输入控制端分别与接口电路的输出端相连,占用I/O端口资源多;各段(LED)恒定地导通或截止;二、动态显示:显示位数多时使用各位共享输入控制端,占用I/O端口资源少;需同时进行位选(选中被点亮的位)和段选(输入控制端确定各LED的发光情况)各位轮流显示一遍的总时间不能过长(不大于20ms);,带握手的并行接口(同本章条件查询方式),输入设备,输入选通,DB(数据、状态),输出设备,输出选通,DB(数据、状态),BUSY(1bit),接口避免了对端口的“盲读”、“盲写”,数据传送的可靠性高,且硬件接口相对简单。,外设应具有必要的联络(握手)信号如READY、ACK等;,缺点是CPU工作效率低,I/O响应速度慢;在有多个外设的系统中,CPU的查询顺序由外设的优先级确定,实时性差。,例:打印机并行接口,带A/D、D/A接口的数字系统,放大器,传感器,采样/保持器,A/D,计 算 机 系 统,控制对象,执行部件,多路模拟开关,IO接口,IO接口,D/A,放大器,A/D功能:将模拟电压成正比地转换成数字量,分辨率,ADC的主要性能指标,用于表示ADC对微小信号的分辨能力(数字量变化一个最小量时模拟信号的变化量)。,其中,n为转换器的位数,VFS为输入电压的满刻度值;由于分辨率与位数n有直接关系,通常也用位数n来表示ADC的分辨率。,则分辨率为:5V/24=5V/16=0.3125V,则分辨率为:5V/28=5V/256=0.0195V,若数字量为4bit,满量程为5V,若数字量为8bit:,量化误差 速度(转换时间)其它,完成一次A/D转换所需要的时间,即从它接到转换命令起直到输出端得到稳定的数字量输出所需要的时间。,由于AD的有限分辨率而引起的误差。,量程(输入电压范围)、输出电平、编码方式、功率、温度等。,START,逐次比较;8路输入;8位输出(分辨率);时钟640kHz时转换时间100s;,ADC 0809的内部结构及基本功能,八位三态输出锁存,通道地址锁存与译码,控制,八路模拟通道选择开关,比较器,逐次逼近寄存器SAR,D/A,IN0,IN1,IN7,AADA,AADB,AADC,ALE,REF+,REF-,EOC,OE,D07,AADA,AADB,OE,八路,八位,逐次逼近寄存器SAR,START,输出允许(允许从锁存器中读取数据),转换结束信号(高电平有效),例:AD接口典型的AD转换芯片ADC0809,美国国家半导体公司8路模数转换电路芯片,采用逐次逼近AD转换原理,9,8路轮流采样;ALE、START、OE信号EOC作为状态输入,供CPU查询使用;,只有1路采样;ALE、START、OE与地址译码有关;EOC为中断请求信号,CPU在中断服务程序中读结果数据;,CPU,CPU,可编程接口电路,课本P205 图6-34,MCS-51系列单片机,可编程接口芯片8255,8255是一种通用的可编程并行IO接口芯片,它是为Intel系列微处理器设计的配套电路,也可用于其它嵌入式系统设计中。,例如:交通信号灯控制、生产线在线监控系统、高速并行数据采集系统、电机控制系统等,初始化时用户只需确定端口地址及控制字,并通过送出控制字确定8255A各端口的工作方式;数据传送过程中,用户通过读/写端口A、B、C实现数据收/发。注意C口的位操作方式可以通过写控制字来实现。,可编程通用并行接口芯片Intel8255,最简单的并行接口可由一些锁存器和(或)总线缓冲器/驱动器组成,只能完成CPU与外设的无条件数据传送 而8255可完成无条件和查询式、中断控制式数据传送,其具体的工作方式由用户程序确定。,8255的内部结构及基本功能,8255的外接特性及端口地址,8255的三种工作方式,8255的程控技术,8255的内部结构及基本功能,读/写逻辑控制,三个独立的8位数据端口;C口的其它用法:用作两个独立的4位数据端口;用作状态或控制口,按位置位或复位;为A、B口提供所需的各种联络信号;具有三种工作方式;,8255的外部特性及端口地址的确定,读/写端口A,读/写端口B,读/写端口C,写控制寄存器,总线高阻态,1,8255 的工作方式控制字,8255的C口置/复位控制字,例:某8255A占用端口地址范围0F00F3H 1)确定各端口地址。2)编程设置8255A:A口方式0输入,B口方式0输出PC7PC4 输出,PC3PC0输入,结论:A口地址0F0H,B口地 址0F1H,C口地址0F2H,控制口地址为 0F3 H;控制字1001 0001B,即91H MOV AL,91H OUT 0F3H,AL,解:,A7 A6 A5 A4 A3 A2 A1 A0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1,0 0 0 1 1 01 1,数据传输特点:1.最多可提供三个8位端口或两个8位端口两个4位端口 2.所有端口均为单向传输(即只能做输入或输出)3.可实现无条件或自定义联络信号(C口)的查询传送,CPU,8255,打印机并行接口,PA07,PC7,PC2,地,D07,STB,BUSY,地,DB,8255的工作方式0基本输入或输出,两个控制字的值是多少?,用8255实现矩阵扫描键盘和动态数码显示屏的控制。,OUT,IN,OUT,OUT,8255,8255的工作方式1选通的输入或输出,PA7PA0,PC4,PC5,PC3,INTEAPC4,与门,IBFA,STBA,INTRA,RD,D7D0,A口方式1输入时相应的联络信号,B口方式1输入时相应的联络信号,IBFB,STBB,INTRB,PB7PB0,PC2,PC1,PC0,INTEBPC2,与门,RD,D7D0,一、输入接口信号的定义与时序,PB7PB0,PA7PA0,STB,IBF,INTR,RD,外设送来数据,当INTE=1时,中断服务程序中CPU从A口或B口读取外设输入的数据,A口方式1输出时相应的联络信号,B口方式1输出时相应的联络信号,PA7PA0,PC7,PC6,PC3,INTEA,与门,ACKA,OBFA,INTRA,WR,D7D0,PB7PB0,PC1,PC2,PC0,INTEB,与门,ACKB,OBFB,INTRB,WR,D7D0,二、输出接口信号的定义与时序,8255A通知外设读取数据,送往外设的数据写入相应端口,WR,OBF,INTR,ACK,当INTE=1时,PB7PB0,PA7PA0,中断服务程序中CPU向A口或B口写入输出给外设的数据,数据传输特点:1.最多可提供两个8位端口 2.所有端口均为单向传输(即只能做输入或输出)3.可实现固定联络信号(C口)的查询传送或中断传送,未定义的C口信号线可自行定义使用。,数据传输特点:1.A为双向端口,B不能工作在方式2,C口有多种组合方式2.可实现固定联络信号(C口)的查询传送或中断传送,未定义 的C口信号线可自行定义使用。,8255的工作方式2双向输入、输出,PA7PA0,ACKA,OBFA,D7D0,RD,WR,STBA,IBFA,INTEA1PC4,INTEA2PC6,与门,PC3,INTRA,或门,与门,中断服务程序中CPU可通过查询IBF和OBF信号来确定此次中断是输入还是输出操作,串口基本功能及结构,实现数据的串/并、并/串转换;实现串行数据的格式化(如自动加入起始位、校验位或同步字符等);实现差错控制(如异步通信中的帧格式错、奇偶校验错、溢出错等);实现接口间联络信号的解释和控制。,I2C接口(Inter IC Bus),包括分频寄存器、地址寄存器、数据寄存器、控制寄存器和状态寄存器等多个可以编程的寄存器同步串行接口,I2C总线时序及过程示意图,START起始状态、寻址、数据传送方向、从接口应答、数据传送、数据应答及STOP结束状态,如图中的A、B、C、D、E、F所标示,SDA 线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变。,SPI接口(Serial Peripheral Interface),同步全双工串行接口,可编程通用串行接口芯片Intel8250,8250是一种常用的可编程通用异步串行通信接口芯片(UART,Universal Asynchronous Receiver Transmitter)其主要特点包括:波特率可程控、数据格式可程控、可与Modem通信并报告其状态、可进行中断优先权控制、具有故障报告等内部诊断功能。,早期的IBM PC/XT中UART芯片是8250(586之前),后续PC则采用16550芯片。,8250的内部结构,电平转换,设定波特率、帧格式等,记录帧错、奇偶错等传输状态,进行数据帧的处理,串口通信,插座,课本P214 例6.4,作业:2、3、4、6、7、8、12,作业,补充不可屏蔽的掉电中断 P189,