【教学课件】第七章串行通信接口.ppt

上传人:小飞机 文档编号:5660205 上传时间:2023-08-06 格式:PPT 页数:86 大小:1.05MB
返回 下载 相关 举报
【教学课件】第七章串行通信接口.ppt_第1页
第1页 / 共86页
【教学课件】第七章串行通信接口.ppt_第2页
第2页 / 共86页
【教学课件】第七章串行通信接口.ppt_第3页
第3页 / 共86页
【教学课件】第七章串行通信接口.ppt_第4页
第4页 / 共86页
【教学课件】第七章串行通信接口.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《【教学课件】第七章串行通信接口.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第七章串行通信接口.ppt(86页珍藏版)》请在三一办公上搜索。

1、第七章 串行通信接口,7.5.1 接口功能与数据传输方式7.5.2 串行传送的几个问题7.5.3 串行通信的数据格式7.5.4 串行接口标准7.5.5 串行通信接口任务7.5.6 用8250A组成的串行接口,7.5.1 接口功能与数据传输方式,一、接口功能 接口的功能是在系统总线和I/O设备之间传输信号,提供缓冲,满足接口两边时序要求。,寻址功能输入输出功能数据转换功能联络功能,中断管理功能复位功能可编程功能错误检测功能,二、数据传送的方式,数字信号的传输有并行传输和串行传输 并行传输是多位二进制数据可以同时传输,提高数据传输的效率。通常以8位、16 位或32位的数据宽度同时进行传输。每一位都

2、要有自己的数据传输线和发送接收器件,在时钟脉冲的作用下数据从一端送往另一端。串行通信是指在单根导线上将二进制数据一位一位顺序传送,特别适合于远距离传送。对于离计算机较近的外部设备如鼠标、绘图仪、终端等,也常常采用串行方式交换数据。,一、串行数据传送方向 串行通信中,数据通常是在二个站(点对点)之间进行传送,按照数据流的方向可分成三种传送模式:全双工、半双工、单工1.全双工(Full Duplex)数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,选择的传送方式称为全双工制。,7.5.2 串行传送的几个问题,特点:每一端都有发

3、送器和接收器 有二条传送线 应用:交互式应用,远程监测控制,2.半双工(Half Duplex)使用同一根传输线,既可发送数据又可接收数据,但不能同时收送数据,这样的传送方式就是半双工(Half Duplex)制,如图所示。,特点:每端需有一个收/发切换电子开关 因有切换,会产生时间延迟应用:打印机串口,单向传送设备,发送器接收器,二、信号的调制和解调 计算机的通信是要求传送数字信号,而在进行远程数据通信时,线路往往是借用现有的公用电话网,但是,电话网是为音频模拟信号的设计的。一般为3003400Hz,不适合于数据信号。因此需要对二进制信号进行调制,以适合在电话网上传输相应的音频信号,在接收时

4、,需要进行解调,还原成数字信号。,1.什么叫调制?所调调制就是进行波形变换。或者说进行频谱变换,就是将基带数字信号的频谱变换成适合于在模拟信道中传输的频谱。2.作用:调制器(Modulator)是一个波形变换器,它将基带数字的波形变换成适合于模拟信道传输的波形。解调器是一个波形识别器,将模拟信号恢复成原来的数字信号。,最基本的调制方法有以下几种:(1)调幅(AM)即载波的振幅随基带数字信号而变化.“1”对应有载波“0”对应无载波,3.调制方法:,(2)调频(FM)即载波频率随数字信号而变化“0”对应”f1”“1”对应“f2”,(3)调相(PM)即载波初始相位随基带数字信号而变化.“0”对应相位

5、0度“1”对应相位180度,4.发送时钟和接收时钟,数据输入寄存器,输入移位寄存器,1,16,32,数据输出寄存器,输出移位寄存器,1,16,32,CLK(主时钟),(串行数据输入),输入移位脉冲,(串行数据输出),输出移位脉冲,接收时钟,发送时钟,5.波特率因子,F(时钟频率)波特率因子波特率波特率因子:数据传输率(波特率)与时钟频率之间的比例系数.给定时钟频率,选择不同的波特率因子可得到不同的波特率。例如:f=19.2 kHz,若选波特率因子为16,则波特率为1200 bps。若选定波特率因子和波特率,则相应的确定了对时钟频率的要求。,12001619200(时钟频率)若外部时钟电路的频率

