微型计算机原理及应用第三版电子教案省公开课一等奖全国示范课微课金奖课件_第1页
微型计算机原理及应用第三版电子教案省公开课一等奖全国示范课微课金奖课件_第2页
微型计算机原理及应用第三版电子教案省公开课一等奖全国示范课微课金奖课件_第3页
微型计算机原理及应用第三版电子教案省公开课一等奖全国示范课微课金奖课件_第4页
微型计算机原理及应用第三版电子教案省公开课一等奖全国示范课微课金奖课件_第5页
已阅读5页,还剩108页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章输入/输出接口8.1微型计算机输入/输出接口8.2并行通信与并行接口8.3可编程并行通信接口芯片8255A8.4串行通信及串行接口8.5可编程串行通信接口芯片8251A习题1/113输入/输出(I/O)接口电路是计算机主要组成部分。经过I/O接口电路可实现计算机与外部设备通信,与外部设备交换信息。在微机系统中,最惯用外部设备有键盘、显示器、打印机、磁盘机等。在工业微机控制系统中,I/O接口电路还可经过A/D转换器或D/A转换器与各种工业检测和控制仪表相连接,这些仪表装置也属于外部设备。2/1138.1微型计算机输入/输出接口

8.1.1输入/输出接口交换信号计算机I/O接口电路与外部设备间交换信号,通常有以下4种类型:(1)数字量:二进制形式数据,或是已经过编码二进制形式数据。最小单位为“位”(bit),8位称为一个字节(BYTE)。(2)模拟量:用模拟电压或模拟电流幅值大小表示物理量。模拟量信号不能直接进入计算机,必须经过A/D(模拟/数字)转换器,把模拟量转换成某种形式数字量,才能输入计算机。当外部设备需要模拟量信号控制时,I/O接口电路D/A(数字/模拟)转换器又能把数字量转换成模拟量信号。3/113(3)开关量:开关量信号只有两种状态,即“开”或“闭”。这么,只要用一位二进制数就可表示。(4)脉冲量:在计算机控制系统中还经惯用到计数脉冲、定时脉冲或控制脉冲。脉冲量信号是以脉冲形式表示一个信号。4/1138.1.2输入/输出控制方式在微机系统中,可采取输入/输出控制方式普通有4种:程序控制方式、中止控制方式、直接存放器存取方式(DMA方式)和输入/输出处理机方法。1.程序控制方式这是指在程序控制下进行信息传送。5/113(1)无条件传送方式:当外设已准备就绪,那就无须查询外设状态而进行信息传输,这就称为无条件传送。这种信息传送方式只适合用于简单外设,如开关和数码段显示器等。当简单外设作为输入设备时,输入数据保持时间要比CPU处理速度慢得多,所以可直接使用三态缓冲存放器与数据总线相连,如图8.1所表示。CPU执行输入指令时,读信号RD有效,选通信号M/IO=0,因而三态缓冲存放器被选通,于是已准备好输入数据便可进入数据总线。6/113图8.17/113当简单外部设备作为输出设备时,普通都需要锁存器。这是因为CPU送出数据应在接口电路输出端保持一段时间。在图8.1中,当CPU执行输出指令时,M/IO=0及WR=0,于是接口中输出锁存器被选中,CPU输出信息经过数据总线送入输出锁存器。(2)条件传送方式:CPU经过执行程序不停读取并测试外部设备状态,假如输入外部设备处于已准备好状态或输出外部设备为空闲状态时,则CPU执行传送信息指令。因为条件传送方式是CPU在不停调查外部设备当前状态后才进行信息传送,所以也称为“查询式传送”。所以,条件传送方式接口电路应包含:传送数据端口及传送状态端口。当输入信8/113息时,查询到外部设备准备好后,则使接口“准备好”标志位置1。当输出信息时,外部设备取走一个数据后,传送状态端口使标志为“空闲”状态,能够接收下一个数据。图8.2为查询式输入接口电路。输入设备在数据准备好后便往接口发出一个选通信号。9/113图8.210/113这个选通信号起两个作用,一是把外部设备数据送到接口锁存器中;另首先,它使接口中一个D触发器置1,从而使三态缓冲存放器READY=1。在查询输入过程中,CPU先从外部设备输入数据中读取状态字,检验“准备好”标志位是否为“1”。若已准备好,这时数据已进入接口锁存器,则执行输入传送指令。同时把“准备好”标志位清“0”,接着便可开始下一个数据传输过程。图8.3为查询式输出接口电路。CPU执行输出指令时,由选择信号M/IO及写信号WR产生选通信号把数据送入数据锁存器,同时使D触发器输出“1”。此信号首先告诉外部设备在接口中已经有数据要输出,另首先D触发器输出信号使状态寄11/113存器对应标志位置“1”,告诉CPU;当前外部设备处于“忙”状态,从而阻止CPU输出新数据。当外部设备从接口中取走数据后,通常也会送出一个应答信号ACK,ACK使接口中D触发器置“0”,从而使状态存放器中对应标志位置“0”,这么便可开始下一个数据输出过程。12/113图8.313/1132.中止控制方式中止控制方式普通用来传送低速外部设备与CPU之间信息交换。当外部设备需要与CPU进行数据交换时,由接口部件CPU发出一个中止请求信号,CPU响应这一中止请求,便可在中止服务程序中完成一个字节或一个字信息交换。这么每操作一次,CPU要打断原来执行程序去执行普通中止服务程序,对速度较高外部设备会产生信息丢失,所以不能采取。3.DMA控制方式DMA控制方式是一个成块传送数据方式。当某一外部设备需要输入/输出一批数据时,向DMA控制器发出请求,DMA控制器接收到这一请求后,14/113向CPU发出总线请求;若CPU响应DMA请求把总线使用权赋给DMA控制器,数据不经过CPU,可直接在DMA控制器操纵下进行。当这批数据传送完成后,DMA控制器再向CPU发出“结束中止请求”,CPU响应这一中止请求,即可收回总线使用权。所以,采取DMA控制方式,CPU只需在数据传送结束时响应一次中止,减轻了CPU负担,但DMA控制器普通只能对一台或几台同类型外部设备完成控制功效。4.输入/输出处理机控制方式对于有大量输入/输出设备微机系统,DMA控制方式已不能满足这种需要。Intel企业生产与86系列配套输入/输出处理机(IOP)8089。系统中设置了15/113IOP后,86系列CPU必须工作在最大工作模式。当CPU需要进行输入或输出操作时,只需在存放器中建立一个要求格式信息块,设置好需要执行操作和相关参数,然后把这些参数送入8089,IOP即会执行输入/输出操作。假如在数据传送过程出现差错,8089会进行重复传送或做必要处理。在整个数据块传送过程中,CPU可去完成其它作业。在微型计算机系统中,通常是用各种类型输入/输出接口芯片来完成CPU与其外部设备之间信息交换。下面介绍几个惯用接口芯片及工作原理。16/1138.2并行通信与并行接口

