第七章常用数字接口电路ppt课件.ppt

上传人:牧羊曲112 文档编号:1468203 上传时间:2022-11-28 格式:PPT 页数:106 大小:1.37MB
返回 下载 相关 举报
第七章常用数字接口电路ppt课件.ppt_第1页
第1页 / 共106页
第七章常用数字接口电路ppt课件.ppt_第2页
第2页 / 共106页
第七章常用数字接口电路ppt课件.ppt_第3页
第3页 / 共106页
第七章常用数字接口电路ppt课件.ppt_第4页
第4页 / 共106页
第七章常用数字接口电路ppt课件.ppt_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《第七章常用数字接口电路ppt课件.ppt》由会员分享,可在线阅读,更多相关《第七章常用数字接口电路ppt课件.ppt(106页珍藏版)》请在三一办公上搜索。

1、1,第7章 常用数字接口电路,2,主要内容:,掌握二种可编程接口芯片的应用 了解串行通信的一般概念,3,7.1 接口电路概述,CPU与外设之间信息交换的通道信息缓冲、信息变换、电平转换、联络控制分类:8086系统中最常用的数字接口电路芯片:8253、8255、8250,4,7.2 可编程定时/计数器8253,掌握:引线功能及计数启动方法6种工作方式及其输出波形8253的使用:芯片与系统的连接芯片的初始化编程,5,定时/计数器的用途,可以实现定时与计数两个功能,可用于系统时钟DRAM刷新定时定时采样实时控制脉冲的计数 。,6,如何实现定时?,软件方法:用一段程序实现延时利用程序循环延迟指定的时间

2、缺点:CPU占用率?延时精度?兼容?硬件方法:定时/计数器电路利用脉冲计数在设定的时间输出定时信号, 8253是一种硬件定时/计数器芯片,7,一、外部引线及内部结构,8253概貌3个16位的定时/计数器(通道)24引脚双列直插式最高计数频率2MHzTTL电平兼容单电源+5V供电,8,外部引线及内部结构,DB,D7-D0,8253,A1,A0,WR,RD,CS,通道2,通道1,通道0,CLK0GATE0OUT0,CLK1GATE1OUT1,CLK1GATE1OUT1,A1A0,IOWIOR片选信号,9,外部引线及内部结构,连接系统端的主要引线:D7D0CSRDWRA1,A0 用于选择四个编址部件

3、之一,A1 A0 选 择0 0 计数通道00 1 计数通道11 0 计数通道21 1 控制寄存器,10,外部引线及内部结构,计数通道的主要引线(每通道均相同):CLKn 时钟脉冲输入,计数器的计时基准。GATEn 门控信号输入,控制计数器的启停。OUTn 计数器输出信号,不同工作方式下 产生不同波形。(n = 02),11,12,编程结构程序员的观点,计数器(3个)包括控制寄存器 存放控制命令字(只写)占用4个地址 3个计数器,1个控制寄存器,16位初值寄存器16位计数寄存器,(减法计数器),13,定时/计数的工作过程,1. 设置8253的工作方式 2. 设置计数初值到初值寄存器 3. 第一个

4、CLK信号使初值寄存器的内容置入 计数寄存器 4. 以后每来一个CLK信号,计数寄存器减1 5. 减到0时,OUT端输出一特殊波形的信号注:以上计数过程中还受到GATE信号的控制,14,二、计数启动方式,软件启动过程硬件启动过程,GATE端保持为高电平写入计数初值后的第2个 CLK脉冲的下降沿开始计数,GATE端有一个上升沿对应CLK脉冲的下降沿开始计数,程序指令启动软件启动外部电路信号启动硬件启动,15,三、工作方式,方式0计数结束中断方式1可重复触发的单稳态触发器方式2频率发生器方式3方波发生器方式4软件触发选通方式5硬件触发选通,16,工作方式,方式0方式1,软件启动,不自动重复计数。装

5、入初值后OUT端变低电平,计数结束OUT输出高电平。,硬件启动,不自动重复计数。装入初值后OUT端变高电平,计数开始OUT端变为低电平,计数结束后又变高。,(计数结束中断),(单稳态触发器),17,工作方式,方式2方式3,软、硬件启动,自动重复计数。装入初值后OUT端变高电平,计数到最后一个CLK时OUT输出负脉冲,并连续重复此过程。,软、硬件启动,自动重复计数。装入初值后OUT端变高电平,然后OUT连续输出对称方波:,(频率发生器),(方波发生器),前 N/2或(N+1)/2 个CLK,OUT为高,后N/2或(N-1)/2 个CLK, OUT为低。,18,工作方式,方式4方式5,软件启动,不

