第11章串行通信接口及应用教学提示:串行通信是指将数据在信号通路上一位一位地顺序传送,每一位数据占据一个固定的时间长度。而串行接口就是完成串行通信传输任务的接口。串行通信速度不如并行通信,但是串行通信具有抗干扰能力强、接口相对简单、成本低等诸多优点,所以在远程计算机通信系统中,采用串行通信方式特别适合。教学要求:本章主要让学生了解串行通信的基本知识和各种通信接口标准。重点掌握可编程串行通信接口芯片8250的结构、功能及编程应用。11.1串行通信基础在并行通信中,所用的数据传输线较多,因此不适合长距离传输。而串行通信所需的传输线较少,所以采用串行通信方式可以节省传输线。在数据位数较多,传输距离较长的情况下,这个优点更为突出,可以降低成本。11.1.1串行通信数据传送方式在串行通信中,按照数据在通信线路上的传输方向,可以分为单工通信、半双工通信和全双工通信。1.单工通信单工通信是指数据信号仅允许沿一个方向传输,即由一方发送数据,另一方接收数据,如图11.1所示。无线电广播就是单工通信方式。2.半双工通信半双工通信是指通信双方都能接收或发送,但不能同时接收和发送的通信方式。在这种传送方式中,通信双方只能轮流地进行发送和接收,即A站发送,B站接收;或B站发送,A站接收,如图11.2所示。对讲机系统就是采用半双工通信方式的。AB发送器接收器AB接收器发送器接收器发送器图11.1单工通信图11.2半双工通信3.全双工通信全双工通信是指通信双方在同一时刻可以同时进行发送和接收数据,如图11.3所示。双工需要两条传输线。目前,在计算机网络通信系统中就是采用全双工通信的。第11章串行通信接口及应用·307··307·AB发送器发送器接收器接收器图11.3全双工通信11.1.2串行通信协议在串行通信中,为了正确地传输每一个字符和字符中的每一位信息,必须要保证发送端和接收端同步工作。根据数据的收发方式,串行通信协议可分为异步通信协议和同步通信协议两种。1.异步通信协议异步通信协议采用的数据格式是每个字符都按照一个独立的整体进行发送,字符的间隔时间可以任意变化,即每个字符作为独立的信息单位(帧),可以随机地出现在数据流中。所谓“异步”,就是指通信时两个字符之间的间隔事先不能确定,也没有严格的定时要求。异步通信协议规定的传输格式由1位起始位、5~8位数据位、1位奇偶校验位、1~2位停止位和若干个空闲位等组成,如图11.4所示。其中,起始位是表示字符的开始,通知接收方开始接收数据;停止位是表示字符传输的结束。图11.4异步串行通信数据格式在串行通信中,传输速率是指单位时间内传送的二进制数据的位数,也称波特率,单位是位/秒(b/s,也称bps)。常用的波特率有110、300、600、1200、2400、4800、9600、19200、38400等。字符速率是指每秒钟传送的字符数,它与波特率是两个相关但表达的意义不相同的概念。例如,若异步通信的数据格式由1位起始位、8位数据位、1位奇偶校验位、2位停止位组成,波特率为2400b/s,则每秒钟能够最多传送2400÷(1+8+1+2)=200个字符。采用异步通信格式的优点是,控制简单,不需收发双方时钟频率保持完全一致,可以有偏差,纠错方便。其缺点是一旦传输出错,则需要重发,传输效率低,信息冗余大。2.同步通信协议在异步通信中,每传送一个字符,需要增加大约20%的附加信息位,即用起始位和停止位作为每个字符的开始和结束标志,占用了一些时间,降低了传输效率。因此在大批量数据传送时,为了提高速度,就要设法去掉这些标志,而采用同步传输。在同步传输时,信息以数据块(由多个字符组成)为单位进行传送,不仅字符内部位与位之间是同步的,而且字符之间的传送也是同步的,因此,收发双方对时钟同步要求严格,所以设备也比较复杂,一般只用于需要高速大容量的通信场合。微机原理与接口技术·308··308·同步通信协议主要分为两种:一种是面向字符的同步通信协议,它的特点是把每个帧看作由若干个字符组成的数据块,并规定了一些特殊字符作为同步字符以及传输过程的控制信息;另一种是面向比特的同步通信协议,它的特点是把数据及控制信息看作为比特流的组合,靠约定的比特组合模式来标志帧的开始和结束。常见的同步通信协议格式如图11.5所示,主要有单同步格式、双同步格式、SDLC格式、HDLC格式和外同步格式。同步字符CRC2CRC1数据信息(a)单同步格式同步字符1CRC2CRC1(b)双同步格式同步字符2数据信息标志符01111110CRC2CRC1(c)SDLC格式地址符8位数据信息标志符01111110标志符01111110地址符8位CRC2CRC1(d)HDLC格式数据信息标志符01111110控制符8位CRC2CRC1(e)外同步格式数据信息图11.5常见的几种同步通信格式同步通信中需要注意的是,传输的数据都是成批连续的,两个字符之间不允许有空格,在没有字符要传输时要填上空字符,以此来保证数据传输的准确性。采用同步通信协议的优点是传输效率高、传输速度快,适合要求快速、连续地传输大量数据的场合,但其技术比异步通信协议复杂、硬件开销大、成本高。因此,在一般应用中,采用异步通信的比较多。11.2串行通信的接口标准为了实现不同厂商生产的计算机和各种外部设备之间进行串行通信,国际上制定了一些串行接口标准,常见的有RS-232C接口、RS-422A接口、RS-485接口。目前最普遍使用的是美国电子工业协会颁布的RS-232C接口标准。RS-232C接口标准规定了机械、电气、功能等方面的参数。11.2.1RS-232C的机械特性RS-232C是一种总线标准,可以保证硬件兼容。通常RS-232C接口有9针和25针等规格,各信号线的功能见表11-1,其接口信号线排列如图11.6所示。表11-1RS-232C接口25针(9针)信号线功能定义25针(9针)引脚号缩写名称信号名称功能特点1GND保护地作为设备接地端2(3)TXD发送数据将数据送调制解调器3(2)RXD接收数据从调制解调器接收数据4(7)RTS请求发送终端请求通信设备切换到发送方式第11章串行通信接口及应用·309··309·续表25针(9针)引脚号缩写名称信号名称功能特点5(8)CTS允许发送指出调制解调器准备好发送6(6)DSR通信设备准备好指出调制解调器进入工作状态7(5)SG信号地作为公用的信号地8(1)DCD载波信号检测指出调制解调器正在接收远程载波9空10空11空12辅助信道接收信号检测指出在第二通道上检测到信号13辅助信道允许发送指出在第二通道准备好发送14辅助信道发送数据往调制解调器以较低速率输出15发送器时钟(DCE)为调制解调器提供发送器定时信号16辅助信道接收数据从调制解调器以较低速率输入17接收器时钟为接口和终端接收器提供信号定时18空19辅助信道请求发送闭合第二通道的发送器20(4)DTR数据终端准备好数据终端准备就绪,可以接收21信号质量检测通信设备通知端,线路已经连通22(9)RI振铃指示指出在链路上检测到声音信号23数据率选择可以选择数据信号速率24发送器时钟(DTE)为接口和终端提供发送器定时信号25空(a)25针接口排列图……1132514……(b)9针接口排列图9……615……图11.6RS-232C接口信号线排列图11.2.2RS-232C的电气特性RS-232C中采用负逻辑规定逻辑电平,逻辑“1”电平规定为-3V~-15V,逻辑“0”电平规定为+3V~+15V。在实际使用中,常采用±12V或±15V。由此可见,RS-232C标准中的信号电平标准与计算机中广泛采用的TTL电平标准不相容,在使用时,必须有电平转换电路。RS-232C既是一种协议标准,又是一种电气标准,它采用单端、双极性电源供电电路。RS-232C规定的传输速率有:50b/s、75b/s、110b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s、19.2Kb/s、33.6Kb/s、56Kb/s等,能够适应不同传输速率的设备。微机原理与接口技术·310··310·在远距离通信时,一般要加MODEM(调制解调器),当计算机与MODEM连接时,只要将编号相同的引脚连接起来即可,如图11.7所示。CTSRTSDSRTXDDTRSGRIRXDDCD163487295163487295RS-232C接口调制解调器电话网调制解调器RS-232C接口CTSRTSDSRTXDDTRSGRIRXDDCD图11.7RS-232C(9针)与调制解调器的连接图在距离较近(小于15m)的情况下进行通信时,不需要使用MODEM,两个计算机的RS-232C接口可以直接互连,如图11.8所示。计算机或终端25468733546872终端或计算机254687319356971284计算机或终端终端或计算机(a)两个终端设备的最简单连接(b)两个终端设备的直接连接图11.8两个RS-232C(9针)终端设备的连接图图11.8(a)给出的是最简单的互连方式,只需3条线就可以实现相互之间的全双工通信,但是其许多功能(如流控)就没有了。图11.8(b)给出的是常用信号引脚的连接,为了交换信息,TXD和RXD是交叉连接的,即一个发送数据,另一个接收数据;RTS和CTS与DCD互接,即用请求发送RTS信号来产生清除发送CTS和载波检测DCD信号,以满足全双工通信的逻辑控制;用类似的方法可将DTR、DSR和RI互连,以满足RS-232C通信控制逻辑的要求。这种方法连线较多,但能够检测通信双方是否已准备就绪,故通信可靠性高。11.3可编程串行通信接口芯片8250在计算机进行的串行数据通信时,一方面需要实现并行到串行或串行到并行的转换,另一方面还需要按照传输协议发送和接收每个字符或数据块,这些工作可由软件实现,也可由硬件来实现。能完成异步通信的硬件电路被称为UART,典型的芯片有INS8250、MC6850-ACIA、第11章串行通信接口及应用·311··311·MC6852-SSDA等。既可以完成异步通信又可以完成同步通信的硬件电路被称为UART,如Intel的8251A、AMD9951等。1981年,在IBMPC机主板上用8250UART与MODEM或串行打印机进行通信,由于8250的应用包含对PC机中BIOS的支持,因而确定了它的结构和特性。几年后,产生了16450,它是8250的直接扩展,如增加了速率,可支持115K和230K的速率。在后来的16550芯片上,其功能比8250多16个字节的接收和发送FIFO,而16C650则把FIFO增加到32个字节,现在的16C750则把FIFO增加到64个字节。大容量的FIFO减少了中断返回次数,提高了速度。这里,仅介绍INS8250的结构及应用。11.3.1概述INS8250是使用+5V电源的具有40个引脚的芯片,各个引脚的功能特点如表11-2所示,其内部结构及引脚信号如图11.9所示。其中,主复位信号有效时,对8250内部寄存器和部分外部信号线有影响,具体情况如表11-3所示。表11-28250引脚功能引脚名称功能特点D7~D0双向数据线,与系统数据总线相连,用于写入/读出状态字或者是发送/接收数据CS0、CS1、2CS片选信号线,有效时,选中8250芯片A2、A1、A0内部寄存器地址信号线,用于选择8250芯片内部寄存器ADS地址选通信号线,低电平有效DISTR、DISTR数据输入选通信号线DOSTR、DOSTR数据输出选通信号线RCLK接收时钟信号线CTS清除发送信号线RTS请求发送信号线DTR数据终端准备好信号线,输出DSR数据装置准备好信号线,输入RLSD接收线路信号检测信号线,输入RI振铃指示信号线,输入1OUT用户编程指定的输出端12OUT用户编程指定的输出端2CSOUT片选输出信号线,输出DDIS驱动器禁止信号线,输出BAUDOUT波特率信号输出端INTR中断请求输出信号线SOUT串行数据输出信号线SIN串行数据输入信号线XT