串并行接口技术.ppt

上传人:牧羊曲112 文档编号:6238592 上传时间:2023-10-08 格式:PPT 页数:149 大小:3.42MB
返回 下载 相关 举报
串并行接口技术.ppt_第1页
第1页 / 共149页
串并行接口技术.ppt_第2页
第2页 / 共149页
串并行接口技术.ppt_第3页
第3页 / 共149页
串并行接口技术.ppt_第4页
第4页 / 共149页
串并行接口技术.ppt_第5页
第5页 / 共149页
点击查看更多>>
资源描述

《串并行接口技术.ppt》由会员分享,可在线阅读,更多相关《串并行接口技术.ppt(149页珍藏版)》请在三一办公上搜索。

1、7.1 定时、计数技术,一、概述二、可编程计数器/定时器8253/8254三、Intel 8253/8254的应用,一、概 述,1、定时与计数 控制系统与计算机中,常常需要有定时信号,以实现定时或延时控制。如定时中断,动态存储器的定时刷新等。此外,还需要有计数功能,以实现对外部事件的计数,当外部事件发生的次数达到规定值后,向计算机发出中断请求,进而实现相应的控制或处理。定时的本质就是计数,当计数信号是周期信号时,计数就可以用于定时。如以秒为单位计数,则计数60次就是1分,计满60分就是1小时,计满24小时就是1天,2、实现定时和计数的三种方法软件方法:采用软件定时,让计算机执行一个专门的指令序

2、列,由执行指令序列中每条指令所花费的时间构成一个固定的时间间隔,从而达到定时或延时的目的。不可编程的硬件定时:采用电子器件构成定时或延时电路,通过调整电路中定时元件的数值,可实现调整定时或延时的数值和范围。可编程的硬件定时:在微机系统中采用软硬件结合的方法,即采用可编程定时的电路器件实现定时。如:Intel 8253/8254,Zilog CTC,MC6840等。8253-5(5MHz)和8254-2(10MHz)的引脚和功能都是兼容的。,二、可编程计数器/定时器8253-PIT,1、8253-PIT的主要功能 Intel 8253-PIT是具有3个16位计数器通道的可编程计数器/定时器芯片,

3、主要功能如下:(1)具有3个独立的16位计数通道;(2)每个计数通道都可按2进制或BCD进制计数;(3)8253-PIT每个计数通道的计数速率最高可达2MHz,8253-5(5MHz),8254-2(10MHz);(4)每个通道有6种工作方式,可由程序设置改变;(5)全部输入输出都与TTL电平兼容。,2、8253的结构框图,如图7.1所示8253由与CPU接口、内部控制电路以及三个计数器通道组成。,图7.1 Intel 8253结构框图,1)数据总线缓冲器:CPU用输入输出指令对8253进行读写操作时的所有信息都通过该缓冲器传送。2)读/写逻辑:这是8253内部操作的控制电路,它 从系统控制总

4、线上接收输入信号,然后转换成8253内部操作的各种控制信号。3)控制字寄存器:通过该寄存器CPU可以设置三个 计数器通道的工作方式。4)计数器0,1,2:这是3个独立的计数/定时通道,是16位的可设置计数初值的减法计数器。如图7.2所示,是每个计数通道的结构。内有计数初值寄存器CR,计数执行部件CE和输出锁存器OL及控制字寄存器。其中CE作减法计数。,计数器1,计数器2,计数器0,3、8253的引脚,8253与CPU接口的引脚,除了没有复位信号RESET引脚外,其他与8255相同。如图7.3所示,(a)是引脚图,(b)是8253的功能结构。,1)CLK CLK为时钟输入引脚,用以输入计数执行部

5、件CE(减法计数器)的计数脉冲信号。2)OUT 它是通道输出信号引脚,从功能上来说也可称为“计数到零/定时时间到”输出引脚。8253的基本功能就是对外部输入到CLK引脚的脉冲进行减法计数。3)GATE 它是门控输入信号引脚,当GATE为低电平时禁止计数器工作,通常GATE为高电平或有上升沿跳变时计数器才能工作。,4、8253的工作方式,8253有6种工作方式,每个通道均可以通过编程选择工作方式。计数启动方式:软件启动:GATE端为高电平,置入计数初值后的第2个CLK脉冲的 下降沿就开始计数 硬件启动:GATE端要求有一个上升沿跳变,对应CLK脉冲的下降 沿开始计数工作方式:方式0:计数到零产生