8.2.1并行通信并行通信是把一个字符各数位用几条线同时进行传输,传输速度快,信息率高。但它比串行通信所用电缆多,所以,并行通信惯用在传输距离较短(几米至几十米)和数据传输率较高场所。

17/1138.2.2并行接口

实现并行通信接口就是并行接口。一个并行接口可设计为只作为输出接口,如一个并行接口连接一台打印机;还可设计为只作为输入接口,如一个并行接口连接卡片读入机。另外,还能够设计成既作为输入又作为输出接口。它能够用两种方法实现,一个是利用同一个接口中两个通路,一个作输入通路,一个作输出通路;另一个是用一个双向通路,既作为输入又作为输出。前一个方法是用在主机需要同时输入和输出情况,如此接口既接纸带读入机,又接纸带穿孔机。后一个方法是用在输入输出动作并不一样时进行主机与外部设备之间,如连接两台磁盘驱动器。18/113图8.4经典并行接口和外部设备连接如图8.4所表示。图中并行接口用一个通道和输入设备相连,用另一个通道和输出设备相连,每个通道中除数据线外均配有一定控制线和状态线。19/113从图8.4中看到,并行接口中应该有一个控制存放器用来接收CPU对它控制命令,有一个状态存放器提供各种状态位供CPU查询。为了实现输入和输出,并行接口中还必定有对应输入缓冲存放器和输出缓冲存放器。1.并行接口输入过程外部设备首先将数据送给接口,并使状态线“数据输入准备好”成为高电平。接口把数据接收到数据输入缓冲存放器同时,使“数据输入回答”线变为高电平,作为对外部设备响应。外部设备接到此信号,便撤除数据和“数据输入准备好”信号。数据抵达接口中后,接口会在状态存放器中设置“输入准备好”状态位,方便CPU对其进行查询,接口也20/113能够在此时向CPU发一个中止请求。所以,CPU既能够用软件查询方式,也能够用中止方式来设法读取接口中数据。CPU从并行接口中读取数据后,接口会自动去除状态存放器中“输入准备好”状态位,而且使数据总线处于高阻状态。今后,又能够开始下一个输入过程。2.并行接口输出过程每当外部设备从接口取走一个数据之后,接口就会将状态存放器中“输出准备好”状态位置“1”,以表示CPU当前能够往接口中输出数据,这个状态位可供CPU进行查询。此时,接口也能够向CPU发一个中止请求。所以,CPU既能够用软件查询方式,也能够用中止方式设法往接口中输出一个数据。当21/113CPU输出数据抵达接口输出缓冲存放器中后,接口会自动去除“输出准备好”状态位,而且将数据送往外部设备,同时,接口往外部设备发送一个“驱动信号”来开启外部设备接收数据。外部设备被开启后,开始接收数据,并往接口发一个“数据输出回答”信号。接口收到此信号,便将状态存放器中“输出准备好”状态位重新置“1”,方便CPU输出下一个数据。22/1138.3可编程并行通信接口芯片8255A

8255A是Intel86系列微处理机配套并行接口芯片,它可为86系列CPU与外部设备之间提供并行输入/输出通道。因为它是可编程,能够经过软件来设置芯片工作方式,所以,用8255A连接外部设备时,通常不用再附加外部电路,给使用者带来很大方便。

23/1138.3.18255A芯片内部结构及其功效

