接口_第8章串行通信接口_第1页
接口_第8章串行通信接口_第2页
接口_第8章串行通信接口_第3页
接口_第8章串行通信接口_第4页
接口_第8章串行通信接口_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 串行通信接口8.1 串行通信的基本概念1、串行通信的基本特点按位串行的传输,该线既作数据线又作联络线;数据传输的格式有固定要求,分为异步和同步;串行通信往往需要进行逻辑关系和电平的转换;要求双方约定传输的波特率;串行通信易受干扰; 串行通信用于长距离。2、串行通信传输的工作方式 串行通信中,数据通常是在二个站(点对点)之间进行传送,按照数据流的方向可分成两种传送模式:全双工和半双工。l 全双工(Full Duplex) 数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,这种传送方式称为全双工制。 特点:每一端都有发送

2、器和接收器 有二条传送线 应用:交互式应用,远程监测控制发送器接收器接收器发送器A站B站图8.1 全双工方式示意图l 半双工(Half Duplex) 使用同一根传输线,既可发送数据又可接收数据,但不能同时收发数据,这样的传送方式就是半双工(Half Duplex)制,如下图所示。发送器接收器发送器接收器A站B站图8.2 半双工方式示意图特点:每端需有一个收/发切换电子开关 因有切换,会产生时间延迟应用:打印机串口,单向传送设备。3、串行通信的差错检测在串行数据传输过程中,由干扰引起误码是难免的,这直接影响通信系统的可靠性,对通信中的检/纠错能力是衡量一个通信系统的重要内容。误码率控制误码率是

3、指:经数据传输后发生错误的位数与总传输位数之比,一般要控制在10-6数量级。检纠错编码的使用 包括:检错:发现传输中的错误,称为检错。 纠错:发现并消除传输中的错误,称为纠错。错误状态的分析与处理l奇偶校验错l溢出错l帧格式错l超时错错误检测只在接收方进行4、串行通信的同步方式 在串行通信中,根据对数据流的分界、定时及同步方法不同,可分为异步串行通信方式和同步串行通信方式。异步通信方式:以字符为单位传送。 即:传送同一字符的每一位时是同步的, 而字符与字符之间是异步的。同步通信方式:以数据块为信息单位传送。 即:字符内部位与位之间传送是同步 的,字符与字符之间传送也是同步的。5、串行通信中的调

4、制和解调l为什么串行通信中的信号需要调制与解调 计算机的通信是要求传送数字信号,而在进行远程数据通信时,线路往往是借用现有的公用电话网;但是公用电话网是为音频模拟信号而设计的,线路的频带约为3003400Hz,不适合于数据信号的传输。因此需要对二进制信号进行调制,以适合在电话网上传输相应的音频信号,在接收时需要进行解调,还原成数字信号。计算机MODEMMODEM模拟信号数字信号数字信号CRT1 0 1 010 10 10 10图8.3 调制电话线l 调制解调器发送采用调制器(Modulator)把数字信 号转换为模拟信号,送到通信线路上。接收器再通过解调器(Demodulator)把 模拟信号

5、转换为数字信号。调制器的类型:调幅、调频和调相1)幅移键控(ASK)2)频移键控(FSK)3)相移键控(PSK)调幅AM调频FM调相PM10001101+180-180ASKFSKPSK8.2 串行通信中的传输速率控制1、波特率 每秒钟传送的二进制位的数目。 用波特率表示:即1波特=bit/s (位/秒)常用的标准波特率:4.8K,9.6K,19.2K等。2、波特率的发送和接收时钟 用于对发/收双方之间的数据传输进行同步控制,对数字波形的每一位进行移位操作。在异步通信中,为提高抗干扰性,接收器采用比波特率更高频率的时钟来提高定位采样的分辩率。在异步通信中,为提高抗干扰性,接收器采用比波特率更高

