文档介绍:第6章计算机串行通信
哈尔滨工业大学航天学院
《C语言在测量与控制中的应用》系列课件
概述
并行通讯:
数据各位同时发送,
数据线条数多,距离近
串行通讯:
数据各位依次发送,
数据线条数少,距离远。
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
1 1 0 0 1 0 0 1
发送
接收
1 0 0 1 0 0 1 1
同步与异步
同步通讯:收发双方必须建立准确的定时信号,每个字符不加任何附加位连续发送。
优点:传输效率高
缺点:实现复杂。
异步通讯:发送一组数据称为一帧,包括 1位起始位,5~8位数据位,1~2位校验位,1~2位终止位。帧与帧之间的间隔长度可以不确定。
优点:收发双方不需要严格同步,每一帧发送时都要重新启动,定时的误差不会积累。
缺点:每一帧都要有起始、终止、校验信号,传输效率低。
单工与双工
单工:一方只能发送,另一方只能接收。
双工:双方都可以发送和接收。
半双工:某一时刻,只能一方发送另一方接收。
全双工:双方都能同时发送和接收。
硬件握手和软件握手(联络)
硬件握手:利用专用联络线电平的高低,通知对方是否准备好。
软件握手:用软件发出规定的联络信号。
Intel8250可编程异步串行接口芯片
接收移位寄存器
接收数据寄存器
波特率时钟发生器
波特率因子MSB
波特率因子LSB
发送保持寄存器
发送移位寄存器
线路状态寄存器
线路控制寄存器
中断允许寄存器
中断标识寄存器
中断控制逻辑
MODEM控制寄存器
MODEM状态寄存器
MODEM控制逻辑
数据I/O缓冲器
内部总线
SIN
SOUT
D7~D0
2的I/O端口地址
COM1
COM2
DLAB
寄存器名称及作用
3F8H
2F8H
0
写发送保持寄存器
3F8H
2F8H
0
读接收数据寄存器
3F8H
2F8H
1
写入波特率因子LSB
3F9H
2F9H
1
写入波特率因子MSB
3F9H
2F9H
0
写中断允许寄存器
3FAH
2FAH
写中断标识寄存器
3FBH
2FBH
写线路控制寄存器
3FCH
2FCH
写MODEM控制寄存器
3FDH
2FDH
读线路状态寄存器
3FEH
2FEH
读MODEM状态寄存器
DLAB
是线路控制寄存器D7位
线路控制寄存器(8位)
D7=0: 正常值;D7= 1:寻址波特率因子寄存器
D6=0: 正常值;D6 =1:设置间断,表明发送终止
D5D4D3
0 0 0 无校验位
0 0 1 奇校验
0 1 1 偶校验
1 0 1 恒1
1 1 1 恒0
D2=0:1位停止位
D2=1:2位停止位
D1D0
0 0 字符长度为5位
0 1 字符长度为6位
1 0 字符长度为7位
1 1 字符长度为8位
发送保持寄存器(只写)
写入要发送的字符(8位)。
发送移位寄存器
将并行数据变成串行数据送出。
接收移位寄存器
将收到的串行数据变成并行数据。
接收数据寄存器(只读)
存放接收的字符,可供CPU读。
波特率因子寄存器
波特率(每秒传送位数)
=(波特率因子*16)
波特率 MSB LSB
110 04H 17H
150 03H 00H
300 01H 80H
600 00H C0H
1200 00H 60H
1800 00H 40H
2400 00H 30H
3600 00H 20H
4800 00H 18H
7200 00H 10H
9600 00H 0CH
中断允许寄存器(只写)
D7~D4 不用,清0
D3 MODEM状态变化中断
D2 接收有错或间断中断 1:允许中断
D1 发送保持器空中断 0:禁止中断
D0 接收数据就绪中断
中断标识寄存器(只读)
中断发生时指示产生中断的中断源