嵌入式技术基础与实践第二版习题参考答案.docx
《嵌入式技术基础与实践第二版习题参考答案.docx》由会员分享,可在线阅读,更多相关《嵌入式技术基础与实践第二版习题参考答案.docx(20页珍藏版)》请在冰豆网上搜索。
嵌入式技术基础与实践第二版习题参考答案
嵌入式技术基础与实践(第_版)
习题参考答案
/
\z
第1章概述习题参考答案2
第10章集成电路互连总线I2C习题参考答案5
第11章模数转换模块A/D习题参考答案7
第12章系统开发其他模块应用习题参考答案8
第13章JM60的USB开发方法习题参考答案10
第14章DZ60的CAN总线开发方法习题参考答案14
第1章概述习题参考答案
1•嵌入式系统的基本含义是什么?
为什么说单片机是典型的嵌入式系统?
答:
即MCU的含义是:
在一块芯片上集成了中央处理单元(CPU)、存储器(RAM/ROM等)、
定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。
大部分嵌入式系统以MCU为核心进行设计。
MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。
因此以MCU为核心的系统是应用最广的嵌入式系统。
2.简述嵌入式系统的特点以及应用领域。
答:
嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现;嵌入式系统开发需要专
用工具和特殊方法;使用MCU设计嵌入式系统,数据与程序空间采用不同存储介质;开发嵌入
式系统涉及软件、硬件及应用领域的知识;嵌入式系统的其他特点,比如紧张的资源,较高稳定
性要求,低功耗,低成本等。
一般用于工业控制,智能家电,日常电子等领域。
3.比较MCU与CPU的区别与联系。
答:
CPU是一个单独的PC处理器。
而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。
所以可以这么说,MCU
是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。
4.举例说明嵌入式系统在日常生活中的应用。
答:
日常数码产品:
手机,MP3,U盘,相机等。
日常工业类:
冰箱,空调,微波炉,汽车等。
5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。
答:
相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编
译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。
6.阅读光盘中【第01章(概述)阅读资料】中的“嵌入式C语言工程简明规范”,用一页纸给出嵌入式C语言工程简明规范的要点。
答:
此规范主要针对单片机编程语言和08编译器而言,包括命名、注释、编码规范性等内容。
建议在一个工程或者一个项目中尽量遵循相同的代码规范,而不是说你只能拥有一个代码规范。
(1)命名规则:
命名清晰明了,有明确含义,使用完整单词或约定俗成的缩写。
通常,较短的单词可通过去掉元音字母形成缩写;较长的单词可取单词的头几个字母形成缩写。
即
"见名知意”;命名风格要自始至终保持一致;命名中若使用特殊约定或缩写,要有注释说明;为了代码复用,命名中应避免适用与具体项目相关的前缀;应使用英语命名。
(2)注释:
注释基本原则就是有助于对程序的阅读理解,说明程序在”做什么”,解释代码的
目的、功能和采用的方法。
一般情况源程序有效注释量在30%左右。
注释语言必须准确、易
懂、简洁。
边写代码边注释,修改代码同时修改相应的注释,不再有用的注释要删除。
汇编
和C中都用"19文件),它是FreescaleMCU的机器码文件,通过写入程序可将机器码下载到目标MCU内的Flash存储器,也可以通过光盘中苏州大学嵌入式系统研发中心开发的独立写
入软件SD-Programmer-S08读出写入到Flash的S19的内容,观察实际写入到Flash的内容是
否和S19的内容相同。
.该程序也可以擦写Flash。
目标代码文件是以S记录格式表示的机器码
文件。
S记录格式是-Freescale公司的十六进制目标代码文件,它将目标程序和数据以ASCII
码格式表示,可直接显示和打印。
」目标文件由若干行・S记录构成,每行S记录可以用CR/LF/NUL结尾。
一行S记录由五部分组成,具体细节请参考书中。
■OFIO.hJliJtfl
i1Lilith
6•举例给出亍CW环境C语言工程文件的组织结构图。
答:
以下是控制小灯闪烁的CW环境C语言工程文件的组织结构图
申导工-总怵拙科庁;丈ft》
巒Getlet■辽Fun.c帝用鞘8:
SMCUInit.c药片切妬比
超MC9S(KA>60.C他4蛭掘!
心HlX.1'Zkii£
自吕二《较井鮒件〉
:
GFIO.c通用箱入”辅出OiPIE枸件桎厚文杵
T*lLichtc(Uuht)i'fi:
寸臼打匕€厚文祥》
-■ansiis.lib
Seltiiig^<:
朴设说Jtft,
>|21«u-tupCode
■stBrtfl9cUl加型丈世
-^Lifik&rFil«s<辽:
瓷宜ft》
覇burner,bbl
卜.Frojvcl.prm
i“£]Frojftct.m^p\
£1工程说明•仆iftiftisnAfi
7.分析文件的功能。
答:
文件主要实现了芯片的RAM和ROM的定义,初始化RAM中的变量。
初始化堆栈的大
小。
定义复位向量,即应用程序的默认入口。
还包含了启动代码,是硬件复位后的函数入口。
8.如何查看一个文件丄ST文件,举例分析一个LST文件。
答:
利用FreescaleCodewarrior打开控制小灯闪烁工程文件,通过edit-standardsettings-target
-compilerforHC08-option-output-generateListingFile点击确定编译连接可以生成.LST文件。
然后在该工程的bin文件夹中可以找丄ST文件,通过FreescaleCodewarrior打开文件。
看下面
的一段代码:
26:
Light_lnit(Light_Run_PORT,Light_Run,Light_OFF);IRQST文件中查得。
⑵一次擦除后未被写入过的区域可以再次调用写入子程序写入,但写入过的区域,未经擦
除不能重写。
(3)由于擦除是每次擦除一页(512字节),所以数据应合理安排,避免误擦。
⑷页首地址的定义须遵照保护寄存器FLBPR定义的规则。
⑸在线编程时使用的Flash存储区域应在程序Flash存储区域之前,因为Flash保护区为
FLBPR决定的地址至末尾。
8.AW60芯片如何加密?
如何解除密码?
答:
1.为了防止Flash中的程序被非法读出,就要将MCU设置为保密状态,下面提供两种加
密Flash方法。
方法一:
通过修改文件文件中的安全配置域(即修改FOPT寄存器,地址0xFFBF的值和密钥地址0xFFB0~0xFFB7的值)实现加密。
例如,若要设置密码0x338,则只要将这8字节数据依次写到地址0xFFB0~0xFFB7处即可,该密码即为字符串“”。
方法二:
在程序运行中,通过调用自定义函数修改Flash相关地址处的内容来加密Flasho通
过修改NVOPT地址的内容,复位后,该寄存器的值将自动载入FOPT中。
2.S08系列芯片在加密后,需要重新写入程序,必须先解除密码。
这里提供2种解除密码方法。
方法一:
通过将写入器的BDM接口,对已经加密的芯片进行整体擦除,具体使用方法参见光
盘中“《S08/S12/ColdFire三合一写入器》使用说明”。
方法二:
在芯片中驻留擦除密码或擦除Flash的操作接口,通过调用Flash_KEY_Match函数实
现。
用户可以选择一种后门”机制,假如寄存器NVOPT/FOPT的KEYEN位为0时,后门机制无效,但是如果KEYEN位为1时,用户按照如下的方法取消MCU的保密状态:
(1)将FCNFG的KEYACC位置1。
(2)向NVBACKKEY〜NVBACKKEY+7的位置(Flash中$FFB0〜$FFB7)依次写入8个字节,
由于第
(1)步的操作,MCU会将该写入操作理解为是密码比较操作,这8个字节被看作是
后门的钥匙。
(3)将FCNFG的KEYACC位置0,如果用户写入的8个字节和NVBACKKEY〜NVBACKKEY+7的位置的8个字节是匹配的,MCU会将SEC01:
SEC00改写成1:
0,从而取消MCU的保密性。
这种保密钥匙只能从保密的存储器中写入,所以在没有用户程序的配合下,背景调试命令也
不可以进入的。
当然如果不知道后门钥匙,使用这种方法也是无法取消MCU的保密态。
第10章集成电路互连总线I2C习题参考答案
1•简述I2C总线的特点。
答:
I2C主要特点总结如下。
(1)在硬件上,二线制的I2C串行总线使得各IC只需最简单的连接,而且总线接口都集成
在IC中,不需另加总线接口电路。
电路的简化省去了电路板上的大量走线,减少了电路板的面积,提高了可靠性,降低了成本。
在I2C总线上,各IC除了个别中断引线外,相互之间没
有其他连线,用户常用的IC基本上与系统电路无关,故极易形成用户自己的标准化、模块化设计。
(2)I2C总线还支持多主控(multi-mastering),如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。
其中任何能够进行发送和接收的设备都可以成为主机。
一个主机能够控制信号的传输和时钟频率。
当然在任何时间点上只能有一个主机。
(3)串行的8位双向数据传输位速率在标准模式下可达100kbps(S08AW系列的I2C模块只支持标准模式),快速模式下可达400kbps,高速模式下可达。
(4)连接到相同总线的IC数量只受到总线最大电容(400pf)的限制。
但如果在总线中加上82B715总线远程驱动器可以把总线电容限制扩展十倍,传输距离可增加到15m。
2•简述I2C总线的数据传输过程。
答:
在物理结构上,I2C系统由一条串行数据线SDA和一条串行时钟线SCL组成。
主机按一定的通信协议向从机寻址并进行信息传输。
在数据传输时,由主机初始化一次数据传输,主机使数据在SDA线上传输的同时还通过SCL线传输时钟。
信息传输的对象和方向以及信息传输的开始和终止均由主机决定。
每个器件都有唯一的地址,且可以是单接收的器件(例如LCD驱动器),或者是可以接
收也可以发送的器件(例如存储器)。
发送器或接收器可在主或从模式下操作,这取决于芯片
是否必须启动数据的传输还是仅仅被寻址。
3•简述AW60的I2C主机从从机读一个字节数据的过程,并加以理解。
答:
当主机要从从机读1个字节数据时,主机首先产生START信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为0,表明是向从机写命令,这时候主机等待从机的应答信号
(ACK),当主机收到应答信号时,发送要访问的地址,继续等待从机的应答信号,当主机收/
到应答信号后,主机要改变通信模式(主机将由发送变为接收,从机将由接收变为发送),所
以主机发送重新开始信号,然后紧跟着发送一个从机地址,注意此时该地址的第8位为1,表
明将主机设置成接收模式开始读取数据,这时主机等待从机的应答信号,当主机收到应答信号时,就可以接收1个字节的数据,当接收完成后,主机发送非应答信号,表示不再接收数据,主机进而产生停止信号,结束传送过程。
4•从从机的接入、时钟控制、数据传输速度、是否可以实现多主控、作用领域等
方面比较SPI和I2C。
答:
I2C需要有双向I