6、中断请求。软件启动。方式1:硬件可重复触发的单稳态触发器。硬件启动。(3)方式2:分频器。软、硬件启动。(4)方式3:方波发生器(用得最多的方式)。软、硬件启动。(5)方式4:软件触发选通。软件启动。(6)方式5:硬件触发选通。硬件启动。,(1)方式0 计数到零产生中断请求,如图7.4所示,CPU写入控制字CW,在WR的上升沿,OUT输出变低或保持低。,初值由CR到CE,CPU将计数初值N写入计数初值寄存器CR(图中初值为4),在WR上升沿之后的第一个CLK脉冲的下降沿将CR的内容送入计数执行部件CE。当GATE=1时,在CR内容送入CE后的每一个CLK脉冲下降沿使CE减1计数,在计数过程中O

7、UT一直保持低直到计数为零。计数器减到0时,OUT由低跳到高电平,此输出信号可作为中断请求。在方式0中,当GATA=0时,技术暂停,当GATA变高后就接着计数。如图7.5所示。在计数过程中也可改变计数初值。在写入新的计数初值后,计数器将立即按新的计数值重新开始计数,即改变计数初值是立即有效的,参见图7.6,(2)方式1 硬件可重复触发的单稳态触发器,若设置初值为N,则输出为N个CLK周期宽度的负脉冲。计数到零时,可再次由GATE上升沿触发,输出同样宽度的负脉冲,而不必重新写入初值,即可重复触发如图7.7所示。,在计数过程中(输出负脉冲期间),可由GATE上升沿再触发,如图7.8所示。在计数过程

8、中,CPU可改变初值,这时计数过程不受影响,计数到0后输出变高。当再次触发时,计数器才开始按新的计数初值计数。即改变计数初值是下次有效的。,(3)方式2 分频器,不用重新设置计数初值,通道能连续工作。如果初值为N,则每输入N个CLK脉冲,输出一个负脉冲,负脉冲的宽度为1个CLK周期,重复周期为N倍的CLK周期。计数过程中可由GATE信号控制,当GATE信号变低时,立即暂停现行计数;当GATE信号变高后,从计数初值开始重新计数,如图7.9所示。如果在计数过程中,CPU重新写入计数初值,则对于正在进行的计数无影响,而是从下一个计数操作周期开始按新的计数值改变输出脉冲的频率,如图7.10。,图7.9

9、 方式2中门控信号GATA的作用,图7.10 方式2计数过程中改变初值,(4)方式3 方波发生器,注意初值N为偶数或奇数时,输出信号的差别。N为偶数时,输出对称方波,周期为N个CLK宽度;N为奇数时,输出有N+1/2个CLK周期的高电平和N-1/2个CLK周期的低电平。,图7.11 方式3时序图,在计数过程中,GATE信号变低则暂停现行计数过程,直到GATE变高,将从计数初值开始重新计数。如果要求改变输出方波的频率,则CPU可在任何时候重新写入初值,并从下一个计数操作周期开始改变输出方波频率,(5)方式4 软件触发选通,若初值为N,则写入初值后的N+1个CLK脉冲才输出一个负脉冲,负脉冲的宽度

10、为一个CLK周期,如图7.12。当GATE=1时,允许计数;GATE=0时,禁止计数。在计数过程中改变初值,则按新的初值重新计数,即改变初值是立即有效的。,图7.12 方式4时序图,(6)方式5 硬件触发选通方式,初值为N,则在门控GATE上升沿触发后。经过N+1个CLK脉冲,才输出一个CLK周期的负脉冲,如图7.13。,图7.13 方式5时序图,若在计数过程中再次出现门控GATE触发信号。则将从初值开始重新计数,但OUT输出的高电平不受影响,如图7.14。若在计数过程中改变初值,只要在计数到0之前不出现新的门控触发信号,则原计数过程不受影响;等计数到0并出现新的门控触发信号后,再按新的计数初

11、值计数。若在写入了新的计数初值后,在未计数到0之前有门控触发信号出现,则立即按新的计数初值重新开始计数。,图7.14 方式5中门控信号GATA的作用,(7)六种工作方式总结,时钟周期和输出周期的区别 输出波形在时钟下降沿产生电平变化,计数值N与输出波形的关系,门控信号GATE的作用,方式2(分频器)、方式4(软件触发选通)和方式5(硬件触发选通),它们的输出波形相同,都是宽度为 1个CLK周期的负脉冲。区别是:方式2是自动重复工作的,而方式4需要由软件(设置计数初值)触发启动,方式5需要由硬件(门控GATE信号)触发启动。方式5(硬件触发选通)与方式1(硬件触发单稳),触发信号相同,但输出波形