6、F1MHz,需用8253分频,试计算分频系数(8253的计数初值)?8253计数初值时钟频率(波特率波特率因子),8250,外部的时钟电路,1,16,,1MHz,N分频,19.2KHz,移位脉冲,CLK,OUT,8253,三、信息的检错与纠错 串行数据在传输过程中,由于干扰而引起误码是难免的,这直接影响通信系统的可靠性,对通信中的检/纠错能力是衡量一个通信系统的重要内容。检错:如何发现传输中的错误,称为检错。纠错:如何消除错误,称为纠错例:奇偶校验检错 方阵码检错 循环冗余码(CRC)检错 方阵码检错技术:采用奇偶校验与“检验和”的综合。7位编码后附加1位奇偶位。,若干个字符组成一个数据块列成

7、方阵,列向按位相加产生一个单字节检验和附加到数据块未尾。1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1,奇偶位,四、传输速率,1.波特率:是指在串行通信中,在基本波传输的情况下,每秒钟传送的二进制脉冲的数目。用波特率表示:即1波特=bit/s(位/秒)常用的标准波特率:110,300,1K,1.2K,2.4K,4.8K,9.6K,19.2K,56K,2.字符速率:是指每秒所传输的字符数,这个概念使用少。字符速率与波特率的关系:1个字符:1个起始位+8个

8、数据位+1个偶数位+2个终止位=12位 如果波特率:12000 则字符速率:12000/12=1000字符/s,7.5.3 串行通信的数据格式,通信协议:是指通信双方的一种约定,包括对数据格式、同步方式,传送速度、传送步骤、检纠错方式等问题作出统一规定。也称通信控制规程。,ISO(Inter national Standard Organization)国际标准化组织。OSI(Open System Interconnection)开放系统互连参考模型。,一、起止式异步通信数据格式1.格式,每个字符总是以起始位开始(“0”),以停止位(“1”)结束。字符之间没有时间间隔要求字符后一位校验位(可

9、没有),2.特点:是一个字符一个字符传输,二、面向字符的同步通信格式 1.功能:是一次传送若干个字符组成的数据块,并且规定了10个特殊字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息。2.数据格式(一帧),21,同步通信与异步通信,所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接收器用时钟来决定何时发送和读取每一个数据位。根据传输时采用的是统一时钟还是本地局部时钟,分为同步传输和异步传输两种。同步传输用一个时钟脉冲确定一个数据位,异步传输用多个时钟脉冲确定一个数据位(如16个)同步传输以数据块(当作“位流”看待)为单位传输,异步传输以字符为单位传输,但都称为帧(Fra

10、me),22,同步通信的时钟定时方法,数据(62H),0,1,1,0,0,0,1,0,同步传输先发送高位(MSB),发送方在时钟信号的下降沿发送字节,接收方在时钟信号的上升沿接收字节,时钟(发送时钟与接收时钟完全同步),LSB,MSB,23,异步通信的时钟定时方法,数据(62H),0,0,0,0,1,1,停止位,异步传输先发送低位(LSB),发送方利用发送时钟来决定发送每个位的时刻,接收方检测起始位的下降沿,并用它来同步接收时钟,然后利用接收时钟从每一位的中间接收该位,1,起始位,LSB,MSB,0,奇偶校验位,0,0/1,1 1,接收/发送时钟,24,异步通信时数据位的检测,发送/接收时钟周

11、期:Tc,数据位间隔:TdTc=Td/K,其中K称为波特率因子(16,32,64),25,异步通信的一般格式,每个字符由起始位、数据位、校验位、停止位构成。起始位和停止位用于字符的同步。,从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。,异步通信的信息格式如下边的表所示注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。,7.5.4 串行接

12、口标准一、EIA-RS-232接口标准 RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:020Kbps。1.电气特性RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。逻辑“1”=-3V-15V“0”=+3V+15V与TTL逻辑电平不一样,可用TTL/EIA电平转换器进行,如MC1488,MC1489IC。,采用EIA电平比TTL电平具有更强的抗干扰性能。另外,使用MAX232电平转换省电,可连接二对收/发线,只用单电源。2.机械特性1)连接器(Connector)常用二种:DB-25型,25脚,只用9个信号(2个数据

13、线,6个控制线,1个地址),如下图所示。,DB-9型 9针,9针全用,如下图。,2.电缆长度 RS-232直接连接的最大物理距离15M,通信速率20Kbps。3.RS-232C接口信号的定义 25线:数据线4条(2,3,14,16)控制线11条(4,5,6,8,12,13,19,20,22,23)定时信号线3条(15,17,24)地线2条(1,7)备用5条(9,10,11,18,25)未定义4.信号线的连接1)近距离连接(15m)只用3条线(发送线TXD,接收线RXD,信号地线),2.远距离连接(15m)1)需用MODEM和专用电话线2)需用29条信号线(在接口与MODEM之间),2TxD 发

