第6章串并行通信和接口技术本章要点串行通信的几种方式8251A的编程结构和功能结构8251A和CPU的信号连接以及和外设的信号连接低档接口芯片和高档数据总线的连接8251A的模式寄存器、控制寄存器和状态寄存器的格式8251A的初始化流程8251A的使用8255A和CPU的信号连接以及和外设的信号连接8255A的三种工作方式和设置方法8255A的C端口置0/置1教学建议以8251A和8255A的使用为目标。本章用5学时,其中:8251A2学时8255A3学时6.1接口的功能以及在系统中的连接接口的功能接口与系统的连接6.1.1接口的功能基本功能:在系统和I/O设备之间传输信号提供缓冲作用1.寻址功能识别区别存储器和I/O的信号识别片选信号选择接口中的寄存器2.输入输出功能根据读写信号判断传输方向传输数据、控制和状态信息3.数据转换功能把CPU的并行数据转换成一些外设所需的串行数据;把外设的串行信息转换成并行数据送往CPU。4.联络功能当数据传送完后,能通知CPU。5.中断管理功能发送中断请求和接收中断响应发送中断类型号优先级管理功能。6.复位功能接收复位信号7.可编程功能可以用软件使其工作于不同的方式用软件来设置控制信号8.错误检测功能当前多数可编程接口芯片能检测下列两类错误:传输错误覆盖错误6.1.2接口与系统的连接接口可分为两个部分和I/O设备相连和系统总线相连和外部连接典型的I/O接口6.2串行接口和串行通信串行接口串行通信涉及的几个问题6.2.1串行接口串行接口部件有4个主要寄存器,即:控制寄存器状态寄存器数据输入寄存器数据输出寄存器。6.2.2串行通信涉及的几个问题全双工方式和半双工方式同步方式和异步方式传输率1.全双工方式和半双工方式全双工方式:接收和发送用不同的通路。半双工方式:输入和输出使用同一通路。全双工方式和半双工方式(a)全双工方式(b)半双工方式2.同步方式和异步方式传输方式:同步通信异步通信同步方式和异步方式比较:同步方式的信息有效率高。同步方式需传输时钟信号。标准的异步通信数据格式3.串行通信的传输率例1、异步传输过程:设每个字符对应1个起始位、7个信息位、1个奇偶校验位和1个停止位,如果波特率为1200bps,那么,每秒钟能传输的最大字符数为1200/10=120个。例二.同步传输:用1200bps的波特率工作,用4个同步字符作为信息帧头部,但不用奇偶校验,那么,传输100个字符所用的时间为7(100+4)/1200=0.6067s,这就是说,每秒钟能传输的字符数可达到100/0.6067=165个。可见,在同样的传输率下,同步传输时实际字符传输率要比异步传输时高。6.3可编程串行通信接口8251A8251A的基本性能8251A的基本工作原理8251A的对外信号8251A的编程8251A编程举例8251A的使用实例6.3.18251A的基本性能可以工作在同步或异步方式。在同步方式时,能用5、6、7或8位代表字符能自动检测同步字符允许奇偶校验。在异步方式下能用5、6、7或8位代表字符,用1位作为奇偶校验。能增加1个启动位能增加1个、1.5个或2个停止位。6.3.28251A的基本工作原理8251A的编程结构8251A的功能结构8251A的发送和接收1.8251A的编程结构具体编程结构和外部连接如下图2.8251A的功能结构接收控制电路的功能:复位后寻找启动位。消除假启动干扰。对接收到的信息进行奇偶校验。检测停止位。发送控制电路功能:在异步方式下,为数据加上起始位、校验位和停止位。在同步方式下,插入同步字符和校验位。读写控制逻辑电路功能:接收WR#,写入数据和控制字接收RD#,读取数据或状态字接收C/D#。接收CLK,完成内部定时。接收RESET。8251A的内部工作原理3.8251A的发送和接收(1)异步接收方式(2)异步发送方式下图为8251A工作在异步方式时的数据传输格式(3)同步接收方式(4)同步发送方式下图为8251A工作在同步方式时的数据传输格式6.3.38251A的对外信号8251A和CPU之间的连接信号8251A与外部设备之间的连接信号1.8251A和CPU之间的连接信号(1)片选信号CS#为低电平时,8251A被选中(2)数据信号D7~D0与系统的数据总线相连(3)读写控制信号RD#为读信号。WR#为写信号。C/D#为控制/数据信号。(4)收发联络信号TXRDY为发送器准备好信号TXE发送器空信号RXRDY接收器准备好信号SYNDET同步检测信号2.8251A与外部设备之间的连接信号(1)收发联络信号DTR#数据终端准备好信号DSR#数据设备准备好信号RTS#请求发送信号CTS#清除请求发送信号(2)数据信号TXD发送器数据信号端RXD接收器数据信号端6.3.48251A的编程8位接口和16位数据总线的连接问题8251A的初始化模式寄存器的格式控制寄存器的格式状态寄存器的格式1.关于8位接口芯片和16位数据总线的连接问题解决方法:硬件上,将总线的A1与芯片的A0相连软件上,用连续的偶地址代替奇偶地址2.8251A的初始化8251A初始化的约定:复位后,用奇地址写入的值送模式寄存器。若为同步模式,接着往奇地址端口输出的字节为同步字符。此后,除复位命令,往奇地址写入的值将送到控制寄存器,往偶地址端口写入的值送到数据输出寄存器。8251A的初始化流程图3.模式寄存器的格式下图为8251A模式寄存器的格式(a)异步模式;(b)同步模式4.控制寄存器的格式5.状态寄存器的格式6.3.58251A编程举例异步模式下的初始化程序举例同步模式下的初始化程序举例利用状态字进行编程的举例1.异步模式下的初始化程序举例MOVAL,0FAHOUT42H,AL;设置模式字,为异步模式;波特率因子为16;用7个数据位,偶校验,2个停止位MOVAL,37HOUT42H,AL;设置控制字,使发送启动、接收启动,并设置有关信号2.同步模式下的初始化程序举例MOVAL,38HOUT42H,AL;设置模式字为同步模式,2个同步字符,7个数据位,偶校验MOVAL,16HOUT42H,ALOUT42H,AL;两个同步字符均为16HMOVAL,97HOUT42H,AL;设置控制字,并启动3.利用状态字进行编程的举例MOVAL,0FAHOUT42H,AL;设置模式字,异步模式,波特率因子为16,7个数据位,2个停止位,偶校验MOVAL,35HOUT42H,AL;设置控制字,并启动MOVDI,0;变址寄存器初始化MOVCX,80;共收取80个字符BEGIN:INAL,42HTESTAL,02HJZBEGIN;读状态字并测试INAL,40H;读取字符MOVDX,OFFSETBUFFERMOV[DX+DI],AL;传输字符INCDI;修改缓冲区指针INAL,42H;读取状态字TESTAL,38H;测试有无错误JNZERRORLOOPBEGIN;如没有错,则接收下1个字符JMPEXIT;如满8个字符,则结束ERROR:CALLERR_OUT;调用出错处理程序EXIT:…6.3.68251A的使用实例下图为用8251A作为CRT接口的实际例子8251A的初始化程序段INIT:XORAX,AX;AX清零MOVCX,0003MOVDX,00DAHOUT1:CALLKKKLOOPOUT1;往控制端口DAH送3个0MOVAL,40HCALLKKK;往控制端口送40H复位MOVAL,4EHCALLKKK;设置模式字,异步模式,波特率因子为16,8位数据,1位停止位MOVAL,27HCALLKKK;往设置命令字启动...KKK:OUTDX,AL;将数据输出到指定端口PUSHCXMOVCX,0002ABC:LOOPABC;等待输出动作完成POPCX;恢复CX内容RET往CRT输出一个字符的程序段CHAROUT:MOVDX,0DAHSTATE:INAL,DX;输入状态字TESTAL,01JZSTATE;不断测试状态位MOVDX,0D8H;数据端口地址送DXPOPAX;AX中为要输出的字符OUTDX,AL;往端口中输出一个字符6.4并行通信和并行接口特点:传输速度快信息率高用电缆多下图为典型的并行接口和外设连接的示意图6.5可编程并行通信接口8255A可编程通过软件工作方式连接外部设备时,通常不需外部电路6.5.18255A的内部结构8255A的内部结构图1.数据端口A、B、C(1)端口A对应1个8位数据输入锁存器1个8位输出锁存器/缓冲器。(2)端口B对应1个8位数据输入缓冲器1个8位输出锁存器/缓冲器。(3)端口C对应1个8位数据输入缓冲器1个8位输出锁存器/缓冲器。通常使用方法:端口A、B作为独立的输入或者输出端口端口C配合端口A、B2.A组控制和B组控制(1)A组控制电路控制端口A和端口C的高4位的工作方式和读写操作。(2)B组控制电路控制端口B和端口C的低4位的工作方式和读写操作。3.读写控制逻辑电路功能:管理数据传输过程。4.数据总线缓冲器功能:通过它与系统数据总线相连。6.5.28255A的芯片引脚信号1.和外设一边相连的信号PA7~PA0——A组数据信号;PB7~PB0——B组数据信号;PC7~PC0——C组数据信号。2.和CPU一边相连的信号RESET复位信号,高电平有效。D7~D0数据线。CS#片选信号。RD#读出信号。WR#写入信号。A1、A0端口选择信号。6.5.38255A的控制字控制字分为两类:各端口的方式选择控制字;C端口按位置1/置0控制字。1.方式选择控制字8255A方式选择注意:有三种基本工作方式:方式0——基本的输入输出方式方式1——选通的输入输出方式方式2——双向传输方式只有端口A能工作在方式2同一组的两端口可分别工作在输入和输出方式2.端口C置1/置0控制字置1/置0控制字注意:必须写入控制口D0位决定置1或置0D3、D2、D1位决定了对哪一位操作D7位必须为06.5.48255A的工作方式方式0方式1方式2方式0(1)方式0的工作特点端口可作为输入口,也可作为输出口。可以有16种不同的组合(2)方式0的输入输出时序在方式0读取数据条件:先发出地址信号数据要领先于读信号输入时序要求:读出期间地址保持有效数据必须保持到结束读脉冲宽度至少为300ns方式0输出时序要求:地址信号必须提前有效且滞后消失写脉冲宽度至少有400ns数据必须提前并保持tWD时间方式0的输出时序(3)方式0的使用场合同步传送查询式传送2.方式1方式1的特点端口A、B可分别工作在方式1。端口C配合方式1(2)方式1输入时序下图是端口A、B工作于方式1输入时,各信号的示意图上图控制信号说明:STB#选通信号IBF缓冲器满信号INTR送往CPU的中断请求信号INTE中断允许信号下图为方式1的输入时序(3)方式1输出时序OBF#输出缓冲器满信号ACK#外设响应信号INTR中断请求信号INTE中断允许信号方式1时输出端口对应的控制信号和状态信号方式1的输出时序3.方式2(1)方式2的特点只适用于端口A。端口C用5个数位提供控制和状态信号。(2)方式2信号INTRA中断请求信号STBA#选通信号IBFA状态信息OBFA#输出缓冲器满信号ACKA#对OBFA的响应信号INTE1中断允许信号INTE2中断允许信号方式2的控制信号(3)方式2的时序(4)方式2的使用场合一个并行外设既可以作为输入又可以作为输出输入输出动作不会同时进行(5)方式2和其他方式的组合如下面4张图所示A端口工作于方式2,B端口工作于方式0输入情况A端口工作于方式2,B端口工作于方式0输出情况A端口工作于方式2,B端口工作于方式1输入情况A端口工作于方式2,B端口工作于方式1输出情况6.5.58255A的应用举例8255A工作于方式0的例子8255A工作于方式1的例子1.8255A工作于方式0的例子8255A作为打印机接口的示意2.8255A工作于方式1的例子8255A作为中断方式打印机接口的示意