微机接口技术陈安明微机接口技术微机接口技术陈安明第1章微机接口技术概述第2章并行接口第3章串行通信及接口电路第4章数/模、模/数转换接口第5章微机总线接口第6章人-机交互接口微机接口技术陈安明1.1微机接口与接口技术的概念1.2I/O接口的基本结构1.3接口数据传送的控制方式第1章微机接口技术概述微机接口技术陈安明1.1.1微机接口与接口技术◆微机系统为了便于实现CPU对外设的控制处理和数据采集,需要与各种各具特色的外设交换信息,往往通过各种接口电路来实现。因此,微机系统除了微处理器和存储器以外,还有各种接口(Interface)逻辑部件。◆微机接口是一个特定的管理/协调、信息变换/缓冲部件,在硬件线路与软件实现上,保证完成微机和外设之间具有其特定要求和方法的数据传送。◆微机接口技术是专门研究CPU和外设之间的数据传送方式、接口电路工作原理和使用方法的一门软、硬件综合应用技术。微机接口技术陈安明1.1.2接口的分类按通用性分类:◆专用接口◆通用接口按功能分类:◆I/O接口(通用I/O接口、专用I/O接口)◆辅助/控制接口按数据传送格式分类:◆并行接口◆串行接口按硬件复杂程度分类:◆接口芯片◆接口卡(适配器)微机接口技术陈安明数字化存储示波器、数字化万用表终端、调制解调器A/D转换器开关量输入D/A转换器开关量输出键盘、鼠标、数字化仪、光笔、图形输入仪麦克风、扫描仪打印机显示器磁盘磁带软盘光盘智能仪器接口通信接口过程控制接口输入接口输出接口外存接口CPU内存数据总线地址总线控制总线微机接口技术陈安明错误检测功能1.1.3接口的功能I/O接口的基本功能:根据系统要求对外设进行管理与控制,实现信号逻辑和工作时序的转换,保证CPU与外设之间能进行可靠而有效的信息传送。从广义角度,I/O接口电路功能可以概括为:可编程I/O接口芯片可以检测外设的状态,对正常状态和故障状态进行判断和处理。微机接口技术陈安明•输入/输出数据缓冲和锁存功能接口电路中一般都设置有数据寄存器或数据锁存器,以实现数据输入和输出功能,并解决高速的主机与低速的外设之间的速度匹配问题。•端口(设备)选择和寻址功能微机系统中常有多个端口和外设,而CPU在任一时刻只能与一个端口交换信息,因此需要通过接口的地址译码电路对端口进行寻址。•数据格式转换功能外设所提供的数据、状态和控制信号格式可能与微机的总线信号不兼容,所以接口电路应进行相应的信号转换如串-并转换、数-模转换。微机接口技术陈安明•执行CPU的控制命令功能CPU对外设的控制命令一般以代码形式输出到接口电路的控制端口,接口电路对命令代码进行识别、分析,分解成若干控制信号,传送到I/O设备,并产生相应的具体操作。•中断管理功能当外设需要实时得到CPU的服务和响应,就要求接口处理有关中断事务(如中断请求、中断优先级排队、提供中断向量等)。实现中断控制器的功能。•可编程功能可编程I/O接口芯片可以在不改变硬件电路的情况下,修改接口的控制命令,就可以改变接口的工作方式,提高了接口的灵活性和可扩充性,使接口向智能化方向发展。微机接口技术陈安明1.1.4CPU与外设之间传送的信息1.数据信息CPU和外设交换的最基本的信息就是数据信息。数据信息又可细分为:数字量、模拟量、开关量。2.控制信息控制信息是CPU对接口工作方式的设置命令,或者是通过接口发送给外设的控制命令。3.状态信息状态信息是外设通过接口发给CPU的,反映其工作状态的信息,用来协调CPU和外设之间的操作。微机接口技术陈安明1.2I/O接口的基本组成◆虽然微机不同功能的I/O接口电路各不相同。I/O接口基本结构是由数据输入/输出寄存器、状态寄存器、控制(命令)寄存器、数据总线缓冲/锁存器、地址译码电路和控制逻辑电路等多个部件组成。◆CPU与外设之间的数据、状态和控制信息都是以“数据”形式,分别存放在接口不同的寄存器中,CPU通过系统数据总线DB传送的。所以,CPU与外设数据的输入/输出,以及联络、控制等操作,都是通过对接口相应寄存器的读/写操作来完成的。微机接口技术陈安明I/O接口的基本组成示意图输入/输出设备输入/输出寄存器数据信息控制(命令)寄存器控制信息状态寄存器状态信息微处理器数据总线缓冲/锁存器地址锁存器地址译码器读/写控制逻辑数据总线控制总线地址总线端口选择微机接口技术陈安明1.2.1I/O接口的端口◆I/O接口通常设置若干个(一般是2i个)寄存器,用做CPU和外设之间传输的数据、状态和控制信息的传输通道。接口中的寄存器称为端口。◆接口的每个端口有独立的地址码,CPU用端口地址码来区别不同设备接口的各个端口。一个接口的2i个端口地址通常是连续地址(如,某接口4个端口的地址为80H~83H)。◆端口的编址方式:•与存储器统一编址•端口独立编址(使用专门的I/O指令)微机接口技术陈安明1.2.2数据/地址总线缓冲/锁存器◆I/O接口的数据总线缓冲/锁存器用于实现接口内部数据线(D7~D0)与系统数据总线(DB)相应数据线的连接。◆I/O接口的地址锁存器用于实现接口的地址选择线与系统地址总线AB的低位(一般从A0开始的)地址线的连接。微机接口技术陈安明1.2.3端口地址译码电路◆I/O接口寄存器与端口地址之间的一一对应关系。接口地址译码电路用于选择接口内各个端口地址(寄存器),保证CPU与外设之间能够准确无误地选择相应端口进行传送。◆CPU在执行I/O指令时,通过地址总线发送外设接口的端口地址(如,INAL,80H)。◆端口地址码译码分为两部分:端口的高位地址码用作对接口的选择,通过接口外部的片选译码电路产生接口片选有效信号(CS);端口的低位地址码用作对端口的选择,通过接口内部的端口译码电路产生端口选通信号。微机接口技术陈安明接口地址译码电路示例I/O接口片选信号CS来自(3-8和4-16)两级译码电路接口。16个端口的地址范围:C120H~C12FH。4-16译码G1G2AG2B74LS138(3-8)CBAY0Y1····Y7与A15A14M/IOA13A12A11A10A9A8或或16个端口的接口CSA3~A0Y2A7~A4微机接口技术陈安明I/O接口的读/写操作例【例4.1】对接口输入/输出数据、状态数据、命令数据的读/写操作。某接口有数据输入、数据输出、状态、命令4个端口,端口地址分别为38H,39H,3AH,3BH。当A15~A214位地址码为00000000001110时,译码得到该接口片选(CS)信号有效,表明接口被选中;A1,A02位地址码的4种组合00,01,10,11,分别选择本接口的数据输入端口、数据输出端口、状态端口、控制端口。可以用以下指令实现对它们的读/写操作:INAL,38H;AL中读取该接口的数据信息OUT39H,AL;把AL中的数据从该接口输出INAL,3AH;AL中读取该接口的状态信息OUT3BH,AL;把AL中的命令信息从该接口输出微机接口技术陈安明1.2.4接口的控制逻辑◆接口内部控制逻辑实现系统控制总线CB与内部控制信号之间的变换,主要产生对接口内部的控制信号,以及接收CPU与外设之间数据传送过程的定时协调或联络应答信号。例如,接口控制信号通常有复位(RESET)、读/写(M/IO,RD,WR)、接口选通(CS)、中断请求(INTR)和中断响应(INTA)等信号。微机接口技术陈安明1.3.CPU与外设间数据传送控制方式◆I/O接口最基本的操作是实现微机和外设之间的数据传输。数据传输方式不同,CPU对外设的控制方式也不同,从而使接口的结构和功能也不同。◆一般来讲,CPU与外设之间传输数据的控制方式有三种:程序方式——无条件传送方式、条件传送(查询)方式中断方式直接存储器存取(DMA)方式微机接口技术陈安明1.3.1程序方式程序方式就是指用程序来控制进行信息传输的方式。很显然,这是一种软件控制方式。根据程序控制的方法不同,又可分为无条件传送方式和条件传送方式,其中后者亦称为查询方式。微机接口技术陈安明(1)无条件传送方式利用程序来控制CPU与外设交换信息时,若可以确信外设总是处于“准备好”的状态,不需任何状态查询,就可以直接进行信息传输。这种方式称为无条件传输方式。输入时,CPU通过一条IN指令由地址译码信号和读信号选中缓冲器。外设将数据送入缓冲器,完成一次输入操作。输出时,CPU通过一条OUT指令由地址译码信号和写信号作为锁存器的锁存信号,输出数据被打入锁存器,然后输出外设备,完成一次输出操作。微机接口技术陈安明(2)条件传送方式也称为查询方式,查询式传输,即用程序来查询设备相应的状态。外设在传输数据的过程中可以提供反映其工作状态的信号。如输入时,它可提供“准备好(READY)”信号,READY=1表示输入数据准备好。输出时,则可提供“忙(BUSY)”信号,BUSY=1表示其正在忙,BUSY=0表示CPU可以进行输出操作。1)程序流程(以输入为例)微机接口技术陈安明2)输入接口:从输入设备将数据送入锁存器,发选通信号作为D触发器的CLK,使其输出为高,经三态缓冲器后送上数据线,这就是READY信号。CPU通过一条IN指令进行查询,打开三态缓冲器,读入READY,若READY=1,再通过一条IN指令将数据缓冲器打开,读入输入数据,同时清除D触发器即使READY=0。完成一次输入操作。CPU两次IN指令所指向的地址是不同的,一次指向状态端口,一次指向数据端口。微机接口技术陈安明输出接口:CPU通过IN指令读数据可了解外设是否忙,BUSY=0,则CPU执行一条OUT指令,产生选通信号。该选通信号有两个作用:一个是作为输出锁存器的锁存信号。又作为D触发器的CLK,使其输出为高,用来通知外设取数,又经过状态寄存器接至数据线作为查询信号(BUSY=1)。输出设备从锁存器中取完数据以后,发出回答信号ACK,该信号清除D触发器,使BUSY=0,CPU即可开始输出下一个数据。CPU用OUT指令和IN指令进行操作,前者指向数据端口,后者指向状态端口。微机接口技术陈安明3)优先级问题当系统较大时,CPU需对多台设备进行查询服务,就出现了设备的优先级的问题,即究竟先为哪台设备服务。为了保证每台设备都有被查询服务的可能,系统可以采用轮流查询的方法来解决。先查询的设备具有较高的优先级,可以得到较早的服务,而后查询到的设备则具有较低的优先级。微机接口技术陈安明1.3.2中断方式(1)中断工作方式中断传送方式就是在CPU的工作过程中,当外设准备好时,它会主动向CPU发出请求,使其停止执行当前程序,转去执行一个为外设的数据输入/输出服务的程序,即中断服务子程序。中断服务子程序执行完以后,CPU又返回到原来的程序去继续执行。加入中断系统以后,CPU不需花大量的时间去查询外设的工作状态,只需根据外设的中断请求,进行中断响应,并能正确中断返回就行了。CPU与外设处在并行工作的情况,大大提高了CPU微机接口技术陈安明当系统中有多个中断时,可能出现两个以上的中断源同时提出中断请求,这时要求CPU根据中断优先权由高到低依次处理。并根据中断优先权的高低进行中断嵌套。微机接口技术陈安明(2)中断接口电路输入设备用STB将输入数据打入锁存器,同时使中断请求触发器置1。若该中断源没有被屏蔽,即中断屏蔽寄存器的输出为1,则接口向CPU发出中断申请INT信号。CPU接到中断请求信号以后,若其内部的允许中断标志IF为1,则在当前指令执行完进入中断响应,发信号,中断源将其中断类型码送上系统数据总线。CPU收到中断类型码以后,即可进入中断服务子程序,通过一条IN指令将三态缓冲器打开,读入输入数据,同时清除中断请求触发器。INTA输入设备三态缓冲器中断D请求Q中断Q屏蔽&&三态缓冲器锁存器地址译码STB+5V数据总线中断类型码地址总线数据总线INTRIORCINTA微机接口技术陈安明(3)中断优先级当系统中有多台设备同时提出中断请求时,需解决优先级的问题。解决优先级问题的方法有三种:软件查询法、简单硬件方式和专用硬件方式。1)软件查询法软件查询法只需有简单的硬件电路。可以