14、送数据3 RxD接受数据4RTS请求发送5CTS允许发送6DSR数据设备准备好20DTR数据终端准备好7GND信号地,串行通信的接口标准,RS-232-C采用负逻辑,且信号电平与TTL不兼容,串行接口芯片8250、8251均使用TTL电平,应使用电平转换电路与RS-232C连接器连接。MC1488:TTL电平RS232电平(用于发送方)MC1489:TTL电平RS232电平(用于接收方),串行通信的接口标准,采用Modem(DCE)和电话网通信时的信号连接,串行通信的接口标准,采用专用线通讯时的信号连接,串行通信的接口标准,无Modem的标准连接,串行通信的接口标准,无Modem 的最简连接,

15、典型的串行接口的结构,由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串并)和“发送移位寄存器”(并串)。,一、RS-422接口标准1.特点:(1)采用平衡发送器和差动接收器,由于是双线传输,大大提高了抗共模干扰的能力。因为是两条传输线的电位差决定逻辑电平AA-BD+2V,表示“0”(2)传输速率 10Mbps(15m时)90Kbps(1200m时)2.连接,二 RS-423接口标准1.连接:,2.特点:采用单端发送器和差动接收器,由于是差动接收器,提高了抗 共模干扰能力。数传率:100Kbps/90m时 1Kbps/1200m

16、时逻辑“1”,4V6V 逻辑“0”,-4V-6V,三、RS-485接口标准1.特点:(1)兼容RS-422A,扩展RS-422A的功能;(2)允许在电路中有多个发送器和允许一个发送器驱动多个接收器,多达32个收/发器;(3)抗干扰能力强,传送距离远,传输速率高。数传率:100Kbps 1.2Km 不用MODEM 9.6Kbps 15Km 10Mbps 15m,RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-

17、232C和RS-422.它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段.同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送.许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。,7.5.5 串行通信接口任务一、串口的基本任务(1)进行串,并转换(2)实现串行数据格式化(3)可靠性检验(4)实施接口与端口设备之间联络控制二、串口电路的组成,内部有四个寄存器:控制寄存器、状态寄存器、数据输入内部有寄存器、数据输出寄存器数据线联络信号线地址线

18、与片选线 串并转换和并串转换,PC机常用可编程串行通信接口的芯片除了8251A以外,还有8250、PC16550等。和8251A相比,8250、PC16550不具备同步方式的传送功能。但是,对异步通信的控制功能强于8251A。8250和PC16550都具有波特率发生器,从而可以对波特率进行编程。和8251A相比,它们还具有全部控制调制解调器的信号,包括载波信号检测DCD#和振铃指示RI,因此就可以直接和调制解调器连接。而且它们和Intel CPU也完全兼容。,7.5.3 可编程串行接口8250/16550,串行通信:数据被逐位顺序传送串行同步通信:每个字符及位都是同步串行异步通信:同一字符内是

19、同步的,而字符与字符之间不同步(异步)协议:通信收/发双方必须共同遵守的基本通信规程协议内容:一般包括收发双方的同步方式、传输控制步骤、差错检验方式、数据编码、数据传输速率、通信报文格式及控制字符定义,异步通信协议,为使通信双方确认数据有效,在字符中设置起、止标志位起始标志位:每个字符前添加的一个“0”停止标志位:每个字符后添加的若干个“1”字符之间的空隙用“1”填满,此时的“1”称为空闲位,“0”为空号、“1”为传号,基本功能:(1)每个字符的数据位数(58位),奇偶校验(奇校验、偶校验或无奇偶校验),及停止位数(1,1.5或2个)均可以自由选择(2)内装可编程波特率发生器,可对输入时钟进行

20、1到(216-1)的分频并产生16倍发送波特率的波特率输出信号()。具有独立的接收器时钟信号输入。允许数据传送波特率为5096000B/S(3)收和发都具有双重缓冲(4)具有优先权中断管理系统并提供对发送接收、错误和通信线路状态的中断检测(5)提供通信线路和MODEM的全部状态(6)能检测假起始位(7)能产生和检测中止符(8)具有自诊断测试功能,芯片引脚,面向系统的引脚:D0D7 双向数据线。与系统数据总线DB相连接,用以传送数据、控制信息和状态信息。CS0,CS1,CS2 片选信号,当它们同时有效时,该8250芯片被选中。CSOUT 片选输出信号。当8250的CS0、CS1和CS2同时有效时

