当前位置:文档之家› 嵌入式技术基础与实践答案(第3版)

嵌入式技术基础与实践答案(第3版)

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

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

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

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

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

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

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

日常数码产品:手机,MP3,U盘,相机等。

日常工业类:冰箱,空调,微波炉,汽车等。

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

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

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

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

4. 总结嵌入式系统常用术语。

硬件:封装,印刷电路板,动态可读写随机存储器与静态可读写随机存储器,只读存储器,闪速存储器,模拟量与开关量。

通信:并行通信,串行通信,串行外设接口,集成电路互连总线,通用串行总线,控制器局域网,背景调试模式,边界扫描测试协议,串行线调试技术。

功能模块及软件:通用输入/输出,A/D与D/A,脉冲宽度调制器,看门狗,液晶显示,发光二级管,键盘,实时操作系统。

5.C语言的那些特性使得它成为嵌入式系统中使用频率最高的高级语言。

答:相比底端汇编,更简单易学;与高级语言如(C++,C#,java等)相比,执行效率高,编译后的编码体积小,而且支持好的编译器还支持嵌入汇编代码;对位的操纵能力很强。

6. 举例说明结构体变量类型的定义、结构体变量的声明与使用方法。

C语言中所有数据类型遵循“先定义后使用”的原则。

(1)结构体的说明和结构体变量的定义例如,定义一个名为student的结构体变量类型:structure student{ //定义名为student的结构体变量类型char name[8]; //成员变量name为字符型数组char class[10]; //成员变量class为字符型数组int age; //成员变量age为整型};这样,若声明s1为一个student类型的结构体变量,则:struct student s1; //声明s1为student类型的结构体变量又如定义类型同时声明:structure student{ //定义名为student的结构体变量类型char name[8]; //成员变量name为字符型数组char class[10]; //成员变量class为字符型数组int age; //成员变量age为整型}s1; //声明s1为student类型的结构体变量(2)结构体变量的使用结构体成员的表示方式:结构体变量. 成员名s1.age=18;(3)结构体指针第二章1. ARM处理器分为那几个系列?简要说明个系列的主要应用范围。

1)ARM Cortex-A50 系列处理器:手势控制功能,现实技术、移动游戏、Web2.0技术2)ARM Cortex-A 系列处理器:高计算要求、运行丰富操作系统、交互媒体和图形体验3)ARM Cortex-R 系列处理器:智能手机、硬盘驱动器、数字电视、医疗行业、工业控制,汽车电子等4)ARM Cortex-M 系列处理器:智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费型产品和医疗器械2. ARM Cortex-M0+处理器有哪些特点?说明其主要应用领域。

1)M0+内核:支持16位Thumb指令集2)嵌套中断向量控制器:与MCU紧耦合,支持中断嵌套,采用向量中断机制3)总线网络:M0+内部总线系统的核心4)调试组件:基于硬件,支持两个硬件断点和两个观察点,支持单步调试和向量捕捉,支持多个软件断点5)总线接口:可高速整体访问所有系统外设和内存6)SysTick系统时钟:用于实时操作系统RTOS的时钟或仅仅作为计数器7)其他模块:系统控制模块提供系统运行信息和系统配置功能;微型跟踪缓冲器提供程序追踪功能;存储器保护单元是一个选配的单元应用领域:家用电器、白色商品、医疗监控、电子测量、照明设备以及功耗与汽车控制器件等各种广泛应用的智能传感器与智能控制系统,提供超低功耗、低成本微控制器(MCU)。

第三章1. 简述ARM Cortex-M0+ Kinetis L系列MCU的型号和标识。

飞思卡尔Kinetis 系列MCU的型号众多,但同一种系列的CPU核是相同的Kinetis L系列命名格式:Q KL # # A FFF R T PP CC(N)本书:MKL25Z128VLK42. 简要阐述硬件电路中滤波电路、耦合电路的具体作用。

滤波电路:改善系统的电磁兼容性,降低电源波动对系统的影响,增强电路的稳定性。

耦合电路:3. 解释最小系统概念,并结合KL25开发板,归纳实现最小系统需要的引脚资源。

硬件最小系统:由电源、主板和CPU、内存组成.在这个系统中,没有任何信号线的连接,只有电源到主板的电源连接.在判断的过程中通过声音来判断这一核心组成部分是否可正常工作。

KL25硬件最小系统引脚包括电源类引脚、复位引脚、晶振引脚,SWD 接口电路4. 给出KL25的Flash及RAM的大小、地址范围。

