7.1概述
7.2CPU与外设数据传送的 方式
7.3可编程计数器 /定时器 8253
7.4串行通讯和串行接口
7.5 并行接口
7.6 DMA控制器 8237
7.7 D/A和 A/D转换技术第七章 输入 /输出接口
7.4 串行通讯和串行接口
串行通信基础
可编程串行通信接口 8250
可编程串行通信接口 8251
一、串行通信基础
串行通信的概念所谓串行通讯是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。
“串行”是指外设与接口电路之间的信息传送方式,
CPU与接口之间仍按并行方式工作。
串行通信的概念
信息传输的检错和纠错
串行数据在传输过程中,由于干扰可能引起信息的出错如何发现传输中的错误,叫 检错 。
发现错误后,如何消除错误,叫 纠错
最简单的检错方法是奇偶校验,即在传送字符的各位之外,
再传送 1位奇 /偶校验位。可采用奇校验或偶校验。
奇校验,所有传送的数位(含字符的各数位和校验位)
中,1的个数为奇数偶校验,所有传送的数位(含字符的各数位和校验位)
中,1的个数为偶数
信息传输的检错和纠错奇偶校验能够检测出 1位误码,但是不能纠错。
串行数据传输方式全双工方式通讯双方能同时进行发送和接收操作
串行数据传输方式半双工方式只有 1根数据线传送数据信号,要求通讯双方的发送和接收由电子开关切换。
单工方式只允许数据按照一个固定的方向传送
传输速率在串行通讯中,用 波特率 来描述数据的传输速率波特率,即每秒钟传送的二进制位数,简写为 bps
接收时钟 /发送时钟是波特率的倍数,称为 波特率因子 。
例如波特率因子为 32,则 32个时钟脉冲移位 1次。
例:波特率 =9600bps,波特率因子 =16,则接收时钟和发送时钟频率 =9600× 16=153600Hz
信号的调制和解调数字信号的频带宽,而普通通信线路频带较窄,如电话线频带范围仅 300~3400Hz
所以采用普通通信线路进行远程数据通信时,需要在发送端用调制器( Modulator)把数字信号转换为模拟信号,模拟信号经通信线路传送到接收方,
接收方再以解调器( Demodulator),把模拟信号变为数字信号。
大多数情况下,调制器和解调器合在一个装置中,
称为 调制解调器 ——Modem
在通讯中,Modem起着传输信号的作用,是一种数据通讯设备,简称 DCE
接收设备和发送设备称为数据终端设备,简称 DTE。
信号的调制和解调
串行通信的类型串行通讯可以分为两种类型,同步通讯,异步通讯异步通讯一个字符一个字符地传输,每个字符一位一位地传输,传输一个字符时,以 起始位 开始,然后传输字符本身的各位,接着传输 校验位,最后以 停止位 结束该字符的传输。一次传输的起始位、字符各位、
校验位、停止位构成一组完整的信息,称为 帧
( Frame)
帧与帧之间可有任意个 空闲位异步通讯异步通讯可以采用正逻辑或负逻辑异步通讯的信息格式起始位 逻辑 0 1位数据位 逻辑 0或 1 5位,6位,7位,8位校验位 逻辑 0或 1 1位或无停止位 逻辑 1 1位,1.5位或 2位空闲位 逻辑 1 任意数量异步通讯例:传送 8位数据 45H( 0100,0101B),奇校验,1
个停止位,则信号线上的波形为同步通讯靠同步字符完成收发双方同步多个字符成组传送,在每组信息的开始,加上同步字符,字符组和同步字符以及需要的其他字符构成一个信息帧同步字符 字符 1 字符 2 …… 字符 n 校验字符数据块
串行通信的接口标准在串行通信中,DTE和 DCE之间的连接要符合接口标准计算机通信中使用最普遍的是 RS-232C标准
PC机上的 COM1,COM2接口,就是 RS-232C接口,使用 9针和 25针连接器
串行通信的接口标准
串行通信的接口标准
TDX 发送
RDX 接收
SG 信号地
DSR DCE准备好
DTR DTE(即微机接口电路,如 8250/8251)准备好
RTS DTE请求 DCE发送
CTS DCE允许 DTE发送,该信号是对 RTS信号的回答。
DCD 数据载波检出当本地 DCE收到对方的 DCE设备送来的载波信号时,使
DCD有效,通知 DTE准备接收,并且由 DCE将接收到的载波信号解调为数字信号,经 RXD线送给 DTE。
RI 振铃信号当 DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知 DTE已被呼叫。
串行通信的接口标准
RS-232-C采用负逻辑,且信号电平与 TTL不兼容串行接口芯片 8250,8251均使用 TTL电平,应使用电平转换电路与 RS-232C连接器连接 。
MC1488,TTL电平 → RS232电平 (用于发送方)
MC1489,TTL电平 ← RS232电平 (用于接收方)
串行通信的接口标准
串行通信的接口标准采用 Modem(DCE)和电话网通信时的信号连接
串行通信的接口标准采用专用线通讯时的信号连接
串行通信的接口标准无 Modem的标准连接
串行通信的接口标准无 Modem 的最简连接
串行通信的接口标准无 Modem时,最大通讯距离的计算:
RS-232C标准规定:当误码率小于 4%时,要求导线的电容值应小于 2500PF。
普通导线的电容值约为 170PF/M。
则允许距离 L=2500PF/( 170PF/M) =15M
二、可编程串行异步通信接口 8250
8250芯片引脚定义和功能 P,252
8250
INTRPT
8259
OUT2#
IRQ4
CPUINT
INTR
8250中断请求信号与 CPU的连接二、可编程串行异步通信接口 8250
8250芯片的内部结构和寻址方式
P,254
8250内部控制状态寄存器的功能
P,255
8250内部控制状态寄存器的功能除数寄存器
8250使用 1.8432MHz的基准时钟输入信号,通过内部分频产生发送时钟频率和接收时钟频率。
波特率因子固定为 16,所以
16*波特率 =1843200/分频系数分频系数即为除数除数 = 1843200/(16*波特率 )
8250通信编程
P,257
P,260
8250应用举例三、可编程串行通信接口 8251
通过编程,可以实现异步通讯协议或面向字符的同步通讯协议,波特率:同步方式下,0-64Kbps;异步方式下,0-19.2Kbps。
同步方式下,每字符为 5,6,7,8位,能自动检测同步字符,自动添加奇偶校验。
异步方式下,每字符可为 5,6,7,8位,自动增加起始位、停止位和校验位。
8251的结构模式寄存器,
决定工作于同步或异步模式以及接收和发送的字符格式同步字符寄存器,存放同步模式下的同步字符
8251的引脚信号
C/D#,该信号一般连至地址线 A0,用于选择控制端口
/数据端口。数据输入输出寄存器合用一个端口,控制寄存器与状态寄存器合用一个端口。
TxE,通知 CPU发送移位寄存器空。此时,在状态寄存器的 TxE位置 1。 CPU可以查询 TxE信号或状态寄存器的 TxE位
TxRDY:告诉 CPU,8251已准备好发送,CPU可以为其提供需要发送的字符
RxRDY:通知 CPU,8251已从外部设备收到一个字符,
等待 CPU读取。 CPU可以查询该信号,或把该信号作为中断请求信号。
SYNDET:同步检测信号,只用于同步方式
TXC,RXC:
8251没有内置的波特率发生器,必须由外部产生建立波特率的时钟信号,TXC,RXC通常与 8253连接
8251的引脚信号
8251的命令字与初始化编程模式寄存器的格式
8251的命令字与初始化编程控制寄存器与状态寄存器的格式
8251的命令字与初始化编程
8251与 CPU的数据交换查询方式 /中断方式采用查询方式,在数据交换前应读取状态寄存器。
状态寄存器 D0=1,CPU可以向 8251数据端口写入数据,完成串行数据的发送状态寄存器 D1=1,CPU可以从 8251数据端口读出数据,完成一帧数据的接收
8251的命令字与初始化编程流程
8251编程示例例:编写 8251异步模式下的接收和发送程序,完成
256个字符的发送和接收,设端口地址,208H,209H,
波特率因子 16,1起始位,1停止位,无奇偶校验,每字符 8位。
MOV DX,209H
MOV AL,40H ;复位命令。
OUT DX,AL
MOV AL,01001110B ;模式字
MOV DX,AL
MOV AL,0011,0111B;控制字
OUT DX,AL
MOV CX,256 ;发送 256字节
NEXT:
MOV DX 209H
IN AL,DX;状态字
AND AL,01H; TXRDY?
JZ NEXT
MOV AL,CL
MOV DX,208H
OUT DX,AL;发送
LOOP NEXT
发送程序接收程序 接收 256字节,放在 buf中
Data segment
buf DB 256 dup(?)
Data ends
┆
MOV DX,209H
MOV AL,40H;复位
OUT DX,AL
MOV AL,0100,1110B;模式字
OUT DX,AL
MOV AL,0011,0111B;控制字
OUT DX,AL
MOV CX,256 ;接收 256字节
MOV SI,0
NEXT:
MOV DX,209H
IN AL,DX;状态字
AND AL,02H; RXRDY?
JZ NEXT
MOV DX,208H
IN AL,DX;接收 1字符
MOV buf[SI],AL
INC SI
LOOP NEXT
7.5 并行接口
并行接口的特点
可编程并行通信接口芯片 8255
一、并行接口的特点并行接口是在多根数据线上,以字节 /字为单位与
I/O设备交换数据二、可编程并行通信接口芯片 8255
8255芯片引脚定义与功能
P,244
8255寻址方式
P,246
8255没有状态寄存器
8255的控制字方式选择控制字端口 C置位 /复位控制字 P,248
注意,C口控制字虽然是对端口 C操作,但应写入到控制口地址,而不是写入到 C数据口
8255的控制字编程举例:设 A,B,C数据口地址分别位 60H,61H、
62H、控制口端口地址 63H
1,A口方式 0,输出,B口方式 0,输入,C口高 4位输出,C口低 4位入
MOV AL,10000011B
OUT 63H,AL
2,PC7置 1,PC3置 0
MOV DX,63H
MOV AL,0000,1111B; PC7置 1
OUT DX,AL
MOV AL,0000,0110B; PC3置 0
OUT DX,AL
8255的工作方式 0
P,246
8255作为打印机接口,工作于方式 0
程序设计:设 PA,PB,PC口地址分别为 0D0H,0D2H、
0D4H控制口地址,0D6H
MOV AL,81H;
OUT 0D6H,AL
MOV AL,0DH; ① PC6置 1,0DH=0000,1101
OUT 0D6H,AL
LPST:
IN AL,0D4H;读 PC口
AND AL,04D;② 打印机忙否( PC2 =BUSY=?)
JNZ LPST ; PC2=1,打印机忙,等待
MOV AL,CL
OUT 0D0H,AL;③ CL中的字符送 PA口
MOV AL,0CH
OUT 0D6H,AL;④ 置 PC6=0,即 =0; 00001100=0CH
INC AL
OUT 0D6H,AL;置 PC6=1,即 =1,00001101=0DH
┆
8255的工作方式 1——选通输入输出方式
P,247
主程序,
MAIN,MOV AL,0A0H ;方式选择控制字
OUT 0C6H,AL
MOV AL,01H ;
OUT 0C6H,AL
CLI ;替换中断向量前关中断
MOV AH,25H ;替换中断向量的典型方式
MOV AL,0BH ; IR3的类型码为 0BH
MOV DX,OFFSET ROUTINTR
PUSH DS
MOV AX,SEG ROUTINTR
MOV DS,AX
INT 21H
POP DS
MOV AL,0DH ; PA方式 1输出,“置 PC6=1的操作”
OUT 0C6H,AL ;使 8255允许中断( INTEA=1)
STI ; CPU开中断
┆
假 设:
A口地址 0C0H
B口地址 0C2H
C口地址 0C4H
控制口 0C6H
中断处理程序
ROUTINTR:
MOV AL,[DI] ; DI为打印字符缓冲区地址
OUT 0C0H,AL
MOV AL,00H ;置 PC0=0
OUT 0C6H,AL
INC AL ;置 PC0=1
┆
IRET
8255的工作方式 2——选通双向传输方式
P,249
7.2CPU与外设数据传送的 方式
7.3可编程计数器 /定时器 8253
7.4串行通讯和串行接口
7.5 并行接口
7.6 DMA控制器 8237
7.7 D/A和 A/D转换技术第七章 输入 /输出接口
7.4 串行通讯和串行接口
串行通信基础
可编程串行通信接口 8250
可编程串行通信接口 8251
一、串行通信基础
串行通信的概念所谓串行通讯是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。
“串行”是指外设与接口电路之间的信息传送方式,
CPU与接口之间仍按并行方式工作。
串行通信的概念
信息传输的检错和纠错
串行数据在传输过程中,由于干扰可能引起信息的出错如何发现传输中的错误,叫 检错 。
发现错误后,如何消除错误,叫 纠错
最简单的检错方法是奇偶校验,即在传送字符的各位之外,
再传送 1位奇 /偶校验位。可采用奇校验或偶校验。
奇校验,所有传送的数位(含字符的各数位和校验位)
中,1的个数为奇数偶校验,所有传送的数位(含字符的各数位和校验位)
中,1的个数为偶数
信息传输的检错和纠错奇偶校验能够检测出 1位误码,但是不能纠错。
串行数据传输方式全双工方式通讯双方能同时进行发送和接收操作
串行数据传输方式半双工方式只有 1根数据线传送数据信号,要求通讯双方的发送和接收由电子开关切换。
单工方式只允许数据按照一个固定的方向传送
传输速率在串行通讯中,用 波特率 来描述数据的传输速率波特率,即每秒钟传送的二进制位数,简写为 bps
接收时钟 /发送时钟是波特率的倍数,称为 波特率因子 。
例如波特率因子为 32,则 32个时钟脉冲移位 1次。
例:波特率 =9600bps,波特率因子 =16,则接收时钟和发送时钟频率 =9600× 16=153600Hz
信号的调制和解调数字信号的频带宽,而普通通信线路频带较窄,如电话线频带范围仅 300~3400Hz
所以采用普通通信线路进行远程数据通信时,需要在发送端用调制器( Modulator)把数字信号转换为模拟信号,模拟信号经通信线路传送到接收方,
接收方再以解调器( Demodulator),把模拟信号变为数字信号。
大多数情况下,调制器和解调器合在一个装置中,
称为 调制解调器 ——Modem
在通讯中,Modem起着传输信号的作用,是一种数据通讯设备,简称 DCE
接收设备和发送设备称为数据终端设备,简称 DTE。
信号的调制和解调
串行通信的类型串行通讯可以分为两种类型,同步通讯,异步通讯异步通讯一个字符一个字符地传输,每个字符一位一位地传输,传输一个字符时,以 起始位 开始,然后传输字符本身的各位,接着传输 校验位,最后以 停止位 结束该字符的传输。一次传输的起始位、字符各位、
校验位、停止位构成一组完整的信息,称为 帧
( Frame)
帧与帧之间可有任意个 空闲位异步通讯异步通讯可以采用正逻辑或负逻辑异步通讯的信息格式起始位 逻辑 0 1位数据位 逻辑 0或 1 5位,6位,7位,8位校验位 逻辑 0或 1 1位或无停止位 逻辑 1 1位,1.5位或 2位空闲位 逻辑 1 任意数量异步通讯例:传送 8位数据 45H( 0100,0101B),奇校验,1
个停止位,则信号线上的波形为同步通讯靠同步字符完成收发双方同步多个字符成组传送,在每组信息的开始,加上同步字符,字符组和同步字符以及需要的其他字符构成一个信息帧同步字符 字符 1 字符 2 …… 字符 n 校验字符数据块
串行通信的接口标准在串行通信中,DTE和 DCE之间的连接要符合接口标准计算机通信中使用最普遍的是 RS-232C标准
PC机上的 COM1,COM2接口,就是 RS-232C接口,使用 9针和 25针连接器
串行通信的接口标准
串行通信的接口标准
TDX 发送
RDX 接收
SG 信号地
DSR DCE准备好
DTR DTE(即微机接口电路,如 8250/8251)准备好
RTS DTE请求 DCE发送
CTS DCE允许 DTE发送,该信号是对 RTS信号的回答。
DCD 数据载波检出当本地 DCE收到对方的 DCE设备送来的载波信号时,使
DCD有效,通知 DTE准备接收,并且由 DCE将接收到的载波信号解调为数字信号,经 RXD线送给 DTE。
RI 振铃信号当 DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知 DTE已被呼叫。
串行通信的接口标准
RS-232-C采用负逻辑,且信号电平与 TTL不兼容串行接口芯片 8250,8251均使用 TTL电平,应使用电平转换电路与 RS-232C连接器连接 。
MC1488,TTL电平 → RS232电平 (用于发送方)
MC1489,TTL电平 ← RS232电平 (用于接收方)
串行通信的接口标准
串行通信的接口标准采用 Modem(DCE)和电话网通信时的信号连接
串行通信的接口标准采用专用线通讯时的信号连接
串行通信的接口标准无 Modem的标准连接
串行通信的接口标准无 Modem 的最简连接
串行通信的接口标准无 Modem时,最大通讯距离的计算:
RS-232C标准规定:当误码率小于 4%时,要求导线的电容值应小于 2500PF。
普通导线的电容值约为 170PF/M。
则允许距离 L=2500PF/( 170PF/M) =15M
二、可编程串行异步通信接口 8250
8250芯片引脚定义和功能 P,252
8250
INTRPT
8259
OUT2#
IRQ4
CPUINT
INTR
8250中断请求信号与 CPU的连接二、可编程串行异步通信接口 8250
8250芯片的内部结构和寻址方式
P,254
8250内部控制状态寄存器的功能
P,255
8250内部控制状态寄存器的功能除数寄存器
8250使用 1.8432MHz的基准时钟输入信号,通过内部分频产生发送时钟频率和接收时钟频率。
波特率因子固定为 16,所以
16*波特率 =1843200/分频系数分频系数即为除数除数 = 1843200/(16*波特率 )
8250通信编程
P,257
P,260
8250应用举例三、可编程串行通信接口 8251
通过编程,可以实现异步通讯协议或面向字符的同步通讯协议,波特率:同步方式下,0-64Kbps;异步方式下,0-19.2Kbps。
同步方式下,每字符为 5,6,7,8位,能自动检测同步字符,自动添加奇偶校验。
异步方式下,每字符可为 5,6,7,8位,自动增加起始位、停止位和校验位。
8251的结构模式寄存器,
决定工作于同步或异步模式以及接收和发送的字符格式同步字符寄存器,存放同步模式下的同步字符
8251的引脚信号
C/D#,该信号一般连至地址线 A0,用于选择控制端口
/数据端口。数据输入输出寄存器合用一个端口,控制寄存器与状态寄存器合用一个端口。
TxE,通知 CPU发送移位寄存器空。此时,在状态寄存器的 TxE位置 1。 CPU可以查询 TxE信号或状态寄存器的 TxE位
TxRDY:告诉 CPU,8251已准备好发送,CPU可以为其提供需要发送的字符
RxRDY:通知 CPU,8251已从外部设备收到一个字符,
等待 CPU读取。 CPU可以查询该信号,或把该信号作为中断请求信号。
SYNDET:同步检测信号,只用于同步方式
TXC,RXC:
8251没有内置的波特率发生器,必须由外部产生建立波特率的时钟信号,TXC,RXC通常与 8253连接
8251的引脚信号
8251的命令字与初始化编程模式寄存器的格式
8251的命令字与初始化编程控制寄存器与状态寄存器的格式
8251的命令字与初始化编程
8251与 CPU的数据交换查询方式 /中断方式采用查询方式,在数据交换前应读取状态寄存器。
状态寄存器 D0=1,CPU可以向 8251数据端口写入数据,完成串行数据的发送状态寄存器 D1=1,CPU可以从 8251数据端口读出数据,完成一帧数据的接收
8251的命令字与初始化编程流程
8251编程示例例:编写 8251异步模式下的接收和发送程序,完成
256个字符的发送和接收,设端口地址,208H,209H,
波特率因子 16,1起始位,1停止位,无奇偶校验,每字符 8位。
MOV DX,209H
MOV AL,40H ;复位命令。
OUT DX,AL
MOV AL,01001110B ;模式字
MOV DX,AL
MOV AL,0011,0111B;控制字
OUT DX,AL
MOV CX,256 ;发送 256字节
NEXT:
MOV DX 209H
IN AL,DX;状态字
AND AL,01H; TXRDY?
JZ NEXT
MOV AL,CL
MOV DX,208H
OUT DX,AL;发送
LOOP NEXT
发送程序接收程序 接收 256字节,放在 buf中
Data segment
buf DB 256 dup(?)
Data ends
┆
MOV DX,209H
MOV AL,40H;复位
OUT DX,AL
MOV AL,0100,1110B;模式字
OUT DX,AL
MOV AL,0011,0111B;控制字
OUT DX,AL
MOV CX,256 ;接收 256字节
MOV SI,0
NEXT:
MOV DX,209H
IN AL,DX;状态字
AND AL,02H; RXRDY?
JZ NEXT
MOV DX,208H
IN AL,DX;接收 1字符
MOV buf[SI],AL
INC SI
LOOP NEXT
7.5 并行接口
并行接口的特点
可编程并行通信接口芯片 8255
一、并行接口的特点并行接口是在多根数据线上,以字节 /字为单位与
I/O设备交换数据二、可编程并行通信接口芯片 8255
8255芯片引脚定义与功能
P,244
8255寻址方式
P,246
8255没有状态寄存器
8255的控制字方式选择控制字端口 C置位 /复位控制字 P,248
注意,C口控制字虽然是对端口 C操作,但应写入到控制口地址,而不是写入到 C数据口
8255的控制字编程举例:设 A,B,C数据口地址分别位 60H,61H、
62H、控制口端口地址 63H
1,A口方式 0,输出,B口方式 0,输入,C口高 4位输出,C口低 4位入
MOV AL,10000011B
OUT 63H,AL
2,PC7置 1,PC3置 0
MOV DX,63H
MOV AL,0000,1111B; PC7置 1
OUT DX,AL
MOV AL,0000,0110B; PC3置 0
OUT DX,AL
8255的工作方式 0
P,246
8255作为打印机接口,工作于方式 0
程序设计:设 PA,PB,PC口地址分别为 0D0H,0D2H、
0D4H控制口地址,0D6H
MOV AL,81H;
OUT 0D6H,AL
MOV AL,0DH; ① PC6置 1,0DH=0000,1101
OUT 0D6H,AL
LPST:
IN AL,0D4H;读 PC口
AND AL,04D;② 打印机忙否( PC2 =BUSY=?)
JNZ LPST ; PC2=1,打印机忙,等待
MOV AL,CL
OUT 0D0H,AL;③ CL中的字符送 PA口
MOV AL,0CH
OUT 0D6H,AL;④ 置 PC6=0,即 =0; 00001100=0CH
INC AL
OUT 0D6H,AL;置 PC6=1,即 =1,00001101=0DH
┆
8255的工作方式 1——选通输入输出方式
P,247
主程序,
MAIN,MOV AL,0A0H ;方式选择控制字
OUT 0C6H,AL
MOV AL,01H ;
OUT 0C6H,AL
CLI ;替换中断向量前关中断
MOV AH,25H ;替换中断向量的典型方式
MOV AL,0BH ; IR3的类型码为 0BH
MOV DX,OFFSET ROUTINTR
PUSH DS
MOV AX,SEG ROUTINTR
MOV DS,AX
INT 21H
POP DS
MOV AL,0DH ; PA方式 1输出,“置 PC6=1的操作”
OUT 0C6H,AL ;使 8255允许中断( INTEA=1)
STI ; CPU开中断
┆
假 设:
A口地址 0C0H
B口地址 0C2H
C口地址 0C4H
控制口 0C6H
中断处理程序
ROUTINTR:
MOV AL,[DI] ; DI为打印字符缓冲区地址
OUT 0C0H,AL
MOV AL,00H ;置 PC0=0
OUT 0C6H,AL
INC AL ;置 PC0=1
┆
IRET
8255的工作方式 2——选通双向传输方式
P,249