第七章串行通信接口及总线标准第七章串行通信接口及总线标准
第7章 串行通信接口及总线标准
• 串行通信的基本概念
• 串行通信的物理标准
• 可编程串行通信接口芯片INS8250
• PC系列微机的异步串行通信适配器及其
编程
串行通信的基本概念
并行通信和串行通信
并行通信 串行通信
一组数据的各位同时进行传输 一组数据一位一位进行传输
D7
D6
D5
D4
D3
D2
D1
D0
联络信号线
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
D0
0
D1
1
D2
0
D3
0
D4
1
D5
优点:速度快,控制简单
缺点:连接线多,易受干扰
不适合远距离传输。
优点:连线少
缺点:传输速率较低
主要用于长距离、低速率通信
两个串口等
主要用于近距离、高速率通信(打印机等)
两种串行通信
异步串行通信
同步串行通信
ASYNC(Asynchronous Data Communication)
SYNC(Synchronous Data Communication)
一、异步串行通信
起始位
(start
bit) 空闲位
数据位(data bit)
字符
0/1 0/1 0/10/1 101 1 1…
校验位
(parity
bit)
停止位
(stop
bit)
问题:
双方使用本地时钟
1、波特率(baud rate):
2、帧(frame)格式:
3、错误检测:
低位 高位
每秒传输码元的个数,称~
奇偶校验错误(Parity error)
溢出错误(Overrun error)
帧格式错误(Frame error)
异步传输的时钟定时方法
数据
(61H)
1 0 0 0 1 1 停止位
异步传输先发送低位
(LSB)
发送方利用内部时钟来决定什么时候发送每个
位
接收方检测开始信号的下降沿,然后利用
它的内部时钟从每一位的中间接收该位
位
00起始位
LSB MSB
返回上一张
二、同步串行通信SYNC(Synchronous Data Communication)
使用公共时钟
单同步格式
面向字符
面向位型
双同步格式
外同步格式
同步数据链路控制规程SLDC
高级数据链路控制规程HLDC
先进数据链路控制规程ADCCP
内同步格式
公共时钟
发送方 接收方
用一根同步时钟线
来同步收发数据
由传输的数据中
携带同步信息
通过调制解调器
从数据流中提出
同步信号,用锁
相技术获得。
同步通信的时钟定时方法
数据(62H)
0
同步传输先发送高位(MSB)
发送方在时钟信号的下降沿发送字节
接收方在时钟信号的上升沿接收字节
时钟
(发送时钟与接
收时钟完全同步)
1 1 0 0 0 1 0
LSBMSB
同步传送数据格式
(a) 单同步数据格式;(b) 双同步数据格式;(c) SDLC数据格式;
(d) HDLC数据格式;(e) 外同步格式
单同步数据格式
双同步数据格式
SDLC数据格式
HDLC数据格式
外同步格式
三、同步通信协议
1、同步方式通信的特点
⑴ 异步方式中并不要求收、发两端对传输数据的每一位
均保持同步,而仅要求在一个字符的起始位后,使其中
的每一位同步。而同步方式通信则要求对传送数据的每
一位都必须在收、发两端严格保持同步,即所谓“位同步”
。因此,同步方式中,收、发两端需用同一个时钟源作
为时钟信号。
⑵ 同步方式传送的字符没有起始位和停止位,它不是用
起始位表示字符的开始,收发双方的同步方法可分为
外同步法和内同步法。外同步法是在发送数据之前向接收
端发送一串时钟脉冲,接收端按这个时钟频率调整自己
的时序,使接收时钟频率锁定在接收到的时钟频率上,
并作为同步时钟来接收数据。内同步法是接收端从接收
到的数据信息波形本身提取同步的方法。
⑶ 同步通信协议分为面向字符和面向比特两种。
⑷同步通信时,字符数据不允许有空隙。当线路空闲或
没有字符可发送时,可发送收、发双方约定的同步字符。
⑸ 同步通信传输效率高,适合于快速、大量数据的传送。
2、同步通信协议概述
如上所说,同步通信协议可分为两类:
⑴ 面向字符的同步通信协议,这类协议目前有两种:
① BM—国际标准化组织ISO提出的基本型同步通信协
议;
② BSC —IBM公司提出的二进制同步通信协议。
⑵ 面向比特的同步通信协议
① HDLC —国际标准化组织ISO提出的高级链路控制协
议;
② SDLC —IBM公司提出的同步数据链路控制协议;
③ ADCCP —美国国家标准化协会ANSI提出的先进数
据通信协议;
④ 第二级—国际电报电话咨询委员会CCITT提出
的协议;
⑤ DDCMP— 美国DEC公司提出的数字数据通信信息协议。
3、面向字符的同步通信协议
这种协议较早在二十世纪60年代就开始发展,目前仍在
使用,其典型代表是IBM公司提出的二进制同步通信协议
BSC,下面简单介绍一下这种通信协议。
⑴ 面向字符的同步通信协议BSC的帧格式
该协议以若干字符组成一个信息块一起发送,一个信
息块称为一帧,用一些特殊定义的字符来定界一帧的开
始、结束和分隔不同的段以及控制整个信息交换过程。
此种协议的一般帧格式如图所示。
SYN是同步字符,每帧开始有若干个SYN。接收端一
• 旦检测到同步字符SYN,就知道一帧开始了。
• SOH(Start of Header)表明标题的开始,称为序始符。
• 标题中可以包括源地址、目的地址和路由指标等信息。
• STX(Start of Text)称为文始符,标志着传送数据正
文的开始。
• 数据块是传送正文的内容。
• ETB(End of Transmission Block)称为组终符
• ETX(End of Text)称为文终符。ETB用在正文很长,
需分成若干个数据块,在不同帧中传送的情况,除最后
• 一个数据块后用 外,其余数据块后都用ETB。
SYN SYN SOH 标题 STX 数据块 ETB或ETX 块校验
⑵ 特殊定义的字符
三、同步与异步的差别
1、时钟
要求
同步串行通信 异步串行通信
必须精确、相等的时钟 收发时钟基本相等即可
2、控制
信息
有累积误差 累积误差下字节消除
整块数据附加帧信息 每个字符附加帧信息
传输数据效率高,
信息量大。
高速数据链路
传输效率固定
低速数据链路
3、校验
方式
16位CRC循环冗余校验 采用1位奇偶校验
可靠性高 可靠性比同步的低
高 低4、复杂
程度
串行通信连接方式
发送器/
接收器
发送器/
接收器
发送器/
接收器
发送器/
接收器
A站 B站
单工通信Simplex
半双工通信Half Duplex
全双工通信Full Duplex
发送器 接收器
调制解调器(Modem)
电话线传送音频300~3400HZ,不适合
不适合传数据传输。
模拟调制:
调幅(AM)、调频(FM)、调相(PM)
数字调制:
幅移键控(ASK)、频移键控(FSK)、相移键控(PSK)
计算机常用频移键控(FSK)
硬件实现
一、UART——通用异步收/发器
(Universal Asynchronous Receiver/Trasmitter)
串行通信的校验方法
一、奇偶校验
二、方阵校验
三、 CRC循环冗余校验
二、USRT——通用同步收/发器
(Universal Synchronous Receiver/Trasmitter)
三、USART——通用同步异步收/发器
(Universal Asychronous/Synchronous Receiver/Trasmitter)
四、ACIA——异步通信接口适配器
(Asyn-chronous Communication InterfaceAdapter)
串行通信的物理标准
常用的串行通信标准由
RS-232C、RS-422A、RS-485A,RS-423A
串行接口的标准化,就是指与通信设备相连接的这组信
号的内容、形式以及接插件引脚的排列等的标准化。
EIA RS–232C是美国电子工业协会推荐标准
(Electronic Industries Association Recommended
Standard——232C)
第232代号的标准,C为标准的版本号。
11..RS-232CRS-232C的引脚定义的引脚定义
RS-232C接口标准使用标准的25针D型连接器即
DB-25。PC机已使用9针连接器取代25针连接器。
9针连
接器引
脚号
25针连
接器引
脚号
名 称
25针连
接器引
脚号
名 称
1 保护地 12 次信道载波检测
3 2 发送数据TxD 13 次信道清除发送
2 3 接收数据RxD 14 次信道发送数据
7 4 请求发送RTS 16 次信道接收数据
8 5 清除发送CTS 19 次信道请求发送
6 6 数据装置准备好DSR 21 信号质量检测
5 7 信号地GND 23 数据信号速率选择
1 8 载波检测CD 24 终端发生器时钟
4 20 数据终端准备好DTR 9、10 保留
9 22 振铃提示RI 11 未定义
15 发送时钟TxC 18 未定义
17 接收时钟RxC 25 未定义
• TxD 发送数据——串行数据的发送端。
• RxD 接收数据——串行数据的接收端。
• GND 信号地——为所有的信号提供一个公共的参考电平
• RTS 请求发送——当数据终端设备准备好送出数据时,就
发出有效的RTS信号,用于通知数据通信设备准备接收数据。
• CTS 清除发送——当数据通信设备已准备好接收数据终端
设备的传送数据时,发出CTS有效信号来响应RTS信号。
• DTR 数据终端准备好——通常当数据终端设备一加电,该
信号就有效,表明数据终端设备准备就绪。
• DSR 数据装置准备好——通常表示数据通信设备(即数据装
置)已接通电源连到通信线路上,并处于数据传输方式,而不
是处于测试方式或断开状态。
• CD 载波检测——当本地调制解调器接收到来自对方的载波信
号时,就从该引脚向数据终端设备提供有效信号。该引脚缩
写为DCD。
• RI 振铃指示——当调制解调器接收到对方的拨号信号期间,
该引脚信号作为电话铃响的指示,保持有效。
22..RS-232CRS-232C的连接的连接
计算机由RS-232C接口连接调制解调器
两台微机直接利用RS-232C接口进行短距离通信
RS-232C接口连接方式(续)
• 一种简化的连接方式(Null Modem)
– 适用于双机直连
TD
RD
RTS
CTS
DCD
GND
DTR
DSR
RI
TD
RD
RTS
CTS
DCD
GND
DTR
DSR
RI
3.RS-232C的电气特征
“1 ”=-3V~-25V
传号 MARK “1 ” 空号 SPACE “0 ”
“0 ”=+3V~+25V
PC机中-3V~-12V PC机中+3V~+12V
(2)电平转换
(1)(1)负逻辑负逻辑电平
EIA
电平
TTL电平或
CMOS电平 MCl488
MCl489 EIA
电平
TTL电平或
CMOS电平
MAX232
TTL电平或
CMOS电平
TTL电平或
CMOS电平
EIA
电平
EIA
电平
EIA电平
(3)其他电气参数:电缆的旁路电容<2500pF(包括电缆电容)
开路电压<25V
一般传输最大速度20kbps,小于15cm
RS-423A、RS422、RS485
可编程串行通信接口芯片INS8250
1、进行串行/并行转换,实现串行数据格式化
0/1 0/1 0/10/1 101 1 1…
停止位可选
1、、2位
可选5、6、7、8位数据位
可选择奇校验、
偶校验、不校验
或校验位强制为
“1”/“0”
起始位
为1位
空闲位
为“1”
发送时自动插入起始位、停止位和奇偶校验位
一、8250内部结构及外部引脚
2、接收和发送电路
SIN
0/1 0/1 0/10/1
接收移位寄
存器RSR
接收缓冲寄
存器RBR
接收同
步控制
传输
线控
制寄
存器
LCR
传输线状
态寄存器
LSR
RCLK
SOUT
0/10/10/1 0/1
发送移位寄
存器TSR
发送缓冲寄
存器TBR
发送同
步控制
波特率
发生器
双缓冲寄存器结构,保证数据的连续发送
3、波特率发生器
分频次数寄
存器(高)
分频次数寄
存器(低)
发送缓
冲寄存
器TBR
选择和
读/写控
制逻辑
除数寄存器保存设定的分频系数
分频系数=基准时钟频率÷(16×比特率)
起 始 位
16 T
T
16 T8 T
4、中断控制系统
中断识别寄
存器IIR
中断允许寄
存器IER 中断
控制
逻辑
5、MODEM控制逻辑
MODEM
状态寄存器
MODEM
控制寄存器调制
解调
控制
逻辑
允许发送信号
请求发送信号
发送数据终端准备好信号
接收数据装置准备好信号
MODEM接收信号检测输入
振铃指示输入
用户指定两
个输出信号
SIN接收移位寄
存器RSR
接收缓冲寄
存器RBR
接收同
步控制
传输
线控
制寄
存器
LCR
传输线状
态寄存器
LSR
RCLK
SOUT发送移位寄
存器TSR
发送缓冲寄
存器TBR
发送同
步控制
分频次数寄
存器(高)
分频次数寄
存器(低)
发送缓
冲寄存
器TBR
中断识别寄
存器TSR
中断允许寄
存器IER 中断
控制
逻辑
MODE
M状态
寄存器
MODE
M控制
寄存器
调制
解调
控制
逻辑
数据总线控
制器
选
择
和
读/
写
控
制
逻
辑
8250内部寄存器和控制字及状态字
PC机的串口地址COM1口 03F8H~03FEH
8250用3根地址线,7个地址,区分出10个寄存器
状态寄存器3个 LSR,MSR,IIR
PC机的串口地址COM2口 02F8H~02FEH
A8选中是COM1还是COM2
初始化寄存器5个 LCR,MCR,IER,DLL,DLH
数据寄存器2个 TBR,RBR
其中TBR,RBR
用读写区分
DLH
DLL
LCR中D7位DLAB
1 0
0 0 0
0 0 1
TBR和RBR IER
IER
A2A1A0
一、数据寄存器
假设COM为03F8H或02F8H
COM+0 发送缓冲寄存器TBR
接收缓冲寄存器RBR
只写
只读
二、除数锁存器:(分频次数)
DLLCOM+0
COM+1
DLAB=0
DLH
DLAB=1对外部时钟分频
波特率=外部时钟/16分频次数
例如:fosc=,波特率为4800BAUD,
N=*106/(16*4800) N=24=18H
分频次数=外部时钟/16波特率
三、传输线控制与状态寄存器
DLAB SBPK SPB EPS PEN STB D1 D0
寄存器选择
0正常值
1除数寄存器
中止字符
0无作用
1发送中
止字符
校验位设置
*0无校验
01设置奇校验
11设置偶校验
附加
校验位
0无附加
1附加
停止位个数
0 1位
1 位(数据位为5位时)
1 2位(数据位为6~8位时)
数据位个数
00 5位
01 6位
10 7位
11 8位
COM+3
例如:设为COM1口,数据位为
7位,2位停止位,附加奇校验位,
fosc=,波特率为4800
COM EQU 3F8H
MOV DX,COM+3
MOV AL,80H
OUT DX,AL
MOV DX,COM
MOV AL,18H
OUT DX,AL
MOV DX,COM+1
MOV AL,00H
OUT DX,AL
MOV DX,COM+3
MOV AL,0010 1110B
OUT DX,AL
1、LCR
2、LSR
0 TSRE THRE BI FE PE OE DR
D0D1D2D3D4D5D6D7
COM+5
发送移位
寄存器空
接收数据
缓冲器满
溢出错
发送保持
寄存器空
检测到
间断
帧错误
奇偶错
MOV DX,COM+5
IN AL,DX
TEST AL,?
1)接收错误:00011110B,1EH
2)接收数据:00000001B,01H
2)发送数据:00100000B,20H
0 0 0 LOOP OUT2 OUT1 RTS DTR
D0D1D2D4D7 – D5 D3
四、MODEM控制
11、调制解调器控制寄存器、调制解调器控制寄存器MCRMCR
1 自测循环
0 正常工作
有效引脚状态设置
1 低 0 高
22、调制解调器状态寄存器、调制解调器状态寄存器MSRMSR
COM+4
dCTSdRSLDCTS DSR RI dDSR dRIRLSD
D0D1D2D3D4D5D6D7
高4位中某位为1,说明相应
输入信号当前为低电平有效
低4位中某位为1,
则说明从上次CPU读取该状态字后
相应输入信号已发生改变
MSR反映4个控制输入信号的当前状态及其变化
MSR低4位中任一位置1,均将产生调制解调器状态中断,
当CPU读取该寄存器或复位后,低4位被清零
COM+6
五、中断控制
11、中断允许寄存器、中断允许寄存器IERIER
D0D1D2D30000
1,
允
许
0,
禁
止
M
O
D
E
M
状
态
改
变
接
收
错
误
发
送
缓
冲
区
空
接
收
缓
冲
区
满0 0 0 0 0 ID1 ID0 IP
0 有中断
1 无中断
标识哪一级有中断
ID1 ID0 优先权 中断类型
1 1
1 0
0 1
0 0
1
2
3
4
接收线路状态中断
接收数据准备好中断
发送保持寄存器空中断
调制解调器状态中断
D0D1D2D7-D3
22、中断识别寄存器、中断识别寄存器IIRIIR
COM+1
COM+2
4级中断( 4个优先级、10个源)
1. 接收线路状态中断
– 奇偶错
– 溢出错
– 帧错
– 收到中止字符
2. 接收器数据准备好中断
3. 发送保持寄存器空中断
4. 调制解调器状态中断
– 清除发送状态改变
– 数据终端准备好状态改变
– 振铃接通变成断开
– 接收线路信号检测状态改变
优先权高
优先权低
8250初始化编程
对8250的内部控制寄存器进行编程写入
⑴写入除数寄存器DLL,DLH——设置传输率
COM+0,COM+1
⑵写入通信线路控制寄存器LCR——设置字符格式
COM+3
⑶写入调制解调器控制寄存器MCR——设置工作方式
COM+4
⑷写入中断允许寄存器IER——设置中断允许或屏蔽
COM+2
1)接收错误:00011110B,1EH
2)接收数据:00000001B,01H
2)发送数据:00100000B,20H
查询方式
⑴DLL
COM+0
DLH
COM+1
⑵LCR
COM+3
⑶MCR
COM+4
⑷IER
COM+2
例:初始化8250不用中断,查询方式,检测同
时发送数据,设为COM1口,数据位为7位,2
位停止位,附加奇校验位,fosc=
,波特率为4800
COM EQU 3F8H
MOV DX,COM+3
MOV AL,80H
OUT DX,AL
MOV DX,COM
MOV AL,18H
OUT DX,AL
MOV DX,COM+1
MOV AL,00H
OUT DX,AL
MOV DX,COM+3
MOV AL,0010 1110B
OUT DX,AL
MOV DX,COM+4
MOV AL,03H
OUT DX,AL
MOV DX,COM+2
MOV AL,00H
OUT DX,AL
……
LOP:MOV DX,COM+5
IN AL,DX
TEST AL,1EH
JNZ ERROR
TEST AL,01H
JNZ RCV
TEST AL,20H
JZ LOP
…;发送程序
JMP LOP
RCV:
…;接收程序
JMP LOP
ERROR:
…;错误程序
JMP LOP