Flash:128KB(0x0000_0000~0x0001 FFFF)0x0000_0000~0x07FF_FFFFRAM:16KB 0x0000_0000~0x3FFF_FFFF 5. KL25开发板SD-FSL-KL25-EVB中使用什么标准调试接口,具体如何实现?SWD(Serial Wire Debug)串行协议访问处理器接口观察三色灯变化、串口通信、USB口通信将USB线的迷你USB口端接入开发板的USB扁口,将USB线的另一端USB扁口接入PC的USB口,给开发板供电。

将TTL-USB串口线与评估板上的串口连接(蓝线-RX,白线-TX,黑线-GND),串口线的USB接PC的USB口。

将USB线的“迷你USB口”端接入开发板的USB扁口,另一端USN 扁口接入PC的USB口。

6. 给出KL25芯片的RAM、Flash的地址范围,说明堆栈空间、全局变量、常量、程序分别存放于RAM中还是Flash中。

一般来说RAM这个区域安排用户数据(主要是全局变量)和堆栈空间;Flash要用于存储程序、常量、中断向量等。

7. KL25开发板SD-FSL-KL25-EVB中具有哪些功能接口,如何进行测试?SWD(Serial Wire Debug)串行协议访问处理器接口、3色RGB指示灯、TTL电平的UART接口、miniUSB接口。

观察三色灯变化、串口通信、USB口通信将USB线的迷你USB口端接入开发板的USB扁口,将USB线的另一端USB扁口接入PC的USB口,给开发板供电。

将TTL-USB串口线与评估板上的串口连接(蓝线-RX,白线-TX,黑线-GND),串口线的USB接PC的USB口。

将USB线的“迷你USB口”端接入开发板的USB扁口,另一端USN 扁口接入PC的USB口。

8. 分析KL25最小系统原理图中各部分的基本原理。

1)电源及其滤波电路:提供足够的电流容量,电源引脚外接适当的滤波电容以抑制高频噪声2)复位电路和复位功能:正常工作时复位输入引脚T_RST通过一个10K殴的电阻到电源正极,所以一个为高电平。

若按下复位按钮,则T_RST引脚接为低电平,导致芯片复位。

3)晶振电路:外接电源,借助辅助电路产生震荡信号4)SWD接口电路:程序下载和调试,只需两根线,数据输入/输出线和时钟线。

第四章1.将小灯接到MCU的PORTB_PCR_19上,低电平点亮Uint_32 portB_PCR_19=portB_ptr+19; //portB_ptr表示端口控制模块B的基地址portB_PCR_19=0x0000100 //数值19脚为GPIO功能portB_PDDR=gpioB_ptr+5; //GPIO功能的方向寄存器portB_PDDR|=(1<<19)portB_PDOR=gpioB_ptr+0; //GPIO功能数据输出寄存器portB_PDOR&=~(1<<19) //19脚输出为03.在include.s文件中需要包含light.s,这样在该工程中就可以调用light构件的接口函数。

首先调用light_Init函数,初始化所需的指示灯。

注意初始化时,要让每一盏灯初始状态为“暗”。

随后,通过light_control 函数控制指示灯亮、暗。

通过变量的递增并且设置频率后,就能够在程序运行中,可以比较明显的看到指示灯对应的小灯进行闪烁的现象。

4.程序的启动地址,初始化的一些程序(禁用看门狗,系统时钟初始化及全能端口时钟等)。

数据,RAM和Flash空间的分配5.程序如下所示A.Button构件的头文件Button.h//文件名称:Button.h//功能概要:拨码开关#ifndef Button.h#def Button.h#include ‘common.h’#include ‘gpio.h’#define Button_PORT PORTA ;使用的A端口#define Button_PIN_b 19 ;使用的19脚#define Button_OFF 0#define Button_ON 1//函数名称:Button.init//函数参数:port,端口号pin 引脚号//函数返回值:无Void Button_init(uint_8 port,uint_pin)//函数名称:Button_get//函数参数:port 端口pin 引脚号//函数返回值:拨码开关的状态Uint_8 Button_get(uint_8 port,uint_pin)B.Button构件的程序文件Button.c#include ‘Button.h’Void Button_init(uint_8 port,uint_8 pin){gpio_init(port,pin,0,state);}Uint_8 Button_get(uint_8 port,uint_8 pin){ Return gpio_get(port,pin);}第五章略第六章1,简述MCU与PC之间进行串口通信时,为什么要经行电平转换?如何进行转换?由于单片机TTL的电平与PC串口标准的电平不一样,所以就要进行电平转换。

相关主题