1、1第第6 6章章 接口技术接口技术 2本章主要介绍:本章主要介绍:可编程并行接口可编程并行接口8255A;8255A;串行通信与异步通信控制器串行通信与异步通信控制器82508250;可编程计数器定时器可编程计数器定时器8253;8253;系统总线:系统总线:PCIPCI总线总线 、USBUSB总线总线 、IEEE1394IEEE1394总线总线 、I I2 2C C口总线口总线 、PCI ExpressPCI Express总线总线 。重点是可编程并行接口重点是可编程并行接口8255A,8255A,串行通信与串行通信与异步通信控制器异步通信控制器8250,8250,可编程计数器定时器可编程计
2、数器定时器8253,8253,系统总线。系统总线。3第第6 6章章 接口技术接口技术 微机与微机与I IO O设备的接口按照数据传设备的接口按照数据传送方式不同,可以分为送方式不同,可以分为并行接口并行接口串行接口串行接口46.1 6.1 可编程并行接口可编程并行接口8255A8255A5 并行接口最基本的特点是在多根据数据线上以数据字节(字)并行接口最基本的特点是在多根据数据线上以数据字节(字)为单位与为单位与I/OI/O设备或被控对象传送信息。设备或被控对象传送信息。如如:打印机接口,打印机接口,A/DA/D、D/AD/A转换器接口,转换器接口,IEEE-488IEEE-488接口,开接口
3、,开关量接口,控制设备接口等。关量接口,控制设备接口等。在并行接口中,除了少数据场合之外,一般都要求在接口与在并行接口中,除了少数据场合之外,一般都要求在接口与外设之间设置并行数据线的同时,外设之间设置并行数据线的同时,至少还要设置两根握手至少还要设置两根握手(联线)信号线(联线)信号线,以便进行互锁异步握手方式(即查询方式)以便进行互锁异步握手方式(即查询方式)的通信的通信。在并行接口中,在并行接口中,8 8位或位或1616位是一起行动的,因此,当采用并位是一起行动的,因此,当采用并行接口与外设交换数据时,即使是只用到其中的一位,也是行接口与外设交换数据时,即使是只用到其中的一位,也是一次输
4、入一次输入/输出输出8 8位或位或1616位。位。并行传送信息,不要求固定的格式,这与串行传送的数据格并行传送信息,不要求固定的格式,这与串行传送的数据格式的要求不同。式的要求不同。第第6 6章章 接口技术接口技术6第第6 6章章 接口技术接口技术 并行接口电路有编程接口和不可编程接口之并行接口电路有编程接口和不可编程接口之分。在微机系统中广泛应用的可编程序外设接口电路分。在微机系统中广泛应用的可编程序外设接口电路(Programmable Peripheral InterfaceProgrammable Peripheral Interface)简称)简称PPIPPI,型号为型号为82558
5、255(改进型为(改进型为8255A8255A及及8255A-58255A-5),含),含3 3个独个独立的立的8 8位并行输入位并行输入/输出端口,各端口均具有数据的控输出端口,各端口均具有数据的控制和锁存能力。可通过编程设置各端口的工作方式和制和锁存能力。可通过编程设置各端口的工作方式和数据传送方向数据传送方向(入入/出出/双向双向)。它是一片使用单一。它是一片使用单一+5V+5V电源的电源的4040引脚双列直插式大规模集成电路。引脚双列直插式大规模集成电路。76.1.1 8255A6.1.1 8255A的内部结构的内部结构 第第6 6章章 接口技术接口技术u具有两个具有两个8 8位(位(
6、A A口和口和B B口)和两个口)和两个4 4位(位(C C口高口高/低低4 4位)并行位)并行I/OI/O端口的接口芯片。端口的接口芯片。u能适应能适应CPUCPU与与I/OI/O接口之间的多种数据传送方式的接口之间的多种数据传送方式的要求。要求。86.1.1 8255A6.1.1 8255A的内部结构的内部结构 第第6 6章章 接口技术接口技术 PC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的大部分引脚被分配作专用联络信号;PC口可以进行按位控制;在CPU读取8255A状态时,PC口又作1,2方式的状态口用,等等。可执行功能很强,内容丰富的命令(方式字和控制字)为用户如何
7、根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,组成微机应用系统提供了灵活方便的编程环境。8255芯片内部主要由控制寄存器、状态寄存器和数据寄器组成。9A组控制组控制数据总线数据总线缓冲器缓冲器读读/写写控制逻辑控制逻辑B组控制组控制A组组A口口(8位)位)A组组C口高位口高位(4位)位)B组组C口低位口低位(4位)位)B组组B口口(8位)位)D0D7CSWRA1A0RESETRDPA0PA7PC4PC7PC0PC3PB0PB7图图6-1 8255A6-1 8255A内部结构框图内部结构框图 内部结构:8255A的内部结构如图所示。它由以下4个部
8、分组成。第第6 6章章 接口技术接口技术10 数据总线缓冲器。这是一个三态双向8位缓冲器,它是8255A与CPU系统数据总线的接口。读/写控制逻辑。读/写控制逻辑由读信号RD、写信号WR、选片信号CS以及端口选择信号A1A0等组成。输入/输出端口A、B、C。8255A包括3个8位输入输出端口(port)。每个端口都有一个数据输入寄存器和一个数据输出寄存器。A组和B组控制电路。控制A、B和C三个端口的工作方式。第第6 6章章 接口技术接口技术116.1.2 8255A6.1.2 8255A的引脚和控制的引脚和控制 第第6 6章章 接口技术接口技术与系统总线的连接信号 面向数据总线的有:D0D7:
9、双向数据线,用于CPU向8255A发送命令、数据和8255A向CPU回送状态、数据和8255A向CPU回送状态、数据。面向地址总线的有:12图图6-2 8255A引脚图引脚图RDRD:读信号,低电平有效。:读信号,低电平有效。WRWR:写信号,低电平有效。:写信号,低电平有效。RESETRESET:复位信号,高电平有:复位信号,高电平有效。它清除控制寄存器并效。它清除控制寄存器并将将8255A8255A的的A A、B B、C C三个端三个端口均置为输入方式;输入口均置为输入方式;输入寄存器和状态寄存器被复寄存器和状态寄存器被复位,并且屏蔽中断请求;位,并且屏蔽中断请求;2424条面向外设信号线
10、呈现条面向外设信号线呈现高阻悬浮状态。高阻悬浮状态。12345678910111213141516171819204039383736353433323130292827262524232221PA4PA5PA6PA7PB6PB5PB4PB3PB7D1D2D3D4D0D5D6D7VCCRESETWRRDCSPA3PA2PA1PA0GNDA1A0PC7PC6PC4PC0PC1PC2PC5PB0PB1PB2PC38255A第第6 6章章 接口技术接口技术13与外部设备的连接信号 PA0PA7:端口A的输入/输出线。PB0PB7:端口B的输入/输出线。PC0PC7:端口C的输入/输出线。这24根信号
11、线均可用来连接I/O设备和传送信息。其中,A口和B口只作输入/输出的数据口用,尽管有时也利用它们从I/O设备读取一些状态信号,如打印机的“忙”(Busy)状态信号、A/D转换器的“转换结束”(EOC)状态信号,但对A口和B口来说,都是作8255A的数据口读入,而不是作8255A的状态口读入的。第第6 6章章 接口技术接口技术14 C口的作用与8255A的工作方式有关,它除了作数据口以外,还有其他用途,故C口的使用比较特殊,单独介绍如下:a.作数据口。b.作状态口。c.作专用(固定)联络(握手)信号线。d.作按位控制用。第第6 6章章 接口技术接口技术15CS CS A A1 1A A0 0RD
12、RDWRWR读操作读操作内容内容PCPC系统系统实验平台实验平台0 00 00 00 01 1PAPA口口数据总线(数据总线(CPUCPU)数据数据60H60H200H200H0 00 01 10 01 1PBPB口口数据总线(数据总线(CPUCPU)数据数据61H61H201H201H0 01 10 00 01 1PCPC口口数据总线(数据总线(CPUCPU)数据数据62H62H202H202H写操作写操作0 00 00 01 10 0PAPA口口 数据总线(数据总线(CPUCPU)数据数据60H60H200H200H0 00 01 11 10 0PBPB口口数据总线(数据总线(CPUCPU
13、)数据数据61H61H201H201H0 01 10 01 10 0PCPC口口数据总线(数据总线(CPUCPU)数据数据62H62H202H202H0 01 11 11 10 0控制寄存器控制寄存器数据总线数据总线控制字控制字63H63H203H203H无操作情况无操作情况1 1总线悬浮(三态)总线悬浮(三态)0 01 11 1总线悬浮总线悬浮0 01 11 10 01 1控制口不能读控制口不能读63H63H203H203H表表6-2 8255A6-2 8255A通道选择与基本操作表通道选择与基本操作表第第6 6章章 接口技术接口技术166.1.3 8255A6.1.3 8255A与与CPU
14、CPU的连接的连接 8255A与CPU连接时,需要注意CPU的输入输出采用什么方式:是存储器寻址的IO方式,还是通道寻址的IO方式。第第6 6章章 接口技术接口技术171.方式命令作用:指定8255A的工作方式及其方式下3个并行端口(PA、PB、PC)的功能,是作输入还是作输出。格式:8位,其中最高位是特征位,一定要写1,其余各位定义如下,应根据用户的设计要求填写1或0。PC030=输出输出1=输入输入PB0=输出输出1=输入输入B组方式组方式0=0方式方式1=1方式方式PC470=输出输出1=输入输入PA0=输出输出1=输入输入A组方式组方式00=0方式方式01=1方式方式10=2方式方式1
15、1=不用不用特征位特征位D0D1D2D3D4D5D616.1.4 8255A6.1.4 8255A的工作方式及使用的工作方式及使用 8255A8255A的编程命令的编程命令 第第6 6章章 接口技术接口技术18 例:要把A口指定为1方式,输入,C口上半部为输出;B组指定为0方式,输出,C口下半部定为输入,则工作方式命令代码是:10110001B或B1H。若将此命令代码写到8255A的命令寄存器,即实现了对8255A工作方式及端口功能的指定,或者说完成了对8255A的初始化。初始化的程序段为:MOV DX,203H ;8255A命令口地址 MOV AL,0B1H ;初始化命令 OUT DX,AL
16、 ;送到命令口第第6 6章章 接口技术接口技术192.按位置位/复位命令作用:指定PC口的某一位(某一个引脚)输出高平或低电平。格式:8位,其中最高位是特征位,一定要写0,其余各位的定义如下,应根据用户的设计要求填写1或0.1=置位置位(高电平)(高电平)0=复位复位(低电平)(低电平)位位 选选 择择000=C口口0位位001=C口口1位位111=C口口7位位 不不 用用(写(写0)特征位特征位D0D1D2D3D4D5D60第第6 6章章 接口技术接口技术20 例:若要把C口的PC2引脚置成高电平输出,则命令字应该为00000101B或05H。将该命令的代码写入8255A的命令寄存器,就会使
17、得从PC口的PC2引脚输出高电平,其程序段为:MOV DX,203H ;8255A命令口地址 MOV AL,05H ;使PC2=1的命令字 OUT DX,AL ;送到命令口 如果要使引脚PC2输出低电位,则程序段为:MOV DX,203H ;8255A命令口地址 MOV AL,04H ;使PC2=0的命令字 OUT DX,AL ;送到命令口第第6 6章章 接口技术接口技术21 利用C口的按位控制特性还可以产生、负脉冲或方波输出,对外设进行控制。例:利用8255A的PC7产生负脉冲,作打印机接口电路的数据选通信号,其程序段为:MOV DX,203H ;8255A命令口 MOV AL,000011
18、10B ;置PC7=0 OUT DX,AL NOP ;维持低电平 NOP MOV AL,00001111B ;置PC7=1 OUT DX,AL第第6 6章章 接口技术接口技术223.关于两个命令的讨论 方式命令是对8255A的3个端口的工作方式及功能进行指定,即进行初始化,初始工作要在使用8255A之前做。按位置位/复位命令只是对PC口的输出进行控制,使用它产不破坏已经建立的3种工作方式,而是对它们实现动态控制的一种支持。它可放在初始化程序以后的任何地方。两个命令的最高位(D7)都分配作了特征位,之所以要设置特征位,是为了识别两个不同的命令。按位置位/复位的命令代码只能写入命令口。第第6 6章
19、章 接口技术接口技术234.A口和B口另一个使用方法 A口、B口也可以按位输出高低电平,但是,它与前面的按位置位/复位命令有本质的差别,并且实现的方法也不同,。C口按位输出是以送数据到A口、B口来实现的。其具体作法是:若要使某一位置高电平,则先对端口进行读操作,将读入的原输出值,“或”上一个字节,字节中使该位为1,其他位为0,然后再送到同一端口,即可使该位为0,然后再送到同一端口,即可使该位置位。1 0 1 0 1 0 1 0OR 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1AND 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0
20、第第6 6章章 接口技术接口技术24例:例:若要使若要使PAPA7 7位输出高位输出高/低电平。低电平。使使PAPA7 7输出高电平:输出高电平:MOV DX MOV DX,200H 200H ;PAPA数据口地址数据口地址 IN ALIN AL,DX DX ;读入;读入A A口原输出内容口原输出内容 MOV AHMOV AH,AL AL ;保存原输出内容;保存原输出内容 OR ALOR AL,80H 80H ;使;使PAPA7 7=1=1 OUT DX OUT DX,AL AL ;输出;输出PAPA7 7 MOV AL MOV AL,AH AH ;恢复原输出内容;恢复原输出内容 OUT DX
21、OUT DX,ALAL第第6 6章章 接口技术接口技术25使使PAPA7 7输出低电平输出低电平MOV DXMOV DX,200H 200H ;A A口地址口地址IN ALIN AL,DX DX ;读入端口原输出值;读入端口原输出值MOV AHMOV AH,AL AL ;保存原输出值;保存原输出值AND ALAND AL,7FH 7FH ;使;使PAPA7 7=0=0OUT DXOUT DX,AL AL ;输出;输出PAPA7 7 MOV ALMOV AL,AH AH ;恢复原输出内容;恢复原输出内容OUT DXOUT DX,AL AL 第第6 6章章 接口技术接口技术26 8255A的工作方
22、式与端口有关,PA口有三种方式(0方式、1方式、2方式),PB口和PC口只有两种方式(0方式、1方式)。8255A8255A的工作方式的工作方式 第第6 6章章 接口技术接口技术278255A8255A的的0 0方式及其应用方式及其应用一、特点 0方式是一种基本输入/输出工作方式。通常不用联络信号,或不使用固定的联络信号。基本I/O方式是指查询方式传送,也包括无条件传送。在0方式下,彼此独立的两个8位和两个4位并行口,都能被指定作为输入或者输出用,共有16种不同的使用状态。第第6 6章章 接口技术接口技术28 在0方式下不设置专用联络信号线,需要联络时,可由用户任意指定C口中的哪 根线完成某种
23、联络功能,这与后面要讨论的在1方式、2方式下设置固定的专用联络信号线不同。是单向I/O,一次初始化只能指定端口(PA、PB和PC)作输入或输出,不能指定端口同时既作输入又作输出。第第6 6章章 接口技术接口技术29二、并行打印机接口设计1.要求 为某应用系统配置一个并行打印机接口,并且通过接口CPU采用查询方式把存放在BUF缓冲区的256个字(ASCII码)送去打印。第第6 6章章 接口技术接口技术302.分析 由于打印接口直接面向的对象是打印机接口标准,而不是打印机本身,因此打印机接口要按照接口标准的要求进行设计。(1)并行打印机接口是一个输出接口,首先查询BUSY。若BUSY1,打印机忙,
24、则等待;若BUSY0,打印机不忙,则送数据。(2)通过并行接口把数据送DATA0DATA7数据线上。(3)再送出一个数据选通信号给标准插座的1号引脚,把数据线上的数据打入到打印机的内部缓冲器。(4)打印机在收到数据后,通过插座的11号引给发出“忙”(BUSY1)信号,表明打印机正在处理输入的数据。第第6 6章章 接口技术接口技术313.设计 接口电路的设计包括硬件接口电路和软件驱动程序两部分。(1)打印机接口电路如图6-6所示。该电路的设计思路是:按照并行打印接口标准对打印机接口信号线的定义,最基本的信号线需要8根数据线(DATA0DATA7)、1根控制线(),1根状态线(BUSY)和1根地线
25、。选用8255A的PA口作数据口输出8位打印数据,工作方式为0方式。CPU PA07PC7PC2地 地BUSYSTBDATA07111298255A8255A打印机插座打印机插座图图6-6 8255A6-6 8255A并行打印机接口电路框图并行打印机接口电路框图第第6 6章章 接口技术接口技术32开始8255A 初始化BUSY是否为零送 数送 STB内存+1字节数1是否送完结束是否是否(2)接口驱动程序。其程序流程图如图6-7所示。图图6-7 8255A6-7 8255A并行打印机接口驱动程序流程图并行打印机接口驱动程序流程图第第6 6章章 接口技术接口技术33一、特点 1方式是一种选通输入/
26、输出方式或叫应答方式,因此,需设置专用的联络信号线或应答信号线,以便对I/O设备和CPU两侧 进行联络。这种方式通常用于查询(条件)传送或中断传送。数据的输入输出都有锁存功能。PA和PB为数据口,而PC口的大部分引脚分配作专用(固定)的联络信号的C口引脚,用户不能再指定作其他作用。各联络信号线之间有固定的时序关系,传送数据时,要严格按照时序进行。8255A8255A的的1 1方式及其应用方式及其应用输入/输出操作过程中,产生固定的状态字,这些状态信息可作为查询或中断请求之用。状态字从PC口读取。单向传送。一次初始化只能设置在一个方向上传送,不能同时作两个方向的传送。第第6 6章章 接口技术接口
27、技术34二、1方式下联络信号线的定义及其时序1.1方式下输入的联络信号线定义及时序 (1)联络信号的定义 因为输入是从I/O设备向8255A送数据进来,所以I/O设备应先把数据准备好,并送到8255A,然后CPU再从8255A读取数据。这个传递过程中需要使用一些联络信号线。所以当A口和B口为输入时,各指定了C口的3根线作为8255A与外设及CPU之间应答信号,如图所示。STB:外设给8255A的“输入选通”信号,低电平有效。第第6 6章章 接口技术接口技术351 1方式输入时联络信号线定义方式输入时联络信号线定义IBFIBF:8255A8255A给外设的回答信号给外设的回答信号“输入缓冲器满输
28、入缓冲器满”,高电平有效。,高电平有效。INTRINTR:8255A8255A给给CPUCPU的的“中断请求中断请求”信号,高电平有效。信号,高电平有效。&PC4PC5PC3INTEAPA70PC6,7RDI/O2INTRAIBFASTBA81 1方式输入(端口方式输入(端口A A)&PC2PC1PC0INTEBPB70RD2INTRBIBFBSTBB81 1方式输入(端口方式输入(端口B B)第第6 6章章 接口技术接口技术36 在在STBSTB的上升沿约的上升沿约300ns300ns后,在中断允许(后,在中断允许(INTE=1INTE=1)的情况下)的情况下IBFIBF的高的高电平产生中断
29、请求,使电平产生中断请求,使INTRINTR上升变高,通右上升变高,通右CPUCPU,接口中已有数据,接口中已有数据,请求请求CPUCPU读取。读取。CPUCPU得知得知INTRINTR信号有效之后,执行读操作时,信号有效之后,执行读操作时,RDRD信号的下降沿使信号的下降沿使INTRINTR复位,撤消中断请求,为下一次中断请求作好准备。复位,撤消中断请求,为下一次中断请求作好准备。从上述分析,可知在从上述分析,可知在1 1方式下,数据从方式下,数据从I/OI/O设备发出,通过设备发出,通过8255A8255A,送到送到CPUCPU的整个过程有如下的整个过程有如下4 4步:步:CPU8255A
30、I/O设备 STB INTR IBF RD 数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,数据输入时,外设处于主动地位,当外设准备好数据并放到数据线上后,首先发首先发STBSTB信号,由它把数据输入到信号,由它把数据输入到8255A8255A。在在STBSTB的下降沿约的下降沿约300ns300ns,数据已锁存到,数据已锁存到8255A8255A的缓冲器后,引起的缓冲器后,引起IBFIBF变高,变高,表示表示8255A8255A的的“输入缓冲器满输入缓冲器满”,禁止输入新数据。,禁止输入新数据。第第6 6章章 接口技术接口技术372.1方式下输出的联络信号线定义及时序(1)联
31、络信号的定义WR&PC7PC6PC3INTEAPA70PC4,5I/O2INTRAACKAOBFA8&PC1PC2PC0INTEAPA70WRINTRBACKBOBFB81 1方式输出(端口方式输出(端口A A)1 1方式输出(端口方式输出(端口B B)1 1方式输出时联络信号线定义方式输出时联络信号线定义第第6 6章章 接口技术接口技术38其信号交接的过程如下:数据输出时,CPU应先准备如数据,并把数据写到8255A输出数据寄存器。当CPU向8255A写完一个数据后,WR的上升沿使OBF有效,表示8255A的输出缓冲器已满,通知外设读取数据。并且WR使中断请求INTR变低,封锁中断请求。外设
32、得到OBF有效的通知后,开始读数。当外设读取数据后,用ACK回答8255A,表示数据已收到。ACK的下降沿将OBF置高,使OBF无效,表示输出缓冲器变空,为下一次输出作准备,在中断允许(INTE=1)的情况下ACK上升沿使INTR变高,产生中断请求。CPU响应中断后,在中断服务程序中,执行OUT指令,向8255A写下一个数据。第第6 6章章 接口技术接口技术39 从上述分析,在从上述分析,在1 1方式下,数据从方式下,数据从CPUCPU,通过,通过8255A8255A送到送到I/OI/O设备有设备有4 4步:步:CPU8255AI/O设备 WR ACK OBF INTR第第6 6章章 接口技术
33、接口技术40三、1方式的状态字1.状态字的作用 在在1 1方式下方式下8255A8255A有固定的状态字。状态字为查有固定的状态字。状态字为查询方式提供了状态标志位,如询方式提供了状态标志位,如IBFIBF和和OBFOBF,同时,由于,同时,由于8255A8255A不能直接中断矢量,因此当不能直接中断矢量,因此当8255A8255A采用中断方式采用中断方式时,时,CPUCPU也要通过读状态字来确定中断源,实现查询也要通过读状态字来确定中断源,实现查询中断。中断。第第6 6章章 接口技术接口技术412.状态字的格式状态字的格式如图所示。D7D6D5D4D3D2D1D0A组状态B组状态I/OI/O
34、IBFA INTEA INTRAPC7PC6PC5PC4PC3OBFA INTEAI/O I/O INTRAPC7PC6PC5PC4PC3 INTEB IBFB INTRBPC2PC1PC0 输入时 输出时 INTEB OBFB INTRBPC2PC1PC01 1方式的状态字方式的状态字第第6 6章章 接口技术接口技术42 状态字有状态字有8 8位,分位,分A A和和B B两组,两组,A A组状态位占高组状态位占高5 5位,位,B B组状位组状位占低占低3 3位,并且输入和输出时的状态字不相同。位,并且输入和输出时的状态字不相同。3.使用状态字时要注意的几个问题状态字是在状态字是在8255A8
35、255A输入输入/输出操作过程中由内部产生,从输出操作过程中由内部产生,从C C口口读取的,因此从读取的,因此从C C口读出的状态字是独立于口读出的状态字是独立于C C口的外部引脚的,口的外部引脚的,或者说与或者说与C C口的外部引脚口的外部引脚 无关。无关。状态字中供状态字中供CPUCPU查询的状态位有:输入时查询的状态位有:输入时-IBF-IBF位和位和INTRINTR位;输出位;输出-OBF-OBF位和位和INTRINTR位。位。状态字中的状态字中的INTEINTE位,是控制标志位,是控制标志位,控制位,是控制标志位,是控制标志位,控制8255A8255A能否提出中断请求,因此它不是能否
36、提出中断请求,因此它不是I/OI/O操作过程中自动产生操作过程中自动产生的状态,而是由程序通过按位置位的状态,而是由程序通过按位置位/复位命令来设置或清除。复位命令来设置或清除。第第6 6章章 接口技术接口技术43 例:若允许PA口输入时,产生中断请求,则必须设置INTEA=1,即置PC4=1;若禁止它产生中断请求,则置INTEA=0,即置PC4=0,其程序段为:MOV DX,203H ;8255A命令口 MOV AL,00001001B ;置PC4=1,允许中断请求 OUT DX,AL MOV AL,00001000B ;置PC4=0,禁止中断请求 OUT DX,AL第第6 6章章 接口技术
37、接口技术44五、两种方式并行传送接口设计1.要求 在甲乙两台微机之间并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用1方式工作,乙机一侧的8255A采用0方式工作。两机的CPU与接口之间都采用查询方式交换数据。第第6 6章章 接口技术接口技术452.分析 双机均采用可编程并行接口芯片8255A构成接口电路,只是8255A的工作方式不同。此时,双方的8255A把对方视为I/O设备。3.设计 (1)硬件连接 根据上述要求,接口电路的连接如图所示。(2)软件编程 接口驱动程序包含发送与接收两个程序。第第6 6章章 接口技术接口技术460 0方式方式1 1方式方式8255APA07P
38、C7PC3PC46PC02PB07PA07PC7PC6PC3PC02、45PB07未未用用8255A甲甲(发送发送)CPUCPU乙乙(接收接收)CPUCPUACKOBF两种方式的并行传送接口电路框图两种方式的并行传送接口电路框图第第6 6章章 接口技术接口技术47甲机发送程序段:甲机发送程序段:MOV DXMOV DX,203H 203H ;8255A8255A命令口命令口MOV ALMOV AL,10100000B 10100000B ;初始化工作方式字;初始化工作方式字OUT DXOUT DX,AL AL MOV ALMOV AL,00001101B 00001101B ;置发送中断允许;
39、置发送中断允许INTEA=1INTEA=1OUT DXOUT DX,AL AL ;PCPC6 6=1=1MOV SIMOV SI,OFFSET BUFS OFFSET BUFS;设置发送数据区的指针;设置发送数据区的指针MOV CXMOV CX,3FFH 3FFH ;发送字节数;发送字节数MOV DXMOV DX,200H 200H ;向;向A A口写第一个数,产生第一个口写第一个数,产生第一个 OBF-OBF-信号信号MOV ALMOV AL,SI SI ;送给乙方,以便获取乙方的;送给乙方,以便获取乙方的ACK-ACK-信号信号OUT DX OUT DX,ALAL第第6 6章章 接口技术接
40、口技术48 INC SI INC SI ;内存地址加;内存地址加1 1 DEC CX DEC CX ;传送字节数减;传送字节数减1 1L L:MOV DXMOV DX,202H 202H ;8255A8255A状态口状态口 IN ALIN AL,DX DX ;查发送断请求;查发送断请求INTRINTRA A=1=1?AND ALAND AL,08H 08H ;PCPC3 3=1=1?JZ L JZ L ;若无中断请求,则等待;若无中断请求,则等待 ;若有中断请求,则向;若有中断请求,则向A A口写数口写数 MOV DXMOV DX,200H 200H ;8255APA8255APA口地址口地址
41、 MOV ALMOV AL,SI SI ;从内存取数;从内存取数 OUT DXOUT DX,AL AL ;通过;通过A A口向乙机发送第二个数据口向乙机发送第二个数据 INC SI INC SI ;内存地址加;内存地址加1 1第第6 6章章 接口技术接口技术49 DEC CX DEC CX ;字节数减;字节数减1 1 JNZ L JNZ L ;字节未完,继续;字节未完,继续 MOV AHMOV AH,4CH 4CH ;已完,退出;已完,退出 INT 21H INT 21H ;返回;返回 BUFS DB 1024BUFS DB 1024个数据个数据乙机接收程序段:(略)乙机接收程序段:(略)第第
42、6 6章章 接口技术接口技术508255A8255A的的2 2方式及其应用方式及其应用一、特点PA口为双向选通输入/输出或叫双向应答式输入/输出。一次初始化可指定PA口既作输入口又作输出口。设置专用的联络信号线和中断请求号信线,因此,2方式下可采用中断方式和查询方式与CPU交换数据。各联络线的定义及其时序关系和壮态基本上是在1方式下输入和输出两种操作的组合。第第6 6章章 接口技术接口技术51二、2方式下联络信号线的定义及其时序1.联络信号线的定义 2 2方式是一种双向选通输入输出方式是一种双向选通输入输出方式,它把方式,它把A A口作为双向输入口作为双向输入/输出输出口,把口,把C C口的口
43、的5 5根线(根线(PCPC3 3PCPC7 7)作为)作为专用应答线,所以,专用应答线,所以,8255A8255A只有只有A A口口才有才有2 2方式。其引脚定义如图所示。方式。其引脚定义如图所示。PC3PC7PA70PC6PC4PC5PC201&INTE1INTE2&WRRDINTRA8OBFAACKASTBAIBFAI/O32 2方式的联络信号线定义方式的联络信号线定义三、2方式的状态字 2方式状态字的含义是1方式下输入和输出状态位的组合。第第6 6章章 接口技术接口技术526.2 6.2 串行通信与异步通信控制器串行通信与异步通信控制器82508250 53串行接口最基本的特点是将数据
44、的各个位一位一位地,通过单条1位宽的传输线按顺序分时传送,即通信双方一次传送一个二进制位。在实际应用中,串行通信比并行通信应用要多,串行通信被广泛应用于各种高、中、低速外部设备与主机的通信,大多数的计算机互联通信也是使用的串行通信。第第6 6章章 接口技术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 1.串行通信的特点54 并行通信和串行通信是两种基本的数据通信方式,他们应用在不同并行通信和串行通信是两种基本的数据通信方式,他们应用在不同的场合:的场合:(1)从通信距离上来看,并行通信适于近距离数据传送,通常小于三十)从通信距离上来看,并行通信适于近距离数据传送,通常小
45、于三十米。串行通信适于远距离传送,可以从几米到数千千米。米。串行通信适于远距离传送,可以从几米到数千千米。(2)从通信速率来看,一般应用中,在短距离,并行通信的数据传输数)从通信速率来看,一般应用中,在短距离,并行通信的数据传输数率要比串行数据数率要高很多,但长距离串行数据传输数率会比并行率要比串行数据数率要高很多,但长距离串行数据传输数率会比并行数据传输数率高。由于串行通信的通信时钟频率较并行通信容易提高,数据传输数率高。由于串行通信的通信时钟频率较并行通信容易提高,因此许多高速外部设备,如数字摄像机与计算机之间的通信也往往使因此许多高速外部设备,如数字摄像机与计算机之间的通信也往往使用串行
46、通信。用串行通信。(3)从抗干扰性能来看,串行通信由于只有一两根信号线,信号间的干)从抗干扰性能来看,串行通信由于只有一两根信号线,信号间的干扰完全可以忽略。扰完全可以忽略。(4)从设备和费用来看,由于通信线路费用比较高,因此,对于远距离)从设备和费用来看,由于通信线路费用比较高,因此,对于远距离来说,串行通信费用要低些。来说,串行通信费用要低些。串行通信和并行通信比,有很多优点,但带来了数据的串并及串行通信和并行通信比,有很多优点,但带来了数据的串并及并串格式转换要求、位计数等问题,使之比并行通信实现起来复杂。并串格式转换要求、位计数等问题,使之比并行通信实现起来复杂。第第6 6章章 接口技
47、术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 55 串行接口的特点是:第一,串行传送在一根传输线上既传送数据信息又传送联络控制信号;第二,有固定的数据格式,分异步与同步数据格式;第三,串行通信中对信号的逻辑定义与TTL不兼容,故需要进行逻辑关系与逻辑电平转换;第四,串行传送信息的速率需要控制,要求双方设定通信传输的波特率。第第6 6章章 接口技术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 56第第6 6章章 接口技术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 2.串行数据传送方式 在串行通信中,数据通常是在两个站(如
48、微机和终端)之间进行传送,按照数据流的方向可以分成三种基本传送方式:单工、半双工、全双工。(1)单工方式。这种方式只允许数据按一个固定方向传送。(2)半双工方式。这种方式下数据能从A站传送到B站,也能从B站传送到A站,但是不能同时在两个方向上传送,每次只能有一个站发送、另一个站接收。一般不工作时,A和B均处于接收方式,以便随时响应对方呼叫。采用半双工时,通信系统每一端的发送器和接收器,通过发送器和接收器转接到通信线上,进行方向的切换,因此,会产生时间延迟。57第第6 6章章 接口技术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 2.串行数据传送方式 (3)全双工方式。这
49、种方式下数据的发送和接收分流,分别由两根不同的传输线传送,通信双方能够在同一时刻进行发送和接收。采用双工时,通信系统每一端都设置了发送器和接收器,能控制数据同时在两个方向上传送。全双工方式无需进行方向切换,因此,没有切换操作所产生的时间延迟。在计算机串行通信中,主要使用半双工和全双工方式。一些简单的外部设备(如键盘等)与主机的通信大都采用半双工方式;全双工方式主要在实时性较强的交互式应用(如远程监控和控制系统)。58第第6 6章章 接口技术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 3.信号的调制解调 计算机的通信是要求传送数字信号,而在远程数据通信时,通信线路往往借
50、助现有的公话网,而公话网是为3003400Hz间的音频模拟信号设计的,这不适合二进制数据传输。为此采用调制器把数字信号转换成模拟信号,送到通信线路上,而用解调器再把从通信线路上收到的模拟信号转换成数字信号。大多数情况下,通信是双向的,调制器和解调器合在一个装置中,这就是调制解调器MODEM。调制解调器的类型很多,有振幅键控(ASK)、频移键控(FSK)和相移键控(PSK)三种。在计算机通信中用得较多的是频移键控法。59第第6 6章章 接口技术接口技术6.2.1 6.2.1 串行通信的基本概念串行通信的基本概念 4.波特率和收发时钟 串行通信中,衡量数据传输速率的单位是波特率,即单位时间内传送的