6、自动重复计数。装入初值后输出端变高电平,计数结束输出一个CLK宽度的负脉冲,硬件启动,不自动重复计数。OUT端波形与方式4相同,(软件触发选通),(硬件触发选通),19,各种工作方式特点,方式0(计数结束中断)计数过程中,GATE端应保持高电平。每写入一次初值计数一个周期,然后停止计数。OUT端输出是一个约(N+1)TCLK宽度的负脉冲。计数过程中可随时修改初值重新开始计数。方式1(单稳态触发器)门控信号GATE端的跳变触发计数,可重复触发。若下一次GATE上升沿提前到达,则OUT端负脉冲拉宽为两次计数过程之和。计数过程中写入新初值不影响本次计数。,20,各种工作方式特点,方式2(频率发生器)

7、GATE为计数的控制信号:GATE变低计数停止,再变高时的下一个CLK下降沿,从初值开始重新计数。每个计数周期结束时(减到1时),OUT端输出一个TCLK宽度的负脉冲。计数过程自动重复进行。计数过程中修改初值不影响本轮计数过程。方式3(方波发生器)OUT输出方波,前半周期为高,后半周期为低。计数过程中修改初值不影响本半轮计数过程。其余的与方式2 类似。,21,各种工作方式特点,方式4(软件触发选通)计数过程中,GATE端应保持高电平。每写入一次初值,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。方式5(硬

8、件触发选通)写入初值时,GATE端应保持低电平。GATE每出现一次正脉冲,计数一个周期,然后停止计数。每个计数周期结束时(减到0时),OUT端输出一个TCLK宽度的负脉冲。计数过程中修改初值不影响本轮计数过程。,22,四、控制字,用于确定各计数器的工作方式。8253必须先初始化才能正常工作。每个计数器都必须初始化一次。CPU通过OUT指令把控制字写入控制寄存器。,23,五、8253的应用,与系统的连接设置工作方式置计数初值,编程,24,与系统的连接示意图,CLK,GATE,OUT,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,高位地址A15-A2,8253,

9、共三组,8253占用4个接口地址: 计数器0 计数器1 计数器2 控制寄存器,(决定8253的基地址),25,初始化程序流程,写控制字,写计数值低8位,写计数值高8位,*,非必须,写入顺序: 可按计数器分别写入控制字和初值。 也可先写所有计数器控制字,再写入它们的初值,26,8253应用举例,采用8253作定时/计数器,其接口地址为0120H0123H。输入8253的时钟频率为2MHz。计数器0: 每10ms输出1个CLK脉冲宽的负脉冲计数器1: 产生10KHz的连续方波信号 计数器2: 启动计数5ms后OUT输出高电平。画线路连接图,并编写初始化程序。,27,8253应用举例(续),确定计数

10、初值: CNT0: 10ms/0.5us = 20000 CNT1: 2MHz/10KHz = 200 CNT2: 5ms/0.5us = 10000确定控制字: CNT0:方式2,16位计数值 00 11 010 0 CNT1:方式3,低8位计数值 01 01 011 0 CNT2:方式0, 16位计数值 10 11 000 0,28,8253应用举例(续),CLK0,GATE0,OUT1,D0D7,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8253,CLK2,GATE1,GATE2,+5V,CLK1,2MHz,OUT0,OUT2,?,线路连接图:,29,825

11、3应用举例 初始化程序,CNT0:MOV DX, 0123HMOV AL, 34HOUT DX, ALMOV DX, 0120HMOV AX, 20000OUT DX, AL,MOV AL, AHOUT DX, ALCNT1: CNT2: ,30,*如何读出当前计数值,第1种方法在计数过程中读计数值先锁存当前计数值,再用两条输入指令将16位计数值读出。第2种方法停止计数器再读用GATE信号使计数器停止,再规定RL1和RL0的读写格式,然后读出。,31,*扩展定时/计数范围,当定时长度不够时,可把2个或3个计数通道串联起来使用,甚至可把多个8253串联起来使用。 例如:CLK频率为1MHz,要求