6、频率的时钟来提高定位采样的分辩率。图8.5 16倍波特率时钟的作用3、波特率因子 是发送/接收1位数据所需要的时钟脉冲个数,其单位是个/位。若传送一位数据需要16个时钟,则波特因子为16个/位。发/收时钟脉冲与波特率之间的关系是: TXC = Baud * Factor例如:要求传送速率为1200 Baud,则当Factor=1时, 发/收时钟=1200*1=1.2kHz;当Factor=16时,发/收时钟=1200*16=19.2kHz;当Factor=64时,发/收时钟=1200*64=76.8kHz;8.3 串行通信中的数据格式1、起止式异步通信数据格式l格式 每个字符总是以起始位(“0

7、”)开始,以停止位(“1”)结束,数据位可以是5-8位。 字符之间没有时间间隔要求。 字符后是一位校验位(可有可无)。l特点字符出现在数据流的时间是随机的。图8.6 起止式异步通信数据格式l 起/止位的作用 告诉接收方,一帧数据的开始与结束。2、面向字符的同步通信格式 1.功能: 一次传送若干个字符组成的数据块。并规定了10个特殊字符作为这个数据块的开头标志、结束标志以及整个传输过程的控制信息。2.数据格式(一帧):8.4 串行通信接口标准1、RS-232接口标准 RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:020Kbps。

8、l电气特性 RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。逻辑: “1”=-5V-15V; “0”=+5V+15V 与TTL逻辑电平不一样,可用TTL/EIA电平转换器进行转换。l EIA与TTL之间的转换 采用EIA电平比TTL电平具有更强的抗干扰性能。可用MAX232完成EIA与TTL间的电平转换。l 机械特性 连接器(Connector) 常用二种: (1) DB-25型; (2) DB-9型 电缆长度 RS-232直接连接的最大物理距离15M,通信速率20Kbps。l信号线的定义 25线:数据线4条(2,3,14,16); 控制线11条(4,5,6,8,12,13, 1

9、9,20,22,23); 定时信号线3条(15,17,24); 地线2条(1,7); 备用5条(9,10,11,18,25); 未定义。l 信号线的使用 近距离连接(15m)(1)需用MODEM和专用电话线(2)需用29条信号线(在接口与MODEM之间)计算机接口调制解调器DCDRXDTXDRTSCTSSGDSR调制解调器DCDRXDTXDRTSCTSSGDSR终端专用电话线22采用MODEM时RS-232信号线的使用2、RS-485接口标准l特点: (1)采用平衡发送器和差动接收器,由于是双线传输,大大提高了抗共模干扰的能力。 两条传输线的电位差决定逻辑电平: AA- BB +200mV,表

10、示“1”(2)传输速率 9.6Kbps(15K时) 100Kbps(1200m时)(3)允许在电路中由一个发送器驱动多个接收器, 多达32个收/发器。发送端(驱动器)接收端(接收器)输入输出输入输出(DI)Y(A)Z(B)A-B(RO)101001+0.2V-0.2V10MAX485/MAX491对信号的逻辑定义DIROREDEBGNDA12345678VccMAX485/MAX491引脚信号的逻辑定义l 平衡发送器/差动接收器的作用l RS485接口标准在多点对多点通信中的应用8.5 串行通信接口电路1、串口通信接口的基本任务(1)实现数据格式化;(2)进行串-并转换;(3)进行错误检验;(

11、4)提供符合接口标准的信号线;(5)进行逻辑关系和逻辑电平转换;(6)进行数据传输率控制。2、串口通信电路的组成 一般有串行接口芯片,波特率发生器,电平转换器和地址译码器组成。8.6 基于8251A用户扩展串行通信接口1、8251A的外部特性功能:异步起止协议 同步面向字符协议2、8251A内部寄存器及编程命令组成:接收器、发送器、调制控制、读/写控制、数据总线缓 冲器。 发送器: 首先把待发送的并行数据转换成为所需要的帧格式并加上校验位,然后在发送时钟TXC的控制下,由引脚TXD逐位串行发送出去。 TXRDY(Transmitter Ready):发送器 准备好,状态线,高电平有效; TXE

12、MPTY(Transmitter Empty):发送 器空,状态线,高电平有效; TXD:发送数据线; TXC:发送器输入时钟。接收器: 在时钟RXC作用下,接收RXD引脚上的帧格式化串行数据,并把它转换成并行数据。同时进行校验,若发现错误,则在状态寄存器中保存错误状态,以便CPU查询和处理。 RXD:接收数据线; RXRDY:接收器准备好; SYNDET/BD:同步字符检出信号; RXC:接收器输入时钟。CSC/DRDWR功 能0001CPU从8251A读数据0101CUP从8251A读状态0010CUP写数据到8251A0110CPU写命令到8251A1XXXUSART总线浮空数据总线缓冲

