嵌入式技术及应用各章练习答案.docx

上传人:b****7 文档编号:26185326 上传时间:2023-06-17 格式:DOCX 页数:12 大小:207.17KB
下载 相关 举报
嵌入式技术及应用各章练习答案.docx_第1页
第1页 / 共12页
嵌入式技术及应用各章练习答案.docx_第2页
第2页 / 共12页
嵌入式技术及应用各章练习答案.docx_第3页
第3页 / 共12页
嵌入式技术及应用各章练习答案.docx_第4页
第4页 / 共12页
嵌入式技术及应用各章练习答案.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

嵌入式技术及应用各章练习答案.docx

《嵌入式技术及应用各章练习答案.docx》由会员分享,可在线阅读,更多相关《嵌入式技术及应用各章练习答案.docx(12页珍藏版)》请在冰豆网上搜索。

嵌入式技术及应用各章练习答案.docx

嵌入式技术及应用各章练习答案

1.4练习

1.嵌入式系统的定义是什么?

目前业界有多少种关于嵌入式系统的定义?

答:

嵌入式系统目前没有统一和权威的定义,国内一个普遍被认同的嵌入式系统定义是:

以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

目前业界对于嵌入式系统至少有两到三种本质一致但表述不尽相同的定义。

2.嵌入式是由那些部分组成的?

试从一个实际的产品来分析嵌入式系统的组成。

答:

嵌入式系统由底层硬件模块、中间协议层、操作系统和高端应用层4部分组成。

比较直接的例子就是智能手机。

智能手机中的处理器即为嵌入式处理器,RAM+ROM即为存储设备,键盘屏幕等设备即为输入输出设备,上述设备同归为底层硬件模块;Windows、Linux、Android等操作系统外加不同的应用程序即为组成中的操作系统和高端应用层;配合硬件和操作系统的驱动程序即为中间协议层。

3.简述三星公司的ARM9芯片S3C2410A的性能指标。

答:

S3C2410的型号有两个,分别是S3C2410A-20和S3C2410A-26。

前者的主频最高为200MHz,后者的主频最高为266MHz。

S3C2410芯片集成了大量的功能单元。

(1)核心供电1.8V,外部I/O3.3V,16KB数据Cache,16KB指令Cache,MMU。

(2)内置外部存储器控制器(SDRAM控制和芯片选择逻辑)。

(3)117个通用I/O。

(4)56个中断源。

(5)24个外部中断。

(6)看门狗定时器。

(7)4个PWM定时器和一个内部定时器。

(8)两个USBHOST,一个USBDEVICE(VER1.1)。

(9)SD主接口版本1.0与多媒体卡协议版本2.11兼容。

(10)一个多主I2C总线,一个I2S总线控制器。

(11)3个通用异步串行端口(IrDA1.0,16-ByteTxFIFOand16-ByteRxFIFO),2通道SPI。

(12)4个带外部请求线的DMA。

(13)LCD控制器,一个LCD专业DMA。

(14)电源控制模式:

标准、慢速、休眠、掉电。

(15)8通道10位ADC和触摸屏接口。

(16)带日历功能的实时时钟。

(17)芯片内置PLL。

(18)设计用于手持设备和通用嵌入式系统。

(19)16/32位RISC体系结构,使用ARM920TCPU核的强大指令集。

(20)带MMU的先进的体系结构支持WinCE、EPOC32、Linux。

(21)指令缓存(Cache)、数据缓存、写缓存和物理地址TAGRAM,减小了对主存储器带宽和性能的影响。

(22)ARM920TCPU核支持ARM调试的体系结构。

(23)内部先进的位控制器总线(AMBA)(AMBA2.0,AHB/APB)。

2.3练习

1.简述EL-TAB-ARM-II实验系统平台的硬件资源有哪些?

答:

实验系统资源

1)尺寸为5.7寸,分别率为320×240的触摸屏。

2)S3C2410A核心板。

3)对外输出电源(外接扩展设备用)。

4)扩展接口(E_LAB和Tech_V总线接口均包括在内)。

5)数码显示和键盘电路。

6)I/O单元电路。

7)音频处理模块(带两个扬声器、一个MIC接口、一个耳机/音箱接口和一个音频输入端子)。

