程序查询方式,中断方式,DMA方式的含义及应用场合

程序查询方式,中断方式,DMA方式的含义及应用场合,第1张

dma有两种方式,一种是查询方式,一种是中断方式。是问这两种方式有什么区别么?查询方式是通过查询标志位来判定dma结束,中断方式是dma结束的时候返回中断,在程序中不需要一直查询标志位。

dma与中断的区别

⑴中断方式是在数据缓冲寄存器满之后发出中断,要求cpu进行中断处理,而dma方式则是在所要求传送的数据块全部传送结束时要求cpu

进行中断处理。这就大大减少了cpu进行中断处理的次数。

⑵中断方式的数据传送是在中断处理时由cpu控制完成的,而dma方式则是在dma控制器的控制下,不经过cpu控制完成的。这就排除了cpu因并行设备过多而来不及处理以及因速度不匹配而造成数据丢失等现象。

dma方式的优缺点

在dma方式中,由于i/o设备直接同内存发生成块的数据交换,因此i/o效率比较高。由于dma技术可以提高i/o效率,因此在现代计算机系统中,得到了广泛的应用。许多输入输出设备的控制器,特别是块设备的控制器,都支持dma方式。

通过上述分析可以看出,dma控制器功能的强弱,是决定dma效率的关键因素。dma控制器需要为每次数据传送做大量的工作,数据传送单位的增大意味着传送次数的减少。另外,dma方式窃取了始终周期,cpu处理效率降低了,要想尽量少地窃取始终周期,就要设法提高dma控制器的性能,这样可以较少地影响cpu出理效率。四、通道方式

输入/输出通道是一个独立于cpu的,专门管理i/o的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令由cpu启动,并在 *** 作结束时向cpu发出中断信号,见图6-3。

输入/输出通道控制是一种以内存为中心,实现设备和内参内直接交换数据的控制方式。在通道方式中,数据的传送方向、存放数据的内存起始地址以及传送的数据块长度等都由通道来进行控制。

另外,通道控制方式可以做到一个通道控制多台设备与内存进行数据交换。因而,通道方式进一步减轻了cpu的工作负担,增加了计算机系统的并行工作程度。

输入/输出通道分类

按照信息交换方式和所连接的设备种类不同,通道可以分为以下三种类型:

⑴字节多路通道

它适用于连接打印机、终端等低速或中速的i/o设备。这种通道以字节为单位交叉工作:当为一台设备传送一个字节后,立即转去为另一它设备传送一个字节。

⑵选择通道

它适用于连接磁盘、磁带等高速设备。这种通道以“组方式”工作,每次传送一批数据,传送速率很高,但在一段时间只能为一台设备服务。每当一个i/o请求处理完之后,就选择另一台设备并为其服务。

⑶成组多路通道

这种通道综合了字节多路通道分时工作和选择通道传输速率高的特点,其实质是:对通道程序采用多道程序设计技术,使得与通道连接的设备可以并行工作。

假设晶振频率是12MHz;

P2口输出低电平时LED发光。

下列两个程序,经过了PROTEUS仿真,能够满足要求。

;===================================================

;下面是查询方式

ORG 0000H

LJMP MAIN

ORG 0050H

MAIN:

MOV TMOD, #01 ;令T0定时方式1

MOV TH0, #3CH

MOV TL0, #0B0H ;50ms@12MHz

SETB TR0 ;启动T0

;--------------------------------------------

MOV R7, #20

MOV A, #7FH

MOV P2, A

M_LOOP:

JNB TF0, M_LOOP ;T0没有溢出,就在此循环不止

CLR TF0

MOV TL0, #0B0H

MOV TH0, #3CH

DJNZ R7, M_LOOP ;溢出20次

MOV R7, #20 ;才到1s

RR A

MOV P2, A

SJMP M_LOOP

;--------------------------------------------

END

;===================================================

;下面是中断方式

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0_INT

ORG 0050H

MAIN:

MOV TMOD, #01 ;令T0定时方式1

MOV TH0, #3CH

MOV TL0, #0B0H ;50ms@12MHz

SETB TR0 ;启动T0

MOV IE, #82H ;允许中断

;--------------------------------------------

MOV R7, #20

MOV A, #7FH

MOV P2, A

M_LOOP:

;主程序, 空循环

SJMP M_LOOP

;--------------------------------------------

T0_INT: ;50ms执行一次

MOV TL0, #0B0H

MOV TH0, #3CH

DJNZ R7, T0_END ;中断20次

MOV R7, #20 ;才到1s

RR A

MOV P2, A

T0_END:

RETI

;--------------------------------------------

END

;===================================================

12位。在单片机ADC中断向量表中,ADC中断对应的中断向量号为12,对应的中断服务程序为INT_ADC,当ADC转换完成后,如果开启了ADC中断,则会触发中断请求,单片机会跳转到INT_ADC。

查询方式就是对某一标志位的不停检测,直到发生变化,例如,

汇编:LOOP:JBC TF1,L ;查询计数器是否溢出,若溢出转L

SJMP LOOP ;无溢出转LOOP,继续检测TF1状态

注:TF1是定时器T1的溢出中断申请位,产生溢出时,TF1置1

C语言可能是 while(!TF1);//一直在这循环,直到TF1=1

中断就是利用内部中断资源,当发生中断时,自动跳到中断处理程序处,不需要做无谓的循环,所以这种方式首先要打开中断

通常,程序开头会有(以定时器1为例)

EA = 1;//打开CPU总中断

ET1 = 1;//打开T1中断

TR1 = 1;//启动T1

为了实现主机和外设之间的信息传送,可以使用传送指令和输入/输出指令。

计算机组成原理主机与外部设备之间的数据传送方式有4种方式。

分别为程序查询方式,程序中断方式,直接存储器存取方式(DMA),以及以及I/O通道控制方式。

程序查询的特点:控制简单,但外设和主机不能同时工作,系统的效率很低。

程序中断方式特点:不仅允许主机和外设同时工作,而且允许一台主机管多台外设。完成的过程中需要许多辅助的工具,如果中断请求过于频繁,CPU应接不暇,速度慢。

是CPU进入中断周期后自动关中断,为了让主程序和中断服务程序能够处理中断与中断嵌套都要安排开中断指令。

中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行。

CPU进入中断周期后,由中断隐指令自动将使能全局中断标志位置零,即关中断,这就意味着CPU在执行中断服务程序中禁止响应新的中断请求。CPU若想再次响应中断请求,必须开中断,这一任务通常由中断服务程序中的开中断指令实现。

扩展资料:

中断源屏蔽处理的相关技术:

当中断源被屏蔽(屏蔽触发器mask=1),此时即使完成触发器D=1,中断查询信号到来时刻只能将中断请求触发器INTR置“0”,CPU接收不到该中断源的中断请求,即它被屏蔽。

若该中断源未被屏蔽(mask=0),当设备工作已完成时(D=1),中断查询信号则将INTR置“1”,表示该中断源向CPU发出中断请求,该信号送至排队器进行优先级判断。

为了保证级别低的中断源不干扰比其级别高的中断源的中断处理过程。可采用屏蔽技术。

参考资料来源:百度百科-可屏蔽中断标志

参考资料来源:百度百科-中断嵌套

以上就是关于程序查询方式,中断方式,DMA方式的含义及应用场合全部的内容,包括:程序查询方式,中断方式,DMA方式的含义及应用场合、proteus跑马灯定时器中断和查询源程序、单片机adc的中断查询次序号是等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9862108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存