版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
状态寄存器6.1定时器/计数器8253的结构与编程
在微机及一些控制系统中,经常要用到定时信号。如系统的日历时钟,动态存储器刷新。对外部执行机构控制时也需要定时中断、定时检测、定时查询等。定时的方法主要是两种:软件定时:利用指令的执行时间设计循环程序,使CPU执行延迟子程序的时间就是定时时间。缺点:执行延迟时,CPU一直被占用,降低了CPU的效率。硬件定时:用计数器/定时器作为主要硬件,在软件简单指令的控制下产生精确的时间延迟。突出优点为计数时不占用CPU时间,如利用定时器/计数器产生中断信号,可建立多作业环境,故提高了CPU效率。1.计数:对事件的个数进行计数。正计数:关心记录事件的次数。倒计数:关心预先设定事件次数发生完的时刻。可由硬件计数器实现,事件作为计数器的时钟,此时事件的出现频率不一定一成不变。2.定时:取得给定的时间间隔。延时:求锝某事件发生后间隔一定时间的时刻。时标:求得给定时间间隔的连续脉冲。可由硬件计数器来实现,一定频率的信号作为计数器的时钟,如果只计数到就终止,即为延时。如果连续不断的计数即可输出时标。
可编程计数器/定时器的用途
计数功能作为计数个数到中断信号。记录外部特定时间发生的个数。定时功能作为周期性定时中断信号。用于分时性操作系统。用作系统时钟基准。作为一个可编程波特率发生器。用于异步串行通讯。作为I/O设备输出定时信号。实现外设与CPU的同步。实现节约CPU的时间延时。作为音源。
6.1.18253功能及结构框图
1.8253的主要功能(1)每片上有3个独立的16位的计数器通道。(2)对于每个计数器,都可以单独作为定时器或计数器使用,并且都可以按照二进制或十进制来计数。(3)每个通道都有6种工作方式,都可以通过程序设置或改变。(4)每个计数器的速率可高达2MH2。最高的计数时钟频率为2.6MHz。(5)所有的输入、输出都是TTL电平,便于与外围接口电路相连接。(6)单一的+5V电源2.8253的结构框图CLOCK0D7~D0计数器0计数器1计数器2GATE0OUT0数据总线缓冲器读/写逻辑控制寄存器A1A0RDWR四大部分:数据总线缓冲器、读写控制逻辑、控制字寄存器以及三个独立的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位的预置初始值寄存器。一个可预置数减法计数器和一个锁存器。信号名引
脚信号方向
功
能
定
义D7—D01—8
双向8位三态的数据线CLK0
9输入计数器0的时钟输入OUT0
10
输出计数器0的输出GATE0
11输入计数器0的门控输入CLK1
15
输入计数器1的时钟输入OUT1
13
输出计数器1的输出GATE2
14
输入计数器1的门控输入CLK2
18
输入计数器2的时钟输入OUT2
17
输出计数器2的输出GATE2
16
输入计数器2的门控输入,CS
21
输入片选信号,RD
22
输入读信号,低电平有效。CS=0,RD=0时,读取某个计数器当前的计数值。WR
23
输入写信号,低电平有效。CS=0、WR=0时,写入控制字或计数器置初值。A1,A0
20,19
输入A1,A0的组合对3个计数和控制器寄存器进行寻址。
6.1.38253编程命令字和工作方式
1.初始化编程的原则’8253的控制字寄存器和3个计数器分别具有独立的编程地址,由控制字的内容确定使用的是哪个寄存器以及执行什么操作。因此8253在初始化编程时并没有严格的顺序规定,但是在编程时,必须遵守两条原则:①在对某个计数器设置韧始值之前,必须先写入控制字。②在设计初始值时,要符合在控制字中规定的格式。作定时器时初值的确定:当计数器装入初值后,在GATE端由低变高时,由CLK脉冲触发开始,自动计数,当汁数变到0时,由OUT端发定时时间到信号。计数器的计数初值n(时间常数)与定时时间t及时钟周期TCK之间的关系是:
n=tTCK2.8253的初始化编程
(1)设置控制命令字:用来选择计数器,设置工作方式和计数格式。D7D6位(SC1,SC0):用于选择计数器,根据这2位的编码来确定使用的是哪一个计数器。D5D4(RW1,RW0):用于确定读/写的格式。D3~D1位(M2,M1,M0):这三位用来指定计数器的工作方式,8253的计数器共有6种工作方式。D0位(BCD):用来选择计数的类型,确定计数器是采用二进制计数还是采用二~十进制计数。
(2)设置初始值命令。(3)锁存命令:读计数器的值时必须先用锁存命令将当前计数值在输出锁存器中锁定。否则,计数器的数值有可能正处在改变过程中。这样输入可能得到一个不确定的结果。D7SC1D6SC0D5RW1D4RW0D3M2D2M1D1M0D0BCD00:计数器0
01:计数器1
10:计数器211:无定义
00:锁存计数值000:方式0
01:读/写低八位001:方式1
10:读/写高八位×10:方式2
11:先读/写低八位×11:方式3后读/写高八位100:方式4101:方式5
8253控制字的格式00:计数器001:计数器110:计数器211:无定义0:二进制1:BCD码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。
8253门控信号(GATE)的控制功能
方式信号状态低电平或负跳变正跳变高电平0禁止记数——允许记数1——1.初始化,启动记数——2.下一个脉冲输出变低21.禁止记数初始化,启动记数允许记数2.输出变高31.禁止记数初始化,启动记数允许记数2.输出变高4禁止记数——允许记数5——初始化,启动记数——
1.方式0(计数结束产生中断的计数器)写入方式控制字后,输出端OUT为低电平;写入计数常数后,开始计数。计数器减为0之前,输出端OUT维持低电平。当计数值为0时,输出端OUT才变为高电平,向CPU发出中断请求,直到CPU写入新的控制字或者写入新的计数值为止。
WRCWn=4CLKGATEOUT1432
方式0可由门控信号控制暂停,GATE为低电平时,计数器暂停,GATE信号变高后,就接着计数。WRCLKGATEOUTCWn=33221
2.方式1(可重复编程的单脉冲)
设定工作方式和写入计数值后,OUT输出高电平,GATE(触发信号)变为高电平后,OUT变为低电平,开始计数。当计数器减到0时,OUT才输出高电平。输出低电平期间,写入新计数值,不会影响原记数过程。只有第一次计数完,GATE再来一个正跳变时才使用新的计数值计数WRCLKGATEOUTCWn=3321记数结束开始记数开始记数n=55若在第一次计数末完成之前,GATE又产生正跳变(即下一个脉冲信号又到来)时,则从新的GATE的上升沿以后,开始重新计数,OUT端输出的低电平保持不变,2次的计数过程合在一起,因此使输出的负脉冲宽度加宽了321321WRCWn=3CLKGATEOUT3.方式2(分频器)
写入方式2的控制字后,OUT变高,设GATE为高先到,计数器对CLK计数,设计数初值为N。当计数器计到(N一1)个CLK信号时,OUT输出变低,计数器的值为l。最后一个CLK信号输入后,计数器减到0,OUT回到高,计数器又自动从初值开始计数。因此OUT端在每N个CLK信号中输出一个宽度等于CLK信号周期的负脉冲。负脉冲的周期=计数值N×时钟CLK的周期T。WRCLKGATEOUTCWn=3记数结束重新记数321321重新记数计数过程中要求门控脉冲GAT置保持为高,当GATE为低电平时,则计数被中止暂停,在GATE再变高后,计数器又被置入初值,重新计数。
方式2输出负脉冲的周期为CLK周期的N倍,频率是1/N。称为分频器,可以用来给自动控制中的实时检测,实时控制提供时钟信号。WRCLKGATEOUTCWn=33222321重新记数
4.方式3(方波发生器)采用方式3工作时,计数器输出为方波信号(GATE始终为高电平)。当计数值为偶数时,在前N/2计数期间,OUT输出高电平,而后N/2个计数期间,OUT输出为低电平,对称方波。42424242CWn=4WRCLKGATEOUT记数值为N奇数时的波形
当计数值为奇数时,在前(N+1)/2计数期间,OUT输出高电平,而后(N-1)/2个计数期间,OUT输出为低电平。
42042420CWn=5WRCLKGATEOUT
高电平宽度比低电平宽度大一个时钟周期的近似方波。实际上由于时钟周期很小,几乎没什么差别。
方式3计数时要求GATE为高电平,当GATE为低电平时,停止计数。若OUT为低电平,GATE变为低电平时,OUT立即变高,计数器将重新装入初始值,重新计数。42424242CWn=4WRCLKGATEOUT22
5.方式4(软件触发选通)
当方式4的控制字写入8253后,计数器输出OUT为高电平。在写入计数初值后,而且GATE为高电平时,开始计数,计数到0后输出一个时钟周期的低电平脉冲。门控信号GATE=1时允许计数,GATE=0禁止计数。
3210CWn=3WRCLKGATEOUT软件触发选通体现在当GATE为高电平时,写入计数初值后开始计数。
6.方式5[硬件触发选通)
当写入方式5的控制字及计数常数后,输出OUT为高电平。只有在门控信号GATE上升沿到来时才开始作减1计数,计数到达0时输出一个时钟周期宽度的负脉冲。
32103CWn=4WRCLKGATEOUT硬件触发选通:GATE信号一般由硬件产生。
计数器一旦开始计数以后,将不受GATE信号变成低电平的影响,但如果GATE信号又产生了正跳变的话,则不论计数是否完成,又将给计数器置人初值,重新开始新一轮计数。
323210CWn=3WRCLKGATEOUT新计数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;控制字送控制寄存器0011011036H控制字设控制口地址为CRLP。CPU在读取任一通道的随机计数值时,需将当前的计数值锁存。实现锁存的方法有2种:(1)利用GATE信号的变化使计数过程暂停。(2)向8253输出一个通道控制字(D5D4=00),命令8253计数器中的锁存器锁存。其程序如下:MOVAL,00H;O号通道,D5D4=00锁存命令。MOVDX,CRLP;控制口地址送DXOUTDX,AL;控制字送控制口INAL,PRT0;读计数器0的低8位当前计数值XCHGAL,AH;低8位当前计数值暂存AHINAL,PRT0;读高位当前计数值XCHGAL,AH;利用交换指令使计数值的低8位送AL,高8位送AH设PRT0为计数器0的口地址。6.1.68253编程应用举例
在一个实际的数据采集系统中,要求5s钟采一个数,现场的主时钟的振荡频率为2.5MHz。分析:选择工作方式3(方波发生器),连续工作对2.5M的脉冲分频。时钟周期Tck=l/2.5×106
计数初值n=T/Tck=5÷(l/2.5×106)=1.25×107一个计数器最多的分频次数是65536,是不够用的。采用两级计数器,用计数器0的输出OUT0作为计数器1的输入CLK1。计数器0的计数值为50000;C350H计数器1的250;FAH。则有:总的计数值=50000×250=1.25×107计数器0:方式3(方波发生器)控制宇36H计数器1:方式2(分频器)控制字54H设:控制口地址:CRPT;0号计数器:PRT0;1号计数器:PRT1实现上述过程的程序如下:MOVAL,36HMOVDX,CRPTOUTDX,AL;0号计数器方式3MOVAL,50HMOVDX,PRT0OUTDX,AL;计数值低8位MOVAL,C3HOUTDX,AL;计数值高8位MOVAL,54HMOVDX,CRPTOUTDX,AL;1号计数器方式2MOVAL,FAHMOVDX,PRT1OUTDX,AL;计数值低8位8253CLK0GATE0OUT0CLK1GATE0OUT02.5MHZ+5V+5V5S脉冲
6.2并行外围接口8255A的结构与编程
6.2.1并行通信的简单原理中央处理器(CPU)和外部设备进行数据传输,都采用接口电路和CPU相连。接口方式:串行通信接口和并行通信接口。状态端口:状态信息表示外设当前所处的工作状态。接口:数据端口:数据信息进行数据传输。地址端口:控制信息控制外设接口的工作方式等。典型的并行接口:有一个控制寄存器,CPU对外设的操作命令都寄存在控制寄存器中。一个状态寄存器,主要是用来提供外设的各种状态位,以供CPU来查询。另外在并行接口中还设置了输入缓冲寄存器和输出缓冲寄存器,缓冲器的作用是用来暂存数据。主要是用来匹配CPU和外设的数据处理速度的。控制寄存器状态寄存器输入缓冲寄存器输出缓冲寄存器输入设备输出设备地址译码器CSA0A1数据总线准备好输出准备好输入中断请求复位RDWR地址总线M/IO输入数据输入数据准备好输入回答输出数据输出数据准备好输出回答并行接口原理结构图CPU数据输入:(1)外设先使状态线“输入数据准备好”为高电平(有效);(2)数据接收到输入缓冲寄存器中;(3)把“输入回答”信号置成高电平(有效),并发给外设;(4)外设接到回答信号后,将撤消“输入数据准备好”的信号。(5)当接口收到数据后,会在状态寄存器中设置“准备好输入”状态位,以便CPU对其进行查询或中断输入。数据输出:(1)当外设从接口接收到一个数据后,接口的输出缓冲寄存器“空”,使状态寄存器“输出数据准备好”状态位为高电平有效;(2)CPU将输出数据送到接口的输出缓冲寄存器;(3)接口向外设发送一个启动信号,启动外设接收数据;(4)外设接收到数据后,向接口回送一个“输出回答”信号;(5)接口电路收到该信号后,自动将接口状态寄存器中的“准备好输出”状态位重新置为高电平“l”。6.2.28255A结构框图及功能部件说明
8255A是为Intel公司的微处理机配套的通用可编程并行接口芯片,可编程的I/O引脚有24条,分为2组,每组12条,并有三种工作方式。芯片的主要技术特性是:①输入、输出电平与TTL电平完全兼容;②改善了时序特性;③直接位的置1/置0功能,便于实现控制性接口使用;④单一的+5V电源。8255A的内部结构:
端口A(8)端口C上半部(4)端口C下半部(4)端口B(8)B组控制A组控制数据总线缓冲器读/写控制逻辑DBRDWRA0A1RESTCS8位内部数据总线PA7-PA0PC7-PC4PC3-PC0PB7-PB0CPU接口内部逻辑外设接口8253A内部结构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组的控制电路,从而完成对数据信息的传输控制。
8255A的控制信号与执行的操作之间的对应表CSRDWRA1A0执行的操作00100读A端口(A端口数据→数据总线)01000写A端口(A端口←数据总线数据)00101读B端口(B端口数据→数据总线)01001写B端口(B端口←数据总线数据)00110读C端口(C端口数据→数据总线)01010写C端口(C端口←数据总线数据)01011当D7=l时,对8255A写入控制字当D7=O时,对C端口置位/复位00111非法的信号组合011**数据线D7~D0进入高阻状态1****未选择6.2.38255A引脚信号定义8255A是40条引脚双列直插式芯片。引脚按连接功能分为2组。1.与CPU相连的引脚RESET:复位信号,高电平有效。复位后把8255A内部的所有寄存器都清“0”,并将三个数据端口自动设置为输入端口。CS:片选信号,低电平有效。只有当芯片被选中才能进行读、写操作。RD:读信号,低电平有效。WR:写信号,低电乎有效。A1A0:端口译码信号。00选中A端口;01选中B端口;10选中C端口;11选中控制端口。D7~D0:双向8位三态数据线,与系统的数据总线相连接。2.和外设端相连的引脚PA7~PA0:A端口的输入/输出引脚;PB7~PB0:B端口的输入/输出引脚;PC7~PC0:C端口的输入/输出引脚;6.2.48255A的控制字8255A的控制字:方式选择控制字和端口C置1/置0控制宇1.1.方式选择控制字方式选择控制字标识位总为1D7D6D5D4D3D2D1D000:方式001:方式11﹡:方式2PA口1:输入0:输出PC7~PC41:输入0:输出A组控制0:方式01:方式1PB口1:输入0:输出PC3~PC01:输入0:输出B组控制如果要求8255A的A端口作输入,B端口和C端口作输出,A组工作在方式0,B组工作在方式l。94H标志位A方式0B方式1A口输入B口输出C口输出C口输出相应的程序段:MOVAL,94H;方式选择控制字送AL。MOVDX,Portctr;控制口地址Portctr送DXOUTDX,AL;方式选择控制字输出给8255入的;控制端口,完成方式选择10010100控制字为94HPortctr为控制口的地址
2.端口C置1/置0控制字
8255A在和CPU传输数据的过程中,经常将C端口的某几位作为控制位或状态位来使用,配合A端口或B端口的工作。初始化时,C端口置l/置0控制字可以单独设置到C端口的某一位为0或某一位为1,控制字的D7位为“0”是C端口置l/置0控制字中的标识位。D6~D4位可为任意值,不影响操作。D3~D1位用来决定对C端口8位中的哪一位进行操作。Do位用来决定对所选择的位是置l还是置0。
C端口位选择
C端口置位000:PC0001:PC1置1/置0选择
标识位010:PC2011:PC30:置0
总为0100:PC4101:PC51:置1110:PC6111:PC7D7D6D5D4D3D2D1D0任意值一般为0例如:要将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置000001111PC7置16.2.58255A的工作方式
8255A有3种工作方式:方式0,方式l和方式2。A端口:3种方式中的任一种;B端口:方式0和方式1;C瑞口:通常作为控制信号使用,配合A端口和B端口的工作。1.方式0:基本的输入输出方式方式0的基本定义如下:2个8位的端口和2个4位的端口。都可以作为输入或输出。输出可以被锁存。输入不能锁存。
输入时序对各信号的要求是:①地址信号要领先于RD信号。RD信号有效到数据稳定的最长时间为250ns;②读信号有效到数据稳定的时间内,应由输入设备解决数据锁存问题。RD输入数据
数据有效数据有效CS、A1、A0D7~D0tRRtIRtHRtARtRDtRAtDF方式0输入时序输出时序对各信号的要求是:①地址信号必须在写信号WR之前有效,且维持到WR撤消后的20ns以后。②写脉冲WR的宽度最小要求是400ns。③数据必须在写信号之前100ns时间出现在数据总线上;写信号撤消后,数据的最小保持时间是30ns。
WRtWW数据有效方式0输出时序CS、A1、A0数据有效D7~D0输出数据2.方式1:选通的输入/输出方式
在这种方式下,当A端口和B端口进行输入输出时,必须利用C端口提供的选通和应答信号。方式1的基本定义如下:分成2组(A组和B组)。每组包含一个8位的数据端口和1个4位的控制/数据端口。8位的数据端口既可以作为输入也可以作输出,输入和输出都可以被锁存。4位的控制/数据端口用于传送8位数据端口的控制和状态信息。(1)选通的输入方式选通输入方式:规定是PC3~PC5分配给A端口,PC0~PC2分配给B端口。C端口剩下的2位PC6,PC7可’作为简单的输入/输出线使用,控制字的D3位为l时输入;D3位为0时输出。
A组工作于方式1输入的控制字B组工作于方式1输入的控制字10111/0×××1××1××1×方式1端口A输入PC7、PC61输入,0输出方式1端口B输入INTEAINTEBPC4PC5PC3PC6、PC7PA7~PA0RDI/OINTRAIBFASTBA8PC2PC1PC0PB7~PB08STBBIBFBINTRBRD方式1输入时C端口对A、B端口的控制
①外设数据送到数据线上时,发出选通输入信号STB(≥500ns)锁存数据到输入寄存器。STB信号变低后(≤300ns)使输入缓冲器满信号IBF变为高电平。②STB结束后,最多经过300ns时间向CPU发出中断请求信号(INTR变高)。③CPU响应中断后发出读信号RD,将数据读入到CPU中,读信号有效(低电平)后,最多经过400ns时间就清除中断请求,使中断请求信号变低。④当读信号结束后,才使输入缓冲器满信号IBF变低,通知外设可以输入新的数据。STBIBFINTRRD从外设来的输入数据①②③④方式1选通输入时序方式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控制字来控制的。(2)选通的输出方式方式1在选通输出情况下对应的控制信号:PC3,PC6,PC7分配给A端口;PC2,PC1,PC0分配给B端口。PC4,PC5可作为简单的输入/输出线使用,当控制字的D3位为1时PC4,PC5作输入;当控制字的D3位为0时PC4,PC5作输出。10101/0×××1×××××01方式1端口A输出方式1端口B输出INTEAINTEBPC6PC7PC2PC1PC3PC0PA7~PA0PB7~PB0WRWRPC4~PC5ACKAACKBOBFAOBFBINTRAINTRB
8255A方式1输出时序8255A工作在方式1输出选通方式一般是采用中断方式。
CPU响应中断以后,向8255A输出数据,写信号WR出现;经过850ns写信号WR撤消,其上升沿一方面撤消中断请求信号INTR①,另一方面使OBF信号变为有效的低电平②,通知外设可以接收数据。当外设收到数据后,便发出一个ACK信号,同时使OBF变为无效③,表示数据已经取走,当前缓冲器空。ACK信号结束时使INTR信号变为有效的高电平④,向CPU发出中断请求信号,从而开始新的数据输出过程。
OBF:输出缓冲器满信号,低电平有效。INTR:中断请求信号,高电平有效。ACK:数据接收应答信号,低电平有效。INTE:中断允许信号,高电平有效。WROBFINTRACK送外设的数据数据有效①②③④3.方式2:带选通的双向传输方式双向的传输方式:可以向外设发送数据;又可以接收从外设发来的数据方式2的基本定义如下:只能适用于A端口。一个8位的双向端口(A端口)和1个5位的控制端口(C端口)。
11×××端口A方式2
端口B方式设定PC2~PC01输入,0输出PC3PC7PC6PC4PC5INTE2INTE1PC3~PC0INTRAPA7~PA0OBFAACKASTBAIBFA3I/OWRRD方式2时各控制信号:STB:选通信号,低电平有效。IBF:输入缓冲器满信号,高电平有效。OBF:输出缓冲器满信号,低电平有效。INTR:中断请求信号,高电平有效。ACK:数据接收应答信号,低电平有效。INTEI:输出中断允许信号。
6.2.58255A编程应用举例例:采用查询方式传送数据,A端口作为8位数据的输出口,工作在方式1,输出方式。C端口作为状态口和控制口使用,打印机有3个控制状态信号线。BUSY表示打印机是否为“忙”状态,高电平有效。STB选通信号,低电平有效。ACK是打印机对主机的应答信号,当打印机接收完字符后发出该信号。当STB信号有效时将BUSY信号置为高电平,ACK有效使BUSY置为低电平.图中的单稳定用来展宽脉冲,以满足打印机对STB信号要求的时间宽度。
D7~D0PA7~PA0RESTPC4RDPC6WR(ACK)CSPC7A0
A1
8255A
D7~D0BUSYACKDATASTB单稳数据总线复位IORIOW地址译码AEN地址总线查询方式接线图打印机(OBF)
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;继续输出下一个字符
中断方式传送数据电路的连接图CFU控制PC4产生选通脉冲,PC4作输出用,这里OBF没有用。PC3作为中断请求INTR,由ACK信号上升沿产生,使用IRQ3,中断向量OBH。D7~D0ACKDATASTB打印机D7~D0RESTPC6PA7~PA0RD(ACK)WRPC4CSPC3(INTR)A0A1地址译码地址总线数据总线复位IORIOWINTR去CPU8255A
MOVAL,0A0HMOVDX,PROCOUTDX,ALMOVAL,09H;置PC4=1,令DATASTB=1选通无效CLI;关中断MOVAH,35HMOVAL,OBHINT21HPUSHESPUSHBXPUSHDSMOVDX,OFFSETINTSERVMOVAX,SEGINTSERVMOVDS,AXMOVAL,0BHMOVAH,25HINT21H取中断号0BH的中断向量。保存0BH的中断向量。INTSERV是中断服务程序的入口地址OFFSETINSERV;取偏移量,SEGINSERV;取段基值,通过功能号25H的DOS功能调用设置中断号0BH的中断矢量。101000000AH标志位方式1输出PC4输出A端口方式1输出方式,PC4作输出00001001
09HPC4置0标志位POPDSMOVAL,0DHMOVDX,PROCOUTDX,ALSTI;开中断CLIPOPDX;将开始压线的ES、BX的内容弹入DS、DX中POPDSMOVAL,0BHMOVAH,25HINT21H;恢复0BH原中断向量STI000011010DH标志位PC6置1使PC6=1INTE为1允许中断C口置1/0
中断服务程序INSERV:PUSHAD;寄存器压栈MOVAL,CL;打印字符送ALMOVDX,PORTAOUTDX,AL;打印字符送A端口MOVAL,00HMOVDX,PORTCTROUTDX,AL;置PC4=0产生选通信号,;使DATASTB为低电平INCALOUTDX,AL;使PC4=1,撤消选通信号MOVDX,20HOUTDX,20H;发EOI命令POPADIRET
6.3串行通信接口8251A的结构与编程6.3.1串行通信的基本概念与术语
串行通信:是一位一位地进行数据传输。串行通信具有传输线少,成本低等优点,适合远距离传送。缺点是速度慢,若并行传送n位数据需时间T,则串行传送的时间最少为nT。扩展寄存器状态寄存器数据输入寄存器输出缓冲寄存器串入并出并入串出CSC/D接收时钟发送时钟串行数据入串行数据出地址译码控制数据总线RXRDYTXRDY复位RDWRM/IO地址总线
串行通信接口CPU串行接口部件的典型结构:由控制寄存器、状态寄存器、数据输入寄存器和数据输出寄存器组成输入:串行数据经过串行输入并行输出电路转换成并行数据;输出:并行数据经过并行输入串行输出电路转换成串行数据。1.串行通信中使用的术语(1)发送时钟和接收时钟。二进制数据序列在传输线上是以数字信号形式出现,即高电平表示二进制数1,低电平表示二进制数0。而且每一位持续的时间是固定的,在发送时是发送时钟作为数据位的划分界限,在接收时是以接收时钟作为数据位的检测。并行输入串行输出串行输入并行输出8位、16位、32位或更多来自CPU1位输出1位输入8位、16位、32位或更多送往CPU串行、并行,输入、输出示意图发送时钟:并行的数据序列送移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由钟周期来划分。接收时钟:接收时钟作为移位寄存器的触发脉冲将串行数据逐位打入移位寄存器,转换成并行数据。2.DTE和DCE数据终端设备(DTE):是对属于用户所有联网设备和工作站的统称。
DCE是对网络设备的统称,该设备为用户设备提供人网的连接点。自动呼叫/应答设备,调制解调和其他一些中间设备均属DCE。信道:是传输信息所经过的路径,是连接2个DTE的线路。它包括传输介质和有关的中间设备。DTE数据终端设备DTE数据终端设备DCEDCE信道2.串行通信中的工作方式全双工:相互通信的双方都可以同时进行发送信号和接收信号。(手机的工作方式即是全双工方式。)半双工:在某一个时刻,只能进行发送,或只能进行接收。发送和接收不能同时进行,这种传输方式称为半双工。(常见的步话机就是半双工方式。)单工方式:通信的一端为发送器.另—端为接收器,即形成单向连接。数据按照一个固定的方向传送(也称广播方式)。发送器接收器发送器接收器发送器接收器发送器接收器全双工方式半双工方式发送器接收器单工方式A站点B站点A站点B站点A站点B站点
3.同步通信和异步通信方式
同步通信:由一个统一的时钟控制发送方和接收方,若干字符组成一个信息组。开始为1—2个同步字符(常称为帧头),后面跟着的是5~8位的字符数据。同步传输时,要求必须连续传送字符,每个字符的位数要相同,中间不允许有间隔;若没有字符时,也要发送专用的“空闲”字符或者是同步字符。
同步字符同步字符字符字符字符同步通信字符格式异步通信:字符是一帧一帧的传送,每—帧字符的传送靠起始位来同步。异步通信字符格式:一位起始位“0”(低电平);5~8位的数据位;1位奇偶校验位(也可能没有);以及1、1.5、2位的停止位“1”(高电平)。1/01/01/01/01/01/01/01/00
1111
1/01/0起始位
7位数据代码低位奇偶校验高位停止停止空闲位下一个字符0停止位停止位或空闲位的下降沿指出下一个字符的开始。异步通信字符格式
4.通信中必须遵循的规定(1)字符格式的规定。(2)比特率、波特率
比特率:每秒传输的二进制数的位数bit(位/s)。
波特率=1/二进制位的持续时间发送时钟与波特率的关系是:
(n可以是1,16,32,64)。n为波特率因子,是传输一位二进制数时所用的时钟周期数。时钟频率=n×波特率同步:1~2个同步字符,后面跟着的是5~8位的字符数据。异步:一位起始位“0”,5~8位的数据位,1位奇偶校验位,1、1.5、2位的停止位“1”。5.信号的调制与解调采用调制解调器(modem)利用电话线来实现远距离的信息传输。调制器:把数字信号转换为模拟信号。解调器:把模拟信号转换为数字信号。调制解调器(modom)是完成调制和解调的功能。发送时:调制器把数字信号转换为模拟信号(图中是调频信号即频率高的信号代表1,频率低的信号代表0)。接收时:解调器把模拟信号转换为数字信号。计算机MODEMMODEM计算机
101011010101101010模拟信号6.3.28251A结构框图及功能部件说明1.8251A芯片基本性能8251A是可编程的串行通信接口芯片,它的基本性能如下:(1)可工作在同步方式(波特率为0~64k),也可工作在异步方式(波特率为0~19.2k)。(2)同步方式时,每个字符可定义为5~8位。两种方法实现同步,由内部自功检测同步字符或由外部给出同步信号。允许同步方式下增加奇/偶校验位进行校验。(3)在异步方式下,每个字符可定义为5~8位,用1位作奇偶校验。时钟速率可用软件定义为波特率的l,16或64倍。另外,8251A在异步方式下能自动为每个被输出的数据增加1个起始位,并能根据软件编程为每个输出数据设置1位,1.5佐或2位停止位。(4)能进行出错检测,带有奇偶,溢出和帧错误等检测电路。用户可通过输入状态寄存器的内容进行查询。8251A的内部结构框图数据总线缓冲器、读/写控制逻辑(见表)发送缓冲器、发送控制器、8251A的基本组成接收缓冲器、接收控制器、调制/解调控制逻辑、同步字符寄存器控制各种操作的方式寄存器CSRDWRC/D执行的操作0010CPU由8251A输入数据0100CPU向8251A输出数据0011CPU读取8251A的状态0101CPU向8251A写入控制命令6.3.38251A引脚信号定义1.8251A与CPU的接口信号(1)双向的数据信号线D7~D0。(2)片选信号CS,低电平有效。(3)读/写控制信号:读信号RD:低电平有效。写信号WR:低电平有效。控制/数据信号C/D:高电平:系统处理的是控制信息或状态信息;低电平:写入的是数据。复位信号RESET:高电平有效。主时钟信号CLK:用于芯片内部的定时(4)与发送有关的联络信号。发送器准备好信号TXRDY(输入):高电平有效。TxRDY=输出缓冲器空·CTS·TSEN发送器空信号TxEMPTY:高电平有效。发送时钟信号TXC:控制8251A发送器发送字符的速度。(5)与接收有关的联络信号接收器准备好信号RxRDY(输出):高电平有效。同步检测/断缺检测信号SYNDET/BRKDET(输入/输出):高电平有效。外同步方式时,SYNDET作为输入端。当外部检测到同步字符以后,输入一个高电平信号,表示已达到同步。异步方式下BRKDET实现断缺检测功能,当连续收到8个0信号时,表示当前处于数据断缺状态。接收器时钟信号RXC:控制8251A接收字符的速度。
2.8251A与外部装置之间的接口信号连接的信号可分为数据信号和收发联络信号2类。(1)数据信号TxD(输出):发送数据信号端。RxD(输入):接收数据信号端。(2)发送数据时的联结信号RTS(输出):请求发送信号,低电平有效。该信号有效时,表示CPU请求通过8251A向调制解调器发送数据。CTS(输人):发送允许信号,低电平有效。该信号有效时,8251A才能执行发送操作。(3)接收数据时的联络信号DTR(输出):数据终端准备好信号,低电平有效。CPU可以通过8251A从调制解调器接收数据。DSR(输入):数据装置准备好信号,低电平有效。RS-232C收发器异步调制解调器时钟源地址译码AEN地址总线D7~D0IORIOWA0D7~D0RDWRC/DTXDRXDDTRDSRCTSRTSTXCRXCBBBAABCDCCCBCA8251A8251A异步通信方式
RS-232C收发器异步调制解调器地址译码AEN地址总线D7~D0IORIOWA0D7~D0RDWRC/DTXDRXDDTRDSRCTSRTSTXCRXCBBBAABCDCCCBCA8251A8251A同步通信方式
DB6.3.58251A的方式字、命令字的设定1.方式寄存器方式寄存器是在初始化时,用来写入方式选择字的。
同步方式:最低2位为“00”;
异步方式:最低2位不全是0。2.控制寄存器写入了方式选择字后,接着要写入的是命令字,由命令字来规定8251A的工作状态,才能启动串行通信开始工作或置位。
控制寄存器的格式
3.状态寄存器状态寄存器是反映8251A内部工作状态的寄存器,只能读出,不能写入,CPU可用IN指令来读取状态寄存器的内容。
状态寄存器格式D00D7SCSD6ESDD5EPD4PEND3L2D2L1D10同步字符数0:2个字符1:1个字符同步方式0:内同步,SYNDET为输出1:外同步,SYNDET为输入检验类型检验设置0:奇校验0:无校验1:偶校验1:有校验数据位数00:5位01:6位10:7位11:8位全0为同步方式否则为异步方式8251A同步方式的方式字要求外同步通信接口,数据位8位,2个同步字符,偶校验,其方式选择字应为十六进制的7CH(01111100B=7CH)。D7S2D6S1D1B2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购方案审核制度
- 采购样品留样管理制度
- 采购流程及管理制度范本
- 采购物料保质期管理制度
- 采购环节合规性管理制度
- 采购监管主体责任制度
- 采购管理制度分类流程
- 采购结算制度
- 采购设备进场制度
- 采购资质审核制度
- 《新收入准则下腾讯控股收入确认面临的挑战及对策-以腾讯控股为例》18000字【论文】
- 2025年甘肃公务员省考《行测》真题(含答案)
- 医药公司市场推广制度
- 铜棒成型工艺及流程
- 「Bed talk」杜蕾斯地球1小时策略
- 第七届石油工程设计大赛-单项组地面工程获奖作品
- 中小学生研学旅行投标方案(技术方案)
- 小学数学人教版四年级下第一单元《四则运算》教学设计共3课时
- 中广核电安全文化宣传手册
- 2024年广东省深圳市中考二模数学试题(解析版)
- 感染科科室医生工作总结
评论
0/150
提交评论