13、器 三态双向,它含有数据缓冲器和命令缓冲器。是CPU与8251A交换数据、发布命令和读取状态的通道。读写控制 调制解调器控制(与MODEM的接口信号) DTR:数据终端准备好; RTS:请求发送; DSR:数据设备准备好; CTS:清发送。l 方式命令a.作用:约定双方的通信方式,数据格式,传送 速率。b.格式: 例1:在异步通信中,采用8位数据位,1位起始位,2位停止位,奇校验,波特率因数是16,则方式字是:11011110B=0DEH MOV DX,309H ;8251命令口 MOV AL,0DEH ;异步工作方式字 OUT DX,AL 例2:同步通信中,若帧数据格式为:字符长度8位,双同

14、步字符,内同步方式,奇校验,则方式字是:00011100B=1CH。 MOV DX,309H ;8251命令口 MOV AL,1CH ;同步工作方式字 OUT DX,AL l 工作命令 a.作用:确定8251A的实际操作,使8251A进入 某种工作状态,以便接收或发送数据。 b.格式:例3:使8251内部复位,并且允许接收,又允许发送,则程序段为: MOV DX,309H ;8251命令口 MOV AL,01000000B ;置D6=1,使 ; 内部复位 OUT DX,AL MOV AL,00000101B ;置D2=1,D0=1 ;允许接收和发送 OUT DX,AL l 状态字a.作用:82

15、51A执行命令进行数据传送后的状态字存放在状态寄存器中,CPU通过读出状态字进行分析和判断,以决定下一步的操作。b.格式:例4:若查询8251A接收器是否准备好,即查TXRDY=1?则用下列程序段: L:MOV DX,309H ;状态口 IN AL,DX ;读状态字 AND AL,01H ;查D1=1?(RXRDY=1?) JZ L ;未准备好,则等待例5:检查出错信息,则用下列程序段 MOV DX,309H ;状态口 IN AL,DX TEST AL,38H ;检查D5D4D3三位(FE,OE,PE) JNZ ERROR ;若其中有一位为1,则出错 ERROR:l8251A的方式字和命令字的

16、使用(1)方式字、命令字和状态字间的关系 方式字:约定双方通信的方式,数据格式, 传送速率等参数。 命令字:控制是发送数据,还是接收数据。 状态字:何时发/收、取决于状态字。(2)使用的顺序: 因方式字和命令字无特征位,且送到同一个端口,所以要按一定的顺序写入。 复位方式字命令字1命令字2 3、8251A的初始化内容和顺序4、基于8251A的串行通信接口设计例1:采用RS-232标准的串行通信接口设计l要求 甲乙二台PC微机之间进行串行通信,甲机发送、乙机接收,要求把甲机上开发应用程序(其数据长度为2DH)传送到乙机中去。 采用: 起止式异步方式; 字符长度为8位; 2位停止位; 波特率因子为

17、64,无校验; 波特率为4800bps; CPU与8251A之间用查询方式交换数据。 口地址分配是:309H为命令/状态口; 308H为数据口。l分析 由于是近距离传输,可以不用MODEM,直接互连。由于采用查询I/O方式,故收/发程序中只需检查发/收准备好的状态是否置位,即可收发1个字节。 发送时查TXRDY是否为1 接收时查RXRDY是否为1l 设计1)接口硬件电路 根据以上分析把二台PC机都当作数据终端设备DTE,它们之间只需TXD,RXD和SG三根线连接就能通信。 主要电路: 8251A串行口 TTL/EIA变换器 波特率发生器 地址译码电路2)软件编程 发送程序:包括初始化,状态查询

18、等。发送程序如下:DATA SEGMENT BUF_T DB 45 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AX MOV DX,309H ;命令口 MOV AL,00H ;空操作,向命令口送任意数 OUT DX,AL MOV AL,40H ;内部复位(使D6=1) OUT DX,AL MOV AL,0CFH ;方式命令字(异步,2位停止位, ;字符长度为8位,无校验,波特 ;率因子为64个/位) OUT DX,AL MOV AL,11H ;工作命令字(ER、TXEN置1) OUT DX,A