由图8.5和图8.6可见,8255A由以下几部分组成:图8.524/113图8.625/1131.并行输入/输出端口A,B,C8255A芯片内部包含3个8位端口,其中:端口A包含一个8位数据输出锁存/缓冲存放器和一个8位数据输入锁存器;端口B包含一个8位数据输入/输出、锁存/缓冲存放器和一个8位数据输入缓冲存放器;端口C包含一个输出锁存/缓冲存放器和一个输入缓冲存放器。必要时端口C可分成两个4位端口,分别与端口A和端口B配合工作,通常将端口A和端口B定义为输入/输出数据端口,而端口C可作为状态或控制信息传送端口。2.A组和B组控制部件端口A与端口C高4位(PC7~PC4)组成A组,由A组控制部件实现控制功效,端口B与端口C低4位26/113(PC3~PC0)组成B组,由B组控制部件实现控制功效。它们各有一个控制单元,可接收来自读/写控制部件命令和CPU经过数据总线(D7~D0)送来控制字,并依据它们来定义各个端口操作方式。3.数据总线缓冲存放器这是一个三态双向8位数据缓冲存放器,它是8255A与8086CPU之间数据接口。CPU执行输出指令时,可将控制字或数据经过数据总线缓冲存放器传送给8255A。CPU执行输入指令时,8255A可将状态信息或数据经过总线缓冲存放器向CPU输入。所以它是CPU与8255A之间交换信息必经之路。27/1134.读/写控制部件这是8255A内部完成读/写控制功效部件,它能接收CPU控制命令,并依据它们向片内各功效部件发出操作命令。可接收控制命令以下:(1)CS——片选信号。由CPU输入,通常由端口高位地址码(A15~A2)译码得到,CS有效,表示该8255A被选中。(2)RD,WR——读、写控制信号。由CPU输入,RD有效,表示CPU读8255A,应由8255A向CPU传送数据或状态信息。WR有效,表示CPU写8255A,应由CPU将控制字或数据写入8255A。(3)RESET——复位信号。由CPU输入。RESET有效时,去除8255A中全部控制字存放器内容,并将各端口置成输入方式。28/113(4)A1和A0——端口选择信号。当A1A0=00,选择端口A;当A1A0=01,选择端口B;当A1A0=10,选择端口C;当A1A0=11,选择控制字存放器。29/1138.3.28255A芯片控制字及其工作方式