12、不同:方式1输出为宽度是N个CLK周期的负脉冲(计数过程中输出为低),而方式5输出为宽度是1个CLK周期的负脉冲(计数过程中输出为高)。,6种工作方式中,只有方式0,写入控制字后输出为低;其余5种方式,都是写入控制字后输出为高。6种工作方式中的任何一种方式,只有在写入计数值后才能开始计数。方式0、2、3、4都是写入计数初值后,计数过程就开始了。而方式1和方式5在写入计数初值后,需由外部GATE信号的触发启动,才能开始计数过程。6种工作方式中,只有方式2(分频器)和方式3(方波发生器)为自动重复工作方式,其他4种方式都是一次 性计数,要继续工作需要重新启动。图7.15是8253六种工作方式下的输

13、出波形图。,图7.15 8253六种工作方式下的输出波形图,5、8253的初始化编程,(1)内部寄存器寻址 一片8253占用四个连续的端口地址,分别对应于三个计数初值寄存器端口和一个控制寄存器端口。3个通道共用一个控制端口,用控制字的D7和D6两位来表示作用于哪个通道。8253内部寄存器的寻址如下表所示:,表7-1:8253内部寄存器的寻址,(2)8253的控制字:如图7.16所示,图7.16 8253/8254方式控制字格式,(3)初始化编程顺序 对于每个计数通道进行初始化时,必须先写入控制字,然后写入计数初值。这是因为计数初值的写入格式是由控制字的D5和D4两位编码决定的。写入计数初值时,

14、必须按控制字规定的格式写入。例1:若用8253的计数通道1,工作在方式0,按8位二进制计数,初值为128,试编写初始化程序,设口地址为48H-4BH。解:控制字为01010000=50H,8位计数初值为80H moval,50H;设置通道1控制字 out4BH,al moval,80H;写通道1计数初值,只写低 out49H,al;8位,例2:若用8253通道1,工作在方式1,按二-十进制计数,计数初值为2010,口地址同上,试编写初始化程序。解:通道控制字为01110011=73H 计数初值高8位为20,低8位为10(注意:实际编程时要写20 H和10H)moval,73H;写通道1控制字o

15、ut4BH,almoval,10H;写通道1计数初值低8位out49H,almoval,20H;写通道1计数初值高8位out49H,al 当执行完上述程序后,8253通道1工作于方式1。经GATE上升沿触发后,输出产生一宽度为2010个CLK周期的负脉冲。,6、计数值和状态的读回,(1)8253的计数值的读回 由CPU访问每个通道的输出锁存器OL,即可实现读出每个通道的计数值。如果是8位计数只需读一次;如果是16位计数,则要读两次,先读低8位,后读高8位。由于通道计数器在不停的计数过程中,而锁存器的值是跟随计数器的值变化的,为使读得的数正确,有下面两种方法:,1)读之前先暂停计数 此法是利用G

16、ATE信号使计数器暂停计数,或由外部逻辑暂时封锁CLK的输入,然后进行读出。这要求硬件和软件配合。设8253口地址为48H-4BH,要读通道0的计数值,可编程如下:moval,30H;写控制字00110000 out4BH,al inal,48H;读计数通道0的低8位 movbl,al;存于寄存器BL inal,48H;读计数通道0的高8位 movbh,al;存于寄存器BH注意在读之前,应先写控制字,其中控制字的D5D4=11,2)读之前先送计数值锁存命令 锁存命令由控制字的D5D4位决定,D5D4=00是锁存命令,锁存哪一个寄存器由控制字的D7D6位决定。此时控制字的低4位可设定为全0。设8

17、253的口地址为E8H-EBH,现要求读计数通道1的16位计数值,并假设在读之前已设置控制字为先读/写低8位,再读/写高8位,则可编程如下:moval,40H;锁存命令为40Hout0EBH,al;写入通道1控制字寄存器inal,0E9H;读低8位movbl,al;存于BLinal,0E9H;读高8位movbh,al;存于BH 这种方法,必须先执行一次锁存操作,但省去了需要硬件的配合。,(2)8254的计数值和状态读回多了专门的读回命令字,可以将3个计数器的计数值和状态都进行锁存,并且向CPU返回一个状态字 读回命令写入控制端口,而状态字和计数值都通过相应的计数器端口读出,图7.17 8254

18、的读回命令,图7.18 8254的状态字,例6.1 用8253的计数器0,工作在方式1下,按十进制计数,初值为3040;若该8253的端口地址为38838BH,请写出初始化程序段(教材P253)。,例6.2 在8253中,读取计数器1的16位计数值,存入CX中,设地址同例6.1,请写出程序段(教材P254)。,例6.3在8254中,利用读回命令,读回计数器1的16位计数值和状态字,计数值存入CX,状态字存入BL,设地址同例6.1,请写出程序段(教材P254)。,三、8253/8254的应用实例,图7.19 8253在PC机中的连接,例1:如图7.19,在IBM PC系列计算机中,用8253的3

