1、第第1010章章 串行通信与串行通信与8250,8251A8250,8251A.第第1010章章 串行通信接口串行通信接口教学重点n 串行通信基础串行通信基础(异步通信协议和异步通信协议和RS232C接口)接口)n 8250的内部结构和编程的内部结构和编程 n 异步通信程序异步通信程序n8251A的应用的应用.10.1 串行通信基础n串行通信:将数据分解成二进制位用一条串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式信号线,一位一位顺序传送的方式n串行通信的优势:用于通信的线路少,因串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本而在远距离通信时可以极大
2、地降低成本n串行通信适合于远距离数据传送,也常用串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送于速度要求不高的近距离数据传送nPC系列机上有两个串行异步通信接口、键系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送盘、鼠标器与主机间采用串行数据传送.1.异步通信n串行通信时的数据、控制和状态信息都使串行通信时的数据、控制和状态信息都使用同一根信号线传送用同一根信号线传送n收发双方必须遵守共同的通信协议(通信收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题位同步、字符
3、同步、数据校验等问题n串行异步通信以字符为单位进行传输,其串行异步通信以字符为单位进行传输,其通信协议是通信协议是起止式异步通信协议起止式异步通信协议.起止式异步通信协议n起始位起始位每个字符开始传送的标志,每个字符开始传送的标志,起始位采用逻辑起始位采用逻辑0电平电平起始位起始位校验位校验位停止位停止位空闲位空闲位数据位数据位低位低位高位高位字符字符0/10/1 0/10/10/10/10/10/11 10 01 11 11 1n数据位数据位数据位紧跟着起始位传送。数据位紧跟着起始位传送。由由58个二进制位组成,低位先传送个二进制位组成,低位先传送n校验位校验位用于校验是否传送正确;可用于校
4、验是否传送正确;可选择奇检验、偶校验或不传送校验位选择奇检验、偶校验或不传送校验位n停止位停止位表示该字符传送结束。停止表示该字符传送结束。停止位采用逻辑位采用逻辑1电平,可选择电平,可选择1、1.5或或2位位n空闲位空闲位传送字符之间的逻辑传送字符之间的逻辑1电平,电平,表示没有进行传送表示没有进行传送.数据传输速率n数据传输速率也称比特率(数据传输速率也称比特率(Bit Rate)n每秒传输的二进制位数每秒传输的二进制位数bpsn字符中每个二进制位持续的时间长度都一样,为数据字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数传输速率的倒数n当进行二进制数码传输,且每位时间长度相等
5、时,当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(比特率还等于波特率(Baud Rate)n过去,串行异步通信的数据传输速率限制在过去,串行异步通信的数据传输速率限制在50 bps到到9600 bps之间。现在,可以达到之间。现在,可以达到115200 bps或更高或更高.字符速率与波特率两者关系字符速率与波特率两者关系 字符速率:每秒钟传输的字符数。字符速率:每秒钟传输的字符数。波特率:指单位时间内传送二进制数据的波特率:指单位时间内传送二进制数据的位数。单位为:位数。单位为:b/s例例:异步传输过程异步传输过程 设每个字符对应设每个字符对应1 1个起始位、个起始位、7 7
6、个信息位、个信息位、1 1个个奇偶校验位和奇偶校验位和1 1个停止位,如果波特率为个停止位,如果波特率为1200bps1200bps,那么,每秒钟能传输的最大字符数为那么,每秒钟能传输的最大字符数为1200/101200/10120120个个.(2)发送发送/接收时钟接收时钟发送发送/接收时钟频率与接收时钟频率与波特率之间的关系为:波特率之间的关系为:发送发送/接收时钟频率接收时钟频率=n 发送发送/接收接收波特率波特率例:要求传输速率为例:要求传输速率为1200 bps当选择当选择n=16时,时,表明一位数字信号中有表明一位数字信号中有16个时个时钟脉冲,故发送钟脉冲,故发送/接收时钟频率为
7、:接收时钟频率为:1200 16=19.2kHz其中其中n称为波特因子,一般称为波特因子,一般n=1,16,32,64.2.同步通信n以一个数据块(帧)为传输单位,每个数据块附以一个数据块(帧)为传输单位,每个数据块附加加1个或个或2个同步字符,最后以校验字符结束个同步字符,最后以校验字符结束n同步通信的数据传输效率和传输速率较高,但硬同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂件电路比较复杂n串行同步通信主要应用在网络当中串行同步通信主要应用在网络当中n最常使用高级数据链路控制协议最常使用高级数据链路控制协议HDLC同步字符同步字符数据数据数据数据数据数据校验字符校验字符.3.传
8、输制式全双工全双工站站A站站B站站A站站B站站A站站B半双工半双工单工单工.4.调制解调器n调制(调制(Modulating)n把数字信号转换为电话线路传送的模拟信号把数字信号转换为电话线路传送的模拟信号n解调(解调(Demodulating)n将电话线路的模拟信号转换为数字信号将电话线路的模拟信号转换为数字信号n调制解调器调制解调器MODEMn具有调制和解调功能的器件合制在一个装置具有调制和解调功能的器件合制在一个装置.10.2 串行接口标准RS-232C(补充)n美国电子工业协会美国电子工业协会EIA制定的制定的通用标准串行接口通用标准串行接口n1962年公布,年公布,1969年修订年修订
9、n1987年年1月正式改名为月正式改名为EIA-232Dn设计目的是用于连接调制解调器设计目的是用于连接调制解调器n现已成为现已成为数据终端设备数据终端设备DTE(例如计算机)与(例如计算机)与数数据通信设备据通信设备DCE(例如调制解调器)(例如调制解调器)的标准接口的标准接口n可实现远距离通信,也可近距离连接两台微机可实现远距离通信,也可近距离连接两台微机n属于网络层次结构中的最低层:物理层属于网络层次结构中的最低层:物理层.10.2.1 RS-232C的引脚定义n232C接口标准使用一个接口标准使用一个25针连接器针连接器n绝大多数设备只使用其中绝大多数设备只使用其中9个信号,所以个信号
10、,所以就有了就有了9针连接器针连接器n232C包括两个信道:主信道和次信道包括两个信道:主信道和次信道n次信道为辅助串行通道提供数据控制和通次信道为辅助串行通道提供数据控制和通道,但其传输速率比主信道要低得多,其道,但其传输速率比主信道要低得多,其他跟主信道相同,通常较少使用他跟主信道相同,通常较少使用.RS-232C的引脚(1)nTxD:发送数据发送数据n串行数据的发送端串行数据的发送端nRxD:接收数据接收数据n串行数据的接收端串行数据的接收端.RS-232C的引脚(2)nRTS:请求发送:请求发送(出出)n当数据终端设备当数据终端设备(PC)准备好送出数据时,就发出有效准备好送出数据时,
11、就发出有效的的RTS信号,用于通知数据通信设备信号,用于通知数据通信设备(MODERM)准备准备接收数据接收数据nCTS:清除发送(允许发送):清除发送(允许发送)(入入)n当数据通信设备当数据通信设备(MODERM)已准备好接收数据终端已准备好接收数据终端设备设备(PC)的传送数据时,发出的传送数据时,发出CTS有效信号来响应有效信号来响应RTS信号信号nRTS和和CTS是数据终端设备与数据通信设备间一是数据终端设备与数据通信设备间一对用于对用于数据发送数据发送的联络信号的联络信号.RS-232C的引脚(3)nDTR:数据终端数据终端PC准备好准备好n通常当数据终端设备一加电,该信号就有效,
12、表明数通常当数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪据终端设备准备就绪nDSR:数据装置准备好数据装置准备好n通常表示数据通信设备(即数据装置)已接通电源连通常表示数据通信设备(即数据装置)已接通电源连到通信线路上,并处在数据传输方式到通信线路上,并处在数据传输方式nDTR和和DSR也可用做数据终端设备与数据通信设也可用做数据终端设备与数据通信设备间的联络信号,例如备间的联络信号,例如应答数据接收应答数据接收.RS-232C的引脚(4)nGND:信号地信号地n为所有的信号提供一个公共的参考电平为所有的信号提供一个公共的参考电平nCD:载波检测(载波检测(DCD)n当本地调制解
13、调器接收到来自对方的载波信当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号号时,该引脚向数据终端设备提供有效信号nRI:振铃指示振铃指示n当调制解调器接收到对方的拨号信号期间,当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效该引脚信号作为电话铃响的指示、保持有效.RS-232C的引脚(5)n保护地保护地(机壳地)(机壳地)n起屏蔽保护作用的接地端,一般应参照设备起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地的使用规定,连接到设备的外壳或大地nTxC:发送器时钟:发送器时钟n控制数据终端发送串行数据的时钟信号控制数
14、据终端发送串行数据的时钟信号nRxC:接收器时钟:接收器时钟n控制数据终端接收串行数据的时钟信号控制数据终端接收串行数据的时钟信号.10.2.2 RS-232C的连接n微机利用微机利用232C接口接口连接调制解调器连接调制解调器,用于,用于实现通过电话线路的远距离通信实现通过电话线路的远距离通信n微机利用微机利用232C接口接口直接连接直接连接进行短距离通进行短距离通信。这种连接不使用调制解调器,所以被信。这种连接不使用调制解调器,所以被称为零调制解调器(称为零调制解调器(Null Modem)连接)连接.连接调制解调器电话线电话线MODEM微机微机2345678202223456782022
15、MODEM23456782022数据装置准备好数据装置准备好DSRDSR数据终端准备好数据终端准备好DTRDTR发送数据发送数据TxDTxD接收数据接收数据RxDRxD请求发送请求发送RTSRTS允许发送允许发送CTSCTS信号地信号地GNDGND载波检测载波检测CDCD振铃指示振铃指示RIRI微机微机23456782022.不使用联络信号的3线相连方式微机微机TxDRxDGND微机微机为了交换信息,为了交换信息,TxD和和RxD应当交叉连接应当交叉连接程序中不必使程序中不必使RTS和和DTR有效有效也不应检测也不应检测CTS和和DSR是否有效是否有效.“伪”使用联络信号的3线相连方式RTS和
16、和CTS各自互接,各自互接,DTR和和DSR各自互接各自互接表明请求传送总是允许、数据装置总准备好表明请求传送总是允许、数据装置总准备好微机微机DSRDTRTxDRxDRTSCTSGND微机微机.使用联络信号的多线相连方式通信比较可靠通信比较可靠所用连线较多,不如前者经济所用连线较多,不如前者经济微机微机DSRDTRTxDRxDRTSCTSGND微机微机.10.2.3 RS-232C的电气特性n232C接口采用接口采用EIA电平电平n高电平为高电平为3V15Vn低电平为低电平为3V15Vn实际常用实际常用12V或或15Vn标准标准TTL电平电平n高电平:高电平:2.4V5Vn低电平:低电平:0
17、V0.4V相互转换相互转换.二、可编程串行通信接口芯片8251A 1.1.8251A8251A基本性能基本性能(1)(1)两种传送方式:同步和异步传送两种传送方式:同步和异步传送(2)(2)同步传送:同步传送:5858位位/字符,内部或外部同步可字符,内部或外部同步可自动插人同步字符自动插人同步字符(3)(3)异步传送:异步传送:5858位位/字符,时钟速率为通信波字符,时钟速率为通信波特率的特率的1 1、1616或或6464倍倍.(4)(4)可自动产生、检测和处理终止字符,可自动产生、检测和处理终止字符,可产生可产生1 1、1.51.5或或2 2位的停止位位的停止位(5)(5)波特率在同步方
18、式时为波特率在同步方式时为0 064Kbps64Kbps,异步方式时为异步方式时为0 019.2Kbps19.2Kbps(6)(6)全双工、双缓冲器发送器和接收器全双工、双缓冲器发送器和接收器(7)(7)出错检测:具有奇偶、溢出和帧错出错检测:具有奇偶、溢出和帧错误等检测电路误等检测电路.2.8251A2.8251A的内部结构的内部结构.3.8251A3.8251A的接口信号的接口信号(1)8251A与与CPU接口信号接口信号 片选信号片选信号 CSCS*为低电平时,为低电平时,8251A8251A被选中被选中数据信号数据信号 D7D7D0D0与系统的数据总线相连与系统的数据总线相连 读写控制
19、信号读写控制信号 RDRD*为读信号为读信号WRWR*为写信号为写信号C/DC/D*为控制为控制/数据信号数据信号.收发联络信号收发联络信号T TX XRDYRDY为发送器准备好信号为发送器准备好信号T TX XE E 发送器空信号发送器空信号R RX XRDY RDY 接收器准备好信号接收器准备好信号SYNDET/BD SYNDET/BD 同步检测信号同步检测信号.(2)8251A与外部设备之间的连接信号与外部设备之间的连接信号 收发联络信号收发联络信号 DTRDTR*数据终端准备好信号数据终端准备好信号 DSRDSR*数据设备准备好信号数据设备准备好信号 RTSRTS*请求发送信号请求发送
20、信号 CTSCTS*清除请求发送信号清除请求发送信号 数据信号数据信号 T TX XD D 发送器数据输出信号发送器数据输出信号 R RX XD D 接收器数据输入信号接收器数据输入信号.(3)时钟、电源和地)时钟、电源和地 CLKCLK:工作时钟,由外部时钟源提供。为:工作时钟,由外部时钟源提供。为芯片内部电路提供定时,它不等于发送和芯片内部电路提供定时,它不等于发送和接收数据的时钟。接收数据的时钟。VccVcc:电源输入:电源输入GNDGND:地:地.4.8251A的编程的编程8251A的初始化流程图的初始化流程图.8251A8251A的编程包括两个方面的内容:的编程包括两个方面的内容:由
21、由CPU发出控制字,即方式命令字和发出控制字,即方式命令字和操作命令控制字操作命令控制字 由由8251A向向CPU送出的状态字送出的状态字.(1 1)方式命令字)方式命令字.(2 2)操作命令字)操作命令字(用于控制发用于控制发/收即数据传送方向收即数据传送方向).(3 3)状态寄存器格式)状态寄存器格式(用于确定用于确定8251A8251A的工作方式的工作方式).例:若 要 查 询例:若 要 查 询 8 2 5 1 A8 2 5 1 A 接 收 器 是 否 准 备 好接 收 器 是 否 准 备 好(3F8H,3F9H)(3F8H,3F9H),可用下列程序实现:,可用下列程序实现:MOV DX
22、,3F9H ;状态口;状态口NEXT:IN AL,DX ;读状态口;读状态口 AND AL,02H ;查询;查询D D1 1=1=1?JZ NEXT ;未准备好,;未准备好,;转;转NEXTNEXT等待等待 MOV DX,3F8H ;数据口地址;数据口地址 ;送;送DXDX IN AL,DX .三、8251A应用举例1.异步方式下初始化程序例【例【8-88-8】设】设8251A8251A工作于异步方式,波特率系工作于异步方式,波特率系数为数为1616,具有,具有7 7位数据位,位数据位,1 1 位停止位,偶校位停止位,偶校验,发送、接收允许,设端口地址为验,发送、接收允许,设端口地址为3F8H
23、3F8H和和3F9H3F9H,试编程初始化。,试编程初始化。分析:根据题目要求,可以确定方式命令字为:分析:根据题目要求,可以确定方式命令字为:01111010B01111010B,即,即7AH7AH。而操作命令字为。而操作命令字为00110111B00110111B,即,即37H37H.初始化程序如下:初始化程序如下:MOV DXMOV DX,3F9H 3F9H MOV ALMOV AL,7AH7AH;送方式命令字;送方式命令字OUT DXOUT DX,ALALMOV ALMOV AL,37H37H ;设操作命令字;设操作命令字OUT DXOUT DX,ALAL.2.同步方式下初始化程序例【
24、例【8-98-9】设】设8251A8251A工作于同步方式,控制口的端口工作于同步方式,控制口的端口地址为地址为3F9H3F9H,采用双同步字符,奇校验,采用双同步字符,奇校验,7 7 位数据位数据位,试编程初始化。位,试编程初始化。分析:根据题目要求,可以确定方式命令字为分析:根据题目要求,可以确定方式命令字为00011000B,即,即18H。而操作命令字为。而操作命令字为10110111B即即B7H。它使。它使8251A对同步字符进行对同步字符进行检索;同时使状态寄存器中检索;同时使状态寄存器中3个出错标志复位;此外,个出错标志复位;此外,使使8251A的发送器启动,接收器也启动;控制字还
25、的发送器启动,接收器也启动;控制字还通知通知8251A,CPU当前已经准备好进行数据传输。当前已经准备好进行数据传输。.MOV DX,3F9H ;命令端口地址给命令端口地址给DXDXMOV AL,00011000B ;方式命令字;方式命令字OUT DX,AL MOV AL,16HOUT DX,AL ;送第一个同步字符;送第一个同步字符16H16HOUT DX,AL ;送第二个同步字符;送第二个同步字符16H16HMOV AL,B7H ;设置操作命令字;设置操作命令字OUT DX,AL .3.3.两台微机之间进行双机串行通信的举例两台微机之间进行双机串行通信的举例例【例【8-108-10】通过】
26、通过8251A实现两台微机相实现两台微机相互通信的硬件连接图如图互通信的硬件连接图如图8-25所示。利所示。利用两片用两片8251A通过标准串行接口通过标准串行接口RS-232C实现两台实现两台8086微机之间的异步串微机之间的异步串行通信。设两台微机中行通信。设两台微机中8251A的命令端的命令端口地址为均口地址为均3F9H,数据端口地址均为,数据端口地址均为3F8H。.分析:设系统采用查询方式控制串行通信的分析:设系统采用查询方式控制串行通信的过程。过程。初始化程序由两部分组成:初始化程序由两部分组成:将一方定义为发送方,发送方将一方定义为发送方,发送方CPUCPU查询查询到到TxRDYT
27、xRDY有效时,则有效时,则CPUCPU向向8251A8251A并行输并行输出一个待发送的字节数据;出一个待发送的字节数据;将对方定义为接收方,接收方将对方定义为接收方,接收方CPUCPU查询查询到到RxRDYRxRDY有效时,则从有效时,则从8251A8251A输入一个已输入一个已接收到的字节数据,直到全部数据传送完毕接收到的字节数据,直到全部数据传送完毕为止。为止。.发送程序如下:发送程序如下:STARTSTART:MOV MOV DXDX,3F9H3F9HMOV MOV ALAL,7FH7FH;异步方式,;异步方式,8 8位数据,位数据,;一位停止位,偶校验;一位停止位,偶校验OUT O
28、UT DXDX,ALAL ;波特率因子为;波特率因子为6464,允许,允许 ;发送;发送MOV MOV ALAL,11H11H;操作命令字;操作命令字OUTOUT DXDX,ALALMOV MOV DIDI,1000H1000H ;设置地址指针;设置地址指针MOV MOV CXCX,40H40H ;设置计数器初值;设置计数器初值.L1L1:MOVMOV DXDX,3F9H3F9H ININ ALAL,DXDX AND ALAND AL,01H 01H ;查询;查询TxRDYTxRDY是否有效是否有效 JZ L1 JZ L1 ;无效则等待;无效则等待 MOV MOV DXDX,3F8H3F8H
29、MOVMOV ALAL,DIDI ;向;向8251A8251A输出一个字节数据输出一个字节数据 OUTOUT DXDX,ALAL INCINC DI DI ;修改地址指针;修改地址指针 LOOP L1LOOP L1 ;未传送完,则继续下一个;未传送完,则继续下一个 HLTHLT.接收程序如下:接收程序如下:BEGINBEGIN:MOVMOV DXDX,3F9H3F9HMOV MOV ALAL,7FH7FH ;异步方式,;异步方式,8 8位数据,位数据,1 1位停止位位停止位OUTOUT DXDX,AL AL ;偶校验,波特率因子;偶校验,波特率因子6464,允许接收,允许接收MOV MOV A
30、LAL,14H14H ;操作命令字(置;操作命令字(置ERER,RxE RxE 为为1 1)OUTOUT DXDX,AL AL MOV MOV SISI,2000H2000H;设置地址指针;设置地址指针MOVMOV CXCX,40H40H;设置计数器初值;设置计数器初值L2L2:MOV MOV DXDX,3F9H3F9HININ ALAL,DX DX ;读取状态字;读取状态字.TESTTEST ALAL,38H 38H ;查询接收器是否有错。;查询接收器是否有错。JNZ JNZ ERR ERR ;有错则转错误处理;有错则转错误处理AND AND ALAL,02H 02H ;无误则查状态位;无误
31、则查状态位D D1 1(RxRDYRxRDY)JZ JZ L2 L2 ;接收未准备好则等待;接收未准备好则等待MOVMOV DXDX,3F8H3F8HIN IN ALAL,DX DX ;接受准备好,则接收;接受准备好,则接收1 1个字个字;节数据;节数据.MOVMOVSISI,ALALINCINC SI SI;修改接收数据区地址;修改接收数据区地址LOOP L2LOOP L2JMP JMP L3L3ERRERR:CALL CALL ERR-OUTERR-OUT(略)(略)L3L3:MOV MOV AXAX,4C00H4C00H;已接收完,返回;已接收完,返回DOSDOSINTINT21H21H.