资源预览内容
第1页 / 共86页
第2页 / 共86页
第3页 / 共86页
第4页 / 共86页
第5页 / 共86页
第6页 / 共86页
第7页 / 共86页
第8页 / 共86页
第9页 / 共86页
第10页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第七章第七章 串行通信接口串行通信接口7.5.1 7.5.1 接口功能与数据传输方式接口功能与数据传输方式7.5.2 7.5.2 串行传送的几个问题串行传送的几个问题7.5.3 7.5.3 串行通信的数据格式串行通信的数据格式7.5.4 7.5.4 串行接口标准串行接口标准7.5.5 7.5.5 串行通信接口任务串行通信接口任务7.5.6 7.5.6 用用8250A8250A组成的串行接口组成的串行接口7.5.1 7.5.1 接口功能与数据传输方式接口功能与数据传输方式一、接口功能一、接口功能 接口的功能是在系统总线和接口的功能是在系统总线和I/OI/O设备之间传输信号,设备之间传输信号,提供缓冲,满足接口两边时序要求。提供缓冲,满足接口两边时序要求。寻址功能寻址功能输入输出功能输入输出功能数据转换功能数据转换功能联络功能联络功能中断管理功能中断管理功能复位功能复位功能可编程功能可编程功能错误检测功能错误检测功能二、数据传送的方式二、数据传送的方式数字信号的传输有并行传输和串行传输数字信号的传输有并行传输和串行传输 并并行行传传输输是是多多位位二二进进制制数数据据可可以以同同时时传传输输,提提高高数数据据传传输输的的效效率率。通通常常以以8 8位位、16 16 位位或或3232位位的的数数据据宽宽度度同同时时进进行行传传输输。每每一一位位都都要要有有自自己己的的数数据据传传输输线线和和发发送送接接收收器器件件,在在时时钟钟脉脉冲冲的作用下数据从一端送往另一端。的作用下数据从一端送往另一端。 串串行行通通信信是是指指在在单单根根导导线线上上将将二二进进制制数数据据一一位位一一位位顺顺序序传传送送,特特别别适适合合于于远远距距离离传传送送。对对于于离离计计算算机机较较近近的的外外部部设设备备如如鼠鼠标、绘图仪、终端等,也常常采用串行方式交换数据。标、绘图仪、终端等,也常常采用串行方式交换数据。 一、串行数据传送方向一、串行数据传送方向 串行通信中,数据通常是在二个站(点对点)之间进行串行通信中,数据通常是在二个站(点对点)之间进行传传送送,按按照照数数据据流流的的方方向向可可分分成成三三种种传传送送模模式式: :全全双双工工、半半双双工、单工工、单工1.1.全双工全双工(Full Duplex(Full Duplex) 数据的发送和接收分别由两根可以在两个不同的站点同数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,选择的传送方式称为全双工制。进行发送和接收操作,选择的传送方式称为全双工制。7.5.2 7.5.2 串行传送的几个问题串行传送的几个问题 特点:特点:每一端都有发送器和接收器每一端都有发送器和接收器 有二条传送线有二条传送线 应用应用:交互式应用,远程监测控制:交互式应用,远程监测控制发送器发送器接收器接收器接收器接收器发送器发送器A A站站B B站站图图7.5.1 7.5.1 全双工方式示意图全双工方式示意图2.2.半双工(半双工(Half DuplexHalf Duplex) 使用同一根传输线,既可发送数据又可接收数据,但不能同时使用同一根传输线,既可发送数据又可接收数据,但不能同时收送数据,这样的传送方式就是半双工(收送数据,这样的传送方式就是半双工(Half DuplexHalf Duplex)制,)制,如图所示。如图所示。发送器发送器接收器接收器发送器发送器接收器接收器A A站站B B站站图图7.5.2 7.5.2 半双工方式示意图半双工方式示意图特点:特点:每端需有一个收每端需有一个收/ /发切换电子开关发切换电子开关 因有切换,会产生时间延迟因有切换,会产生时间延迟应用:应用:打印机串口,单向传送设备,发送器打印机串口,单向传送设备,发送器接收器接收器 二、信号的调制和解调二、信号的调制和解调 计算机的通信是要求传送数字信号,而在进行远程数据通计算机的通信是要求传送数字信号,而在进行远程数据通信时,线路往往是借用现有的公用电话网,但是,电话网是为信时,线路往往是借用现有的公用电话网,但是,电话网是为音频模拟信号的设计的。一般为音频模拟信号的设计的。一般为3003003400Hz3400Hz,不适合于数据,不适合于数据信号。信号。 因此需要对二进制信号进行调制,以适合在电话网上传输因此需要对二进制信号进行调制,以适合在电话网上传输相应的音频信号,在接收时,需要进行解调,还原成数字信号。相应的音频信号,在接收时,需要进行解调,还原成数字信号。计算机计算机MODEMMODEMMODEMMODEM模拟信号模拟信号数字信号数字信号数字信号数字信号CRTCRT1 1 0 0 1 1 0 01 10 0 1 10 0 1 10 0 1 10 0图图7.5.3 7.5.3 调制电话线调制电话线1. 1. 什么叫调制什么叫调制? ? 所调调制就是进行波形变换。或者说进行频谱变换,就所调调制就是进行波形变换。或者说进行频谱变换,就是将基带数字信号的频谱变换成适合于在模拟信道中传输的是将基带数字信号的频谱变换成适合于在模拟信道中传输的频谱。频谱。2. 2. 作用作用: : 调调制制器器(Modulator)(Modulator)是是一一个个波波形形变变换换器器, ,它它将将基基带带数字的波形变换成适合于模拟信道传输的波形。数字的波形变换成适合于模拟信道传输的波形。 解解调调器器是是一一个个波波形形识识别别器器, ,将将模模拟拟信信号号恢恢复复成成原原来来的的数数字信号。字信号。 调制器调制器解调器解调器010010010010010010010010最基本的调制方法有以下几种:最基本的调制方法有以下几种:(1 1)调幅()调幅(AMAM)即载波的即载波的振幅振幅随基带数字信号而变化随基带数字信号而变化. . “1” “1”对应有载波对应有载波 “0” “0” 对应无载波对应无载波3. 3. 调制方法调制方法: :(2 2)调频()调频(FMFM) 即载波即载波频率频率随数字信号而变化随数字信号而变化 “0” “0”对应对应”f1”f1” “1” “1”对应对应“f2”“f2”(3)(3)调相(调相(PMPM) 即载波初始相位随基带数字信号即载波初始相位随基带数字信号而变化而变化. . “ 0” “ 0”对应相位对应相位0 0度度 “1” “1”对应相位对应相位180180度度f1f2FMAM0 1 0 0 1 10度180度PM4.发送时钟和接收时钟发送时钟和接收时钟数据输入寄存器输入移位寄存器1,16,32数据输出寄存器输出移位寄存器1,16,32CLK(主时钟主时钟)(串行数据输入)输入移位脉冲输入移位脉冲(串行数据输出)输出移位脉冲输出移位脉冲接收时钟发送时钟5.波特率因子波特率因子F(时钟频率)(时钟频率)波特率因子波特率因子波特率波特率波波特特率率因因子子:数数据据传传输输率率(波波特特率率)与与时时钟钟频频率率之之间间的的比例系数比例系数.给给定定时时钟钟频频率率,选选择择不不同同的的波波特特率率因因子子可可得得到到不不同同的的波波特率。特率。例例如如:f=19.2kHz,若若选选波波特特率率因因子子为为16,则则波波特特率为率为1200bps。若若选选定定波波特特率率因因子子和和波波特特率率,则则相相应应的的确确定定了了对对时时钟钟频频率率的要求。的要求。12001619200(时时钟钟频频率率)若若外外部部时时钟钟电电路路的的频频率率F1MHz,需需用用8253分分频频,试试计计算算分分频频系系数数(8253的计数初值)?的计数初值)?8253计数初值时钟频率计数初值时钟频率(波特率波特率因子波特率波特率因子) 8250外部的外部的时钟电路时钟电路 1, 16,1MHzN分频分频19.2KHz移位脉冲移位脉冲CLKOUT 8253三、信息的检错与纠错三、信息的检错与纠错 串行数据在传输过程中,由于干扰而引起误码是难免的,串行数据在传输过程中,由于干扰而引起误码是难免的,这直接影响通信系统的可靠性,对通信中的检这直接影响通信系统的可靠性,对通信中的检/ /纠错能力是衡量纠错能力是衡量一个通信系统的重要内容。一个通信系统的重要内容。 检错:检错:如何发现传输中的错误,称为检错。如何发现传输中的错误,称为检错。 纠错:纠错:如何消除错误,称为纠错如何消除错误,称为纠错例:例:奇偶校验检错奇偶校验检错 方阵码检错方阵码检错 循环冗余码(循环冗余码(CRCCRC)检错)检错 方阵码检错技术:方阵码检错技术: 采用奇偶校验与采用奇偶校验与“检验和检验和”的综合。的综合。 7 7位编码后附加位编码后附加1 1位奇偶位。位奇偶位。 若若干干个个字字符符组组成成一一个个数数据据块块列列成成方方阵阵,列列向向按按位位相加产生相加产生一个单字节检验和附加到数据块未尾。一个单字节检验和附加到数据块未尾。 1 1 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 1奇偶位奇偶位四、传输速率四、传输速率1. 1. 波特率:波特率: 是是指指在在串串行行通通信信中中,在在基基本本波波传传输输的的情情况况下下,每秒钟传送的二进制脉冲的数目。每秒钟传送的二进制脉冲的数目。 用波特率表示:即用波特率表示:即1 1波特波特=bit/s =bit/s (位(位/ /秒)秒)常常用用的的标标准准波波特特率率:110110,300300,1K1K,1.2K1.2K,2.4K2.4K,4.8K4.8K,9.6K9.6K,19.2K19.2K,56K56K2.2.字符速率:字符速率: 是指每秒所传输的字符数,这个概念使用少。是指每秒所传输的字符数,这个概念使用少。 字符速率与波特率的关系:字符速率与波特率的关系: 1 1个个字字符符:1 1个个起起始始位位+8+8个个数数据据位位+1+1个个偶偶数数位位+2+2个个终终止止位位=12=12位位 如果波特率:如果波特率:12000 12000 则字符速率:则字符速率:12000/12=100012000/12=1000字符字符/s/s7.5.3 7.5.3 串行通信的数据格式串行通信的数据格式通信协议:通信协议: 是是指指通通信信双双方方的的一一种种约约定定,包包括括对对数数据据格格式式、同同步步方方式式,传传送送速速度度、传传送送步步骤骤、检检纠纠错错方方式式等等问问题题作作出出统统一一规规定定。也也称通信控制规程。称通信控制规程。同步协议同步协议异步协议异步协议分类分类面向字符(面向字符(character Orientedcharacter Oriented) 面向比特(面向比特(BitBit)面向字节计数面向字节计数ISOISO(Inter national Standard OrganizationInter national Standard Organization)国际标准化组织。)国际标准化组织。OSIOSI(Open System InterconnectionOpen System Interconnection)开放系统互连参考模型。)开放系统互连参考模型。一、起止式异步通信数据格式一、起止式异步通信数据格式1.1.格式格式1 11 10 00 00 00 01 10 01 11 11 10 00 00 0空空闲闲位位起始位起始位数据位数据位0 0低低高高校验位校验位停停止止位位应用:早期电传机应用:早期电传机每个字符总是以起始位开始(每个字符总是以起始位开始(“0”“0”),以停止位(),以停止位(“1”“1”)结)结束。束。字符之间没有时间间隔要求字符之间没有时间间隔要求字符后一位校验位(可没有)字符后一位校验位(可没有)2.2.特点:是一个字符一个字符传输特点:是一个字符一个字符传输二、面向字符的同步通信格式二、面向字符的同步通信格式 1.1.功能:功能: 是一次传送若干个字符组成的数据块,并且规定了是一次传送若干个字符组成的数据块,并且规定了1010个特殊个特殊字符作为这个数据块的开头与结束标志以及整个传输过程的控字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息。制信息。2.2.数据格式(一帧)数据格式(一帧)SYNSYNSYNSYNSOHSOH标题标题STXSTX数据块数据块ETB/ETXETB/ETX 块校验块校验2121同步通信与异步通信同步通信与异步通信同步通信与异步通信同步通信与异步通信所所所所有有有有串串串串行行行行通通通通信信信信都都都都需需需需要要要要一一一一个个个个时时时时钟钟钟钟信信信信号号号号来来来来作作作作为为为为数数数数据据据据的的的的定定定定时时时时参参参参考考考考。发发发发送送送送器器器器和和和和接接接接收收收收器器器器用用用用时时时时钟钟钟钟来来来来决决决决定何时发送和读取每一个数据位。定何时发送和读取每一个数据位。定何时发送和读取每一个数据位。定何时发送和读取每一个数据位。根根根根据据据据传传传传输输输输时时时时采采采采用用用用的的的的是是是是统统统统一一一一时时时时钟钟钟钟还还还还是是是是本本本本地地地地局局局局部部部部时钟,分为同步传输和异步传输两种。时钟,分为同步传输和异步传输两种。时钟,分为同步传输和异步传输两种。时钟,分为同步传输和异步传输两种。同同同同步步步步传传传传输输输输用用用用一一一一个个个个时时时时钟钟钟钟脉脉脉脉冲冲冲冲确确确确定定定定一一一一个个个个数数数数据据据据位位位位, ,异异异异步步步步传输用多个时钟脉冲确定一个数据位传输用多个时钟脉冲确定一个数据位传输用多个时钟脉冲确定一个数据位传输用多个时钟脉冲确定一个数据位( (如如如如1616个个个个) )同同同同步步步步传传传传输输输输以以以以数数数数据据据据块块块块( (当当当当作作作作“ “位位流流” ”看看看看待待待待) )为为为为单单单单位位位位传传传传输输输输,异异异异步步步步传传传传输输输输以以以以字字字字符符符符为为为为单单单单位位位位传传传传输输输输,但但但但都都都都称称称称为为为为帧帧(Frame)(Frame)2222同步通信的时钟定时方法同步通信的时钟定时方法同步通信的时钟定时方法同步通信的时钟定时方法数据(62H)01100010同步传输先发送高位同步传输先发送高位(MSB)发送方发送方在时钟信号的下降沿发送字节在时钟信号的下降沿发送字节接收方接收方在时钟信号的上升沿接收字节在时钟信号的上升沿接收字节时钟时钟(发送时钟与接收(发送时钟与接收时钟完全同步)时钟完全同步)LSBMSB23232323异步通信的时钟定时方法异步通信的时钟定时方法异步通信的时钟定时方法异步通信的时钟定时方法数据数据(62H62H)0 00 00 00 01 11 1停止位停止位异步传输先发送低位异步传输先发送低位(LSB)(LSB)发送方发送方利用发送时钟来决定发送每个位的时刻利用发送时钟来决定发送每个位的时刻接收方接收方检测起始位的下降沿,并用它来同步接收时检测起始位的下降沿,并用它来同步接收时钟,然后利用接收时钟从每一位的中间接收该位钟,然后利用接收时钟从每一位的中间接收该位1 1起始位起始位LSBLSBMSBMSB0 0奇偶奇偶校验位校验位0 00/10/11 1 1 1接收接收/ /发送发送时钟时钟2424异步通信时数据位的检测异步通信时数据位的检测异步通信时数据位的检测异步通信时数据位的检测发送发送/接收时钟周期:接收时钟周期:Tc,数据位间隔:数据位间隔:TdTc=Td/K,其中其中K称为波特率因子称为波特率因子(16,32,64)2525异步通信的一般格式异步通信的一般格式异步通信的一般格式异步通信的一般格式每个字符由每个字符由每个字符由每个字符由起始位起始位起始位起始位、数据位数据位数据位数据位、校验位校验位校验位校验位、停止位停止位停止位停止位构成。构成。构成。构成。起始位和停止位用于字符的同步。起始位和停止位用于字符的同步。起始位和停止位用于字符的同步。起始位和停止位用于字符的同步。从从图图中中可可看看出出,这这种种格格式式是是靠靠起起始始位位和和停停止止位位来来实实现现字字符符的的界定或同步的,故称为起止式协议。界定或同步的,故称为起止式协议。异步通信的信息格式如下边的表所示异步通信的信息格式如下边的表所示注注:表表中中位位数数的的本本质质含含义义是是信信号号出出现现的的时时间间,故故可可有有分分数数位,如位,如1.5。例例:传传送送8位位数数据据45H(0100,0101B),奇奇校校验验,1个个停停止止位位,则则信信号号线线上上的的波波形形象象图图所所示示那那样样:异异步步通通信信的的速速率率:若若9600bps,每每字字符符8位位,1起起始始,1停停止止,无无奇奇偶偶,则实际每字符传送则实际每字符传送10位,则位,则960字符字符/秒。秒。起始位起始位逻辑0 01 1位位数据位数据位逻辑0 0或或1 15 5位、位、6 6位、位、7 7位、位、8 8位位校校验位位逻辑0 0或或1 11 1位或无位或无停止位停止位逻辑1 11 1位,位,1.51.5位或位或2 2位位空空闲位位逻辑1 1任意数量任意数量7.5.4 7.5.4 串行接口标准串行接口标准一、一、EIA-RS-232EIA-RS-232接口标准接口标准 RS-232RS-232标标准准是是美美国国EIAEIA(电电子子工工业业联联合合会会)与与BELLBELL等等公公司司一一起起开发的,开发的,19691969年公布的通信协议,适合的数传率:年公布的通信协议,适合的数传率:0 020Kbps20Kbps。1.1.电气特性电气特性RS-232RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。对电气特性,逻辑电平和各种信号线的功能都作了规定。 逻辑逻辑“1”=-3V“1”=-3V-15V -15V “0”=+3V “0”=+3V+15V+15V与与TTLTTL逻辑电平不一样,可用逻辑电平不一样,可用TTL/EIATTL/EIA电平转换器进行,如电平转换器进行,如MC1488MC1488,MC1489ICMC1489IC。MC1488MC1488MC1489MC1489RS-232RS-232TTLTTLEIAEIA电平电平+15V+15V+15V+15VTTLTTL+15V+15V 采用采用EIAEIA电平比电平比TTLTTL电平具有更强的抗干扰性能。电平具有更强的抗干扰性能。 另外,使用另外,使用MAX232MAX232电平转换省电电平转换省电, ,可连接二对收可连接二对收/ /发线,只用单发线,只用单电源。电源。2.2.机械特性机械特性1 1)连接器()连接器(ConnectorConnector) 常用二种:常用二种:DB-25DB-25型,型,2525脚,只用脚,只用9 9个信号(个信号(2 2个数据线,个数据线,6 6个控制线,个控制线,1 1个个地址),如下图所示。地址),如下图所示。1 12 23 34 4DB-25DB-25型连接器型连接器5 56 67 78 89 91111131325252222202018181414发送电流(发送电流(- -)发送电流(发送电流(+ +)DCDDCDGNDGNDDSRDSRCTSCTSRTSRTSR RX XD DT TX XD D(- -)接收电流)接收电流(+ +)接收电流)接收电流 DB-9DB-9型型 9 9针针,9 9针针全用,如下图。全用,如下图。1 12 23 34 45 56 67 78 89 9DSRDSRRTSRTSCTSCTSRIRIDCDDCDR RX XD DT TX XD DDTRDTRGNDGNDDB-9DB-9型连接器型连接器2.2.电缆长度电缆长度 RS-232 RS-232直接连接的最大物理距离直接连接的最大物理距离15M15M,通信速率,通信速率20Kbps20Kbps。3.RS-232C3.RS-232C接口信号的定义接口信号的定义 25 25线:数据线线:数据线4 4条(条(2 2,3 3,1414,1616) 控制线控制线1111条(条(4 4,5 5,6 6,8 8,1212,1313,1919,2020,2222,2323) 定时信号线定时信号线3 3条(条(1515,1717,2424) 地线地线2 2条(条(1 1,7 7) 备用备用5 5条(条(9 9,1010,1111,1818,2525) 未定义未定义4.4.信号线的连接信号线的连接1 1)近距离连接()近距离连接(15m15m15m)1 1)需用)需用MODEMMODEM和专用电话线和专用电话线2 2)需用)需用2 29 9条信号线(在接口与条信号线(在接口与MODEMMODEM之间)之间)计计算算机机接接口口调调制制解解调调器器DCDDCDR RX XD DT TX XD DRTSRTSCTSCTSSGSGDSRDSR调调制制解解调调器器DCDDCDR RX XD DT TX XD DRTSRTSCTSCTSSGSGDSRDSR终终端端专用电话线专用电话线2 22 2采用采用MODEMMODEM时时RS-232RS-232信号线的使用信号线的使用2TxD发送数据发送数据3RxD接受数据接受数据4RTS请求发送请求发送5CTS允许发送允许发送6DSR数据设备准备好数据设备准备好20DTR数据终端准备好数据终端准备好7GND信号地信号地F串行通信的接口标准串行通信的接口标准RS-232-C采用负逻辑,且信号电平与采用负逻辑,且信号电平与TTL不兼容不兼容串行接口芯片串行接口芯片8250、8251均使用均使用TTL电平,应使用电平,应使用电平转换电路与电平转换电路与RS-232C连接器连接。连接器连接。MC1488:TTL电平电平RS232电平电平 (用于发送(用于发送方)方)MC1489:TTL电平电平RS232电平电平 (用于接收(用于接收方)方)F串行通信的接口标准串行通信的接口标准采用采用Modem(DCE)和电话网通信时的信号连接和电话网通信时的信号连接F串行通信的接口标准串行通信的接口标准采用专用线通讯时的信号连接采用专用线通讯时的信号连接F串行通信的接口标准串行通信的接口标准无无Modem的标准连接的标准连接F串行通信的接口标准串行通信的接口标准无无Modem 的最简连接的最简连接F典型的串行接口的结构典型的串行接口的结构由于由于CPU与接口之间按并行方式传输,接口与外设之间按与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有串行方式传输,因此,在串行接口中,必须要有“接收移接收移位寄存器位寄存器”(串(串并)和并)和“发送移位寄存器发送移位寄存器”(并(并串)。串)。一、一、RS-422RS-422接口标准接口标准1.1.特点特点: (1 1)采用平衡发送器和差动接收器,由于是双线传输,大大提采用平衡发送器和差动接收器,由于是双线传输,大大提高了抗共模干扰的能力。高了抗共模干扰的能力。因为是两条传输线的电位差决定逻辑电平因为是两条传输线的电位差决定逻辑电平AAAA-BD -BD -2V +2V +2V,表示,表示“0”“0”(2 2)传输速率)传输速率 10Mbps10Mbps(15m15m时)时) 90Kbps 90Kbps(1200m1200m时)时)2.2.连接连接MC3487MC3487MC3486MC3486B BTTLTTLRS-422ARS-422A电平电平平衡发送器平衡发送器差动接收器差动接收器B BA AA A二二 RS-423 RS-423接口标准接口标准1.1.连接:连接:2.2.特点:特点:采用单端发送器和差动接收器,由于是差动接收器,提高了抗采用单端发送器和差动接收器,由于是差动接收器,提高了抗 共模干扰能力。共模干扰能力。数传率:数传率:100Kbps/90m100Kbps/90m时时 1Kbps/1200m 1Kbps/1200m时时逻辑逻辑“1”“1”,4V4V6V6V 逻辑逻辑“0”“0”,-4V-4V-6V-6VTTLTTLRS-423ARS-423A电平电平单端发送器单端发送器差动接收器差动接收器+ +- -三、三、RS-485RS-485接口标准接口标准1.1.特点特点:(1 1)兼容)兼容RS-422ARS-422A,扩展,扩展RS-422ARS-422A的功能;的功能;(2 2)允允许许在在电电路路中中有有多多个个发发送送器器和和允允许许一一个个发发送送器器驱驱动动多多个个接收器,多达接收器,多达3232个收个收/ /发器;发器;(3 3)抗干扰能力强,传送距离远,传输速率高。)抗干扰能力强,传送距离远,传输速率高。 数传率:数传率:100Kbps 1.2Km 100Kbps 1.2Km 不用不用MODEMMODEM 9.6Kbps 15Km 9.6Kbps 15Km 10Mbps 15m 10Mbps 15mRS-422标准规定采用平衡驱动差分接收电路标准规定采用平衡驱动差分接收电路,提高了数据提高了数据传输速率传输速率(最大位速率为最大位速率为10Mb/s),增加了传输距离增加了传输距离(最大传最大传输距离输距离1200m)。RS-423标准规定采用单端驱动差分接收电路标准规定采用单端驱动差分接收电路,其电气其电气性能与性能与RS-232C几乎相同几乎相同,并设计成可连接并设计成可连接RS-232C和和RS-422.它一端可与它一端可与RS-422连接连接,另一端则可与另一端则可与RS-232C连接连接,提供了一种从旧技术到新技术过渡的手段提供了一种从旧技术到新技术过渡的手段.同时又提同时又提高位速率高位速率(最大为最大为300Kb/s)和传输距离和传输距离(最大为最大为600m)。因因RS-485为半双工的为半双工的,当用于多站互连时可节省信号当用于多站互连时可节省信号线线,便于高速、远距离传送便于高速、远距离传送.许多智能仪器设备均配有许多智能仪器设备均配有RS-485总线接口总线接口,将它们联网也十分方便。将它们联网也十分方便。7.5.5 7.5.5 串行通信接口任务串行通信接口任务一、串口的基本任务一、串口的基本任务(1 1)进行串,并转换)进行串,并转换(2 2)实现串行数据格式化)实现串行数据格式化(3 3)可靠性检验)可靠性检验(4 4)实施接口与端口设备之间联络控制)实施接口与端口设备之间联络控制二、串口电路的组成二、串口电路的组成1.1.内部有四个寄存器:控制寄存器、状态寄存器、内部有四个寄存器:控制寄存器、状态寄存器、数据输入内部有寄存器、数据输出寄存器数据输入内部有寄存器、数据输出寄存器2.2.数据线数据线3.3.联络信号线联络信号线4.4.地址线与片选线地址线与片选线 5.5.串并转换和并串转换串并转换和并串转换PC机机常常用用可可编编程程串串行行通通信信接接口口的的芯芯片片除除了了8251A以以外外,还还有有8250、PC16550等等。和和8251A相相比比,8250、PC16550不不具具备备同同步步方方式式的的传传送送功功能能。但但是是,对对异异步步通通信信的的控控制制功功能能强强于于8251A。8250和和PC16550都都具具有有波波特特率率发发生生器器,从从而而可可以以对对波波特特率率进进行行编编程程。和和8251A相相比比,它它们们还还具具有有全全部部控控制制调调制制解解调调器器的的信信号号,包包括括载载波波信信号号检检测测DCD#和和振振铃铃指指示示RI,因因此此就就可可以以直直接接和和调调制制解解调调器器连连接。而且它们和接。而且它们和IntelCPU也完全兼容。也完全兼容。7.5.3可编程串行接口可编程串行接口8250/16550串行通信:数据被串行通信:数据被逐位顺序传送逐位顺序传送串行同步通信:串行同步通信:每个字符及位都是同步每个字符及位都是同步串串行行异异步步通通信信:同同一一字字符符内内是是同同步步的的,而而字字符符与字符之间不同步与字符之间不同步(异步)(异步)协协议议:通通信信收收/发发双双方方必必须须共共同同遵遵守守的的基基本本通信规程通信规程协协议议内内容容:一一般般包包括括收收发发双双方方的的同同步步方方式式、传传输输控控制制步步骤骤、差差错错检检验验方方式式、数数据据编编码码、数数据据传传输输速速率率、通通信信报报文文格格式式及及控控制制字字符符定义定义异步通信协议异步通信协议为为使使通通信信双双方方确确认认数数据据有有效效,在在字字符符中中设设置置起起、止标志位止标志位起始标志位:每个字符前添加的一个起始标志位:每个字符前添加的一个“0”停止标志位:每个字符后添加的若干个停止标志位:每个字符后添加的若干个“1”字字符符之之间间的的空空隙隙用用“1”填填满满,此此时时的的“1”称称为为空闲位,空闲位,“0”为空号、为空号、“1”为传号为传号基本功能:基本功能:(1 1)每每个个字字符符的的数数据据位位数数(5 58 8位位),奇奇偶偶校校验验(奇奇校校验验、偶偶校校验验或或无无奇奇偶偶校校验验),及及停停止止位位数数(1 1,1.51.5或或2 2个个)均可以自由选择均可以自由选择(2 2)内内装装可可编编程程波波特特率率发发生生器器,可可对对输输入入时时钟钟进进行行1 1到到(216-1216-1)的的分分频频并并产产生生1616倍倍发发送送波波特特率率的的波波特特率率输输出出信信号号( )。具具有有独独立立的的接接收收器器时钟信号输入。允许数据传送波特率为时钟信号输入。允许数据传送波特率为505096000B/S96000B/S(3 3)收和发都具有双重缓冲)收和发都具有双重缓冲(4 4)具具有有优优先先权权中中断断管管理理系系统统并并提提供供对对发发送送接接收收、错错误误和和通通信信线线路状态的中断检测路状态的中断检测 (5 5)提供通信线路和)提供通信线路和MODEMMODEM的全部状态的全部状态 (6 6)能检测假起始位)能检测假起始位(7 7)能产生和检测中止符)能产生和检测中止符(8 8)具有自诊断测试功能)具有自诊断测试功能 芯片引脚芯片引脚面向系统的引脚:面向系统的引脚:D0D0D7D7 双双向向数数据据线线。与与系系统统数数据据总总线线DBDB相相连连接接,用用以以传传送送数数据据、控制信息和状态信息。控制信息和状态信息。CS0CS0,CS1CS1,CS2CS2 片片选选信信号号,当当它它们们同同时时有有效效时,该时,该82508250芯片被选中。芯片被选中。CSOUTCSOUT 片片选选输输出出信信号号。当当82508250的的CS0CS0、CS1CS1和和CS2CS2同同时时有有效效时时,CSOUTCSOUT为高电平。为高电平。MRMR 主主复复位位信信号号,高高电电平平有有效效。当当它它有有效效时时,除除接接收收数数据据寄寄存存器器、发发送送保保持持寄寄存存器器、除除数数锁锁存存器器外外,其余寄存器的内容均被清除其余寄存器的内容均被清除A0A2 8250 8250内部寄存器的选择信号。不同的编码内部寄存器的选择信号。不同的编码 对应于不同的寄存器。对应于不同的寄存器。ADS 地地址址选选通通信信号号。有有效效时时可可将将CS0CS0,CS1CS1,CS2CS2及及A0-A2A0-A2锁锁存于存于82508250内部。不需要锁存时,内部。不需要锁存时,ADSADS可直接接地。可直接接地。DISTR 读选通信号。通常与系统总线的读选通信号。通常与系统总线的IOR信号相连接。信号相连接。DOSTR 写选通信号。通常与系统总线的写选通信号。通常与系统总线的IOW信号相连接。信号相连接。INTR 中中断断请请求求信信号号。当当允允许许82508250中中断断时时,接接收收出出错错、接接收收数数据据寄寄存存器器满满、发发送送数数据据寄寄存存器器空空以以及及MODEMMODEM的的状状态态均均能够产生有效的能够产生有效的INTRINTR信号。信号。8250的引脚及功能的引脚及功能(续续)面向通信设备的引脚信号面向通信设备的引脚信号SIN, SOUTSIN, SOUT: : 串行输入串行输入/ /输出端输出端CTS, RTS, DTR, DSRCTS, RTS, DTR, DSR: :(同(同RS232RS232标准中的信号)标准中的信号)RLSDRLSD: : 即即RS232CRS232C标准中的标准中的DCDDCD信号信号RIRI: :(同(同RS232RS232标准中的信号)标准中的信号)OUT1, OUT2OUT1, OUT2: : 可由用户编程确定其状态的输出端可由用户编程确定其状态的输出端BAUDOUTBAUDOUT: : 波特率信号输出(频率波特率信号输出(频率= =f fCLKCLK/ /分频值)分频值)XTAL1, XTAL2XTAL1, XTAL2: : 接外部晶振,作为基准时钟接外部晶振,作为基准时钟f fCLKCLKRCLKRCLK: : 接收时钟输入(可直接与接收时钟输入(可直接与BAUDOUTBAUDOUT相连)相连)8250与与8088系统的连接系统的连接系统总线D7-D0DISTRDOSTRINTRMRA0A1A2ADSDISTRDOSTRCS2CS1CS0+5VCSD7-D0# IOR# IOWINTRRESETA0A1A2电平转换/驱动器14881489到RS232接口XTAL1XTAL2BAUDOUTRCLK SOUTSINRTSDTRDSRDCDCTSRI8250XTAL寄存器结构寄存器结构1.1.接收缓冲器接收缓冲器RBR2.2.发送保持寄存器发送保持寄存器THR3.3.传输线控制寄存器传输线控制寄存器LCR4.4.传输线状态寄存器传输线状态寄存器LSR5.5.调调制制解解调调器器控控制制寄寄存存器器MCR6.6.调调制制解解调调器器状状态态寄寄存存器器MSR7.7.中断使能寄存器中断使能寄存器IER8.8.中断识别寄存器中断识别寄存器IIR9.9.分分频频次次数数寄寄存存器器DLL及及DLM思思考考:3条条地地址址线线如如何何编编码码10个个寄存器?寄存器?8250的内部寄存器(续)的内部寄存器(续)除除 数数 锁锁 存存 器器 ( DLL, DLH) BASE+0,1用来保存分频系数,以获得所需的用来保存分频系数,以获得所需的波特率波特率。波特率波特率可以简单地看成每秒传送多少二进制位可以简单地看成每秒传送多少二进制位PCPC机机中中基基准准时时钟钟频频率率f fCLKCLK=1.8432MHz=1.8432MHz,波波特特率率因因子子K=16K=16。所以,对于指定的波特率。所以,对于指定的波特率B B 除数值除数值=1843200/(B=1843200/(B16)=115200/B16)=115200/B例如,通信速率为例如,通信速率为96009600波特时,除数值波特时,除数值=12=12。注意:写除数前,必须把注意:写除数前,必须把LCRLCR的最高位的最高位(DL(DL位位) )置置1 1寄存器端口地址分配寄存器端口地址分配DLABDLABA A2 2A A1 1A A0 0被访问的寄存器被访问的寄存器串口串口1 1的地址的地址0 00 00 00 0接收缓冲器接收缓冲器RBRRBR、发送缓冲器、发送缓冲器THRTHR3F8H3F8H0 00 00 01 1中断允许寄存器中断允许寄存器IERIER3F9H3F9H0 01 10 0中断标识寄存器(只读)中断标识寄存器(只读)IIRIIR3FAH3FAH0 01 11 1传输线控制寄存器传输线控制寄存器LCRLCR3FBH3FBH1 10 00 0ModemModem控制寄存器控制寄存器MCRMCR3FCH3FCH1 10 01 1传输线状态寄存器传输线状态寄存器LSRLSR3FDH3FDH1 11 10 0ModemModem状态寄存器状态寄存器MSRMSR3FEH3FEH1 10 00 00 0除数寄存器(低字节)除数寄存器(低字节)DLLDLL3F8H3F8H1 10 00 01 1除数寄存器(高字节)除数寄存器(高字节)DLMDLM3F9H3F9H线路控制寄存器线路控制寄存器LCR(BASE+3BASE+3)D7D6D5D4D3D2D1D0XX0:校验位无效:校验位无效001:奇校验:奇校验011:偶校验:偶校验101:校验:校验0111:校验恒:校验恒1校校 验方验方 式式数据数据 帧长帧长00:5位位01:6位位10:7位位11:8位位设置简断设置简断1-强强制制间间断断0-正正常常寻址识别寻址识别1 :分分频频0 :收收发发数数据据、中中断断停止位停止位1 : 1位位半半或或2位位0 : 1位位停停止止位位决定传输时的数据帧格式(通信双方必须一致)决定传输时的数据帧格式(通信双方必须一致)SOUT强制为1 (Break符号)传输线状态寄存器传输线状态寄存器LSR(BASE+5BASE+5)D7D6D5D4D3D2D1D00恒恒定定值值1 :发发送送移移位位空空1 :发发送送缓缓冲冲空空1 :检检测测到到间间断断1 :帧帧错错1 :奇奇偶偶校校验验错错1 :数数据据溢溢出出错错误误1 :接接收收数数据据就就绪绪反映传输时的通信线状态反映传输时的通信线状态发送保持寄存器(发送保持寄存器(THRTHR)BASE+0BASE+0要要发发送送的的数数据据写写入入此此寄寄存存器器。当当发发送送移移位位寄寄存存器器TSRTSR空时,空时,THRTHR中的内容移入中的内容移入TSRTSR被发送出去。被发送出去。只有只有THRTHR空时,空时,CPUCPU才能写入下一个要发送的数据才能写入下一个要发送的数据接收缓冲寄存器(接收缓冲寄存器(RBRRBR)BASE+0BASE+0RSRRSR收收到到一一个个完完整整的的数数据据后后,就就将将其其送送入入RBRRBR中中。CPUCPU可从可从RBRRBR中读取收到的数据。中读取收到的数据。RBRRBR只只能能缓缓冲冲一一个个数数据据,当当CPUCPU未未能能及及时时取取走走上上一一个个数据,下一个数据又送入数据,下一个数据又送入RBRRBR时,会产生溢出错时,会产生溢出错MODEM控制寄存器控制寄存器MCRBASE+4D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D01 :自自测测试试0 :正正常常1 : OUT2为为低低1 : /OUT1为为低低1 : /RTS为为低低1 : /DTR为为低低恒为恒为0产生产生RTS、DTR信号信号产生产生OUT1、OUT2信号信号设置循环自检状态设置循环自检状态Modem状态寄存器(状态寄存器(MSR)BASE+6反映反映RS232接口的状态接口的状态CTSDSRRIRLSDCTSD7 D6 D5 D4 D3 D2 D1 D0RLSDRIDSR反映4个引脚的当前状态(反相值)反映了自上次读MSR后这4个引脚是否发生了变化(1发生了变化)MODEM控制状态寄存器控制状态寄存器MSRD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D01 : /RLSD变变化化过过1 : /RLSD为为低低0 : /RLSD为为高高1 : /RI为为低低0 : /RI为为高高1 : /RSR为为低低0 : /DSR为为高高1 : /CTS为为低低0 : /CTS为为高高1 : /RI变变化化过过1 : /DSR变变化化过过1 : /CTS变变化化过过反映反映RS232接口的状态接口的状态中断允许寄存器中断允许寄存器IERD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D01 :允允许许MODEM中中断断1 :允允许许接接收收错错中中断断1 :允允许许发发送送中中断断1 :允允许许接接收收中中断断恒为恒为0决定哪类中断可以产生(也可禁止所有中断产生)决定哪类中断可以产生(也可禁止所有中断产生)中断识别寄存器中断识别寄存器IIRD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0中断中断中断中断 源源源源有有有有/ /无无无无1 :有有中中断断请请求求0 :无无中中断断请请求求恒为恒为000:MODE中断中断01:发送中断:发送中断10:接收中断:接收中断11:数据错中断:数据错中断用于识别产生中断的原因用于识别产生中断的原因波特率发生器波特率发生器时钟源频率时钟源频率1.8432MHz时钟频率是数据传送波特率的时钟频率是数据传送波特率的16倍倍分频系数分频系数=1843200/(波特率(波特率*16)波特率与分频系数对应表波特率与分频系数对应表波特率波特率分频器分频器DLM(H)分频器分频器DLL(L)5009H00H7506H00H11004H17H15003H00H30001H80H60000HC0H120000H60H180000H40H240000H30H360000H20H480000H18H720000H10H960000H0CH1152000H0AH1920000H06H2304000H05H5760000H02H11520000H01H8250发送数据的工作过程发送数据的工作过程1 1)CPU(CPU(数据数据) )82508250的的THR THR ;2 2)TSRTSR移移空空时时,THR THR TSRTSR,LSRLSR中中“数数据据发发送送保保持持寄寄存存器器空空” ” 状态位置位状态位置位 ;3 3)TSRTSR根据根据LCRLCR中规定的格式从低到高逐位发送数据中规定的格式从低到高逐位发送数据 ;4 4)LSRLSR中中“数数据据发发送送保保持持寄寄存存器器空空” ” 状状态态位位可可用用来来产产生生中中断断,也可查询该状态位,以实现数据的连续发送。也可查询该状态位,以实现数据的连续发送。TSRTHR串行数据输出并行数据LSRINTLCR数据状态1)2)3)2)4)4)8250接收数据的工作过程接收数据的工作过程1 1)SINSIN引脚上的串行数据逐位进入引脚上的串行数据逐位进入RSRRSR;2 2)RSRRSR根根据据LSRLSR中中规规定定的的数数据据位位数数确确定定是是否否收收到到了了一一个个完完整整的的数据,收到后将数据数据,收到后将数据RBRRBR;3 3)RBRRBR收收到到RSRRSR的的数数据据后后,将将LSRLSR寄寄存存器器中中“接接收收缓缓冲冲寄寄存存器器满满”的状态位置位;的状态位置位;4 4)LSRLSR中中“接接收收缓缓冲冲寄寄存存器器满满”状状态态位位可可用用来来产产生生中中断断,也也可可查询该状态位,以实现数据的连续接收。查询该状态位,以实现数据的连续接收。RSRRBR串行数据输入并行数据LSRINTLCR数据状态1)2)3)4)8250初始化及应用编程初始化及应用编程8250 的的初初始始化化流程流程使LCR的最高位1写除数寄存器写LCR寄存器,同时使LCR的最高位0写MCR寄存器写IER寄存器8250初始化初始化8250串串口口芯芯片片的的初初始始化化编编程程就就是是设设置置波波特特率率、确定串行通信的确定串行通信的数据帧格式数据帧格式、中断的设置中断的设置等。等。【例例1】要要求求串串行行数数据据帧帧包包含含8位位有有效效数数据据、1位位停停止止位位、采采用用奇校验奇校验方式,请编写满足该要求的方式,请编写满足该要求的8250/16550的初始化程序的初始化程序根根据据线线控控寄寄存存器器LCR的的约约定定,控控制制字字为为00001011B,初初始始化程序如下:化程序如下:MOVAL,00001011B;控制字;控制字MOVDX,3FBH;线控寄存器端口地址;线控寄存器端口地址OUTDX,AL;写入控制字;写入控制字编写设置波特率为编写设置波特率为9600的初始化程序。的初始化程序。根据公式计算,根据公式计算,波特率为波特率为9600时,时,分频值为分频值为000CHMOV AL,10000000B;设置波特率时;设置波特率时;要求;要求特征位特征位DLAB为为1MOV DX,3FBH;线控寄存器端口地址;线控寄存器端口地址OUTDX,AL;写入特征位写入特征位MOV AL,0CH;波特率;波特率分频值低字节分频值低字节MOV DX,3F8H;分频值低位端口地址;分频值低位端口地址OUTDX,AL;写入分频值低位;写入分频值低位MOV AL,00H;波特率;波特率分频值高字节分频值高字节INCDX;分频值高位端口地址;分频值高位端口地址OUTDX,AL;写入分频值高位;写入分频值高位例例用用BIOS功能初始化功能初始化8250PC机有两个串行接口:机有两个串行接口:COM1(基地址基地址3F8H),COM2(基地址基地址2F8H)BIOS通过中断通过中断14H提供串行通信功能提供串行通信功能功能功能0:初始化串行接口:初始化串行接口功能功能1:发送一个字符:发送一个字符功能功能2:接收一个字符:接收一个字符功能功能3:读串行接口状态:读串行接口状态INT14H仅提供了查询方式的通信服务仅提供了查询方式的通信服务要使用中断方式进行发送和接收必须自行编程要使用中断方式进行发送和接收必须自行编程用用BIOS功能初始化功能初始化8250功能功能0(初始化)的入口参数为:(初始化)的入口参数为:AH=0AL=初始化参数初始化参数DX=串口编号(串口编号(0=COM1,1=COM2)初始化参数定义如下:初始化参数定义如下:D7 D6 D5 D4 D3 D2 D1 D0波特率1001200101240011048001119600奇偶校验x0无校验01奇校验11偶校验数据位数005位016位107位118位停止位01位12位MOV AH, 0MOV AL, 初始化参数MOV DX, 0INT 14H8250的数据发送程序的数据发送程序(查询查询)LEASI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVDX,BASE+5;LSR地址地址INAL,DXTESTAL,00100000B;THR空空?JZL1LODSBMOVDX,BASE+0;THR地址地址OUTDX,ALLOOPL1THR空?输出一个字节输出完?NYYN8250的数据接收程序的数据接收程序(查询查询)LEADI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVDX,BASE+5;LSR地址地址INAL,DXTESTAL,00011110B;有错误有错误?JNZERRORTESTAL,00000001B;收到数据收到数据?JZL1MOVDX,BASE+0;RBR地址地址INAL,DXSTOSBLOOPL1有错误?读入数据收到数据?NYYN错误处理接收完?NY用用BIOS功能发送功能发送/接收数据接收数据通过通过COM1发送数据:发送数据:LEASI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVAH,1;功能功能1MOVDX,0;COM1LODSB;数数据据在在AL中中INT14H;发送发送LOOPL1通过通过COM1接收数据:接收数据:LEADI,DATA_BUFFERMOVCX,DATA_BYTESL1:MOVAH,3;功能功能3MOVDX,0;COM1INT14H;读接口状态读接口状态TESTAH,00011110B;有错误有错误?JNZERRORTESTAH,00000001B;有数据有数据?JZL1MOVAH,2;功能功能2MOVDX,0;COM1INT14H;接收数据接收数据STOSB;保存数据保存数据LOOPL18250通信编程通信编程对对82508250编编制制通通信信软软件件时时,首首先先应应对对芯芯片片初初始始化化,然然后后按按程程序查询或中断方式实现通信。序查询或中断方式实现通信。 1. 82501. 8250初始化初始化 (1 1)设置波特率设置波特率 (2 2)设置串行通信数据格式设置串行通信数据格式 (3 3)设置工作方式设置工作方式 2. 2. 程序查询方式通信编程程序查询方式通信编程 3. 3. 用中断方式编程用中断方式编程(1 1)初始化初始化8259A8259A中断控制器中断控制器(2 2)设置中断向量设置中断向量IR4 IR4 (3 3)设置允许设置允许/ /屏蔽位屏蔽位 (4 4)82508250重新响应中断请求重新响应中断请求 设置波特率设置波特率例如,设波特率为例如,设波特率为9600,则波特率因子,则波特率因子N=12MOVDX,3FBHMOVAL,80H;设置波特率;设置波特率OUTDX,ALMOVDX,3F8HMOVAL,12OUTDX,ALINCDXMOVAL,0OUTDX,AL;3F9H送送01. 82501. 8250初始化初始化初始化初始化设置串行通信数据格式设置串行通信数据格式例如,数据格式为例如,数据格式为8位,位,1位停止位,奇校验。位停止位,奇校验。MOVAL,0BHMOVDX,3FBHOUTDX,AL设置工作方式设置工作方式(MODEM控制寄存器)控制寄存器)无中断:无中断:MOVAL,3;OUT1、OUT2均为均为1MOVDX,3FCHOUTDX,AL有中断:有中断:MOVAL,0BH;OUT2为为0,允允许许INTRT去去申申请请中中断断MOVDX,3FCHOUTDX,AL循环测试:循环测试:MOVAL,13HMOVDX,3FCHOUTDX,AL2程序查询方式通信编程程序查询方式通信编程采采用用程程序序查查询询方方式式工工作作时时,CPU可可以以通通过过读读线线路路状状态态寄寄存存器器(3FDH)查查相相应应状状态态位位(D0与与D5位位),来来检检查查接接收收数数据据寄寄存存器器是是否否就就绪绪(D0=1)与与发发送送保保持器是否空(持器是否空(D5=1)。)。发送程序:发送程序:TR:MOVDX,3FDHINAL,DXTESTAL,20HJZTRMOVAL,SI;从;从SI中取出发送数据中取出发送数据MOVDX,3F8HOUTDX,AL接收程序:接收程序:RE:MOVDX,3FDHINAL,DXTESTAL,1JZREMOVDX,3F8HINAL,DXMOVDI,AL;读入数据存入;读入数据存入DI中中初始化初始化8259A中断控制器中断控制器MOVAL,13H;单片使用,需要;单片使用,需要ICW4MOVDX,20HOUTDX,AL;ICW1MOVAL,8;中断类型号为;中断类型号为08H0FHINCDXOUTDX,AL;ICW2INCAL;缓冲方式,;缓冲方式,8088/8086(1X01)OUTDX,AL;ICW4MOVAL,8CH;允许;允许0,1,4,5,6级中断级中断OUTDX,AL;送中断屏蔽字;送中断屏蔽字OCW13. 3. 用中断方式编程用中断方式编程用中断方式编程用中断方式编程设置中断向量设置中断向量IR4对对IR4,中中断断类类型型号号为为0CH,0CH4=30H。因因此此,应应在在30H、31H存存放放IP值值,32H、33H存存放放CS值值。设中断服务程序入口地址为设中断服务程序入口地址为2000H:100HXORAX,AXMOVDS,AXMOVAX,100HMOVWORDPTR0030H,AX;送送100H到到00030H和和00031H内存单元中内存单元中MOVAX,2000HMOVWORDPTR 0032H, AX; 送送 2000H到到 00032H和和00033H内存单元中内存单元中设置允许设置允许/屏蔽位屏蔽位对对8250送送中中断断允允许许寄寄存存器器(3F9H)设设置置允允许许/屏屏蔽位。例如,允许发送与接收中断请求。蔽位。例如,允许发送与接收中断请求。MOVAL,3MOVDX,3F9HOUTDX,AL对对8259A发发EOI命令命令在在中中断断结结束束返返回回时时,需需要要对对8259A发发EOI命命令令,保证保证8250可以重新响应中断请求。可以重新响应中断请求。MOVAL,20HMOVDX,20HOUTDX,AL ;发;发EOI命令,命令,OCW2IRET;开中断允许,并从中断返回;开中断允许,并从中断返回8250应用举例应用举例程程序序设设计计要要求求:在在IBMPC机机上上用用汇汇编编语语言言按按查查询询方方式式编编制制一一个个发发送送与与接接收收程程序序,它它能能把把键键入入的的每每一一个个ASCII字字符符发发送送出出去去,并并显显示示在在CRT上上,同同时时能能把把接收到的每一个字符也以接收到的每一个字符也以ASCII码形式显示在码形式显示在CRT屏幕上。屏幕上。设设:数数据据传传送送速速率率为为9600波波特特:通通信信格格式式为为8位位/每每字字符符,1位位停停止止位位,奇奇校校验。验。KEY:MOVDX,3FBHMOVAL,80HOUTDX,ALMOVDX,3F8HMOVAL,12OUTDX,AL;写入对应波特率为;写入对应波特率为9600的波特因子的低的波特因子的低8位位INCDXMOVAL,0OUTDX,AL;写入波特因子的高;写入波特因子的高8位位MOVAL,0BHMOVDX,3FBHOUTDX,AL;8位字符,位字符,1位停止位,奇校验位停止位,奇校验8250应用举例(续应用举例(续1)MOVAL,13HMOVDX,3FCHOUTDX,AL;循环测试;循环测试CHECK:MOVDX,3FDHINAL,DX;读线路状态寄存器;读线路状态寄存器TESTAL,1H;查接收缓冲器是否满,若满转接收子;查接收缓冲器是否满,若满转接收子程序程序JNZREVTESTAL,20H;查发送缓冲器是否空,不空转;查发送缓冲器是否空,不空转CHECKJZCHECKTR:MOVAH,1;读键盘缓冲器内容,若有键按下,则;读键盘缓冲器内容,若有键按下,则ZF标志为标志为0,且,且AL=字符码字符码INT16HJZCHECK;如;如ZF=1,转,转CHECKMOVDX,3F8HOUTDX,AL;将键入代码发送出去;将键入代码发送出去8250应用举例(续应用举例(续2)JMPCHECKREV:MOVDX,3F8HINAL,DX;读入接收字符;读入接收字符ANDAL,7FH;屏蔽掉;屏蔽掉D7MOVBX,0041H;BH=00H,选选0页页;BL=41H,显显示示属属性(红底兰字)性(红底兰字)MOVAH,14 ;用中断调用显示接收到的字符;用中断调用显示接收到的字符INT10HJMPCHECK
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号