8255A中各端口可有3种基本工作方式:方式0——基本输入/输出方式;方式1——选通输入/输出方式;方式2——双向传送方式。端口A可处于3种工作方式(方式0,方式1和方式2),端口B只可处于两种方式(方式0和方式1),端口C常常被分成高4位和低4位两部分,可分别用来传送数据或控制信息。用户可用软件来分别定义3个端口工作方式,可使用控制字有定义工作方式控制字和置位/复位控制字。30/1131.控制字(1)定义工作方式控制字:格式如图8.7所表示。经过定义工作方式控制字可将3个端口分别定义为3种不一样方式组合,当将端口A定义为方式1或方式2或将端口B定义为方式1时,要求使用端口C一些位作控制用,这时需要使用一个专门置位/复位控制字来对控制端口C各位分别进行置位/复位操作。31/113图8.732/113(2)置位/复位控制字:只对端口C有效,其使用格式如图8.8所表示。图8.833/1132.工作方式(1)工作方式0:这是8255A中各端口基本输入/输出方式。它只完成简单并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息。假如3个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式组合,这种情况下,工作方式控制字详细格式应如图8.9所表示。34/113图8.935/113(2)工作方式1:被称作选通输入/输出方式,在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。采取工作方式1进行输入操作时,需要使用控制信号以下:①STB——选通信号。由外部输入,低电平有效。STB有效时,将外部输入数据锁存到所选端口输入锁存器中。对A组来说,指定端口C第4位(PC4)用来接收向端口A输入STB信号;对B组来说,指定端口C第2位(PC2)用来接收向端口B输入STB信号。②IBF——输入缓冲存放器满信号。向外部输出,高电平有效。36/113IBF有效时,表示由输入设备输入数据已占用该端口输入锁存器,它实际上是对STB信号回答信号,待CPU执行IN指令时,RD有效,将输入数据读入CPU,其后沿把IBF置“0”,表示输入缓冲存放器已空,外部设备可继续输入后续数据。对A组来说,指定端口C第5位(PC5)作为从端口A输出IBF信号;对B组来说,指定端口第一位(PC1)作为从端口B输出IBF信号。③INTR——中止请求信号。向CPU输出,高电平有效。在A组和B组控制电路中分别设置一个内部中止触发器INTEA和INTEB,前者由STBA(PC4)控制置位,后者由STBB(PC2)控制置位。37/113当任一组中STB有效,则把IBF置“1”,表示当前输入缓冲存放器已满,并由STB后沿置“1”各组INTE,于是输出INTR有效,向CPU发出中止请求信号。待CPU响应这一中止请求,可在中止服务程序中安排IN指令读取数据后置“0”于IBF,外部设备才可继续输入后续数据。显然,8255A中端口A和端口B均可工作于工作方式1完成输入操作功效,这种情况下工作方式控制字详细格式如图8.10所表示。经这么定义端口状态如图8.11所表示。38/113图8.1039/113图8.1140/113从图8.11中可看出,当端口A和端口B同时被定义为工作方式1完成输入操作时,端口CPC5~PC0被用作控制信号,只有PC7和PC6位可完成数据输入或输出操作,所以这实际上可组成两种组合状态:它们是端口A,B输入,PC7,PC6输入和端口A,B输入,PC7,PC6输出。采取工作方式1也可完成输出操作,这时需要使用控制信号以下:①OBF——输出缓冲存放器满信号。向外部输出,低电平有效。OBF有效时,表示CPU已将数据写入该端口正等候输出。当CPU执行OUT指令,WR有效时,表示将数据锁存到数据输出缓冲存放器,由WR上升41/113沿将OBF置为有效。对于A组,系统要求端口C第7位(PC7)用作从端口A输出OBF信号,对于B组,要求端口C第1位(PC1)用作从端口B输出OBF信号。②ACK——外部应答信号。由外部输入,低电平有效。ACK有效,表示外部设备已收到由8255A输出八位数据,它实际上是对OBF信号回答信号。对于A组,指定端口C第6位(PC6)用来接收向端口A输入ACK信号;对于B组,指定端口C第2位(PC2)用来接收向端口B输入ACK信号。③INTR——中止请求信号。向CPU输出,高电平有效。42/113对于端口A,内部中止触发器INTEA由PC6(ACKA)置位,对于端口B,INTEB由PC2(ACKB)置位。当ACK有效时,OBF被复位为高电平,并将对应端口INTE置“1”,于是INTR输出高电平,向CPU发出输出中止请求,待CPU响应该中止请求,可在中止服务程序中安排OUT指令继续输出后续字节。对于A组,指定端口C第3位(PC3)作为由端口A发出INTR信号;对于B组,指定端口C第0位(PC0)作为由端口B发出INTR信号。假如将8255A中端口A和端口B均定义为工作方式1完成输出操作功效,那么工作方式控制字详细格式如图8.12所表示。43/113图8.1244/113经这么定义端口状态如图8.13所表示。图8.1345/113从图8.13中可看出,当端口A和端口B同时被定义为工作方式1完成输出操作时,端口CPC6,7和PC3~PC0被用作控制信号,只有PC4,5两位可完成数据输入或输出操作。所以可组成两种组合状态:①端口A,B输出,PC4,5输入;②端口A,B输出,PC4,5输出。采取工作方式1时,还允许将端口A和端口B分别定义为输入和输出端口。假如将端口A定义为方式1输入端口,而将端口B定义为方式1输出端口,则其方式控制字格式如图8.14所表示。46/113图8.1447/113经定义端口状态如图8.15所表示。图8.1548/113从图8.15(a)可看出,这种情况下端口CPC5~PC0用作控制信号,只有PC7,6可作数据输入/输出用,这又能组成两种状态:①端口A输入,端口B输出,PC7,6输入;②端口A输入,端口B输出,PC7,6输出。反之,假如将端口A定义为方式1输出,将端口B定义为方式1输入,其方式控制字如图8.16所表示。经过这么定义端口状态如图8.15(b)所表示。从图8.15(b)可看出,端口CPC7和PC6,PC3~PC0分别用作控制信号,只有PC4和PC5可作数据输入/输出用,依据PC4,5两种方式又可组合成两种端口状态:①端口A输出,端口B输入,PC4,5输入;②端口A输出,端口B输入,PC4,5输出。49/113图8.1650/113总而言之,8255A中端口A和端口B工作在方式1时,可组成8种不一样状态组合方式。端口C低4位总是作控制用,而高4位中总是保持有两位依然可作数据输入/输出用,所以控制字中D0位可为任意值,由D1,D3,D4位不一样取值组成8种不一样状态组合方式。当然应该允许将端口A或端口B定义为方式0,与另一端口方式1配合工作,这种组合状态下所需控制信号降低,情况更简单些,不再详细叙述。(3)工作方式2:被称作带选通双向传送方式。8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向并行通信。其相关控制信号由端口C提供,并可向CPU发出中止请求信号。51/113当端口A工作于方式2时,允许端口B工作方式0或方式1完成输入/输出功效,其方式控制字格式如图8.17所表示。图8.1752/113端口A工作于方式2端口状态如图8.18所表示。由图可看出,端口A工作于方式2所需要5个控制信号分别由端口CPC7~PC3来提供。假如端口B工作于方式0,那么PC2~PC0可用作数据输入/输出;假如端口B工作于方式1,那么PC2~PC0用来作端口B控制信号(图8.18中未示出)。端口A工作于方式2所需控制信号以下:①OBFA——输出缓冲存放器满信号。向外部输出,低电平有效。OBFA有效,表示要求输出数据已锁存到端口A输出锁存器中,正等候向外部输出。CPU用OUT指令输出数据时,由WR信号后沿将OBFA置成有效。系统要求端口C第7位(PC7)用作由端口A输出OBFA信号。53/113②ACKA——应答信号。由外部输入,低电平有效。ACKA有效,表示外部已收到端口A输出数据,由ACKA后沿将OBF置成无效(高电平),表示端口A输出缓冲存放器已空,CPU可继续向端口A输出后续数据。它实际上是OBFA回答信号。系统要求端口C第6位(PC6)用来接收输入ACKA信号。③STBA——数据选通信号。由外部输入,低电平有效。STBA有效,将外部输入数据锁存到数据输入锁存器中,系统要求端口C第4位(PC4)用来接收输入STBA信号。54/113图8.1855/113④IBFA——输入缓冲存放器满信号。向外部输出,高电平有效。IBFA有效时,表示外部已将数据输入到端口A数据输入锁存器中,等候向CPU输入,它实际上是对STBA回答信号。系统要求端口C第5位(PC5)用作输出IBFA信号。⑤INTR——中止请求信号。向本端CPU输入,高电平有效。不论是进行输入还是输出操作,都利用INTR向CPU发出中止请求。对于输出操作,ACKA有效时将内部触发器INTE1置“1”,当OBFA被置成无效时,表示输出缓冲存放器已空,向CPU发出输出中止请求(INTRA有效),待CPU响应该中止请求可在中止服务程序中继续输出后续数据;对于输入操作,当STBA有效,外部将数据送入端口56/113A输入锁存器后,使IBFA有效,STBA后沿将内部触发器INTE2置“1”,向CPU发出输入中止请求(INTRA有效),待CPU响应该中止请求可在中止服务程序中安排IN指令读入从端口A输入数据。系统要求端口C第3位(PC3)用作INTRA信号。8255A中端口A工作于方式2时,允许端口B工作于方式0或方式1,完成输入/输出功效。8255A芯片4种端口状态如图8.19所表示。57/113图8.1958/1138.3.38255A并行接口应用举例