19、个计数器进行时钟计时、DRAM刷新定时和控制扬声器发声声调,8253的端口地址分别为40H、41H、42H和43H,输入时钟都为1.193MHz。1计数器0产生基本时钟MOVAL,36H;计数器0的控制字为00110110OUT43H,ALMOVAL,0OUT40H,AL;计数器0的初值为0000OUT40H,AL由上面初始化程序可见,计数器0工作在方式3下,产生方波;初值为0,也就是最大的65536,则其方波的输出频率为1.193MHz/65536=18.2。DOS系统利用定时器0,通过08号中断服务程序,实现时钟计时功能。,2计数器1控制DRAM刷新在PC XT机中,要求在2ms内对DRA

20、M进行128次刷新,也就是刷新的间隔为 2ms/128=15.6us。计数器1输出间隔15us的负脉冲,我们来看计数器1的初始化程序:MOVAL,54H;计数器1的控制字为01010100OUT43H,ALMOVAL,18;计数器0的初值为18OUT41H,AL由上面初始化程序可见,计数器1工作在方式2(分频器)下,只读写低位,初值为18。由此可知,计数器1的输出频率为:1.193MHz/18=66.278KHz,负脉冲的时间间隔为1/66.278 KHz=15us。,计数器2控制扬声器利用计数器2的输出,控制扬声器的发声音调,作为机器的报警信号或者伴音信号,例2:8253用作脉冲发生器 如图

21、7.20所示,产生重复周期为5s,脉冲宽度为1s的输出脉冲。设时钟CLK的频率为2MHz,图7.20 8253用作脉冲发生器,CLK OUT1 0.5 s 1 sOUT0 5 s,例2的波形图,解:设想用计数器1作分频器(工作于方式2),以决定脉冲信号的周期。计数器0作单稳(工作于方式1),用于决定脉冲的宽度。计数器1的输出接至计数器0 的GATE0,用作单稳的触发信号。由于CLK的周期T=0.5s,所以计数器1的初值设为10,即10分频,输出OUT1是周期为5 s的,脉冲宽度为0.5s信号。计数器0的计数初值设定为2,使其输出信号负脉冲的宽度为1 s,再经反相后即为所要求的脉冲信号。设825

22、3的端口地址为80H-86H(偶地址),具体编程如下。moval,00010011B;设置控制字,计数器0为方式1,out86H,al;只写低8位,BCD计数moval,2;设置计数器0的计数初值为2out80H,almoval,01010101B;计数器1为方式2,只写低8位,out86H,al;BCD计数moval,10H;设置计数器1的计数初值为10Hout82H,al,例3:用8253实现日时钟 8253工作在方式3下,其输出是一个周期准确的方波,可以作为定时单位。如CLK0=1.1931816MHz,初值为最大值65536,则计数器0输出的方波频率为:f0=1.1931816MHz/

23、65536=18.2Hz,周期为T0=54.945ms 1天=2460 60 1000ms/54.945ms=1572482(计时单位)=0017FE82H;即计满1572482个计时单位,就是1天。同理计满65520是1个小时,计满1092就是1分钟,计满18.2就是1秒钟。具体做法是8253的OUT0输出连到8259的IR0上。8253输出的方波每隔54.945ms申请一次中断,在中断服务程序中做双字变量的加1操作。当低字计到65536时,向高字进位,直至高字计到0017H,低字计到FE82H,就计到24小时。然后清零,开始第二天的计时。其硬件连接如图7.21所示。图中在内存开辟了两个字单

24、元,低字TIMER-LO(40H:6CH)和高字TIMER-HI(40H:6EH)。,图7.21 时钟运行原理示意图,例4:波特率时钟发生器,要求输入时钟CLK=1.19318MHz,波特率因子F=16,输出波特率分为8挡,110、150、300、600、1200、4800、9600,利用人机对话选择。按ESC键退出。每传输一个二进制位所需要的时钟个数,叫做波特率因子,因此发送时钟TXC=波特率B波特率因子F。而8253的输出OUT=CLK/TC,它用做串行通信的发送/接收时钟。即TXC=OUT。这里TC为8253的定时常数(即初值),则 TC=CLK/(B F)例如B=1200b/s,F=1

25、6,则 TC=(1.19318 106次/秒)(1200位/秒16次/位)=62 硬件如图7.22所示。软件编程框图如图7.23所示,具体程序从略,。,7.2 串行通信基础,1.串行通信与并行通信,通信的两种基本方式(a)串行通信;(b)并行通信,一、串行通信的基本概念,2.串行通信中的数据传送模式单工、半双工、全双工的数据传送模式,3.波特率波特率(Baud rate):表示串行数据传送速度,它表示每秒钟传送的二进制位数,单位为bit/s(bps)。每一位的传输时间Td就是波特率的倒数例:若设备每秒传送120帧信息(字符),每帧信息包含:1个起始位,7个数据位,1个奇偶校验位,1个停止位,这