12、在OUT1端产生频率1Hz的脉冲。 这时可将计数器0、1串联,工作方式都均为方式3,计数初值均为1000。连接方法见下页。,32,扩展定时/计数范围,8253,OUT1,GATE1,CLK1,OUT0,GATE0,CLK0,+5V,+5V,1MHz,1KHz,1Hz,33,8253小结,包含3个16位计数器通道4个编址部件:CNT0/1/2和控制寄存器每个计数器通道工作前必须初始化:控制字和计数初值6种工作方式每种工作方式:启动方式、输出波形、是否可重复计数等各不相同,34,7.3 并行接口8255,特点:含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力可通过编程设置各端口

13、的工作方式和数据传送方向(入/出/双向)。,35,36,引线(续),连接系统端的主要引线:D0D7CSRDWRA0,A1 RESET复位信号,接系统总线的RESET,A1 A0 选择0 0 端口A0 1 端口B1 0 端口C1 1 控制寄存器,37,引线(续),连接外设端的引脚:PA0PA7PB0PB7PC0PC7,分别对应A、B、C三个8位输入/输出端口,三个端口可通过编程分别指定为输入或输出口。其中,C口即可用作独立的输入/输出口,也可用作A、B口的控制信号输出或状态信号输入。,38,二、结构,A组B组,端口A端口C的高4位,端口B端口C的低4位,39,8255与系统的连接示意图,D0D7

14、,WR,RD,A1,A0,CS,DB,IOW,IOR,A1,A0,译码器,8255,A口,B口,C口,D0D7,外 设,A15A2,系统总线,40,三、8255工作方式,基本输入/输出方式(方式0)选通工作方式(方式1)双向传送方式(方式2)(仅A口),某端口工作于哪一种方式,可通过软件编程来指定。即向8255写入方式控制字来决定其工作方式,见下页。,41,方式控制字及位控字,可以利用软件编程确定8255的3个端口工作于何种方式下;8255的C端口可以按位操作。当其工作于方式0下且作为输出口时,对于那些作为输出的位需要设置初始状态(1/0)。,42,方式控制字与位控字格式,控制字确定3个端口的

15、工作方式位控字确定C口某一位的初始状态, 或用于设置INTE位(方式1,2)。,43,工作方式0,8255相当于三个独立的8位简单接口。各端口既可设置为输入口,也可设置为输出口,但不能同时实现输入及输出。C端口即可以是一个8位的简单接口,也可以分为两个独立的4位端口。设置为输出口时有锁存能力,设置为输入口时无锁存能力。,44,方式0的应用:,用于连接简单外设。适用于:无条件输入输出方式。查询输入输出方式:把A、B口作为8位数据的输入或输出口,C口的高/低4位分别定义为A、B口的控制位和状态位。,45,工作方式1,利用一组选通控制信号控制A端口和B端口的数据输入输出。A、B口作输入或输出口,C口

16、的部分位固定用作A、B口的选通控制信号。A口、B口在作为输入和输出时的选通信号不同。,输入,输出,46,C口的信号功能(方式1输入),STB#选通信号。它将外设数据送入8255的输入锁存器。IBF输入锁存器满。通知外设不能送下一个数据。此信号由STB的前沿产生。CPU用IN指令取走数据后,此信号被清除。INTR中断请求。STB#的后沿产生,用于中断CPU,让CPU读走输入锁存器中的数据。INTE中断允许位,是否允许发出INTR请求。INTE =1和IBF为高电平时,允许发出INTR请求。,47,C口的信号功能(方式1输出),OBF#通知外设取走数据。ACK#外设响应信号,表示已从数据端口取走数

17、据。此信号使OBF变高。INTRACK#上升沿产生,通知CPU输出下一个数据(通常接到8259)。INTE中断允许位,INTE=1和OBF#为高电平时,允许产生INTR信号。,48,注意:,INTE的状态可利用C口的位控方式来设置:输入:A口的INTE:写入PC4B口的INTE:写入PC2输出:A口的INTE:写入PC6B口的INTE:写入PC2例如:方式1输入允许A口中断,则应按如下方法设置INTEA。 MOV DX,控制寄存器地址 MOV AL,0 xxx1001B ;1=允许中断,0=禁止中断 OUT DX,AL,49,方式1的应用:,主要用于中断控制方式下的输入输出。C口除部分位用作选