2.按照书中2.2节所述,建立一个完整的工程。

答:

略。

3.练习按照文件组织方式向已建好的工程中添加文件。

答:

略。

4.练习工程编译和在线调试过程。

答:

略。

3.3练习

1.简述汇编语言的优缺点。

答:

汇编语言直接同底层软件甚至硬件进行交互,其优点是:

(1)能够直接访问与硬件相关的存储器或I/O端口;

(2)能够不受编译器的限制,对生成的二进制代码进行完全的控制;

(3)方便对位的操作;

(4)能够对关键代码进行更准确的控制;

(5)能够根据特定的应用对代码做最佳的优化,提高运行速度;

(6)能够最大限度地发挥硬件的功能。

汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二进制的机器指令码,所以汇编语言有如下缺点:

(1)编写的代码晦涩难懂,不易维护;

(2)因为汇编你语言与硬件联系紧密,所以只能针对特定的体系结构和处理器进行优化;

(3)由于其代码效率低,所以开发效率很低。

2.简述C语言的优缺点。

答:

C语言的优点是:

(1)简洁紧凑、灵活方便。

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。

把高级语言的基本结构和语句与低级语言的实用性结合起来。

(2)运算符丰富。

C语言的运算符包含的范围很广泛,共有34种运算符。

C语言把括号、赋值、强制类型转换等都作为运算符处理。

从而使C语言的运算类型极其丰富,表达式类型多样化。

(3)数据类型丰富。

C语言的数据类型有:

整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。

能用来实现各种复杂的数据结构的运算。

并引入了指针概念,使程序效率更高。

(4)C是结构式语言。

C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

(5)适用范围大,可移植性好。

C语言有一个突出的优点就是适合于多种操作系统,如Linux、UNIX和windows等;也适用于多种机型。

C语言与汇编程序相比,其缺点是语法要求不是很严格,程序设计自由度很大,这样写出的程序容易出现Bug;另外由于C语言是高级语言,对于硬件程序设计所生成目标代码的效率相对较低,一般比汇编程序生成的目标代码效率低10%~20%。

C语言和汇编语言混合编程基本上可以解决C语言代码效率较低的问题。

3.对比汇编语言和C语言。

答:

虽然C语言有代码效率较低的劣势,但是由于C语言出色的特点使之成为硬件驱动程序编程的首选语言。

应对特殊要求场合时,例如对程序实时性要求较高的地方,可以利用汇编语言的优势,采用C与汇编混合编程,从而达到既兼顾效率又使程序的可读性、可移植性等优势充分的发挥。

4.3练习

1.举例说明如何对I/O端口进行配置。

答:

将PortG端口的GPG8和GPG9设置为输出端口,根据表4.15,只要将GPGCON中的bit位[19:

18]和[17:

16]设置为“01”即可。

rGPGCON=rGPGCON&0xfff0ffff|0x00050000;语句执行后,GPGCON寄存器中的[19:

16]的值恰好为“0101”,这样就将GPG8和GPG9配置为输出端口了。

2.举例说明如何在I/O端口上进行数据读写。

答:

首先必须保证端口被配置为I/O类型,而不是特殊功能端口。

S3C2410A的I/O读写完操作全靠寄存器GPxDAT(x=A~H)来完成。

如果GPADAT=0x555555,则为写操作;若dat=GPADAT,则为读操作。

3.修改4.2.2中的实验代码,使两个LED同时亮灭。

答:

将rGPGDAT=rGPGDAT&0xdff|0x100;修改为rGPGDAT=rGPGDAT&0xcff|0x000;将rGPGDAT=rGPGDAT&0xeff|0x200;修改为rGPGDAT=rGPGDAT&0xfff|0x300;

5.3练习

1.简述中断机制是如何运作的。

答:

嵌入式微处理器上电复位后,CPU从程序存储器顺序取出指令并执行,当程序执行到第n条时,有中断源受控于中断控制器向CPU发出中断请求,此时如果CPU受理的中断请求,那么程序将从第n条指令处中断而转到去执行相应的中断程序,中断程序处理完毕后,返回发生中断的地方继续执行第n+1条指令,中断过程完毕。

2.如何配置S3C2410A的中断。

答:

首先需要设置异常中断——即CPU处于不正常工作状态时产生中断时所需的处理代码;其次设置中断模式为IRQ中断(一般程序处理方式);再次需要将所有中断源屏蔽。

3.退出中断时要注意什么?

为什么?

答:

在程序退出中断时一定要注意用软件方式将相关的中断标志清除,否则CPU仍旧认为中断处理程序没有执行完毕,这样就阻断了其他中断申请或其他程序的正常执行。

4.中断程序的架构是什么?

6.5练习

1.锁相环的功能是什么?

它的基本组成是什么?

答:

锁相环是一个闭环的自动控制系统,它能够保证输出信号的相位和输入信号的相位同步,此时称为锁相环为锁定状态。

一旦这两个信号相位发生失步,那么在锁相环能调整的范围内,它会自动调整重新让输出信号的相位与输入信号同步。

2.S3C2410A的时钟和电源管理模块是由哪几部分组成的?

它们的主要功能都是什么?

答:

S3C2410A的时钟和电源管理模块由三部分组成,分别是时钟控制模块、USB控制模块和电源控制模块。

时钟控制模块:

时钟控制逻辑决定了系统所使用的时钟源究竟是来自锁相环产生的时钟还是来自外部时钟源的时钟。

USB控制模块:

产生S3C2410A中的USB主机接口和USB设备接口工作时需要48MHz时钟。

电源控制模块:

电源管理模块靠软件驱动来控制S3C2410A的系统时钟,目的是降低整体的功耗。

3.S3C2410A的电源模式有几种?

它们都有什么特点?

答:

S3C2410A有四种电源模式,分别是NORMAL(正常模式)、IDLE(空闲模式)、SLOW(慢速模式)和POWER_OFF(掉电模式)。

这四种电源模式之间是不可以随意进行转换的。

在NORMAL模式下,所有的外设和包括电源管理模块在内的基础模块、CPU核、总线控制器、存储器控制器、中断控制器和DMA都是正常工作的。

除基础模块外,每个外设的时钟都可以在软件的控制下被关闭以降低系统功耗。

在IDLE模式下,连接CPU核的时钟被禁止。

只要触发外部中断、RTC告警中断或其他类型中断就可以退出IDLE模式。

在SLOW模式下,系统时钟由外部时钟设备供给而不采用内部锁相环生成的时钟,这样系统的功耗完全取决于外部供给的时钟频率。

SLOW模式下,FCLK是由外部晶体时钟源或外部时钟电路产生的时钟信号分频而来。

该模块的功能是断开内部电源。

当内部电源断开时,除去唤醒逻辑电路外,CPU和内部逻辑电路均无功耗。

4.如何对S3C2410A的时钟和电源进行配置。

答:

时钟配置部分的程序包括三个函数,分别是ChangeMPllValue、ChangeUPllValue和ChangeClockDivider。

这三个函数的功能分别是对锁相环MPLL进行配置使其输出相应的时钟信号、对锁相环UPLL进行配置使其输出USB所用的48MHz信号和对FCLK、HCLK和PCLK的比例进行配置。

靠控制系统时钟状态来切换电源管理的状态。

7.4练习

1.简述S3C2410A的PWM定时器。

答:

S3C2410A有5个16位定时器,分别是定时器0、1、2、3和4。

这5个定时器中定时器0、1、2和3有脉宽调制功能(PWM)。

定时器4没有输出管脚,是一个内部定时器。

定时器0带有死区发生器功能,这个功能是用来驱动大电流设备时使用的。

定时器中减计数器长度是16bit的,由定时器时钟来驱动。

当减计数器值达到0值时,定时器会向CPU申请中断,告知CPU计时结束。

当定时计数器达到0值时,TCNTBn的值会自动在下一个定时操作时装载到减计数器当中。

然而,如果在定时器运行期间清除了TCONn寄存器中的定时器使能位而使定时器停止工作,那么TCNTBn的值就不会装载到计数器当中了。

寄存器TCMPBn是用来产生PWM信号的。

当减计数器的值与比较寄存器的值相等时,定时器控制逻辑会改变输出电平。

因此,比较寄存器的值决定了PWM信号高电平和低电平时间的长短。