26、是其传送的波特率为多少?解:10位/帧120帧/秒1200位/秒1200波特 国际上规定了一个标准波特率系列,即110、300、600、1200、1800、2400、4800、9600和19 200波特。串行接口的打印机通常采用110波特,也有采用150波特和300波特。当使用调制解调器在公共电话线上进行远程数据通信时常使用1200波特,线路质量好的城市和地区可达2400波特。,4.串行通信中的异步传送与同步传送,异步通信方式ASYNC-AsynchronousDataCommunication(1)异步通信的数据:链路控制是面向字符的,即传送的每一组数据构成一个字符。异步通信是字符内的同步,

27、字符间的异步。(2)异步通信规程规定:数据流中传送的每个字符必须由起始位(1位低电平)开始,而以停止位结束(1位或),称为一帧。起始位和停止位称为帧位。(3)异步传送格式(如下图)1 起始位:是连续一位的低电平(逻辑0)2数据位:在起始位之后,即发送数据位。数据位通常有4种配置情况,即5、6、7、8位(从低向高传送)3奇偶校验位:异步通信采用一位奇偶校验位检测错误停止位:表示一个字符发送结束。,(a)无空闲位,(b)有空闲位,例1:试画出用异步协议传送字符“E”的波形图。要求加偶校验位和一位停止位。解:字符“E”的ASCII码为45H,即1000101,其传送的波形图如图8.18所示。,同步通

28、信方式(1)在同步通信中,要求发送端在正是发送数据之前,先发送一个同步字符去通知接收端,接收端在收到同步字符后,便开始按照双方约定的格式和速率接收数据(2)同步传送时,由于同步字符的不同,可有不同信息格式,一般分为:1 单同步:只有一个同步字符 2 双同步:有两个同步字符 3 外同步:没有同步字符,靠外部时钟同步,(3)同步通讯格式包括同步字符、数据、CRC校验:1 同步字符:一种同步标志,指示传送数据的开始。同步字符的选择依据是:其位模式要与传送的数据字符有着明显的差别 2 数据:指连续传送的信息,每个字符可选择为5、6、7、8位,传送的内容可以是数据信息,也可以是命令信息。3 CRC校验:

29、循环荣誉校验,用于数据传送的检错。不同在于,奇偶校验对一个字符校验,适于异步通信,而CRC对数据块进行校验,适用于同步通信,异步通信与同步通信的主要区别,(1)时钟要求 同步通信:发送与接受时钟频率精确相等 异步通信:发送与接受时钟频率基本相等即可(2)控制信息 同步通信:要求对整个数据块附加帧信息,用于高速数据链路 异步通信:要求对每个数据字符均附加帧信息,用于低速设备,低速传送(3)校验方式 同步通信:采用16位循环荣誉校验码,可靠性高 异步通信:采用1位奇偶校验,可靠性相对较低,5.信号的调制和解调,如果要利用电话信道进行远距离传输的话,直接采用数字信号是不能实现的。因为电话信道主要用以

30、传输人的话音信息,在此频带范围以外的直流成分和其它频率分量将因不能通过电话信道传输数字信号。必须采取一些措施,把数字信号转换成适于传输的模拟信号,而在接收端再将模拟信号转换成数字信号。前一种转换称为调制,后一种转换称为解调。完成调制、解调功能的设备叫做调制解调器(Modem)。调制解调器的类型比较多,但基本可分为两类:异步调制解调器和同步调制解调器。,异步调制解调器适用于异步通信方式,它不提供同步时钟信号。常用的调制方法是频移键控(FSK,Frequency Shift Keying)或称为两态调频。频移键控的基本原理是把“0”和“”的两种数字信号分别调制成两个不同频率的音频信号。,频移键控调

31、制原理,RS-232C接口环境,二、串行总线标准RS-232C,1.接口特性,BD-25连接器机械图,RS-232C连接器引脚功能定义,续表,RS-232C常用引脚,2.电气信号特性 RS-232C采用负逻辑电平。规定:(1)MARK“传号”(逻辑1)控制线的断开状态规定为-3 V-15 V(2)SPACK“空号”(逻辑0),及控制线的接通状态规定为+3 V+15 V;(3)噪声容限为(35)V;(4)当输入恰好为3 V时,分别确定为空号和传号;当输入端开路时,终端定为传号。,RS-232C总线接收器和发送器的连接方法RS-232发送器、接收器;全双工通信转换电路;典型全双工通信转换电路,串行