18、通信号外,其余位可工作在方式0下,作为输入或输出线。 特别是A、B均为方式1时仅使用C口的6条线,余下二条线可作为单独的输入输出线,用程序指定其数据传送方向。,50,工作方式2,双向方式既是输入口,又是输出口。利用C口的5条线提供传输联络信号。类似于A口方式1下输入和输出的组合。只有A口可工作在方式2下。INTE1为PC.bit6,INTE2为PC.bit4。,51,方式2的应用:,可用于中断控制输入输出方式。当A口工作于方式2时,B口可工作于方式1(此时C口的剩余位都用作B口选通控制线);B口也可工作于方式0(此时C口的剩余位也只能用作方式0下的输入输出线)。,8255工作方式小结,52,四

19、、8255芯片的应用,芯片与系统的连接芯片的初始化相应的控制程序,例7-3,53,8255应用举例1,利用8255实现开关检测和继电器控制电路;当开关闭合时,使继电器通电动作;开关断开时,继电器不动作;系统每隔100ms检测一次开关状态,实现相应的继电器控制;初始状态下继电器不动作。,54,CS,A0,A1,WR,RD,DB,PA0,PA7,PB0,PB7,+5V,+12V,K,继电器,384H387H,388H38BH,CS,A0,A1,OUT1,CLK1,2MHz,CLK0,OUT0,8259APIC,WR,RD,DB,8253,8255,中断请求信号,INTR,Q1,R1,R2,D1,5

20、5,题目分析:,使8255的A端口和B端口均工作于方式0;8253计数器0和计数器1均工作于方式3,利用OUT0的输出作为计数器1的时钟信号,其输出频率为2KHz, OUT1输出频率为10Hz(周期100ms);OUT1作为中断信号,每100ms产生一次中断;CPU响应中断后检测开关状态,控制继电器的动作;8253两个计数器的计数初值分别为: CNT0:2MHz/2KHz =1000 (16位) CNT1:100ms/0.5ms=200 (8位),56,8255的初始化,MOV DX,387HMOV AL,82H ;1 00 0 0 0 1 0OUT DX,AL XOR AL,AL ;A口输出

21、全0MOV DX,384HOUT DX,AL,57,58,8255的控制程序(中断处理),(中断初始化程序略)8253中断服务程序中的8255控制程序段如下: MOV DX,385H ;PB口地址 IN AL,DX ;读PB0状态 NOT AL ;变反 MOV DX,384H ;输出到继电器 OUT DX,AL ,59,8255应用举例2,习题P342,第12题(译码器输入改为A15-A2):定时采集开关状态,并显示到数码管上,60,7.4可编程串行通信接口,了解:串行通信的一般概念工作方式、同步方式、数据格式、物理标准串行通信的接口标准EIA RS-232C可编程串行异步通信接口8250(U

22、ART)连接、编程、应用UART: Universal Asynchronous Receiver Transmitter,*,61,7.4.1串行通信基本概念,串行通信: 每个时间单位仅传送一位信息; 每个字符(字节)的各位依次传送; 字符之间的间隔不定。优点: 传输线少,成本低,传输距离远,62,1.串行通信工作方式,单工通信只能由一方发送,例:广播半双工通信某一时刻只能由一方发送,例:对讲机全双工通信双方可同时传输,例:电话,63,单工/双工操作,发送器,接收器,发送器/接收器,发送器/接收器,发送器/接收器,发送器/接收器,单工方式:,半双工方式:,全双工方式:,A站,B站,64,电话

23、网络模拟信号,计算机数字信号。远距离通信时需要通过普通电话网络传输数字信号:频带宽电话网络:频带窄 要使数字信号在电话网络上传输,需要进行信号变换把数字信号承载到模拟信号上传输,这个模拟信号称为载波信号。调制把数字信号承载到载波信号上解调从载波信号中恢复出数字信号调制解调器:实现调制与解调的设备,*2. 调制与解调,65,三种调制方式,根据载波 Acos(t + )的三个参数:幅度、频率、相位,产生常用的三种调制技术:幅移键控法 Amplitude-Shift Keying (ASK)频移键控法 Frequency-Shift Keying (FSK)相移键控法 Phase-Shift Key