可编程并行接口8255A可为86系列微处理机提供3个独立并行输入/输出端口。利用输出端口与数模转换器相连,可控制输出模拟量大小。这个模拟量能够是电压高低、电流大小、速度快慢、声音强弱以及温度升降等。利用模数转换器又可将它们变换为数字量,经过并行输入端口送回微机系统中。这么一个闭环调整系统在实践中应用非常广泛。一个由8086CPU和8255A为主体组成闭环调整系统结构流程图如图8.20所表示。由图可看出,8255A中端口A工作在方式0,完成输出功效,用来向数模转换器输出8位数字信息。端口B工作在方59/113式1,完成输入功效,用来接收由模数转换器输入8位数字信息。端口C作控制用,PC7用作模数转换器ADC0809开启信号,PC2用作输入STBB信号,PC0用作中止请求信号INTRB,经过中止控制器8259A可向CPU发中止请求,这些都要由初始化程序来定义。60/113图8.2061/113由8255A端口A输出8位数字信息,经数模转换器DAC0832转换成模拟量。它输出模拟量是电流值,所以,DAC0832常与运算放大器一起使用,方便将模拟电流放大并转换为模拟电压,经过调整可到达。当CPU输出数字量从00H~FFH时,运算放大器输出0~4.98V模拟电压,该电压经传感器可调整控制现场温度、速度、声音或流量等其它参数。控制现场模拟信息经传感器和运算放大器可变换为一定范围内电压值,这模拟电压经模数转换器ADC0809可变换为8位数字信息送回8255A端口B,其转换速度取决于从CLK端引入标按时钟,端口B可采取查询或中止方式与CPU联络。若采取中止方式,中止请求信号经8259A中止排队后送CPUINTR端。62/113假如采取中止方式,并定义中止类型码为40H,那么首先应将对应中止服务程序定位到存放器中,并将其入口地址段基址和偏移地址值置入中止入口地址表中从100H地址开始四个字节中。可使用初始化和控制程序以下:INTT:MOVDX,8255A控制端口MOVAL,86HOUTDX,AL初始化8255AMOVAL,05HOUTDX,AL;63/113MOVDX,8259A偶地址端口MOVAL,13HOUTDX,ALMOVDX,8259A奇地址端口MOVAL,40HOUTDX,AL初始化8259AMOVAL,03HOUTDX,ALMOVAL,0FEHOUTDX,AL;POUT:MOVDX,8255A端口AMOVAL,XXH从端口A输出8位数据OUTDX,AL;64/113MOVDX,8255A端口CMOVAL,80HOUTDX,AL开启ADC0809MOVAL,0OUTDX,AL;WAIT:STIJMPWAIT40H类型中止服务程序:MOVDX,8255A端口BINAL,DX

……IRET65/113上述程序将端口A定义为方式0输出端口,不需要任何控制信号。将端口B定义为方式1输入端口,需要PC2作输入信号(SIBB),用来接收ADC0809转换结束命令EOC,由它将8位数字信息锁存到端口B数据输入锁存器中。需要PC0用作输出信号,向CPU发出中止请求。由主程序完成初始化功效后,经过端口A输出预置8位数字信息,用来控制现场某种模拟参数。从现场搜集到模拟量经过端口B以中止方式向8086CPU汇报,CPU响应该中止请求后可在中止服务程序中利用IN指令接收由端口B输入数字信息,并完成必要计算和处理后可向端口A输出新数字信息,以实现对现场模拟信息调整过程。对于中止服务程序详细处理过程应依据实际需要来编制对应程序。66/1138.4串行通信及串行接口

8.4.1串行通信线路工作方式

