1. 什么是dma传输? dma传输有什么优点?为什么?
所谓直接存储器传送(dma)是指将外设的数据不经过cpu直接送入内存储器,或者,从内存储器不经过cpu直接送往外部设备。
使用dma传输之后,每个数据的传输过程不需要cpu参与,在dma控制器的控制下,在一个dma总线周期里完成数据在外部接口和存储单元之间的直接传输。所以使用dma传输既可以减轻cpu的负担,又可以缩短系统对外部设备的响应时间,提高数据传输速率。
2. 叙述一次数据块dma传输和一个数据dma传输的全过程。
一次数据块dma传输的全过程:
程序对dma控制器进行初始化,写入存储器数据块首地址,传输字节数,传输方向等信息。同时启动外部设备(例如,启动输出设备进行第一次输出);
外部设备每完成一次输入/输出,它的完成信号通过dma控制器启动一次dma数据传输;
全部预设的数据传输完成,dma控制器发出“传输完成”信号,向cpu申请中断。cpu在中断服务程序中设置完成标志,或者对dma控制器进行下一次初始化。
一个数据dma传输的全过程。
外设准备就绪,需要进行dma操作时,向dma控制器发出“dma请求信号”。dma控制器接到此信号后,向cpu发“总线请求信号”。
cpu接到总线请求信号,在当前总线周期结束后,发出“dma响应信号”。
dmac向外部设备发出“外设读”或“外设写”控制信号,向存储器发出“存储器写”或“存储器读” 控制信号,同时发出存储单元地址。在这二个信号的作用下,一字节的数据从外设接口通过数据总线送往存储单元,或者从存储单元送往外设接口。
传送1个字节之后,dmac自动修改内部地址寄存器和字节计数器的内容。
dma控制器撤销“总线请求信号”,cpu也撤销 “总线应答”信号。
3. 什么叫dma通道?它如何组成?
dma通道是控制一个外设接口和存储器进行dma传输的相关电路的总和。每个通道包括地址寄存器、字节计数器、方式寄存器、dma请求触发器、屏蔽触发器、状态寄存器以及所需的其他控制电路。
4. dma控制器8237a的成组传送方式和单字节传送方式各有什么特点?它们的适用范围各是什么?
成组传送方式下,dma控制器获得总线控制权后,可以连续进入多个dma周期,进行多个字节的传输。这种方式可以获得最高的数据传输速度。在数据传输期间,cpu不能访问总线。
如果一次传输的数据较多,这种方式会对系统工作产生一定的影响。成组传送方式适用于外部设备要求很高的传输速率,系统其他负担较轻,连续占用总线不会产生严重后果的情形。
在单字节传输方式下,8237a完成1个字节传输后都释放系统总线,一次dma传输结束,cpu可以在每个dma周期结束后控制总线。这种方式适用于外部设备的传输速率要求不太高,或者系统不允许有较长时间停顿的情况。
5. 怎样用指令启动一次dma传输?怎样用指令允许/关闭一个通道的dma传输?
用指令将dma请求寄存器中相关位置位,可以启动一次dma传输。
用指令将dma屏蔽寄存器中相关位复位,可以允许一个通道的dma传输。将dma屏蔽寄存器中相关位置位,可以关闭一个通道的dma传输。
6. dma控制器8237a能不能用中断方式工作?请说明。
dma控制器8237a可以用中断方式工作。将8237a的信号反相后连接到中断控制器的中断请求输入端,则一次数据块传输结束后,可以向cpu申请中断,由专门的中断服务程序进行结束处理。
7. 如何判断某通道的dma传输是否结束?有几种方法可供使用?
判断某通道的dma传输是否结束有二种方法。其一是读出dma控制器的状态寄存器内容,测试其中代表该通道的状态位,可以得知该通道的dma传输是否结束。其二是读出该通道的字节计数器内容,如果值为0(对8237a而言为-1),表示该通道的dma传输已经结束。
此外,可以用8237a的信号向cpu申请中断。一旦进入这个中断服务程序,表明该通道的dma传输已经结束。
8. 叙述一次dma控制器8237a编程使用的主要步骤。
dma控制器8237a初始化编程的主要步骤为:
发复位命令;
写命令字,设置8237a的工作方式;
写方式字,设置需使用的通道的工作方式;
清除先/后触发器;
写入内存储器起始地址;
写入传送的字节数-1;
清除该通道的屏蔽位;
启动外部设备,如果是内存到输出设备,用指令设置第一次dma请求。
9. 使用dma控制器8237a传输一个字节需要多少时间?受那些因素影响?请作具体分析。
使用dma控制器8237a传输1字节数据需要4个dma控制器使用的时钟周期,对于速度稍慢的外设/存储器,也可以插入一个或多个等待周期。
影响dma周期时间长短的因素有:
dma控制器使用的时钟频率:频率越高,dma周期越短;
存储器和外部设备的工作速度:如果速度跟不上dma时钟的要求,则需要插入等待周期,从而延长整个dma周期;
使用压缩时序可以缩短dma周期;
如果存储器数据块首地址低8位为“0”,前256个字节内存地址的高8位相同,它们传送时只需要发送一次高8位地址,后面255个数据的dma周期达到最小;
如果进行存储器之间数据传输,每个字节的传输需要二个dma周期。
1. a/d和d/a转换在微机应用中分别起什么作用?
计算机加工、处理的信号可以分为数字量(digit)和模拟量(analog)两种类型。现代计算机内部都采用二进制表示的数字量进行信号的输入、存储、传输、加工与输出。为了使用计算机对模拟量进行采集、加工和输出,需要把模拟量转换成便于数字计算机存储和加工的数字量(a/d转换),或者把数字量转换成模拟量(d/a转换)。
因此,d/a与a/d转换是计算机用于多**、工业控制等领域的一项重要技术。
2. 怎样将d/a转换器连接到微型计算机?
d/a转换器将数字量转换成模拟量输出。为了保存由计算机送来的数字信号,通常需要配置一个“数据寄存器”,向d/a 转换器提供稳定的数字信号。
d/a转换芯片输出的模拟信号功率一般比较小,为了能够驱动执行机构工作,d/a转换器的输出一般都要连接到运算放大器进行功率放大。
3. 修改图9-5,将dac0832的两级锁存合为一级使用,画出连接图,并编写输出三角波和锯齿波的程序。
为了将dac0832的二级缓冲锁存器合为一级使用,可以将它的第二级置为“直通”,也就是把和接地,用第一级的和对输入进行控制,如下图。
输出三角波的程序段如下:
s0: mov al, 0al中置初值0,输出三角波的上升段。
s1: call output调用输出子程序,输出一个值。
inc al产生上升段下一个值。
jnz s1上升段未结束,继续输出。
dec al恢复到最大值。
s2: call output输出三角波的下降段。
dec al产生下降段下一个值。
jnz s2下降段未结束,继续输出。
jmp s1下降段结束,输出下一个三角波。
输出锯齿波的程序段如下:
mov al, 0
j1: call output输出当前值。
inc al产生下一个输出值。
jmp j1
子程序“output”为上面两段程序共用:
output proc near
mov dx, port0dac0832端口地址。
out dx, al
push ax
mov ax, n延时的时间常数。
wt: dec ax
jnz wt延时。
pop ax
retoutput endp
4. 一个8位d/a转换器的满量程(对应于数字量255)为10v。分别确定模拟量2.0v和8.0v所对应的数字量。
模拟量2.0v所对应的数字量为(2.0/10)×255 = 51
模拟量8.0v所对应的数字量为(8.0/10)×255 = 204
5. 简述逐次逼近式a/d转换器的工作原理,并将它和∑-△a/d转换器进行比较。
逐次逼近型(也称逐位比较式)a/d转换器主要由逐次逼近比较寄存器sar,d/a转换器、比较器以及时序和控制逻辑等部分组成。它从sar的最高位开始,逐位设定sar寄存器中的数字量,经d/a转换得到电压vc,与待转换模拟电压vx进行比较。通过比较,逐次确定各位的数码应是“1”还是“0”。
转换结果能否准确逼近模拟信号,主要取决于sar和 d/a的位数。位数越多,越能准确逼近模拟量。
-△型模数转换器是根据二次采样的差进行计算的,有很强的抗干扰能力,转换精度高,以串行方式输出数据。常用于高分辨率(常见为位)的中、低频信号测量。当模拟量输入端接有多路开关时,通道切换后要等待足够长的时间,才能读取转换结果。
6. 若adc输入模拟电压信号的最高频率为100khz,采样频率的下限是多少?完成一次a/d转换时间的上限是多少?
香农定理告诉我们:采样频率一般要高于或至少等于输入信号最高频率的2倍。因此,采样频率的下限应是200khz。
在200khz采样频率下,完成一次a/d转换时间的上限是5μs。实际应用中,采样频率可以达到信号最高频率的4~8倍。如果采用400khz的采样频率,完成一次a/d转换时间的上限是2.
5μs。
7. 在使用a/d和d/a转换器的系统中,地线连接时应注意什么?
模拟信号很容易受到电源和数字信号的干扰引起波动。为提高输出的稳定性,减少误差,模拟信号部分必须采用高精度基准电源vref和独立的地线。所以,要把数字地和模拟地分开。
模拟地是模拟信号及基准电源的参考地,其余信号的参考地,包括工作电源地,数据、地址、控制等对应的“地”都是数字地。连接时,先所有的模拟地连接在一起,把所有的数字地连接在一起,然后在一个点上(注意:不是两个或更多)把模拟地和数字地连接起来。
8. 怎样用一个ad芯片测量多路信息?
模拟量多于一个时,可以使用多路模拟开关,轮流接通其中的一路进行转换,使多个模拟信号共用一个adc进行a/d转换。
9. 一台工控pc有两块818卡,基地址分别为base1, base2,试编制采样24路(一块卡16路,一块卡8路)模拟量的c语言程序。
#include “
#define n 24 /*采样点数。
#define base1 0x300
#define base2 0x310
#define interrupt 0x1c /*定时中断类型号 */
微机原理课后习题答案
2.1 8086 cpu 在内部结构上由哪几部分组成?其功能是什么?答 8086 的内部结构 成两部分 总线接口部件biu,负责控制存储器读写。执行部件eu,eu 从指令队列中取出指令并执行。8086 是16 位微处理器,有16 根数据线 20 根地址线,内部。寄存器 运算部件以及内部操作都是按16...
微机原理课后习题答案
第1章进制及码元。1 进制转换。129 81h 10000001b 201q 298 12ah 100101010b 452q 1000 3e8h 1111101000b 1750q 5dh 1011101 b 135 q 93 d 3e8h 1111101000 b 1750q 1000 d 35...
微机原理课后习题答案
第一章。1.5 解 微机主要有存储器 i o设备和i o接口 cpu 系统总线 操作系统和应用软件组成,各部分功能如下 cpu 统一协调和控制系统中的各个部件。系统总线 传送信息。存储器 存放程序和数据。i o设备 实现微机的输入输出功能。i o接口 i o设备与cpu的桥梁。操作系统 管理系统所有...