32、接口的基本结构,三、串行接口的基本结构与功能,(1)输出缓冲寄存器。它接收CPU从数据总线送来的并行数据,并加以保存。(2)输出移位寄存器。它接收从输出缓冲寄存器送出的并行数据,以发送时钟的速率把数据逐位移出。(3)输入移位寄存器。它以接收时钟的速率把出现在串行数据输入线上的数据逐位移入。当数据装满后,并行送往输入缓冲寄存器中。,(4)输入缓冲寄存器。它从输入移位寄存器并行接收数据,然后由CPU取走。(5)控制寄存器。它接收由CPU送入的控制字,由控制字的内容决定通信时的数据格式以及传输方式等。(6)状态寄存器。其中存放着各种状态标志信息。在通信过程中,当符合某种状态时,接口中的状态检测逻辑将

33、状态寄存器的相应位置“”,让CPU查询。,发送数据的过程是:CPU把要输出的数据写入输出缓冲寄存器,然后由接口电路中的发送控制逻辑根据预先写入控制字的内容对数据格式化。对于异步传输方式,即加上起始位、奇偶校验位和停止位等成帧信息。格式化后的数据由输出移位寄存器按选定的传输速率逐位移出,由串行数据输出线输出。,接收数据的过程是:串行口允许接收后,接收控制电路不断监视串行数据输入线上的电平,一旦出现持续一个位周期的低电平,则开始采样有效数据位,并逐位移入移位寄存器中。采样重复进行,直至采样规定的停止位为止。然后再将有效数据并行送入输入缓冲寄存器,并由接口电路中的差错检测逻辑对输入数据进行校验,再根

34、据校验结果置状态寄存器相应标志位。如果传送数据正确,则由CPU读取数据。在异步通信时,发送接收端都要用发送/接收时钟来决定每一信息位对应的时间宽度。发送/接收时钟(统称为外部时钟)的频率可以是位传输率的16倍、32倍和64倍。这个倍数称为波特率因子。,7.3 串行通信芯片8251A,一、8251A的结构、基本功能及工作原理,8251A的结构框图与引脚图,8251A可用于串行的异步或同步两种通信方式,主要性能如下:(1)可用于同步和异步传送。(2)同步传送(58)位/字符;可选择内部或外部同步;可自动插入同步字符。(3)异步传送(58)位/字符;时钟速率为通信波特率的1、16或64倍;可产生中止

35、字符(Break Character);可产生1、1.5或2位的停止位;可检查假启动位;自动检测和处理中止字符。(4)波特率:DC-19.2 bit/s(异步);DC-64 bit/s(同步)。,(5)全双工、双缓冲发送和接收器。(6)出错检测:具有奇偶、溢出和帧错误等检测电路。(7)全部输入输出与TTL电平兼容;单一的+5 V电源;单一的TTL电平,28脚双列直插式封装。(8)与Intel 8080、8085、8086、8088 CPU接口兼容。,(1)接收器:包括接收缓冲器、串并转换逻辑和接收控制电路三个部分 复位后寻找启动位。消除假启动干扰。对接收到的信息进行奇偶校验。检测停止位。(2)

36、发送器:包括发送缓冲器、并串转换逻辑和发送控制电路三个部分。将并行数据加上相应的控制位,变成串行数据,从引脚发送出去具体作用如下:在异步方式下,为数据加上起始位、校验位和停止位;在同步方式下,插入同步字符,在数据中插入校验位,(3)数据总线缓冲器。它用来与CPU的数据总线D0D7相连。其中含有3个缓冲器:状态字缓冲器。它用来存放8251A内部的工作状态,供CPU查询、测试之用;接收数据缓冲器。用来存放接收器已经装配完毕的字符,准备CPU来读取;发送数据/命令缓冲器。用来寄存CPU送入8251A的数据或命令。,(4)读/写控制逻辑电路。用以实现对CPU输出的控制信号译码,以控制实现如下表所示的读

37、/写功能。,8251读/写控制功能表,8251A与CPU及外设的连接,二、8251A与CPU及外设的连接,(1)8251A与CPU之间的接口信号。8251A与CPU间的接口信号分为 4 种类型:数据信号D0D7:8251A的8条双向数据总线D0D7与CPU的数据总线对应相连。读/写和控制信号:RD为读数据信号,低电平有效,当CPU要从8251A中的读取数据或状态字时产生此低电平有效信号以通知8251A;WR为写数据信号,低电平有效,当CPU要向8251A写入数据或命令字时产生此信号告之8251A;控制/数据端C/D在CPU向8251A送数据信息时为低电平,在送控制字或读取状态字时此端为高电平。