21、,CSOUT为高电平。MR 主复位信号,高电平有效。当它有效时,除接收数据寄存器、发送保持寄存器、除数锁存器外,其余寄存器的内容均被清除,A0A2 8250内部寄存器的选择信号。不同的编码 对应于不同的寄存器。ADS 地址选通信号。有效时可将CS0,CS1,CS2及A0-A2锁存于8250内部。不需要锁存时,ADS可直接接地。DISTR 读选通信号。通常与系统总线的IOR信号相连接。DOSTR 写选通信号。通常与系统总线的IOW信号相连接。INTR 中断请求信号。当允许8250中断时,接收出错、接收数据寄存器满、发送数据寄存器空以及MODEM的状态均能够产生有效的INTR信号。,8250 的引

22、脚及功能(续),面向通信设备的引脚信号SIN,SOUT:串行输入/输出端CTS,RTS,DTR,DSR:(同RS232标准中的信号)RLSD:即RS232C标准中的DCD信号RI:(同RS232标准中的信号)OUT1,OUT2:可由用户编程确定其状态的输出端BAUDOUT:波特率信号输出(频率=fCLK/分频值)XTAL1,XTAL2:接外部晶振,作为基准时钟fCLKRCLK:接收时钟输入(可直接与BAUDOUT相连),8250与8088系统的连接,系统总线,D7-D0DISTRDOSTRINTRMRA0A1A2ADSDISTRDOSTRCS2CS1CS0,+5V,CS,D7-D0,#IOR,

23、#IOW,INTR,RESET,A0,A1,A2,电平转换/驱动器14881489,到RS232接口,XTAL1XTAL2BAUDOUTRCLK,SOUTSINRTSDTRDSRDCDCTSRI,8250,XTAL,寄存器结构,接收缓冲器RBR发送保持寄存器THR传输线控制寄存器LCR传输线状态寄存器LSR调制解调器控制寄存器MCR调制解调器状态寄存器MSR中断使能寄存器IER中断识别寄存器IIR分频次数寄存器DLL及DLM,思考:3条地址线如何编码10个寄存器?,8250的内部寄存器(续),除数锁存器(DLL,DLH)BASE+0,1用来保存分频系数,以获得所需的波特率。波特率可以简单地看成

24、每秒传送多少二进制位PC机中基准时钟频率fCLK=1.8432MHz,波特率因子K=16。所以,对于指定的波特率B 除数值=1843200/(B16)=115200/B例如,通信速率为9600波特时,除数值=12。注意:写除数前,必须把LCR的最高位(DL位)置1,寄存器端口地址分配,线路控制寄存器LCR(BASE+3),决定传输时的数据帧格式(通信双方必须一致),SOUT强制为1(Break符号),传输线状态寄存器LSR(BASE+5),反映传输时的通信线状态,发送保持寄存器(THR)BASE+0要发送的数据写入此寄存器。当发送移位寄存器TSR空时,THR中的内容移入TSR被发送出去。只有T

25、HR空时,CPU才能写入下一个要发送的数据接收缓冲寄存器(RBR)BASE+0RSR收到一个完整的数据后,就将其送入RBR中。CPU可从RBR中读取收到的数据。RBR只能缓冲一个数据,当CPU未能及时取走上一个数据,下一个数据又送入RBR时,会产生溢出错,MODEM控制寄存器MCR BASE+4,产生RTS、DTR信号产生OUT1、OUT2信号设置循环自检状态,Modem状态寄存器(MSR)BASE+6反映RS232接口的状态,CTS,DSR,RI,RLSD,CTS,RLSD,RI,DSR,反映4个引脚的当前状态(反相值),反映了自上次读MSR后这4个引脚是否发生了变化(1发生了变化),MOD

26、EM控制状态寄存器MSR,反映RS232接口的状态,中断允许寄存器IER,决定哪类中断可以产生(也可禁止所有中断产生),中断识别寄存器IIR,用于识别产生中断的原因,波特率发生器,时钟源频率1.8432MHz时钟频率是数据传送波特率的16倍分频系数=1843200/(波特率*16),波特率与分频系数对应表,8250发送数据的工作过程,1)CPU(数据)8250的THR;2)TSR移空时,THR TSR,LSR中“数据发送保持寄存器空”状态位置位;3)TSR根据LCR中规定的格式从低到高逐位发送数据;4)LSR中“数据发送保持寄存器空”状态位可用来产生中断,也可查询该状态位,以实现数据的连续发送

