350 likes | 562 Views
情境四 数据通信 单元二串行通信. 本章知识点: 1 、掌握串行通信原理及工作方式 2 、了解串行通信接口 8251A 的内部结构及引脚功能 3 、掌握 8251A 命令字、控制字、状态字的设置及其工作方式 4 、掌握 8251A 编程. 4.1 、数据传送的方式. 数字信号的传输有并行传输和串行传输 并行传输 是多位二进制数据可以同时传输,提高数据传输的效率。通常以 8 位、 16 位或 32 位的数据宽度同时进行传输。每一位都要有自己的数据传输线和发送接收器件,在时钟脉冲的作用下数据从一端送往另一端。.
E N D
情境四 数据通信 单元二串行通信 本章知识点: 1、掌握串行通信原理及工作方式 2、了解串行通信接口8251A的内部结构及引脚功能 3、掌握8251A命令字、控制字、状态字的设置及其工作方式 4、掌握8251A编程
4.1、数据传送的方式 • 数字信号的传输有并行传输和串行传输 并行传输是多位二进制数据可以同时传输,提高数据传输的效率。通常以8位、16 位或32位的数据宽度同时进行传输。每一位都要有自己的数据传输线和发送接收器件,在时钟脉冲的作用下数据从一端送往另一端。
串行通信是指在单根导线上将二进制数据一位一位顺序传送,特别适合于远距离传送。串行通信是指在单根导线上将二进制数据一位一位顺序传送,特别适合于远距离传送。 对于离计算机较近的外部设备如鼠标、绘图仪、终端等,也常常采用串行方式交换数据。
特点: • 并行通信:数据各位同时进行传送。 快、多(数据线)、近 • 串行通信:数据一位接一位顺序传送,可只用一根数据线传送多位信息。 慢、少、远
§4.2 串行传送的几个问题 一、串行数据传送方向 串行通信中,数据通常是在二个站(点对点)之间进行传送,按照数据流的方向可分成三种传送模式:全双工、半双工、单工
1.单工(Simplex) 单工数据线仅能在一个方向上传输数据,两个站之间进行通信时,一边只能发送数据,另一边只能接收数据。 B A 接收器 发送器
A站 B站 发送器 发送器 接收器 接收器 图8.2 半双工方式示意图 2.半双工(Half Duplex) 使用同一根传输线,既可发送数据又可接收数据,但不能同时收送数据,这样的传送方式就是半双工(Half Duplex)制,
特点:①每端需有一个收/发切换电子开关 ②因有切换,会产生时间延迟 应用:打印机串口,单向传送设备,发送器→接收器
A站 B站 发送器 接收器 接收器 发送器 图8.1 全双工方式示意图 3.全双工(Full Duplex) 数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,选择的传送方式称为全双工制。
特点:①每一端都有发送器和接收器 ②有二条传送线 应用:交互式应用,远程监测控制
二、串行通信有两种基本方式 • 异步通信,:帧格式传送,信息量不大 • 1个起始位,0 • 5~8个数据位 • 奇偶校验位 • 1~2个停止位,0 2.特点:是一个字符一个字符传输
SYN SYN SOH 标题 STX 数据块 ETB/ETX 块校验 • 同步通信,:严格同步,发送同步字符,数据连续,信息量大,速度较高 按数据块传送——把要传送的字符顺序连接起来 数据块前有同步字符,后有检验字符 特点: ①一次传送是一个数据块,传输效率提高了; ②采用了一些传输控制字,增加了通信控制能力和校验能力; ③存在问题:由于数据字符与特定字符可能代码相同,发生误 解,因此,在数据字符前插入转义字符DLE,以示区别。这种 方式称为“字符填充”。
波特率(Band rate) 三、串行传送速率 • 数据传送速率:每秒传送的二进制代码的位数。 • 波特率反映了串行通信的速率,也反映了对于传输通道的要求。波特率越高,要求传输通道的频率越宽,一般异步通信的波特率在1200b/s~115200b/s之间。
§4.3 串行通信接口任务 一、串口的基本任务 (1)进行串,并转换 (2)实现串行数据格式化 (3)可靠性检验 (4)实现接口与端口设备之间联络控制
二、串口电路的组成 • 内部有四个寄存器:控制寄存器、状态寄存器、数据输入内部有寄存器、数据输出寄存器 • 数据线 • 联络信号线 • 地址线与片选线 • 串并转换和并串转换
§4.4 用8251A组成的串行接口 • 功能:异步起止协议 • 同步面向字符协议 • 组成:接收器、发送器、调制控制、读/写控制、数据总线缓冲器 一、8251A的内部逻辑与外部信号 1.结构框图 8251A是通用同步异步接收/发送器USART Universal/Synchronous Asynchronous Receiver and Transmitter)
数据总线 缓冲器 发送缓冲器 发送控制 TXD TXRDY TXEMPTY RESET 读/写 控制逻辑 CLK TXC C/D RD WR CS 接收缓冲器 接收控制 RXD DTR 调制控制 RXRDY DSR SYNDET/BD RTS RXC CTS D7-D0
1.发送器 ①TXRDY(Transmitter Ready):发送器准备好,高电平有效 ②TXE(Transmitter Empty):发送器空,状态线,高有效 ③TXD:发送数据线 ④TXC:发送器输入时钟 2.接收器 ①RXD:接收数据线 ②RXRDY:接收器准备好 ③TXEMPTY:接收器空 ④TXC:接收器输入时钟 3.与调制器的接口接号 ①DTR:数据终端准备好 ②RTS:请求发送
4、读写控制电路 ③DSR:数据装置准备好 ④CTS:清除传送 (1)RESET 复位信号,输入,高电平有效 (2)CLK 时钟,输入 (3)WR* 写,低电平有效 (4)RD* 读,低电平有效 (5)CS* 片选信号,低电平有效 (6)C/D* 控制/数据信号,输入 C/ D*=1:表示当前通过数据总线传送的是控制信息或状态字 C/D*=0:传送的是数据信息 C/D*,RD*,WR*,CS*几个信号组成的读写操作如表所示:
D7 D6 D5 D4 D3 D2 D1 D0 S1 S0 EP PEN L1 L0 B1 B0 停止位 奇偶校验 字符长度 波特因子 (同步) (异步) ×0=内同步 00=不用 ×1=外同步 01=1位 0×=双同步 10=1.5位 1×=单同步 11=2位 00=同步 01=×1 异步 10=×16 - 11=×64 - ×0=无校验 01=奇校验 11=偶校验 00=5位 01=6位 10=7位 11=8位 二、8251的控制字与状态字 1.工作方式字 约定双方的通信方式,数据格式,传送速率 a.作用:对8251A工作方式进行选择,是异步方式还是同步方式 b.格式:
例1:异步通信中,若帧数据格式为:字符长度8位,停止位2位,奇校验,波特率因数是16,则工作字是:例1:异步通信中,若帧数据格式为:字符长度8位,停止位2位,奇校验,波特率因数是16,则工作字是: 11011110B=DEH outportb(0x2B9,0xde); 例2:同步通信中,若帧数据格式为:字符长度8位,双同步 字符,内同步方式,奇校验,则工作字是:00011100B=1CH。 2.工作命令字 a.作用:是确定8251A的实际操作,迫使8251A进行某种操作或工作状态,以便接收或发送数据。
D7 D6 D5 D4 D3 D2 D1 D0 EH IR RTS ER SBRK RXE DIR TXEN b.格式: 进入 搜索 方式 内部 复位 发送 请求 错误 标志 复位 发 中止 字符 接收 允许 数据 终端 准备好 发送 允许 D7=1 有效 D6=1 有效 D5=1 有效 D4=1 复位 ER D3=1,发中止字符(空号) =0,正常操作 D0=1,允许发送 =0,禁止发送 D2=1,允许接收 =0,禁止接收 D1=1,已准备好 =0,正常操作 例3:使8251内部复位,并且允许接收,又允许发送,则程序段为:
D7 D6 D5 D4 D3 D2 D1 D0 DSR SYNDET TE OE PE TXE RXRDY TXRDY 数传机 就绪 同步 检出 格 式 错 溢 出 错 奇 偶 错 发送器 空 接收 准备好 发送 准备好 MOV DX,309H ;8251命令口 MOV AL,01000000B ;置D6=1,使内部复位 OUT DX,AL MOV AL,00000101B ;置D0=1,D2=1,允许接收和发送 3.状态字 a.作用:8251A执行命令进行数据传送后的状态字存放在状态寄 存器中,CPU通过读出状态字进行分析和判断,以决定下一步的 操作。 b.格式:
例4:若查询8251A接收器是否准备好,则用下列程序段:例4:若查询8251A接收器是否准备好,则用下列程序段: MOV DX,309H ;状态口 IN AL,DX ;读状态字 AND AL,02H ;查D1=1?(RXRDY=1?) JZ L ;未准备好,则等待 MOV DX,308H ;数据口 例5:检查出错信息,则用下列程序段 MOV DX,309H ;状态口 IN AL,DX TEST AL,38H ;检查D5D4D3三位(FE,OE,PE) JNZ ERROR ;若其中有一位为1,则出错
4.8251A的方式字和命令的使用 (1)方式字: 约定双方通信的方式,数据格式,传送速率等参数。 命令字:规定是发送数据,还是接收数据。 状态字:何时发/收、取决于状态字。 (2) 8251A的寻址 c/d接A0,对CPU始终是偶地址,始终使用低8位传输数据,对8251,可以分奇地址和偶地址,偶地址传输数据,奇地址传输方式字、命令字、状态字。
(3)8251A的初始化编程 异步方式下的初始化 8251A的初始化总是从设置方式指令开始,命令指令不能放在方式指令之前。而方式指令必须紧跟在复位之后。如果在使用过程中改变8251A的工作方式,也必须先用命令指令的D6=l使825lA复位。 同步方式下的初始化 初始化的流程是:程序往此端口输出的依次为方式字、同步字符和控制字。 三、8251A应用举例 1.要求 在甲乙二台PC之间进行串行通信,甲发送乙接收,要求把甲机上开发应用程序(其长度为2DH)传送到乙机中去。
采用: ①起止式异步方式, ②字符长度为8位, ③ 2位停止位, ④波特率因子为64,无校验, ⑤波特率为4800, ⑥CPU与8251A之间用查询方式交换数据口地址分配是:309H为 状态命令/状态口,308H为数据口 2.分析 由于是近距离传输,可以不设MODEM,直接互连,同时,是 采用查询I/O方式,故收/发程序中只需检查发/收准备好的状 态是否置位,即可收发1个字节。
3.设计 1)硬件连接 DTE(Data Terminal Equipment) 根据以上分析把二台PC机都当作数据终端设备DTE,它们之间只需TXD,RXD和GND三根线连接就能通信。 2)软件编程 ①发送程序:包括初始化,状态查询,I/O
§4.5 串行接口标准 一、EIA-RS-232接口标准 RS-232标准是美国EIA(电子工业联合会)与BELL等公司一起开发的,1969年公布的通信协议,适合的数传率:0~20Kbps。 1.电气特性 RS-232对电气特性,逻辑电平和各种信号线的功能都作了规定。 逻辑“1”=-3V~-15V “0”=+3V~+15V 与TTL逻辑电平不一样,可用TTL/EIA电平转换器进行,如 MC1488,MC1489IC。
+15V +15V +15V TTL EIA电平 TTL MC1488 MC1489 RS-232 采用EIA电平比TTL电平具有更强的抗干扰性能。 另外,使用MAX232电平转换省电,可连接二对收/发线,只用单电源。 2.机械特性 1)连接器(Connector) 常用二种: ①DB-25型,25脚,只用9个信号(2个数据线,6个控制线,1个地址),如下图所示。
13 25 (-)接收电流 11 发送电流(-) 22 发送电流(+) 9 8 20 DCD 7 1 GND DCD 6 6 DSR 18 2 DSR (+)接收电流 RXD 7 5 3 RTS CTS TXD 8 4 4 CTS RTS DTR 9 3 5 RI RXD GND 2 14 TXD 1 DB-9型连接器 DB-25型连接器 ②DB-9型 9针,9针全用,如下图。
2.电缆长度 RS-232直接连接的最大物理距离15M,通信速率<20Kbps。 3.RS-232C接口信号的定义 25线:数据线4条(2,3,14,16) 控制线11条(4,5,6,8,12,13,19,20,22,23) 定时信号线3条(15,17,24) 地线2条(1,7) 备用5条(9,10,11,18,25) 未定义 4.信号线的连接 1)近距离连接(<15m) 只用3条线(发送线TXD,接收线RXD,信号地线)
A机 B机 2 2 TXD TXD 3 3 RXD RXD 7 7 TXD TXD 4 计 算 机 5 6 接 口 20 调 制 解 调 器 4 5 6 20 调 制 解 调 器 终 端 2 2 RXD RXD RTS RTS ┇ CTS ┇ CTS DSR 专用电话线 DSR SG SG DCD DCD 采用MODEM时RS-232信号线的使用 2.远距离连接(>15m) 1)需用MODEM和专用电话线 2)需用2~9条信号线(在接口与MODEM之间) 采用MODEM时RS-232信号线的使用