38、,TxE(Transmitter Empty)发送器空信号。当它有效(高电平)时,表示发送器中的并行缓冲器空。在同步方式时,若CPU来不及输出一个新字符,则TxE变为高电平,同时发送器在输出线上插入同步字符,以填补传输空隙。RxRDY(Receiver Ready)接收器准备好信号。当它高电平有效时,表明8251A已经从串行输入线接收了一个字符,正等待CPU将此数据取走。所以,在中断方式时,RxRDY可作为向CPU申请中断的请求信号;在查询方式时,RxRDY的状态位从CPU查询之用。,SYNDET(Synchronous Detect)同步检测信号。仅用于同步方式。SYNDET引脚既可以作为输

39、入,也可以作为输出,这取决于初始化程序对8251A设置的是内同步方式还是外同步方式。8251A被复位(RESET)时,SYNDET变为低电平。内同步方式时,SYNDET作为输出端。当8251A已经检测到所要求的同步字符后,此信号变高电平,以指出8251A已达到同步。在外同步方式时,SYNDET作为输入端用。当外设(调制解调器)完成对同步字符检测后,向此输入端送入一个正跳变信号,使8251A在下一个RxC的下降沿开始装配字符。此时要求SYNDET的高电平至少应维持一个RxC周期,直到下一个RxC的下降沿的出现。,(2)8251A与外部设备(调制解调器)之间的接口信号。DTR(Data Termi

40、nal Ready)数据终端准备好。输出、低电平有效。这是当CPU对8251A输出命令字使控制寄存器D1位置“”,从而使DTR变为低电平,以通知外设,CPU当前已准备就绪。RTS(Request To Send)请求发送。输出、低电平有效。此信号等效于DTR,CPU通过将控制寄存器的D5置“”,可使RTS低电平有效,用于通知外设(调制解调器),CPU已准备好发送。,TxD(Transmitter Data)发送器发送数据传输线。DSR(Data Set Ready)数据装置准备好。输入、低电平有效。这是由外设(或调制解调器)送入8251A的信号,用以表示调制解调器或外设的数据已准备好。当DSR

41、端出现低电平时会在8251A的状态寄存器的D7位反映出来。CPU可通过对状态寄存器进行读取操作,可查询D7位即DSR状态。CTS(Clear to Send)清除发送。输入、低电平有效。这是由外设(或调制解调器)送往8251A的低电平有效信号。它是对RTS的响应信号。CTS有效,表示允许8251A发送数据。,RxD(Receiver Data)接收器接收数据的传输线。RxC(Receiver Clock)接收器接收时钟输入端。低电平有效,它控制8251A接收字符的速度。接收器在RxC的上升沿采样数据。在同步方式时,它由外设(或调制解调器)提供,RxC的频率等于波特率;在异步方式时,RxC由专门

42、的时钟发生器提供,其频率是波特率(数据速率)的1、16或64倍,可由初始化时方式选择字设定。实际上,RxC和TxC往往连在一起,用同一个时钟源。TxC(Transmitter Clock)发送器发送数据速率时钟输入端。TxC的频率与波特率之间的关系同RxC。数据在TxC的下降沿由发送器移位输出。,工作方式选择字格式,三、8251A初始化编程举例,8251A控制命令格式,8251A的初始化编程流程图,1、异步方式下的初始化编程举例 例如,设定8251A为异步工作方式,波特率因子(发送、接收数据的时钟速率)为64,每字符有7个数据位,为偶校验,有2位停止位,全双工模式。根据上述通信方式,其方式选择

43、字为11111011B(FBH);使接收及发送启动,并使错误标志复位,故控制命令字为00010101B(15H)。设8251A的控制端口的地址号为52H(C/D端口为高电平),数据端口的地址号为50H(C/D端为低电平)。则初始化程序如下:,MOV AL,0FBH;送方式选择字。OUT 52H,AL;MOV AL,15H;送控制命令字。OUT 52H,AL,2、同步方式下的初始化编程举例设8251A设定为同步工作方式,2个同步字符,采用内同步,SYNDET为输出引脚,偶校验,每个字符7个数据位。2个同步字符,它们可以相同,也可不同。本例设两个相同同步字符为23H。使接收器和发送器启动,使状态寄

44、存器中的3个出错标志位复位,通知调制解调器CPU现已准备好进行数据传输。初始化编程如下:MOV AL,38H;设置工作方式、双同步字符偶校验、每字符7个数据位。OUT 52H,AL MOV AL,23H;连续输出两个同步字符23H。OUT 52H,AL OUT 52H,AL MOV AL,97H;送位控制命令字OUT 52H,AL,3、利用状态字进行编程的举例 教材P270 例6.6,MOV AL,0FAHOUT 42H,AL;设置模式字,异步模式,波 特率因子为16,7个数据 位,2个停止位,偶校验MOV AL,35HOUT 42H,AL;设置控制字,并启动,MOV DI,0;变址寄存器初始