串行通信指是数据一位一位地依次传输,每一位数据占据一个固定时间长度。这种情况只要少数几条线就能够在系统间交换信息,尤其适合用于计算机与计算机、计算机与外部设备之间远距离通信,但串行通信速度比较慢。串行通信线路有以下3种方式:(1)单工通信:它只允许一个方向传输数据,如图8.21(a)所表示。A只作为数据发送器,B只作为数据接收器,不能进行反方向传输。67/113(2)半双工通信:它允许两个方向传输数据,但不能同时传输,只能交替进行,A发B收或B发A收,如图8.21(b)所表示。在这种情况下,为了控制线路换向,必须对两端设备进行控制,以确定数据流向。这种协调能够靠增加接口附加控制线来实现,也可用软件约定来实现。(3)全双工通信:它允许两个方向同时进行数据传输,A收B发同时可A发B收,如图8.21(c)所表示。显然,两个传输方向资源必须完全独立,A与B都必须有独立接收器和发送器,从A到B和从B到A数据通路也必须完全分开(最少在逻辑上是分开)。68/113图8.2169/1138.4.2串行接口

串行接口有许各种类,经典串行接口如图8.22所表示。它包含4个主要存放器:控制存放器、状态存放器、数据输入存放器及数据输出存放器。70/113图8.2271/113控制存放器用来接收CPU送给此接口各种控制信息,而控制信息决定接口工作方式。状态存放器各位叫状态位,每一个状态位都能够用来指示传输过程中某一个错误或者当前传输状态。数据输入存放器总是和串行输入/并行输出移位存放器配对使用。在输入过程中,数据一位一位从外部设备进入接口移位存放器,当接收完一个字符以后,数据就从移位存放器送到数据输入存放器,再等候CPU来取走。输出情况和输入过程类似,在输出过程中,数据输出存放器和并行输入/串行输出移位存放器配对使用。当CPU往数据输出存放器中输出一个数据后,数据便传输到移位存放器,然后一位一位地经过输出线送到外部设备。72/113CPU能够访问串行接口中4个主要存放器。从标准上说,对这4个存放器能够经过不一样地址来访问,不过,因为控制存放器和数据输出存放器是只写,状态存放器和数据输入存放器是只读,所以,能够用读信号和写信号来区分这两组存放器,再用一位地址来区分两个只读存放器或两个只写存放器。因为这种串行接口控制存放器参数是能够用程序来修改,所以称作可编程串行接口。73/1138.4.3串行通信数据收发方式

在串行通信中数据收发可采取异步和同时两种基本工作方式。1.异步通信方式异步通信所采取数据格式是以一组不定“位数”数组组成。第1位称起始位,它宽度为1位,低电平;接着传送一个字节(8位)数据,以高电平为“1”,低电平为“0”;最终是停顿位,宽度能够是1位,1.5位或2位,在两个数据组之间可有空闲位。异步通信数据格式见图8.23。图8.2374/113每秒传送数据位数称为传送速率,即波特率(bandrate)。波特率普通在300,600,900,1,200,2,400,…,9,600波特之间。计算机之间异步通信速率一经确定后,普通不应变动,但通信数据是可变动,也就是数据组之间空闲位是可变。2.同时通信方式在同时通信时所使用数据格式依据控制规程分为面向字符及面向比特两种。(1)面向字符型数据格式:面向字符型同时通信数据格式可采取单同时、双同时及外同时3种数据格式,如图8.24所表示。75/113图8.2476/113单同时是指在传送数据之前先传送一个同时字符“SYNC”,双同时则先传送两个同时字符“SYNC”。接收端检测到该同时字符后开始接收数据。外同时通信数据格式中没有同时字符,而是用一条专用控制线来传送同时字符,使接收方及发送端实现同时。当每一帧信息结束时均用两个字节循环控制码CRC为结束。(2)面向比特型数据格式:依据同时数据链路控制规程(SDLC),面向比特型数据以帧为单位传输,每帧由6个部分组成。第1部分是开始标志“7EH”;第2部分是一个字节地址场;第3部分是一个字节控制场;第4部分是需要传送数据,数据都是位(bit)集合;第5部分是两个字节循环控制码CRC;最终部分又是“7EH”,作为结束标志。面向比特型数据格式如图8.25所表示。77/113图8.2578/113在SDLC规程中不允许在数据段和CRC段中出现6个“1”,不然会误认为是结束标志。所以要求在发送端进行检验,当连续出现5个“1”,则马上插入一个“0”,到接收端要将这个插入“0”去掉,恢复原来数据,确保通信正常进行。通常,异步通信速率要比同时通信低。最高同时通信速率可到达800k位,所以适合用于传送信息量大,要求传送速率很高系统中。79/1138.5可编程串行通信接口芯片8251A

8251A是一个通用串行输入/输出接口,可用来将86系列CPU以同时或异步方式与外部设备进行串行通信。它能将并行输入8位数据变换成逐位输出串行信号;也能将串行输入数据变换成并行数据,一次传送给处理机。广泛应用于长距离通信系统及计算机网络。

80/1138.5.18251A芯片内部结构及其功效

