第六章输入输出和中断技术接口技术的开始6.1输入输出接口(I/O接口)I/O接口就是将外设连接到系统总线上的一组逻辑电路的总称,也称外设接口I/O接口是连接微型计算机(微处理器)和外设的桥梁。微机系统框图片内系统(SOC)外部设备千差万别计算机的外部设备种类很多,它们的功能、结构有很大的差别。外部设备处理的信号形式不同,有模拟量、数字量、开关量。外部设备数据处理的速度不同,光盘驱动器的数据读取速度为40M字节/S,喷墨打印机最快只能工作在几十KB/S,多数外设工作与CPU通信工作在异步的定时方式。外部设备输入输出的数据格式不同,可以分为并行I/O,和串行IO。打印口是并行的;键盘、鼠标、调制解调器传送的是串行数据。计算机之所以能够对语音、图象、温度、压力等不同类型的物理量进行处理,是因为首先传感装置将这些非电量的物理量转换成模拟的电压或电流信号,再由接口电路将他们转换成数字信号传送给计算机。因此,I/O接口就是要解决和微处理器的连接问题、和外设的连接问题以及微计算机内部处理要求的并行数字信号和外设要求信号(或数据)之间的转换问题。ABDBCB键盘、显示并行接口串行接口电路AD、DA、PWM其他接口电路接口电路接口电路接口电路接口电路RS232,SPl,I2CRS485,usb,1394CPU存储器RAM,ROM,FLASH,E2PROM定时器,日历WatchDog打印机,硬盘6.1.1概述1.接口所要解决的问题(1)速度匹配问题CPU与外设(2)信号电平和驱动能力问题外设的驱动各不相同,电压高低,驱动电流(3)信号型式匹配问题(外设处理的信号:开关量、数字量、模拟量、非电量模拟电量数字量)(4)信息格式问题(总线上8\16\32位数字量,串行\并行,…)(5)时序匹配问题(外设的定时几乎都与CPU时序无关)2.I/O接口的功能(1)I/O地址译码与设备选择通过I/O接口挂在总线上的设备,由地址选择一个设备与CPU通信,其它必须高阻(2)信息的输入输出通过I/O接口,CPU可以读或写信息输出锁存、输入选通(3)命令、数据和状态的缓冲与锁存信息输出的一方数据输出后应在接收方读取数据前保持数据的稳定;若接受方的接受速度比输出方要慢,接口应可以快速接收输出方的数据存放在缓冲区中,然后按接收方的速度逐一将数据传输给接受方为了提高输出效率,接口也需要输出缓冲,并行转串行(4)信息转换接口要完成格式、电平、编码等的转换,并行串行,基带宽带,3.接口的结构分析各类接口的结构,都可以归纳为:1.和微型计算机(微处理器)总线的连接部分;2.和外设的连接部分;3.信号转换电路;4.上述三部分的控制逻辑。6.1.2I/O接口的编址方式(★)外设端口一般有三种类型:数据端口、状态端口、命令端口外设端口编址方式有两种:(1)与内存统一编址每一个I/O端口映射为内存中一部分存储单元,(一个单元或多个单元),若是全地址译码,一个端口对应一个单元,否则,一个端口对应一段或多段存储器空间。优点:寻址方式和内存一样多,缺点:对内存容量有潜在的影响;容易对端口误操作(2)I/O端口独立编址80X86,可以使用输入输出指令,实现端口独立编制,与存储器在完全独立地址空间,通过控制引脚区分。存储器:00000H~0FFFFFH,端口:0000H~0FFFFH不是所有的CPU都具有端口独立编址功能优点:物理上完全独立,不同的控制信号,有专用的指令进行缺点:端口地操作指令比较弱6.1.3I/O接口的地址译码将总线上的地址信号与相应的控制信号一起转换为某个端口的使能信号,这个操作就是端口地址的译码。(1)一般高位地址来选择外设的端口的基地址,用低位确定具体的端口(2)/MEMR或/MEMW/IOR/IOW(3)IO/M=0,对存储器操作,译码方式:门电路、专用译码器、可编程逻辑电路1M的存储器译码电路通过一组逻辑电路6.1.4I/O数据的传送方式1.并行传送方式8位\16位一齐传送打印机、硬盘接口IDE\EIDE、存储器2.串行传送方式数据一位一位地传送,电流环,RS-32,485,USB,1493,I2C,IC卡、磁卡、磁盘6.2简单接口电路(并行)6.2.1接口电路的基本构成输入输出的定义I/OPORT8088CPUI/OPORT外设端口地址数据数据控制信号状态控制主机简单I/O接口的原则输入接口:为了不让外来的数据没有允许时就进入内部的总线,一般都要用三态门隔离;输出接口:考虑到速度匹配问题,一个智能设备(包括主机),在输出数据时要有锁存器;演示6.2.2三态门接口74LS24474LS24574LS24474LS245系统总线选通使能D7D6D5D4D3D2D1D06.2.3锁存器接口芯片74LS27374LS373/37474LS273作输出接口地址译码根据电路图写出页码的地址范围(分析编程)根据给出的页码地址范围,画出译码电路(使用门电路和74LS138译码)(设计)门电路组成的全地址译码所有系统地址线全部参与译码。A19A18A17A16A15A14A13/CS使用74LS138的全地址译码参与译码的A13,A14,……A19A19A18A17A16A15A14A13/CS部分地址译码部分地址线参与译码A19A18A17A16A15A14A13/CS地址范围:74LS24474LS245movdx,83FCHinal,dxandal,0ffhjznext1jmpnext2movdx,83FCHinal,dxoral,00hjznext1jmpnext2将Q0和Q6对应的LED点亮movdx,0FFFFHmoval,41houtdx,al6.2.4简单接口的应用举例LED数码管,分为共阳(极)、共阴(极)两类。如果是共阴极的,com接低电平;要显示“1”,应使B、C段亮,给2、3引脚高电平03h,并保证一定的电流3~15mA,Seg_Code[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x7B,0x7C,0x39,0x5E,0x79,0x71,0x00};/G2A/G2BCBAG系统总线A8~A15≥A4~A7﹠74LS138A3A2A1A0/Y0/Y1a15a14a13a12a11a10a9a8A7A6A5A4A3A2A1A0000/Y0001/Y10111100000000/Y0的地址:0x00f0/Y1的地址:0x00f1全地址译码应用与连接/G2A/G2BCBAG系统总线A8~A13≥A4~A7﹠74LS138A3A2A1A0/Y0/Y1a15a14a13a12a11a10a9a8A7A6A5A4A3A2A1A0000/Y0001/Y101111000000XX/Y0的地址:0x00F00x40F0,0x80F0,0xC0F0/Y1的地址:0x00F10x40F1,0x80F1,0xC0F1部分地址译码FOREVER:MOVDX,0F1HINAL,DXTESTAL,1MOVAL,3FH;JZDISPMOVAL,06H;DISP:MOVDX,0F0HOUTDX,ALJMPFOREVERhgfedcba00111111‘0’00000110‘1’6.3输入输出的控制方式输入输出的控制方式主要有以下4种:***6.3.1无条件传送方式6.3.2查询方式6.3.3中断方式6.3.4直接存储器存取方式6.3.1无条件传送方式同步传送方式,针对的是随时都可以接收数据、随时都可以输出数据的设备或接口。应用对象:键盘、开关量输入、显示器或指示灯、步进电机(定时)、继电器(开关电源)霓虹灯、门闸、6.3.2查询方式更多的情况是:外设接收数据有延迟、外设准备数据需要一定的时间;典型的是打印机/storbeD0~D7/ACKBUSYAB/WR/RDBUSY/ACK/STBDB译码电路三态门DATA/STBBUSY/ACKIO实验开始读外设状态准备就绪否?传送数据xxxxx????有数据要传送吗?退出YNYN主机查询流程图开始初始化,清除忙标志有数据进入吗?置忙标志,处理数据发处理完数据的响应信号其他任务YN外设的数据处理流程图若主计算机每200us查询一次,打印机完成一次的处理的时间是1ms,结果????6.3.3中断方式查询方式可以满足实时要求不高的系统进行数据传送,一般都用于慢速的或总数不多的系统中,而且,效率比较低。实时性:一个事件发生到事件响应有一个严格的时间限制,视具体对象不同而不同,如果超过这一时间限制,会影响系统的稳定性、准确性甚至造成灾难。中断可以提高对事件的响应速度,提高程序的效率,一般用于实时系统中。6.3.4直接存储器存取方式当外设和存储器之间有大量数据要传送时,以上三种通过CPU的程序控制输入输出方式(PIO)的速度远远跟不上,必须使用DMA方式。DMA控制器8237的功能:8237收到接口发出的DMA请求后,DMA向CPU发出总线请求信号HOLD(高有效);当CPU响应请求并发出响应信号HLDA(高有效)后,DMA控制器能接管总线的控制,实现总线控制;能进行内存控制,能向外设和内存进行读写能控制传送数据的长度,并判断传送是否结束在DMA结束后,向CPU交回总线控制权DMA控制器的工作过程1.外设向DMA控制器发出请求DRQ2.DMA控制器向CPU发出总线请求HLOD3.CPU在完成当前总线周期后,立即进行响应。置高阻,发响应信号HLDA4.DMA控制器开始总线控制,并向外设发出DMA控制器的响应信号DACK5.进行外设和内存或内存和内存之间的数据直接传送,6.DMA控制器控制传送的过程,结束后撤销HOLD;CPU一旦检测到HOLD失效,立即撤销HLDA,并在下一时钟周期恢复总线控制