状态寄存器PPT课件_第1页
状态寄存器PPT课件_第2页
状态寄存器PPT课件_第3页
状态寄存器PPT课件_第4页
状态寄存器PPT课件_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

.,1,微型计算机技术,教学指导(六),太原广播电视大学郭建勇,.,2,第6章常用可编程外围接口芯片内容提要:本章主要介绍微处理器常用的外围接口芯片,定时器8253,并行的外围接口芯片8255和串行的通讯接口芯片8251A。介绍每种芯片的结构框图,各个部件的功能和用途,以及它们的使用方式。学习目标:通过学习这些接口芯片,要求掌握不同外围接口芯片在使用时的工作方式。熟练掌握它们在微机接口中的运用环境和使用时的方式控制,以及不同芯片的编程命令字的设置。进一步了解每种芯片的基本的编程步骤及各种方式命令字的使用。,.,3,6.1定时器计数器8253的结构与编程在微机及一些控制系统中,经常要用到定时信号。如系统的日历时钟,动态存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询等。定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU执行延迟子程序的时间就是定时时间。缺点:执行延迟时,CPU一直被占用,降低了CPU的效率。硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。突出优点为计数时不占用CPU时间,如利用定时器/计数器产生中断信号,可建立多作业环境,故提高了CPU效率。,.,4,1.计数:对事件的个数进行计数。正计数:关心记录事件的次数。倒计数:关心预先设定事件次数发生完的时刻。可由硬件计数器实现,事件作为计数器的时钟,此时事件的出现频率不一定一成不变。,2.定时:取得给定的时间间隔。延时:求锝某事件发生后间隔一定时间的时刻。时标:求得给定时间间隔的连续脉冲。可由硬件计数器来实现,一定频率的信号作为计数器的时钟,如果只计数到就终止,即为延时。如果连续不断的计数即可输出时标。,.,5,可编程计数器/定时器的用途计数功能作为计数个数到中断信号。记录外部特定时间发生的个数。定时功能作为周期性定时中断信号。用于分时性操作系统。用作系统时钟基准。作为一个可编程波特率发生器。用于异步串行通讯。作为I/O设备输出定时信号。实现外设与CPU的同步。实现节约CPU的时间延时。作为音源。,.,6,6118253功能及结构框图18253的主要功能(1)每片上有3个独立的16位的计数器通道。(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。(3)每个通道都有6种工作方式,都可以通过程序设置或改变。(4)每个计数器的速率可高达2MH2。最高的计数时钟频率为26MHz。(5)所有的输入、输出都是TTL电平,便于与外围接口电路相连接。(6)单一的+5V电源,.,7,28253的结构框图,.,8,四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的16位的计数器通道。这三个计数器分别是计数器0通道、计数器1通道和计数器2通道。(1)数据总线缓冲器:8位的双向三态缓冲器。用于暂存数据,使用在以下几个方面:CPU在初始化编程时,向8253写入控制字。CPU向某一通道写计数初值。CPU从某一通道读计数初值。(2)读写控制逻辑电路:接受输入的RD、WR、CS、A1、A0等信号组合产生出对8253要执行的操作,见操作表。(3)控制字寄存器:只能写入,不能读出。8初始化编程时,写入控制字决定通道的工作方式。(4)3个计数器:分别为0、1和2,是3个独立的计数定时通道,都可按不同的方式工作。每个计数器内部都包含一个16位的预置初始值寄存器。一个可预置数减法计数器和一个锁存器。,.,9,信号名引脚信号方向功能定义D7D018双向8位三态的数据线CLK09输入计数器0的时钟输入OUT010输出计数器0的输出GATE011输入计数器0的门控输入CLK115输入计数器1的时钟输入OUT113输出计数器1的输出GATE214输入计数器1的门控输入CLK218输入计数器2的时钟输入OUT217输出计数器2的输出GATE216输入计数器2的门控输入,CS21输入片选信号,RD22输入读信号,低电平有效。CS=0,RD=0时,读取某个计数器当前的计数值。WR23输入写信号,低电平有效。CS=0、WR=0时,写入控制字或计数器置初值。A1,A020,19输入A1,A0的组合对3个计数和控制器寄存器进行寻址。,.,10,6138253编程命令字和工作方式1初始化编程的原则8253的控制字寄存器和3个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个寄存器以及执行什么操作。因此8253在初始化编程时并没有严格的顺序规定,但是在编程时,必须遵守两条原则:在对某个计数器设置韧始值之前,必须先写入控制字。在设计初始值时,要符合在控制字中规定的格式。作定时器时初值的确定:当计数器装入初值后,在GATE端由低变高时,由CLK脉冲触发开始,自动计数,当汁数变到0时,由OUT端发定时时间到信号。计数器的计数初值n(时间常数)与定时时间t及时钟周期TCK之间的关系是:,n=,t,TCK,.,11,28253的初始化编程(1)设置控制命令字:用来选择计数器,设置工作方式和计数格式。D7D6位(SC1,SC0):用于选择计数器,根据这2位的编码来确定使用的是哪一个计数器。D5D4(RW1,RW0):用于确定读写的格式。D3D1位(M2,M1,M0):这三位用来指定计数器的工作方式,8253的计数器共有6种工作方式。D0位(BCD):用来选择计数的类型,确定计数器是采用二进制计数还是采用二十进制计数。(2)设置初始值命令。(3)锁存命令:读计数器的值时必须先用锁存命令将当前计数值在输出锁存器中锁定。否则,计数器的数值有可能正处在改变过程中。这样输入可能得到一个不确定的结果。,.,12,D7SC1,D6SC0,D5RW1,D4RW0,D3M2,D2M1,D1M0,D0BCD,00:计数器0,01:计数器1,10:计数器2,11:无定义,00:锁存计数值000:方式001:读/写低八位001:方式110:读/写高八位10:方式211:先读/写低八位11:方式3后读/写高八位100:方式4101:方式58253控制字的格式,00:计数器001:计数器110:计数器211:无定义,0:二进制1:BCD码,.,13,6.1.48253工作方式与工作时序8253有6种工作方式,对它们的操作都遵守以下3条基本原则:(1)当控制字写入8253时,所有的控制逻辑电路自动复位,这时输出端OUT进入初始态。(2)当初始值写入计数器以后,要经过一个时钟周期,减法计数器才开始工作,时钟脉冲的下降沿使计数器进行减1计数。计数器的最大初始值是0,用二进制计数时0相当于216,用BCD码时,0相当于104。(3)对于一般情况下,在时钟脉冲CLK的上升沿时,采样门控信号。对门控信号(GATE)的触发方式是有具体规定的:门控信号为电平触发的有:方式0,方式4。门控信号为上升沿触发的有:方式1,方式5。门控信号可为电平触发也可为上升沿触发的有:方式2,方式3。计数方式的有:方式0,方式1,方式4,方式5定时方式的有:方式2,方式3。,.,14,8253门控信号(GATE)的控制功能方式信号状态低电平或负跳变正跳变高电平0禁止记数允许记数11.初始化,启动记数2.下一个脉冲输出变低21.禁止记数初始化,启动记数允许记数2.输出变高31.禁止记数初始化,启动记数允许记数2.输出变高4禁止记数允许记数5初始化,启动记数,.,15,1方式0(计数结束产生中断的计数器)写入方式控制字后,输出端OUT为低电平;写入计数常数后,开始计数。计数器减为0之前,输出端OUT维持低电平。当计数值为0时,输出端OUT才变为高电平,向CPU发出中断请求,直到CPU写入新的控制字或者写入新的计数值为止。,WR,CW,n=4,CLK,GATE,OUT,1,4,3,2,.,16,方式0可由门控信号控制暂停,GATE为低电平时,计数器暂停,GATE信号变高后,就接着计数。,WR,CLK,GATE,OUT,CW,n=3,3,2,2,1,.,17,2方式1(可重复编程的单脉冲)设定工作方式和写入计数值后,OUT输出高电平,GATE(触发信号)变为高电平后,OUT变为低电平,开始计数。当计数器减到0时,OUT才输出高电平。输出低电平期间,写入新计数值,不会影响原记数过程。只有第一次计数完,GATE再来一个正跳变时才使用新的计数值计数,WR,CLK,GATE,OUT,CW,n=3,3,2,1,记数结束,开始记数,开始记数,n=5,5,.,18,若在第一次计数末完成之前,GATE又产生正跳变(即下一个脉冲信号又到来)时,则从新的GATE的上升沿以后,开始重新计数,OUT端输出的低电平保持不变,2次的计数过程合在一起,因此使输出的负脉冲宽度加宽了,3,2,1,3,2,1,WR,CW,n=3,CLK,GATE,OUT,.,19,3方式2(分频器)写入方式2的控制字后,OUT变高,设GATE为高先到,计数器对CLK计数,设计数初值为N。当计数器计到(N一1)个CLK信号时,OUT输出变低,计数器的值为l。最后一个CLK信号输入后,计数器减到0,OUT回到高,计数器又自动从初值开始计数。因此OUT端在每N个CLK信号中输出一个宽度等于CLK信号周期的负脉冲。负脉冲的周期=计数值N时钟CLK的周期T。,WR,CLK,GATE,OUT,CW,n=3,记数结束,重新记数,3,2,1,3,2,1,重新记数,.,20,计数过程中要求门控脉冲GAT置保持为高,当GATE为低电平时,则计数被中止暂停,在GATE再变高后,计数器又被置入初值,重新计数。,方式2输出负脉冲的周期为CLK周期的N倍,频率是1/N。称为分频器,可以用来给自动控制中的实时检测,实时控制提供时钟信号。,WR,CLK,GATE,OUT,CW,n=3,3,2,2,2,3,2,1,重新记数,.,21,4方式3(方波发生器)采用方式3工作时,计数器输出为方波信号(GATE始终为高电平)。当计数值为偶数时,在前N2计数期间,OUT输出高电平,而后N2个计数期间,OUT输出为低电平,对称方波。,4,2,4,2,4,2,4,2,CW,n=4,WR,CLK,GATE,OUT,.,22,记数值为N奇数时的波形当计数值为奇数时,在前(N+1)2计数期间,OUT输出高电平,而后(N-1)2个计数期间,OUT输出为低电平。,4,2,0,4,2,4,2,0,CW,n=5,WR,CLK,GATE,OUT,高电平宽度比低电平宽度大一个时钟周期的近似方波。实际上由于时钟周期很小,几乎没什么差别。,.,23,方式3计数时要求GATE为高电平,当GATE为低电平时,停止计数。若OUT为低电平,GATE变为低电平时,OUT立即变高,计数器将重新装入初始值,重新计数。,4,2,4,2,4,2,4,2,CW,n=4,WR,CLK,GATE,OUT,2,2,.,24,5方式4(软件触发选通)当方式4的控制字写入8253后,计数器输出OUT为高电平。在写入计数初值后,而且GATE为高电平时,开始计数,计数到0后输出一个时钟周期的低电平脉冲。门控信号GATE1时允许计数,GATE0禁止计数。,3,2,1,0,CW,n=3,WR,CLK,GATE,OUT,软件触发选通体现在当GATE为高电平时,写入计数初值后开始计数。,.,25,6方式5硬件触发选通)当写入方式5的控制字及计数常数后,输出OUT为高电平。只有在门控信号GATE上升沿到来时才开始作减1计数,计数到达0时输出一个时钟周期宽度的负脉冲。,3,2,1,0,3,CW,n=4,WR,CLK,GATE,OUT,硬件触发选通:GATE信号一般由硬件产生。,.,26,计数器一旦开始计数以后,将不受GATE信号变成低电平的影响,但如果GATE信号又产生了正跳变的话,则不论计数是否完成,又将给计数器置人初值,重新开始新一轮计数。,3,2,3,2,1,0,CW,n=3,WR,CLK,GATE,OUT,新计数,.,27,6.1.58253初始化编程要使用8253首先要对它进行初始化编程,编程时主要是写入每个计数器的控制字和计数初值,初始化的步骤是:(1)写入控制字:选择计数器和规定计数器的工作模式。(2)写入计数初值。若规定只写低8位,高8位自动置0。若规定写16位,则先写低8位,后写高8位。例:设置计数器0,工作在方式3,按二进制计数,计数值200。计数器0先写低8位,后写高8位方式3二进制计数程序段如下:MOVAL,36H;控制字送ALMOVDX,CRLP;控制口地址送DXOUTDX,AL;控制字送控制寄存器,0,0,1,1,0,1,1,0,36H,控制字,设控制口地址为CRLP。,.,28,CPU在读取任一通道的随机计数值时,需将当前的计数值锁存。实现锁存的方法有2种:(1)利用GATE信号的变化使计数过程暂停。(2)向8253输出一个通道控制字(D5D400),命令8253计数器中的锁存器锁存。其程序如下:MOVAL,00H;O号通道,D5D400锁存命令。MOVDX,CRLP;控制口地址送DXOUTDX,AL;控制字送控制口INAL,PRT0;读计数器0的低8位当前计数值XCHGAL,AH;低8位当前计数值暂存AHINAL,PRT0;读高位当前计数值XCHGAL,AH;利用交换指令使计数值的低8位送AL,高8位送AH,设PRT0为计数器0的口地址。,.,29,6.1.68253编程应用举例在一个实际的数据采集系统中,要求5s钟采一个数,现场的主时钟的振荡频率为25MHz。分析:选择工作方式3(方波发生器),连续工作对25M的脉冲分频。时钟周期Tckl25106计数初值n=T/Tck=5(l25106)=1.25107一个计数器最多的分频次数是65536,是不够用的。采用两级计数器,用计数器0的输出OUT0作为计数器1的输入CLK1。计数器0的计数值为50000;C350H计数器1的250;FAH。则有:总的计数值=50000250=1.25107计数器0:方式3(方波发生器)控制宇36H计数器1:方式2(分频器)控制字54H设:控制口地址:CRPT;0号计数器:PRT0;1号计数器:PRT1,.,30,实现上述过程的程序如下:MOVAL,36HMOVDX,CRPTOUTDX,AL;0号计数器方式3MOVAL,50HMOVDX,PRT0OUTDX,AL;计数值低8位MOVAL,C3HOUTDX,AL;计数值高8位MOVAL,54HMOVDX,CRPTOUTDX,AL;1号计数器方式2MOVAL,FAHMOVDX,PRT1OUTDX,AL;计数值低8位,8253,CLK0,GATE0,OUT0,CLK1,GATE0,OUT0,2.5MHZ,+5V,+5V,5S脉冲,.,31,6.2并行外围接口8255A的结构与编程6.2.1并行通信的简单原理中央处理器(CPU)和外部设备进行数据传输,都采用接口电路和CPU相连。接口方式:串行通信接口和并行通信接口。状态端口:状态信息表示外设当前所处的工作状态。接口:数据端口:数据信息进行数据传输。地址端口:控制信息控制外设接口的工作方式等。典型的并行接口:有一个控制寄存器,CPU对外设的操作命令都寄存在控制寄存器中。一个状态寄存器,主要是用来提供外设的各种状态位,以供CPU来查询。另外在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器的作用是用来暂存数据。主要是用来匹配CPU和外设的数据处理速度的。,.,32,控制寄存器,状态寄存器,输入缓冲寄存器,输出缓冲寄存器,输入设备,输出设备,地址译码器,CS,A0,A1,数据总线,准备好输出,准备好输入,中断请求,复位,RD,WR,地址总线,M/IO,输入数据,输入数据准备好,输入回答,输出数据,输出数据准备好,输出回答,并行接口原理结构图,CPU,.,33,数据输入:(1)外设先使状态线“输入数据准备好”为高电平(有效);(2)数据接收到输入缓冲寄存器中;(3)把“输入回答”信号置成高电平(有效),并发给外设;(4)外设接到回答信号后,将撤消“输入数据准备好”的信号。(5)当接口收到数据后,会在状态寄存器中设置“准备好输入”状态位,以便CPU对其进行查询或中断输入。数据输出:(1)当外设从接口接收到一个数据后,接口的输出缓冲寄存器“空”,使状态寄存器“输出数据准备好”状态位为高电平有效;(2)CPU将输出数据送到接口的输出缓冲寄存器;(3)接口向外设发送一个启动信号,启动外设接收数据;(4)外设接收到数据后,向接口回送一个“输出回答”信号;(5)接口电路收到该信号后,自动将接口状态寄存器中的“准备好输出”状态位重新置为高电平“l”。,.,34,6.2.28255A结构框图及功能部件说明8255A是为Intel公司的微处理机配套的通用可编程并行接口芯片,可编程的IO引脚有24条,分为2组,每组12条,并有三种工作方式。芯片的主要技术特性是:输入、输出电平与TTL电平完全兼容;改善了时序特性;直接位的置1置0功能,便于实现控制性接口使用;单一的+5V电源。8255A的内部结构:,.,35,端口A(8),端口C上半部(4),端口C下半部(4),端口B(8),B组控制,A组控制,数据总线缓冲器,读/写控制逻辑,DB,RD,WR,A0,A1,REST,CS,8位内部,数据总线,PA7-PA0,PC7-PC4,PC3-PC0,PB7-PB0,CPU接口,内部逻辑,外设接口,8253A内部结构,.,36,1三个独立的数据端口A端口:A端口对应一个8位的数据输入锁存器和一个8位的数据输出锁存和缓冲器。用于双向的数据传输,有锁存功能。B端口和C端口:这两个端口分别是由一个8位的数据输入缓冲器和一个8位的数据输出锁存和缓冲器组成。输出有锁存功能;输入无锁存。2。A组控制电路和B组控制电路A组控制电路控制A端口和C端口的高4位(PC4一PC7)。B组控制电路控制B端口和C端口的低4位(PC0一PC3)。控制电路的作用是:接收CPU输出的方式控制命令字;接收来自读写控制逻辑电路的读写命令;决定A组和B组的工作方式和读写操作。3读写控制逻辑电路完成内部三个数据端口的译码工作,由CPU的地址总线Al、AO,8255A的片选信号CS和RD、WR信号组合后产生控制命令,并将产生的控制命令传送给A组和B组的控制电路,从而完成对数据信息的传输控制。,.,37,8255A的控制信号与执行的操作之间的对应表CSRDWRA1A0执行的操作00100读A端口(A端口数据数据总线)01000写A端口(A端口数据总线数据)00101读B端口(B端口数据数据总线)01001写B端口(B端口数据总线数据)00110读C端口(C端口数据数据总线)01010写C端口(C端口数据总线数据)01011当D7l时,对8255A写入控制字当D7O时,对C端口置位复位00111非法的信号组合011*数据线D7D0进入高阻状态1*未选择,.,38,6.2.38255A引脚信号定义8255A是40条引脚双列直插式芯片。引脚按连接功能分为2组。1与CPU相连的引脚RESET:复位信号,高电平有效。复位后把8255A内部的所有寄存器都清“0”,并将三个数据端口自动设置为输入端口。CS:片选信号,低电平有效。只有当芯片被选中才能进行读、写操作。RD:读信号,低电平有效。WR:写信号,低电乎有效。A1A0:端口译码信号。00选中A端口;01选中B端口;10选中C端口;11选中控制端口。D7D0:双向8位三态数据线,与系统的数据总线相连接。2和外设端相连的引脚PA7PA0:A端口的输入输出引脚;PB7PB0:B端口的输入输出引脚;PC7PC0:C端口的输入输出引脚;,.,39,6.2.48255A的控制字8255A的控制字:方式选择控制字和端口C置1置0控制宇11方式选择控制字方式选择控制字标识位总为1,D7D6D5D4D3D2D1D0,00:方式001:方式11:方式2,PA口1:输入0:输出,PC7PC41:输入0:输出,A组控制,0:方式01:方式1,PB口1:输入0:输出,PC3PC01:输入0:输出,B组控制,.,40,如果要求8255A的A端口作输入,B端口和C端口作输出,A组工作在方式0,B组工作在方式l。94H标志位A方式0B方式1A口输入B口输出C口输出C口输出相应的程序段:MOVAL,94H;方式选择控制字送AL。MOVDX,Portctr;控制口地址Portctr送DXOUTDX,AL;方式选择控制字输出给8255入的;控制端口,完成方式选择,1,0,0,1,0,1,0,0,控制字为94H,Portctr为控制口的地址,.,41,2端口C置1置0控制字8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或状态位来使用,配合A端口或B端口的工作。初始化时,C端口置l置0控制字可以单独设置到C端口的某一位为0或某一位为1,控制字的D7位为“0”是C端口置l置0控制字中的标识位。D6D4位可为任意值,不影响操作。D3D1位用来决定对C端口8位中的哪一位进行操作。Do位用来决定对所选择的位是置l还是置0。C端口位选择C端口置位000:PC0001:PC1置1/置0选择标识位010:PC2011:PC30:置0总为0100:PC4101:PC51:置1110:PC6111:PC7,D7,D6,D5,D4,D3,D2,D1,D0,任意值,一般为0,.,42,例如:要将C端口的PC3置0,PC7置l,可用下列程序段实现。06H0FHMOVAL,06H;PC3置0控制字送ALMOXDX,PortCtr;控制口地址PortCtr送DXOUTDX,AL;对PC3完成置0操作MOVAL,0FH;PC7置1控制字送ALOUTDX,AL;对PC7完成置1操作,00000110,PC3,置0,00001111,PC7,置1,.,43,6.2.58255A的工作方式8255A有3种工作方式:方式0,方式l和方式2。A端口:3种方式中的任一种;B端口:方式0和方式1;C瑞口:通常作为控制信号使用,配合A端口和B端口的工作。1.方式0:基本的输入输出方式方式0的基本定义如下:2个8位的端口和2个4位的端口。都可以作为输入或输出。输出可以被锁存。输入不能锁存。,.,44,输入时序对各信号的要求是:地址信号要领先于RD信号。RD信号有效到数据稳定的最长时间为250ns;读信号有效到数据稳定的时间内,应由输入设备解决数据锁存问题。,RD,输入数据,数据有效,数据有效,CS、A1、A0,D7D0,tRR,tIR,tHR,tAR,tRD,tRA,tDF,方式0输入时序,.,45,输出时序对各信号的要求是:地址信号必须在写信号WR之前有效,且维持到WR撤消后的20ns以后。写脉冲WR的宽度最小要求是400ns。数据必须在写信号之前100ns时间出现在数据总线上;写信号撤消后,数据的最小保持时间是30ns。,WR,tWW,数据有效,方式0输出时序,CS、A1、A0,数据有效,D7D0,输出数据,.,46,2方式1:选通的输入输出方式在这种方式下,当A端口和B端口进行输入输出时,必须利用C端口提供的选通和应答信号。方式1的基本定义如下:分成2组(A组和B组)。每组包含一个8位的数据端口和1个4位的控制数据端口。8位的数据端口既可以作为输入也可以作输出,输入和输出都可以被锁存。4位的控制数据端口用于传送8位数据端口的控制和状态信息。(1)选通的输入方式选通输入方式:规定是PC3PC5分配给A端口,PC0PC2分配给B端口。C端口剩下的2位PC6,PC7可作为简单的输入输出线使用,控制字的D3位为l时输入;D3位为0时输出。,.,47,A组工作于方式1输入的控制字B组工作于方式1输入的控制字,1,0,1,1,1/0,1,1,1,方式1,端口A输入,PC7、PC6,1输入,0输出,方式1,端口B输入,INTEA,INTEB,PC4,PC5,PC3,PC6、PC7,PA7PA0,RD,I/O,INTRA,IBFA,STBA,8,PC2,PC1,PC0,PB7PB0,8,STBB,IBFB,INTRB,RD,方式1输入时C端口对A、B端口的控制,.,48,外设数据送到数据线上时,发出选通输入信号STB(500ns)锁存数据到输入寄存器。STB信号变低后(300ns)使输入缓冲器满信号IBF变为高电平。STB结束后,最多经过300ns时间向CPU发出中断请求信号(INTR变高)。CPU响应中断后发出读信号RD,将数据读入到CPU中,读信号有效(低电平)后,最多经过400ns时间就清除中断请求,使中断请求信号变低。当读信号结束后,才使输入缓冲器满信号IBF变低,通知外设可以输入新的数据。,STB,IBF,INTR,RD,从外设来的,输入数据,方式1选通输入时序,.,49,方式l选通输入方式时,各控制信号的意义如下:STB:选通输入信号,低电平有效。A组方式控制字中对应PC4;B组方式控制字中对应PC2。宽度最小是500ns。IBF:输入缓冲器满信号,高电平有效。A组方式控制字中对应PC5;B组方式控制字中对应PC1。STB变低后300ns时间内变有效的高电平。在RD信号撤消后的300ns时间内IBF信号才撤消。保证数据传输的可靠性。INTR:中断请求信号,高电平有效,A组方式控制字中对应PC3;B组方式控制字中对应PC0。STB信号撤销后最多300ns时间内,IBF信号变为高电平有效。INTE:中断允许信号、高电平有效。INTE的状态是用软件通过由C端口置1置0控制字来控制的。,.,50,(2)选通的输出方式方式1在选通输出情况下对应的控制信号:PC3,PC6,PC7分配给A端口;PC2,PC1,PC0分配给B端口。PC4,PC5可作为简单的输入输出线使用,当控制字的D3位为1时PC4,PC5作输入;当控制字的D3位为0时PC4,PC5作输出。,1,0,1,0,1/0,1,0,1,方式1,端口A输出,方式1,端口B输出,INTEA,INTEB,PC6,PC7,PC2,PC1,PC3,PC0,PA7PA0,PB7PB0,WR,WR,PC4PC5,ACKA,ACKB,OBFA,OBFB,INTRA,INTRB,.,51,8255A方式1输出时序8255A工作在方式1输出选通方式一般是采用中断方式。CPU响应中断以后,向8255A输出数据,写信号WR出现;经过850ns写信号WR撤消,其上升沿一方面撤消中断请求信号INTR,另一方面使OBF信号变为有效的低电平,通知外设可以接收数据。当外设收到数据后,便发出一个ACK信号,同时使OBF变为无效,表示数据已经取走,当前缓冲器空。ACK信号结束时使INTR信号变为有效的高电平,向CPU发出中断请求信号,从而开始新的数据输出过程。OBF:输出缓冲器满信号,低电平有效。INTR:中断请求信号,高电平有效。ACK:数据接收应答信号,低电平有效。INTE:中断允许信号,高电平有效。,WR,OBF,INTR,ACK,送外设的数据,数据有效,.,52,3方式2:带选通的双向传输方式双向的传输方式:可以向外设发送数据;又可以接收从外设发来的数据方式2的基本定义如下:只能适用于A端口。一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。,1,1,端口A,方式2,端口B,方式设定,PC2PC0,1输入,0输出,PC3,PC7,PC6,PC4,PC5,INTE2,INTE1,PC3PC0,INTRA,PA7PA0,OBFA,ACKA,STBA,IBFA,3,I/O,WR,RD,方式2时各控制信号:STB:选通信号,低电平有效。IBF:输入缓冲器满信号,高电平有效。OBF:输出缓冲器满信号,低电平有效。INTR:中断请求信号,高电平有效。ACK:数据接收应答信号,低电平有效。INTEI:输出中断允许信号。,.,53,6.2.58255A编程应用举例例:采用查询方式传送数据,A端口作为8位数据的输出口,工作在方式1,输出方式。C端口作为状态口和控制口使用,打印机有3个控制状态信号线。BUSY表示打印机是否为“忙”状态,高电平有效。STB选通信号,低电平有效。ACK是打印机对主机的应答信号,当打印机接收完字符后发出该信号。当STB信号有效时将BUSY信号置为高电平,ACK有效使BUSY置为低电平图中的单稳定用来展宽脉冲,以满足打印机对STB信号要求的时间宽度。,D7D0,PA7PA0,RESTPC4,RDPC6,WR(ACK),CSPC7,A0,A18255A,D7D0,BUSY,ACK,DATASTB,单稳,数据总线,复位,IOR,IOW,地址译码,AEN,地址总线,查询方式接线图,打印机,(OBF),.,54,A端口地址用PRA表示,C端口地址用PRC表示,控制口地址用PORC表示。输出500个字符程序段如下:MOVAL,08AH;A端口方式1输出,PC4输入MOVDX,PORC;控制口地址送DXOUTDX,AL;输出控制字到控制口MOVCX,500;传送字符数500个MOVDI,BUF;送字符缓冲区首地址LOP1:MOVAL,DI;从字符缓冲区取字符MOVDX,PRA;A端口地址送DXOUTDX,AL;从A端口输出个字符MOVDX,PRC;C端口地址送DXNEXT:INAL,DX;从C端口渎入打印机状态TESTAL,10H;测试BUSY信号JNZNEXT;如果打印机忙,继续测试,等待INCDI;数据缓冲区地址加1LOOPLOP1;继续输出下一个字符,.,55,中断方式传送数据电路的连接图CFU控制PC4产生选通脉冲,PC4作输出用,这里OBF没有用。PC3作为中断请求INTR,由ACK信号上升沿产生,使用IRQ3,中断向量OBH。,D7D0ACKDATASTB,打印机,D7D0,RESTPC6,PA7PA0,RD,(ACK),WR,PC4,CS,PC3,(INTR),A0,A1,地址译码,地址总线,数据总线,复位,IOR,IOW,INTR去CPU,8255A,.,56,MOVAL,0A0HMOVDX,PROCOUTDX,ALMOVAL,09H;置PC41,令DATASTB1选通无效CLI;关中断MOVAH,35HMOVAL,OBHINT21HPUSHESPUSHBXPUSHDSMOVDX,OFFSETINTSERVMOVAX,SEGINTSERVMOVDS,AXMOVAL,0BHMOVAH,25HINT21H,取中断号0BH的中断向量。,保存0BH的中断向量。,INTSERV是中断服务程序的入口地址OFFSETINSERV;取偏移量,SEGINSERV;取段基值,通过功能号25H的DOS功能调用设置中断号0BH的中断矢量。,10100000,0AH,标志位方式1输出PC4输出,A端口方式1输出方式,PC4作输出,00001001,09H,PC4,置0,标志位,.,57,POPDSMOVAL,0DHMOVDX,PROCOUTDX,ALSTI;开中断CLIPOPDX;将开始压线的ES、BX的内容弹入DS、DX中POPDSMOVAL,0BHMOVAH,25HINT21H;恢复0BH原中断向量STI,00001101,0DH,标志位,PC6,置1,使PC6=1INTE为1允许中断,C口置1/0,.,58,中断服务程序INSERV:PUSHAD;寄存器压栈MOVAL,CL;打印字符送ALMOVDX,PORTAOUTDX,AL;打印字符送A端口MOVAL,00HMOVDX,PORTCTROUTDX,AL;置PC4=0产生选通信号,;使DATASTB为低电平INCALOUTDX,AL;使PC41,撤消选通信号MOVDX,20HOUTDX,20H;发EOI命令POPADIRET,.,59,63串行通信接口8251A的结构与编程6.3.1串行通信的基本概念与术语串行通信:是一位一位地进行数据传输。串行通信具有传输线少,成本低等优点,适合远距离传送。缺点是速度慢,若并行传送n位数据需时间T,则串行传送的时间最少为nT。,扩展寄存器,状态寄存器,数据输入寄存器,输出缓冲寄存器,串入并出,并入串出,CS,C/D,接收时钟,发送时钟,串行数据入,串行数据出,地址译码,控制,数据总线,RXRDY,TXRDY,复位,RD,WR,M/IO,地址总线,串行通信接口,CPU,.,60,串行接口部件的典型结构:由控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器组成输入:串行数据经过串行输入并行输出电路转换成并行数据;输出:并行数据经过并行输入串行输出电路转换成串行数据。1串行通信中使用的术语(1)发送时钟和接收时钟。二进制数据序列在传输线上是以数字信号形式出现,即高电平表示二进制数1,低电平表示二进制数0。而且每一位持续的时间是固定的,在发送时是发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。,并行输入串行输出,串行输入并行输出,8位、16位、32位或更多,来自CPU,1位输出,1位输入,8位、16位、32位或更多,送往CPU,串行、并行,输入、输出示意图,.,61,发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。接收时钟:接收时钟作为移位寄存器的触发脉冲将串行数据逐位打入移位寄存器,转换成并行数据。2.DTE和DCE数据终端设备(DTE):是对属于用户所有联网设备和工作站的统称。DCE是对网络设备的统称,该设备为用户设备提供人网的连接点。自动呼叫应答设备,调制解调和其他一些中间设备均属DCE。信道:是传输信息所经过的路径,是连接2个DTE的线路。它包括传输介质和有关的中间设备。,DTE数据终端设备,DTE数据终端设备,DCE,DCE,信道,.,62,2.串行通信中的工作方式全双工:相互通信的双方都可以同时进行发送信号和接收信号。(手机的工作方式即是全双工方式。)半双工:在某一个时刻,只能进行发送,或只能进行接收。发送和接收不能同时进行,这种传输方式称为半双工。(常见的步话机就是半双工方式。)单工方式:通信的一端为发送器另端为接收器,即形成单向连接。数据按照一个固定的方向传送(也称广播方式)。,发送器,接收器,发送器,接收器,发送器,接收器,发送器,接收器,全双工方式,半双工方式,发送器,接收器,单工方式,A站点,B站点,A站点,B站点,A站点,B站点,.,63,3同步通信和异步通信方式同步通信:由一个统一的时钟控制发送方和接收方,若干字符组成一个信息组。开始为12个同步字符(常称为帧头),后面跟着的是58位的字符数据。同步传输时,要求必须连续传送字符,每个字符的位数要相同,中间不允许有间隔;若没有字符时,也要发送专用的“空闲”字符或者是同步字符。,同步字符,同步字符,字符,字符,字符,同步通信字符格式,.,64,异步通信:字符是一帧一帧的传送,每帧字符的传送靠起始位来同步。异步通信字符格式:一位起始位“0”(低电平);58位的数据位;1位奇偶校验位(也可能没有);以及1、1.5、2位的停止位“1”(高电平)。,1/0,1/0,1/0,1/0,1/0,1/0,1/0,1/0,0,1111,1/0,1/0,起始位,7位数据代码,低位,奇偶校验,高位,停止停止,空闲位,下一个字符,0,停止位,停止位或空闲位的下降沿指出下一个字符的开始。,异步通信字符格式,.,65,4通信中必须遵循的规定(1)字符格式的规定。(2)比特率、波特率比特率:每秒传输的二进制数的位数bit(位/s)。波特率1二进制位的持续时间发送时钟与波特率的关系是:(n可以是1,16,32,64)。n为波特率因子,是传输一位二进制数时所用的时钟周期数。,时钟频率n波特率,同步:12个同步字符,后面跟着的是58位的字符数据。,异步:一位起始位“0”,58位的数据位,1位奇偶校验位,1、1.5、2位的停止位“1”。,.,66,5信号的调制与解调采用调制解调器(modem)利用电话线来实现远距离的信息传输。调制器:把数字信号转换为模拟信号。解调器:把模拟信号转换为数字信号。调制解调器(modom)是完成调制和解调的功能。发送时:调制器把数字信号转换为模拟信号(图中是调频信号即频率高的信号代表1,频率低的信号代表0)。接收时:解调器把模拟信号转换为数字信号。,计算机,MODEM,MODEM,计算机,1010110,1010110,1010,模拟信号,.,67,6.3.28251A结构框图及功能部件说明18251A芯片基本性能8251A是可编程的串行通信接口芯片,它的基本性能如下:(1)可工作在同步方式(波特率为064k),也可工作在异步方式(波特率为019.2k)。(2)同步方式时,每个字符可定义为58位。两种方法实现同步,由内部自功检测同步字符或由外部给出同步信号。允许同步方式下增加奇偶校验位进行校验。(3)在异步方式下,每个字符可定义为58位,用1位作奇偶校验。时钟速率可用软件定义为波特率的l,16或64倍。另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位,15佐或2位停止位。(4)能进行出错检测,带有奇偶,溢出和帧错误等检测电路。用户可通过输入状态寄存器的内容进行查询。,.,68,8251A的内部结构框图,.,69,数据总线缓冲器、读写控制逻辑(见表)发送缓冲器、发送控制器、8251A的基本组成接收缓冲器、接收控制器、调制解调控制逻辑、同步字符寄存器控制各种操作的方式寄存器,CSRDWRC/D执行的操作0010CPU由8251A输入数据0100CPU向8251A输出数据0011CPU读取8251A的状态0101CPU向8251A写入控制命令,.,70,6.3.38251A引脚信号定义18251A与CPU的接口信号(1)双向的数据信号线D7D0。(2)片选信号CS,低电平有效。(3)读写控制信号:读信号RD:低电平有效。写信号WR:低电平有效。控制数据信号C/D:高电平:系统处理的是控制信息或状态信息;低电平:写入的是数据。复位信号RESET:高电平有效。主时钟信号CLK:用于芯片内部的定时,.,71,(4)与发送有关的联络信号。发送器准备好信号TXRDY(输入):高电平有效。TxRDY输出缓冲器空CTSTSEN发送器空信号TxEMPTY:高电平有效。发送时钟信号TXC:控制8251A发送器发送字符的速度。(5)与接收有关的联络信号接收器准备好信号RxRDY(输出):高电平有效。同步检测断缺检测信号SYNDETBRKDET(输入输出):高电平有效。外同步方式时,SYNDET作为输入端。当外部检测到同步字符以后,输入一个高电平信号,表示已达到同步。异步方式下BRKDET实现断缺检测功能,当连续收到8个0信号时,表示当前处于数据断缺状态。接收器时钟信号RXC:控制8

温馨提示

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

最新文档

评论

0/150

提交评论