当前位置:文档之家› 《嵌入式技术基础与实践》习题参考答案

《嵌入式技术基础与实践》习题参考答案

第1章概述习题参考答案1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统?答:即MCU的含义是:在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM 等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。

大部分嵌入式系统以MCU为核心进行设计。

MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。

因此以MCU为核心的系统是应用最广的嵌入式系统。

2.简述嵌入式系统的特点以及应用领域。

答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定性要求,低功耗,低成本等。

一般用于工业控制,智能家电,日常电子等领域。

4.比较MCU与CPU的区别与联系。

答:CPU是一个单独的PC处理器。

而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。

所以可以这么说,MCU 是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。

第2章FreescaleS08微控制器习题参考答案1.给出AW60 存储器映像的简要说明。

答:所谓存储器映像,是指地址$0000 ~ $FFFF这个64KB空间,哪些地址被何种存储器所占用,或者说AW60的RAM、Flash、I/O映像寄存器各使用$0000 ~ $FFFF这个64KB空间中的哪些地址。

简单地说,就是$0000 ~ $FFFF这个64KB空间是如何分配的。

2.AW60的引脚主要分为哪几类?简要说明主要引脚的功能。

答:(1)电源类信号引脚(2)复位信号引脚(3)主要功能模块引脚。

比如定时器,IRQ中断等。

(4)其他,比如背景调试BKGD引脚主要引脚:AW60最小系统连接的I/O口,以及各具体功能I/O口。

3.嵌入式系统中RAM和Flash作用分别是什么?答:一般来说RAM这个区域安排用户数据(主要是全局变量)和堆栈空间;Flash要用于存储程序、常数、中断向量等。

4.给出AW60的硬件最小系统。

答:AW60芯片的硬件最小系统包括电源及其滤波电路、复位电路、晶振电路及PLL滤波电路、写入器接口电路。

5.指出下列指令中的源操作数和目的操作数的寻址方式。

(1) MOV #$80 , $80 (2) MOV $80,$A0(3) MOV $80 , X+ (4) MOV X+ , $80(5) LDA $80 , X答:(1)立即寻址,直接寻址(2)直接寻址,直接寻址(3)直接寻址,无偏移量变址、变址加1寻址方式(4)无偏移量变址、变址加1寻址方式, 直接寻址(5)直接寻址,无偏移量变址、变址加1寻址方式8.说明芯片初始化时堆栈指针的初始化方法。

答:SP是指向下一个栈地址的16位寄存器,堆栈指针SP采用递减的结构,即进栈SP减1,出栈时SP加1。

初始化时,SP的初值为$00FF(前置符号$表示十六进制数)。

栈指针复位指令(RSP)可将SP的低8位置为$FF,而不影响高8位。

10.编写一段延时1000个指令周期的延时子程序。

答:DL1000;MOV R7#248DJNZ R7$MOV R7#250DJNZ R74RET第3章第一个样例程序及工程组织习题参考答案1.什么叫通用I/O口?答:所谓通用I/O,也记为GPIO(GeneralPurposeI/O),即基本的输入/输出,有时也称并行I/O,或普通I/O,它是I/O的最基本形式。

2.什么叫上拉电阻与下拉电阻?它们的作用是什么?如何选择上拉电阻与下拉电阻的阻值?哪些情况下使用上拉电阻?哪些情况下使用下拉电阻?答:通俗地说,若MCU的某个引脚通过一个电阻接到电源(Vcc)上,这个电阻被称为“上拉电阻”。

与之相对应,若MCU的某个引脚通过一个电阻接到地(GND)上,则相应的电阻被称为“下拉电阻”;他们使得悬空的芯片引脚被上拉电阻或下拉电阻初始化为高电平或低电平;根据实际情况,上拉电阻与下拉电阻可以取值在1KΩ~10KΩ之间,其阻值大小与静态电流及系统功耗相关;当某个引脚需要初始化成高电平时可以通过上拉电阻接电源,当某个引脚要初始化低电平时可以通过下拉电阻接地。

3.什么是OC输出?为什么OC输出的I/O口一定要上拉?答:OC输出,即开漏输出,即集电极开路。

只有接了上拉电阻,才能输出高低电平,否则只能输出低电平了。

4.为什么在无操作系统的嵌入式系统软件主程序中使用无限循环?答:由于程序都是顺序执行的。

如果不使用无限循环,程序执行一遍代码,就不能在接受其他的任务操作了。

在嵌入式系统中,这是致命的,如果一个嵌入式产品每次只能使用一次或只接受一次任务,那是无法想象的。

但是使用了无限循环,就可以不停地监听任务,并执行。

5.找出样例子工程的机器码文件,解释S19文件的含义。

答:源文件经编译、连接后可获得目标码文件(.S19文件),它是FreescaleMCU的机器码文件,通过写入程序可将机器码下载到目标MCU内的Flash存储器,也可以通过光盘中苏州大学嵌入式系统研发中心开发的独立写入软件SD-Programmer-S08读出写入到Flash的S19的内容,观察实际写入到Flash的内容是否和S19的内容相同。

该程序也可以擦写Flash。

目标代码文件是以S记录格式表示的机器码文件。

S记录格式是Freescale公司的十六进制目标代码文件,它将目标程序和数据以ASCII码格式表示,可直接显示和打印。