19、L MOV CX,2DH ;传送字节数 MOV SI,OFFSET BUF_T ;发送区首址L1:MOV DX,309H ;状态口 IN AL,DX ;查状态位D0 (TXRDY)=1? AND AL,01H JZ L1 ;发送未准备好,则等待MOV DX,308H ;数据口MOV AL,SI ;从发送区取一个字节OUT DX,AL INC SI ;内存地址加1 DEC CX ;字节数减1 JNZ L1 ;未发送完,继续 MOV AX,4C00H ;已送完,回DOS INT 21HCODE ENDS END START接收程序如下:DATA SEGMENT BUF_R DB 45 DUP(?)

20、DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATACSEGBEGIN:MOV AX,DATA MOV DS,AX MOV DX,309H ;命令口 MOV AL,00H ;空操作,向命令口送任意数 OUT DX,AL MOV AL,40H ;内部复位(使D6=1) OUT DX,AL MOV AL,0CFH ;方式命令字(异步,2位停止 ;位,字符长度为8位,无校验, ;波特率因子为64个/位) OUT DX,AL MOV AL,14H ;工作命令字(ER、RXE置1) OUT DX,AL MOV CX,2DH ;接收字节数 MOV DI,OFFSET B

21、UF_R ;接收区首址L2:MOV DX,309H ;状态口 IN AL,DX TEST AL,38H ;同时查3种错误 JNZ ERR ;有错误,到ERR TEST AL,02H JNZ L2 MOV DX,308H ;数据口 IN AL,DX ;接收一个字节 MOV DI,AL ;存一个字节到接收区 INC DI ;内存地址加1 LOOP L2 JMP STOP ;没接收完,继续ERR: (略)STOP:MOV AX,4C00H ;已送完,回DOS INT 21HCODE ENDS END BEGIN例:采用RS-485标准的异步串行通信接口电路设计(1)要求 甲乙两台微机之间,采用全双工

22、异步串行通信,双方在各自的键盘上按键向对方发送字符的同时又可接收对方发来的字符(采用查询方式)。字符格式为:1位停止位,7位数据位,无校验,波特率因子为16。按下ESC键,程序退出。请设计异步同型接口电路。(2)分析 传输方式与上例不同,本例是全双工。 通信标准不同,本例是RS-485。(3)设计 硬件设计 串行通信接口电路以8251A为主,还要加上82C54作波特率时钟发生器,8255控制GATE2,MAX232作电平转换。 软件设计通信程序如下:DATA SEGMENT DATA51 EQU 308H;8251A数据口 CTRL51 EQU 309H;8251A命令口 ERROR DB D

23、ATA IS BAD!0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATABEGIN:MOV AX,DATAMOV DS,AXMOV DS,AXMOV DX,CTRL51;空操作XOR AX,AXLL:CALL CHAR_OUTLOOP LLMOV AL,40H;内部复位OUT DX,ALMOV AL,4AH;方式命令OUT DX,ALMOV AL.37H;工作命令OUT DX,ALKB_TR:MOV AH,0BH;获取按键字符INT 21HCMP AL,0;有建安下吗?JE RECEIVE;无键按下,转接收MOV AH,01;有键按下,读键

24、盘INT 21HCMP AL,1BH;是Esc键?JZ OVER;结束MOV BL,AL;保存获取的按键TRANSMIT:MOV DX,CTRL51;发送数据 IN AL,DX TEST AL,01H;检查发送准备好了吗? JZ TRANSMIT;没准备好,等待 MOV DX,DATA51;准备好,发数据 MOV AL,BL OUT DX,AL JMP KB_TR;发完一个数据后,获取键盘字符 RECEIVE:MOV DX,CTRL51;接收字符 IN AL,DX TEST AL,38H;检查数据出错了吗? JNZ ERRORTEST AL,02;检查数据准备好了吗?JZ KB_TRMOV D

25、X,DATA51;准备好接受一个字符IN AL,DXMOV DL,ALMOV AH,02H;显示接收字符INT 21HJMP KB_TRERROR:LEA DX,ERROR_MISS;错误处理 MOV AH,09HINT 21HJMP KB_TR OVER: MOV AX,4C00H INT 21HCHAR_OUT PROC NEAR;送数子程序 OUT DX,AL PUSH CX MOV CX,100 GG: LOOP GG;延迟 POP CX RETCHAR_OUT ENDP CODE ENDS END BEGIN8251A在网络中的连接注意:8251A后面接什么驱动器,就完成什么样的通信

