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

嵌入式技术基础与实践第二版习题参考答案

百度文库- 让每个人平等地提升自我嵌入式技术基础与实践(第二版)习题参考答案目录第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文件),它是Freescale MCU的机器码文件,通过写入程序可将机器码下载到目标MCU内的Flash存储器,也可以通过光盘中苏州大学嵌入式系统研发中心开发的独立写入软件SD-Programmer-S08读出写入到Flash的S19的内容,观察实际写入到Flash的内容是否和S19的内容相同。

该程序也可以擦写Flash。

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

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

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

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

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

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

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

初始化堆栈的大小。

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

还包含了启动代码,是硬件复位后的函数入口。

8.如何查看一个文件.LST文件,举例分析一个LST文件。

答:利用Freescale Codewarrior打开控制小灯闪烁工程文件,通过edit-standard settings-target –compiler for HC08-option-output-generate Listing File点击确定编译连接可以生成.LST文件。

然后在该工程的bin文件夹中可以找.LST文件,通过Freescale Codewarrior 打开文件。

看下面的一段代码:26:Light_Init(Light_Run_PORT,Light_Run,Light_OFF); IRQ ST文件中查得。

(2)一次擦除后未被写入过的区域可以再次调用写入子程序写入,但写入过的区域,未经擦除不能重写。

(3)由于擦除是每次擦除一页(512字节),所以数据应合理安排,避免误擦。

(4)页首地址的定义须遵照保护寄存器FLBPR定义的规则。

(5)在线编程时使用的Flash存储区域应在程序Flash存储区域之前,因为Flash保护区为FLBPR决定的地址至末尾。

8.AW60芯片如何加密?如何解除密码?答:1.为了防止Flash中的程序被非法读出,就要将MCU设置为保密状态,下面提供两种加密Flash方法。

方法一:通过修改文件文件中的安全配置域(即修改FOPT寄存器,地址0xFFBF的值和密钥地址0xFFB0~ 0xFFB7的值)实现加密。

例如,若要设置密码0x338,则只要将这8字节数据依次写到地址0xFFB0~0xFFB7处即可,该密码即为字符串“”。

方法二:在程序运行中,通过调用自定义函数修改Flash相关地址处的内容来加密Flash。

通过修改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/O的支持,而且使用上拉电阻,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。

SPI实现要简单一些。

I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

在实际应用中,应该根据需要使用SPI接口或者是I2C接口。

相关主题