24、ing (PSK) ASK (又称为调幅) 用载波信号的不同幅度代表1和0FSK (又称为调频) 用载波信号的不同频率代表1和0PSK (又称为调相) 用载波信号的相位变化代表1和0(有变化为1,无变化为0),66,67,串行通信主要用于远距离数据传输。问题:干扰、衰减,信号畸变解决方法:差错控制技术检测、纠正常用的数据校验方法:奇偶校验:以字符为单位进行校验发送方使发送的每个字节中1的个数为奇数或偶数;接收方检查收到的每个字节中1的个数是否符合双方的事先约定。奇偶校验可以检查出一个字节中发生的单个错误。奇偶校验不能自动纠错,发现错误后需“重传”。,3. 数据校验,68,循环冗余校验CRC (

25、循环冗余码/多项式编码)以数据块(帧, Frame)为单位进行校验编码思想:将数据块构成的位串看成是系数为0或1的多项式如110001,可表示成多项式 x5 + x4 + 1数据块构成的多项式除以另一个多项式G(x),得到的余数多项式R(x)就称为CRC码(或称为校验和),而G(x)则称为生成多项式。CRC校验的检错方式:收发双方约定一个生成多项式G(x),发送方在帧的末尾加上校验和,使带有校验和的帧的多项式能被G(x)整除;接收方收到后,用G(x)去除它,若余数为0,则传输正确,否则传输有错。,数据校验,69,CRC校验和计算方法若G(x)为r阶,原帧为m位,其多项式为M(x),则在原帧后面

26、添加r个0,帧成为m+r位,相应多项式2rM(x) 按模2除法用2rM(x)除以G(x):商Q(x),余R(x)即 2rM(x) = G(x)Q(x)+R(x)按模2加法把2rM(x)与余数R(x)相加,结果就是要传送的带校验和的帧的多项式T(x) T(x) = 2rM(x) + R(x)实际上,T(x) = 2rM(x) + R(x) = G(x)Q(x) + R(x) + R(x) = G(x)Q(x) (模2运算) 所以,若接收的T(x)正确,则它肯定能被G(x)除尽。,数据校验,70,数据校验,CRC校验码的检错能力:可检出所有奇数个错可检出所有单位/双位错可检出所有G(x)长度的突发

27、错常用的生成多项式:CRC12 = x12+x11+x3+x2+1CRC16 = x16+x15+x2+1CRC32 =x32+x26+x23+x22+x16+x11+x10 +x8+x7+x5+x4+x2+x+1,71,4.同步通信与异步通信,所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接收器用时钟来决定何时发送和读取每一个数据位。根据传输时采用的是统一时钟还是本地局部时钟,分为同步传输和异步传输两种。同步传输用一个时钟脉冲确定一个数据位, 异步传输用多个时钟脉冲确定一个数据位(如16个)同步传输以数据块(当作“位流”看待)为单位传输,异步传输以字符为单位传输,但都称为帧(F

28、rame),72,同步通信的时钟定时方法,数据(62H),0,1,1,0,0,0,1,0,同步传输先发送高位(MSB),发送方在时钟信号的下降沿发送字节,接收方在时钟信号的上升沿接收字节,时钟(发送时钟与接收时钟完全同步),LSB,MSB,73,74,75,76,7.4.2 串行通信的接口标准,机械特性:连接器的尺寸、引脚分布信号特性:信号电平、通信速率功能特性:引脚功能、控制时序 最常见的串行通信标准是RS-232C。,77,RS-232C标准,外形为25针或9针的D型连接器通信速率:波特率Baud(符号数/s) 100、300、600、1200、2400、4800 9600、19.2K、3

29、3.6K、56K 信号电平:逻辑“1”:-3V-15V逻辑“0”:+3V+15VTTL电平与RS232电平转换:TTLRS232: MC1488RS232TTL: MC1489,78,主要引脚的功能,79,信号时序(接收),设备握手DTR:PCM(保持,表示PC已可以工作)DSR:PCM(保持,表示M已可以工作)监视载波信号DCD:PCM载波(表示数据链已建立)接收数据RD: PCM数据调制信号结束通信DCD消失、PC撤除DTR、Modem撤除DSR,80,信号时序(发送),设备握手DTR:PCM(保持)DSR:PCM(保持)请求发送RTS:PCM(保持),M载波,在对方产生DCDCTS:PC

