嵌入式系统期末试题
一、下面是关于某测试设备的叙述,仔细阅读并分析,回答问题 1至问题4。
某测试设备是一个嵌入式系统,是为了测试一个专用设备而研制的,如图1-1所示。测试设备用于测试被测设备的各项软、硬件功能,包括2路RS232串口、2路模拟量、电源以及专用设备的其它内部部件。在被测专用设备内部有专门的自检测程序,来测试内部各部件。测试设备的串口与被测设备相连接,加电后,通过按测试设备的周边键与被测设备握手同步,再向被测设备发送检测消息,被测设备测试自己的某项功能后,通过串口将测试结果发回给测试设备,显示在测试设备的LCD 屏上。
测试设备的硬件由处理器模块、IO模块和电源模块组成,处理器模块上有CPU、存储器、2路串口、键盘控制器;IO模块上有D/A、A/D 转换器,用作为模拟量输入和采集电源的电压值,以测试被测设备的模拟量和电源;电源模块提供测试设备的电源;测试设备模块间采用ISA 总线。
测试设备的 2 路串口与被测设备相连,同时测试设备的 D/A、A/D 转换控制器的输入线路与被测设备的模拟量和电源线相连,可直接测试被测设备的 2 路 RS232 串口、2路模拟量、电源。
测试设备的软件由底层驱动(串口驱动、D/A、A/D驱动和自定义键盘驱动)、嵌入式操作系统和测试软件组成。
图1-1 某测试设备结构示意图
【问题1】
设存储器容量为4兆字,字长32位,模块数为4,分别用顺序方式和交叉方式进行组织,存储周期为200ns,数据线宽度32位,总线传送周期为50ns,请计算顺序存储器和交叉存储器的平均存取时间(单位:ns)和带宽(单位:位/秒)。(给出详细的计算过程)
解:顺序存储器和交叉存储器连续读出模块为4 字的信息总量都是:
Q=32位×4=128 位
顺序存储器和交叉存储器连续读出 4 个字所需的时间分别是: T1=模块数×存储周期=4×200ns=800ns
T2=存取周期+(模块数-1) ×总线传送周期=200ns+3×50ns=350ns
顺序存储器的平均存取时间:T1a=存储周期=200ns 交叉存储器的平均存取时间:
T2a=[存取周期+(模块数-1) ×总线传送周期]/4=350ns/4=87.5ns 顺序存储器带宽:w1=Q/T1=128b/800ns=16×107(b/s) 交叉存储器带宽:w2=Q/T2=128b/350ns=36.5×107(b/s)
【参考文献】:唐朔飞.计算机组成原理[M],北京:高等教育出版社,2008.
【问题2】
测试设备的软件工作过程为:测试设备和被测设备同时加电,测试设备的操作系统启动后自动执行测试程序。测试程序首先采集被测设备的电源是否正常,并在屏幕显示测试信息。如果被测设备正常,则向被测设备发送握手消息,与被测设备同步;如果同步不上,则报“不能与设备同步”,测试结束。接下来,测试程序接收周边键命令,按要求测试。如果测试2路模拟量,则由测试设备通过D/A转换,向被测设备发送模拟信号,被测设备得到模拟信号,判断正确性后,通过串口将结果返回给测试设备。另外,被测设备还有4个功能项是通过串口发送测试命令给被测设备的,由被测设备内的自测试程序测试后,将结果再通过串口传回给测试设备。
请完成图1-2所示的流程图。
图1-2 测试设备的测试软件流程图
答:(1) 测试电源。
(2) 向被测设备发送握手信息并与其同步。 (3) 接收周边键命令。
(4) 通过数模转换模块发送模拟量1 给测试设备。 (5) 通过数模转换模块发送模拟量2 给测试设备。 (6) 通过串口发送成功测试功能1 命令给测试设备。 (7) 通过串口发送成功测试功能2 命令给测试设备。 (8) 通过串口发送成功测试功能3 命令给测试设备。 (9) 通过串口发送成功测试功能4 命令给测试设备。
【问题3】
请完成下列填空。
1.ISA 总线为__16_位总线;
2.由模拟信号到数字信号的转换过程称为__A/D转换__; 3.将数字信号变成模拟信号的过程称为__D/A转换__;
4.D/A 转换器的主要性能指标有__分辨率___建立时间___、_线性误差___。(回答其中的三个主要性能指标即可)
其中分辨率是输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(常为电压)的变化量。它反映了输出模拟量的最小变化值。输入数字量位数越多分辨率就越高。
建立时间是输入的数字量发生满刻度变化时,输出模拟信号达到满刻度值的±1/2LSB所需的时间。是描述D/A转换速率的一个动态指标。
线性度是转换特性曲线与理想直线特性之间的最大偏差。 【参考文献】:唐朔飞.计算机组成原理[M],北京:高等教育出版社,2008.
【问题4】
在本测试设备的异步串行传输中,数据格式为:数据位8位、奇校验位1位、停止位1位。当波特率为9600b/s时,每秒钟传送的有效数据是多少字节?
解: 每秒钟传送的有效数据 = 波特率/(起始位+数据位+奇校验位+停止位)=9600 bps/(1+8+1+1)b=872.7 字节
为保证数据收发正确,试分析发送方和接收方时钟允许的误差范围,并以百分比形式给出最大误差。(给出详细计算过程和说明)
解:因为是异步传输,每个帧都以起始位开始,因此判断误差只需判断除起始位之外的后面的几位。设误差范围为X,则(8+1+1)X≤1/2,得出最大误差为 5%。 二、阅读以下关于输入输出接口设计的说明,回答问题1 至问题 3。
图2-1为采用查询方式工作的输入接口,地址译码器中A15~A1直接接或门输入。
图2-1 输入接口的电路原理图
【问题1】
输入设备在向接口传送 8 位数据的同时,还传送负脉冲STB,该信号的作用是什么? 答:负脉冲STB与锁存器的CP端相接,作用是将输入设备的数据锁存到锁存器的输出端,该脉冲还与D触发器的CP端相接,用来触发 D触发器,使其输出高电平,表示外设有数据准备好。 【问题2】
D 触发器的作用是什么?
答:D触发器用来提供外设数据准备好的状态。当输入设备有数据要输入时,让CP有效,使得D触发器Q输出高电平。
【问题3】
用查询方式将输入设备的一个数据读入CPU的BL中,程序段如下所示,请完成该段8086
汇编程序。
START: MOV DX,__(1)__ NEXT1: IN AL,DX
NEXT2: AND AL,__(2)__ JZ __(3)__
MOV DX,__(4)__ IN AL,DX
NEXT3: MOV __(5)__,AL RET 答: (1)0001H 将输入设备地址0001H传送给寄存器DX ;
(2)80H 用AND判断是否有数据输入;
(3)NEXT1或START 如果没有检测到数据的输入,则继续判断直到有数据输入; (4)0000H
(5)BL 将输入设备中的数据读到BL中。
三、阅读以下有关80X86汇编语言的叙述,回答问题1和问题2。
本题由两部分组成,第一部分为计算AX寄存器的值,第二部分为判错题。 【问题1】
已知 DS=2000H,BX=0100H,SI=0002H,存储单元[20100H]到[20103H]依次存放12H、34H、56H、78H,[21200H]到[21203H]依次存放2AH、4CH、B7H、65H,说明下列每一条指令执行后AX寄存器的内容。
(1)MOV AX,[1200H] (2)MOV AX,[BX]
(3)MOV AX,[BX+1100H] (4)MOV AX,[BX+SI]
(5) MOV AX,[BX][SI+1100H] 答:(1)4C2AH
这是直接寻址方式,将物理地址为21200H单元数据移动到到寄存器AX中。 (2)3412H
这是寄存器间接寻址方式,偏移地址=BX=0100H。
(3)4C2AH
这是器相对寻址方式,偏移地址=BX+1100H= 0100H+1100H=1200H,将以21200H为起始地址的16位数传送到寄存器AX中。
(4)7856H
这是变址寻址方式,偏移地址=BX+SI=0100H+0002H=0102H,将以201002H为起始地址的16位数据传送到寄存器AX中。
(5)65B7H
这是基址变址寻址方式,偏移地址=BX+SI+1100H=0100H+0002H+1100H=1202H将以21202H为起始地址的16位数据传送到寄存器AX中。 【问题2】
下列MOV 指令都是错误的,请指出错误原因。 (1)MOV ES,1234H (2)MOV AL,300 (3)MOV [SP],AX (4)MOV AX,BX+DI (5)MOV 20H,AH
答:(1)ES为段寄存器,立即数1234H不能直接赋给段寄存器。
(2)Al是8位,Al能接受的最大数是255(十进制),300超过了8位。
(3)80x86作为存储器指针和间接寻址的寄存器只有4个: BX、BP、SI、DI,SP不能用间接寻址的寄存器。
(4)BX和DI为两个寄存器,两个寄存器是不能相加的,如果是MOV AX,[BX+DI]则正确。 (5)立即数20H不能作为目标操作数。
【参考文献】:唐朔飞.计算机组成原理[M],北京:高等教育出版社,2008.