26、线 路的传送。例:仅接EIA转换,则完成零MODEM的RS232传送。例:仅接RS485转换,则完成RS485传送。例:接EIA转换的同时又接MODEM,则完成专线或共用电话 网的传送。后接RS485转换器,可完成RS485传送(半双工)。(a) MAX485用于半双工DIRODIROREDEDEREVccVcc120120用于方向控制用于方向控制至8251的RXD端至8251的TXD端通信线路(1.2KM)后接RS491转换器,可完成全双工差分传送。DIRODIROVccVccREREDEDE(b) MAX491用于全双工120120至8251的TXD端至8251的RXD端至8251的TXD

27、端至8251的RXD端通信线路(1.2KM) 后接TTL到EIA电平转换器,可完成全双工RS232传送。(c)不采用MODEM时全双工CPU8251ACPU8251ATXDRXDTXDRXD通信线路(15米)电平转换电平转换 后接通信设备,可完成全双工远距离传送。(d)采用MODEM时全双工CPU调制解调器DCDRXDTXDRTSCTSSGDSR调制解调器DCDRXDTXDRTSCTSSGDSR专用电话线8251A+RS232CPU8251A+RS2328.7 基于16550的微机系统串行通行接口 PC机异步通信适配器是微机与微机、MODEM、外设之间的异步通信接口,它和8251A的原理基本相

28、同,但功能要强大。 1、16550的外部引脚特性 UART是通用异步收/发器。INS8250和PC16450有10个寄存器,而PC16550则有11个寄存器,但PC机只分配了7的I/O端口地址,其中有两个端口地址为两个寄存器共用。下表示出了UART的寄存器地址DLABA2A1A0被访问的寄存器适配器地址0000接收数据寄存器(RDR)(读)发送保持寄存器(THR)(写)3F8H0001中断允许寄存器(IER)3F9H1000波特率除数锁存器(BRDL)(低字节)3F8H1001波特率除数锁存器(BRDH)(高字节)3F9H010中断识别寄存器(IIR)(只写)FIFO控制器(FCR)(只写)3

29、FAH011线路控制寄存器(LCR)3FBH100MODEM控制寄存器(MCR)3FCH101线路状态寄存器(LSR)3FDH110MODEM状态寄存器(MSR)3FEH2、16550的内部寄存器及端口地址l 16550内部寄存器l 发送保持寄存器和接收数据寄存器发送: CPU发送保持寄存器发送移位寄存器在发送时钟的作用下,从SOUT引脚输出。接收: 接收移位寄存器接收数据寄存器CPU在接收时钟的作用下,从SIN引脚输入。l 波特率除数 波特率除数(BRD)是16位数,当UART使用的时钟频率为1.8432MHz时,有下列关系: BRD=时钟频率/(16Baud)例:波特率为1200b/s,则

30、波特率除数为: BDR=1843200/(161200)=0060H因此就有波特率与除数对照表:波特率BRDH (高字节)BRDL(低字节)120000H60H240000H30H480000H18H960000H0CHl 中断识别寄存器IIR00000ID2ID1IPIIRD7 D2 D1 D0 有无未处理中断中断类型编码中断源:ID2ID1中断源中断优先级11接收数据出错或中止110接收数据寄存器满201发送保持寄存器空400MODEM状态改变5l 中断允许寄存器IER0000EMSIELSIETBEIERBFI允许MODEM状态改变中断允许线路状态中断允许发送缓冲器空中断允许接收缓冲器满中断IER相应的位是1,则允许中断;相应的位是0,则禁止中断。l 通信线路控制寄存器LCRDLABSBSPEPSPENSTBWLS1WLS0除数锁存器访问允许中止设定附加奇偶标志位选择偶校验选择奇偶校验允许停止位选择字长选择LCR例:数据字长8位,停止位2位,偶校验 MOV DX,3FBH ;LCR口地址 MOV AL,00011111B OUT DX,ALl 通信线路状态寄存器LSR0TSRETHREBIFEPEOEDR发送移位寄存器空发送保持寄存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论