510 likes | 703 Views
第七章 输入 / 输出接口. 7.1 概述 7.2 CPU 与外设数据传送的 方式 7.3 可编程计数器 / 定时器 8253 7.4 串行通讯和串行接口 7.5 并行接口 7.6 DMA 控制器 8237 7.7 D/A 和 A/D 转换技术. 7.4 串行通讯和串行接口. 串行通信基础 可编程串行通信接口 8250 可编程串行通信接口 8251. 一、串行通信基础. 串行通信的概念. 所谓串行通讯是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。.
E N D
第七章 输入/输出接口 • 7.1 概述 • 7.2 CPU与外设数据传送的方式 • 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 P. 252 • 8250芯片引脚定义和功能 INTRPT IRQ4 8259 CPU INT 8250 OUT2# INTR 8250中断请求信号与CPU的连接
二、可编程串行异步通信接口8250 • 8250芯片的内部结构和寻址方式 P. 254 • 8250内部控制状态寄存器的功能 P. 255
8250内部控制状态寄存器的功能 除数寄存器 8250使用1.8432MHz的基准时钟输入信号,通过内部分频产生发送时钟频率和接收时钟频率。 波特率因子固定为16,所以 16*波特率=1843200/分频系数 分频系数即为除数 除数= 1843200/(16*波特率)
8250通信编程 P. 257 • 8250应用举例 P. 260
三、可编程串行通信接口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可以查询该信号,或把该信号作为中断请求信号。
8251的引脚信号 SYNDET:同步检测信号,只用于同步方式 TXC、RXC: 8251没有内置的波特率发生器,必须由外部产生建立波特率的时钟信号,TXC、RXC通常与8253连接
8251的命令字与初始化编程 模式寄存器的格式
8251的命令字与初始化编程 控制寄存器与状态寄存器的格式
8251的命令字与初始化编程 8251与CPU的数据交换 查询方式/中断方式 采用查询方式,在数据交换前应读取状态寄存器。 状态寄存器D0=1,CPU可以向8251数据端口写入数据,完成串行数据的发送 状态寄存器D1=1,CPU可以从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程序设计:设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