2016 下半年嵌入式系统设计师考试真题及答案-下午卷
第 1 题
阅读以下说明,回答问题 1 至问题 3。
【说明】
某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境
空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等
功能,并能通过移动客户端对其进行远程控制。
图 1-1 为该系统电气部分连接图,除微处理器外,还包括了片上 32KJBFLASH,以及 SRAM 和
EEPROM。
问题:1.1 该系统的 SRAM 的地址线宽度为 11,数据线宽度为 8,其容量为多少字节?
问题:1.2 该系统分别设计了 iOS 和 Android 两种不同操作系统下的客户端程序,二者在
开发上都使用 MVC(模型(M)—视图(V)—控制器(C))设计模式。在典型的程序设计
中,用户可以直接和视图进行交互,通过对事件的操作,可以触发视图的各种事件,再通过
控制器,以达到更新模型或数据的目的。请完善图 1-2 所示的流程模型。
问题:1.3 该系统采用数字式激光传感器检测 PM2.5、PM10,并通过异步串行接口将数据
上报给处理器,通信波特率为 9600bps,上报周期为 1.5 秒,数据帧内容包括:报文头、指
令号、数据(6 字节)、校验和及报文尾,具体字段描述如表 1-1 所示。
王工根据数据报文通信协议,使用 C 语言编写了对应的数据接收和校验程序,请根据注释要
求补全程序。
程序段如下:
答案解析:
211×8=2048B=2KB
本题考查嵌入式系统设计的基本概念和代码阅读与编写的能力。
此类题目要求考生认真阅读题目所述嵌入式系统的结构,了解设计过程,根据要求仔细阅读
并理解代码,根据代码上下文填入所缺内容。
该微处理器系统拥有一块 11 条地址线、8 条数据线的 SRAM,要求计算其容量。此题考查嵌
入式系统微处理器体系结构的基本概念。题目说明有 8 根数据线,表示访问数据一次可以访
问 8 个 bit(―个字节),即一个单元放一个字节。有 11 根地址线,表示编址为 0〜211-1。
因此存储的容量大小为:8*211bit=2048B=2KB。
答案解析:
(1)控制器 (2)视图 (3)模型
此题考查嵌入式系统软件设计的基本概念和流程。客户端软件开发使用框架形式,采用模型
(M)—视图(V)—控制器(C)设计模式。MVC 模式使应用程序的输入、处理和输出分开。
使用 MVC 应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自
处理自己的任务。
视图是用户看到并与之交互的界面。对老式的 Web 应用程序来说,视图就是由 HTML 元素组
成的界面,在新式的 Web 应用程序中,HTML 依旧在视图中扮演着重要的角色,但一些新的
技 术 已 层 出 不 穷 , 它 们 包 括 AdobeFlash 和 XHTML , XML/XSL , WML 等 一 些 标 识 语 言 和
Webservices。如何处理应用程序的界面变得越来越有挑战性。MVC 的好处是它能为你的应
用程序处理很多不同的视图。
模型表示企业数据和业务规则。在 MVC 的三个部件中,模型拥有最多的处理任务。例如它可
能用像 EJBs 和 ColdFusionComponents 这样的构件对象来处理数据库。被模型返回的数据是
中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模
型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击 Web 页面中的超链
接和发送 HTML 表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定
调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
完整的流程模型如下图所述:
答案解析:
(1)0xAA
(2)0xC0
(3)mPkt[i+2]
(4)mPkt[8]
(5)(uintl 6_t)mPkt[2]|(uintl 6_t)(mPkt[3]<<8)或其等价形式
(6)(uintl 6_t)mPkt[4]|(uintl6 _t)(mPkt[5]<<8)或其等价形式
此题考查嵌入式系统底层代码的阅读与理解及编写的能力,结合题目给出的代码分析如下:
首先定义数据类型,为了在不同平台之间更方便的移植,嵌入式系统代码编写时经常对数据
类型进行重新定义。题目代码中明确说明了此类定义后,考生在答题时应尽量使用定义后的
数据类型声明。
通过上述分析,容易得出各问题答案如下:
(1)判断是否为数据帧的帧头,查题干数据可知帧头标识为 0xAA;
(2)判断是否为数据帧的指令号,查题干数据可知指令号为 0xC0;
(3)进行 CRC 计算,根据代码上下文可知为为第 2〜7 字节数据 mPkt[i+2];
(4)进行 CRC 校验,查题干数据可知 CRC 校验位为 mPkt[8];
(5)考查位操作,根据题干数据可知为数据 2 左移 8 位加上数据 1(uintl 6_t)mPkt[2]|(uintl
6_t)(mPkt[3]<<8)或者(uintl 6_t)((mPkt[3]<<8)|mPkt[2]);
(6)考查位操作,根据题千数据可知为数据 4 左移 8 位加上数据 3(uintl 6_t)mPkt[4]|(uintl
6_t)(mPkt[5]<<8)或者(uintl 6_t)((mPkt[5]<<8)|mPkt[4])。
第 2 题
阅读以下说明,回答问题 1 至问题 4。
【说明】
王工在采用某 16 位嵌入式 CPU 进行 A/D 采集硬件电路设计时,利用 8255 控制器 C 口中的
PC0 输出控制信号,利用 PC7 读入 AD574 的状态信号,利用 A 口和 B 口读入 AD574 转换好的
12 位数据。图 2-1 为该 A/D 采集硬件系统设计的部分连接示意图。
其中,AD574 各个管脚功能定义如表 2-1 所述。
AD574 的控制功能状态表如表 2-2 所示。
8255 控制器各个管脚及地址控制描述如表 2-3 所示。
问题:2.1 在该嵌入式系统设计中,AD574 是工作在 12 位转换模式还是 8 位转换模式?
问题:2.2 图 2-1 中 245 为双向缓冲器,在该硬件设计中配置 8255 控制字时,CPU 需要
向 245 进行数据输出(245 的 A 口传输给 B 口);在获取 AD 采集数据时 CPU 需要接收 245
所传输过来的数据(245 的 B 口传输给 A 口)。根据硬件设计,描述 DR 分别为高、低电平
时,245 双向缓冲器在 A、B 口之间进行数据传输的方向。
问题:2.3 在该 A/D 变换中,如果用 1/2LSB(最低有效位)来表示量化误差,当该 A/D
控制器的量程范围为 5V 时,其量化误差是多大?
问题:2.4 王工根据上述硬件设计,编写对应的数据采集程序,首先需要对 8255 进行初
始化,然后进行数据采集,请根据注释要求补全如下 X86 汇编程序。