版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第五章 数字量输入输出(2),*概念:总线、接口电路、接口芯片、端口地址 *中断及其处理 中断控制器8259 *定时器/计数器 *并行/串行 DMA电路与应用,2,CPU与外设间的数据传送方式,I/O接口电路基础:三态缓冲器/锁存器 问题:CPU与外设的工作速度不一致,尤其是当外设由其他CPU或时序电路控制时更加明显,应如何解决效率和可靠性。,数据传送控制:使两者高效、可靠地进行数据传送,一、 无条件传送方式 二、 条件传送方式 ( 查询方式 ) 三、 中断传送方式 四、 DMA传送方式 ( Direct Memory Access ),四种传送方式,3,典型无条件传送方式接口电路(输入)
2、,该电路在CPU执行指令 MOV DX, 284H IN AL, DX 将输入设备的数据(开关状态)读入CPU内AL中,图中译码电路的作用: 只当A15A0上出现284H时, (即0000 0010 1000 0100B) 输出0,其他输出1。,P247图5.10 74LS244G1/G2,流程,4,典型无条件传送方式接口电路(输出),图中译码电路的作用: 只当A15A0上出现288H时, (即0000 0011 1000 1000B) 输出0,其他输出1。,例:LED指示灯,74LS273,5,无条件传送:输入输出接口,next:mov dx,8000h;DX指向数据端口 in al,dx;
3、从输入端口读开关状态 not al;反相 out dx,al;送输出端口显示 call delay;调子程序延时 jmp next;重复,6,无条件传送方式 (同步传送方式),实现方法 1、CPU不查询外设工作状态, 与外设速度的匹配通过在软件上延时完成, 2、在程序中直接用I/O指令,完成与外设的数据传送,特点 1. 适用于外设动作时间已知,前提:CPU与外设进行数据传送时,外设保证已准备好。 2. 软硬件十分简单。,7,条件传送方式(查询传送方式),实现方法: 在与外设进行传送数据前,CPU先查询外设状态, 当外设准备好后,才执行I/O指令,实现数据传送 特点: 1. CPU通过不断查询外
4、设状态,实现与外设的速度匹配 2. CPU的工作效率低,(程序方式),编程流程,流程,8,查询方式输入例,9,查询方式输入接口电路,状态端口 D7=1 表示外设准备好,输 入 装 置,+5v,STB,MOV DX, 288H IN AL, DX,MOV DX, 28CH IN AL, DX,D0 : D7,READY,10,条件查询输入流程图,编程从外设读入50H个字节到内存缓冲区buffer中,11,查询方式输入程序片段,STATUS EQU 28CH MOV AX, SEG buffer ;取缓冲区首地址 MOV DS, AX LEA DI, buffer MOV CX, 50H ;传送个
5、数 next: MOV DX, STATUS ask: IN AL, DX ;从状态端口读入状态信息 TEST AL, 1000 0000B ;80H, 检测D7位 JZ ask ;D7=0,继续查询 MOV DX, 288H IN AL, DX ;从数据端口读入数据 MOV DI, AL ;送缓冲区 INC DI ;修改缓冲区指针 LOOP next ;传送下一个 .,12,查询方式输出,13,查询方式输出接口,状态端口 D0 = 0 表示外设准备好,MOV DX, 288H OUT DX, AL,MOV DX, 28CH IN AL, DX,READY (BUSY),14,条件查询输出流程
6、图,编程将缓冲区buffer的80H个字节输出到外设,15,STATUS_PORT EQU 28CH DATA_PORT EQU 288H MOV AX, SEG buffer ;取缓冲区首地址 MOV DS, AX LEA SI, buffer MOV CX, 80H ;传送个数 next: MOV DX, STATUS_PORT ask: IN AL, DX ;从状态端口读入状态信息 TEST AL, 0000 0001B ;检测D0位 JNZ ask ;D00,继续查询 MOV AL, SI ;从缓冲区取数 MOV DX, DATA_PORT OUT DX, AL ;从数据端口输出数据
7、INC SI ;修改缓冲区指针 LOOP next ;输出下一个 .,查询方式输出程序片断,16,条件传送方式(查询传送方式),严重缺点: CPU不断查询外设状态,工作效率低 无条件传送方式(同步传送方式) 严重缺点 CPU与外设必须同步,否则出错!,17,DMA 传送方式(直接存储器存取方式),实现方法 1. 由专用接口芯片DMA控制器(称DMAC) 控制传送过程;,4. DMAC接管总线,控制外设、内存之间直 接数据传送,3 . CPU发出总线响应信号,释放总线; 由CPU控制总线变为DMAC控制,2. 当外设需传送数据时,通过DMAC向CPU 发出总线请求;,18,DMA 传送方式过程,
8、19,DMA传送流程,流程,20,DMA传送方式的特点,1. 外设和内存之间,直接进行数据传送, 不通过CPU, 传送效率高。 适用于在内存与高速外设、 或两个高速外设之间进行大批量数据传送。,2. 电路结构复杂,硬件开销较大。 本章后面详细介绍,21,中断传送方式,解决方法之一:中断传输 1. 当外设准备好,向CPU发出中断请求 2. CPU在满足响应中断的条件下,发出中断响应信号; 3. CPU暂停当前的程序,转 去执行中断服务程序, 完成与外设的数据传送; 4. CPU从中断服务程序返回,继续执行被中断的程序,程序(查询)方式 =效率问题(空耗时间) 如何解决?,22,中断方式下CPU执
9、行程序流程,主程序(Routine)流 (正常),中断概念: CPU与外设交换信息的一种方式 =硬件手段,改变CPU执行程序的顺序(程序流),流程,23,中断传送方式的特点,1. CPU和外设大部分时间处在并行工作状态, 只在CPU响应外设的中断申请后, 进入数据传送的过程,3. 不适用于大量、高速频繁数据交换DMA,2. 中断传送方式提高了CPU的效率,24,8088中断结构,IRQ0 IRQ7,直接执行软件中断/指令执行结果 除零(INT 00H) 单步(INT 1) IF=1 TF=1 溢出(INTO INT 04H) 软件中断调用 (INT xxH) 非屏蔽中断NMI(Non-Mask
10、able Interrupt) 可屏蔽中断INTR(IF=1),中断控制,中断请求触发信号,25,中断响应和处理流程,硬件监测处理,Y,Y,Y,Y,Y,Y,Y,N,IRET,26,中断指令Interrupt,INT n ; 软中断, n为中断类型号形成中断向量 (SP) (SP)-2,(SP)+1,(SP) (FLAGS); (IF) 0 (TF) 0 (SP) (SP)-2,(SP)+1,(SP) (CS); (CS) 0:n*4+2 (SP) (SP)-2,(SP)+1,(SP) (IP); (IP) 0:n*4,IRET(Interrupt Return) ; 中断服务程序中最后一语句
11、(IP) (SP)+1,(SP), (SP) (SP)2 (CS) (SP)+1,(SP), (SP) (SP)2 (FALGS) (SP)+1,(SP) (IP), (SP) (SP)2,27,中断响应和处理,INTR中断源请求-事件 CPU中断响应/INTA 外设:中断类型号n INT n CPU读n 0000:4*n0000:4*n+3中断矢量 保护断点: (返回现场): PSW入栈、清IF、TF, CS、IP入栈 转入中断服务程序: 保护现场-中断服务-恢复现场 返回断点(继续运行): IP、CS、PSW出栈返回主程序,28,中断向量(矢量)与8088中断响应,中断向量表(0:0-0:
12、3FFH)INT 00H0FFH(4 byte each: CS:IP) PC:INT 080F外部硬件中断。INT 0A保留给用户扩展硬件中断使用IRQ2,中断号n,第2个INTA脉冲,29,中断响应时序,(1)中断响应周期:INTR=1,CPU发第二个/INTA时类型号n(1BYTE)DB给CPU; (2)总线写:F入栈 (3)IF=TF=0(EU) (4)总线写:CS入栈 (5)总线写:IP入栈 (6)总线读:n*4为指针读字IP (7)总线读:n*4为指针+2读字CS,30,中断响应操作 响应条件:CPU的INTR引脚高电平,IF=1。,CPU发出ALE信号,作为地址锁存信号,低电平,
13、通知外设CPU已接受其中断请求,同时使数据总线、地址总线浮空,被响应的外设向数据总线发送一个字节的中断类型号,CPU读入后查中断向量表,找到中断服务程序入口地址,转去执行中断服务程序。,31,CPU中断控制,中断源-中断请求-中断响应-中断服务 (1)中断源及其识别判断:(电平/时钟等)(2)优先权及其队列 8086内部:优先级(H)除法错、INTn、INTO、NMI、INTR(IF=1)、单步中断(IF=1) (3)强占式/中断嵌套,可屏蔽中断(INTR,单步IF=1才响应) (4)中断请求触发信号(脉冲/电平)(INTR:电平,每个指令最后一个时钟周期结束时取样),32,8086/8088
14、中断,问题:多中断源申请中断,优先级?屏蔽?自动?中断控制逻辑专用IC i8259 -可编程接口芯片,33,i8259A可编程中断控制器,重点:* 了解功能 *熟悉管脚 *编程(中断软件初始化与EOI) 功能:INTR:可编程模式 优先级判断 提供中断向量 单独屏蔽中断输入(可编程选择) 每片直接管理8级外部中断, 级联扩展:64级 TTL全兼容 82C59 CMOS 低功耗,PIC - Priority Interrupt Controller,34,i8259A可编程中断控制器PIC,Top View 28PDIP +5V,Function Diagram,MPU接口:D0D7,/RD、/
15、WR、/CS,A0(2口地址) INT申请/INTA应答(允许)PC:20/21H IR0IR7:外部级中断源信号,SP=1 Master,35,中断控制,中断请求寄存器IRR 保存8条外界中断请求信号IR0IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 中断服务寄存器ISR 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 中断屏蔽寄存器IMR 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许,36,SP/EN和CAS0CAS2(级联)通常模式下确定( MASTER: SP/EN=1 ,I
16、R07接各从片INT, CAS02输出编码选择从片-8片)/(Slave: SP/EN=0, CAS为输入端,接主片的CAS0CAS2,接收主片发出的从片选择编码);| 特殊Enable buffer-Buffer MODE下控制Buffer收发(EN)-与系统总线间加BUFFER由SP/EN控制,发送时/EN=0)。(硬件简单,软件难用-动态优先级)9片-64级,8259级联扩展,37,中断级连,一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A 级连时,主8259A的三条级连线CAS0CAS2作为输出线,连至每个从8259A的CAS0CAS2 每个从8259
17、A的中断请求信号INT,连至主8259A的一个中断请求输入端IR 主8259A的INT线连至CPU的中断请求输入端 SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*1)还是从片(SP*0),动画,38,I8259寄存器的读写,初始化编程:ICW(初始化命令字14)P255 工作编程: OCW(工作命令字13) 初始化顺序见P255图5.19,39,8259A编程,两步: 1、初始化编程一次写入(编程) 初始化命令字ICW14,P255 2、工作编程可多次写入(编程) 工作命令字OCW13 ,P258,初始化编程顺序: ICW1 ICW2 多片时写ICW3 需要时写ICW4,40,8
18、259A编程ICW1(主初始化命令字),ICW1:A0=0 D4=1工作方式(ICW标志初始化开始:结果清中断屏蔽寄存器OCW1=0;恢复优先级IR0(H)-IR7(L)D7D5、D2仅对8080/85有意义-可忽略 中断控制标志位D0:D0=1 要送ICW4(不送时ICW4各位=0);级联扩展:D1(SNGL)=1单片=0级联,要送ICW3(=1 单片,不送ICW3) 触发电平: D3(LTIM)=1 高电平触发 =0 上升沿触发,初始化编程,例: MOV AL, 00010011B ;沿触发,单片工作,后跟ICW4 OUT 20H,AL,41,8259A-ICW2中断类型号寄存器,ICW2
19、:A0=1,中断类型号高5位 中断类型号的高五位:编程时写入D7D3 ( T7T3) 中断类型号的低三位:编程时不写D2D0,响应时由外设自动填 入,产生8个不同的中断类型号 总的中断类型号: D7D0 0 0 0B 1 1 1B 8个中断矢量的地址是连续的! 如8-向量080FH 例:PC机: MOV AL, 00001000B;中断类型号从8开始 OUT 21H,AL,初始化编程,42,ICW1 ICW2 ICW3(此时: ICW1的D1=0级联,要送ICW3) ICW3: A0=1,级联命令字,有主从片之分: 对MASTER主片: (S7S0)D7D0对应8根中断请求线IR7IR0 某根
20、中断请求线IR接SALVE从片,则ICW3相应位=1; 对SLAVE从片: 从片标识码(ID2ID0)仅D2D0有意义(高5位固定为0)对应8片从片 (中断响应时与主片送出的CAS码比较,相同为当前中断源),8259A初始化编程(续)- ICW3级联命令字,43,注意:每片(主从片)均应顺序写入ICW1 ICW2 ICW3 mov al,00000100B;04h;写入ICW3 out 21h,al,8259A初始化编程(续)- ICW3级联命令字,44,ICW4: A0=1,优先级控制(D7D5=0) D4(SFMN)=0 一般嵌套(单片没有问题;多片时,已服务SALVE片所有中断源被屏蔽、
21、高优先不能嵌套) D4=1特殊嵌套(仅仅屏蔽比当前中断源低级的中断,上述情况可中断嵌套)。 D3(BUF)数据缓冲选择(=0 无BUFFER;=1有三态BUFF,8259A的DB系统总线间加BUFFER由/SP/EN控制接通, /SP/EN引脚变成输出线,以控制缓冲器的接通,当8259的数据送往系统总线时/EN=0,多用于多片级联;此时主从片区分:D2=0 SLAVE/=1 MASTER; D1(AEOI)=1 自动EOI,中断响应时在送出中断类型号后自动将ISR复位; =0正常EOI-中断服务结束时向8259写EOI命令字OCW2。 D0表示系统中所用CPU的系列 =0 8080/85系列
22、=1 8086/88系列 例:PC00001001B 88/86, 非自动EOI,8259A初始化编程(续)-ICW4,45,8259A工作编程-OCW,.8259A工作期间,可以随时接受操作命令字OCW .OCW共有3个:OCW1OCW3 .写入时无顺序限制,根据需要写入OCW,A0=1,写ICW2-ICW3-ICW4-OCW1;读总为IMR,46,8259A工作编程OCW,OCW1:中断屏蔽字, A0=1,屏蔽命令字 内容写入中断屏蔽寄存器IMR,每位对应1根中断请求线 DiMi对应IRi,=1禁止IRi中断;=0允许IRi中断。各位互相独立。,IN AL, 21H AND AL,0FEH
23、 OUT 21H,AL;,47,8259A工作编程OCW,OCW2:(特征A0=0,D3=D4=0) R、SL和EOI编码配合使用产生中断结束EOI命令和改变优先权顺序中断优先权的旋转。,D5中断结束位:=1表示中断结束(EOI命令),当用8259实现中断管理时,IRET前必须给8259写一条EOI命令(即D5=1的OCW2),8259收到后将ISR相应位清除。若D6D5=11,特殊的中断结束,它将复位ISR中由OCW2的D2D0指定的位。,D6特殊旋转:=1,D0D2指定了外部请求线IRi,若D7=1,优先权的旋转移位一直到最低优先权对准IRi为止,最高为IRi+1; =0,最低优先权旋转到
24、当前服务的中断请求线, D0D2无意义。,D7中断优先权旋转: =0优先级固定不变IR0最高。=1优先权可旋转,移到什么情况停止与其他位有关。,48,8259A工作编程OCW3 查询支持,OCW3:辅助操作(不常用)(特征A0=0 D4D3=01) ESMM、SMM设置特殊中断屏蔽方式。10清除特殊屏蔽/11设置特殊屏蔽 P( D2 )=1 表示查询,8259工作在查询方式(读状态字) 非查询。 写入D2=1的OCW3后再对同一地址(A0=0)作输入,就得到8259的状态字节 P259 D1D010再用同一个的地址(A0=0)再做输入指令,读中断请求寄存器IRR;D1D0=11用同一个的地址(
25、A0=0)再做输入,读ISR的状态(中断服务服务时相应位) 随时可读IMR(A0=1)不必送OCW3。,49,8259A程序控制应用,PC/XT的中断管理系统用一片8259A: IRQ0:T0;IRQ1:KB;IRQ2 空; IRQ3/4:COM2/1;IRQ5/6 HD/FD;IRQ7: LPT1 写:20H:ICW1、OCW2、OCW3; 21H:ICW2、ICW3,ICW4、OCW1 读:20H:中断请求寄存器IRR、 中断服务寄存器ISR、 中断级编码(查询方式时) 注: 由写OCW3决定读何寄存器; D1D0=10随后读IRR; D1D0=11随后读ISR。 21H:中断屏蔽寄存器I
26、MR,50,PC/XT 中的8259A应用,(BIOS)初始化编程( P261) MOV AL,13H;上升沿有效、单片8259 OUT 20H,AL; (ICW1) MOV AL,8; 8个中断源填入D2-D0,形成8个矢量08-0FH OUT 21,AL; (ICW2) MOV AL, 9; 8086系统,中断不自动结束,服务程序写含EOI的OCW2,数据线上有缓冲器,一般中断嵌套方式 OUT 21H, AL; (ICW4) MOV AL, 0FFH; 系统未初始化,屏蔽所有硬中断,初始化完成后再重写OCW1开发部分中断 OUT 21H, AL ; (OCW1),51,可屏蔽中断应用1-硬
27、件连线/信号,线路连接 数据通路 中断控制信号,输入,52,中断处理2-编写主程序,为中断准备: 保存系统中断向量、设置用户中断向量 设置设备中断屏蔽位 屏蔽R(IMR)地址 21H(在8259中) Di=1 屏蔽;Di=0 允许 设置CPU中断允许位 STI 恢复系统中断向量设置,8259中断请求输入连接,53,中断处理3-编中断服务子程序,步骤: 保存现场,R内容 如允许中断嵌套,开中断(STI) 处理中断 关中断 送中断结束命令EOI给8259中断命令R MOV AL,20H;(OCW2) OUT 20H,AL 恢复现场,R内容 中断结束返回IRET,54,中断服务程序,关键:保护现场
28、MYINT PROC FAR PUSH AX; PUSH BX;其他寄存器 . . POP BX MOV AL,20H;EOI OUT 20H,AL; POP AX; IRET (注意结尾) MYINT ENDP,55,可屏蔽中断应用4-中断程序调试,检查中断向量及对应中断服务程序 检查中断屏蔽字 在中断服务程序入口设置断点 中断响应后单步调试,中断返回前检查堆栈平衡情况,56,中断程序初始化例程,矢量表修改:DOS功能调用(AH=25H,DS,DX) /直接修改(CLI后送CS,IP STOSW0:4*n=ES:DI, CLD) 保存恢复 Tvectorl DW 0 Tvectorh DW
29、0 intini PROC ;interrupt initializing CLI XOR AX,AX MOV ES,AX ;0 MOV DS,AX MOV SI,20H MOV AX,SI MOV CS:Tvectorl,AX ;int 8 - timer,57,MOV AX,SI+2 MOV CS:Tvectorh,AX CLD MOV DI, 20H ;INT 08h MOV AX,OFFSET MYINT STOSW ;AX DI MOV AX, CS STOSW MOV AL,0;IN AL,21H,OR AL,01H OUT 21H,AL ;中断屏蔽字mask,开中断 OCW1 MOV AL,20H OUT 20H,AL;EOI OCW2 STI RET intini ENDP,中断程序初始化例程,58,中断向量恢复,;INT 8 restor 恢复 INT 8原中断向量 INTRST PROC MOV AX,0 MOV DS,AX MOV SI,20H MOV AX,CS:Tvectorl MOV SI,AX MOV AX,CS:Tvectorh MOV SI+2,AX RET INTRST ENDP,59,保护中断向量,保护原1CH矢量(P262) Tvector_CS DW 0 ;准备
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业内部员工福利制度及实施细则
- 会计上岗证会计财经法规总结
- 新疆阿克苏沙雅县2026届中考四模语文试题含解析
- 2026 学龄前自闭症教师培训课件
- 六年级语文上册线上教学工作总结(32篇)
- 六年级英语个人教学教案
- 初三物理备课组教学计划(15篇)
- 湖北省宜昌市长阳县2026届中考冲刺卷英语试题含答案
- 2026 学龄前自闭症公交车干预课件
- 数据库设计优化方法与技巧分享
- 眉山小升初分班数学试卷
- 2025届北京市海淀区六年级上学期期中考试(五十七)语文试卷
- 体育课(军体拳)教案pdf
- 夏季猪只降温方法
- 2025年行政管理专升本真题汇编试卷(含答案)
- GB/T 223.11-2025钢铁及合金铬含量的测定滴定法和分光光度法
- 2025年考试题库装饰装修施工员试题及答案
- 第二节 数据及其价值教学设计-2025-2026学年初中信息技术(信息科技)七年级下册甘教版
- 多元化纠纷解决机制研究-洞察与解读
- 道路工程安全生产管理体系及保证措施
- 酶制剂发酵工作业指导书
评论
0/150
提交评论