8251A由发送器、接收器、数据总线缓冲存放器、读/写控制电路及调制/解调控制电路等5部分组成,如图8.26所表示。引脚信号如图8.27所表示。81/113图8.2682/113图8.2783/1131.发送器8251A发送器包含发送缓冲存放器,发送移位存放器(并→串转换)及发送控制电路3部分,CPU需要发送数据经数据发送缓冲存放器并行输入,并锁存到发送缓冲存放器中。假如是采取同时方式,则在发送数据之前,发送器将自动送出一个(单同时)或两个(双同时)同时字符(Sync)。然后,逐位串行输出数据。假如采取异步方式,则由发送控制电路在其首尾加上起始位及停顿位,然后从起始位开始,经移位存放器从数据输出线TXD逐位串行输出,其发送速率由TXC端上收到发送时钟频率决定。84/113当发送器作好接收数据准备时,由发送控制电路向CPU发出TXRDY有效信号,CPU马上向8251A并行输出数据。假如8251A与CPU之间采取中止方式交换信息,那时TXRDY作为向CPU发出发送中止请求信号。待发送器中八位数据发送完成时,由发送控制电路向CPU发出TXEMPTY有效信号,表示发送器中移位存放器已空。所以,发送缓冲存放器和发送移位存放器组成发送器双缓冲结构。与发送器相关引脚信号以下:(1)TXD——数据发送线,输出串行数据。(2)TXRDY——发送器已准备信号,表示8251A发送数据缓冲存放器已定。输出信号线,高电平有效。只要允许发送(TXEN=1及CTS端有效),则CPU就85/113可向8251A写入待发数据。TXRDY还可作为中止请求信号用。待CPU向8251A写入一个字符后,TXRDY便变为低电平。(3)TXEMPTY——发送器空闲信号,表示8251A发送移位存放器已空。输出信号线,高电平有效。当TXEMPTY=1时,CPU可向8251A发送缓冲存放器写入数据。(4)TXC——发送器时钟信号,外部输入。对于同时方式,TXC时钟频率应等于发送数据波特率。对于异步方式,由软件定义发送时钟是发送波特率1倍(×1),16倍(×16)或64倍(×64),在要求1倍情况时,TXC≤64kHz;16倍情况时,TXC≤310kHz;64倍情况时,TXC≤615kHz。86/1132.接收器8251A接收器包含接收缓冲存放器,接收移位存放器(串→并转换)及接收控制电路3部分。外部通信数据从RXT端,逐位进入接收移位存放器中。假如是同时方式,则要检测同时字符,确认已经到达同时,接收器才可开始串行接收数据,待一组数据接收完成,便把移位存放器中数据并行置入接收缓冲存放器中;假如是异步方式,则应识别并删除起始位和停顿位。这时RXDRY线输出高电平,表示接收器已准备好数据,等候向CPU输出。8251A接收数据速率由RXC端输入时钟频率决定。接收缓冲存放器和接收移位存放器组成接收器双缓冲结构。87/113与接收器相关引脚信号以下:(1)RXD——数据接收线,输入串行数据。(2)RXRDY——接收器已准备好信号,表示接收缓冲存放器中已接收到一个数据符号,等候向CPU输入。若8251采取中止方式与CPU交换数据,则RXRDY信号用作向CPU发出中止请求。当CPU取走接收缓冲存放器中数据后,同时将RXRDY变为低电平。(3)SYNDET/BRKDET——双功效检测信号,高电平有效。对于同时方式,SYNDET是同时检测端。若采取内同时,当RXD端上收到一个(单同时)或两个(双同时)同时字符时,SYNDET输出高电平,表示已到达同88/113步,后续接收到便是有效数据。若采取外同时,外同时字符从SYNDET端输入,当SYNDET输入有效,表示已到达同时,接收器可开始接收有效数据。对于异步方式,BRKDET用于检测线路是处于工作状态还是断缺状态。当RXD端上连续收到八个“0”信号,则BRKDET变成高电平,表示当前处于数据断缺状态。(4)RXC——接收器时钟,由外部输入。这时钟频率决定8251A接收数据速率。若采取同时方式,接收器时钟频率等于接收数据频率;若采取异步方式,可用软件定义接收数据波特率,情况与发送器时钟TXC相同。普通,接收器时钟应与对方发送器时钟相同。89/1133.数据总线缓冲存放器数据总线缓冲存放器是CPU与8251A之间信息交换通道。它包含3个8位缓冲存放器,其中两个用来存放CPU向8251A读取数据及状态,当CPU执行IN指令时,便从这两个存放器中读取数据字及状态字。另一个缓冲存放器存放CPU向8251A写入数据或控制字。当CPU执行OUT指令时,可向这个存放器写入,因为二者公用一个缓冲存放器,这就要求CPU在向8251A写入控制字时,该存放器中无将要发送数据。为此,该接口电路必需要有一定办法来预防。4.读/写控制电路读/写控制电路用来接收一系列控制信号,由它90/113们可确定8251A处于什么状态,并向8251A内部各功效部件发出相关控制信号,所以它实际上是8251A内部控制器。由读/写控制电路接收控制信号以下:(1)RESET——复位信号。向8251A输入,高电平有效。RESET有效,迫使8251A中各存放器处于复位状态,收、发线路上均处于空闲状态。(2)CLK——主时钟。向8251A输入。CLK信号用来产生8251A内部定时信号。对于同时方式,CLK必须大于发送时钟(TXC)和接收时钟(RXC)频率30倍。对于异步方式,CLK必须大于发送和接收时钟4.5倍。8251A还要求CLK频率要在0.74~3.1MHz范围内。91/113(3)CS——选片信号。由CPU输入,低电平有效。CS有效,表示该8251A芯片被选,通常由8251A高位端口地址译码得到。(4)RD和WR——读和写控制信号。由CPU输入,低电平有效。(5)C/D——控制/数据信号。C/D=1,表示当前经过数据总经传送是控制字或状态信息;C/D=0,表示当前经过数据总线传送是数据;均可由一位地址码来选择。5.调制/解调控制电路当使用8251A实现远距离串行通信时,8251A数据输出端要经过调制器将数字信号转换成模拟信号,数据接收端收到是经过解调器转换来数字信号,92/113所以8251A要与调制/解调器直接相连,它们之间接口信号以下:(1)DTR——数据终端准备好信号,向调制/解调器输出,低电平有效。DTR有效,表示CPU已准备好接收数据,它可软件定义。控制字中DTR位=1时,输出DTR为有效信号。(2)DSR——数据装置准备好信号。由调制/解调器输入,低电平有效。DSR有效,表示调制/解调器或外部设备已准备好发送数据,它实际上是对DTR回答信号。CPU可利用IN指令读入8251A状态存放器内容,检测DSR位状态,当DSR=1时,表示DSR有效。93/113(3)RTS——请求发送信号。向调制/解调器输出,低电平有效。RTS有效,表示CPU已准备好发送数据,可由软件定义。控制字中RTS位=1时,输出RTS有效信号。(4)CTS——去除发送信号。由调制/解调器输入,低电平有效。CTS有效,表示调制/解调器已作为接收数据准备,只要控制字中TXEN位=1,CTS有效时,发送器才可串行发送数据。它实际上是对RTS回答信号。假如在数据发送过程中使CTS无效,或TXEN=0,发送器将正在发送字符结束时停顿继续发送。94/1138.5.28251A芯片控制字及其工作方式

