




已阅读5页,还剩228页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第8章输入/输出方法及常用的接口电路,8.1概述8.2I/O端口的编址及基本输入/输出方法8.38255A并行接口电路8.4可编程计数/定时器8253/82548.5串行通信及8251串行接口电路8.6DMA控制器8237A8.7多功能I/O接口电路82380,.,8.1概述,图8.1主机通过I/O接口与外设交换信息,.,.,图8.2经接口电路传送数据(a)经接口输入数据;(b)经接口输出数据,.,(2)接口电路为主机提供有关外设的工作状态信息及传送主机送给外设的控制命令。如输出时,CPU将信息送到接口以备输出;输入时,输入设备将数据送到接口寄存,以备CPU来读取。这些均由接口发出相应的信号来告诉外设或CPU。这些信号主要有“准备好”、“忙”、“闲”等。,.,(3)借助于接口电路对信息的传输形式进行变换。一般CPU在处理数据时均以并行的方式处理,例如Z80-CPU以8位一个字节为处理单位,但有的外设只能接受串行的,即一位一位传送的数据方式,此时就需要有一个接口来处理并行或串行数据的转换。在此应指出接口(Interface)和端口(Port)的区别。端口(简称口)这个术语实际上指那些在接口电路中完成信息的传送,并可由编程人员寻址进行读写的寄存器。若干个口加上相应的控制电路而构成接口。所以,一个接口往往含有几个端口。CPU可通过输入/输出指令向这些端口取或存信息。端口主要有两类:一类为状态口和命令口。状态口主要用来检测外设的工作状态。CPU通过输入指令来检测某一外设的工作状态,以决定下一步的操作,通常称此为输入(设备)状态字。,.,所以说状态字是描写外设所处状态的。CPU可通过输出指令向某一外设发出控制命令以控制相应的外设,通常称此为输出(设备)控制字。所以说控制字是控制外设实际操作的命令。控制字中每一位所具有的状态代表了某种操作命令。例如“启动(或停止)电机转动”,“步进电机转向”,“改变某种频率”等。另一类为数据口,它传送的是数据信息,如数字、字符及某种特定的编码等。,.,图8.3外设通过接口与系统的连接,.,8.2I/O端口的编址及基本输入/输出方法,8.2.1I/O端口的编址方法,1.I/O端口的统一编址方式统一编址是将I/O端口看成是存储器空间的一个组成部分,按照存储器单元的编址方法统一编排地址号。这样,CPU对I/O端口的输入/输出操作如同对存储单元的读/写操作一样。对存储器的各种寻址方式也同样适用于对I/O端口。所有访问内存的指令同样都可用于访问I/O端口。统一编址的最大优点是无需专门的I/O指令,从而简化了指令系统的设计,并能省去相应I/O操作的对外引线。而且CPU可直接对I/O数据进行算术和逻辑运算。统一编址的不足之处在于I/O端口地址占用了一部分存储器空间,另外访内指令长度一般比专用的I/O指令长,从而取指周期较长,又多占了指令字节。,.,2.I/O端口的独立编址方式独立的I/O端口编址方式的特点是有一个与存储器地址空间完全独立的I/O地址空间。在这个空间内,每一个I/O设备的端口有一个唯一对应的I/O端口地址。这种独立的编址方式要求CPU有专用的I/O指令(IN及OUT指令),用于CPU与I/O端口之间的数据传输。Intel公司研制开发的CPU产品通常都设有IN、OUT指令。因此,80 x86CPU组成的系统一般都采用独立编址方式。如8086/8088CPU采用地址总线的低16位作为I/O端口的寻址地址线。因而IN、OUT指令可寻址216=65536(64K)个8位地址号的I/O端口,或32K个16位的I/O端口。80386DX的地址总线是32位,则就有直接访问4GB(232字节)的存储器空间或I/O空间的能力。80386以上的CPUI/O端口的地址号可以是双字(32位),指令中端口地址中的字传送到AX,端口地址+2中的高字则传送至EAX的高16位中。,.,.,.,I/O端口仅使用偶地址。,图8.4只使用偶地址的I/O接口地址线连接方法,.,I/O端口使用连续的地址。,图8.58位接口与16位数据总线的连接方法,.,8.2.2I/O端口地址译码,1.固定式端口地址译码所谓固定式端口地址译码是指接口中用到的端口地址不能更改。目前,各种I/O功能接口卡中大部分都采用固定地址译码。当接口芯片仅有一个端口地址时,则可采用门电路组成地址译码电路。当接口芯片中有多个端口,通常各端口的地址号是连续排列的,则采用译码器译码比较方便。译码器的型号很多,最常用的有3-8译码器,74LS138,8205;4-16译码器74LS154;双2-4译码器74LS139和74LS155等。用户可根据需要选用合适的译码器。,.,表8.1几种常用的通用译码器输入输出对应关系列表,.,图8.6IMB-PC系统板I/O地址译码电路,.,2.开关式可选端口地址译码,1)使用拨动开关或跨接开关在地址译码的基础上,通过线路板上的微型拨动开关DIP或跨接开关“跳线”连接。从而使得某个特定的I/O端口(或存储器)在一组线地址中选定当前所使用的译码地址,增加地址译码的灵活性。,.,图8.7使用跳线开关选择I/O口译码地址,.,2)使用比较器+地址开关译码,图8.8由比较器组成的可选式译码电路,.,图8.8所示为由比较器74LS688与3-8译码器组成的I/O芯片地址可选的译码电路。8位比较器74LS688对两组8位的输入端P0P7和Q0Q7信号进行比较。其比较规则为:当P0P7Q0Q7时,P=1,输出高电平;当P0P7=Q0Q7时,P=0,输出低电平。,.,.,8.2.3基本的输入/输出方法在微机系统中,微机与外设之间的信息传送,实际上是CPU与接口之间的信息传送。传送的方法,一般可分为3种方式:(1)程序控制的输入/输出方式。(2)程序中断的输入/输出方式。(3)直接存储器存取(DMA)方式。传送的方式不同,CPU对外设的控制方式也不同,从而使接口电路的结构及功能也不同,CPU与外设接口的连接方法也不同。在微机与外设之间的信息传送是接口设计中极为重要的问题。,.,1.程序控制的输入/输出程序控制的输入/输出方式是指在程序的编制中利用I/O指令来完成CPU与接口间交换信息的一种方式。何时进行这种信息传送是事先知道的,所以能把I/O指令插入到程序中所需要的位置。根据外设性质的不同,这种传送方式又可分为无条件传送及有条件传送两种。(1)无条件传送。当程序执行到I/O指令时,无条件地立即执行I/O指令相应的操作,如图8.9所示。,.,图8.9无条件数据传送,.,(2)有条件传送。这种传送方式如图8.10所示。CPU在传送数据之前应检查外设是否已作好收发数据的准备(Ready)工作,若设备已“准备就绪”,则可接着进行数据传送。为用这种方式传送数据,一般要用3条有如下功能的指令来完成。将描述外设工作状态的信息(如“准备好”)状态字读入CPU相应的寄存器中。检测相应的状态位,以检查外部设备收发数据的准备工作是否“准备就绪”。若外部设备没有“准备就绪”,则重复执行、步骤,等待“准备就绪”;若外设“准备就绪”,则可执行预定的数据传送。,.,图8.10有条件数据传送,.,2.程序中断的输入/输出方式,程序控制的输入/输出方法是由CPU来查询外设的状态,CPU处于主动的地位;外设处于被动的地位;而程序中断的输入/输出则是外设处于主动地位,CPU处于被动地位。只有当外设要传送数据时才向CPU发出中断请求信号。实时性比程序控制的输入/输出要好得多。但它仍有缺点,主要是:为了能接受中断的请求信号,CPU内部要有一些线路来控制。利用中断输入/输出,每传送一次数据就要中断一次CPU。CPU响应中断后,每次都要执行“中断处理程序”,而且在其中都要保护现场、恢复现场,这相当麻烦,浪费了很多不必要的CPU时间。故此种传送方式一般较适合于传送少量的输入/输出数据。对于大量的输入/输出数据可采用高速的直接存储器存取方式DMA。,.,3.直接存储器存取方式(DMA),图8.11典型的DMA传送流程图,.,实现DMA传送的基本操作如下:外设可通过DMA控制器向CPU发出DMA请求;CPU响应DMA请求,把总线控制权交给DMA控制器,使系统转变为DMA工作方式;由DMA控制器发出I/O数据的存储地址,并决定传送数据块的长度;执行DMA传送;DMA操作结束,并将控制权交还给CPU。,.,8.38255A并行接口电路,8.3.18255A的结构与功能,图8.128255A内部结构框图及引脚排列(a)内部结构图;(b)引脚图,.,1.3个并行输入/输出端口(A口、B口、C口)3个端口的功能全部由程序设定,每个端口都有自己的功能特点。A口、B口通常可当作独立的I/O口使用;C口也可以用作一般的I/O端口,但当A口、B口作为应答式(选通式)I/O口使用时,它分为2个4位端口:A组C口(或上C口)和B组C口(或下C口),分别用来作为A口、B口应答式I/O工作时,提供输出控制信息及输入状态信息之用。各端口的功能如表8.2所示。,.,表8.28255A端口功能表,.,.,表8.38255A端口选择及操作功能表,.,3.A组和B组控制电路这两组接受来自CPU的读/写控制逻辑部分的信号和CPU发出的控制字,然后分别决定各端口的功能。A组控制电路控制A口及A组C口(PC7PC4),B组控制电路控制B口及B组C口(PC3PC0)。还可根据控制字的要求,对端口C的某位实现“置0”及“置1”的位操作。,.,4.数据总线缓冲器这是一个双向三态的8位缓冲器,用于和系统的数据总线D7D0相连。输入输出的数据以及CPU发出的控制字及读入的状态字都是通过此缓冲器传送的。在8086系统中,采用16位数据总线,通常8255A的D7D0是接于16位数据总线的低8位上。,.,8.3.2工作方式的选择及其功能8255A有3种基本工作方式,而且对C口各位又可以进行按位操作。这些都由CPU输出到8255A来控制。8255A的控制字分为两种:一种是各端口的“工作方式选择控制字”。它可以使8255A的三个端口工作于不同的工作方式。方式选择控制字总是将三个端口分为两组来设定工作方式,即A口和C口的高4位(A组C口)作为一组,端口B和C口的低4位(B组C口)作为另一组。另一种控制字是“端口C按位置1/置0控制字”。它可以使C口中的任何一位进行置“1”或置“0”操作。,.,图8.138255A两种工作方式控制字格式(a)工作方式选择控制字;,.,图8.138255A两种工作方式控制字格式(b)置位/复位控制字,.,假设我们要求8255A的各个端口工作于如下方式:A口方式0输出;B口方式0输入;A组C口(PC4PC7)方式0输出;B组C口(PC0PC3)方式0输入,则相应的方式选择控制字为10000011B(83H)。设8255A控制端口的地址为D6H,则在8086系统中,对8255A的初始化程序为MOVAL,83H;将控制字送入AL。OUT0D6H,AL;控制字写入到指定的控制端口中。,.,对端口C的置位/复位功能主要用于通过C口某位输出高/低电平控制信号。当要通过置1/置0控制字对C口PC6位实现置0操作时,控制字为00001100B(0CH)。控制字的D0位用于区分是置1还是置0操作,但究竟对C口的哪一位进行相应操作则由控制字中的D3、D2、D1决定。现为PC6位,则对应为110代码。此时,对PC6置0操作的初始化程序为MOVAL,0CH;对PC6位实现置0操作。OUT0D6H,AL,.,1.工作方式0方式0也叫基本输入/输出方式。它适用于无需应答(握手)信号的简单的无条件输入/输出数据的场合,即输入/输出数据处于准备好状态。这时CPU可以随时从端口中写入或读取数据。在这种方式下,A口、B口可以通过由CPU对8255A相应的方式选择控制字,规定为输入口或输出口;端口C也同样由方式选择控制字分别规定A组C口、B组C口为输入口或输出口。,.,2.工作方式1方式1也称为选通型(应答式)输入/输出方式。和方式0相比,它最主要的特点是当A口、B口工作于方式1时,要利用A组C口、B组C口的端线作为A口、B口选通型工作时提供所需的选通信号或提供有关的状态信号之用。现分输入及输出两种情况说明。(1)方式1输入。当A口、B口工作于方式1输入时,端口C控制信号的定义如图8.14(a)所示。图中还给出了相应的方式选择控制字格式。C口所提供的控制信号说明如下:,.,图8.148255A工作方式1及时序图(a)方式1输入;(b)方式1输出,.,图8.148255A工作方式1及时序图(a)方式1输入;(b)方式1输出,.,3.工作方式2,图8.158255A工作方式2及时序图,后续,.,图8.158255A工作方式2及时序图,.,4.8255A的状态字格式,图8.16几种状态字格式(a)、(b)方式1输入、输出状态字格式;(c)、(d)A组为方式2,B组为方式1的输入、输出状态字格式,.,图8.16几种状态字格式(a)、(b)方式1输入、输出状态字格式;(c)、(d)A组为方式2,B组为方式1的输入、输出状态字格式,.,.,图8.178255A用作打印机接口及打印机时序(a)8255A与打印机的连接;(b)打印机时序,.,.,;8255初始化程序BEGIN:MOVAL,10000001B;送工作方式选择控制字至控制寄存器中。A、B、C口均为工作方式0。A口、B口为输出方式。PC4PC7为输出,;PC0PC3为输入。MOVDX,0383HOUTDX,ALMOVAL,00001101B;送C口置1/置0控制字,置PC6=1。OUTDX,AL;使STB初始状态为高电平。,.,;下面为控制程序,设欲打印的字符已存于CL中,经8255A的A口输出至打印机。CONP:MOVDX,0382H;从C口检测Busy=0否,若等于1,则等待;等于0则可送打印字符。LPST:INAL,DXH;读入C口值。ANDAL,04H;保留PC2(Busy)状态。JNZLPST;若Busy=1,则等待,等于0则向下执行。MOVAL,CL;将(CL)字符送A口。MOVDX,0380HOUTDX,ALMOVAL,0CH;送C口置1/置0控制字,置PC6=0,即使STB为低电平。,.,.,.,图8.188255A与A/D、D/A转换器的接口,.,为了实现8255A与这两个芯片如图所示的连接,应将8255的A组和B组均初始化工作在方式0之下。而且A口和C口的高4位初始化为输入;B口和C口的低4位初始化为输出。只有这样才能满足如图连接上的要求。这时的方式控制字应为:10011000B,即98H。故为了启动A/D变换,应从C口的PC2送出一正脉冲,这可利用位操作控制字来完成。初始化时应先将PC2输出置为0。当要启动A/D变换时,可选送00000101B控制字到控制寄存器,置PC2=1;再对C口送00000100B置PC2=0,实现对A/D的启动。以同样的原理,D/A转换在初始化时将PC3输出为高,利用位操作字同样可以形成D/A变换器的负锁存脉冲。,.,若8255A与CPU系统的地址信息连接仍同图8.17所示,则对8255A的初始化编程如下:MOVDX,0383H;送方式选择控制字到8255控制寄存器。MOVAL,98HOUTDX,ALMOVAL,00000100B;使PC2输出初始时为低电平。OUTDX,AL,.,在初始化8255A之后,若要启动A/D变换一次,并将变换的10位数字量放在DX的低10位中,其高6位应为0,其程序可以如下编写:MOVDX,0383HMOVAL,00000101B;PC2=1,使START为高电平,启动A/D转换。OUTDX,ALMOVAL,00000100BOUTDX,AL;置PC2=0,使START为低。DECDX;(DX)=0382,指向C口。,.,WAIT:INAL,DX;等待A/D转换结束(PC4=0)。ANDAL,20HJNZWAITINAL,DX;由C口读取A/D转换的D9、D8位。ANDAL,0C0HMOVCL,AL;D9、D8位值暂存CL的D7、D6中。DECDX;(DX)=0380H,指向A口。DECDXINAL,DX;由A口读取D7D0位转换值。MOVAL,AL;D7D0位值存DL中。ROLCL,1;CL中D7、D6值移至D1、D0位中完成10位A/D转换值;的装配,存DX中。ROLCL,1MOVDH,CL,.,.,8.4可编程计数/定时器8253/8254,8.4.18253的组成与功能,图8.198253/8254内部结构框图及引脚图(a)结构框图;(b)引脚图,.,1.3个独立的16位计数器,图8.208253/8254计数器内部逻辑框图,.,2.控制命令寄存器此寄存器用来保存来自CPU送入的控制字。每个计数器都有一个控制命令寄存器,用于保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,亦能决定应如何装入计数器初值。8253的3个控制寄存器只占用一个地址号,而靠控制字中最高二位来指定当前的控制字是发给哪个计数器的。控制寄存器只能写入,不能读出。,.,.,4.数据总线缓冲器这是一个双向、三态8位缓冲器。它用于8253和系统数据总线连接。CPU通过数据总线缓冲器将控制命令字和计数值写入8253计数器,或者从8253计数器中读取当前计数值。8253的8位数据线D0D7通常与系统数据总线D0D7相连。8253共占用4个I/O地址。当A1A0=00时,为计数器0中的CR和OL寄存器的共用地址。同时,当A1A0=01和10时,分别为计数器1和2的CR和OL的共用地址。当A1A0=11时,是3个计数器内的3个控制寄存器的共用的地址号。但CPU给哪一个计数器送控制字,这由控制字格式中最高两位(计数器选择位)SC1、SC0的编码来决定。,.,表8.48253端口的地址分配,.,8.4.28253的控制字、读/写操作和初始化编程1.8253的控制字格式,图8.218253控制字格式,.,2.8253的读/写操作(1)读操作。所谓读操作是指读出某计数器的计数值至CPU中。有两种读数方法。先使计数器停止计数(在GATE端加低电平或关闭CLK脉冲):根据送入的控制字中RL1、RL0的状态,用一条或两条输入IN指令读CE的内容,通常第一次读低字节(LSB),第二次读出高字节。实际上,CPU是通过输出锁存器OL中读出的,因为在计数过程中OL的内容是跟随CE内容变化的。此时由于CE不再计数,故可稳定地读出OL(即CE)的内容。,.,在计数过程中不影响CE的计数而读取计数值:这称为“飞读”方法。为达此目的,应先对8253写入一个具有锁存功能的控制字,即D5D4位(RL1、RL0)应取00,而其余位不变。这样就可将当前的CE内容锁存入OL中,然后再用两条输入指令将OL中的内容取到CPU中,从而实现“飞读”。当CPU读取了计数值后,或对计数器重新初始编程后8253会自动解除锁存状态,OL中的值又随计数器CE值变化。,.,(2)写操作。所谓写操作是指CPU对8253写入控制字或写入计数初值。8253中3个计数器的控制寄存器地址号是共用的,并由控制字中D7D6位(SC1、SC0)的状态来确定是哪一个计数器的控制字,从而计数初值会分别写入各对应的端口计数器CR中。8253投入工作之前,CPU要对它进行初始化编程。初始化编程的步骤为:写入计数器的控制字,规定其工作方式及相应功能;,.,写入计数初值。当计数初值为8位,则控制字中RL1,RL0应取01,只写入CR的低8位,CR的高8位会自动置0;若是16位计数,而低8位是0,则应取RL1、RL0为10,只写入高8位,低8位会自动置0。若是16位的计数初值,则LR1,LR0=11,应分两次写入初值,先写低8位,再写入高8位。由于计数器采用递减方式计数,因此如果计数初值为0000H,则是最大的计数初值。若选择0计数器,工作在方式3,计数初值为2354H,十进制计数方式;或选择1计数器,工作在方式2,计数初值为18H,二进制计数方式。并设8253端口地址为4043H。,.,则根据上述各计数器的功能,其初始化编程如下:,;对0计数器初始化编程MOVAL,37H;对0计数器送控制字。OUT43H,ALMOVAL,54H;送初值的低8位。OUT40H,ALMOVAL,23H;送初值的高8位。OUT40H,AL,.,;对1计数器初始化编程。MOVAL,01010100B;对1计数器送控制字。OUT43H,ALMOVAL,18H;计数初值送低8位。OUT41H,AL当采用“飞读”的方法读取1计数器的计数值时,可采用如下程序片段:MOVAL,01000100B;对1计数器送锁存控制字。OUT43H,ALINAL,41H;读低8位。MOVCL,AL;读取的计数值存于CL中。当计数值为16位时,则“飞读”时还应读取高8位锁存器中的计数值。,.,8.5.38253的工作方式及其时序图,1.方式0计数结束产生中断方式,图8.22方式0时序波形图,.,.,.,(2)在计数过程中,由门控信号GATE控制是否暂停计数。当GATE由高电平变为低电平期间暂停计数,CE内容不变。当GATE再变高电平后就接着计数。(3)在计数过程中改变计数值。在计数过程中,若计数值为8位计数,则在写入新的计数值后,计数器将按新的计数值重新开始计数。如果是16位计数,则在写入第一个字节后,计数器停止计数。在写入第二个字节后计数器按照新的数值开始计数。,.,2.方式1可编程单次脉冲方式,图8.23方式1时序波形图,.,3.方式2分频工作方式,图8.24方式2时序波形图,.,4.方式3方波发生器,图8.25方式3时序波形图,.,5.方式4软件触发选通方式,图8.26方式4时序波形图,.,6.方式5硬件触发选通方式,图8.27方式5时序波形图,.,表8.5GATE信号功能表,.,8.5.48253与系统的连接应用举例,图8.288253与8088总线的连接,.,.,MOVAL,10110110B;对2计数器送控制字。OUT43H,ALMOVAL,32H;对送50分频计数值0032H的低8位。OUT42H,ALXORAL,AL;送高8位值为00H。OUT42H,AL,在实际应用中,常需要对脉冲的周期、相位、脉冲的宽度进行测量,这时需要一些标准信号的输入,这些都可以通过对8253的控制来完成。,.,图8.298253在系统板上的连接,.,计数器0用作系统的定时,为系统的电子钟提供一个恒定的时间基准。计数器0的输出OUT0与8259中断控制器的IQR0相连,作为最高级别的可屏蔽0级中断。系统BIOS初始化编程设定计数器0工作于方式3,计数初值设定为0(即为最大初始值65536),控制字为36H。这样,每隔55ms产生一次0级中断。在中断服务程序中,由16位的计数单元对中断次数计数,当计数单元产生进位时,表示所经过的时间约为1h(即655361/18.23600s),其误差可由程序中加以修正,以消除积累误差。另外,计数器0还用于对软盘驱动器的马达启/停时间进行管理,每开放一定时间,再令其关闭。其初始化程序片断如下:,.,MOVAL,00110110B;对计数器0设置控制字,方式3。;二进制计数。先写CRL,再写CRH。OUT43,ALMOVAL,0;设定初始值(最大初始值)。OUT40H,AL;写入计数器0中的计数寄存器低8位。OUT40H,AL;写入计数器0中的计数寄存器高8位。,.,计数器1用作对动态RAM的刷新定时,其输入时钟CLK1同样为1.931816MHz方波。计数器1输出的定时信号接在8237DMA芯片的一个DMA请求端DRQ0,用来发出请求信号,负责对动态存储器刷新。它每隔15.12ms产生一个脉冲宽度为840ns的负脉冲输出信号对动态存储器进行刷新操作。此时计数初值为12H,控制字为54H,相应的初始化程序片断如下:MOVAL,54H;对计数器1设置控制字,二进制计数,只写CRL。OUT43H,AMOVAL,12H;为刷新DRAM,设置分频系数。OUT41H,AL;写入计数器1中的计数寄存器低8位(CRL)。,.,计数器2在此有两个作用:其一是作为与音频盒式磁带机接口,其二是产生扬声器的频率信号,并与8255A的B口的PB1位共同控制扬声器的发声,其电路连接见图8.29所示。当8255A的PB1为高电平时,在BIOS中提供了扬声器发声程序,此程序把声音频率相应的计数值送入计数器2,用以产生音频信号。现以通过改变8253计数器2的计数值,本例中,每敲一键,计数器的计数初值减100H,音调增高从而改变扬声器发出的音调,其相应的编程如下:,CODESEGMENTASSUMECS:CODE,DS:CODE,ES:CODE,SS:CODEORG100H,.,START:JMPBEGINORG-SNDDW533H;BIOS初始化8253时,对通道2设置的计数初值。SAVE-IDDW1133H;定义最初的计数值,最低音调。BEGIN:PUSHCS;赋DS段址。POPDSMOVBX,10H;发声次数。NEW-SOUND:MOVAL,0B6H;设置通道2控制字,方式3,先写CRL,后写CRH,;二进制计数。OUT43H,ALMOVAX,SAVE-ID;设定初始计数值。SUBAX,100H;每次计数值减100H。MOVSAVE-ID,AXOUT42H,AL;写入通道2的CRL。MOVAL,AHOUT42H,AL;写入通道2的CRH。,.,INAL,61H;读入8255端口B的值。MOVAH,ALXORAL,03H;8253通道2选通,扬声器打开。OUT61H,ALMOVCX,0FFFFH;延时。DELAY:LOOPDELAYMOVAL,AH;关闭扬声器。OUT61H,ALMOVAH,00H;通过键盘读字符。INT16HDECBX;计数器减1。JNZNEW-SOUNDMOVAL,0B6H;恢复扬声器初始音调。,.,OUT43H,ALMOVAX,ORG-SNDOUT42H,ALMOVAL,AHOUT42H,ALMOVAH,4CH;返回DOS。INT21HCOOEENDSENDSTART,.,8.5.58254可编程计数/定时器,其主要差别是:(1)允许最高计数脉冲(CLK)的频率不同。8253的最高频率为2MHz,而8254允许的最高计数脉冲频率可达10MHz(8254为8MHz,8254-2为10MHz)。(2)8254每个计数器的内部都有一个状态寄存器和状态锁存器,而8253是没有的。(3)8254多一个读回命令字,用以读出当前计数单元CE的内容和状态寄存器的内容,而8253没有此读回命令字。,.,图8.308254的锁存命令和读回命令格式(a)锁存命令格式;(b)读回命令格式,.,图8.31CPU读状态锁存器内容命令格式,其中D5D0内容和写入到计数器的控制字的对应位相同。D7输出位反映了该计数器输出引脚信号OUT的状态。若OUT为高电平,则D7=1;若OUT为低电平,则D7=0,D6位指示时间常数寄存器CR中的内容是否已装入到计数单元CE中。若已装入CE中,则D6=0;若CPU向计数器写入控制字及计数初值后,但CR内容仍未装入CE中,则D6=1。,.,8.5串行通信及8251串行接口电路,8.5.1串行通信的基本概念1.串行通信与并行通信,图8.32通信的两种基本方式(a)串行通信;(b)并行通信,.,2.串行通信中的数据传送模式(1)单工、半双工、全双工的数据传送模式。单工(Simplex)通信模式。仅能进行一个方向的数据传送。如A作为发送器,B能作为接收器。半双工(HalfDuplex)通信模式。它能够在设备A和设备B之间交替地进行双向数据传送。即数据可以在一个时刻从设备A传送到设备B,而另一时刻也可以从设备B传送到设备A,但不能同时进行。全双工(FullDuplex)通信模式。通信设备A或B均能在发送的同时又能接收数据。即设备A向设备B发送数据的同时,设备B也可以向设备A发送数据。,.,图8.33数据传送模式(a)单工;(b)半双工;(c)全双工,.,3.比特率与波特率数据传送的速率通常用比特率(bitrate)表示。比特率是指每秒能传输的比特(bit)数,单位为bit/s(bps-bitpersecond)。在数据通信中,还有另外一个常用术语波特率(Baudrate),波特率是指每秒能传输的符号(也称离散状态)数。若每个符号所含信息量等于1比特,则波特率等于比特率。在计算机中,一个“符号”的含义为高、低两种电平,即符号所含信息量刚好等于1比特。因此,在计算机数据传输中常将比特率称为波特率。,.,计算机数据传输的速率是120字符/s,而每个字符假如为10个比特(bit)位,则其传输的波特率为10bit/字符120字符/s=1200bit/s=1200波特每一位的传输时间Td就是波特率的倒数,在本例中则为Td=1/1200=0.833ms国际上规定了一个标准波特率系列,即110、300、600、1200、1800、2400、4800、9600和19200波特。串行接口的打印机通常采用110波特,也有采用150波特和300波特,字符显示器终端设备使用的波特率1200以上。当使用调制解调器在公共电话线上进行远程数据通信时常使用1200波特,线路质量好的城市和地区可达2400波特。,.,4.串行通信中的异步传送与同步传送(1)异步传送。,图8.34异步传送数据格式(a)有空闲位;,.,图8.34异步传送数据格式(b)无空闲位,.,起始位。每个字符的开始必须是持续一个比特时间的逻辑“”电平,标志着每一个字符的开始。数据位。有58位,紧跟着起始位之后,是字符中的有效数据位。传送数据时,先送低位,后送高位数据。奇偶校验位。仅占一位。可根据需要设置奇校验或偶校验,也可以不设校验位。停止位。1位或1.5位,或2位。并规定为逻辑“1”状态。,.,(2)同步传送。,图8.35同步方式所采用的数据格式(a)单同步;(b)双同步;(c)SDLC;(d)HDLC,.,同步传送中,最常用的是SDLC/HDLC数据格式。SDLC(SynchronousDataLinkControl)是IBM公司推出的同步数据链控制规程,而HDLC(HighLevelDataLinkControl)是ISO推荐的高级数据链路控制规程。这两种规程除了某些术语和细节不同外,基本原理相同。图8.36为SDLC/HDLC数据格式。各部分功能说明如下:,图8.36SDLC/HDLC数据格式,.,SDLC/HDLC标志符,格式01111110。其作用是作为信息传输的边界符,在两个标志符间的信息称为一帧,在一帧信息传送前先送该标志符,表示一帧开始,一帧信息传输结束,紧接着应再送一标志符,作为一帧结束的标志。为了实现标志符编码的唯一性,采用了“0”比特插入/删除技术,以保证接收站能正确识别数据场信息中含有与标志符代码相同的数据信息。其方法是:在发送数据场信息时,如遇到连续5个“1”,则自动插入“0”。接收端在连续收到5个“1”后就自动将其后的“0”删除,以便恢复信息原有的含义。例如,当CPU将数据TFFEH=0111111111111110B送至发送端后,发送器自动插入“0”变为:01111101111101110B,此信息由接收器接收,并删除“0”后恢复成原信号TFFEH。,.,地址场,简称A场。SDLC规定A场为一个字节长;HDLC规定A场可以为任意字节长度。当地址场字节第1(D0)位为“0”,则后跟字节为地址场信息,否则为最后一个地址场信息。控制场,简称C场。SDLC规定C场为一个字节长;HDLC规定C场为一个字节或2个字节长。SDLC/HDLC的所有场都是从最低有效位(D0)开始传送。,.,信息场,简称场。它紧跟C场之后,其长度可以从0位(无信息)到存储器可容纳的最大位数。帧校验位,简称FC场。SDLC/HDLC均采用16位循环冗余校验(CyclicRedundancyCheck)CRC校验码,其生成多项式为X16+X12+X5+1。除F场和自动插入的“0”比特外,所有的信息都参加CRC计算。从SDLC/HDLC数据格式中看出,传送的数据信息越长,通信效率越高。,.,5.信号的调制和解调如果要利用电话信道进行远距离传输的话,直接采用数字信号是不能实现的。因为电话信道主要用以传输人的话音信息,在此频带范围以外的直流成分和其它频率分量将因不能通过电话信道传输数字信号。必须采取一些措施,把数字信号转换成适于传输的模拟信号,而在接收端再将模拟信号转换成数字信号。前一种转换称为调制,后一种转换称为解调。完成调制、解调功能的设备叫做调制解调器(Modem)。调制解调器的类型比较多,但基本可分为两类:异步调制解调器和同步调制解调器。,.,异步调制解调器适用于异步通信方式,它不提供同步时钟信号。常用的调制方法是频移键控(FSK,FrequencyShiftKeying)或称为两态调频。频移键控的基本原理是把“0”和“”的两种数字信号分别调制成两个不同频率的音频信号。,图8.37频移键控调制原理,.,图8.38PSK相移键控调制原理(a)二进制0;(b)二进制1;(c)PSK信号(101),.,8.5.2串行接口的基本结构与功能,1.异步串行接口的基本结构与功能,图8.39异步串行接口的基本结构,.,(1)输出缓冲寄存器。它接收CPU从数据总线送来的并行数据,并加以保存。(2)输出移位寄存器。它接收从输出缓冲寄存器送出的并行数据,以发送时钟的速率把数据逐位移出。(3)输入移位寄存器。它以接收时钟的速率把出现在串行数据输入线上的数据逐位移入。当数据装满后,并行送往输入缓冲寄存器中。,.,(4)输入缓冲寄存器。它从输入移位寄存器并行接收数据,然后由CPU取走。(5)控制寄存器。它接收由CPU送入的控制字,由控制字的内容决定通信时的数据格式以及传输方式等。(6)状态寄存器。其中存放着各种状态标志信息。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将状态寄存器的相应位置“”,让CPU查询。,.,发送数据的过程是:CPU把要输出的数据写入输出缓冲寄存器,然后由接口电路中的发送控制逻辑根据预先写入控制字的内容对数据格式化,即加上起始位、奇偶校验位和停止位等成帧信息。格式化后的数据由输出移位寄存器按选定的传输速率逐位移出,由串行数据输出线输出。,.,接收数据的过程是:串行口允许接收后,接收控制电路不断监视串行数据输入线上的电平,一旦出现持续一个位周期的低电平,则开始采样有效数据位,并逐位移入移位寄存器中。采样重复进行,直至采样规定的停止位为止。然后再将有效数据并行送入输入缓冲寄存器,并由接口电路中的差错检测逻辑对输入数据进行校验,再根据校验结果置状态寄存器相应标志位。如传送数据正确,则由CPU读取数据。在异步通信时,发送接收端都要用发送/接收时钟来决定每一信息位对应的时间宽度。发送/接收时钟(统称为外部时钟)的频率可以是位传输率的16倍、32倍和64倍。这个倍数称为波特率因子。,.,若设每一位信息所占的时间为Td,外部时钟周期为Tc,则有如下关系:,其中K=16、32或64,称为波特率因子。由于每个数据(信号)位时间周期Td=KTc,所以每K个时钟脉冲读一次数据。为保证采集数据的正确,采集时间应取在数据位的中间时刻,就可避开信息上升或下降时可能产生的不稳定状态。,.,2.同步串行接口的基本结构与功能,图8.40同步串行接口的基本结构,.,8.5.3可编程串行通信接口Intel8251A1.8251A的结构、基本功能及工作原理,图8.418251A的结构框图与引脚图(a)结构框图;(b)引脚图,.,8251A可用于串行的异步或同步两种通信方式,其主要性能如下:(1)可用于同步和异步传送。(2)同步传送(58)位/字符;可选择内部或外部同步;可自动插入同步字符。(3)异步传送(58)位/字符;时钟速率为通信波特率的1、16或64倍;可产生中止字符(BreakCharacter);可产生1、或2个位的停止位;可检查假启动位;自动检测和处理中止字符。(4)波特率:DC-19.2bit/s(异步);DC-64bit/s(同步)。,.,(5)全双工、双缓冲发送和接收器。(6)出错检测:具有奇偶、溢出和帧错误等检测电路。(7)全部输入输出与TTL电平兼容;单一的+5V电源;单一的TTL电平,28脚双列直插式封装。(8)与Intel8080、8085、8086、8088CPU接口兼容。,.,(1)接收器。它接收在芯片RxD引脚上出现的串行数据并按规定格式转换成并行数据,存放在接收缓冲器中,以待CPU取走此数据。当8251A工作于异步方式时,接收器监视RxD线上的电平变化。平时没有数据传送时,RxD线上为高电平。当发现有低电平出现时,则认为有可能是某一字符起始位的到来,但还不能确定它就是真正的起始位,因为有可能是干扰脉冲造成的低电平而出现的假起始位信号。为检测是否是真的起始位信号,采用当在RxD线上发现有低电平后,接收器启动一个内部计数器用作接收时钟,其波特因子可选16、32或64,当计数到相当于一个数据位宽度的一半(如选择K=16倍,则为计数到第八个脉冲)时,如果采样到的RxD仍为低电平,就确认是真正的起始位出现了,而不是噪声干扰信号,否则认为是假起始位信号。,.,当真正的起始位出现以后,8251A接收器同样以内部计数器的接收时钟频率每隔16个时钟脉冲周期采样一次RxD,然后将采样的数据送至移位寄存器,经过移位操作,并经奇偶校验检查和去掉停止位,就得到了变换成并行格式的数据,存入接收缓冲寄存器。同时输出RxRDY状态信号,表示已经收到一个可用的数据字符,CPU可以到缓冲器取走数据。对于少于8位的数据字符,8251A将它们的高位填“0”。,.,在同步接收方式下,8251监视RxD线,每出现一个数据位就把它移位接收进移位寄存并与同步字符(由初始化程序设定)寄存器内容相比较,若不等则8251A重复执行上述过程,若相等,即找到了同步字符,则输出SYNDET信号,表示已找到同步字符。实现同步后,接收器与发送器之间就开始进行数据的同步传输。接收器不断对RxD线进行采样,并把收到数据位送到移位寄存器中。每当收到的数据达到设定的一个字符的位数时,就将移位寄存器中的数据并行送到接收缓冲寄存器中,并输出RxRDY信号,表示已收到一个数据字符。,.,.,.,发送器的另一功能是发送中止符(Break)。中止符是由在通信线路上的连续的空白符(Space)组成。它是用来在全双工通信时中止发送终端的。只在8251A的命令寄存器D1(SBRK)位为“”,则8251A就一直发送中止符。,.,(3)数据总线缓冲器。它用来与CPU的数据总线D0D7相连。其中含有3个缓冲器:状态字缓冲器。它用来存放8251A内部的工作状态,供CPU查询、测试之用;接收数据缓冲器。用来存放接收器已经装配完毕的字符,准备CPU来读取;发送数据/命令缓冲器。用来寄存CPU送入8251A的数据或命令。,.,(4)读/写控制逻辑电路。用以实现对CPU输出的控制信号译码,以控制实现如表8.6所示的读/写功能。,表8.68251读/写控制功能表,.,2.8251A与CPU及外设的连接,图8.428251A与CPU及外设的连接,.,.,.,TxE(TransmitterEmpty)发送器空信号。当它有效(高电平)时,表示发送器中的并行缓冲器空。在同步方式时,若CPU来不及输出一个新字符,则TxE变为高电平,同时发送器在输出线上插入同步字符,以填补传输空隙。RxRDY(ReceiverReady)接收器准备好信号。当它高电平有效时,表明8251A已经从串行输入线接收了一个字符,正等待CPU将此数据取走。所以,在中断方式时,RxRDY可作为向CPU申请中断的请求信号;在查询方式时,RxRDY的状态位从CPU查询之用。,.,.,.,.,.,.,8.5.48251A初始化编程举例,图8.43工作方式选择字格式,.,图8.448251A控制命令格式,.,图8.458251A状态字格式,.,图8.468251A的初始化编程流程图,.,.,MOVAL,0FBH;送方式选择字。OUT52H,AL;MOVAL,15H;送控制命令字。OUT52H,AL,.,2.同步方式下的初始化编程举例设8251A设定为同步工作方式,2个同步字符,采用内同步,SYNDET为输出引脚,偶校验,每个字符7个数据位。2个同步字符,它们可以相同,也可不同。本例为两个相同同步字符为23H。初始化编程如下:MOVAL,38H;设置工作方式、双同步字符偶校验、每字符7个数据位。OUT12H,ALMOVAL,23H;连续输出两个同步字符23H。OUT52H,AL;OUT52H,ALMOVAL,97H;送位控制命令字,使接收器启动,发送器启动,使状态寄存器中的3个出错标志位复位,通知调制解调器CPU现已准备好进行数据传输。OUT52H,AL,.,8.5.5串行总线标准RS-232C,图8.47RS-232C接口环境,.,1.接口特性,图8.48BD-25连接器机械图,.,表8.7RS-232C连接器引脚功能定义,.,续表,.,图8.49RS-232C常用引脚,.,2.电气信号特性RS-232C采用负逻辑电平。规定:(1)MARK“传号”(逻辑1)控制线的断开状态规定为-3V-15V;(2)SPACK“空号”(逻辑0),及控制线的接通状态规定为+3V+15V;(3)噪声容限为(35)V;(4)当输入恰好为3V时,分别确定为空号和传号;当输入端开路时,终端定为传号。,.,图8.50RS-232C总线接收器和发送器的连接方法(a)RS-232发送器、接收器;(b)全双工通信转换电路;(c)典型全双工通信转换电路,.,图8.50RS-232C总线接收器和发送器的连接方法(a)RS-232发送器、接收器;(b)全双工通信转换电路;(c)典型全双工通信转换电路,.,8.5.6RS-499及RS-423A、RS-422A标准鉴于RS-232C应用的局限与不足,如数据传输速率局限于20kbit/s,传输距离限于15m之内。另外,接口各信号间会产生较强的串扰。为此,针对RS-232C的局限于不足,EIA颁布了3个新标准:EIARS-499“采用串行二进制交换的数据终端设备和数据电路端设备的通用37针和9针接口”的两种连接器。在多通道通信中的主信道使用37针连接器,而辅信道只需使用9针连接器即可,并规定了机械连接和功能方面的标准规范。,.,EIA-423A与EIARS-422A主要是关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 解一元二次方程的方法与步骤:高中数学教学教案
- 小区绿地及公共空间使用与维护合同
- 早餐培训知识课件
- 城市水务设施建设与维护协议
- 2025年瑞典语等级考试A2试卷:2025春季学期专项训练
- 2025年山东省公务员录用考试审计专业试题解析手册
- 2.1 两条直线的位置关系(1)教学课件 北师大版(2024)七年级数学下册
- 青岛2中高一数学试卷
- 七年级在线数学试卷
- 南阳高一数学试卷
- 《热力发电厂》热力发电厂全面性热力系统
- 14D504接地装置安装图集
- 新教师岗前培训讲座中小学教学常规PPT
- 2023年国家电网公司电力安全工作规程(变电部分)2023年6月修订
- 大概念教学的实践与探索
- DB15-T 3015-2023地理标志产品 俄体粉条
- 混凝土管理台账
- 卡拉贝利110千伏线路吊车跨越G3013高速公路施工方案
- 乙炔MSDS技术说明书
- 闸调器介绍讲解
- 家风主题课之《咏雪》 课件
评论
0/150
提交评论