定时器0、1、2、3和4由寄存器TCNTBn、TCNTn、TCMPBn和TCMPn来控制。

TCNTn和TCMPn是内部寄存器,TCNTn的值可由寄存器TCNTOn中读取得到。

当定时器计数器到达0值时,TCNTBn和TCMPBn的值被装载到内部寄存器TCNTn和TCMPn中。

当TCNTn的值为0时,定时器将发出中断请求。

2.简述定时器的控制步骤。

答:

当定时计数器的值为0时进行自动重装载操作。

所以,TCNTn的初始值应由用户在初始时给予定义。

在这种情况下,新的计数值由手动更新比特位来进行装载。

以下为开始一个定时器操作的具体步骤:

1)为寄存器TCNTBn和TCMPBn写初始值。

2)为相应的定时器设置手动更新位。

无论使不使用反转控制位,建议用户要对这一位进行设置。

3)置位定时器开始位并清零手动更新位启动定时器。

3.简述如何产生PWM信号。

答:

PWM功能可由TCMPBn寄存器来实现。

PWM的频率由TCNTBn的值来确定。

想获得高频的PWM信号,必须减小TCMPBn的值。

要想获得低频的PWM信号,必须增加TCMPBn的值。

如果要使输出信号反转,那么增大或减小TCMPBn的值也要反转过来。

双缓冲功能可以使TCMPBn在下一个PWM周期中由中断或其他进程在当前PWM周期中的任意点写入比较值。

4.简述定时器的配置过程。

答:

首先进行定时器初始化工作,确定功能(定时/计数)。

然后确定定时初值,配置中断或DMA。

最后启动定时器。

8.4练习

1.简述UART收发数据的过程。

答:

采用FIFO作为数据缓冲的Rx操作:

1)选择接收模式(中断或DMA)。

2)在UFSTATn寄存器中,检查RxFIFO计数器的值。

如果该值小于15,用户必须将UMCONn[0]设置为“1”(激活nRTS);如果这个值大于或等于15,用户就要将UMCONn[0]设置为“0”(禁止nRTS)。

3)重复步骤2)。

采用FIFO作为数据缓冲的Tx操作:

1)选择发送模式(中断或DMA)。

2)检查UMSTATn[0]的值,如果这个值为“1”(nCTS已经被激活),那么用户就要写数据到TxFIFO寄存器,准备发送数据。

2.简述流控的作用。

答:

在数据通信过程中由于很多时候收发的速度不一致,发送过程往往是随机的,数据量也是随机的,所以为了保证接收到的数据不会发生冲突,必须在收发双方加入发送和接受控制,这就是流控的作用。

3.如何计算波特率。

答:

波特率发生器为收发操作提供时钟驱动。

波特率发生器的时钟源可以是S3C2410A中的系统时钟或UEXTCLK。

由UCONn寄存器来设置时钟源选择。

波特率发生器的时钟计算是由寄存器UBRDIVn来确定的,计算公式为:

UBRDIVn的值在1~216-1之间,(int)为下取整

为了对UART进行更为精确地操作,S3C2410A还支持采用外部UEXTCLK时钟源来代替芯片的系统时钟源。

如果S3C2410A采用了UEXTCLK(UEXTCLK由外部UART设备或系统提供),则UART的串行时钟将和UEXTCLK同步。

这样用户可以更为精准对进行UART操作。

此时寄存器UBRDIVn的值为:

UBRDIVn的值在1~216-1之间且UEXTCLK的频率要小于PCLK的频率

9.4练习

1.如何用HD7279A控制键盘和LED显示?

答:

根据上述电路控制HD7279A来实现键盘和LED的控制。

2.在实验系统上如何实现I/O扩展?

答:

扩展I/O有很多中方式,本实验系统通过一片CPLD来实现扩展。

采用CPLD的好处是可以灵活配置扩展的I/O口,可以根据不同需求改变扩展方式。

但是采用CPLD需要用到VHDL或VerilogHDL等硬件描述语言,对于初学者而言相对困难。

10.3练习

1.利用LCD控制器的API函数在LCD上绘制一幅奥运会五环旗。

答:

略。

2.试利用API函数绘制一颗五角星,五角星位于LCD屏的正中央且左右对称。

答:

略。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1