可编程串行通信接口芯片8251A在使用前必须进行初始化,以确定它工作方式,传送速率,字符格式以及停顿位长度等,可使用控制字以下:1.方式选择控制字其使用格式如图8.28所表示。B2B1位用来定义8251A工作方式是同时方式还是异步方式,假如是异步方式还可由B2B1取值来确定传送速率。×1表示输入时钟频率与波特率相同,允许发送和接收波特率不一样,RXC和TXC也可不相同,不过它们波特率系数必须相同;×16表示时钟频率是波特率16倍;×64表示时钟频率是波特率64倍。95/113图8.2896/113所以通常称1,16和64为波特率系数,它们之间存在以下关系:发送/接收时钟频率=发送/接收波特率×波特率系数L2L1位用来定义数据字符长度可为5,6,7或8位。PEN位用来定义是否带奇偶校验,称作校验允许位。在PEN=1情况下,由EP位定义是采取奇校验还是偶校验。S2S1位用来定义异步方式停顿位长度(1位、15位或2位)。对于同时方式,S1位用来定义是外同时(S1=1)还是内同时(S1=0),S2位用来定义是单同时(S2=1)还是双同时(S2=0)。97/1132.操作命令控制字其使用格式如图8.29所表示,TXEN位是允许发送位,TXEN=1,发送器才能经过TXD线向外部串行发送数据。图8.2998/113DTR位是数据终端准备好位。DTR=1,表示CPU已准备好接收数据,这时DTR引线端输出有效。RXE位是允许接收位。RXE=1,接收器才能经过RXD线从外部串行接收数据。SBRK位是发送断缺字符位。SBRK=1,经过TXD线一直发送“0”信号。正常通信过程中SBRK位应保持为“0”。ER位是去除错误标志位。8251A设置有3个犯错标志,分别是奇偶校验标志PE,越界错误标志OE和帧校验错标志FE。ER=1时将PE,OE和FE标志同时清“0”。RTS位是请求发送信号。RTS=1,迫使8251A输出RTS有效,表示CPU已作好发送数据准备,请求向调制/解调器或外部设备发送数据。99/113IR位是内部复位信号。IR=1,迫使8251A回到接收方式选择控制字状态。EH位为跟踪方式位。EH位只对同时方式有效,EH=1,表示开始搜索同时字符,所以对于同时方式,一旦允许接收(RXE=1),必须同时使EH=1,而且使ER=1,去除全部错误标志,才能开始搜索同时字符。从此以后全部写入8251A控制字都是操作命令控制字。只有外部复位命令RESET=1或内部复位命令IR=1才能使8251A回到接收方式选择命令字状态。3.状态控制字CPU可在8251A工作过程中利用IN指令读取当前8251A状态控制字,其使用格式如图8.30所表示。100/113图8.30101/113PE是奇偶错标志位。PE=1表示当前产生了奇偶错。它不中止8251A工作。OE是溢犯错标志位。OE=1,表示当前产生了溢犯错,CPU没有来得及将上一字符读走,下一字符又来到RXD端,它不中止8251A继续接收下一字符,但上一字符将被丢失。FE是帧校验错标志位。FE只对异步方式有效。FE=1,表示未检测到停顿位,不中止8251A工作。上述3个标志允许用操作命令控制字中ER位复位。TXRDY位是发送准备好标志,它与引线端TXRDY意义有些区分。TXRDY状态标志为“1”只反应当前发送数据缓冲存放器已空,而TXRDY引线端为“1”,除发送数据缓冲存放器已空外,还有两个附加条件是CTS=0和TXEN=1,这就是说它们之间存在以下关系:102/113TXRDY引线端=TXRDY状态位×(CTS=0)×(TXEN=1)在数据发送过程中,上面二者总是相同,通常TXRDY状态位供CPU查询,TXRDY引线端可用作向CPU发出中止请求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论