第11章串行通信及接口电路串行通信11.1Intel8251A可编程通信接口11.211.1串行通信11.1.1概述CPU和外设之间通信形式:CPU与外部的信息交换称为通信(Communication)。基本的通信方式有两种:并行通信——数据的各位同时传送;串行通信——数据一位一位顺序传送。异步通信同步通信并行通信与串行通信方式1、串行通信中使用的术语:(1)发送时钟和接收时钟:二进制数据序列在传输线上是以数字信号形式出现,即高电平表示二进制数1,低电平表示二进制数0。而且每一位持续的时间是固定的。在发送时是以发送时钟作为数据位的划分界限。在接收时是以接收时钟作为数据位的检测。发送时钟:并行的数据序列送到移位寄存器,由发送时钟触发进行移位输出,数据位的时间间隔由发送时钟周期划分。接收时钟:接收时钟作为移位寄存器的触发脉冲将串行数据逐位打入移位寄存器,转换成并行数据。(2)DTE和DSE数据终端设备(DTE):是对属于用户所有联网设备和工作站的统称。数据装置(DSE):是对网络设备的统称,该设备为用户设备提供人网的连接点。自动呼叫/应答设备,调制解调和其他一些中间设备均属DSE。信道:是传输信息所经过的路径,是连接2个DTE的线路。它包括传输介质和有关的中间设备。DTE数据终端设备DTE数据终端设备DSEDSE信道2.同步通信与异步通信(1)非同步(异步)通信ASYNC(AsynchronousDataCommunication)用一个起始位表示字符的开始,用停止位表示字符的结束。一帧:从起始位开始到停止位结束的时间。异步帧格式:起始位(1位)+数据位(5—8位)+奇偶校验位(无/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,波特率)为:波特率:10×120=1200(位/秒)=1200(bps)每一位的传送时间即为:Td=1/1200=0.833(ms)波特率和收、发时钟的关系:波特率因子b/s=收/发时钟nn:叫波特率因子(可取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的实现并行转串行:当数据由计算机送至数据终端时,先要把并行的数据转换为串行的再传送;串行转并行:在计算机接收由终端送来的数据时,先要把串行的数据转换为并行的数据。这样的转换可以用软件也可以用硬件实现。DQDQCLKDQCLK…………D0D6并入串出移位寄存器DQDQCLKDQCLK…………D7D1并出串入移位寄存器6.串行通信的校验方法串行通信主要适用于远距离通信,因而噪声和干扰较大,需要由校验环节。常用的校验方法有:奇偶校验,循环冗余校验CRC(CyclicRedundancyCheck)等。(1)奇偶校验奇偶校验这种校验方法主要用于对一个字符的传送过程进行校验。在发送时,在每一个字符的最高位之后(发送总是最低有效位D0先发送)都附加一个奇偶校验位,这个校验位本身有可能是“1”或“0”,加上这个校验位,使所发送的任何字符中的“1”的个数始终为奇数——奇校验,或偶数——偶校验。接收时,检查所接收的字符连同这个奇偶校验位,其为“1”的个数是否符合规定,若不符合规定就置出错标志,供CPU查询及处理。奇偶校验位的产生和检验,可用软件或硬件的方法实现。(2)循环冗余校验(CRC校验)发送方利用编码理论,对传送的串行二进制码序列,以一定规则产生一些校验码,并将校验码放在二进制码之后,形成符合一定规则的新的二进制码序列(编码),并将新的二进制码序列发送出去;接受方根据信息与校验码之间所符合的规则进行检测(译码),从而检测出传送过程中是否有错。11.1.2串行接口标准EIARS-232C接口EIA(ElectronicsIndustriesAssociation)RS(RecommendedStandard)-232C是目前最常用的一种串行通信接口。现在的台式PC机一般有两个RS-232串行口COM1和COM2,通常COM1使用的是9针D形连接器,而COM2使用的是老式的DB25针连接器数据线:发送数据:TxD接受数据:RxD地线:联络控制线:请求发送RTS#(RequestToSend)准许发送CTS#(ClearToSend)数据终端准备好DTR#(DataTerminalReady)数据装置准备好DST#(DataSetReady)载波检测CD#(CarriedDetect)振铃信号RI1、RS-232C常用引脚:RS-232C对各种信号的规定如下:(1)在TxD和RxD线上MARK(即表示为逻辑1)=-3V~-25VSPACE(即表示为逻辑0)=+3V~+25V(2)在RTS#、CTS#、DSR#、DTR#、CD#等线上:ON=+3V~+25VOFF=-3V~-25V2、RS-232C信号的电气性能:(3)TTL电平和RS-232C电平转换MC1488:能实现从TTL→RS-232C(发送器)MC1489:能实现从RS-232C→TTL(接收器)的器件,计算机与远程终端和当地终端连接示意图11.2Intel8251A可编程通信接口11.2.18251的基本功能(1)可用于同步和异步传送。(2)同步传送:5~8位/字符,内部或外部同步,可自动插入同步字符。(3)异步传送:5~8位/字符,时钟速率为通信波特率的1、16或64倍。(4)可产生中止字符(BreakCharacter);可产生1、1.5或2位的停止位。可检查假启动位,自动检测和处理中止字符。(5)波特率:DC—19.2K(异步);DC—64K(同步)。(6)完全双工,双缓冲器发送器和接收器。(7)出错检测:具有奇偶、溢出和帧错误等检测电路。11.2.28251的方框图整个8251可以分成5个主要部分:接收器:接受移位寄存器和接收数据寄存器发送器:发送数据寄存器和发送移位寄存器调制控制:与MODEM连接部分读写控制:C/D#、RD#、WR#、CS#等I/O缓冲器:状态缓冲器、发送数据/命令缓冲器和接收数据缓冲器。8251的内部由内部数据总线实现相互之间的通信。8251方框图发送缓冲器接收缓冲器并串变换寄存器串并变换寄存器……...………..……..通信线路CPU发送数据CPU接收数据………...………..发送时钟接收时钟接收控制接收控制发送器接收器1.发送器a.数据输出线TxDb.发送时钟TxCc.发送器准备好TxRDYd.发送器空信号TxEMPY过程:TxRDY有效CPU写数据到82518251发数据发送完毕,TxEMPY有效2.接收器a.数据输入线RxDb.接收时钟RxCc.接收器准备好RxRDY过程8251收数据RxRDY有效CPU读82513.调制解调控制电路DTR#——数据终端准备好信号。是由825IA送往外设的,表示CPU当前已经准备就绪。DSR#——数据设备准备好。是外设送往825lA的,表示当前外设已经准备好数据。8251ModemDTR#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.38251的接口信号8251是用来作为CPU与外设或调制解调器之间的接口,所以它的接口信号可以分为两组:一组为与CPU接口的信号:DB7~DB0、CLK、CS#、C/D#、TxRDY、TxE、RxRDY、SYNDET一组为与外设(或调制解调器)接口的信号:DTR#、DSR#、RTS#、CTS#、RxC#、RxD#、TxC#、TxD#11.2.48251的编程初始化编程读8251的状态寄存器8251是一个可编程的多功能通信接口。在具体使用时必须对它进行初始化编程,以确定它的具体工作方式。初始化编程包括:设置方式选择字(设置同步字符)设置命令字例如:规定工作于同步还是异步方式;传送的波特率;字符格式等。注:写方式选择字和命令字时,C/D#端为“1”1.方式选择字(写入控制口C/D#=1)时钟频率=波特率因子×波特率2.命令字:在输入同步字符后,或在异步方式时,在方式选择指令后应由CPU输出命令字。(写入控制口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命令字:00010100BMOVDX,881HMOVAL,0F7HOUTDX,ALMOVAL,14HOUTDX,ALNEXT:INAL,DXANDAL,02HJZNEXTMOVDX,880HINAL,DX例:8251A发送数据,异步传送,波特率因子64,采用偶校验,2位停止位,6位数据(数据端口地址880H,控制端口地址881H)方式控制字:11110111B命令字:00110001BMOVDX,881HMOVAL,0F7HOUTDX,ALMOVAL,31HOUTDX,ALNEXT:INAL,DXANDAL,01HJZNEXTMOVDX,880HMOVAL,[SI]OUTAL,DX11.2.58251应用举例1.要求在A、B两台微机之间进行串行通信,A机发送,B机接收。要求把A机上开发的应用程序(其长度为2DH)传送到B机中去。采用异步方式,字符长度为8位,2个停止位,波特率因子为64,无校验,波特率为4800。