820 likes | 1.01k Views
第 8 章 串行通信接口. §1 接口功能与数据传输方式 §2 串行传送的几个问题 §3 串行通信的数据格式 §4 串行接口标准 §5 串行通信接口任务 §6 用 8250A 组成的串行接口. §8.1 接口功能与数据传输方式. 一、接口功能 接口的功能是在系统总线和 I/O 设备之间传输信号,提供缓冲,满足接口两边时序要求。. 寻址功能 输入输出功能 数据转换功能 联络功能. 中断管理功能 复位功能 可编程功能 错误检测功能. 二、数据传送的方式. 数字信号的传输有并行传输和串行传输
E N D
第8章 串行通信接口 • §1 接口功能与数据传输方式 • §2 串行传送的几个问题 • §3 串行通信的数据格式 • §4 串行接口标准 • §5 串行通信接口任务 • §6 用8250A组成的串行接口
§8.1 接口功能与数据传输方式 一、接口功能 接口的功能是在系统总线和I/O设备之间传输信号,提供缓冲,满足接口两边时序要求。 • 寻址功能 • 输入输出功能 • 数据转换功能 • 联络功能 • 中断管理功能 • 复位功能 • 可编程功能 • 错误检测功能
二、数据传送的方式 • 数字信号的传输有并行传输和串行传输 并行传输是多位二进制数据可以同时传输,提高数据传输的效率。通常以8位、16 位或32位的数据宽度同时进行传输。每一位都要有自己的数据传输线和发送接收器件,在时钟脉冲的作用下数据从一端送往另一端。 串行通信是指在单根导线上将二进制数据一位一位顺序传送,特别适合于远距离传送。对于离计算机较近的外部设备如鼠标、绘图仪、终端等,也常常采用串行方式交换数据。
§8.2 串行传送的几个问题 一、串行数据传送方向 串行通信中,数据通常是在二个站(点对点)之间进行 传送,按照数据流的方向可分成三种传送模式:全双工、半双工、单工 1.全双工(Full Duplex) 数据的发送和接收分别由两根可以在两个不同的站点同 时发送和接收的传输线进行传送,通信双方都能在同一时刻 进行发送和接收操作,选择的传送方式称为全双工制。
A站 B站 发送器 接收器 接收器 发送器 图8.1 全双工方式示意图 特点:①每一端都有发送器和接收器 ②有二条传送线 应用:交互式应用,远程监测控制
A站 B站 发送器 发送器 接收器 接收器 图8.2 半双工方式示意图 2.半双工(Half Duplex) 使用同一根传输线,既可发送数据又可接收数据,但不能同时 收送数据,这样的传送方式就是半双工(Half Duplex)制, 如图8.2所示。 特点:①每端需有一个收/发切换电子开关 ②因有切换,会产生时间延迟 应用:打印机串口,单向传送设备,发送器→接收器
数字信号 模拟信号 数字信号 1 0 1 0 10 10 10 10 计算机 MODEM MODEM CRT 图8.3 调制电话线 二、信号的调制和解调 计算机的通信是要求传送数字信号,而在进行远程数据通 信时,线路往往是借用现有的公用电话网,但是,电话网是为 音频模拟信号的设计的。一般为300~3400Hz,不适合于数据 信号。 因此需要对二进制信号进行调制,以适合在电话网上传输 相应的音频信号,在接收时,需要进行解调,还原成数字信号。
010010 010010 调制器 解调器 1. 什么叫调制? 所调调制就是进行波形变换。或者说进行频谱变换,就是将基带数字信号的频谱变换成适合于在模拟信道中传输的频谱。 2. 作用: 调制器(Modulator)是一个波形变换器,它将基带数字的波形变换成适合于模拟信道传输的波形。 解调器是一个波形识别器,将模拟信号恢复成原来的数字信号。
0 1 0 0 1 1 AM f1 f2 FM 180度 0度 PM 3. 调制方法: 最基本的调制方法有以下几种: (1)调幅(AM) 即载波的振幅随基带数字信号而变化. “1”对应有载波 “0”对应无载波 (2)调频(FM) 即载波频率随数字信号而变化 “0”对应”f1” “1”对应“f2” (3)调相(PM) 即载波初始相位随基带数字信号而变化. “ 0”对应相位0度 “1”对应相位180度
4. 发送时钟和接收时钟 CLK(主时钟) 数据输入寄存器 (串行数据输入) 输入移位寄存器 输入移位脉冲 ÷1,÷16,÷32 接收时钟 数据输出寄存器 (串行数据输出) 输出移位寄存器 ÷1,÷16,÷32 输出移位脉冲 发送时钟
5. 波特率因子 F(时钟频率)=波特率因子*波特率 • 波特率因子:数据传输率(波特率)与时钟频率之间的比例系数. • 给定时钟频率,选择不同的波特率因子可得到不同的波特率。 例如:f = 19.2 kHz,若选波特率因子为16,则波特率为1200 bps。 • 若选定波特率因子和波特率,则相应的确定了对时钟频率的要求。
1200*16=19200(时钟频率)→若外部时钟电路的频率F=1MHz,需用8253分频,试计算分频系数(8253的计数初值)=? • 8253计数初值=时钟频率/(波特率*波特率因子)
8250 外部的 时钟电路 1MHz 8253 19.2KHz ÷1,÷ 16,… CLK OUT N分频 移位脉冲
三、信息的检错与纠错 串行数据在传输过程中,由于干扰而引起误码是难免的, 这直接影响通信系统的可靠性,对通信中的检/纠错能力是衡量 一个通信系统的重要内容。 检错:如何发现传输中的错误,称为检错。 纠错:如何消除错误,称为纠错 例:奇偶校验检错 方阵码检错 循环冗余码(CRC)检错 方阵码检错技术: 采用奇偶校验与“检验和”的综合。 ①7位编码后附加1位奇偶位。
②若干个字符组成一个数据块列成方阵,列向按位相加产生 一个单字节检验和附加到数据块未尾。 1 1 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 奇偶位
四、传输速率 1. 波特率: 是指在串行通信中,在基本波传输的情况下,每秒钟传送的二进制脉冲的数目。 用波特率表示:即1波特=bit/s (位/秒) 常用的标准波特率:110,300,1K,1.2K,2.4K,4.8K,9.6K,19.2K,56K
2.字符速率: 是指每秒所传输的字符数,这个概念使用少。 字符速率与波特率的关系: 1个字符:1个起始位+8个数据位+1个偶数位+2个终止位=12位 如果波特率:12000 则字符速率:12000/12=1000字符/s
面向字符(character Oriented) 同步协议 面向比特(Bit) 分类 面向字节计数 异步协议 §8.3 串行通信的数据格式 通信协议: 是指通信双方的一种约定,包括对数据格式、同步方式,传送速度、传送步骤、检纠错方式等问题作出统一规定。也称通信控制规程。 ISO(Inter national Standard Organization)国际标准化组织。 OSI(Open System Interconnection)开放系统互连参考模型。
1 0 1 0 0 0 1 0 1 空 闲 位 1 0 0 0 1 停 止 位 起始位 数据位 0 低 高 校验位 应用:早期电传机 一、起止式异步通信数据格式 1.格式 ①每个字符总是以起始位开始(“0”),以停止位(“1”)结束。 ②字符之间没有时间间隔要求 ③字符后一位校验位(可没有) 2.特点:是一个字符一个字符传输
SYN SYN SOH 标题 STX 数据块 ETB/ETX 块校验 二、面向字符的同步通信格式 1.功能: 是一次传送若干个字符组成的数据块,并且规定了10个特殊字符作为这个数据块的开头与结束标志以及整个传输过程的控 制信息。 2.数据格式(一帧)
同步通信与异步通信 所有串行通信都需要一个时钟信号来作为数据的定时参考。发送器和接收器用时钟来决定何时发送和读取每一个数据位。 根据传输时采用的是统一时钟还是本地局部时钟,分为同步传输和异步传输两种。 同步传输用一个时钟脉冲确定一个数据位, 异步传输用多个时钟脉冲确定一个数据位(如16个) 同步传输以数据块(当作“位流”看待)为单位传输,异步传输以字符为单位传输,但都称为帧(Frame) 21
同步通信的时钟定时方法 发送方在时钟信号的下降沿发送字节 接收方在时钟信号的上升沿接收字节 时钟 (发送时钟与接收时钟完全同步) 数据(62H) 0 1 1 0 0 0 1 0 MSB LSB 同步传输先发送高位(MSB) 22
异步通信的时钟定时方法 发送方利用发送时钟来决定发送每个位的时刻 接收方检测起始位的下降沿,并用它来同步接收时钟,然后利用接收时钟从每一位的中间接收该位 接收/发送 时钟 数据 (62H) 0 1 0 0 0 1 1 0 0/1 1 1 0 MSB LSB 停止位 奇偶 校验位 异步传输先发送低位(LSB) 起始位 23
异步通信时数据位的检测 波特率因子K=16 Td 起始位 Tc 1 1 1 0 0 0 0 0 0 0 0 0 以后每隔16个Tc检测一次数据的其他位 连续 8 个 0 第9个仍为 0 发送/接收时钟周期:Tc,数据位间隔:TdTc = Td / K, 其中K称为波特率因子(16,32,64) 24
异步通信的一般格式 每个字符由起始位、数据位、校验位、停止位构成。 起始位和停止位用于字符的同步。 从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。 25
异步通信的信息格式如下边的表所示 注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。 例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。
§8.4 串行接口标准 一、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 TxD 发送数据 3 RxD 接受数据 4 RTS 请求发送 5 CTS 允许发送 6 DSR 数据设备准备好 20 DTR 数据终端准备好 7 GND 信号地 2.远距离连接(>15m) 1)需用MODEM和专用电话线 2)需用2~9条信号线(在接口与MODEM之间)
串行通信的接口标准 RS-232-C采用负逻辑,且信号电平与TTL不兼容 串行接口芯片8250、8251均使用TTL电平,应使用电平转换电路与RS-232C连接器连接。 MC1488:TTL电平→RS232电平 (用于发送方) MC1489:TTL电平←RS232电平 (用于接收方)
串行通信的接口标准 采用Modem(DCE)和电话网通信时的信号连接
串行通信的接口标准 采用专用线通讯时的信号连接
串行通信的接口标准 无Modem的标准连接
串行通信的接口标准 无Modem 的最简连接
典型的串行接口的结构 由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。
§8.5 串行通信接口任务 一、串口的基本任务 (1)进行串,并转换 (2)实现串行数据格式化 (3)可靠性检验 (4)实施接口与端口设备之间联络控制 二、串口电路的组成 • 内部有四个寄存器:控制寄存器、状态寄存器、数据输入内部有寄存器、数据输出寄存器 • 数据线 • 联络信号线 • 地址线与片选线 • 串并转换和并串转换
8.3 可编程串行接口8250/16550 • 串行通信:数据被逐位顺序传送 • 串行同步通信:每个字符及位都是同步 • 串行异步通信:同一字符内是同步的,而字符与字符之间不同步(异步) • 协议:通信收/发双方必须共同遵守的基本通信规程 • 协议内容:一般包括收发双方的同步方式、传输控制步骤、差错检验方式、数据编码、数据传输速率、通信报文格式及控制字符定义
异步通信协议 • 为使通信双方确认数据有效,在字符中设置起、止标志位 • 起始标志位:每个字符前添加的一个“0” • 停止标志位:每个字符后添加的若干个“1” • 字符之间的空隙用“1”填满,此时的“1”称为空闲位,“0”为空号、“1”为传号
基本功能: (1)每个字符的数据位数(5~8位),奇偶校验(奇校验、偶校验或无奇偶校验),及停止位数(1,1.5或2个)均可以自由选择 (2)内装可编程波特率发生器,可对输入时钟进行1到(2^16-1)的分频并产生16倍发送波特率的波特率输出信号( )。具有独立的接收器时钟信号输入。允许数据传送波特率为50~96000B/S (3)收和发都具有双重缓冲 (4)具有优先权中断管理系统并提供对发送接收、错误和通信线路状态的中断检测 (5)提供通信线路和MODEM的全部状态 (6)能检测假起始位 (7)能产生和检测中止符 (8)具有自诊断测试功能
芯片引脚 • 面向系统的引脚: • D0~D7 双向数据线。与系统数据总线DB相连接,用以传送数据、控制信息和状态信息。 • CS0,CS1,CS2 片选信号,当它们同时有效时,该8250芯片被选中。 • CSOUT 片选输出信号。当8250的CS0、CS1和CS2同时有效时,CSOUT为高电平。 • MR 主复位信号,高电平有效。当它有效时,除接收数据寄存器、发送保持寄存器、除数锁存器外,其余寄存器的内容均被清除
A0~A2 8250内部寄存器的选择信号。不同的编码 对应于不同的寄存器。 • ADS 地址选通信号。有效时可将CS0,CS1,CS2及A0-A2锁存于8250内部。不需要锁存时,ADS可直接接地。 • DISTR 读选通信号。通常与系统总线的IOR信号相连接。 • DOSTR 写选通信号。通常与系统总线的IOW信号相连接。 • INTR 中断请求信号。当允许8250中断时,接收出错、接收数据寄存器满、发送数据寄存器空以及MODEM的状态均能够产生有效的INTR信号。
8250 的引脚及功能(续) • 面向通信设备的引脚信号 • SIN, SOUT: 串行输入/输出端 • CTS, RTS, DTR, DSR:(同RS232标准中的信号) • RLSD: 即RS232C标准中的DCD信号 • RI:(同RS232标准中的信号) • OUT1, OUT2: 可由用户编程确定其状态的输出端 • BAUDOUT: 波特率信号输出(频率=fCLK/分频值) • XTAL1, XTAL2: 接外部晶振,作为基准时钟fCLK • RCLK: 接收时钟输入(可直接与BAUDOUT相连)
8250与8088系统的连接 D7-D0 电平转换 /驱动器 1488 1489 SOUT SIN RTS DTR DSR DCD CTS RI D7-D0 DISTR DOSTR INTR MR A0 A1 A2 ADS DISTR DOSTR CS2 CS1 CS0 # IOR # IOW 8250 INTR 系 统 总 线 到RS232接口 RESET A0 A1 A2 XTAL1 XTAL2 BAUDOUT RCLK CS XTAL +5V
寄存器结构 • 接收缓冲器RBR • 发送保持寄存器THR • 传输线控制寄存器LCR • 传输线状态寄存器LSR • 调制解调器控制寄存器MCR • 调制解调器状态寄存器MSR • 中断使能寄存器IER • 中断识别寄存器IIR • 分频次数寄存器DLL及DLM 思考:3条地址线如何编码10个寄存器?
8250的内部寄存器(续) • 除数锁存器(DLL,DLH)—BASE+0,1 • 用来保存分频系数,以获得所需的波特率。 • 波特率可以简单地看成每秒传送多少二进制位 • PC机中基准时钟频率fCLK=1.8432MHz,波特率因子K=16。所以,对于指定的波特率B 除数值=1843200/(B×16)=115200/B • 例如,通信速率为9600波特时,除数值=12。 • 注意:写除数前,必须把LCR的最高位(DL位)置1
DLAB A2 A1 A0 被访问的寄存器 串口1的地址 0 0 0 0 接收缓冲器RBR、发送缓冲器THR 3F8H 0 0 0 1 中断允许寄存器IER 3F9H × 0 1 0 中断标识寄存器(只读)IIR 3FAH × 0 1 1 传输线控制寄存器LCR 3FBH × 1 0 0 Modem控制寄存器MCR 3FCH × 1 0 1 传输线状态寄存器LSR 3FDH × 1 1 0 Modem状态寄存器MSR 3FEH 1 0 0 0 除数寄存器(低字节)DLL 3F8H 1 0 0 1 除数寄存器(高字节)DLM 3F9H 寄存器端口地址分配
寻址识别 设置简断 校 验方 式 停止位 数据 帧长 1:分频 0:收发数据、中断 1:1位半或2位 0:1位停止位 1-强制间断 0-正常 00:5位 01:6位 10:7位 11:8位 XX0:校验位无效 001:奇校验 011:偶校验 101:校验0 111:校验恒1 D7 D6 D5 D4 D3 D2 D1 D0 线路控制寄存器LCR(BASE+3) SOUT强制为1 (Break符号) 决定传输时的数据帧格式(通信双方必须一致)