6.28255A原理第6章I/O和8255A中国科学技术大学6.28255A原理第6章I/O和8255A中国科学技术大学§6.28255A的工作原理8255A是一种通用可编程并行I/O接口芯片(ProgrammablePeripherialInterface,PPI)。它是Intel系列CPU的配套电路,也可用于其它微处理器系统中。通过编程,它可工作于3种不同的数据传输方式。6.28255A原理第6章I/O和8255A中国科学技术大学6.2.18255A的结构和功能6.2.28255A的控制字6.2.38255A的工作方式和C口状态字6.28255A原理第6章I/O和8255A中国科学技术大学6.2.18255A的结构和功能外部40个引脚内部包含:数据端口A、B、C。其中,C口分成C口上半部(C高)和C口下半部分(C低)。A组和B组控制逻辑数据总线缓冲器读/写控制逻辑。6.28255A原理第6章I/O和8255A中国科学技术大学1.数据端口A、B和C端口A:包含1个8位的数据输出锁存器/缓冲器,1个8位的数据输入锁存器。A口作输入或输出时数据均能锁存。端口B:包含1个8位的数据输入/输出锁存器/缓冲器,1个8位的数据输入缓冲器。端口C:包含1个8位的数据输出锁存器/缓冲器,1个8位的数据输入缓冲器,无输入锁存功能,分成两个4位端口时,每个端口有1个4位的输出锁存器。C口还可配合A口和B口工作,用来产生A口和B口的输出控制信号、输入到A口和B口的端口状态信号。6.28255A原理第6章I/O和8255A中国科学技术大学2.A组和B组控制逻辑A组:管理A口和C口高,通过PA7~PA0以及PC7~PC4引脚与外部联络。B组:管理B口和C口低,通过PB7~PB0以及PC3~PC0引脚与外部联络。内部有控制寄存器,能接收CPU送来的命令字,决定A组和B组的工作方式,或对C口的每1位执行置位/复位操作。6.28255A原理第6章I/O和8255A中国科学技术大学3.数据总线缓冲器双向三态的8位缓冲器,用作8255A和系统数据总线间的接口。通过这个缓冲器和8位数据总线D7~D0,接收CPU送来的数据信息或控制字,外设传送给CPU的数据或状态信息,也要通过数据总线缓冲器和D7~D0送给CPU。6.28255A原理第6章I/O和8255A中国科学技术大学4.读/写控制逻辑有关信号:RESET,系统复位。高电平时使控制字寄存器清0,各端口工作于输入方式。,片选。译码电路产生,低电平时芯片才选中。,读。有效时,可读取8255A的数据或状态信息。,写。有效时,可向8255A写入数据或控制字。A1A0,端口选择。A1A0=00,A口;A1A0=01,B口;A1A0=10,C口;A1A0=11,控制口。在8位系统中,常将A1A0与地址总线A1A0相连。若8255A端口基地址为60H,则A口、B口、C口和控制口分别为60H,61H,62H和63H。CSRDWR6.28255A原理第6章I/O和8255A中国科学技术大学=0,8255A可进行读/写操作。,可从A口、B口、C口读出数据。,可向这3个端口写入数据。口地址由A1A0选择,但当A1A0=11时,只能向控制口写入控制字,否则为非法操作。和不能同时为0。RD0WR0RDWRCS6.28255A原理第6章I/O和8255A中国科学技术大学设计电路时要注意:在16位数据总线的8086系统中,可将地址总线的A2A1连到8255A的A1A0端。若它的数据线D7~D0接在CPU数据总线的低8位上,则要用偶端口地址来寻址8255A;而当D7~D0接在数据总线的高8位上时,要用奇地址口。例如:若8255A的基地址为F0H,则A2A1=00,选A口,即口地址F0H;A2A1=01,选B口,口地址F2H;A2A1=10。选C口,口地址F4H;A2A1=11,选控制字寄存器,口地址F6H。6.28255A原理第6章I/O和8255A中国科学技术大学6.2.18255A的结构和功能6.2.28255A的控制字6.2.38255A的工作方式和C口状态字6.28255A原理第6章I/O和8255A中国科学技术大学1.方式选择控制字写入控制口以定义各端口工作方式,且要求D7=1。D6D5:选择A口的工作方式(方式0~2),D2:选择B口的方式(方式0、1)。D4D3D1D0:A口、C高、B口、C低的I/O方式。1-In(输入),0-Out(输出),可有16种组态。6.28255A原理第6章I/O和8255A中国科学技术大学2.置位/复位控制字可使C口任一引脚的输出单独置1或清0,格式:例如:设8255A口地址为60H~63H,PC5平时为低电平,要求从PC5输出一个正脉冲,程序段:MOVAL,00001011BOUT63H,AL;置PC5为高电平MOVAL,00001010BOUT63H,AL;置PC5为低电平6.28255A原理第6章I/O和8255A中国科学技术大学6.2.18255A的结构和功能6.2.28255A的控制字6.2.38255A的工作方式和C口状态字6.28255A原理第6章I/O和8255A中国科学技术大学8255A可工作于3种方式:方式0-基本输入输出方式方式1-选通输入输出方式方式2-双向总线I/O方式1.方式0基本输入输出(BasicInput/Output)方式,适用于不要用应答信号的简单I/O。A口、B口用作8位端口;C高和C低各用作2个4位端口,或合在一起构成1个8位端口。输出信号可被锁存,输入不能锁存。6.28255A原理第6章I/O和8255A中国科学技术大学图6.13各端口均工作于方式0时的控制字A口、C高、B口、C低可构成16种不同组态。例如,设8255A的控制字寄存器的口地址为63H,若要求A口和B口工作于方式0,A口、B口和C口高4位作输入,C口低4位为输出,可用下列指令来设置:MOVAL,10011010BOUT63H,AL6.28255A原理第6章I/O和8255A中国科学技术大学2.方式1选通输入/输出(StrobeInput/Output)方式A口、B口作数据口,均可工作于输入或输出方式,并能锁存数据。要在联络信号控制下才能工作。PC0PC2,PC3PC5用作联络(Handshaking)信号。又可分3种情况:1)选通输入方式2)选通输出方式3)选通I/O方式组合6.28255A原理第6章I/O和8255A中国科学技术大学1)选通输入方式A口和B口都工作于选通输入方式时,PC0-PC2,PC3-PC5用作联络信号,PC6,7还可作输入输出用。A口为输入,PC3-5作联络信号。控制字的D3位为C高I/O,D3=1,PC6,7为输入D3=0,PC6,7为输出B口为输入,PC0-2作联络信号6.28255A原理第6章I/O和8255A中国科学技术大学选通输入联络信号(Strobe),选通信号低电平时,将外部输入数据通过PA7PA0(A口)或PB7PB0(B口)打入所选端口的输入缓冲器中。:A口选通,从PC4引入;:B口选通,从PC2引入。IBF(InputBufferFull),输入缓冲器满信号高电平时,表示输入设备送来的数据已送到输入缓冲器中,通知外设不要送新数据来。IBFA:A口缓冲器满,从PC5输出;IBFB:B口缓冲器满,从PC1输出。ASTBBSTBSTB6.28255A原理第6章I/O和8255A中国科学技术大学选通输入联络信号INTE(InterruptEnable),内置的中断允许信号。在A组和B组控制逻辑中,设有中断请求触发器INTEA、INTEB。只有用软件才能使其置1或清0。用置位复位字使PC4置1时,允许A口中断;使PC2置1时,允许B口中断。INTR(InterruptRequest),是8255A向CPU发的中断请求信号。只有当、IBF、INTR都高时,才能将INTR置为有效高电平。表示选通信号已结束,缓冲器中已有数据,中断是允许的,8255A可向CPU发中断请求信号INTR,要求CPU读取外设送到缓冲器中的数据。STB6.28255A原理第6章I/O和8255A中国科学技术大学方式1选通输入时序①外设把1个数据送到A口或B口后,向8255A发选通信号,数据被8255A锁存。②随后IBF变高,指示输入缓冲器已满,外设不要送新数据来。③回复高电平后,若IBF和INTE也同时为高,INTR就会变高,请求中断,CPU响应中断后执行IN指令读取数据(变低)。④有效后,经tRIT时间INTR变低,清除中断。⑤读信号结束,数据读入累加器;之后IBF变低,缓冲器已空,外设可再送新的数据来。STBRDRD6.28255A原理第6章I/O和8255A中国科学技术大学2)选通输出方式A口输出PC3,PC6和PC7作A口的联络信号B口输出PC0,PC1和PC2作B口的联络信号PC4、PC5可作输入或输出D3=1,输入D3=0,输出6.28255A原理第6章I/O和8255A中国科学技术大学选通输出联络信号(OutputBufferFull),输出缓冲器满•,表示数据已写到输出口,并已出现在PA和PB线上,通知外设取走。•PC7用作,PC1用作(Acknowledge),外设回答信号•,CPU输出到A口或B口的数据已被外设接收。•PC6用作,PC2用作OBFAOBFBOBFAACKBACKACK=0ACKOBF=06.28255A原理第6章I/O和8255A中国科学技术大学选通输出联络信号INTE,中断允许信号•INTE=0,端口允许中断,置1时被屏蔽。•INTEA由PC6控制,INTEB由PC2控制,它们由置位/复位字进行设置。INTR,中断请求信号•输出设备收到CPU输出的数据后,INTR变高,向CPU提出中断请求,要求再输出1个数据到外设。•当、、INTE均=1时,才能使INTR变高。•INTRA从PC3引脚输出,INTRB从PC0输出。ACKOBF6.28255A原理第6章I/O和8255A中国科学技术大学方式1选通输出时序①CPU响应中断后,执行OUT指令输出数据,变低②经tWIT时间后,清除中断请求信号,使INTR=0③的后沿使,通知外设从输出缓冲器中取走数据④外设收到数据后,发回应答信号,⑤应答后再经tAOB,无效,指示缓冲器已空⑥回到高电平后,经tAIT时间,INTR变高,向CPU发中断请求,让CPU再送一个新数据过来WR0OBF0ACKOBFACKWR6.28255A原理第6章I/O和8255A中国科学技术大学3)选通输入/输出方式组合A口、B口也可单独定义A口输入,B口输出A口输出,B口输入PC0~PC5作控制线PC0~PC3和PC6、PC7作控制D3=1,PC6、7为输入D3=1,PC4、5为输入D3=0,PC6、7为输出D3=0,PC4、5为输出6.28255A原理第6章I/O和8255A中国科学技术大学3.方式2方式2也称为双向总线方式,只有A口支持方式2。A口既能用作输入口,也可以编程为输出口,与外设双向交换数据。双向数据都能被锁存。6.28255A原理第6章I/O和8255A中国科学技术大学PC3~PC7作A口的联络信号:输入:,输出:,IBFA,,INTRA原理与方式1的A口选通输入、A口选通输出类同ASTBAACKAOBFAACK6.28255A原理第6章I/O和8255A中国科学技术大学4.C口状态字方式1和2时,C口用作联络信号。用IN指令读取C口内容可检测外设状态,这样,就可采用查询方式而不用中断方式实现数据交换。1)方式1(输入或输出)状态字D7~D3位为A组状态字,D2~D0位为B组状态字。6.28255A原理第6章I/O和8255A中国科学技术大学2)方式2状态字D7~D3位:A组状态字D2~D0位:当B口为方式1,B口状态字当B口为方式0,用作I/O,不是状态位。