560 likes | 729 Views
第 15 章 串行通信及接口电路. 15.1 串行通信的基本概念. 15.1.1 串行通信的特点: 数据在单条 1 位宽的传输线上按时间先后一位一位地传送; 节省传输线(优点); 数据传输率较低(缺点); 主要适用于 长距离、低速率 的通信中。. 设备 A 发送器. 设备 B 接收器. Data flow. 15.1.2 串行通信涉及的常用术语. 1. 单工、半双工和全双工 ( 数据通信的方向性结构) (1) 单工( Simplex) 特点:仅能进行一个方向的数据传送. 设备 A 发送器 / 接收器. 设备 B 接收器 / 发送器.
E N D
15.1 串行通信的基本概念 15.1.1 串行通信的特点: • 数据在单条1位宽的传输线上按时间先后一位一位地传送; • 节省传输线(优点); • 数据传输率较低(缺点); • 主要适用于长距离、低速率的通信中。
设备A 发送器 设备B 接收器 Data flow 15.1.2 串行通信涉及的常用术语 1. 单工、半双工和全双工(数据通信的方向性结构) (1)单工(Simplex) 特点:仅能进行一个方向的数据传送
设备A 发送器/ 接收器 设备B 接收器/ 发送器 Data flow (2) 半双工(Half Duplex) 特点:数据可以在两个方向上进行传送,但是这种传送绝不能同时进行。【双向,但不同时】
设备A 发送器/ 接收器 设备B 接收器/ 发送器 (3) 全双工(Full Duplex) 特点:能够在两个方向同时进行数据传送。
2. 数据传输率 • 每秒传输的二进制位数,单位为bps(bit per second )也称比特率。 • 波特率―――每秒传输的“符号”(也称信号码元—Signal Element)的个数。 【例如,每秒传送1个符号,则波特率为1波特】
在计算机中,一个“符号”的含义为高、低两种电平,分别代表逻辑值“1”和“0”,所以每个符号的信息量为1比特,此时波特率与比特率刚好一致。在计算机中,一个“符号”的含义为高、低两种电平,分别代表逻辑值“1”和“0”,所以每个符号的信息量为1比特,此时波特率与比特率刚好一致。 • 但在其他一些场合 (例如通信中采用的“相一幅”复合调制技术),一个“符号”的信息含量就不是一个比特,此时,波特率就不等于比特率。
4种相位(0,90,180,270) →实现 3位/信号码元 调制 每种相位有两种振幅值 900 • 标准 波特率系列:50,75,110,150,300,600,1200,…… 101 001 00 1800 110 010 000 100 011 111 2700
现在的电话网是模拟通信系统,它是为传输话音信息而设计的。要在电话网上传送数字信号,必须经过调制和解调。现在的电话网是模拟通信系统,它是为传输话音信息而设计的。要在电话网上传送数字信号,必须经过调制和解调。 • 实现调制和解调两个过程的设备称为“调制解调器”(Modulator Demodulator-Modem)
方法:选取音频范围某一频率的正(余)弦模拟信号作为载波,用以运载所要传送的数字信号。方法:选取音频范围某一频率的正(余)弦模拟信号作为载波,用以运载所要传送的数字信号。 • 用传送的数字信号改变载波信号的幅值、频率或相位,使之在信道上传送; • 到达信道另一端,再将数字信号从载波中取出。
0 1 1 0 1 0 0 1 0 数字信号 按数字信号的值改变载波信号的幅度 (a)调幅 (b)调频 按数字信号的值改变载波信号的频率 按数字信号的值改变载波信号的相位 (c)调相
3. 发送时钟和接收时钟 CLK(主时钟) 数据输入寄存器 (串行数据输入) 输入移位寄存器 输入移位脉冲 ÷1,÷16,÷32 接收时钟 数据输出寄存器 (串行数据输出) 输出移位寄存器 ÷1,÷16,÷32 输出移位脉冲 发送时钟
4. 波特率因子 F(时钟频率)=波特率因子*波特率 • 波特率因子: 数据传输率(波特率)与时钟频率之间的比例系数. • 给定时钟频率,选择不同的波特率因子可得到不同的波特率。 例如:f = 19.2 kHz,若选波特率因子为16,则波特率为1200 bps。 • 若选定波特率因子和波特率,则相应的确定了对时钟频率的要求。
1200*16=19200(时钟频率)→若外部时钟电路的频率F=1MHz,需用8253分频,试计算分频系数(8253的计数初值)=? • 8253计数初值=时钟频率/(波特率*波特率因子)
8251 外部的 时钟电路 1MHz 8253 19.2KHz ÷1,÷ 16,… CLK OUT N分频 移位脉冲
第n+1个字符 停止位或空闲位 第n个字符 空闲位 低位 高位 11…1 1/0 0 1/0 0 1… 1 5-8位数据位 起始位 奇偶校验 5.异步方式与同步方式 (1) 异步方式(Asynchronous):也称“起止同步式”。 • 串行异步传输数据格式:
(2)同步方式(Synchronous) • 串行同步通信信息格式 同步字符(SYN1) 同步字符(SYN2) 数据(DATA) …
同步通信的效率(协议开销) • 例:SDLC/HDLC帧格式: • 假定数据长度为2048位, 通信效率为:2048/(2048+48)=97% 协议开销仅为3% • 一般公式:SDLC/HDLC协议开销=1.0-N/(N+48),其中N为发送数据的比特数。 标志 01111110 地址 8位 控制 8位 数据场 CRC 8位 CRC 8位 标志 01111110
15.5 可编程串行通信接口8251A • Intel 8251A是通用同步/异步收发器USART (Universal Synchronous Asynchronous Receiver/Transmitter) ,它是专为Intel 微处理器设计的,可用作CPU和串行外设的接口电路。 15.5.1 8251A的基本性能 (1) 可用于同步和异步传送。 (2) 同步传送:5~8位/字符;内部或外部字符同步;可自动插入同步字符。 (3) 异步传送: 5~8位/字符;时钟速率为通信速率的1、16、64倍。
(4) 异步传送时,可产生中止字符(BreakCharacter);可产生1、1.5、或2位的停止位;可检测假起始位;可自动检测和处理中止字符。 (5) 波特率:异步:DC-19.2K;同步:DC-64K。 (6) 全双工、双缓冲器发送和接收。 (7) 差错检测:具有奇偶错、溢出错和帧格式错等差错检测电路。 (8) 28脚双列直插式封装。 (9) 全部输入输出与TTL电平兼容;单一+5V电源;单一TTL电平时钟;
Intel 8251A PROGRAMMABLE COMMUNICATION INTERFACE nSynchronous and Asynchronous Operation nSynchronous 5-8 Bit Characters;Internal or External Character Synchronization; Automatic Sync Insertion nAsynchronous 5-8 Bit Characters; Clock Rate-1,16 or 64 Times Baud Rate; Break Character Generation;1,1.5, or 2 Stop Bits; False Start Bit Detection; Automatic Break Detect and Handling; nSynchronous Baud Rate-DC to 64K Baud nAsynchronous Baud Rate -DC to 19.2K Baud nFull Duplex, double Buffered, Transmitter and Receiver nError Detection -Parity, Overrun and Framing nFully Compatible with 8080/8085 CPU n28-Pin DIP Package nAll Inputs and Outputs are TTL Compatible nSingle + 5V Supply nSingle TTL Clock
15.5.2 8251A的结构与引脚功能 1. 8251A 的引脚 8251A有28条引脚,引脚分配如图15.47所示。
D2 1 28 D1 D3 2 27 D0 RxD 3 26 Vcc GND 4 25 RxC D4 5 24 DTR D5 6 23 RTS 8251A D6 7 22 DSR D7 8 21 RESET TxC 9 20 CLK WR 10 19 TxD CS 11 18 TxEMPTY CTS C/D 12 17 RD 13 16 SYNDET/BRKDET RxRDY 14 15 TxRDY 2 图 15.47 8251A的引脚信号
2. 8251A的结构和工作原理 • 8251A的结构方块图如图15.48所示。 • 由图中可看出8251A可分为5个部分。 (1) 接收器 (2) 发送器 (3) 数据总线缓冲器 (4) 调制解调器控制电路 (5) 读写控制逻辑电路
内 部 总 线 发送 缓冲器 并-串 转换 发送器 数据总线 缓冲器 TXD D7-D0 发送控制电路 TXRDY RESET 读/写 控制逻辑电路 CLK TXEMPTY C/D TXC RD WR 缓冲器 接收 串-并 转换 接收器 CS RXD DSR 调制/解调 控制电路 DTR CTS RXRDY RTS 接收控制电路 RXC SYNDET 图 15.48 8251A 内部结构框图
15.5.3 8251A对外接口信号 • 8251A是CPU与外设之间的接口电路,其对外的接口信号可分为两组: • 一组是与CPU的接口信号; • 另一组是与外设之间的接口信号(参见图15.49)。
CLK D7-D0 DTR 8086 8251A 外设 DSR M/IO 译码 RTS AB CTS CS TXD C/D RD RD RXD WR WR TXC TXRDY TXE RXC RXRDY SYNDET 计数器/ 定时器 RESET 图 15.49 8251A的对外接口信号
1. 8251A与CPU之间的接口信号 (1) 复位信号RESET (2) 数据线D7~D0 (3) 读写控制信号 (4) 收发联络信号
8251A的读/写控制真值表 CS C/D RD WR 操作 0 0 0 1 CPU从8251A读数据 0 0 1 0 CPU往8251A写数据 0 1 0 1 CPU从8251A读状态 0 1 1 0 CPU往8251A写控制命令 0 × 1 1 D7~D0为高阻态 1 × × × D7~D0为高阻态
2. 8251A与外设之间的接口信号 有四个Modem控制信号DTR、DSR、RTS和CTS。 另外还有四个信号,如下所述: (1) 接收器时钟RXC (2) 发送器时钟TXC (3) 接收数据线RXD (4) 发送数据线TXD
插脚号 CCITT 信号名 机壳地 101 103 104 105 106 107 102 109 108 125 1 2 3 4 5 6 7 8 20 22 发送数据(TXD) 载波检测 接收数据(RXD) 远 程 Modem 计 算 机 本 地 Modem 请求发送(RTS) 终 端 允许发送(CTS) Modem就绪( DSR) 信号地(GND) 电话线 呼叫指示 载波检测(CD) 终端就绪(DTR) 呼叫指示 图3-5 V.24/RS-232C 信号连接与定时关系 a)信号线连接
15.5.4 8251A的编程 • 8251A的编程包括两个部分,一个是方式指令字,另一个是命令指令字。 • 前者用来定义8251A的工作方式,它必须紧接在复位后由CPU写入; • 后者用来指定芯片的实际操作,只有在写入了方式选择控制字后,才能由CPU写入。 • 1. 方式指令字 • 方式指令字的格式如图15.50所示。
00 同步方式 01 异步方式(X1) 10 异步方式(X16) 11 异步方式(X64) 00 字符长度为5位 01 字符长度为6位 10 字符长度为7位 11 字符长度为8位 1 带奇偶校验 0 不带奇偶校验 1 偶校验 0 奇校验 图 15.50 8251A的方式指令字
2. 命令指令字 • 命令指令字的格式如图15.51所示,它直接让8251A实现某种操作或进入规定的工作状态。
1 允许发送 1 进入搜索方式 1 内部复位 1 数据终端准备好 1 允许接收 1 发送中止字符 0 正常工作 1 清除错误标志 1 请求发送 图 15.51 8251A的命令指令字
3. 状态字 • CPU可以在8251A工作过程中利用输入指令读取当前8251A的状态字,从而可以检测接口和数据传输的工作状态。 • 8251A状态字的格式如图15.52所示。
1 发送器准备好 1 数据通信设备准备好 帧格式错标志 溢出错标志 奇偶错标志 1 接收器准备好 1 发送器空 SYNDET BRKDET 1 已达到同步 0 未达到同步 1 接收到中止字符 0 正常工作 图 15.52 8251A 的状态字
(1) 三个错误标志位PE、OE和FE, PE=1是奇偶校验错;OE=1是溢出错,也称为“超越错”;FE=1是“帧格式错”,它们只对异步方式有效。出现这三种错误时都不中止8251A的工作,它们可以用操作命令字中的ER位来复位。 (2)RXRDY、TXE(TXEMPTY)和SYNDET/BRKDET位与同名引脚的状态含义相同,此处不再重述。 (3) DSR位是数据通信设备准备好状态位, DSR=1表示调制解调器或其他外设已处于准备好状态,此时DSR输入信号有效。
(4) TXRDY是发送器准备好位,它与输出引脚TXRDY的含义有所不同。 TXRDY状态位为“1”只反映当前发送缓冲器已空,而TXRDY输出引脚为“1”时,除发送缓冲器已空外,还需要以CTS=0和TXEN=1为条件,即存在如下逻辑关系: • 输出引脚TXRDY为“1”=发送缓冲器空 ·(CTS=0)·(TXEN=1) • 通常TXRDY状态位提供CPU查询,而TXRDY引脚的输出信号作为中断请求信号发给CPU。
4. 8251A的初始化及数据传送流程图 • 8251A的初始化及数据传送流程图如图15.53所示。
RESET 输出方式指令字 Y 异步方式? N 输出第一个同步字符 Y 是单同步? N 输出第二个同步字符 输出命令指令字 Y 有复位命令否? N 传送数据 输出命令指令字或输入状态字 N 数据完否? Y 图 15.53 8251A 初始化和数据传送流程图
8251A的初始化编程必须在复位操作之后,先设置方式指令字;8251A的初始化编程必须在复位操作之后,先设置方式指令字; • 如果设定在异步方式,则马上要输出命令指令字进行设置,然后才能进行数据传送; • 在数据传送过程中,也可使用命令指令字进行某些操作设置或读取8251A的状态; • 在数据传送结束时,若使用IR位为“1”的内部复位命令使8251A复位,则它又可重新接收方式指令字,从而改变工作方式完成其他传送任务。
如果设定8251A工作在同步方式,那么在输出方式指令字后,应紧跟着输出一个同步字符或两个同步字符,然后再输出命令指令字,后面的操作与异步方式相同。如果设定8251A工作在同步方式,那么在输出方式指令字后,应紧跟着输出一个同步字符或两个同步字符,然后再输出命令指令字,后面的操作与异步方式相同。
5. 编程举例 (1) 异步方式下的初始化编程 • 设定8251A工作于异步方式,波特率因子为64,每字符7个数据位,偶校验,2位停止位,则方式指令字为11111011=FBH。 • 操作命令字的设定,例如使8251A的发送器允许,接收器允许,使状态寄存器中的3个错误标志位复位,使数据终端准备好信号DTR输出低电平,则命令指令字应为00010111=17H。
若8251A的端口地址为50H、51H,则本例初始化程序如下:若8251A的端口地址为50H、51H,则本例初始化程序如下: MOV AL, 0FBH ; 输出方式指令字 OUT 51H, AL MOV AL, 17H ; 输出命令指令字 OUT 51H, AL
(2) 同步方式下的初始化编程举例 • 8251A工作于同步方式,双同步字符,同步字符设定为16H,内同步,偶校验,每字符7个数据位,则方式指令字为00111000B=38H。 • 命令指令字设定为10010111B=97H,使发送器允许,接收器允许,使错误标志复位,开始搜索同步字符,并通知调制解调器,数据终端设备已准备就绪。
8251A的端口地址为50H、51H,则本例初始化程序如下:8251A的端口地址为50H、51H,则本例初始化程序如下: MOV AL, 38H ; 输出方式指令字 OUT 51H, AL MOV AL, 16H ; 输出两个同步字符16H OUT 51H, AL OUT 51H, AL MOV AL, 97H ;输出命令指令字 OUT 51H, AL CPU执行上述程序之后,即完成了对8251A同步方式的初始化编程。
15.5.5 8251A 的应用 1. 利用8251A实现与终端的通信 2. 利用8251A实现双机通信 • 利用8251A实现相距较近(不超过15米)的两台微机通信,其硬件连接如图15.55所示。
由于是近距离通信,因此不用Modem,两台微机直接通过RS-232C相连即可,且通信双方均作为数据终端设备DTE;由于采用EIA RS-232C接口标准,所以需要加接电平转换电路。 • 通信时假设对方已准备好,所以可不使用四根联络信号(指DTR,DSR,RTS,CTS),仅使8251A的CTS接地即可。 • 甲乙两机可进行半双工或全双工通信。CPU与接口之间可按查询方式或中断方式进行数据传送。 • 本例采用半双工通信,查询方式,异步传送。