30、M(保持)发送数据TD:PCM数据调制信号结束通信PC撤除RTS/DTRModem撤除CTS/DSR,停止发送载波,81,RS-232C接口连接方式,82,RS-232C接口连接方式(续),一种简化的连接方式(Null Modem)适用于双机直连,TDRDRTSCTSDCDGNDDTRDSRRI,TDRDRTSCTSDCDGNDDTRDSRRI,83,7.4.3 可编程串行通信接口8250,主要内容: 1)8250的引脚及功能 2)与系统的连接 3)内部结构与内部寄存器 4)8250的编程,84,1. 8250 的引脚及功能,面向系统的引脚:D0D7 双向数据线。与系统数据总线DB相连接,用以

31、传送数据、控制信息和状态信息。CS0,CS1,CS2 片选信号,当它们同时有效时,该8250芯片被选中。CSOUT 片选输出信号。当8250的CS0、CS1和CS2同时有效时,CSOUT为高电平。MR 主复位信号,复位后8250的状态见P331表7-5。,A0A2 8250内部寄存器的选择信号。不同的编码 对应于不同的寄存器。ADS 地址选通信号。有效时可将CS0,CS1,CS2及A0-A2锁存于8250内部。不需要锁存时,ADS可直接接地。DISTR 读选通信号。通常与系统总线的IOR信号相连接。DOSTR 写选通信号。通常与系统总线的IOW信号相连接。INTR 中断请求信号。当允许8250

32、中断时,接收出错、接收数据寄存器满、发送数据寄存器空以及MODEM的状态均能够产生有效的INTR信号。,86,8250 的引脚及功能(续),面向通信设备的引脚信号SIN, SOUT: 串行输入/输出端CTS, RTS, DTR, DSR:(同RS232标准中的信号)RLSD: 即RS232C标准中的DCD信号RI:(同RS232标准中的信号)OUT1, OUT2: 可由用户编程确定其状态的输出端BAUDOUT: 波特率信号输出(频率=fCLK/分频值)XTAL1, XTAL2: 接外部晶振,作为基准时钟fCLKRCLK: 接收时钟输入(可直接与BAUDOUT相连),87,4.3,88,8250

33、与8088系统的连接,系统总线,D7-D0DISTRDOSTRINTRMRA0A1A2ADSDISTRDOSTRCS2CS1CS0,+5V,CS,D7-D0,# IOR,# IOW,INTR,RESET,A0,A1,A2,电平转换/驱动器14881489,到RS232接口,XTAL1XTAL2BAUDOUTRCLK,SOUTSINRTSDTRDSRDCDCTSRI,8250,XTAL,89,2. 8250的内部寄存器,共10个可编程(寻址)的寄存器线路控制寄存器(LCR) BASE+3线路状态寄存器(LSR) BASE+5 发送保持寄存器(THR) BASE+0(写)接收缓冲寄存器(RBR)

34、BASE+0(读)除数锁存器低8位(DLL)BASE+0(DL=1)除数锁存器高8位(DLH)BASE+1(DL=1)中断允许寄存器(IER) BASE+1中断识别寄存器(IIR) BASE+2Modem控制寄存器(MCR)BASE+4Modem状态寄存器(MSR)BASE+6,90,8250的内部寄存器(续),除数锁存器(DLL,DLH)BASE+0,1用来保存分频系数,以获得所需的波特率。波特率可以简单地看成每秒传送多少二进制位PC机中基准时钟频率fCLK=1.8432MHz,波特率因子K=16。所以,对于指定的波特率B 除数值=1843200/(B16)=115200/B例如,通信速率为

35、9600波特时,除数值=12。注意:写除数前,必须把LCR的最高位(DL位)置1,91,8250的内部寄存器(续),线路控制寄存器(LCR)BASE+3决定传输时的数据帧格式(通信双方必须一致),DL位:0正常操作1写除数寄存器,0正常操作1SOUT强制为1 (Break符号),xx0无校验001奇校验011偶校验101恒为1111恒为0,01位停止位12位停止位,107位数据位118位数据位,92,8250的内部寄存器(续),线路状态寄存器(LSR)BASE+5反映传输时的通信线状态,发送移位寄存器空,发送保持寄存器空,检测到Break,接收缓冲寄存器满,溢出错,奇偶错,格式错(停止位个数不

36、符),93,8250的内部寄存器(续),发送保持寄存器(THR)BASE+0要发送的数据写入此寄存器。当发送移位寄存器TSR空时,THR中的内容移入TSR被发送出去。只有THR空时,CPU才能写入下一个要发送的数据接收缓冲寄存器(RBR)BASE+0RSR收到一个完整的数据后,就将其送入RBR中。CPU可从RBR中读取收到的数据。RBR只能缓冲一个数据,当CPU未能及时取走上一个数据,下一个数据又送入RBR时,会产生溢出错,94,8250的内部寄存器(续),中断允许寄存器(IER)BASE+1决定哪类中断可以产生(也可禁止所有中断产生),1允许RBR满中断,1允许THR空中断,1允许线路状态中