45、化 MOV CX,80;共收取80个字符BEGIN:IN AL,42H TEST AL,02H JZ BEGIN;读状态字并测试,IN AL,40H;读取字符MOV DX,OFFSET BUFFERMOV DX+DI,AL;传输字符INC DI;修改缓冲区指针IN AL,42H;读取状态字TEST AL,38H;测试有无错误,JNZ ERROR LOOP BEGIN;如没有错,则接收 下1个字符 JMP EXIT;如满8个字符,则结束ERROR:CALL ERR_OUT;调用出错处理程序EXIT:,4、8251A应用举例,8251A作为键盘-显示器接口,(1)传送单个字符到CRT的程序STOC

46、RT:MOV AL,5AH;送方式选择字,异步方式、波特率因子为16,每字符7位 OUT 0DAH,AL;数据位,奇校验1位停止位。MOV AL,37H;送控制命令字,启动接收器、发送器,使错误标志位复位,使DTR和RTS输出为低电平。OUT 0DAH,ALSTATE:IN AL,0DAH;从状态口读状态字。TEST AL,01H;检测TxRDY=1?如不是则等待。JZ STATE;继续检测。MOV AL,4AH;将字符“J”ASCIIdcg 4AH送到AL。OUT 0D8H,AL;向数据口(D8H)送字符代码。JMP STATE;重复地输出字符J到CRT。,(2)8251A接收由键盘输入的一

47、个字符并送往CRT显示 MOV AL,5AH;置方式选择字。OUT0DAH,AL MOV AL,37H;置控制命令字。OUT 0DAH,ALSTATE1:IN AL,0DAH;检测接收准备好,RxRDY=1?TEST AL,02H;如不是则等待,继续检测。JZ STATE1 IN AL,0D8H;从8251A数据口接收一个字符。MOV BL,AL;将这个字符暂存于BL寄存器。,7.4 并行数据通信接口技术,通用接口可分为并行接口和串行接口两大类。并行传送是把一个字节或多个字节用多条信号线同时进行传输,即并行接口是按字节传送的;串行接口和CPU之间按并行传送,而和外设之间是一个二进制位一个二进制

48、位的传送,即串行接口是按位传送的。如下图所示。,1、并行接口的基本组成 两个或两个以上的具有缓冲能力的数据寄存器 可供CPU访问的控制及状态寄存器 片选和内部控制逻辑电路 与外设进行数据交换的控制和联络信号线 与CPU用中断方式传送数据的相关中断控制,一、并行接口的组成及其与CPU和外设的连接,2、与CPU的连接 与CPU的连接主要是双向数据总线,读、写控制线,复位信号,中断请求以及状态信号和地址译码产生的片选信号。3、与外设的连接 与输入设备的连接:并行输入数据线,数据传输应答信号(输入准备好和输入回答信号);与输出设备的连接:并行输出数据线,数据传输应答信号(输出准备好和输出回答信号);,

49、1、数据输入 外设将数据传送到并行接口,同时给出“输入数据 准备好”信号;接口把数据接收到输入缓冲寄存器,给出“输入回 答”信号(高电平)到外设;若采用中断方式,则接口向CPU发中断请求信号,并使状态寄存器中的“输入缓冲器满”位置1(也可 以用查询方式);,二、并行接口的数据输入输出过程,CPU响应接口的中断请求(或查询相应的状态位),在中断服务程序中执行IN指令读取接口中的数据;接口给外设的“输入回答”信号变成低,通知外设 可输入新的数据,此后转到开始下一个数据的 输入过程。,2、数据输出 CPU执行OUT指令把数据写到接口(中断或查询都可以);接口向外设发出“输出准备好”信号,通知外设可以

50、把数据取走;外设取走数据后,向接口发“输出回答”信号;接口向CPU发出新的中断请求,并使状态寄存器中的“输出缓冲器空“位置1,要求CPU输出新的数据,转到,开始下一输出过程。,三、可编程并行通信接口芯片8255A,8255是Intel公司为其80系列微处理器生产的8位通用可编程并行输入输出接口芯片。它具有很强的功能,在使用中可利用软件编程来指定它将要完成的功能。因此,8255获得了广泛的应用。1、8255A的内部结构 三部分:外设接口部分 内部逻辑部分 CPU接口部分,8255的内部结构框图,(1)数据总线缓冲器 这是一个8位双向三态数据缓冲器,是8255A与CPU之间的数据接口,是它们之间互

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号