




已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机原理与接口技术,第十章串行通信和可编程接口芯片8251A,10-1串行通信的基本概念10-2可编程串行通信接口芯片8251A10-3EIARS-232C串行口和8251A应用举例10-4串行同步数据通信协议,10-1串行通信的基本概念,并行通信数据各位同时传送;优点:速度快;缺点:使用通信线多;适用场合:适用于近距离传送数据的场合。串行通信要传送的数据或信息必须按照一定的格式编码,然后再单根线上,按一位接一位的先后顺序进行传送。发送完一个字符后,再发送第二个。接收数据时,每次从单根线上一位接一位地接收信息,再把它们拼成一个字符,送给CPU作进一步处理。适用场合:适用于远程终端或远距离地中央处理机交换数据;有些外设本身需要串行方式通信。,一、数据传送方向,单工,半双工,全双工,单工数据线仅仅能在一个方向上传输数据,两个站之间进行通信时,一边只能发送数据,另一边只能接收数据。,半双工方式下,数据可在两个设备之间向任一个方向传输,但两个设备之间只有一根传输线,故同一时间内只能在一个方向上传输数据,不能同时收发。,全双工方式下,对数据的两个传输方向采用不同的通路。,一、数据传送方向,单工,半双工,全双工,T,R,T,T,R,R,T,T,R,R,二、串行传送的两种基本工作方式,异步方式,同步方式,空闲位,起始位,数据位(58位),校验位,停止位,空闲位,起始位,第n+1个字符,一帧第n个字符,三、串行传送速率,波特率波特率:每秒钟内所传送数据的位数称为波特率,单位为波特(Bd)。它是传送每一位信息所用时间的倒数。常用波特率(BaudRate)来表示数据传送的速率。,例如:如果一个串行字符由1个起始位,7个数据位,1个奇偶校验位和1个停止位等10个数位构成,每秒钟传送120个字符,则数据传送的波特率为:,10位/字符120字符/秒1200位/秒1200波特,传送每位信息所占用的时间为:1秒/12000.833毫秒,四、串行接口芯片UART和USART,常用的通用串行接口芯片有两类(1)仅用于异步通信的接口芯片,通用异步收发器UART(2)既可以工作于异步方式,又可以工作于同步方式,通用同步异步收发器USART,五、调制解调器,调制解调器:能将数字信号转换成音频信号及将音频信号恢复成数字信号的器件。调制的主要形式有幅度调制、频率键移FSK、相位键移PSK和多路载波等几种。,五、调制解调器,幅度调制用调幅正弦波表示数字1和数字0,频率键移调制用两种不同频率(FSK)表示数字1和数字0,第十章串行通信和可编程接口芯片8251A,10-1串行通信的基本概念10-2可编程串行通信接口芯片8251A10-3EIARS-232C串行口和8251A应用举例10-4串行同步数据通信协议,10-2可编程串行通信接口芯片8251A,Intel8251A是一种通用的同步异步接收发送器(USART)芯片。它作为一种外围器件,可通过编程选用某一种串行通信技术。8251A具有独立的发送器和接收器因此,它能够以单工、半双工或全双工方式进行通信,并且提供一些基本的控制信号,可以方便地与MODEM连接。1.8251A的编程结构2.8251A的功能结构3.8251A的发送和接收4.8251A对外信号,8251A的编程结构和外部连接,一、8251A的内部结构和外部引脚,数据输入缓冲寄存器和数据输出缓冲寄存器使用同一个端口地址,但实际上作为两个端口,一个为输入端口,一个为输出端口。接收移位寄存器将到达端口的串行数据接收以后进行移位,变成8位并行数据,传送到数据输入缓冲寄存器,然后通过数据总线传送到CPU,这就是数据通过8251A输入到计算机的过程。在计算机通过8251A输出数据的过程中,CPU通过数据总线将数据送到8251A的数据输出缓冲寄存器,再传输到发送移位寄存器。移位寄存器用移位的办法并行数据变成串行数据,然后,从端送往外部设备。,一、8251A的内部结构和外部引脚,命令字寄存器用来控制8251A的工作,它的内容是由程序设置的。状态寄存器则在8251A的工作过程中为执行程序提供一定的状态信息。方式字寄存器的内容决定了8251A到底工作在同步模式还是工作在异步模式,还决定了所接收和发送的字符的格式,模式寄存器的内容也是由执行程序设置的。8251A的2个同步字符寄存器用来容纳同步方式中所用的同步字符。,返回,8251A的内部工作原理,一、8251A的内部结构和外部引脚,接收缓冲器:对外引脚为。功能从引脚上接收串行数据,并按照相应的格式将串行数据转换成并行数据。接收控制电路:(1)在异步方式下,芯片复位后,先检测输入信号中的有效“1”,一旦检测到,就接着寻找有效的低电平来确定启动位;(2)消除假启动干扰;(3)对接收到的信息进行奇偶校验,并根据校验结果建立相应的状态位;(4)检测停止位,并按照检测结果,建立状态位。,一、8251A的内部结构和外部引脚,发送缓冲器:把来自CPU的并行数据加上相应的控制信息,然后转换成串行数据从引脚发出去。功能上看,对应于编程结构图中的发送移位寄存器。发送控制电路:(1)在异步方式下,为数据加上起始位、校验位和停止位;(2)在同步方式下,插入同步字符,在数据中插入校验位。,一、8251A的内部结构和外部引脚,数据总线缓冲器:用来把8251A和系统数据总线相连,在CPU执行输入/输出指令期间,由数据总线缓冲器发送和接收数据。控制字、命令字和状态信息也通过数据总线缓冲器传输。从功能上看,数据总线缓冲器是编程结构中数据输入缓冲器、数据输出缓冲器、控制寄存器和命令寄存器的综合。,一、8251A的内部结构和外部引脚,读写控制逻辑电路:用来配合数据总线缓冲器工作。(1)接收写信号,并将来自数据总线的数据和控制字写入8251A(2)接收读信号,并将数据或状态字从8251A送往数据总线(3)接收控制/数据信号,将此信号和读/写信号合起来通知8251A,当前读/写的是数据还是控制字、状态字;(4)接收时钟信号CLK,完成8251A的内部定时(5)接收复位信号RESET,使8251A处于空闲状态,一、8251A的内部结构和外部引脚,调制解调控制电路在进行远程通信的时,要用调制解调器将串行接口送出的数字信号变为模拟信号,再发送出去,接收端则要用解调器将模拟信号变为数字信号,再由串行接口送往计算机主机。在全双工通信情况下,每个收发站都要连接调制解调器。有了调制解调控制电路,就提供了一组通用的控制信号,使得8251A可以直接和调制解调器连接。,返回,8251A的发送和接收,(1)异步接收方式A.当8251A工作在异步方式并准备接收一个字符时,就在线上检测低电平。B.若无字符信息,上为高电平。C.8251A将线上检测到的低电平作为起始位,并且启动接收控制电路中的一个内部计数器进行计数,计数脉冲为8251A的接收器的时钟脉冲。D.当计数进行到相应于半个数位传输时间时,又对线进行检测,如果此时仍为低电平,则确认收到一个有效的起始位;若再次测得为高电平,8251A会将刚才检测的信号看成是干扰脉冲。,(2)异步发送方式A.当程序置和为有效后,便开始发送过程。B.在发送时,发送器为每个字符加上1个起始位,并且按照编程要求加上奇/偶校验位以及1个、1.5个或2个停止位。C.数据及起始位、校验位、停止位总是在发送时钟的下降沿时从8251A发出。D.数据传输的波特率为发送时钟频率的1、1/16、1/64,具体决定于编程时给出的波特率系数。,8251A的发送和接收,(3)同步接收方式A.在同步接收方式下,8251A首先搜索同步字符。即检测线,每当线上出现一个数据位时,就把它接收下来并把它送入移位寄存器移位。B.对移位寄存器中的内容与同步字符寄存器的内容进行比较,若两者不相等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容相等,8251A的引脚升为高电平,以告示同步字符已经找到,同步已经实现。C.双同步字符方式,就要在测得输入移位寄存器的内容与第一个同步寄存器的内容相同后,再继续检测此后的输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同。,8251A的发送和接收,D.外同步情况下,端一出现高电平,8251A就会立即脱离对同步字符的搜索过程,只要高电平能维持一个接收时钟周期,8251A就认为已经完成同步。E.实现同步后,接收器和发送器之间开始进行数据的同步传输。接收器利用时钟信号对线进行采样,并把收到的数据位送到移位寄存器中。每当收到的数据位达到规定的一个字符的数位时,就将移位寄存器的内容送到输入缓冲寄存器,并在引脚上发出一个信号,表示收到一个字符。,8251A的发送和接收,8251A的发送和接收,(4)同步发送方式A.在同步发送方式下,也要在程序置和为有效后,才能开始发送过程。B.发送过程开始后,发送器先根据编程要求发送一个或者两个同步字符,然后发送数据块。C.在发送数据块时,发送器会根据编程要求对数据块中的每个数据加上奇/偶校验位。若没有该校验位,则不添加。D.在同步发送时,会遇到这样的情况,即8251A正在发送数据,而CPU却来不及提供新的数据给8251A,这时,8251A的发送器会自动插入同步字符。从而满足在同步发送时不允许数据之间存在空隙的要求。,返回,一、8251A的内部结构和外部引脚,8251A的对外信号分为两组,一组是8251A和CPU之间的信号;一组是8251A和外部设备(或调制解调器)之间的信号。,8251A和CPU之间的连接信号,同步方式下为SYNDET,8251A和CPU之间的连接信号,(1)片选信号为低电平时,8251A被选中。反之,为高电平时,8251A未被选中,8251A的数据线处于高阻状态。(2)数据信号:8251A有8根数据线,通过它们,8251A与系统的数据总线相连。实际上,数据线上不只传输一般的数据,而且也传输CPU对8251A的编程命令和8251A送往CPU的状态信息。(3)读/写控制信号:读信号。为低电平时,用来通知8251A,CPU当前正在从8251A读取数据或者状态信息。:写信号。为低电平时,用来通知8251A,CPU当前正在往8251A写入数据或者控制信息。,8251A和CPU之间的连接信号,:控制/数据信号。也是CPU送往8251A的信号,用来区分当前读/写的是数据还是控制信息或状态信息。,的编码和对应的操作,8251A和CPU之间的连接信号,注意:(a)8251A只有两个连续的端口。数据输入端口和数据输出端口合用同一个偶地址;状态端口和控制端口合用同一个奇地址。(b)在8086系统中,利用地址线来区分奇地址端口和偶地址端口。为低电平时,选中偶地址端口;为高电平时,选中奇地址端口。8086/8088系统中,将地址线和8251A的端相连。,8251A和CPU之间的连接信号,(4)收发联络信号:发送器准备好信号。输出。用来告诉CPU,8251A已经准备好发送一个字符。具体地说,当为低电平而为高电平,并且发送缓冲器为空时,为高电平。于是,CPU便得知,当前8251A已作好发送准备,因而CPU可以往8251A传输一个数据。:发送器空信号。输出。当发送器空信号有效时,表示8251A发送器中并行到串行转换器空。实际上指示一个发送动作地完成。当8251A从CPU得到一个字符时,便成为低电平。在同步方式时,不允许字符之间有空隙,但是CPU有时候来不及往8251A中输出字符,此时变为高电平,发送器在输出线上插入同步字符,从而填补了传输间隙。,8251A和CPU之间的连接信号,:接收器准备好信号。表明当前8251A已经从外部设备或调制解调器接收到一个字符,正等待CPU取走。:同步检测信号,只用于同步方式。该引脚即可工作在输入状态,又可以工作在输出状态,这决定于8251A工作在内同步情况还是工作在外同步情况,而这两种情况又决定于8251A地初始化编程。当8251A工作在内同步时,作为输出端,如果8251A检测到了所要求地同步字符,则便变为高电平,用来表明8251A当前已经达到同步。当8251A工作在外同步情况时,作为输入端,从这个输入端进入的一个正跳变,会使8251A在的下一个下降沿时开始装配字符。这种情况下,的高电平状态最少要维持一个周期,以便遇上的下一个下降沿。,8251A与外部设备之间的连接信号,8251A与外部设备之间的连接信号,(1)收发联络信号:数据终端准备好信号由8251A送往外设的,CPU通过命令可以使变为低电平即有效电平,从而通知外部设备,CPU当前已经准备就绪。一般与调制解调器相连,置为低电平后,从而通知调制解调器,CPU已经准备就绪。,:数据终端准备好信号有效时,表示MODEN已经准备好数据,实际上它是对的回答信号。,8251A与外部设备之间的连接信号,:请求发送信号是8251A送往外设的信号。低电平有效,CPU可以通过编程命令使变为有效电平,以表示CPU已经准备好发送。该信号向MODEM发出请求发送信号。,:清除请求发送信号是对的响应信号,它是由外设送往8251A的,当为低电平时,8251A才能执行发送操作。,8251A与外部设备之间的连接信号,(2)数据信息:发送器数据信号端用来输出数据。CPU送往8251A的并行数据被转变为串行数据后,通过送往外设。:接收器数据信息端用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式。除此之外,8251A还有电源端、接地端和3个时钟端。,二、8251A的编程,1.关于8位接口芯片和16位数据总线的连接问题采取的措施是将连接到8251A的接口芯片上。这样一来,从CPU这边来说,端口地址都是偶地址,所以传输信息时,信息总是出现在低8位数据线上;而从端口这边来说,端口地址中既有奇地址,也有偶地址,而且是连续的,也满足了许多8位接口芯片对端口地址的要求。,二、8251A的编程,2.8251A的初始化对使用8251A初始化的约定主要有3个:(1)芯片复位以后,第一次用奇地址端口写入的值作为方式字进入方式字寄存器。(2)如果方式字中规定了8251A工作在同步模式,那么,CPU接着往奇地址端口输出的1个或2个字节就是同步字节,同步字节被写入同步字符寄存器。如果有两个同步字符,则会按先后分别写入第一同步字符寄存器和第二同步字符寄存器。(3)这之后,只要不是复位命令,不管是同步模式还是异步模式,由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。,复位操作,输出方式字,同步方式,输出第一个同步字符,输出第二个同步字符,双同步,输出命令字,复位,传送数据,输入状态字,有错,传送完,出错处理,Y,N,Y,N,N,Y,Y,Y,N,N,二、8251A的编程,3.方式字,01异步方式110异步方式1611异步方式64,00字符长度为5位01字符长度为6位10字符长度为7位11字符长度为8位,x0无奇偶校验位01奇校验11偶校验,00无效011个停止位101.5个停止位112个停止位,异步方式方式字格式,二、8251A的编程,与异步方式相同,1SYNDET为输入(外同步)0SYNDET为输出(内同步),1单字符同步0双字符同步,同步方式方式字格式,二、8251A的编程,在同步模式中,接收和发送的波特率分别和引脚,引脚上的输入时钟的频率相等。在异步模式中,要用方式字寄存器中的两个最低位来确定波特率因子,此时和的频率、波特率因子和波特率之间有如下关系:,时钟频率波特率因子波特率,二、8251A的编程,4.命令字格式,1允许发送0禁止发送,1使引脚输出低电平,1允许接收0禁止接收,1使线变低,发送空白字符0正常工作,1使错误标志PE,OE,FE均复位,1使引脚输出低电平,1内部复位,使8251A回到方式选择格式,1启动搜索同步字符,二、8251A的编程,5.状态字格式,发送器准备好,同引脚含义,奇偶校验,溢出错误,帧错误(只用于异步方式),数据装置准备好,三、8251A初始化编程举例,1.异步方式初始化程序在实际使用中,为了确保送方式字和命令字之前8251A已正确复位(1)应先向8251A的控制口连续写入3个全0(2)再向该端口送入一个使位等于1的复位控制字(40H)从而使得8251A可以可靠复位。,三、8251A初始化编程举例,对8251A的控制口进行一次写入操作后,需要有写恢复时间。常用的方法有(1)宏指令(2)调用子程序KKK:OUTDX,ALPUSHCXMOVCX,0002ABC:LOOPABCPOPCXRET,REVTIMEMACROMOVCX,02D0:LOOPD0ENDM,三、8251A初始化编程举例,例题1:8251A工作于异步方式,波特率系数为16,具有7个数据位,1个停止位,有偶校验,控制口地址为3F2H,写恢复时间程序为REVTIME,则对8251A进行初始化的程序为:,三、8251A初始化编程举例,MOVDX,3F2H;控制口MOVAL,00HOUTDX,AL;向控制口写入“0”REVTIME;延时,等待写操作OUTDX,AL;向控制口写入第二个“0”REVTIME;延时OUTDX,AL;向控制口写入第三个“0”REVTIME;延时MOVAL,40H;对命令字中的复位位置1OUTDX,AL;写入复位字REVTIME;延时MOVAL,01111010B;方式字OUTDX,AL;写入方式字REVTIME;延时MOVAL,00010101B;命令字:允许接收发送数据,清除错;误标志OUTDX,AL;写入命令字,三、8251A初始化编程举例,例题2:8251A工作于异步方式,波特率系数为16,具有8个数据位,1个停止位,有偶校验,控制口地址为DAH,则对8251A进行初始化的程序为:,三、8251A初始化编程举例,INITXORAX,AX;AX清零MOVCX,0003MOVDX,00DAHOUT1:CALLKKKLOOPOUT1MOVAL,40HCALLKKKMOVAL,4EHCALLKKKMOVAL,27HCALLKKKKKK:OUTDX,ALPUSHCXMOVCX,0002ABC:LOOPABCPOPCXRET,往8251A的控制端口DAH送3个00,往8251A的控制端口DAH送1个40H,使得它复位,往8251A的控制端口DAH设置方式字,使得它为异步模式,波特率系数为16,8位数据,1位停止,往8251A的控制端口DAH设置命令字使发送器和接收器启动。,下面是输出子程序,将AL中的数据输出到DX指出的端口,等待输出动作完成,恢复CX的内容,并返回,三、8251A初始化编程举例,1.同步方式初始化程序(1)同步字符常用ASCII字符集中的16H作为收发双方同意的一个同步字符。(2)写入同步字符后,再对8251A的控制口写入一个命令字,选通发送器和接收器,允许芯片对从引脚上送来的数据位搜索同步字符。,三、8251A初始化编程举例,例题1:8251A的控制口地址为3F2H,写恢复延时程序为REVTIME,如要求8251A工作于同步方式,采用双同步字符、奇校验、数据位为7位,则对8251A写入复位字以后的初始化程序为,三、8251A初始化编程举例,;先向控制口写入3个0,再送复位字40HMOVDX,3F2H;控制口MOVAL,00011000B;方式字;双同步,内同;步,奇校验,7个数据位OUTDX,AL;送方式字REVTIME;延时MOVAL,16HOUTDX,AL;送入第一个同步字符REVTIME;延时OUTDX,AL;送入第二个同步字符REVTIMEMOVAL,10010101B;命令字:启动搜索同步;字符,错误标志复位,;允许收发OUTDX,AL,三、8251A初始化编程举例,利用状态字进行编程下面程序段先对8251A进行初始化,然后对状态字进行测试,以便输入字符。本程序段可用来输入80个字符。规定控制口和状态口为52H,数据输出和输入口为50H。字符输入后,放在BUFFER标号所指的内存缓冲区中。程序的内循环中,对状态寄存器的状态位不断测试,看8251A是否已经从外设接收到一个字符。若已经接收到,则将它读入并送到内存缓冲区。,三、8251A初始化编程举例,程序对状态寄存器的出错指示位进行检测,如果发现传输过程中有奇/偶校验错误、超越错误和帧格式错误,则停止输入,并调用出错处理子程序。出错处理子程序只要有两方面:(1)打印出错信息(2)清除状态寄存器中的出错指示位,出错指示位的清除可以通过设置控制字来实现。,三、8251A初始化编程举例,两点简要说明:(1)字符接收过程本身会自动使置1。(2)当输入的字符少于8位时,那么数据位从右边对齐,8251A会在余下的高位上自动填0。,三、8251A初始化编程举例,MOVAL,0FAHOUT52H,ALMOVAL,35HOUT52H,ALMOVDI,0MOVCX,80BEGIN:INAL,52HTESTAL,02HJZBEGININAL,50HMOVDX,OFFSETBUFFERMOVDX+DI,ALINCDIINAL,52HTESTAL,38HJNZERRORLOOPBEGINJMPEXITERROR:CALLERR_OUTEXIT:,设置方式字,异步模式,波特率系数为16,用7个数据位,2个停止位,偶校验,设置控制字,使发送器和接收器启动,并清除出错指示位,变址寄存器初始化,共收取80个字符,读取状态字,测试是否为1,如为0,表示未收到字符,故继续读取状态字并测试,读取字符,将字符送入缓冲区,修改缓冲区指针,读取状态字,测试有无帧格式错误,奇/偶校验错误和超越错误,若有,则转向出错处理程序,如没有错误,则再接收下一字符,如输入满80个字符,则结束,调用出错处理程序,第十章串行通信和可编程接口芯片8251A,10-1串行通信的基本概念10-2可编程串行通信接口芯片8251A10-3EIARS-232C串行口和8251A应用举例10-4串行同步数据通信协议,10-3EIARS-232C串行口和8251A应用举例,RS-232C标准具体规定:(1)信号电平通常使用12和12作为RS-232C电平。需要专门的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程热力学核心知识点解答集萃
- 垃圾炉排炉技改工程实施方案(模板)
- 定语和定语从句的教学要点
- 护理实习生自我同情与生涯适应力的关联性分析
- 网络营销渠道合作协议规范
- 房产权益转让协议书
- 乡村健康产业技术创新与人才培养
- 《诗歌创作与赏析技巧:高中语文综合教学》
- 工程热力学与传热学知识重点归纳题
- 全球互联网发展进度统计表
- 《城市地理学》课件
- 化工与安全工程
- 脑梗塞介入取栓护理查房课件
- 2024届上海市普陀区上海师大附中化学高二下期末综合测试试题含解析
- 循环经济产业链拓展项目商业计划书
- 天然气密度计算
- 过程控制课程设计-前馈-反馈控制系统仿真论文
- 【高教版】中职数学拓展模块:31《排列与组合》课件
- 招标代理公司内部监督管理制度
- 达林顿三极管
- 电力电子单相桥式整流电路设计报告
评论
0/150
提交评论