27、。,TSR,THR,串行数据输出,并行数据,LSR,INT,LCR,数据,状态,1),2),3),2),4),4),8250接收数据的工作过程,1)SIN引脚上的串行数据逐位进入RSR;2)RSR根据LSR中规定的数据位数确定是否收到了一个完整的数据,收到后将数据RBR;3)RBR收到RSR的数据后,将LSR寄存器中“接收缓冲寄存器满”的状态位置位;4)LSR中“接收缓冲寄存器满”状态位可用来产生中断,也可查询该状态位,以实现数据的连续接收。,RSR,RBR,串行数据输入,并行数据,LSR,INT,LCR,数据,状态,1),2),3),4),8250初始化及应用编程,8250 的初始化流程,使

28、LCR的最高位1,写除数寄存器,写LCR寄存器,同时使LCR的最高位0,写MCR寄存器,写IER寄存器,8250初始化,8250串口芯片的初始化编程就是设置波特率、确定串行通信的数据帧格式、中断的设置等。,【例1】要求串行数据帧包含8位有效数据、1位停止位、采用奇校验方式,请编写满足该要求的8250/16550的初始化程序 根据线控寄存器LCR的约定,控制字为00001011B,初始化程序如下:MOVAL,00001011B;控制字 MOVDX,3FBH;线控寄存器端口地址 OUTDX,AL;写入控制字,编写设置波特率为9600的初始化程序。根据公式计算,波特率为9600时,分频值为000CH

29、MOVAL,10000000B;设置波特率时;要求特征位DLAB为1MOVDX,3FBH;线控寄存器端口地址OUTDX,AL;写入特征位MOVAL,0CH;波特率分频值低字节MOVDX,3F8H;分频值低位端口地址OUTDX,AL;写入分频值低位MOVAL,00H;波特率分频值高字节INCDX;分频值高位端口地址OUTDX,AL;写入分频值高位,例,用BIOS功能初始化8250,PC机有两个串行接口:COM1(基地址3F8H),COM2(基地址2F8H)BIOS通过中断14H提供串行通信功能功能0:初始化串行接口功能1:发送一个字符功能2:接收一个字符功能3:读串行接口状态INT14H仅提供了

30、查询方式的通信服务要使用中断方式进行发送和接收必须自行编程,用BIOS功能初始化8250,功能0(初始化)的入口参数为:AH=0AL=初始化参数DX=串口编号(0=COM1,1=COM2)初始化参数定义如下:,波特率1001200101240011048001119600,奇偶校验x0无校验01奇校验11偶校验,数据位数005位016位107位118位,停止位01位12位,MOV AH,0MOV AL,初始化参数MOV DX,0INT 14H,8250的数据发送程序(查询),LEA SI,DATA_BUFFER MOV CX,DATA_BYTESL1:MOV DX,BASE+5;LSR地址 I

31、N AL,DX TEST AL,00100000B;THR空?JZ L1 LODSB MOV DX,BASE+0;THR地址 OUT DX,AL LOOP L1,THR空?,输出一个字节,输出完?,N,Y,Y,N,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,有错误?,

32、读入数据,收到数据?,N,Y,Y,N,错误处理,接收完?,N,Y,用BIOS功能发送/接收数据,通过COM1发送数据:LEA SI,DATA_BUFFER MOV CX,DATA_BYTESL1:MOV AH,1;功能1 MOV DX,0;COM1 LODSB;数据在AL中 INT 14H;发送 LOOP L1,通过COM1接收数据:LEA DI,DATA_BUFFER MOV CX,DATA_BYTESL1:MOV AH,3;功能3 MOV DX,0;COM1 INT 14H;读接口状态 TEST AH,00011110B;有错误?JNZ ERROR TEST AH,00000001B;有数

33、据?JZ L1 MOV AH,2;功能2 MOV DX,0;COM1 INT 14H;接收数据 STOSB;保存数据 LOOP L1,8250通信编程,对8250编制通信软件时,首先应对芯片初始化,然后按程序查询或中断方式实现通信。1.8250初始化(1)设置波特率(2)设置串行通信数据格式(3)设置工作方式 2.程序查询方式通信编程 3.用中断方式编程(1)初始化8259A中断控制器(2)设置中断向量IR4(3)设置允许/屏蔽位(4)8250重新响应中断请求,设置波特率,例如,设波特率为9600,则波特率因子N=12MOV DX,3FBHMOV AL,80H;设置波特率OUT DX,ALMO

