资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,Page,*,点击此处结束放映,第 11 章 串行通信及接口电路,串行通信,11.1,Intel 8251A可编程通信接口,11.2,11.1 串行通信,11.1.1 概述,CPU和外设之间通信形式:,CPU与外部的信息交换称为通信(Communication)。,基本的通信方式有两种,:,并行通信数据的各位同时传送;,串行通信数据一位一位顺序传送。异步通信,同步通信,并行通信与串行通信方式,1、串行通信中使用的术语:,(1)发送时钟和接收时钟:,二进制数据序列在传输线上是以,数字信号,形式出现,即高电平表示二进制数1,低电平表示二进制数0。而且,每一位持续的时间是固定,的。,在发送时是以发送时钟作为数据位的划分界限。,在接收时是以接收时钟作为数据位的检测。,发送时钟,:并行的数据序列送到移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由发送时钟周期划分。,接收时钟:,接收时钟作为移位寄存器的触发脉冲将串行数据逐位打入移位寄存器,转换成并行数据。,REC PROCFAR,由外设送往825lA的,当为低电平时,允许825lA执行发送操作。,在具体使用时必须对它进行初始化编程,以确定它的具体工作方式。,MARK(即表示为逻辑1)=-3V-25V,例:8251A接收数据,异步传送,波特率因子64,采用偶校验,2位停止位,6位数据(数据端口地址880H,控制端口地址881H),RS 232C接口,REC PROCFAR,这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。,CTS#清除请求发送信号。,MOVAL,0CFH ;,MOVSI,300H ;,(7)出错检测:具有奇偶、溢出和帧错误等检测电路。,5 8251应用举例,(2)DTE和DSE,数据终端设备(DTE):,是对属于用户所有联网设备和工作站的统称。,数据装置(DSE):,是对网络设备的统称,该设备为用户设备提供人网的连接点。,自动呼叫应答设备,调制解调和其他一些中间设备均属DSE。,信道:,是传输信息所经过的路径,是连接2个,DTE的线路,。它包括传输介质和有关的中间设备。,DTE,数据终,端设备,DTE,数据终,端设备,DSE,DSE,信道,2.同步通信与异步通信,(1),非同步(异步)通信ASYNC(Asynchronous Data,Communication),用,一个起始位,表示字符的开始,用,停止位,表示字符的结束。,一帧:,从起始位开始到停止位结束的时间。,异步帧格式:,起始位(1位)+数据位(58位),+奇偶校验位(无/1位)+停止位(1、1.5或2位),一个字符:,一帧。,如:一位起始位,7位数据位,1位奇偶校验位,一位停止位;则一个字符(一帧)由10个二进制位组成。,异步通信格式,在异步通信时,在CPU与外设之间必须有三项规定:,字符格式:,字符的编码形式、奇偶校验形式、起始位和停止位的规定。,例如:,用ASCII编码,字符为7位,加一位奇偶校验位,一位起始位,以及一位停止位,共10位。,数据信号传送速率:,每秒传送的,字符个数,。,波特率:,每秒传送的,二进制位数,。(单位:bps),波特率标准系列:,110,300,600,1200,1800,2400,4800,9600,14.4K,19.2K,28.8K,33.6K,56Kbps,异步通信特点:,传送速度慢,发送端和接收端的时钟,可以独立,发送和接收同步处理简单,适合远距离传输。,波特率和信号传送速率的关系:,例如:数据信号传送的速率是120字符/秒,而每一字符包含10个数据位,则每秒传送的二进制位数(常称为bps,,波特率,)为:,波特率:10120=1200(位/秒)=1200(bps),每一位的传送时间即为:Td=1/1200=0.833(ms),波特率和收、发时钟的关系:波特率因子,b,/s,=,收/发时钟,n,n:,叫波特率因子(可取 1,16,64),波特率因子n=16时,对数据的采样,在异步通信方式进行通信时,,发送端,需要用时钟来决定每1位对应的时间长度,,接收端,也需要用一个时钟来测定每1位的时间长度,前一个时钟叫,发送时钟,,后一个时钟叫,接收时钟,。,这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。这个倍数就称为,波特率因子,。,同步通信特点:,传送速度快,发送端和接收端,必须使用同一个同步时钟信号,,发送和接收同步处理复杂。适合近距离传输。,计算机到计算机之间的通信。,计算机到CRT/外设之间的通信等。,(2)同步通信,在数据块开始处用同步字符来指示开始传送数据。,同步帧格式:,同步字符+【同步字符】+字符块+校验符串,3.异步通信时数据传送方向,单工通信:,两个设备之间只有,一条通信通道,,一个设备固定,发送,一个设备固定接收。,半双工通信:,两个设备之间只有,一条通信通道,,可以由A设,备发送B设备接收,也可以由B设备发送,A设备接收。,全双工通信:,两个设备之间有,两条通信通道,,可以同时双向通信。,4.信号的调制和解调,计算机通信是一种数字信号的通信,如图11-7所示。,RS 232C接口,RS 232C接口,FSK(频移键控)调制法原理,5.串行I/O的实现,并行转串行:,当数据由计算机送至数据终端时,先要把并行的数据转换为串行的再传送;,串行转并行:,在计算机接收由终端送来的数据时,先要把串行的数据转换为并行的数据。,这样的转换可以,用软件,也可以,用硬件,实现。,6.串行通信的校验方法,串行通信主要适用于远距离通信,因而噪声和干扰较大,需要由校验环节。,常用的校验方法有:,奇偶校验,循环冗余校验CRC(Cyclic Redundancy Check)等。,(1)奇偶校验,奇偶校验这种校验方法主要用于,对一个字符的传送过程,进行校验。,在发送时,在每一个字符的最高位之后(发送总是最低有效位D0先发送)都附加一个奇偶校验位,这个校验位本身有可能是“1”或“0”,加上这个校验位,使所发送的任何字符中的“1”的个数始终为奇数奇校验,或偶数偶校验。,接收时,检查所接收的字符连同这个奇偶校验位,其为“1”的个数是否符合规定,若不符合规定就置出错标志,供CPU查询及处理。,奇偶校验位的产生和检验,可用,软件,或,硬件,的方法实现。,(2)循环冗余校验(CRC校验),发送方利用编码理论,对传送的串行二进制码序列,以一定规则产生一些校验码,并将校验码放在二进制码之后,形成符合一定规则的新的二进制码序列(编码),并将新的二进制码序列发送出去;,接受方根据信息与校验码之间所符合的规则进行检测(译码),从而检测出传送过程中是否有错。,11.1.2 串行接口标准EIA RS-232C接口,EIA(Electronics Industries Association)RS(Recommended Standard)-232C是目前最常用的一种串行通信接口。,现在的台式PC机一般有两个RS232串行口COM1和COM2,通常COM1使用的是9针D形连接器,而COM2使用的是老式的DB25针连接器,数据线:发送数据:TxD,接受数据:RxD,地线:,联络控制线:,请求发送RTS#(Request To Send),准许发送CTS#(Clear To Send),数据终端准备好DTR#(Data Terminal,Ready),数据装置准备好DST#(Data Set Ready),载波检测CD#(Carried Detect),振铃信号RI,1、RS-232C常用引脚:,方式选择指令是规定8251的工作方式;,自动呼叫应答设备,调制解调和其他一些中间设备均属DSE。,方式选择指令是规定8251的工作方式;,初始化编程包括:设置方式选择字,请求发送RTS#(Request To Send),1、串行通信中使用的术语:,2 Intel 8251A可编程通信接口,(6)完全双工,双缓冲器发送器和接收器。,3 8251的接口信号,REC PROCFAR,LOOPL2 ;,1、串行通信中使用的术语:,MOVAL,50H ;,例如:规定工作于同步还是异步方式;,用一个起始位表示字符的开始,用停止位表示字符的结束。,OUTDX,AL ;,8251的内部由内部数据总线实现相互之间的通信。,RS-232C对各种信号的规定如下:,(1)在TxD和RxD线上,MARK(即表示为逻辑1)=-3V-25V,SPACE(即表示为逻辑0)=+3V+25V,(2)在RTS#、CTS#、DSR#、DTR#、CD#等线上:,ON=+3V+25V,OFF=-3V-25V,2、RS-232C信号的电气性能:,(3)TTL电平和RS-232C电平转换,MC1488:能实现从TTLRS-232C(发送器),MC1489:能实现从RS-232CTTL(接收器)的器件,,计算机与远程终端和当地终端连接示意图,11.2 Intel 8251A可编程通信接口,11.2.1 8251的基本功能,(1)可用于同步和异步传送。,(2)同步传送:,58位/字符,内部或外部同步,可自动插入同步字符。,(3)异步传送:,58位/字符,时钟速率为通信波特率的1、16或64倍。,(4)可产生中止字符(Break Character);,可产生1、1.5或2位的停止位。可检查假启动位,自动检测和处理中止字符。,(5)波特率:,DC19.2K(异步);DC64K(同步)。,(6)完全双工,双缓冲器发送器和接收器。,(7)出错检测:具有奇偶、溢出和帧错误等检测电路,。,11.2.2 8251的方框图,整个8251可以分成5个主要部分:,接收器:,接受移位寄存器和接收数据寄存器,发送器:,发送数据寄存器和发送移位寄存器,调制控制:,与MODEM连接部分,读写控制,:C/D#、RD#、WR#、CS#等,I/O缓冲器:,状态缓冲器、发送数据/命令缓冲器和接收数据缓冲器。,8251的内部由内部数据总线实现相互之间的通信。,8251方框图,发送缓冲器,接收缓冲器,并串变换寄存器,串并变换寄存器,.,.,.,通信线路,C P U,发送数据,C P U,接收数据,.,.,发送,时钟,接收,时钟,接收,控制,接收,控制,发送器,接收器,1发送器,a.数据输出线TxD,b.发送时钟 TxC,c.发送器准备好 TxRDY,d.发送器空信号 TxEMPY,过程:,TxRDY有效,CPU写数据到82518251发数据,发送完毕,,TxEMPY有效,2接收器,a.数据输入线RxD,b.接收时钟 RxC,c.接收器准备好 RxRDY,过程,8251收数据,RxRDY有效,CPU读8251,3调制解调控制电路,DTR#,数据终端准备好信号。是由825IA送往外设的,表示CPU当前已经准备就绪。,DSR#,数据设备准备好。是外设送往825lA的,表示当前外设已经准备好数据。,8251,Modem,DTR#,DSR#,RTS#,请求发送信号。是8251A送往外设的,表示CPU已经准备好发送。,CTS#,清除请求发送信号。由外设送往825lA的,当为低电平时,允许825lA执行发送操作。,RTS#,CTS#,3.I/O控制,读/写控制逻辑对CPU输出的控制信号进行译码以实现读/写功能。,CS#=0,C/D#=0:实现从8251读、写数据。(数据端口地址A0=0),CS#=0,C/D#=1:实现读8251的状态字,向8251写入方式控制字和命令控制字。(控制端口地址A0=1),11.2.3 8251的接口信号,8251是用来作为CPU与外设或调制解调器之间的接口,所以它的接口信号可以分为两组:,一组为,与CPU接口,的信号:DB7,DB0、CLK、CS#、C/D#、,TxRDY,、TxE、RxRDY、SYNDET,一组为,与外设(或调制解调器)接口,的信号:,DTR#、DSR#,、,RTS#、CTS#、,RxC#、RxD#、TxC#、TxD#,11.2.4 8251的编程,初始化编程,读8251的状态寄存器,8251是一个可编程的多功能通信接口。在具体使用时必须对它进行初始化编程,以确定它的具体工作方式。,初始化编程包括:设置方式选择字,(设置同步字符),设置命令字,例如:规定工作于同步还是异步方式;传送的波特率;字符格式等。,注:写方式选择字和命令字时,C/D#端为“1”,1.方式选择字(写入控制口C/D#=1),时钟频率波特率因子波特率,2.命令字:,在输入同步字符后,或在异步方式时,在方式选择指令后应由CPU输出命令字。,(写入控制口C/D#=1),载波检测CD#(Carried Detect),异步帧格式:起始位(1位)+数据位(58位),在具体使用时必须对它进行初始化编程,以确定它的具体工作方式。,计算机到计算机之间的通信。,(6)完全双工,双缓冲器发送器和接收器。,CPU与外部的信息交换称为通信(Communication)。,全双工通信:两个设备之间有两条通信通道,可以同时双向通信。,MOVDX,308H ;,方式控制字:11110111B,读写控制:C/D#、RD#、WR#、CS#等,(设置同步字符),LOOPL2 ;,可以独立,发送和接收同步处理简单,适合远距离传输。,异步帧格式:起始位(1位)+数据位(58位),(写入控制口C/D#=1),而且每一位持续的时间是固定的。,方式选择指令,是规定8251的工作方式;,命令字直接,使8251处于规定的工作状态,准备接收或发送数据。,3.状态寄存器(读控制口,C/D#=1),8251上还有状态寄存器,CPU可通过I/O读操作把8251的状态字读入CPU,用以控制CPU与8251 之间的数据交换。,注:读状态字时,C/D#端为“1”,例:8251A接收数据,异步传送,波特率因子64,采用偶校验,2位停止位,6位数据(数据端口地址880H,控制端口地址881H),方式控制字:11110111B,命令字:00010100B,MOVDX,881H,MOVAL,0F7H,OUTDX,AL,MOVAL,14H,OUTDX,AL,NEXT:INAL,DX,ANDAL,02H,JZNEXT,MOVDX,880H,INAL,DX,例:8251A发送数据,异步传送,波特率因子64,采用偶校验,2位停止位,6位数据(数据端口地址880H,控制端口地址881H),方式控制字:11110111B,命令字:00110001B,MOVDX,881H,MOVAL,0F7H,OUTDX,AL,MOVAL,31H,OUTDX,AL,NEXT:INAL,DX,ANDAL,01H,JZNEXT,MOVDX,880H,MOVAL,SI,OUTAL,DX,11.2.5 8251应用举例,1.要求,在A、B两台微机之间进行串行通信,,A机发送,B机接收。,要求把A机上开发的应用程序(其长度为2DH)传送到B机中去。,采用异步方式,,字符长度为8位,2个停止位,波特率因子为64,无校验,波特率为4800。,CPU与8251之间采用,查询方式交换数据,。,端口地址分配,是:命令/状态口为309H,数据口为308H。,2.分析:,近距离传输,可以不用MODEM,而,直接互连,。,采用查询方式,接收/发送程序中,只需要检查发送/接收的准备好状态位,是否置位,在准备好时就发送或者接收一个字节。,3.设计,(1)硬件连接,(2)软件编程,接收程序和发送程序分开编写,每个程序段中包括8251A初始化、命令字、状态查询和输入输出几部分。,发送程序(略去堆栈STACK和数据DATA段),CSEG SEGMENT,ASSUME CS:CSEG,TRA PROCFAR,START:MOVDX,309H ;控制口地址,MOVAL,00H,OUTDX,AL,MOVAL,40H ;内部复位,OUTDX,AL,NOP,MOVAL,0CFH ;方式字(异步、2个停止位、字符长度,OUTDX,AL ;为8位,无校验,波特率因子为64),MOVAL,37H ;命令字(RTS#、RR、RxE、DTR#和TxEN置“1”),OUTDX,AL,MOVCX,2DH ;传送字节数,MOVSI,300H ;发送区首地址,L1:MOVDX,309H ;状态口地址,INAL,DX ;输入状态,TESTAL,38H ;检查三个出错标志位,JNZERR ;有错,转出错处理,ANDAL,01H,JZL1 ;发送未准备好,则等待,MOVDX,308H ;数据口地址,MOVAL,SI ;取发送数据,OUTDX,AL ;输出,INCSI,DECCX,JNZL1 ;未发送完,循环,ERR:(略),MOVAX,4C00H,INT21H ;发送完则返回DOS,TRAENDP,CSEGENDS,ENDSTART,接收程序(略去堆栈STACK和数据DATA段),CSEG SEGMENT,ASSUME CS:CSEG,REC PROCFAR,BEGIN:MOVDX,309H,MOV AL,00H ;空操作,OUTDX,AL,MOVAL,50H ;内部复位,OUTDX,AL,NOP,MOVAL,0CFH ;方式控制字,OUTDX,AL,MOVAL,16H ;命令字(ER、RxE、DTR置位),OUTDX,AL,MOVCX,2DH ;置字节数,MOVDI,400H ;接收区首地址,L2:MOVDX,309H ;状态口地址,INAL,DX ;输入状态,TESTAL,38H ;有错误吗,JNZERR ;有错,转至出错处理程序,ANDAL,02H ;接收准备好吗,JZL2 ;未准备好则等待,MOVDX,308H ;数据口地址,INAL,DX ;输入数据,MOVDI,AL ;存入接收缓冲区,INCDI,DECCX,LOOPL2 ;未接收完,循环,ERR:(略),MOVAX,4C00H,INT21H ;接收完则返回DOS,RECNDP,CSEGENDS,ENDBEGIN,
展开阅读全文