第6章串并行通信和接口技术6.1串行接口和串行通信教学重点串行接口与通信概述通信规程和通信标准数据通信的基本方式可分为并行通信与串行通信两种:并行通信:是指利用多条数据传输线将一个数据的各位同时传送。特点:是传输速度快,适用于短距离通信。串行通信:是指利用一条传输线将数据一位位地顺序传送。特点:是通信线路简单,利用电话或电报线路就可实现通信,降低成本,适用于远距离通信,但传输速度慢。一、并行通信和串行通信二、串行通信基础串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送PC系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送1.数据传送方式全双工站A站B站A站B站A站B半双工单工(1)单工方式只允许数据按照一个固定的方向传送,即一方只能作为发送站,另一方只能作为接收站。(2)半双工方式数据能从A站传送到B站,也能从B站传送到A站,但是不能同时在两个方向上传送,每次只能有一个站发送,另一个站接收。通信双方可以轮流地进行发送和接收。(3)全双工方式允许通信双方同时进行发送和接收。这时,A站在发送的同时也可以接收,B站亦同。全双工方式相当于把两个方向相反的单工方式组合在一起,因此它需要两条传输线。(在计算机串行通讯中主要使用半双工和全双工方式)1.数据传送方式(续)2.同步方式和异步方式以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂串行同步通信主要应用在网络当中最常使用高级数据链路控制协议HDLC~~~~同步字符数据数据数据校验字符同步方式异步方式串行通信时的数据、控制和状态信息都使用同一根信号线传送收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议起止式异步通信协议起始位——每个字符开始传送的标志,起始位采用逻辑0电平起始位校验位停止位空闲位数据位低位高位字符0/10/10/10/110111…数据位——数据位紧跟着起始位传送。由5~8个二进制位组成,低位先传送校验位——用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位——表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位空闲位——传送字符之间的逻辑1电平,表示没有进行传送3.数据传输速率数据传输速率也称比特率(BitRate)–每秒传输的二进制位数bps–字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(BaudRate)过去,串行异步通信的数据传输速率限制在50bps到9600bps之间。现在,可以达到115200bps或更高§6.4并行接口芯片8255A概述并行接口:实现并行通信的接口就是并行接口,是在多根数据线上,以字节/字为单位与I/O设备交换数据计算机与外设交换信息的过程中:–并行通信:多位数据通过多条数据线同时传送。–串行通信:多位数据通过同一条数据线按位传送。并行通信就是把一个字符的各数位用几条线同时进行传输。与串行通信(一位一位传输)相比,在相同传输率下,并行通信的信息实际传输速度快、信息率高。但并行通信比串行通信所用电缆多,随着距离的增加,电缆的开销会成为突出的问题。所以,并行通信总是用在数据传输率要求较高,而传输距离较短的场合。一个并行接口可以设计为只用来作为输出接口,也可以只用来作为输入接口,此外,还可以把它设计成既作为输入又作为输出的接口。。在计算机内部数据是并行传送的。因此,并行接口电路相对简单,串行接口电路由于要进行串并行转换相对复杂。并行接口电路芯片常用的有两类:–普通的8位锁存器及缓冲器–可编程设置工作方式的并行接口并行接口连接外设的示意图CPU数据总线读出信号写入信号复位准备好中断请求地址译码地址控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器片选A0A1输入设备输出设备数据输入准备好数据输出准备好数据输入回答数据输出回答数据输入数据输出6.4.1可编程的并行输入/输出接口芯片8255A-5的结构它由以下几部分组成:•1.数据端口A、B、C它有三个输入/输出端口:PortA、PortB和PortC。每一个端口都是8位,都可以选择作为输入或输出。•2.A组和B组控制电路这是两组根据CPU的命令字控制8255A工作方式的电路。它们有控制寄存器,接受CPU输出的命令字,然后分别决定两组的工作方式,也可根据CPU的命令字对端口C的每一位实现按位“复位”或“置位”操作。8255A内部结构控制端口A和端口C的高4位。它根据CPU的命令字决定A组的工作方式及对C口的每一位实现按位的“置位”或“复位”。8位双向三态缓冲器。它是8255A与系统数据总线的接口。接收来自系统总线的控制信号,以产生控制整个芯片工作的控制信号控制端口B和端口C的低4位。它根据CPU的命令字决定B组的工作方式及对C口的每一位实现按位的“置位”或“复位”端口A,B,C为输入输出端口,每个端口都是8位,可以选择作为输入或输出。但功能上有不同的特点。通常端口A,B作为输入输出的数据端口,C口作为控制或状态信息的端口•3.数据总线缓冲器这是一个三态双向8位缓冲器,它是8255A与系统数据总线的接口。•4.读/写和控制逻辑它与CPU的地址总线中的A1、A0以及有关的控制信号()相连,由它控制把CPU的控制命令或输出数据送至相应的端口;也由它控制把外设的状态信息或输入数据通过相应的端口,送至CPU。•5.控制信号功能(1)(ChipSelect)——选片信号,低电平有效,由它启动CPU与8255A之间的通信(2)——读信号,低电平有效。它控制8255A送出数据或状态信息至CPU。(3)—写信号,低电平有效。它控制把CPU输出的数据或命令信号写到8255A。(4)RESET——复位信号,高电平有效,它清除控制寄存器并置所有端口(A、B、C)为输入方式。CSRDWR•6.端口寻址8255A中有三个输入输出端口,另外,内部还有一个控制字寄存器,共有四个端口,要有两个输入端来加以选择,这两个输入端通常接到地址总线的最低两位A1和A0。(1)与外设一边相连的引脚①PA7~PA0:端口A数据线。②PB7~PB0:端口B数据线。③PC7~PC0:端口C数据线。(2)与CPU相连的引脚①D7~D0:双向数据线,与系统数据总线相连。CPU通过它向8255A发送命令、数据;8255A向CPU回送状态、数据。②CS:片选信号,低电平有效。由系统地址总线经地址译码器产生,是8255A芯片被选中的信号。只有信号有效,CPU才能对8255A进行读写。当为高电平时,切断CPU与芯片的联系。③RD:读信号,低电平有效。与系统读控制线相连,当有效时,CPU可以从8255A中读取输入数据。④WR:写信号,低电平有效。与系统写控制线相连,当有效时,CPU可以向8255A写入控制字或数据,完成输出指令的功能。⑤A1、A0:端口选择信号。与系统地址总线低位相连,用来对8255A内部三个数据端口及一个控制端口寄存器进行寻址。⑥RESET:复位信号,高电平有效。与系统复位信号线,或自行设置的复位信号线相连。复位造成的结果是把所有内部寄存器清“0”,且三个数据端口被自动设置为输入端口。二.8255A引脚说明(3)电源和地线:Vcc和GND。8255A的控制信号和传输动作的对应关系CSA1A0RDWR传输说明00001数据从A口送到数据总线00101数据从B口送到数据总线01001数据从C口送到数据总线00010数据从数据总线送端A口00110数据从数据总线送端B口01010数据从数据总线送端C口01110D7=1,则由数据总线往控制寄存器写入控制字;D7=0,则由数据总线输入的数据作为对口C的置位/复位命令1XXXXD7~D0进入高阻抗状态01101非法的信号组合0XX11D7~D0进入高阻抗状态6.4.38255A的控制字•8255A有三种基本的工作方式。•(1)方式0(Mode0)——基本输入/输出;•(2)方式1(Mode1)——选通输入/输出;•(3)方式2(Mode2)——双向传送。8255A的工作方式,可由CPU用I/O指令输出一个控制字到8255A的控制字寄存器来选择。这个控制命令字的格式如图所示。可以分别选择端口A和端口B的工作方式,端口C分成两部分,上半部随端口A,下半部随端口B。端口A能工作于方式0、1和2,而端口B只能工作于方式0和1。对A1A0=11的端口写入D7=1的数据工作方式控制字:端口C的8位中的任一位,可用一条输出指令来置位或复位(其它位的状态不变)。这个功能主要用于控制。对A1A0=11的端口写入D7=0的数据表示对C口进行位操作。(注意:对A1A0=10的端口操作表示对C口进行字节操作。)端口C置1/置0控制字:1例如,设一片8255A的口地址为60H~63H,PC5平时为低电平,要求从PC5的引脚输出一个正脉冲。可以用程序先将PC5置1,输出一个高电平,再把PC5清O,输出一个低电平,结果,PC5引脚上便输出一个正脉冲。实现这个功能的程序段如下:MOVAL,00001011BOUT63H,ALMOVAL,00001010BOUT63H,AL2、A口方式0,输出、B口方式0,输入,C口高4位输出,C口低4位输入MOVAL,10000011BOUT63H,AL3、PC7置1,PC3置0MOVDX,63HMOVAL,00001111B;PC7置1OUTDX,ALMOVAL,00000110B;PC3置0OUTDX,AL6.4.48255A的工作方式1.方式0的功能方式0是一种基本的输入或输出方式。在这种工作方式下,方式0不使用联络信号,也不使用中断,A口和B口可定义为输入或输出口,C口分成两个部分(高四位和低四位),C口的两个部分也可分别定义为输入或输出。在方式0,所有口输出均有锁存,输入只有缓冲,但无锁存,C口还具有按位将其各位清0或置1的功能。2.方式1的功能A口借用C口的一些信号线用作控制和状态线,形成A组,B口借用C口的一些信号线用作控制和状态线,组成B组。在方式1下,A口和B口的输入输出均带有锁存。A口、B口可以分别作为数据口工作在方式1。需要使用C口中特定的引脚作为选通和应答使用。C口中其余的引脚仍可工作在方式0,定义为输入或输出使用。适合用于中断式传送和程序查询方式I/O传送。数据选通信号表示外设已经准备好数据输入缓冲器满信号表示A口已经接收数据中断请求信号请求CPU接收数据中断允许触发器PC4PC5PC3PA7~PA0INTEAIBFAINTRASTBAA口、方式1、输入RDD7~D0可通过对PC4置位或复位来设置INTEa。说明:–当外设数据准备好以后,发出一个负脉冲选通信号STB,使A口打开锁存器接收数据。–A口接收到数据以后,发出IBFA,由RD信号的上升沿使IBFA恢复低电平。–STB和IBFA都变为高电平以后,如果INTEA允许,则8255A发出中断请求信号,以便使CPU接收数据。RD信号的下降沿使INTRA恢复低电平。–可以通过对PC4的置位和复位来设置INTEA。PC2PC1PC0PB7~PB0INTEBIBFBINTRBSTBBB口、方式1、输入RDD7~D0可通过对PC2置位或复位来设置INTEB。外设响应信号表示外设已经接收到数据输出缓冲器满信号表示CPU已经输出了数据中断请求信号请求CPU再次输出数据PC6PC7PC3PA7~PA0INTEAOBFAINTRAACKAA口、方式1、输出D7~D0WR中断允许触发器可通过对PC6置位或复位来设置INTEa。说明:–当CPU向端口A输出数据以后,在WR的上升沿使OBFA变为低电平。–当外设接收到数据以后,发出一个负脉冲ACKA送给825