34、V DX,3F8HMOV AL,12OUT DX,ALINC DX MOV AL,0OUT DX,AL;3F9H送0,1.8250初始化,设置串行通信数据格式,例如,数据格式为8位,1位停止位,奇校验。MOV AL,0BHMOV DX,3FBHOUT DX,AL,设置工作方式(MODEM控制寄存器),无中断:MOV AL,3;OUT1、OUT2均为1MOV DX,3FCHOUT DX,AL 有中断:MOV AL,0BH;OUT2为0,允许INTRT去申请中断MOV DX,3FCHOUT DX,AL 循环测试:MOV AL,13HMOV DX,3FCHOUT DX,AL,2 程序查询方式通信编程

35、,采用程序查询方式工作时,CPU可以通过读线路状态寄存器(3FDH)查相应状态位(D0与D5位),来检查接收数据寄存器是否就绪(D0=1)与发送保持器是否空(D5=1)。发送程序:TR:MOV DX,3FDH IN AL,DXTEST AL,20H JZ TR MOV AL,SI;从SI中取出发送数据 MOV DX,3F8H OUT DX,AL接收程序:RE:MOV DX,3FDH IN AL,DX TEST AL,1 JZ RE MOV DX,3F8H IN AL,DX MOV DI,AL;读入数据存入DI中,初始化8259A中断控制器,MOV AL,13H;单片使用,需要ICW4MOV D

36、X,20H OUT DX,AL;ICW1 MOV AL,8;中断类型号为08H0FH INC DX OUT DX,AL;ICW2 INC AL;缓冲方式,8088/8086(1X01)OUT DX,AL;ICW4MOV AL,8CH;允许0,1,4,5,6级中断 OUT DX,AL;送中断屏蔽字OCW1,3.用中断方式编程,设置中断向量IR4,对IR4,中断类型号为0CH,0CH4=30H。因此,应在30H、31H存放IP值,32H、33H存放CS值。设中断服务程序入口地址为2000H:100HXOR AX,AX MOV DS,AX MOV AX,100H MOV WORD PTR0030H,

37、AX;送100H到00030H和00031H内存单元中MOV AX,2000HMOV WORD PTR0032H,AX;送2000H到00032H和00033H内存单元中,设置允许/屏蔽位,对8250送中断允许寄存器(3F9H)设置允许/屏蔽位。例如,允许发送与接收中断请求。MOV AL,3 MOV DX,3F9H OUT DX,AL,对8259A发EOI命令,在中断结束返回时,需要对8259A发EOI命令,保证8250可以重新响应中断请求。MOV AL,20H MOV DX,20HOUT DX,AL;发EOI命令,OCW2IRET;开中断允许,并从中断返回,8250应用举例,程序设计要求:在

38、IBM PC机上用汇编语言按查询方式编制一个发送与接收程序,它能把键入的每一个ASCII字符发送出去,并显示在CRT上,同时能把接收到的每一个字符也以ASCII码形式显示在CRT屏幕上。设:数据传送速率为9600波特:通信格式为8位/每字符,1位停止位,奇校验。KEY:MOV DX,3FBH MOV AL,80HOUT DX,ALMOV DX,3F8HMOV AL,12OUT DX,AL;写入对应波特率为9600的波特因子的低8位INC DXMOV AL,0OUT DX,AL;写入波特因子的高8位MOV AL,0BHMOV DX,3FBHOUT DX,AL;8位字符,1位停止位,奇校验,825

39、0应用举例(续1),MOV AL,13H MOV DX,3FCH OUT DX,AL;循环测试CHECK:MOV DX,3FDH IN AL,DX;读线路状态寄存器 TEST AL,1H;查接收缓冲器是否满,若满转接收子 程序 JNZ REV TEST AL,20H;查发送缓冲器是否空,不空转CHECK JZ CHECKTR:MOV AH,1;读键盘缓冲器内容,若有键按下,则 ZF标志为0,且AL=字符码 INT 16H JZ CHECK;如ZF=1,转CHECK MOV DX,3F8H OUT DX,AL;将键入代码发送出去,8250应用举例(续2),JMP CHECKREV:MOV DX,3F8HIN AL,DX;读入接收字符AND AL,7FH;屏蔽掉D7MOV BX,0041H;BH=00H,选0页;BL=41H,显示属性(红底兰字)MOV AH,14;用中断调用显示接收到的字符INT 10H JMP CHECK,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号