1、 D0D1D2D3D4D5D6D7目目的的D0D1D2D3D4D5D6D7源源010101108255PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC3PC2PC1PC0PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3断开功能断开功能数据总线数据总线三态三态非法状态非法状态数据总线数据总线三态三态100110111输出操作(写)输出操作(写)数据总线数据总线端口端口A数据总线数据总线端口端口B数据总线数据总线端口端口C数据总线数据总线控制寄存器控制寄存器00000000111101010011
2、输入操作(读)输入操作(读)端口端口A数据总线数据总线端口端口B数据总线数据总线端口端口C数据总线数据总线000111000010001端口及操作功能端口及操作功能A0A1RDWRCS:端口:端口A输入输入/输出输出:端口:端口B输入输入/输出输出 A、B口的口的8位同时动作位同时动作:端口:端口C输入输入/输出输出 C口分为两组,各口分为两组,各4位,位,同时动作同时动作 联络信号,联络信号,固定固定 状态信号,反映芯片状态信号,反映芯片内部状态内部状态 按位控制,按位控制,按位按位操作操作8255与16位微处理器系统的连接16位微处理器系统位微处理器系统A15A3A1A2D7D0D15D8
3、译码器译码器8255A0A1D7D0CSPCPBPA思考思考:8255与高与高8位数据线连接,行吗?位数据线连接,行吗?r 每个端口每个端口8位,通过编程设定其为输入口或输出口位,通过编程设定其为输入口或输出口r 可用来和外设传送信息可用来和外设传送信息resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线1.数据端口A、B、C有有 3 种工作方式种工作方式(方式方式 0、方式、方式
4、 1、方式、方式 2)对外对外 8 根引脚根引脚 PA7 PA0 端口AresetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线r有有 2 种工作方式:方式种工作方式:方式 0、方式、方式 1r对外对外 8 根引脚根引脚 PB7 PB0resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7
5、PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线端口B当当端口端口 A 在方式在方式 1 或方式或方式 2、端口、端口 B 在方式在方式 1 时,时,端口端口 C 的的某些位用于传送联络信号某些位用于传送联络信号,如查询传送的,如查询传送的应答信号、中断传送的中断申请信号等;应答信号、中断传送的中断申请信号等;C口口未被用作联络信号的其它位可工作在方式未被用作联络信号的其它位可工作在方式0。端口端口CresetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESE
6、TA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线8位端口,无对外引脚位端口,无对外引脚控制端口的内容决定控制端口的内容决定A、B、C口的工作状态口的工作状态(输入输入或输出或输出)和工作方式(方式和工作方式(方式 0、1、2)resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线2.控制端口3
7、.数据总线缓冲器(引脚D0D7)resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线4.读写控制电路resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线5.片内译码电路
8、(引脚A1、A0)选择被操作的端口选择被操作的端口resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设8255总线总线1D7D6D5D4D3D2D1D00 输出输出1 输入输入PC3PC0B口口0 输出输出1 1 输入输入0 方式方式01 方式方式1B口工作方式口工作方式PC7PC40 输出输出1 输入输入A口口0 输出输出1 输入输入特征位,特征位,D7=1表示是方式控制字表示是方式控制字A口工
9、作方式口工作方式00 方式方式001 方式方式11x 方式方式2例8 2 5 5 与 系 统 连 线 如 图,片 选 译 码 地 址 为FFF0FFF3h1)确定各端口地址?2)编程设置8255:A口方式 0 输入,PC7PC4输出 B口方式 0 输出,PC3PC0输入resetD7D0A15A2A1A0IORIOW片选片选译码译码数据数据缓冲器缓冲器读写读写控制控制片内片内译码译码RESETA1A0PC7PC0PB7PB0控制口控制口端口端口A端口端口C端口端口B+5VGNDD7D0外外设设RDWRCSPA7PA0F0F3h最后得出结论:最后得出结论:A口地址口地址为为 FFF0 H B口地
10、址口地址为为 FFF1 H C口地址口地址为为 FFF2 H D口地址口地址为为 FFF3 H由由8255编程结构知:编程结构知:结合结合8255与系统总线的连线与系统总线的连线:A15 A6 A5 A4 A3 A2 A1 A0 FFF0H 1 1 1 1 0 0 0 0 A口口FFF1H 1 1 1 1 0 0 0 1 B口口FFF2H 1 1 1 1 0 0 1 0 C口口FFF3H 1 1 1 1 0 0 1 1 D口口 8255A1 A0CS总线总线1特征位特征位00A口口方式方式 01A口口输入输入0PC7PC4输出输出0B口口方式方式 00B口口输出输出1PC3PC0输入输入所以,
11、方式控制字为所以,方式控制字为 1001 0001B,即,即91H 要求设置要求设置:A口方式口方式0输入,输入,PC7PC4输出输出 B口方式口方式0输出,输出,PC3PC0输入输入 2)确定方式控制字确定方式控制字D7D6D5D4D3D2D1D0MOV DX,0FFF3H ;控制口地址控制口地址MOV AL,91H ;方式方式控制字控制字OUT DX,AL0D7D6D5D4D3D2D1D00 复位复位1 置位置位设置内容设置内容特征位,特征位,D7=0表示是表示是C口按位口按位置位置位/复位控制字复位控制字无意义无意义选择设置位选择设置位通过控制口置通过控制口置 PC2 为为 0,置,置
12、PC4 为为 1解:解:MOV DX,0F3H ;置置DX为控制口地址为控制口地址 MOV AL,0000 0100B ;置置PC2为为0 OUT DX,AL MOV AL,0000 1001B ;置置PC4为为1 OUT DX,AL 锁存器锁存器到外设到外设8 88 8IO/IO/MWRWR地址译码器地址译码器数据总线数据总线地址总线地址总线&CECE三态缓三态缓冲器冲器数据来数据来自外设自外设8 88 8IO/IO/MWRWR地址译码器地址译码器数据总线数据总线地址总线地址总线&CECE1011/01/011/01/0D7D6D5D4D3D2D1D0特征位特征位A口口工作方式工作方式 A口
13、口I/OPC7PC7PC4PC4I/OB口口工作方式工作方式 B口口I/OPC3PC3PC0PC0I/O1 0 1 1A A口方式口方式1 1输入控制字输入控制字11 1B B口方式口方式1 1输入控制字输入控制字PA7PA7PA0PA0PC4PC4PC5PC5PC3PC3INTEAINTEAPC4PC4与门与门IBFAIBFASTBASTBAINTRAINTRARDRDD7D7D0D0A口方式口方式1输入时输入时相应的联络信号相应的联络信号B口方式口方式1输入时输入时相应的联络信号相应的联络信号方式方式1下输入端口的联络信号下输入端口的联络信号PB7PB7PB0PB0PC2PC2PC1PC1
14、PC0PC0INTEBINTEBPC2PC2与门与门IBFBIBFBSTBBSTBBINTRBINTRBRDRDD7D7D0D0方式方式1下输入端口的联络信号下输入端口的联络信号方式方式1下输入端口的联络信号下输入端口的联络信号INTE:中断允许控制信号作用是控制是否允许8255A的中断申请信号INTR发出。此信号无引出,通过控制口对C口相应位的置位/复位,设置允许或不允许。v A口,对PC4置位,使INTEA=1,允许中断 对PC4复位,使INTEA=0,不允许中断v B口,对PC2置位,使INTEB=1,允许中断 对PC2复位,使INTEB=0,不允许中断v在方式1下,作为联络信号的外部引
15、脚PC4、PC2,不受C口按位置位/复位控制字控制,而只在8255A内部对INTE信号起作用1 0 1 0A A口方式口方式1 1输出控制字输出控制字11 0B B口方式口方式1 1输出控制字输出控制字A口方式口方式1输出时相输出时相应的联络信号应的联络信号B口方式口方式1输出时相输出时相应的联络信号应的联络信号方式方式1下输出端口的联络信号下输出端口的联络信号PA7PA7PA0PA0PC7PC7PC6PC6PC3PC3INTEAINTEAPC6PC6与门与门ACKAACKAOBFAOBFAINTRAINTRAWRWRD7D7D0D0PB7PB7PB0PB0PC1PC1PC2PC2PC0PC0
16、INTEBINTEBPC2PC2与门与门ACKBACKBOBFBOBFBINTRBINTRBWRWRD7D7D0D0由外设发出,送给由外设发出,送给8255A。作用是通知作用是通知 8255A,输出端口的数据已被外设取走,可以传送下一个数据。,输出端口的数据已被外设取走,可以传送下一个数据。INTR:中断申请信号(高电平或上升沿有效):中断申请信号(高电平或上升沿有效)8255A 发出发出,用来向用来向CPU发出中断申请。发出中断申请。方式方式1下输出端口的联络信号下输出端口的联络信号 OBF:输出缓冲器满信号(低电平有效):输出缓冲器满信号(低电平有效)ACK:外设响应信号(低电平有效):外
17、设响应信号(低电平有效)当当OBF、ACK、INTE均为时,均为时,8255A自动发出自动发出INTR当数据送至当数据送至8255A输出缓冲器后,输出缓冲器后,8255A自动发出。自动发出。表示表示CPU送来的数据已进入送来的数据已进入8255A输出端口,可用来通知外设把数据取走。输出端口,可用来通知外设把数据取走。方式方式1下输出端口的联络信号下输出端口的联络信号 INTE:中断允许控制信号:中断允许控制信号 作用是控制是否允许中断申请信号作用是控制是否允许中断申请信号INTR发出发出。方式1联络信号状态字D7D6D5D4D3D2D1D0I/O I/OIBFAINTEAINTRAPC7PC6
18、PC5PC4PC3输入时输入时OBFAINTEAI/OI/OINTRAPC7PC6PC5PC4PC3输出时输出时INTEBIBFBINTRBPC2PC1PC0输入时输入时输出时输出时INTEBOBFBINTRBPC2PC1PC0A组状态组状态B组状态组状态方式方式2输入输入/输出端口的联络信号输出端口的联络信号v工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合PA7PA7PA0PA0PC6PC6PC7PC7ACKAACKAOBFAOBFAD7D7D0D0RDRDWRWRPC4PC4PC5PC5STBASTBAIBFAIBFAINTEA1INTEA1PC4
19、PC4INTEA2INTEA2PC6PC6与与门门PC3PC3INTRAINTRA或门或门与与门门 第 1 位 1 k 4 +5 V 0 1 2 3 4 5 6 7 8 9 A B C D E F 第0 行 第1 行 第2 行 第3 行 第3 列 第2 列 第1 列 +5 V 第0 列 P C4 P C6 P C5 P C7 P C3 P C2 P C1 P Cn 1 k 位 驱 动 第8 位 第7 位 第6 位 第5 位 第4 位 第3 位 第2 位 第1 位 8 2 5 5 并 行 接 口 阳 极 第0 位 1 0 0 a b c d e f g d p M C 1 4 1 3 第 2 位
20、 第 3 位 第 4 位 第 5 位 第 6 位 第 7 位 P B0 P B7 P A0 P A7 键盘显键盘显示接口示接口(P426)WAIT_IN:MOV AL,00H;行线(PC7PC4)输出0MOV DX,304H;8255端口C地址OUTDX,ALINAL,DX ;读列线(PC3PC0)状态ANDAL,0FHCMP AL,0FH;是否有列线处于低电平状态JZWAIT_IN;没有键闭合,等待 DONE:CALL DELAY ;有键闭合,延时消除抖动 ANDAL,0FHCMPAL,0FH;判断列线的状态JNZFCOL;有列线为低电平,转ADDBL,4 ;没有,使键号寄存器的值=键号值+
21、列数DECDLJNZFROW;行未扫完,转JMPPROCE;扫描全部完成,结束FCOL:ORAL,0F0H;高位置1,避免误判RCRAL,1JNCPROCE;此列为低电平,确定了键值,转INCBL;未找到低电平的列线,键号=键号+1 JMPFCOL;转FCOL继续查找下一列PROCE:;键命令处理程序MOV DI,OFFSET BUFER;显示缓冲区首址MOV CL,80H;最左边的数码管亮DISI:MOV AL,DI;读取待显示的数据MOV BX,OFFSET TABLE;段码表首址XLAT;段码转换MOV DX,300H;8255端口A,即段控端口OUTDX,AL;送段码MOV AL,CL
22、;位扫描码MOV DX,302H;8255端口B,即位控端口OUTDX,AL;送位码v通道选用 A端口方式1输入,用于A/D变换的数据输入接口 B端口方式0输出,用于D/A变换的数据输出接口 C端口中的位:1、为A端口服务;2、作控制信号vI/O接口的控制方式 输入(A端口)采用查询方式 输出(B端口)采用无条件程控方式 C端口为位操作方式 PA7PA7PA0PA0PC4PC4PC5PC5PC3PC3INTEAINTEAPC4PC4与门与门IBFAIBFASTBASTBAINTRAINTRARDRDD7D7D0D0MOV DX,303HPA7PA7PA0PA0PC7PC7PC6PC6PC3PC
23、3INTEAINTEAPC6PC6与门与门ACKAACKAOBFAOBFAINTRAINTRAWRWRD7D7D0D02CSADS1.接收缓冲器RBR2.发送保持寄存器THR3.传输线控制寄存器LCR4.传输线状态寄存器LSR5.调制解调器控制寄存器MCR6.调制解调器状态寄存器MSR7.中断使能寄存器IER8.中断识别寄存器IIR9.分频次数寄存器DLL及DLM思考:思考:3条地址线如何编码条地址线如何编码10个寄存器?个寄存器?DLABDLABA A2 2A A1 1A A0 0被访问的寄存器被访问的寄存器串口串口1 1的地址的地址0 00 00 00 0接收缓冲器接收缓冲器RBRRBR、
24、发送缓冲器、发送缓冲器THRTHR3F8H3F8H0 00 00 01 1中断允许寄存器中断允许寄存器IERIER3F9H3F9H0 01 10 0中断标识寄存器(只读)中断标识寄存器(只读)IIRIIR3FAH3FAH0 01 11 1传输线控制寄存器传输线控制寄存器LCRLCR3FBH3FBH1 10 00 0ModemModem控制寄存器控制寄存器MCRMCR3FCH3FCH1 10 01 1传输线状态寄存器传输线状态寄存器LSRLSR3FDH3FDH1 11 10 0ModemModem状态寄存器状态寄存器MSRMSR3FEH3FEH1 10 00 00 0除数寄存器(低字节)除数寄存
25、器(低字节)DLLDLL3F8H3F8H1 10 00 01 1除数寄存器(高字节)除数寄存器(高字节)DLMDLM3F9H3F9HD7D6D5D4D3D2D1D0XX0:校验位无效:校验位无效001:奇校验:奇校验011:偶校验:偶校验101:校验:校验0111:校验恒:校验恒1校校 验方验方 式式数据数据 帧长帧长00:5位位01:6位位10:7位位11:8位位设置简断设置简断1-强制间断强制间断0-正常正常寻址识别寻址识别1:分频:分频0:收发数据、中断:收发数据、中断停止位停止位1:1位半或位半或2位位0:1位停止位位停止位D7D6D5D4D3D2D1D00恒恒定定值值1:发送移位空:
26、发送移位空1:发送缓冲空:发送缓冲空1:检测到间断:检测到间断1:帧错:帧错1:奇偶校验错:奇偶校验错1:数据溢出错误:数据溢出错误1:接收数据就绪:接收数据就绪1:自测试:自测试0:正常:正常1:OUT2为低为低1:/OUT1为低为低1:/RTS为低为低1:/DTR为低为低恒为恒为01:/RLSD变化过变化过1:/RLSD为低为低0:/RLSD为高为高1:/RI为低为低0:/RI为高为高1:/RSR为低为低0:/DSR为高为高1:/CTS为低为低0:/CTS为高为高1:/RI变化过变化过1:/DSR变化过变化过1:/CTS变化过变化过1:允许:允许MODEM中断中断1:允许接收错中断:允许接
27、收错中断1:允许发送中断:允许发送中断1:允许接收中断:允许接收中断恒为恒为01:有中断请求:有中断请求0:无中断请求:无中断请求恒为恒为000:MODE中断中断01:发送中断:发送中断10:接收中断:接收中断11:数据错中断:数据错中断波特率波特率分频器分频器DLM(H)分频器分频器DLL(L)5009H00H7506H00H11004H17H15003H00H30001H80H60000HC0H120000H60H180000H40H240000H30H360000H20H480000H18H720000H10H960000H0CH1152000H0AH1920000H06H2304000
28、H05H5760000H02H11520000H01H【例【例9.10】要求串行数据帧包含】要求串行数据帧包含8位有效数据位有效数据、1位停止位位停止位、采用、采用奇校验奇校验方式,请编方式,请编写满足该要求的写满足该要求的8250/16550的初始化程序的初始化程序 根据线控寄存器根据线控寄存器LCR的约定,控制字为的约定,控制字为00001011B,初始化程序如下:,初始化程序如下:MOVAL,00001011B ;控制字;控制字 MOVDX,3FBH;线控寄存器端口地址;线控寄存器端口地址 OUTDX,AL;写入控制字;写入控制字u 定时定时/计数器的计数器的 生产线上统计产品的数目生产
29、线上统计产品的数目-计数器计数器 系统的动态存储器刷新系统的动态存储器刷新-定时器定时器 系统时钟计时系统时钟计时-定时器定时器 扬声器的频率源扬声器的频率源-定时器定时器 数据线 控制线 电源线 D0 D1 D2 D3 D4 D5 D6 D7 RD WR A0 A1 CS VCC GND 8 7 6 5 4 3 2 1 22 23 19 20 21 24 12 Intel 8253 9 11 10 15 14 13 18 16 17 CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2 计数器 0 计数器 1 计数器 2 数据总线缓冲器数据总线缓冲器
30、8D0D7内部总线内部总线CLK0计数器计数器0GATE0OUT0计数器计数器1CLK1GATE1OUT1计数器计数器2CLK2GATE2OUT2读读/写逻辑写逻辑A0A1WRRDCS控制字寄存器控制字寄存器内部的各计数器的结构&CLKGATE16位当前计数值锁存器位当前计数值锁存器16位减一计数器位减一计数器16位计数初值寄存器位计数初值寄存器OUT(减(减1至至0时)时)MSBLSB装入初值装入初值LSBMSB锁存后读出当锁存后读出当前值前值v方式0:计数结束产生中断输出(软件控制)v方式1:重复触发的单稳输出(硬件控制)v方式2:分频器(软件控制)v方式3:方波发生器(软件控制)v方式4
31、:选通信号发生器(软件触发)v方式5:选通信号发生器(硬件触发)v 相同点都是软触发,无自动重装入能力写入控制字及初值后,若GATE=H,CE开始减计数 当CE=0 时,OUT改变电平状态u不同点不同点 方式方式 0 在计数期间在计数期间 OUT=L,计数结束,计数结束 OUT=H方式方式 4 在计数期间在计数期间OUT=H,计数结束,计数结束OUT=负脉冲负脉冲u不同点不同点 方式方式 1 在计数期间在计数期间 OUT=L,计数结束,计数结束OUT=Hu方式方式 5 在计数期间在计数期间OUT=H,计数结束,计数结束OUT=负脉冲负脉冲v 相同点均输出连续周期波形,预置初值可自动重装入 v
32、不同点方式 2 输出连续负脉冲周期波形方式 3 输出连续方波周期波形CSRD WRINTASPEN数数 据据 线线片片选选译译码码203FHIOWA0总线总线 IORA5A15D0D7 INTA INTR方方 波波键键 盘盘保保 留留串串 口口2硬硬 盘盘软软 盘盘打印机打印机18.2Hz+5V用于多片用于多片8259级连情况级连情况串串 口口1定时器定时器CS8259A0RDWRIR0IR1IR2IR3IR4IR5IR6IR7D0D7VccSP/ENCAS0CAS1CAS2GNDINTAINT8259与系统总线的连接与系统总线的连接如果为如果为16位的系统,地址线如何连接?位的系统,地址线如
33、何连接?中断屏蔽寄存器中断屏蔽寄存器IMR数据数据总线总线缓冲器缓冲器内部总线内部总线D07读写读写逻辑逻辑A0控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISRINT优先权优先权处理器处理器PR级联缓级联缓冲器冲器比较器比较器CAS0CAS1CAS2中断中断请求请求寄存器寄存器IRRIR0IR7中断屏蔽寄存器中断屏蔽寄存器IMR数据数据总线总线缓冲器缓冲器内部总线内部总线D07读写读写逻辑逻辑A0控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISRINT优先权优先权处理器处理器PR级联缓级联缓冲器冲器比较器比较器CAS0CAS1CAS2中断中断请求请求寄存器寄存器IRRIR0IR7RDWRCS
34、82598259的读写操作的读写操作A A0 0对应的读对应的读/写操作写操作0 0 0 01 10 0读读IRRIRR、ISRISR或中或中断状态查询码断状态查询码1 1 0 01 10 0读读IMRIMR0 0 1 10 00 0写写OCW2OCW2、OCW3OCW3或或ICW1ICW11 1 1 10 00 0写写OCW1OCW1、ICW2ICW2、ICW3ICW3或或ICW4ICW4 1 11 10 0无操作,数据线无操作,数据线呈高阻态呈高阻态 1 1无操作,数据线无操作,数据线呈高阻态呈高阻态中断屏蔽寄存器中断屏蔽寄存器IMR数据数据总线总线缓冲器缓冲器内部总线内部总线D07读写读
35、写逻辑逻辑A0控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISRINT优先权优先权处理器处理器PR级联缓级联缓冲器冲器比较器比较器CAS0CAS1CAS2中断中断请求请求寄存器寄存器IRRIR0IR7中断屏蔽寄存器中断屏蔽寄存器IMR数据数据总线总线缓冲器缓冲器内部总线内部总线D07读写读写逻辑逻辑A0控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISRINT优先权优先权处理器处理器PR级联缓级联缓冲器冲器比较器比较器CAS0CAS1CAS2中断中断请求请求寄存器寄存器IRRIR0IR7优先权优先权处理器处理器PR中断屏蔽寄存器中断屏蔽寄存器IMR数据数据总线总线缓冲器缓冲器内部总线内部总线D0
36、7读写读写逻辑逻辑A0控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISRINT级联缓级联缓冲器冲器比较器比较器CAS0CAS1CAS2中断中断请求请求寄存器寄存器IRRIR0IR7控制逻辑控制逻辑服务服务状态状态寄存器寄存器ISRINT中断屏蔽寄存器中断屏蔽寄存器IMR数据数据总线总线缓冲器缓冲器内部总线内部总线D07读写读写逻辑逻辑A0优先权优先权处理器处理器PR级联缓级联缓冲器冲器比较器比较器CAS0CAS1CAS2中断中断请求请求寄存器寄存器IRRIR0IR7 1 I3 I4ICW1 芯片控制芯片控制 ICW2 中断类型号中断类型号 ICW3 主从片连接关系主从片连接关系 ICW4 方式
37、控制方式控制0111A01 0 0 1 0 1 0 0OCW1中断屏蔽寄存器中断屏蔽寄存器IMR 0 0 OCW2优先级设置优先级设置/发发EOI 0 1 OCW3特殊屏蔽特殊屏蔽,查询方式设置查询方式设置处理部分处理部分控制部分控制部分PR优先级优先级裁决器裁决器000 0 0 0 0 0 ISR当前当前中断中断服务服务寄存器寄存器1 10 00 0A0A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断中断申请申请寄存器寄存器000 0 0 0 0 0 SP/ENCAS0CAS1CAS2D0D7VCCGNDv4个初始化命令寄存器 ICW1、ICW2 ICW3、ICW4 v3个操作
38、命令寄存器 OCW1(IMR)OCW2、OCW3v当前中断服务寄存器 ISRv中断申请寄存器 IRRv初始化命令字(ICW1ICW4)决定8259A的工作方式通常是在计算机系统启动时在初始程序设置一旦设定,一般在系统工作过程不再改变微机系统的初始化为vIR0IR7中断申请信号为上升沿触发方式vIR0IR7对应的中断类型号分别为08H0FHv优先级IR0最高,IR7最低v操作命令字(OCW1OCW3)在应用程序中设定,动态地控制CPU处理中断的过程vISR和IRR存放当前8259的状态读取ISR和IRR,可了解当前8259工作情况A7 A6 A5 1 LTIM ADI SNGL IC4D7 D6
39、 D5 D4 D3 D2 D1 D00A0ICW18086不用不用0:边沿检测:边沿检测1:电平检测:电平检测0:不需要:不需要CW41:需要:需要ICW480868088不用不用0:级联使用:级联使用1:单独使用:单独使用ICW21A0T7 T6 T5 T4 T3 X X XD7 D6 D5 D4 D3 D2 D1 D0中断类型码高中断类型码高5 5位位自动填入自动填入1A0S7 S6 S5 S4 S3 S2 S1 S0 D7 D6 D5 D4 D3 D2 D1 D0主主8259的级联标志的级联标志1:相应的:相应的IR上上有从有从82590:相应的:相应的IR上上无从无从8259ICW31
40、A0 0 0 0 0 0 ID2 ID1 ID0D7 D6 D5 D4 D3 D2 D1 D0ID2ID0:从:从8259的的IR识识别码别码主片主片从片从片1A00 0 0 SFNM BUF M/S AEOI PMD7 D6 D5 D4 D3 D2 D1 D00:非自动:非自动EOI1:自动:自动EOI0:8085方式方式1:86/88方式方式0:一般的全嵌套方式:一般的全嵌套方式1:特殊的全嵌套方式:特殊的全嵌套方式0:非缓冲方式非缓冲方式10:缓冲方式从片缓冲方式从片11:缓冲方式主片缓冲方式主片v单片8259应用于8086系统,IR0的中断类型码为18H,电平触发方式,全嵌套非缓冲方式
41、,自动结束中断,要求初始化ICW4。端口地址为0A0H开始,初始化程序为:MOVAL,13HOUT0A0H,AL;写入ICW1MOVAL,18HOUT0A2H,AL;写入ICW2MOVAL,03HOUT0A2H,AL;写入ICW4 OCW11A0M7 M6 M5 M4 M3 M2 M1 M0 D7 D6 D5 D4 D3 D2 D1 D00:清中断屏蔽位:清中断屏蔽位1:置中断屏蔽位:置中断屏蔽位0A0R SL EOI 0 0 L2 L1 L0 D7 D6 D5 D4 D3 D2 D1 D00 0 0 1 1 1对应对应IRi的编码的编码无操作无操作010特殊优先权循环,由特殊优先权循环,由L
42、2L0设定最低优先级设定最低优先级011特殊特殊EOI,由,由L2L0指定特殊优先权循环指定特殊优先权循环111取消自动优先权循环取消自动优先权循环(固定优先权固定优先权)000自动优先权循环自动优先权循环001自动优先权循环,常规自动优先权循环,常规EOI101特殊特殊EOI,由,由L2L0指定结束指定结束IRi110常规常规EOI100R=1:循环优先权:循环优先权R=0:固定优先权:固定优先权SL=1:L2L1L0指定指定IR位位SL=0:L2L1L0无效无效EOI=1:中断结束:中断结束OCW2OCW30A0 D7 D6 D5 D4 D3 D2 D1 D0 ESMM SMM 0 1 P
43、 RR RIS10清除特殊清除特殊屏蔽方式屏蔽方式01设定特殊设定特殊屏蔽方式屏蔽方式无意义无意义101010读读IRR01读读ISR无意义无意义10100:非查询方式:非查询方式1:查询方式:查询方式CLI;关中断关中断MOVAL,17H;ICW1:单片,边缘触发,间隔:单片,边缘触发,间隔4,需要,需要ICW4OUT20H,ALMOVAL,08H;ICW2:中断类型码的:中断类型码的D7D3位为位为00001OUT21H,ALMOVAL,01H;ICW4:非自动的:非自动的EOI,非缓冲,非缓冲,80X86方式方式OUT21H,ALMOVAL,04H;OCW1:只屏蔽:只屏蔽IRQ2(保留
44、中断)(保留中断)OUT21H,ALMOVAL,20H;OCW2:固定优先权,一般的:固定优先权,一般的EOIOUT20H,ALMOVAL,4BH;OCW3:正常屏蔽,非查询方式,可读:正常屏蔽,非查询方式,可读ISROUT20H,ALSTI;开中断;开中断=0000 1000B=0001 0111B=0000 0001B=0000 0100B=0010 0000B=0100 1011B中断请求引入方式中断请求引入方式v边沿触发方式输入端IRn出现由低电平到高电平的跳变ICW1的LTIM位为0时,为边沿触发方式v电平触发方式输入端IRn出现持续一定时间的高电平ICW1的LTIM位为1时,为电平
45、触发方式在电平触发方式时,当中断请求被响应后,外设需要尽快撤除高电平,以免引起再次中断设置优先级的方式设置优先级的方式v全嵌套方式优先级从高到低IR0IR1IR2IR3IR4IR5IR6IR7优先级固定不变中断级别高的中断可嵌套到级别较低的中断里v特殊全嵌套方式特殊全嵌套方式与全嵌套方式基本相同惟一区别是允许同级别的中断嵌套,用于级连时的主片设置优先级的方式设置优先级的方式v优先级自动循环方式优先级循环改变初始优先级次序为IR0IR1IR2IR3IR4IR5IR6IR7当IR4有中断请求并得到响应之后,优先级别变为IR5IR6IR7IR0IR1IR2IR3IR4v优先级特殊循环方式与优先级自动
46、循环方式的惟一差别是,初始优先级次序可通过编程指定屏蔽中断源方式屏蔽中断源方式u 普通屏蔽方式普通屏蔽方式 设置中断屏蔽寄存器设置中断屏蔽寄存器IMR的相应位为的相应位为1u 特殊屏蔽方式特殊屏蔽方式 中断服务过程中中断服务过程中改变中断屏蔽的方法改变中断屏蔽的方法 要屏蔽的要屏蔽的IMR相应位置为相应位置为1,使,使ISR的相应位自动复位的相应位自动复位,只屏蔽正在处理的中断,而开放了其它中断只屏蔽正在处理的中断,而开放了其它中断 先写先写OCW3,再写,再写OCW1结束中断处理方式结束中断处理方式v中断自动结束方式CPU发出中断响应,ISR相应位就清0,而无需CPU向8259发送EOI命令
47、该方式通常只用于不会发生中断嵌套的系统v一般的中断结束方式中断返回前,CPU向8259送出中断结束命令,使ISR优先级最高位清0常用于全嵌套的情况v特殊的中断结束方式在非全嵌套方式下,无法确定哪一级中断是最后响应和处理时,送特殊中断结束命令,指定的ISR位清0连接系统总线的方式连接系统总线的方式u 缓冲方式缓冲方式 在在多片多片8259的级连系统的级连系统u 非缓冲方式非缓冲方式 在在单片单片8259或或8259数量较少数量较少时,时,8259直接与系直接与系统数据总线相连统数据总线相连中断查询方式中断查询方式u 外设外设仍然是靠仍然是靠中断方式中断方式请求中断请求中断u 而而CPU靠靠查询查
48、询的方法确定的方法确定是否有是否有设备请求服设备请求服务以及务以及具体哪个设备具体哪个设备请求服务请求服务u 在这种方式下,不使用在这种方式下,不使用INT引脚信号向引脚信号向CPU发中断请求,发中断请求,CPU的中断允许标志的中断允许标志IF也可设也可设置为禁止中断状态置为禁止中断状态IF=0u 中断查询方式由中断查询方式由OCW3中设定中设定P为为1,就进,就进入查询方式入查询方式级联方式级联方式v主、从8259的ICW1中的SNGL位均应设为0v主、从8259的中断类型号不能重复v主、从8259都要对ICW3进行初始化,其初始化数值要与硬件连接一致v主8259需要将ICW4设置成特殊全嵌
49、套方式,而从8259只需设置成全嵌套方式即可v如果采用非自动结束中断方式,则在中断服务子程序最后要向主、从8259的OCW2各发一个中断结束命令,分别清除主、从8259中相应ISR位的值从从8259IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13 IRQ14IRQ15主主8259IRQ0IRQ1IRQ3IRQ4IRQ5 IRQ6IRQ7INT至至CPUINT中中断断路路由由器器IRQ7IRQ6IRQ5IRQ4 IRQ3IRQ2ISA总线总线PCI总总线线PCI总总线线系统时钟系统时钟键盘键盘芯片组芯片组Pentium机中8259的连接Pentiumu 中断系统由两片中断系统由两片825
50、9,一个中断路由器构成,一个中断路由器构成 从从8259的中断申请与的中断申请与主主8259的的IRQIRQ2相连相连 ISA总线上有总线上有6个中断申请,其中个中断申请,其中IRQIRQ2连至从连至从8259的的IRQIRQ9 系统软件上,将系统软件上,将IRQIRQ9的中断向量指向的中断向量指向IRQIRQ2的中断向量的中断向量u 主主8259的端口地址为:的端口地址为:20H,21H 8个对应的中断申请个对应的中断申请IRQIRQ7IRQIRQ0类型号为类型号为0Fh08hu 从从8259的端口地址为:的端口地址为:A0H,A1H 8个对应的中断申请个对应的中断申请IRQ15IRQ15I