一、I/O接口的功能1.采用I/O接口的必要性*外围设备的品种繁多机械,电子,机电,磁电,光电*所传输的信息的要求不同数字,模拟,电压,电流等计算机与外设之间的信息交换应解决的问题:*速度不匹配*信号电平不匹配*信号格式不匹配*信号时序不匹配第六章I/O接口和总线接口:Interface,是为两不相容部件能连接而设置的一个界面。在计算机中是连接外设,实现数据传送的控制电路,是CPU与外设间信息通讯的桥梁。2.I/O接口应具有的功能(解决的方案)*设置数据缓冲器以解决两者速度差异所带来的不协调问题;输入:输入设备数据线三态缓冲器DBCPU寻址等待数据输入读入数据确定输入端口地址AB、M/IO、ALE、DT/R等待数据输入输入缓冲器输入缓冲器DBCPU输出:CPUDB锁存器输出设备数据线寻址输出数据等待数据输出确定输出端口地址AB、M/IO、ALE、DT/RCPUDB输出锁存器等待输出设备从锁存器取走数据*设置信号电平转换电路以解决两者之间信号电平的不一致问题例如:在串行通信中,常采用MC1488,MC1489等芯片实现电平转换。*设置信息转换逻辑以满足对各自信号格式的要求例如:A/D转换,D/A转换,串/并转换,并/串转换等。*设置时序控制电路以同步CPU和外设的工作接口电路接收CPU送来的命令或控制字,实施对外设的控制和管理;外设的工作状态和应答信号也通过接口及时返回给CPU(设备就绪,忙,缓冲器满,空),保证CPU与外设工作实现同步。*提供地址译码电路CPU与多个外部设备交换信息;每个外部设备通常包含若干个端口(数据,控制,状态)。*最好可编程应用二简单的I/O接口芯片常用I/O芯片:缓冲器(Buffer)和锁存器(Latch)缓冲器:无锁存功能,在外设和CPU之间起缓冲驱动和隔离作用。总线缓冲器具有三态功能。锁存器:除具有缓冲功能外还有数据锁存记忆功能。1缓冲器74LS2448路单向数据缓冲器74LS2458路双向数据缓冲器(1)、8路单向数据缓冲器74LS244三态输出的八缓冲器和线驱动器;8个输入端,分为二路—1A1~1A4,2A1~2A4;8个输出端,分为二路—1Y1~1Y4,2Y1~2Y4;分别由2个门控信号和控制;和为低,芯片工作,Y=A;74LS244缓冲后,输入信号被驱动,输出信号的驱动能力加大了;常用的缓冲器还有74LS240和74LS241等。G1G2G1G274LS244缓冲器逻辑电路和引脚图(2)、8路双向数据收发器74LS245三态输出的8总线收发器;16个双向传送的数据端,A1~A8,B1~B8;两个控制端—使能端和方向控制端DIR;芯片的功能见表6-2。表74LS245的真值表通常用于数据的双向传送、缓冲和驱动。常用的数据收发器还有74LS243、Intel8286、Intel8287等使能方向控制DIR传送方向LLB→ALHA→BH×隔开GG74LS245八总线收发器逻辑电路和引脚图2锁存器74LS3738D锁存器8输入:1D~8D8输出:1O~8O输入允许端:OE输出预选端:G使能G输出允许OE输入输出QHLLLHLHHLL×Q0×H×Z表6-174LS373的真值表H为高电平,L为低电平,Q0为原状态,Z为高阻抗,×为任意值。74LS373锁存器主要用于锁存地址信息、数据信息以及DMA页面地址信息等。常用的锁存器还有74LS273,573,Intel8282和8283等74LS373锁存器逻辑电路和引脚图三I/O端口及寻址方式I/O端口(Port):I/O接口电路中的寄存器及其控制逻辑。接口信息:①数据信息②状态信息③控制信息I/O接口中的三种I/O端口如图所示一个基本的外设接口如图所示“外设接口”是“CPU”与“外设”之间传递信息的控制电路,是“CPU”与“外设”之间传送信息的一个“界面”、一个连接部件。外设接口一边通过CPU的三总线(或微机总线)同CPU连接,一边通过三种信息—数据信息、控制信息和状态信息同外设连接。⑴数据端口:8位⑵状态端口:指示当前状态。常用状态位有。1位~n位①准备就绪位(READY):对CPU而言,是否可读写数据。a.输入端口READY=1,数据寄存器准备好,待CPU读取,取走则清0。b.输出端口READY=1,输出寄存器为空,可接收CPU下一个数据,数据到,则清零。②忙碌位(BUSY):表示输出设备能否接收数据。BUSY=1,外设正在进行操作,暂不允许CPU送新数据;操作完,则清零表示外设处于清闲状态,又允许CPU送下一数据到输出端口。③错误位(Error):如奇偶错,溢出错等⑶命令端口(CommandPortorControlPort)1位~n位存放CPU发出的命令和控制字,控制设备和接口动作。各种芯片的控制字无统一格式,其意义和用法要查阅用户手册。用户设计:用D触发器或三态缓冲器信息传送:用INPORT,OUTPORT指令BUSYREADYERROR状态端口2I/O端口寻址方法CPU通过对I/O端口寻址,连接并访问与I/O端口相连的外设。每个外设I/O端口都有自己的地址。I/O端口寻址方式I/O单独编址方式存储器映象寻址方式(MemorymappedI/O)⑴I/O单独编址方式系统中的I/O端口单独编址,构成一个I/O地址空间;与存储器地址空间无关,故不占用其空间。8086的I/O寻址方式:可用A0~A15寻址65536个I/O端口8086有两个地址空间:I/O地址空间和存储器地址空间,用M/IO选择,=0,I/O寻址,=1为M寻址。优点:①指令独立,程序清晰,可读性好;②指令短,执行速度快,不占内存空间;③I/O译码电路简单。缺点:①指令功能没有存储器指令强;②CPU需专门信号(M/IO)区分M和I/O读写信号。⑵存储器映象寻址即I/O地址映射到存储器空间把I/O端口看作一个存储器单元,与存储器单元统一编址,系统只有一个地址空间。优点:①指令集中,不必包含I/O指令,简化指令系统设计。②可使用功能强而灵活的存储器访问指令。缺点:①占用存储器地址,译码电路用全译码,故电路较I/O寻址复杂。②I/O操作时使用的指令字节长,增加操作时间。四数据传送的控制方式在数据传送过程中,关键问题是数据传送的控制方式1程序控制传送方式程序控制的数据传送分为无条件传送、查询传送和中断传送;以CPU为中心,数据传送的控制来自CPU,通过预先编制好的输入或输出程序(传送指令和I/O指令)实现数据的传送。§6.2CPU与外设之间的数据传送一、无条件传送无条件传送又称为同步传送。计算机在确定外设已经准备好的情况下,无需去查看外设的状态直接进行的传送。例如一些简单的外设,开关、继电器、数码管、发光二极管等,在它们工作时,可以认为输入设备已随时准备好向CPU提供数据,而输出设备也随时准备好接收CPU送来的数据,这样,在CPU需要同外设交换信息时,无需考虑外设的状态,直接就能够用IN或OUT指令直接对这些外设进行输入/输出操作。无条件输入接口由地址译码器、输入缓冲器(三态缓冲器)组成。无条件输出接口由地址译码器、数据锁存器组成。地址译码器常用74LS138译码芯片。G1/G2A/G2BCBA/Y0/Y1/Y7……G1=1,/G2A=0,/G2B=0时可译码CBA=000,/Y0=0,其余为1CBA=001,/Y1=0,其余为1CBA=111,/Y7=0,其余为1…...对于简单外设,若采用无条件传送方式,其接口电路也很简单。例如简单外设作为输入设备时,输入数据保持时间相对于CPU的处理时间要长得多,所峥可直接使用三态㜓冲器和数据总线相连,如图(a)所示。当执行输入的指令时,读信号有效,选择信号M/IO处于低电平,因而三态缓冲器被选通,使其中早已准备好的输入数据送到数据总线上,再到达CPU。所以要求CPU在执行输入指令时,外设的数据是准备好的,即数据已经存入三态缓冲器中。M/IO/RD/CS1Y11Y22Y4/G2…1A11A22A4…/G1+5v+74LS244无条件输入D0D1D7/CSG1/G2A/G2BCBA/Y0/Y1/Y2/Y7…AB74LS138INAL,PORT-IN简单外设为输出设备时,由于外设取数的速度比较慢,要求CPU送出的数据在接口电路的输出端保持一段时间,因而一般都需要锁存器,如图(b)所示。CPU执行输出指令时,M/IO和WR信号有效,于是,接口中的输出锁存器被选中,CPU输出的信息经过数据总线送入输出锁存器中,输出锁存器保持这个数据,直到外设取走。无条件传送方式下,程序设计和接口电路都很简单,但是为了保证每一次数据传送时外设都能处于就绪状态,传送不能太频繁。对少量的数据传送来说,无条件传送方式是最经济实用的一种传送方法。1D2D8D1Q2Q8Q…GM/IO/WR/CS74LS373+5VLED无条件输出/CSG1/G2A/G2BCBA/Y0/Y1/Y2/Y7…AB74LS138OUTPORT-OUT,AL…例:设计一输入接口(同步传送),8位开关量,地址C00H(8086)。A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0000011000000000074LS138G1/G2B/G2ACBAA11A10M/IOA5A4A3/Y0+A9A8A7A6+RD74LS373……/OEG+5VD7D0接口设计总结地址信号分析:将16位地址展开,按要求将地址一一对应填好,找出哪些位地址是低电平,哪些位地址是高电平,经逻辑组合后接入地址译码器。控制信号分析:根据接口性质(是输入接口还是输出接口),采用/RD和M/IO或/WR和M/IO信号进行控制。数据信号分析:输入接口一定要三态缓冲器,可要锁存器;输出接口一定要锁存器。作业设计一8位同步传送的输出接口电路,控制发光二极管。当某位输出为“1”时,发光二极管亮,否则发光二极管灭,地址为280H。二、查询传送方式(条件传送方式)查询传送也称为条件传送,是指在执行输入指令(IN)或输出指令(OUT)前,要先查询相应设备的状态,当输入设备处于准备好状态,输出设备处于空闲状态时,CPU才执行输入/输出指令与外设交换信息。为此,接口电路中既要有数据端口(可为输入,也可为输出),还要有一个一位的状态端口(输入)。查询传送方式的流程图:NYY取外设状态外设准备就绪?N开始传送数据传送完否?结束从图中可以看出,采用查询方式完成一次数据传送要经历如下过程:(1)CPU从接口中读取状态字。(2)CPU检测相应的状态位是否满足“就绪”条件。(3)如果不满足,则重复(1)、(2)步;若外设已处于“就绪”状态,则传送数据。1、查询式传送输入接口初始化读入状态数据准备好?输入一数据→CPU数据→内存缓冲区传送完?结束NNYY有一个一位的状态口(输入),有一个8位的数据口(输入)74LS138G1/G2B/G2ACBAA11A12M/IOA5A4A3/Y0+A9A8A7A6+RD74LS373……/OEG+5VD7D0+/Y1RDD0DQR选通信号Q8Q1D1D8查询式输入1.当外设发一个选通信号时,数据送入373中,同时状态信息为“准备好”,即Q=12.CPU查询到状态信息为“准备好”时,从数据线读取数据,同时使状态信息为“未准备好”,即Q=0MOVBX,0;初始化地址指针MOVCX,COUNT-1;字节数READ-S1:INAL,PORT-S1;读入状态位TESTAL,01H;数据准备好否?JZREAD-S1;否,循环检测INAL,PORT-IN;已准备好,读入数据MOV[BX],AL;存到内存缓冲区中INCBX;修该地址指针LOOPREAD-S1;未传送完,继续传送……;已传送完2、查询式传送输出接口初始化读入状态空否?输出一数据→外部传送完?结束NNYY有一个一位的状态口(输入),有一个8位的数据口(输出)74LS138G1/G2B/G2ACBAA11A12M/IOA5A4A3+A9A8A7A6+WR74LS373……/OEGD7D0+/Y1RDD1DQS数据选通Q8Q1D1