资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第八章 串行接口和串行通信,8.1,串行通信的基本概念,一、串行通信基础,串行通信的概念,所谓串行通讯是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。,“,串行,”,是指外设与接口电路之间的信息传送方式,,CPU,与接口之间仍按并行方式工作。,串行通信的概念,信息传输的检错和纠错,串行数据在传输过程中,由于干扰可能引起信息的出错,如何发现传输中的错误,叫,检错,。,发现错误后,如何消除错误,叫,纠错,最简单的检错方法是奇偶校验,即在传送字符的各位之外,再传送,1,位奇,/,偶校验位。可采用奇校验或偶校验。,奇校验,:所有传送的数位(含字符的各数位和校验位)中,,1,的个数为奇数,偶校验,:所有传送的数位(含字符的各数位和校验位)中,,1,的个数为偶数,奇偶校验能够检测出,1,位误码,但是不能纠错。,二、串行数据传输方式,全双工方式,通讯双方能同时进行发送和接收操作,串行数据传输方式,半双工方式,只有,1,根数据线传送数据信号,要求通讯双方的发送和接收由电子开关切换。,单工方式,只允许数据按照一个固定的方向传送,三、信号的调制和解调,数字信号的频带宽,而普通通信线路频带较窄,如电话线频带范围仅,3003400,Hz,所以采用普通通信线路进行远程数据通信时,需要在发送端用调制器(,Modulator,),把数字信号转换为模拟信号,模拟信号经通信线路传送到接收方,接收方再以解调器(,Demodulator,),,把模拟信号变为数字信号。,大多数情况下,调制器和解调器合在一个装置中,称为,调制解调器,Modem,在通讯中,,Modem,起着传输信号的作用,是一种数据通讯设备,简称,DCE,接收设备和发送设备称为数据终端设备,,,简称,DTE,。,信号的调制和解调,传输速率,在串行通讯中,用,波特率,来描述数据的传输速率,波特率,即每秒钟传送的二进制位数,简写为,bps,接收时钟,/,发送时钟是波特率的倍数,称为,波特率因子,。,例如波特率因子为,32,,则,32,个时钟脉冲移位,1,次。,例:波特率,=9600,bps,,,波特率因子,=16,,则,接收时钟和发送时钟频率,=960016=153600,Hz,串行通信的类型,串行通讯可以分为两种类型:,同步通讯,、,异步通讯,异步通讯,一个字符一个字符地传输,每个字符一位一位地传输,传输一个字符时,以,起始位,开始,然后传输字符本身的各位,接着传输,校验位,,最后以,停止位,结束该字符的传输。一次传输的起始位、字符各位、校验位、停止位构成一组完整的信息,称为,帧(,Frame,),帧与帧之间可有任意个,空闲位,异步通讯,异步通讯可以采用正逻辑或负逻辑,异步通讯的信息格式,起始位逻辑,01,位,数据位逻辑,0,或,15,位、,6,位、,7,位、,8,位,校验位逻辑,0,或,11,位或无,停止位逻辑,11,位、,1.5,位或,2,位,空闲位逻辑,1,任意数量,异步通讯,例:传送,8,位数据,45,H,(,0100,0101B,),,奇校验,,1,个停止位,则信号线上的波形为,同步通讯,靠同步字符完成收发双方同步,多个字符成组传送,在每组信息的开始,加上同步字符,字符组和同步字符以及需要的其他字符构成一个信息帧,同步字符 字符,1,字符,2 ,字符,n,校验字符,数据块,串行通信的接口标准,在串行通信中,,DTE,和,DCE,之间的连接要符合接口标准,计算机通信中使用最普遍的是,RS-232C,标准,PC,机上的,COM1,、,COM2,接口,就是,RS-232C,接口,使用,9,针和,25,针连接器,串行通信的接口标准,串行通信的接口标准,TDX,发送,RDX,接收,SG,信号地,DSRDCE,准备好,DTRDTE(,即微机接口电路,如,8250/8251),准备好,RTSDTE,请求,DCE,发送,CTSDCE,允许,DTE,发送,该信号是对,RTS,信号的回答。,DCD,数据载波检出,当本地,DCE,收到对方的,DCE,设备送来的载波信号时,使,DCD,有效,通知,DTE,准备接收,并且由,DCE,将接收到的载波信号解调为数字信号,经,RXD,线送给,DTE,。,RI,振铃信号,当,DCE,收到交换机送来的振铃呼叫信号时,使该信号有效,通知,DTE,已被呼叫。,串行通信的接口标准,RS-232-C,采用负逻辑,且信号电平与,TTL,不兼容,串行接口芯片,8250,、,8251,均使用,TTL,电平,应使用电平转换电路与,RS-232C,连接器连接,。,MC1488,:,TTL,电平,RS232,电平(用于发送方),MC1489,:,TTL,电平,RS232,电平(用于接收方),串行通信的接口标准,串行通信的接口标准,采用,Modem(DCE),和电话网通信时的信号连接,串行通信的接口标准,采用专用线通讯时的信号连接,串行通信的接口标准,无,Modem,的标准连接,串行通信的接口标准,无,Modem,的最简连接,串行通信的接口标准,无,Modem,时,最大通讯距离的计算:,RS-232C,标准规定:当误码率小于,4%,时,要求导线的电容值应小于,2500,PF,。,普通导线的电容值约为,170,PF/M,。,则允许距离,L=2500PF/,(,170PF/M,),=15M,8.2,可编程串行通信接口,8251,通过编程,可以实现异步通讯协议或面向字符的同步通讯协议,波特率:同步方式下:,0-64,Kbps,;,异步方式下:,0-19.2,Kbps,。,同步方式下,每字符为,5,,,6,,,7,,,8,位,能自动检测同步字符,自动添加奇偶校验。,异步方式下,每字符可为,5,,,6,,,7,,,8,位,自动增加起始位、停止位和校验位。,8251,的结构,模式寄存器,:决定工作于同步或异步模式以及接收和发送的字符格式,同步字符寄存器,:存放同步模式下的同步字符,8251,的引脚信号,C/D#:,该信号一般连至地址线,A0,,,用于选择控制端口,/,数据端口。数据输入输出寄存器合用一个端口,控制寄存器与状态寄存器合用一个端口。,TxE,:,通知,CPU,发送移位寄存器空。此时,在状态寄,存器的,TxE,位置,1,。,CPU,可以查询,TxE,信号或状态寄存器的,TxE,位,TxRDY,:,告诉,CPU,,,8251,已准备好发送,,CPU,可以为其提供需要发送的字符,RxRDY,:,通知,CPU,,,8251,已从外部设备收到一个字符,等待,CPU,读取。,CPU,可以查询该信号,或把该信号作为中断请求信号。,SYNDET:,同步检测信号,只用于同步方式,TXC,、,RXC:,8251,没有内置的波特率发生器,必须由外部产生建立波特率的时钟信号,,TXC,、,RXC,通常与,8253,连接,8251,的引脚信号,8251,的命令字与初始化编程,模式寄存器的格式,8251,的命令字与初始化编程,控制寄存器与状态寄存器的格式,8251,的命令字与初始化编程,8251,与,CPU,的数据交换,查询方式,/,中断方式,采用查询方式,在数据交换前应读取状态寄存器。,状态寄存器,D0=1,,,CPU,可以向8251数据端口写入数据,完成串行数据的发送,状态寄存器,D1=1,,,CPU,可以从8251数据端口读出数据,完成一帧数据的接收,8251,的命令字与初始化编程,流程,8251,编程示例,例:编写,8251,异步模式下的接收和发送程序,完成,256,个字符的发送和接收,设端口地址:,208,H,,,209H,,,波特率因子,16,,,1,起始位,,1,停止位,无奇偶校验,每字符,8,位。,MOV DX,209H,MOV AL,40H,;,复位命令。,OUT DX,,,AL,MOV AL,,,01001110B,;,模式字,MOV DX,,,AL,MOV AL,,,0011,,,0111B,;,控制字,OUT DX,,,AL,MOV CX,,,256,;,发送,256,字节,NEXT,:,MOV DX 209H,IN AL,,,DX,;,状态字,AND AL,,,01H,;,TXRDY,?,JZ NEXT,MOV AL,,,CL,MOV DX,,,208H,OUT DX,,,AL,;,发送,LOOP NEXT,发送程序,接收程序,接收,256,字节,放在,buf,中,Data segment,buf DB,256,dup,(?),Data ends,MOV DX,209H,MOV AL,40H,;,复位,OUT DX,,,AL,MOV AL,,,0100,1110B,;,模式字,OUT DX,,,AL,MOV AL,,,0011,0111B,;,控制字,OUT DX,,,AL,MOV CX,,,256,;,接收,256,字节,MOV SI,,,0,NEXT,:,MOV DX,,,209H,IN AL,,,DX,;,状态字,AND AL,,,02H,;,RXRDY,?,JZ NEXT,MOV DX,,,208H,IN AL,,,DX,;,接收,1,字符,MOV,buf,SI,,,AL,INC SI,LOOP NEXT,串行接口内部有,4,个主要寄存器,控制、状态、数据输入、数据输出寄存器,控制寄存器,容纳,CPU,送来的各种控制信息,决定接口的工作方式。,状态寄存器,中的各状态位,指出当前传输状态或错误。,数据输入寄存器,总是和,串入并出,寄存器相连,收完一个字符打入输入寄存器。,两个地址,加上读写信号就可区分这,4,个寄存器(两只读、两只写)。,一,.,全双工方式和半双工方式,单工,只允许数据按照一个固定的方向传送,.,采用这种方式时,已经确定了通信双方的其中一方为接受端,另一方为发送端,且这种确定是不可更改的。,半双工,输入过程和输出过程采用同一通路,收发交替进行,不能同时。,全双工,数据通信系统中,数据的两个传输方向采用不同的通路,可同时收发。,图,8.1,单工、半双工和全双工方式,二,.,信号调制与解调,远距离通信时采用电话线路,数字信号通过电话线路发生畸变,发送端:数字 模拟,(,调制,),接收端,:,模拟 数字,(,解调,),图,8.2,调制和解调示意图,FSK(,频移键控,),是常用方法,“,1”,和“,0”,调制成不同频率的模拟信号。,图,8.3 FSK,调制法原理图,三,.,同步方式和异步方式,1.,同步通信,时,将许多字符组成一个信息组(信息帧)同步字符开头,不允许有间隙,效率高,但要求时钟频率相同。,2.,异步通信,时,两字符间间隔任意,故每个字符前后都需要分隔符,双方时钟相近,3.,波特率,:,.,每秒传输多少位,2,进制数,.,4.,波特率因子,:,每位,2,进制发送时钟周期数,图,8.4,标准的异步通讯数据格式,1,个字符开始传输前,数据线必须为逻辑,“,1”,标识态,。,“,0”,为起始位,。,58,位信息位,。,可选的,奇偶校验位,。,1,,,1.5,,或,2,位,停止位,。,如接着传第,2,个字符,又是起始位,否则为标识态“,1”,同一系统中,上述位数应是固定的。对,8251,A,控制寄存器编程设置这些参数,发送时钟,:发送端用时钟来决定每,1,位对应的时间长度,接收时钟,:接收端也要用一个时钟来测定每一位的时间长度。,波特率因子,这两种时钟的频率可以为位传输率的,11664,倍,大多数串行接口可以检测,三种错误,:,奇偶校验错误、覆盖错、信息帧格式错误,通用异步收发器,(,UART-universal asynchronous receiver&transmitter),:,能实现串并并串转换,并能检测三类错误的部件。,同步传输过程中,一个字符也可,5,8,位,同一过程应不变。,n,位一时间片为一个字符。整个系统由一个,统一的时钟,控制两端采样。,同步传输时,,一个信息帧包含多个字符,,每帧都用同步字符开头。,四有关串行通信的物理标准,人机通信,机机通信,与电话等其他通信设备互联,建立了几个一致的概念和标准。,3,个方面,:传输率、电特性、机械特性,(,信号名称,.,接口标准,),。,1.,传输率,每秒传输多少位,2,进制数,也叫,波特率,。,国际标准的波特率系列:,110.300.600.1200.1800.2400.4800.9600.19,200.,大多数接口的收发波特率可编程分别设定。,例子:,1200,波特率下同步异步传输字符数比较。,2.,RS-232-C,标准,。,信号电平,:,5,15,V,规定为“,1”,,,5,15,V,为“,0”,。,机械特性,:,25,芯扁平插座,。,控制信号的定义,见表,8.9,RS-232-C,的信号定义。,8.2,可编程串行通讯接口,8251,A,一,8251A,的基本性能,8251,A,是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信,基本性能如下,:,通过编程,可以工作在同步方式,也可以工作在异步方式,同步时波特率,0-64,K,异步时,0-19.2,K.,同步方式时,数据位,5,8,位,内部自动检测同步字符实现同步,奇偶校验可选,.,异步方式时,数据位,5,8,位,自动增加,1,位启动位,按程序增加停止位,1 1.5 2,注意,:8251,A,的接口电平和,EIA RS-232-C,所要求的电平是不同的,.,要驱动电路,.,二,.8251,A,的编程结构,图,8.6,是,8251A,的编程结构和外部连接,数据输入缓冲寄存器,和,数据输出缓冲寄存器,使用同一个端口地址,不会混淆,.,接收移位寄存器,将到达,RxD,的串行数据接收之后进行移位,,8,位并行数据进输入缓冲寄存器,通过数据总线传到,CPU,输入过程,。,输出反之,。,控制寄存器,用来控制,8251,A,的工作,内容由程序设定。,状态寄存器,则在,8251,A,的工作过程中为执行程序提供一定的,状态信息。,模式寄存器,的内容决定了,8251,A,同步还是异步模式、字符格式,(,程序设置,),8251,A,的,2,个同步字符寄存器,用来容纳同步方式中所用的同步字符。,三,.8251,A,的功能结构,工作原理上看结构,图,8.7 8251A,的内部工作原理图,8251,A,由,7,个模块,组成,分别为接收缓冲器、接收控制电路、发送缓冲器、发送控制电路、数据总线缓冲器、读写控制,逻辑电路、调制解调控制电路,接收缓冲器,:从,RxD,引腿接收串行数据,串并转换,相当于接收移位寄存器,接收控制电路,:配合接收缓冲器,管理有关接收功能:,。异步方式下,芯片复位后,检测输入信号中的有效,”,1,”,一旦找到,0,即启动位,.,。消除假启动干扰,。对收到的信息进行奇偶校验,并由校验结果建立相应状态位。,。检测停止位,并由结果建立状态位。,发送缓冲器,把,CPU,来的信息并串转换加上控制信息,从,TxD,发出,(,发送移位,),发送控制电路,:配合发送缓冲器工作,控制管理串行发送功能,如下:,异步方式下,为数据加上起始位、校验位、停止位,同步方式下,插入同步字符,在数据中插入校验位。,数据总线缓冲器,把,8251,A,和系统数据总线相连,传送数据、状态、命令信息,读写控制逻辑,配合数据总线缓冲器工作,如下:,接收写信号,WR,,,并将来自数据总线的数据和控制字写入,8251,A,接收读信号,RD,,,并将数据或状态从,8251,A,送往数据总线,接收控制数据信号,C,D,与,读写信号,组合,区分数字、状态命令,接收时钟信号,RxC,,,完成,8251,A,的内部定时,接收复位信号,RESET,,,使,8251,A,处于空闲状态,调制解调电路用来使,8251,A,与调制解调器的连接。,四,.,8251,A,的发送和接收,异步接收方式,8251,A,将,RxD,线上检测到的低电平作为起始位,启动接收控制电路中的内部计数器,(,波特率,16,时记到,8),,非干扰则装配字符,去掉附加位,变成并行,同时发出,RxRDY,信号到,CPU,。,异步发送方式,当程序置,TxEN,和,CTS,有效后,开始发送过程。,例、异步传输过程:设每个字符对应,1,个起始位、,7,个信息位、,1,个奇偶校验位和,1,个停止位,如果波特率为,1 200,bps,,,那么,每秒钟能传输的最大字符数为,1 200/10,120,个。,例二,.,同步传输:用,1 200,bps,的波特率工作,用,4,个同步字符作为信息帧头部,但不用奇偶校验,那么,传输,100,个字符所用的时间为,7(100+4)/1 200,0.606 7,s,,,这就是说,每秒钟能传输的字符数可达到,100/0.606 7,165,个。,可见,在同样的传输率下,同步传输时实际字符传输率要比异步传输时高。,同步接收方式,8251,A,首先搜索同步,(,双,),字符,收到后,SYNDET,升为高电平,同步已实现。,在外同步方式下,和上面不同。,实现同步之后,接收器和发送器之间开始数据的同步传输。,同步发送方式,也要在程序置,TxEN,和,CTS,有效后,才开始发送。如,CPU,来不及则发送同步字符,五,8251A,的对外信号,分为两组,:8251,A,对,CPU,和,8251,A,对外设,(,或调制解调器,),1.,8251,A,和,CPU,之间的连接信号,分为,4,类:,片选信号,CS,:,CPU,的地址信号译码后得到。,CS,为高电平时,8251,数据线高阻状态,数据信号,8251,有,8,根数据线,D,7,-D,0,与系统数据总线相连,不只传输数据,.,读写控制信号,RD,低电平有效,通知,8251,CPU,当前正在从,8251,读取数据或状态,.,WR,低电平有效,通知,8251,CPU,当前正在往,8251,写入数据或命令信息,.,C/,D,控制数据信号,CPU,送往,8251,区分正在读写数据还是命令状态,收发联络信号,TxRDY,:,发送准备好告诉,CPU,,,8251,已准备好发送一个字符,此时,CTS,、,TxDRY,有效,,且,发送缓冲器为空,,,TxDRY,可作中断,请求或供查询。,TxE,:,发送器空信号,当,8251,从,CPU,得到一个字符时变低,送出后变高。,RxRDY,:,接收器准备好,表示,8251,已从外设或调制解调器收到字符供,CPU,SYNDET,:,同步检测信号只用于同步方式,内同步时输出,外同步时输入,.,六,.,8251,A,和外设之间的连接信号,(,也分两类,),收发联络信号,DTR,:,数据终端准备好,data terminal ready,由,8251,送往外设,通知外设,CPU,就绪,DSR,:,数据设备准备好,data service ready,外设送给,8251,,,通知,CPU,外设就绪,RTS,:,请求发送信号,require transmit signal,通过编程设定,告知,CPU,就绪,CTS,:,清除请求发送信号,clear to send,是对,RTS,的响应信号,外设送,8251,可开始发送,以上,4,个信号是,CPU,和外设联络用的,除,CTS,低电平,外,均非必须,.,数据信号,TxD,:,发送器数据信号端,CPU,送往,8251,的并行数据串行后由此送往外设,.,RxD,:,接收器数据信号端,接收外设来的串行数据,进,8251,后编程并行,.,8251,除与,CPU,及外设的连接信号外,还有电源,地,3,个时钟端,.,TxC,:,发送时钟同步时等于波特率,异步时为其,1,,,16,,,64,倍,编程指定,RxC,:,接收时钟同上。,TxC,和,RxC,往往连在一起,,CLK,为另一个较高频率外部时钟,同步方式下,TxC,和,RxC,即收发一个字符的时间等于时钟周期,8.3 8251,A,的编程,一,.,模式寄存器的格式,当模式寄存器最低两位为,0,时,8251,便工作在同步模式,否则异步模式,.,在同步模式中,接收和发送的波特率,(,移位寄存器的移位率,),分别和,TxC,和,RxC,引腿上的输入时钟的频率相等,异步时波特率因子用最低两位确定。,时钟频率波特率因子,波特率,SYNDET,是同步检测信号,内同步时输出,外同步时是输入信号。,二,控制寄存器的格式,(,命令控制字,),图,8.11,是,8251,A,控制寄存器的格式,三,.,状态寄存器的格式,图,8.12,是,8251,A,状态寄存器的格式,TxRDY,1,的条件:数据缓冲器空,CTS,TxEN,=1CPU,往,8251,输出一字符后,,TxRDY,0,状态位,RxRDY,1,指出接口中已收到一个字符,欲送,CPU,。,两信号及引腿均可供编程利用。,状态寄存器的第,2,位,TxE,1,时,指出当前移位寄存器正等待输出缓冲寄存器送一个字符过来。同步模式下,TxE,1,时,没事干就发同步字符。,状态寄存器的,3,、,4,、,5,位分别作为奇偶、超越、帧格式错误标志。,四,.,关于,8,位接口芯片和,16,位数据总线的连接问题,大多数,8,位接口芯片有几个端口地址,有奇地址也有偶地址。偶地址对应于数据端口,及地址对应于命令、状态、模式、同步寄存器等。,特别地,8086,CPU,低,8,位数据线上的数据总是写入偶地址单元,或端口。高,8,位数据线对应于奇地址单元或端口。,处理方法是将,A1,线作为端口最低位地址线,则,CPU,侧发两个连续的偶地址到接口就变成了连续的奇偶端口地址。所以传输信息总是出现在低,8,位数据线上,顺利连接。习惯上仍把两个连续的偶地址称为奇地址、偶地址。,五,.,8251,A,的初始化,这么多寄存器只有两个地址,编程时到底写入那一个呢,?,8251,初始化编程必须遵守以下,3,个约定,:,芯片复位后,第,1,次用奇地址写入的作为模式字进入模式寄存器,.,如模式中规定为同步模式,接着往奇地址端口写入的,1,或,2,个为同步字符,这之后只要不是复位命令,往奇地址端口写入的控制字送控制寄存器,而往偶地址写入的送数据输出缓冲寄存器,.,如为异步模式设置模式字后接着便设置控制字,.,图,8.13,是,8251A,的初始化流程图,8.4,串行接口标准,一、,串行接口标准,RS,232C,1969,年美国电子工业协会制定的一种串行物理接口标准,最初为连接计算机主机和,CRT,终端而设计。定义了数据终端(,DTE,),和数据通信设备,(,DCE),之间串行通信的接口信息,15,m,.,1.,信号电平标准,RS-232C,采用负电平逻辑,,TTL,电平不兼容。,“,1”,5,15,V,;,“0”,5,15V,转换,TTLRS-232C,,用,MC1488,转换,RS-232C TTL,,用,MC1489,图,8.14 TTL,和,RS-232C,之间的电平转换电路,2.RS-232C,的连接方式,a.,简单,RS-232C,连接(,3,线连接法),2,号引脚,发送数据,3,号引脚,接收数据,b,.,8,条信号,线,RS-232C,连接方法(,8,线连接法),图,8.15 RS-232C,连接方法,3.,远程连接,当地终端直接通过,RS,232C,连接;远程终端电话线连接。,图,8.16,为计算机与当地终端和远程终端的连接方法,二,TTLRS-232C,电平转换芯片,MAX232,MAXIM,公司生产的电平转换芯片,两路,TTL,CMOS,到,RS232,外围电路只要,5,个电容,图,8.17MAX232,芯片,三,.,串行接口标准,RS-449,与,RS-422/485,RS232:15m;20Kb/s;,出现不兼容的,25,芯连接器。电气兼物理标准。,RS449,:,1200m,;,100Kb/s,只是物理标准;,RS422,485,只是电气标准。,RS,449,(,物理标准)见表,8,4,RS-422/485(,电气标准,),差分平衡的电气接口,采用平衡驱动差分接收方法,取消了信号地线,一个驱动器的输出总是另一个驱动器的反向信号,一条表示“,0”,,另一条必为“,1”,。,灵敏度为,0.2,V,为例,,V,+,-V,-,0.2V,表示“,0”,;,V,+,-V,-,-0.2V,表示:“,1”,抗共模干扰电压,长距离、高速传输。,422,全双工,,要用两对差分平衡信号线连接,(,图,8.18,a),485,半双工,,只用一对差分平衡信号线连接,(,图,8.18,b),表,8-6,RS-422,与,RS-485,电气参数的比较,1.,RS,232,与,RS-422/485,的转换,232,使用广泛,相距较远的,232,设备不能直接互连,,232,422,转换接头可以实现,232-422,远距离传输,实际是通过光隔离将,232,的,1498,与,422,的,75174,,,1488,与,422,的,75175,相连,1.,MAX485,芯片与,RS485,通信网络,MAX485,可作为,RS485,串行通信接口标准的接口电路,差分平衡系统,抗干扰,达,1.2,KM,,,MAX485,可用于合用线系统,双绞线为传输线,组成网络,可挂,32,个站点,驱动器被禁止时,输出为高阻。,120,m,时,,1,Mb/s,;,1200m,时,,100,kb/s,;,大于,1200,线转发器,灌区水情测报系统,异步模式下的初始化程序举例,举例:模式字,FAH,、,控制字写入奇地址,52,H,,,字符,7,位,偶校验,2,个停止位异步波特率因子为,16,,则控制字为,37,H(,清除出错标志,),启动接收器、发送器,MOV AL,,,0FAH,;,设置模式字,异步模式,波特率因子,16,,用,7,个数据位,偶校验,2,个停止位,OUT 52H,,,AL,MOV AL,,,37H,;,设置控制字使发送启动,接收启动,并设置有关信号,OUT 52H,,,AL,同步模式下的初始化程序举例,例子:同步模式字,38,H,,,2,个同步字符均为,16,H,,,内同步偶校验,7,位数据位,奇地址,52,H,控制字为,97,H,,,错误标志清除,收发启动,告,8251,就绪,MOV AL,,,38H,;,设置模式字,使,8251,处于同步模式,,2,个同步字符,7,个数据位,偶校验,OUT52H,,,AL,;,MOVAL,,,16H,;,两个同步字符均为,16,H,OUT52H,,,AL,;,OUT52H,,,AL,;,MOVAL,,,97H,;,设置控制字,使发送器接收器启动,并设其它有关信号,OUT52H,,,AL,利用状态字进行编程的举例,下面的程序段先对,8251,初始化,然后对状态字测试,以便输入,80,个字符,MOV AL,0FAH,OUT 42H,AL,;,设置模式字,异步模式,波,特率因子为,16,,,7,个数据位,,2,个停止位,偶校验,MOV AL,35H,OUT 42H,AL,;,设置控制字,并启动,MOV DI,0,;,变址寄存器初始化,MOV CX,80,;,共收取,80,个字符,BEGIN:IN AL,42H,TEST AL,02H,JZ BEGIN,;,读状态字并测试,IN AL,40H,;,读取字符,MOV DX,OFFSET BUFFER,MOV DX+DI,AL,;,传输字符,INC DI,;,修改缓冲区指针,IN AL,42H,;,读取状态字,TEST AL,38H,;,测试有无错误,JNZ ERROR,LOOP BEGIN,;,如没有错,则接收下,1,个字符,JMP EXIT,;,如满,8,个字符,则结束,ERROR:CALL ERR_OUT,;,调用出错处理程序,EXIT:,8.3.7 8251,A,的使用实例,图,8.18,a,用,8251,作为,CRT,接口的实际例子,第,1,个程序段,8251,初始化,8251,A,的初始化程序段,INIT,:,XOR AX,,,AX,;,AX,清零,MOV CX,,,0003,MOV DX,,,00DAH,OUT1,:,CALL KKK,LOOP OUT1,;,往控制端口,DAH,送,3,个,0,MOVAL,,,40H,CALL KKK,;,往控制端口送,40,H,复位,MOV AL,,,4EH,CALL KKK,;,设置模式字,异步模式,,波特率因子为,16,,,8,位数据,1,位停止位,MOVAL,,,27H,CALLKKK,;,往设置命令字启动,KKK,:,OUT DX,,,AL,;,将数据输出到指定端口,PUSH CX,MOV CX,,,0002,ABC,:,LOOP ABC,;,等待输出动作完成,POP CX,;,恢复,CX,内容,RET,第,2,个程序段往,CRT,输出一个字符,CHAROUT,:,MOV DX,,,0DAH,STATE,:,IN AL,,,DX,;,输入状态字,TEST AL,,,01,JZ STATE,;,不断测试状态位,MOV DX,,,0D8H,;,数据端口地址送,DX,POPAX,;,AX,中为要输出的字符,OUTDX,,,AL,;,往端口中输出一个字符,
展开阅读全文