6.1概述6.2CPU与外设数据传送的方式6.3串行通讯和串行接口82516.4并行接口8255第六章串并行通信及接口电路I/O接口的基本功能•进行端口地址译码设备选择•向CPU提供I/O设备的状态信息和进行命令译码•进行定时和相应时序控制。•对传送数据提供缓冲,以消除计算机与外设在“定时”或数据处理速度上的差异。•提供计算机与外设间有关信息格式的相容性变换,提供有关电气的适配•还可以中断方式实现CPU与外设之间信息的交换6.1串行通讯和串行接口•串行通信基础•可编程串行通信接口8250•可编程串行通信接口8251一、串行通信基础串行通信的概念所谓串行通讯是指外设和计算机间使用一根数据信号线一位一位地传输数据,每一位数据都占据一个固定的时间长度。“串行”是指外设与接口电路之间的信息传送方式,CPU与接口之间仍按并行方式工作。串行通信的概念信息传输的检错和纠错•串行数据在传输过程中,由于干扰可能引起信息的出错如何发现传输中的错误,叫检错。发现错误后,如何消除错误,叫纠错•最简单的检错方法是奇偶校验,即在传送字符的各位之外,再传送1位奇/偶校验位。可采用奇校验或偶校验。奇校验:所有传送的数位(含字符的各数位和校验位)中,1的个数为奇数偶校验:所有传送的数位(含字符的各数位和校验位)中,1的个数为偶数信息传输的检错和纠错奇偶校验能够检测出1位误码,但是不能纠错。串行数据传输方式全双工方式通讯双方能同时进行发送和接收操作串行数据传输方式半双工方式只有1根数据线传送数据信号,要求通讯双方的发送和接收由电子开关切换。单工方式只允许数据按照一个固定的方向传送传输速率在串行通讯中,用波特率来描述数据的传输速率波特率,即每秒钟传送的二进制位数,简写为bps接收时钟/发送时钟是波特率的倍数,称为波特率因子。波特率因子:F(时钟频率)=波特率因子╳波特率例如波特率因子为32,则32个时钟脉冲移位1次。例:波特率=9600bps,波特率因子=16,则接收时钟和发送时钟频率=9600×16=153600Hz信号的调制和解调数字信号的频带宽,而普通通信线路频带较窄,如电话线频带范围仅300~3400Hz。所以采用普通通信线路进行远程数据通信时,需要在发送端用调制器(Modulator)把数字信号转换为模拟信号,模拟信号经通信线路传送到接收方,接收方再以解调器(Demodulator),把模拟信号变为数字信号。大多数情况下,调制器和解调器合在一个装置中,称为调制解调器——Modem在通讯中,Modem起着传输信号的作用,是一种数据通讯设备,简称DCE接收设备和发送设备称为数据终端设备,简称DTE。信号的调制和解调串行通信的类型串行通讯可以分为两种类型:同步通讯、异步通讯异步通讯一个字符一个字符地传输,每个字符一位一位地传输,传输一个字符时,以起始位开始,然后传输字符本身的各位,接着传输校验位,最后以停止位结束该字符的传输。一次传输的起始位、字符各位、校验位、停止位构成一组完整的信息,称为帧(Frame)帧与帧之间可有任意个空闲位异步通讯异步通讯可以采用正逻辑或负逻辑异步通讯的信息格式起始位逻辑01位数据位逻辑0或15位、6位、7位、8位校验位逻辑0或11位或无停止位逻辑11位、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信号地DSRDCE准备好DTRDTE(即微机接口电路,如8250/8251)准备好RTSDTE请求DCE发送CTSDCE允许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----仅讨论后面的82518250芯片引脚定义和功能P.2528250INTRPT8259OUT2#IRQ4CPUINTINTR8250中断请求信号与CPU的连接二、可编程串行异步通信接口82508250芯片的内部结构和寻址方式P.2548250内部控制状态寄存器的功能P.2558250内部控制状态寄存器的功能除数寄存器8250使用1.8432MHz的基准时钟输入信号,通过内部分频产生发送时钟频率和接收时钟频率。波特率因子固定为16,所以16*波特率=1843200/分频系数分频系数即为除数除数=1843200/(16*波特率)8250通信编程P.257P.2608250应用举例可编程串行通信接口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的命令字与初始化编程模式寄存器的格式p2408251的命令字与初始化编程控制寄存器与状态寄存器的格式p2418251的命令字与初始化编程8251与CPU的数据交换查询方式/中断方式采用查询方式,在数据交换前应读取状态寄存器。状态寄存器D0=1,CPU可以向8251数据端口写入数据,完成串行数据的发送状态寄存器D1=1,CPU可以从8251数据端口读出数据,完成一帧数据的接收8251的命令字与初始化编程p239流程8251编程示例例:编写8251异步模式下的接收和发送程序,完成256个字符的发送和接收,设端口地址:208H,209H,波特率因子16,1起始位,1停止位,无奇偶校验,每字符8位。MOVDX,209H;p235/奇地址;C/D=1;命令口;MOVAL,40H;复位命令。OUTDX,ALMOVAL,01001110B;模式字;命令口p235;OUTDX,ALMOVAL,0011,0111B;控制字OUTDX,ALMOVCX,256;发送256字节NEXT:MOVDX209HINAL,DX;状态字ANDAL,01H;TXRDY?JZNEXTMOVAL,CLMOVDX,208H;数据口;C/D=0;OUTDX,AL;发送LOOPNEXT;CX-1--CX;CX≠0转NXXT发送程序:接收程序接收256字节,放在buf中DatasegmentbufDB256dup(?);这是?Dataends┆MOVDX,209HMOVAL,40H;复位OUTDX,ALMOVAL,0100,1110B;模式字OUTDX,ALMOVAL,0011,0111B;控制字OUTDX,ALMOVCX,256;接收256字节MOVSI,0NEXT:MOVDX,209HINAL,DX;状态字ANDAL,02H;RXRDY?JZNEXTMOVDX,208HINAL,DX;接收1字符MOVbuf[SI],ALINCSILOOPNEXT6.5并行接口•并行接口的特点•可编程并行通信接口芯片8255一、并行接口的特点并行接口是在多根数据线上,以字节/字为单位与I/O设备交换数据二、可编程并行通信接口芯片82558255芯片引脚定义与功能P.2508255寻址方式P.2508255没有状态寄存器CPU输出设备输入设备并行接口电路数据总线读控信号写控信号复位信号中断响应信号中断请求信号地址译码器片选输出缓冲寄存器输入缓冲寄存器控制寄存器状态寄存器中断逻辑并行输出数据并行输入数据输出准备好输出回答输入准备好输入回答8255A芯片引脚分配及引脚信号说明8255A芯片引脚分配如图6.18所示。P249;8255A芯片的40条引脚,大致可分为三类:(1)电源与地线共2条:Vcc、GND。(2)与外设相连的共24条:PA7~PA0:端口A数据信号。PB7~PB0:端口B数据信号。PC7~PC0:端口C数据信号。图14.78255A芯片引脚分配14023933843753663573483398255A3210311130122913281427152616251724182319222021PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB314023933843753663573483398255A3210311130122913281427152616251724182319222021PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VCCPB7PB6PB5PB4PB3图6.18(3)与CPU相连的共14条:RESET:复位信号,高电平有效。当RESET信号有效时,所有内部寄存器都被清除。同时,3个数据端口被自动设置为输入端口。D7~D0:双向数据线,在8080、8085系统中,8255A的D7~D0与系统的8位数据总线相连;在8086系统中,采用16位数据总线,8255A的D7~D0通常是接在16位数据总线的低8位上。CS:片选信号,低电平有效。该信号来自译码器的输出,只有当CS有效时,读信号RD和写信号WR才对8255A有效。RD:读信号,低电平有效。它控制从8255A读出数据或状态信息。WR:写信号,低电平有效。它控制把数据或控制命令字写入8255A。A1、A