37、断 (溢出错、奇偶错、格式错、Break),1允许Modem状态中断,95,8250的内部寄存器(续),中断识别寄存器(IIR)BASE+2用于识别产生中断的原因,0无中断1有中断,00Modem状态中断(优先级最低)01THR空中断10RBR满中断11线路状态中断,96,8250的内部寄存器(续),Modem控制寄存器(MCR)BASE+4产生RTS、DTR信号产生OUT1、OUT2信号设置循环自检状态,DTR,RTS,OUT1,OUT2,LOOP,97,8250的内部寄存器(续),Modem状态寄存器(MSR)BASE+6反映RS232接口的状态,CTS,DSR,RI,RLSD,CTS,R

38、LSD,RI,DSR,反映4个引脚的当前状态(反相值),反映了自上次读MSR后这4个引脚是否发生了变化(1发生了变化),98,8250发送数据的工作过程,1)CPU(数据)8250的THR ;2)TSR移空时,THR TSR,LSR中“数据发送保持寄存器空” 状态位置位 ;3)TSR根据LCR中规定的格式从低到高逐位发送数据 ;4)LSR中“数据发送保持寄存器空” 状态位可用来产生中断,也可查询该状态位,以实现数据的连续发送。,TSR,THR,串行数据输出,并行数据,LSR,INT,LCR,数据,状态,1),2),3),2),4),4),99,8250接收数据的工作过程,1)SIN引脚上的串行

39、数据逐位进入RSR;2)RSR根据LSR中规定的数据位数确定是否收到了一个完整的数据,收到后将数据RBR;3)RBR收到RSR的数据后,将LSR寄存器中“接收缓冲寄存器满”的状态位置位;4)LSR中“接收缓冲寄存器满”状态位可用来产生中断,也可查询该状态位,以实现数据的连续接收。,RSR,RBR,串行数据输入,并行数据,LSR,INT,LCR,数据,状态,1),2),3),4),100,3. 8250 的初始化流程,初始化程序程序例子见P338-339流程图见右图,使LCR的最高位1,写除数寄存器,写LCR寄存器,同时使LCR的最高位0,写MCR寄存器,写IER寄存器,101,用BIOS功能初

40、始化8250,PC机有两个串行接口:COM1(基地址3F8H), COM2(基地址2F8H)BIOS通过中断14H提供串行通信功能功能0:初始化串行接口功能1:发送一个字符功能2:接收一个字符功能3:读串行接口状态INT14H仅提供了查询方式的通信服务要使用中断方式进行发送和接收必须自行编程,102,用BIOS功能初始化8250,功能0(初始化)的入口参数为:AH=0AL=初始化参数DX=串口编号(0=COM1, 1=COM2)初始化参数定义如下:,波特率1001200101240011048001119600,奇偶校验x0无校验01奇校验11偶校验,数据位数005位016位107位118位,

41、停止位01位12位,MOV AH, 0MOV AL, 初始化参数MOV DX, 0INT 14H,103,8250的数据发送程序(查询),LEA SI, DATA_BUFFER MOV CX, DATA_BYTESL1: MOV DX, BASE+5 ;LSR地址 IN AL, DX TEST AL, 00100000B ;THR空? JZ L1 LODSB MOV DX, BASE+0 ;THR地址 OUT DX, AL LOOP L1 ,THR空?,输出一个字节,输出完?,N,Y,Y,N,104,8250的数据接收程序(查询),LEA DI, DATA_BUFFER MOV CX, DATA_BYTESL1: MOV DX, BASE+5 ; LSR地址 IN AL, DX TEST AL, 00011110B ; 有错误? JNZ ERROR TEST AL, 00000001B ; 收到数据? JZ L1 MOV DX, BASE+0 ; RBR地址 IN AL, DX STOSB LOOP L1 ,有错误?,读入数据,收到数据?,N,Y,Y,N,错误处理,接收完?,N,Y,105,106,作业:P342,7.37.47.67.107.11,谢谢大家!,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号