目标文件由若干行S记录构成,每行S记录可以用CR/LF/NUL结尾。

一行S记录由五部分组成,具体细节请参考书中3.4.4。

6.举例给出CW环境C语言工程文件的组织结构图。

答:以下是控制小灯闪烁的CW环境C语言工程文件的组织结构图。

7.分析Project.prm文件的功能。

答:Project.prm文件主要实现了芯片的RAM和ROM的定义,初始化RAM中的变量。

初始化堆栈的大小。

定义复位向量,即应用程序的默认入口。

还包含了启动代码,是硬件复位后的函数入口第4章基于硬件构件的嵌入式系统开发方法3.为什么要将某些寄存器名和寄存器位在头文件中进行宏定义?答:对MCU内的模块寄存器名和端口名进行重定义,在其它的代码里面都将使用宏名对模块寄存器和端口进行操作。

这样,当底层驱动程序移植到其它MCU时,只要修改重定义语句就可以了。

4.为什么在设计底层硬件驱动构件时,不能使用全局变量?答:应用程序在使用底层构件时,严格禁止通过全局变量来传递参数,所有的数据传递都要通过函数的形式参数来接收。

这样做不但使得接口简洁,更加避免了全局变量可能引发的安全隐患。

第5章串行通信接口SCI习题参考答案1.简要阐述异步串行通信涉及的主要基本概念。

答:串行通信至少涉及到以下几个基本概念:第一,每个字节之间是如何区分开的?第二,发送一位的持续时间是多少?第三,怎样知道传输是正确的?第四,可以传输多远?这些问题属于串行通信的基本概念。

2.表征串行通信速度的物理量是什么?串行通信的传输速度有限制吗?答:位长(BitLength),也称为位的持续时间(BitDuration)。

其倒数就是单位时间内传送的位数。

人们把每秒内传送的位数叫做波特率(BaudRate)。

波特率的单位是:位/秒,记为bps。

bps是英文bitpersecond的缩写,习惯上这个缩写不用大写,而用小写。

通常情况下,波特率的单位可以省略。

通常使用的波特率有600、900、1200、1800、2400、4800、9600、19200、38400、57600、115200、128000等。

有限制。

因为随着波特率的提高,位长变小,以至于很容易受到电磁源的干扰,通信就不可靠了。

当然,还有通信距离问题,距离小,可以适当提高波特率,但这样毕竟提高的幅度非常有限,达不到大幅度提高的目的。

3.MCU与PC进行通信为什么要进行电平转换?如何进行电平转换?答:在MCU中,若用RS-232总线进行串行通信,则需外接电路实现电平转换。

在发送端,需要用驱动电路将TTL电平转换成RS-232电平;在接收端,需要用接收电路将RS-232电平转换为TTL电平。

电平转换器不仅可以由晶体管分立元件构成,也可以直接使用集成电路。

目前广泛使用MAX232芯片较多,该芯片使用单一+5V电源供电实现电平转换。

4.给出SCI编程的通用模型。

答:SCI具有初始化、接收和发送三种基本操作。

按照构件的思想,可将它们封装成三个独立的功能函数,初始化函数完成对SCI模块的工作属性的设定,接收和发送功能函数则完成实际的通信任务。

以SCI的初始化、接收和发送三种基本操作为例,来说明实现构件化的全过程。

(1)SCI模块是最底层的构件,它主要向上提供三种服务,分别是SCI模块的初始化、接收单个字节和发送单个字节,向下则直接访问模块寄存器,实现对硬件的直接操作。

另外,从现实使用角度出发,它还需要封装接收N个字节和发送N个字节的子功能函数。

(2)SCI模块在软件上对应1个SCI.c程序源代码文件和1个SCI.h头文件,当需要对它进行移植时,大多数情况下只需简单拷贝这两个文件即可,无需对源代码文件和头文件进行修改,只有当实施不同芯片之间的移植时,才需要修改头文件中与硬件相关的宏定义。

(3)上层构件或软件在使用该构件时,严格禁止通过全局变量来传递参数,所有的数据传递都直接通过函数的形式参数来接收。

这样做不但使得接口简洁,更加避免了全局变量可能引发的安全隐患。

5.简述中断的作用与处理过程。

答中断是MCU实时地处理内部或外部事件的一种内部机制。

当某种内部或外部事件发生时,中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。

中断的处理过程一般为:关中断(在此中断处理完成前,不处理其它中断)、保护现场、执行中断服务程序、恢复现场、开中断等。

6.S08系列MCU都有哪些中断源?答:S08系列MCU有26个中断源,按优先级从高到低的顺序分别是:复位中断(1个)、SWI指令中断(1个)、IRQ引脚中断(1个)、低电压检测中断(1个)、ICG中断(1个)、定时器中断(10个)、SPI中断(1个)、SCI中断(6个)、键盘输入中断(1个)、ADC转换完成中断(1个)、IIC中断(1个)和实时中断(1个)。

26个中断源只有18个中断向量,有的是几个中断源使用同一个中断向量。

7.S08系列MCU的中断执行过程分为哪几个步骤?答:CPU每执行完一条指令,若程序有开放某些中断及总中断(使用CLI指令),则CPU 按照优先级次序查询所有中断标志位,若某个中断已发生,则响应该中断请求。

相关主题