资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,微型计算机原理及其应用,第九章:串行通信和串行接口,8251A,合肥工业大学计算机与信息学院,石 雷,1,第九章:串行通信和串行接口,8251A,串行通信基本概念,串行通信接口原理,可编程串行接口芯片,8251A,2,第九章:串行通信和串行接口,8251A,串行通信基本概念,串行通信接口原理,可编程串行接口芯片,8251A,3,第九章:串行通信和串行接口,8251A,串行通信基本概念,串行数据传送,数据在单条1位宽的传输线上,一位一位地按顺序分时传送。以1字节为例,在串行传送中,1字节的数据要通过一条传输线分8次由低位到高位按顺序一位一位地传送。,源,目的,0,1 1,0,1,0,1,0,4,第九章:串行通信和串行接口,8251A,串行通信基本概念,同步通信和异步通信,1.异步通信(,ASYNC),异步通信以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而在同一个字符中的两个相邻位代码间的时间间隔是固定的。,异步通信的每个字符由4部分组成:,1个起始位,低电平。后面紧跟最低数据位;,58个数据位(如,ASCII,码为7位);,1个奇偶校验位;,1、1.5或2个停止位,高电平。,两个相邻字符之间的间隔叫空闲位,可以有任意多个。,5,第九章:串行通信和串行接口,8251A,串行通信基本概念,同步通信和异步通信,1.异步通信(,ASYNC),波特率:,单位时间内传送二进制数据的位数。它是衡量串行数据传送速度的重要参数。,单位:位,/,秒,计算方法:波特率=数据传送速率(字符/秒),字符位数,例:120字符/秒10=1200位/秒=1200波特,异步通信的传送速度一般在5019200波特之间,常用于计算机和,CRT,终端、字符打印机之间的通信。,位周期,Td,:,是指每个数据位传送所需要的时间,它与波特率的关系是:,Td=1/,波特率。它用以反映连续二次采样数据之间的间隔时间。,波特率因子:,是指时钟脉冲频率与波特率的比。,6,第九章:串行通信和串行接口,8251A,串行通信基本概念,同步通信和异步通信,2.,同步通信(,SYNC),同步通信以一个帧为传输单位,每个帧中包含有多个字符。在通信过程中,每个字符间的时间间隔是相等的,而且每个字符中各相邻位代码间的时间间隔也是固定的。,同步传送速度高于异步传送,可达500千波特。实现时要求有时钟对发送端及接收端进行同步,硬件结构复杂。常用于计算机之间的通信,或主机与外设间的通信。,7,第九章:串行通信和串行接口,8251A,串行通信基本概念,同步通信和异步通信,简单的说,所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的。所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。,8,第九章:串行通信和串行接口,8251A,串行通信基本概念,串行通信的传送方向,单工:,发送与接收端之间只有一根传输线,且只能单向传送。,半双工:,发送与接收端之间只有一根传输线,但能分时交替进行双向传送。,全双工:,发送与接收端之间有两条传输线,能双向同时传送。,T,R,T,R,R,T,T,T,R,R,9,第九章:串行通信和串行接口,8251A,串行通信基本概念,串行通信接口原理,可编程串行接口芯片,8251A,10,第九章:串行通信和串行接口,8251A,串行通信接口原理,通用异步收发器,(UART),的组成,接收器:接收,串,并转换。,发送器:并,串转换,发送。,控制器:接收,CPU,控制信号并控制执行,输出状态及联络控制信号。,11,第九章:串行通信和串行接口,8251A,串行通信接口原理,通用异步收发器,(UART),的功能,双向的:,输入异步串行码并转换为,CPU,所需并行码;,CPU,并行码转换成串行码并输出。,接收过程:,接收器始终监视串行输入端,当发现起始位(下跳变)时,开始字符接收过程。接收过程中,自动检测停止位(高),如果发现停止位为低,则发出一个出错状态位。,二级缓冲结构:,控,制,接收数据寄存器,接收移位寄存器,8,并行数据输出到,CPU,串行数据输入,接收时钟,接收寄存,器禁止,差错,检测,复位,数据接收,状态标志禁止,溢出错 奇偶错 帧错,12,第九章:串行通信和串行接口,8251A,串行通信接口原理,接收过程中数据的同步方法,用外加的接收,(,发送,),时钟进行同步。,外部时钟和数据位周期的关系(图示为,K=16):,T,c,=T,d,/K (K=16,或64),T,c,外部时钟,,T,d,数据位周期,,K,波特率因子,13,第九章:串行通信和串行接口,8251A,串行通信接口原理,UART,常设的错误标志,奇偶错误:,接收时对字符中“1”的个数进行统计,,若与字符格式中设的奇偶性不一致,则置位该标志,发奇偶错信息。,帧错误:,接收的字符格式不符合规定,(,如无停止位等,),,则置位该标志,发帧错误信息。,溢出,(,丢失,),错误:,当接收到第二个字符的停止位时,,CPU,还未取走前一个接收的字符,就会出现数据丢失现象,则置位该标志。,14,第九章:串行通信和串行接口,8251A,串行通信基本概念,串行通信接口原理,可编程串行接口芯片,8251A,15,第九章:串行通信和串行接口,8251A,8251A,8251A,的基本功能,两种工作方式:,同步方式,异步方式。,同步方式下的格式,:,每个字符可以用,5,、,6,、,7,或,8,位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,,8251A,也允许同步方式下增加奇,/,偶校验位进行校验。,异步方式下的格式,:,每个字符也可以用,5,、,6,、,7,或,8,位来表示,时钟频率为传输波特率的,1,、,16,或,64,倍,用,1,位作为奇,/,偶校验。,1,个启动位。并能根据编程为每个数据增加,1,个、,1,5,个或,2,个停止位。可以检查假启动位,自动检测和处理终止字符。,全双工的工作方式,:,其内部提供具有双缓冲器的发送器和接收器。,提供出错检测,:,具有奇偶、溢出和帧错误三种校验电路。,16,第九章:串行通信和串行接口,8251A,8251A,8251A,的内部结构,17,第九章:串行通信和串行接口,8251A,8251A,8251A,的内部结构,数据总线缓冲器,数据总线缓冲器通过8位数据线,D,7,D,0,和,CPU,的数据总线相连,负责把接收口接收到的信息送给,CPU,,或把,CPU,发来的信息送给发送口。还可随时把状态寄存器中的内容读到,CPU,中,在825,lA,初始化时,分别把方式字、控制字和同步字符送到方式寄存器、控制寄存器和同步字符寄存器中。,18,第九章:串行通信和串行接口,8251A,8251A,8251A,的内部结构,读,/,写控制逻辑,接收来自于,CPU,的控制信号,产生内部的控制命令。,接收写信号,WR#,:,并将来自数据总线的数据和控制字写入,8251A,;,接收读信号,RD#,:,并将数据或状态字从,8251A,送往数据总线;,接收控制,/,数据信号,C/,D#,:,高电平时为控制字或状态字;低电平时为数据。,接收时钟信号,CLK,:,完成,8251A,的内部定时;,接收复位信号,RESET,:,使,8251A,处于空闲状态,;,片选信号,CS#,:,片选,。,C/,执行的操作,0,0,0,0,0,1,0,1,1,0,1,0,0,0,1,1,CPU,由8251,A,输入数据,CPU,向8251,A,输出数据,CPU,读取8251,A,的状态,CPU,向8251,A,写入控制命令,19,第九章:串行通信和串行接口,8251A,8251A,8251A,的内部结构,发送器,(,发送缓冲器和发送控制器,),发送缓冲器包括发送移位寄存器和数据输出寄存器,发送移位寄存器通过825,lA,芯片的,T,X,D,管脚将串行数据发送出去。数据输出寄存器寄存来自,CPU,的数据,当发送移位寄存器空时,数据输出寄存器的内容送给移位寄存器。,发送控制电路对串行数据实行发送控制。发送器的另一个功能是发送中止符(,BREAK),,中止符由在通信线上的连续低电平信号组成,它是用来在全双工通信时中止发送终端的,只要8251,A,的命令寄存器的,bit3,为“1”,发送器就始终发送终止符。,20,第九章:串行通信和串行接口,8251A,8251A,8251A,的内部结构,接收器,(,接收缓冲器和接收控制器,),接收缓冲器包括接收移位寄存器和数据输入寄存器。串行输入的数据通过8251,A,芯片的,R,X,D,管脚逐位进入接收移位寄存器,然后变成并行格式进入数据输入寄存器,等待,CPU,取走。接收控制电路是用来控制数据接收工作。,21,第九章:串行通信和串行接口,8251A,8251A,8251A,的内部结构,调制,/,解调器控制逻辑,利用8251,A,进行远距离通信时,发送方要通过调制解调器将输出的串行数字信号变为模拟信号,再发送出去。接收方也必须将模拟信号经过调制解调器变为数字信号,才能由串行接口接收。在全双工通信方式下,每个收、发口都是要连接调制解调器。调制解调器控制电路是专为调制解调器提供控制信号用的。,22,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,23,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,同,CPU,连接的引脚,双向的数据信号线,D,7,D,0,:,8条数据线,,D,7,为最高位,,D,0,为最低位。825,lA,通过这8根线和,CPU,的数据总线相连接,实际上,数据线上不只是传输数据,还传输,CPU,对825,lA,的编程命令字和825,lA,送往,CPU,的状态信息。,片选信号,CS#:,低电平有效,芯片被选中才能工作,如果8251,A,未被选中,数据线,D7D0,将处于高阻状态,读/写信号对芯片都不起作用。,读控制信号,RD#:,输入,低电平有效。当该信号有效时,并且,CS#,也为低电平,,CPU,可以从8251,A,读取数据或状态信息。,写信号,WR#:,输入,低电平有效。当该信号有效时,并且,CS#,也为低电平,,CPU,可以向8251写入数据或控制字。,24,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,同,CPU,连接的引脚,控制/数据信号,C/D#:,输入,分时复用。用来区分当前读/写的是数据还是控制信息或状态信息。当,C/D#,为高电平时,系统处理的是控制信息或状态信息,从,D,7,D,0,端写入8251,A,的必须是方式字、控制字或同步字符。当,C/D#,为低电平时,写入的是数据。,复位信号,RESET:,输入,高电平有效。当该信号为高时,8251,A,实现复位功能,内部所有的寄存器都被置为初始状态。,主时钟信号,CLK:,输入,用于芯片内部的定时。对于同步方式,它的频率必须大于发送时钟,T,X,C,和接收时钟,R,X,C,的30倍。对于异步方式,必须大于它们的4.5倍。8251,A,的时钟频率规定在0.743.1,MHz,的范围内。8251,A,共有三种时钟信号:,CLK、T,X,C,和,R,X,C。,其中发送时钟和接收时钟由波特率和波特率因子来决定。,25,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,MODEM,控制信号,数据终端准备好信号,DTR#,:,输出,低电平有效。是由,8251A,送出的一个通用的输出信号,初始化时由,CPU,向,8251A,写控制命令字来设置。该信号有效时,表示为接收数据做好了准备,,CPU,可以通过,8251A,从调制解调器接收数据。,数据装置准备好信号,DSR#,:,输入,低电平有效。这是由调制解调器或外设向,8251A,送入的一个通用的输入信号,是,DTR,的回答信号,,CPU,可以通过读取状态寄存器的方法来查询,DSR,是否有效。,请求发送信号,RTS#,:,输出,低电平有效。这是,8251A,向调制解调器或外设发送的控制信息,初始化时由,CPU,向,825lA,写控制命令字来设置。该信号有效时,表示,CPU,请求通过,825lA,向调制解调器发送数据。,发送允许信号,CTS#,:,输入,低电平有效。这是由调制解调器或外设送给,8251A,的信号,是,RTS,对的响应信号,只有当,CTS,为低电平时,,825lA,才能执行发送操作。,26,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,发送器有关的引脚,发送数据信号端,T,X,D:,输出。,CPU,送入825,lA,的并行数据,在825,lA,内部转换为串行数据,通过,T,X,D,端输出。,发送器准备好信号,T,X,RDY:,输入,高电平有效。当该信号为高电平时,通知,CPU,8251A,已经准备好发送一个字符,表示,CPU,可以输入数据。所谓发送器准备好,就是控制字的第0位,T,X,EN,为“1时,使8251,A,允许发送,并且调制解调器已做好接收准备,发出信号使8251,A,的,CTS,信号变低为有效,因此,T,X,RDY,为输出缓冲器空与,CTS,与,T,X,EN。T,X,RDY,可作为中断申请信号,也可作为查询方式的联络信号使用。,发送,缓冲,器空,标志,T,x,E,:,输入,控制8251,A,发送器发送字符的速度。对于同步方式,它的输入时钟频率应等于发送数据的波特率,对于异步方式,它的频率应等于发送波特率和波特率因子的乘积。,发送时钟,TxC,#:,输入,可为波特率的1、16或64倍,数据在,TxC,#,的下降沿由发送移位器输出,。,27,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,接收器有关的引脚,接收数据信号端,R,x,D,:,输入。,R,x,D,用来接收外部装置通过传输线送来的串行数据,数据进入,825lA,后转换为并行数据。,接收器准备好信号,R,x,RDY,:,输出,高电平有效。当该信号为高时,表示,825lA,已从外部设备或调制解调器中收到一个字符,等待,CPU,取走。它可以作为中断请求信号或查询联络信号与,CPU,联系。,接收器时钟信号,R,x,C,#,:,输入,控制,8251A,接收字符的速度。和一样,在同步方式时,它的频率等于接收数据的波特率,并由调制解调器供给,(,近距离不用调制解调器,传送时由用户自行设置,),。在异步方式时,时钟频率等于波特率和波特率因子的乘积。,28,第九章:串行通信和串行接口,8251A,8251A,8251A,的引脚,接收器有关的引脚,同步检测,/,间断,检测信号,SYNDET/BRKDET,:,输入,/,输出,高电平有效。在同步方式下,,SYNDET,执行同步检测功能,可以工作在输入状态,也可以工作在输出状态。同步检测分为内同步和外同步两种方式。采用哪种同步方式要取决于,8251A,的工作方式,由初始化时写入方式寄存器的方式字来决定。,当,8251A,工作在内同步方式时,,SYNDET,作为输出端,是在,8251A,内部检测同步字符。如果,8251A,检测到了所要求的一个或两个同步字符时,,SYNDET,输出高电平,表示已达到同步,后续收到的是有效数据。,当,8251A,工作在外同步方式时,,SYNDET,作为输入端。当片外检测电路找到同步字符后,从该引脚输入一个高电平信号,使,8251,开始接收数据。一旦开始接收,同步端恢复低电平输出。,29,第九章:串行通信和串行接口,8251A,8251A,8251A,的初始化和工作流程,方,式指令字:,用来定义8251,A,的一般工作特性。紧接在复位操作后由,CPU,写入,。,命令指令字:,用来指定芯片的实际操作。在写入了方式指令字后,才能由,CPU,写入同步字符和命令指令字。在8251工作过程中,可根据操作需要随时写入新的命令指令字。,状态字:,状态字给出8251,A,当前的运行状态。这些状态的定义基本与相应引脚同名同义,但有一些含义与同名引脚不同。,30,第九章:串行通信和串行接口,8251A,8251A,8251A,的初始化和工作流程,方式指令字,31,第九章:串行通信和串行接口,8251A,8251A,8251A,的初始化和工作流程,命令指令字,32,第九章:串行通信和串行接口,8251A,8251A,8251A,的初始化和工作流程,状态字,33,第九章:串行通信和串行接口,8251A,8251A,8251A,的初始化和工作流程,初始化操作流程,A,内部复位,N,送工作命令字,系统复位,送方式命令字,同步,Y,送同步字符1,双同步,N,N,Y,A,送同步字符2,Y,读状态字,能传输,Y,送一个字节,结束,送结束命令字,N,Y,N,工作命令,34,第九章:串行通信和串行接口,8251A,8251A,8251A,编程实例,例,9-1,:试编程设定8251为双同步方式,内同步,设数据位为7位,偶校验;发送器启动,接收器启动,复位出错位(清除),搜索同步字符。,解:,方式指令字:0 0 11 10 00,B=38H,双同步 内同步 偶校验 7位/数据 同步模式,命令字:1 0 0 1 0 1 1 1=97,H,MOV AL,38H,MOV DX,52H,OUT DX,AL,MOV AL,16H;,同步字符,MOV DX,AL,MOV DX,AL,MOV AL,97H,OUT DX,AL,35,第九章:串行通信和串行接口,8251A,总结,串行通信的基本概念,要求达到“领会”层次。,串行通信与并行通信的区别。,异步通信与同步通信的特点与区别。,异步串行数据传送格式。,同步串行数据传送格式。,波特率的含义。,单工、半双工与全双工的区别及实现。,串行通信中差错检测的概念。,串行接口原理。,异步串行通信接口的基本结构、工作原理。,异步串行通信中差错检测的概念。,可编程通信接口,8251A,(,USART,)。,8251A,的结构、功能及接口信号,要求达到“识记”层次。,8251A,的初始化,要求达到“领会”层次。,8251A,的应用,要求达到“领会”层次。,36,
展开阅读全文