资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第9章 可编程并行接口芯片与串行通信技术,教学内容,9.1可编程并行接口芯片8255A,9.1.1 8255的结构,9.1.2 方式选择,9.1.3 各方式的功能,9.1.4 端口C的状态字,9.1.5 8255应用举例,9.2 串行通信,9.2.1 串行通信的数据传送方向,9.2.2 串行通信的异步与同步通信方式,9.2.3 波特率及收发端的同步,9.2.4 常用串行接口介绍,教学目标,1 掌握接口芯片8255A功能特点,理解其使用方法。,2 理解串行通信的工作原理和特点。,重点内容,1 8255A的结构。,2 8255A的方式选择字。,3 8255A各方式的功能。,4 串行通信的工作原理和特点。,难点内容,1,8255A各方式的功能。,2 串行通信的工作原理和特点。,学时数,6学时,9.1 可编程并行接口芯片8255A,并行接口的一般特点:,1)通过多根信号线同时传送多位数据。,2)并行接口多用于传送距离短,数据量大,速度高的实时传输场合。,3)传送时一般不需要特定的数据传送格式。,9.1.1 8255A的结构,1.数据端口,在8255A内部包含了三个8位输入/输出数据端口:端口A、端口B、端口C。,三个端口在功能上有不同的特点:,端口A:一个8位的数据输入锁存器,一个8位的数据输出锁存器/缓冲器,即端口A输入/输出时都可以锁存数据。,端口B:一个8位的数据输入缓冲器,一个8位的数据输出锁存器/缓冲器,即端口B输入不能锁存,而输出可以锁存。,端口C:比较特殊,一个8位的数据输入缓冲器,但没有锁存器,一个8位的数据输出锁存/缓冲器。,2.端口控制逻辑,端口控制逻辑分为A组和B组,各组管理的端口如下:,A组:管理端口A及端口C的上半部(PC7PC4),B组:管理端口B及端口C的下半部(PC3PC0),3.数据总线缓冲器,一个双向三态的8位缓冲器。,4.读/写控制逻辑,读/写控制逻辑包括:,1)读信号 :低电平有效。,2)写信号 :低电平有效。,3)片选信号 :低电平有效。,4)复位信号RESET:高电平有效。将所有端口置为输入方式。,5)端口选择信号A1、A0:通过A1、A0的组合来选择端口。,9.1.2 方式选择,在8255A的初始化工作中,CPU输出的编程命令有两类:一类称为方式选择控制字,用于定义各端口的工作方式;另一类称为置位/复位控制字,用于对端口C任意一位的置位或复位操作。,两类控制字用同一个端口地址,在初始化编程时这两类命令写入同一端口,为了能区分这两类命令,采用了标志位的方法,用控制字的D7来区分。,1.方式选择控制字,8255A有三种基本的工作方式:,方式0:基本输入/输出方式,方式1:选通输入/输出方式,方式2:双向总线I/O方式,A口可使用全部三种工作方式,B口可使用方式0和方式1,C口一般被分作两个4位口,还可以作为A口和B口的联络线。,例如:现指定端口A以方式0输出;指定端口B以方式1输入;端口C高4位为输入,低4位为输出。,根据方式控制字的定义格式可写出相应的方式选择控制字为:10001110B或8EH,8255A初始化程序段如下:(若控制口的分配地址为303H),MOV DX,303H,MOV AL,10001110B(或MOV AL,08EH),OUT DX,AL,2.置位/复位控制字,通过向往8255A写入置位/复位控制字,可以置位或复位端口C中的任意一位,即使其为高电平或低电平。,例如,设8255A端口地址为60H63H,现要求先置PC4为低电平,再复位PC4,则相应的程序段如下:,MOV AL,00001001B,OUT 63H,AL,MOV AL,00001000B,OUT 63H,AL,9.1.3 各方式的功能,1.方式0的功能,主要功能如下:,(1)两个独立的8位端口(端口A和B)和两个4位端口(端口C)。在实际应用时,根据需要也可以将C口的上下两端口合起来使用,构成一个8位的端口。,(2)规定了输出信号可以被锁存,而输入信号不能锁存。,(3)各个端口既可以作为输入使用,也可以作为输出使用,两个8位端口和两个4位端口可以组成16种情况。,2.方式1的功能,(1)主要功能,1)端口A和端口B都可作为数据输入/输出端口,但必须通过端口C相应位的控制来实现。,2)当端口A和端口B中的一个端口被确定为工作方式1时,与此对应的端口C中就有3位被固定了,端口C中的这3位专门用来控制端口A或端口B。,3)若端口A和端口B都工作于方式1,则端口C中有6位固定,剩余2位可工作于其它方式,用作其它用途。,(2)方式1的输入,1)输入组态,(2)联络信号,1)(Strobe):选通信号,低电平有效。外设通知8255A有数据输入。对于A口,使用PC4的引脚;对于B口,使用PC2的引脚。,2)IBF(Input Buffer Full):输入缓冲器满信号,高电平有效。8255通知外设不能再输入数据,对于A口,使用PC5的引脚;对于B口,使用PC1的引脚。,3)INTE(Interrupt Enable):中断允许信号,高电平有效。对于A口,使用PC4的锁存位;对于B口,使用PC2的锁存位。可用置位/复位控制字操作。,4)INTR(Interrupt Request):中断请求信号,高电平有效。可用于向CPU请求中断。对于A口,使用PC3的引脚;对于B口,使用PC0的引脚。,工作过程分析:,1)当外设将数据送到A口或B口的数据线上后,向8255发出负脉冲,使选通信号 为低,8255将输入数据送到输入缓冲器并锁存。,2)选通信号有效后,经过t,SIB,时间,IBF信号有效,此信号送到外设,禁止外设再向8255发送数据。,3)选通信号结束后,经过t,SIT,时间,若此时 和INTE都为高时,INTR有效,向CPU发出中断请求。CPU响应中断后,信号有效,CPU读入数据。,4)信号有效后,经过t,RIT,时间,清除INTR中断请求信号。,5)当 信号结束后,数据已CPU,再经过t,RIB,时间,IBF变低,结束一次数据输入。,以上是使用中断输入的操作时序,如果设置INTE为“0”,则不使用中断,这时可使用查询方式,操作见后。,(3)方式1的输出,1)输出组态,(Output Buffer Full):输出缓冲器满信号,低电平有效。8255通知外设在端口上已有数据。对于A口,使用PC7的引脚;对于B口,使用PC1的引脚。,(Acknowledge):外设响应信号,低电平有效。外设通知8255,端口上的数据已取走。对于A口,使用PC6的引脚;对于B口,使用PC2的引脚。,INTE(Interrupt Enable):中断允许信号,高电平有效。对于A口,使用PC6的锁存位;对于B口,使用PC2的锁存位。可用置位/复位控制字操作。,INTR(Interrupt Request):中断请求信号,高电平有效。可用于向CPU请求中断。对于A口,使用PC5的引脚;对于B口,使用PC1的引脚。,工作过程分析:,1)当8255输出缓冲器空,向CPU发出中断请求,CPU响应中断,向8255输出数据,产生 信号。,2)信号经过t,WIT,时间后清除中断请求信号INTR。,3)的上升沿使 有效,通知外设可以接收数据。,4)外设接收数据后,发出 信号,再经过t,AOB,时间,使 无效,表明输出缓冲器已空。,5)无效后,经过t,AIT,时间,INTR有效,向CPU发出中断请求,CPU响应中断再送新的数据。,以上是使用中断输出的操作时序,如果设置INTE为“0”,则不使用中断,这时可使用查询方式,操作见后。,3.方式2的功能,方式2是一种双向总线方式,在这种方式下,8位数据线上既可以发送数据,也可以接收数据。,只有端口A可以工作在方式2,在这种方式下,需要C口的5位信号作为联络线。,在方式2下,数据的输入和输出都具有锁存功能。,(1)方式2的组态,(2)联络信号,1):输出缓冲器满信号,低电平有效。8255通知外设在端口上已有数据,使用PC7的引脚。,2):外设响应信号,低电平有效。外设通知8255,端口上的数据已取走,使用PC6的引脚。,3):选通信号,低电平有效。外设通知8255A有数据输入。使用PC4的引脚。,4)IBF:输入缓冲器满信号,高电平有效。8255通知外设不能再输入数据,使用PC5的引脚。,5)INTR:中断请求信号,高电平有效。可用于向CPU请求中断。使用PC3的引脚。,6)INTE1、INTE2:INTE1为输出中断允许信号,使用PC6的锁存位;INTE2输入中断允许信号,使用PC4的锁存位。高电平有效,可用置位/复位控制字操作。,工作过程分析:,方式2可以看成方式1的输入和输出的组合。,方式2的输入时序与方式1的输入时序完全相同。,方式2的输出时序与方式1的输出时序的不同之处:在方式1下,CPU把数据写入到8255后,8255立即将数据送上A口。而在方式2下,须待 信号有效后,8255才将数据送上A口。这样处理是为了避免发生外总线冲突,此时端口A与外设的连线因输入/输出均使用,已成为数据总线。,9.1.4 端口C的状态字,8255工作在方式1和方式2时,C口各位作为联络线使用,CPU除了可以使用中断方式对8255进行服务,还可以通过读取C口的状态字来了解外设的状态。即使用查询方式进行数据传送。,端口C的状态字有以下几种格式:,1、方式1状态字,输入状态字:,D7,D6,D5,D4,D3,D2,D1,D0,I/O,I/O,IBF,A,INTE,A,INTR,A,INTE,B,IBF,B,INTR,B,输出状态字:,D7,D6,D5,D4,D3,D2,D1,D0,INTE,A,I/O,I/O,INTR,A,INTE,B,INTR,B,这些状态字中,有的是提供当前端口状态,有的是设置端口工作模式。,例如:允许端口A中断请求,禁止端口B中断请求(输入方式),则其程序段为:(设C口地址为303H),MOV DX,303H,MOV AL,00010000B,OUT DX,AL,2、方式2状态字,D7,D6,D5,D4,D3,D2,D1,D0,INTE,1,IBFA,INTE,2,INTR,A,X,X,X,9.1.5 8255A应用举例,1.基本输入/输出应用举例,图9-14是8086微机系统扩展一片8255A作为并行口的电路图,同时还配以74LS138译码器等芯片,如图9-14所示。端口A为方式1输入,以中断方式与CPU交换数据,中断类型号为0FH;端口B工作于方式0输出,端口C的普通I/O作为输入。,根据图中的接线,所使用的译码输出地址为0B0H0BFH。8255使用数据线D0D7,使用地址为0B0H、0B2H、0B4H和0B6H。设端口A的中断服务子程序名为SERA。,具体8255A的初始化程序如下:,MOV AL,10111001B ;方式控制字,MOV DX,0B6H,OUT DX,AL,MOV AL,00001001B ;开放A口输入中断请求,OUT DX,AL,MOV AX,0,MOV ES,AX,MOV DI,0FH*4,MOV AX,OFFSET SERA,CLD,STOSW,MOV AX,SEG SERA,STOSW,9.2 串行通信,基本的数据通信方式有两种:并行通信和串行通信。,并行通信是在多条并行的通信线上同时传送各位数据。并行通信的优点是传输速度快,但线路开销大,一般用于短距离传送。串行通信是将多位数据按时间先后顺序逐位传送。串行传送的优点是线路占用少,一般用于远距离数据传送。,9.2.1 串行通信的数据传送方向,串行通信的数据传送方向可分为以下三种:,(1)单工传送,数据传送只有一个方向,通信的一方只能发送,另一方只能接收,如图9-10a。,(2)半双工传送,通信双方都可以发送和接收,但同一时刻只能有一个方向的数据传送,如图9-10b。,(3)全双工传送,通信的双方都可以任意发送和接收,即具有两条数据通信
展开阅读全文