[计算机类试卷]2016年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc
《[计算机类试卷]2016年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2016年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析.doc(24页珍藏版)》请在麦多课文档分享上搜索。
1、2016年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析 一、试题一 0 阅读以下说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内。【说明】 某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数 (包含温湿度、可燃气体、细颗粒物等 ),空气净化、加湿、除湿、加热和杀菌等功能,并能通过移动客户端对其进行远程控制。 图 1-1为该系统电气部分连接图,除微处理器外,还包括了片上 32KB FLASH,以及 SRAM和EEPROM。1 该 系统的 SRAM的地址线宽度为 11,数据线宽度为 8,其容量为多少字节 ? 2 该
2、系统分别设计了 iOS和 Android两种不同操作系统下的客户端程序,二者在开发上都使用 MVC(模型 (M)一视图 (V)一控制器 (C)设计模式。在典型的程序设计中,用户可以直接和视图进行交互,通过对事件的操作,可以触发视图的各种事件,再通过控制器,以达到更新模型或数据的目的。请完善图 1-2所示的流程模型。 3 该系统采用数字式激光传感器检测 PM2 5、 PM10,并通过异步串行接口将数据上报给处理器,通信波特率为 9600bps,上 报周期为 1 5秒,数据帧内容包括:报文头、指令号、数据 (6字节 )、校验和及报文尾,具体字段描述如表 1-1所示。王工根据数据报文通信协议,使用
3、C语言编写了对应的数据接收和校验程序,请根据注释要求补全程序。 程序段如下: #define uintl 6_t unsigned short #define uint8_t unsigned char uintl6_t Pm25; uintl6_t Pm10; void ProcessSerialData() uint8 t mData=0; uint8 t i=0; uint8 t mPkt10=0); uint8 t mCheck=0; while(Serial available()0) mData=Serial read(); delay(2); 延迟 2毫秒 if(mData= (
4、1) ) 等待直到有效数据包接收到 mPkt0=mData; mData=Serial read(); if(mData= (2) ) mPkt1=mData; mCheck=0; for(i=0; i 二、试题二 3 阅读以下说明,回答问题 1至问题 4,将解答填入答题纸的对应栏内。【说明】 王工在采用某 16位嵌入式 CPU进行 AiD采集硬件电路设计时,利用 8255控制器C口中的 PC0输出控制信号,利用 PC7读入 AD574的状态信号,利用 A口和 B口读入 AD574转换好的 12位数据。图 2-1为该 A D采集硬件系统设计的部分连接示意图。 其中, AD574各个管脚功能定义
5、如表 2-1所述。AD574的控制功能状态表如表 2-2所示。8255控制器各个管脚及地址控制描述如表 2-3所示。4 在该嵌入式系统设计中, AD574是工作在 12位转换模式还是 8位转换模式 ? 5 图 2 1中 245为双向缓冲器,在该硬件设计中配置 8255控制字时, CPU需要向245进行数据输出 (245的 A口传输给 B口 );在获取 AID采集数据时 CPU需要接收245所传输过来的数据 (245的 B口传输给 A口 )。根据硬件设计,描述 DR分别为高、低电平时, 245双向缓冲器在 A、 B口之间进行数据传输的方向。 6 在该 A D变换中,如果用 I 2 LSB(最低有
6、效位 )来表示量化误差,当该 AID控制器的量程范围为 5V时,其量化误差是多大 ? 7 王工根据上述硬件设计,编写对应的数据采集程序, 首先需要对 8255进行初始化,然后进行数据采集,请根据注释要求补全如下 X86汇编程序。 初始化 8255程序如下: INIT8255: MOV DPTR, (1) ;进行 8255的工作模式配置 MOV A, 10011010B MOVX DPRT, A MOV A, 0000000IB MOVXDPRT, A 数据采集程序如下: ORG 0200H ACQU NOP MOV DPTR, (2) ;通过 8255的 C口进行 AD574的 MOV A,
7、(3) ;转换控制 MOVX QDPRT, A MOV A, (4) MOVX DPRT, A WAIT: MOVX A, DPTR ANL A, (5) :通过与操作判断 AD转换是否完毕 JNZ WAIT MOV DPTR, (6) ;读取 8255 A口的 AD转换数 据 MOVX A, DPTR MOV R2, A ;有效数据存放在 R2寄存器中 MOV DPTR, (7) ;读取 8255 B口的 AD转换数据 MUVX A, DPTR ANL A, (8) ;提取 A寄存器中有效的低 4位数据 MOV R3, A ; 4位有效数据存放在 R3寄存器中 RET 三、试题三 7 阅读以
8、下说明,回答问题 1至问题 3,将解答填入答题纸的对应栏内 。 【说明】 某嵌入式控制软件中,通过采集传感器数值来计算输出控制率,同时为提高数据采集的可靠性,对采集数值使用三余度采集方法进行三个通道的数据采集。 1三余度数据采集及处理要求: (1)如果某通道采集值在 -3 0, 3 0v正常范围内,且与任一相邻通道间差值不大于 0 5v,则该通道数据满足要求; (2)如果某通道采集值超过 -3 0, 3 0v正常范围,或者此通道采集值与其他两个通道的差值均大于 0 5v,则该通道数据不满足要求; (3)如果三通道值均满足要求,则取三通道中差值较小的两通道数据平均值; (4)如果三通道值均满足要
9、求,且相邻两数值的差值相等,则取三个采集值的中间值; (5)如果仅有一个通道数据不满足采集要求,取满足要求的两个通道数据平均值; (6)如果大于一个通道数据不满足采集要求,取安全值 0v。 2对计算输出控制率的具体处理算法如下: (1)如果依据采集数据计算的控制率 C1与目前实际控制率 C0差值不大于 0 01,则使用本周期计算控制率 C1进行输出控制,否则使用目前实际控制率 C0输出控制,连续超过范围计数加 1,不上报传感器故障; (2)如果连续 3个周期计算的控制率 C1与目前实际控制率 C0差 值大于 0 01,则上报传感器三级故障,连续超过范围计数清零,使用目前实际控制率 C0输出控制
10、;如果已经连续 3个周期控制率差值超过范围,并已上报三级故障,但第 4个周期计算的控制率 C1与目前实际控制率 C0差值不大于0 01,则清除三级故障上报,并使用 C1进行输出控制; (3)如果累计大于等于 10个周期计算的控制率 C1与目前实际控制率 C0差值大于 0 01,则上报传感器二级故障,使用目前实际控制率 C0输出控制; (4)如果累计大于等于 100个周期计算的控制率 C1与目前实际控制率 C0差值大于 0 01,则上报传感器一级故 障,清除二级故障,并切断输出控制 (输出安全值 0); (5)如果低级故障和高级故障同时发生,则按高级故障上报和处理。 8 为了测试采集算法,在不考
11、虑测量误差的情况下,根据所设计测试用例的输入填写表 3-1中的 (1) (6)空,预期输出结果精度为小数点后保留两位数字。9 白盒测试方法和黑盒测试方法是目前嵌入式软件测试常用的方法,请简述白盒测试方法与黑盒测试方法的概念。同时依据本题说明,指明问题 1中设计的测试用例使用了白盒测试方法还是黑盒测试方法。 10 为了测试控制率计算算法,在不考虑测量误差的情况下 ,请完善所设计的测试用例,填写表 3-2中的空 (1) (6)。四、试题四 10 阅读下列说明,回答问题 1至问题 3,将答案填入答题纸的对应栏内。【说明】 某公司承接了一个数据处理模块的项目,由沈工负责模块的方案设计,沈工的设计方案如
12、图 4-1所示。该数据处理模块以 PowerPC处理器为核心,设计了存储器、以太网、温度传感器、调试接口等功能电路。 处理器外接 FLASH存储器用于存储上电初始化程序和应用程序。处理器通过 12C接口连接测温电路,监控模块的工作温度。以太网、串口、调试离散量等用于软件调试和状态显示 。 测温电路选用ADT7461AR芯片,用于测试模块温度。 ADT7461AR是一个双通道数字温度计,工作电压 3v至 5v,具有低超温报警功能,采用 IzC接口实现主机对远程本地温度数据的采集,采集数据存储在高低两个数据寄存器中,每个寄存器为 16位,高寄存器表示整数值,低寄存器表示小数值。存储模块采用某公司的
13、 FLASH存储芯片。支持编程、擦除、复位等操作命令。该 FLASH芯片的常用命令序列如表 4-1所示。表中的地址和数据皆为 16进制数。11 ADT7461AR芯片支持两种测温模式,其中第一种模式为 二进制模式,用 0表示0度,测温范围为 0 +127 ;第二种模式为偏移二进制模式,用 64表示 0度,测温范围为一 55 +150 ,温度数据转换关系如表 4-2所示。 请在 (1) (4)处写出对应温度的二进制数。12 沈工用 C语言实现对 FLASH的操作,需按照表 4-1中定义的命令序列顺序执行即可。仔细阅读下列代码,请在 (1) (4)处将对应的 C语言代码补全。 *定义宏 FLASH
14、_BASE_ADDRESS为 FLASH芯片的基地址 *: #define FLASH_BASE_ADDRESS XXXXXXXX(此处代码略 ) *定义向 FLASH空间写一个命令的宏 * #de fine FLASH_WRITE_BYTE(addr, data)XXXXXXXX(此处代码略 ) *Reset Flash* Void ResetFlash(VOid) FLASH_WRITE_BYTE(FLASH_BASE_ADDRESS, 0xF0); return; *对 FLASH的擦除是按扇区进行的, SectorErase函数每次可擦除一个扇 区。假设某扇区的偏移地址为 offset
15、_addr,下面 SectorErase函数体为擦除该扇区的命令序列 * void SectorErase(int offset_addr) FLASH_WRITE_BYTE(FLASH_BASE_ADDRESS+0x555, 0xAA); FLASH_WRITE_BYTE(FLASH_BASE_ADDRESS+(1), 0x55); FLASH_WRITE_BYTE(FLASH_BASE_ADDRESS+0x555, (2); FLASH_WRITE_BYTE(FLASH_BASE_ADDRESS+0x555, 0xAA); FLASH_WRITE_BYTE(FLASH_BASE_ADDRE
16、SS+0x2AA, 0x55); FLASH_WRITE_BYTE(FLASH_BASE_ADDRESS+(3), (4); return; 13 该嵌入式系统对处理的性能要求较高,沈工在完成软件设计后,需要对每一个函数的执行性能进行测试,检测其是否满足系统设计的要求。沈工通过 PowerPC处理器内部的 高精度时钟寄存器 (TimeBase)进行计时,该寄存器由高低两个 32位的寄存器组成,根据总线频率自动递增,当低 32位寄存器递增到 0xFFFFFFFF时,向高 32位寄存器进位。计数值可以换算成时间值,精确到微秒级。 在功能函数 functionlO的执行体前后,进行时间统计,最后计算
17、出该函数的执行时间值,请在 (1) (2)处将对应的 C语言代码补全。 S truct timeBase uns igned int upper; unsigned int lower; ; Void function1(Void) struct timeBase tb0, tb1, tb2; long Value; *获取 TimeBase寄存器中的计数值 * TimeBaseGet( tb0 upper, tb0 lower); /* 函数执行体 */ *再次获取 TimeBase寄存器中的计数值 * TimeBaseGet( tb1 upper, tbl lower); tb2 uppe
18、r=tb1 uppertb0 upper; *当低 32位计数值未反转,则直接进行计算,否则需借用高位进行计算 * if ( tb1 lower = tb0 lower ) tb2 lower=(1); else tb2 upper一 =1; tb2 lower=(2); *根据总线频率,将时钟节拍转换为时间值 * value=CountToUs (tb2); printf(” s cost time dus n”, _function_, Value); 五、试题五 13 阅读以下说明和 C程序代码,回答问题 1至问题 3,将答案填入答题纸的对应栏内。【说明】 【程序 1】是关于条件编译的一
19、段程序示例; 【程序 2】是一段switch语句应用示例。 C语言要求 switch之后圆括弧内的 “表达式 ” 类型必须是整型或字符型。该程序代码中 a与 x的对应关系如表 5-1所示。【程序 3】是冒泡排序算法的实现。假设有 N个数据存放在数组 aa中,用冒泡排序将这 N个数从小到大排序。 首先,在 aa0到 aaN-1的范围内,依次比较两个相邻元素的值,若 aajaaj+1,则交换 aaj与 aaj+1, j的值取 0, 1, 2, , N一 2;经过这样一趟冒泡,就把这 N个数中最大的数放到 aaN1中。接下来对 aa0到aaN一 2中的数再进行一趟冒泡,这样就将该范围内的最大值换到
20、aaN-2中。依次进行下去,最多只要进行 N-1趟冒泡,就可完成排序。如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理。【 C程序代码 l】 #include #define_DEF_X main() int x; #ifndef_DEF_X x=1; #else x=2; #endif printf(”x= d n”, x); 【 C程序代码 2】 float a; int x; Scanf(” d”, a);switch( (int)a) case 0: case 1: case 2: if(a2)X=1; else (1) ; break; case 3: (2)
21、; break; case 4: (3); break; default: prinf(”a is error r n”); 【 C程序代码 3】 #include #define N 8 main() int I, j, aaN, temp, swap; clrscr(); for(i=0; iaaj+1) swap=1; temp=aaj; aaj=aaj+1; aaj+1=temp; if( (6) ) break; for(i=0; i 14 (1)什么是 C语言的条件编译 ? (2)请解释 #ifndef的作用。 (3)分析【 C程序代码 1】,写出该段执行 后的输出结果。 15 完
22、成【 C程序代码 2】中的 (1) (3)空,将答案写到答题纸相应的位置。 16 完成【 C程序代码 3】中的 (4) (6)空,将答案写到答题纸相应的位置。 2016年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷答案与解析 一、试题一 1 【正确答案】 2118=2048B=2KB 【试题解析】 该微处理器系统拥有一块 11条地址线、 8条数据线的 SRAM,要求计算其容量。此题考查嵌入式系统微处理器体系结构的基本概念。题目说明有 8根数据线,表示访问数据一 次可以访问 8个 bit(一个字节 ),即一个单元放一个字节。有 11根地址线,表示编址为 0 211一 1
23、。 因此存储的容量大小为:8*211bit=2048B=2KB。 2 【正确答案】 (1)控制器 (2)视图 (3)模型 【试题解析】 此题考查嵌入式系统软件设计的基本概念和流程。客户端软件开发使用框架形式,采用模型 (M)一视图 (V)一控制器 (C)设计模式。 MVC模式使应用程序的输入、处理和输出分开。使用 MVC应用程序被分成三个核心部件:模型(M)、视图 (V)、控制器 (C),它们各自处理自己的任 务。 视图是用户看到并与之交互的界面。对老式的 Web应用程序来说,视图就是由 HTML元素组成的界面,在新式的 Web应用程序中, HTML依旧在视图中扮演着重要的角色,但一些新的技术
24、己层出不穷,它们包括 Adobe Flash和 XHTML, XML XSL, WML等一些标识语言和 Web services。如何处理应用程序的界面变得越来越有挑战性。MVC的好处是它能为你的应用程序处理很多不同的视图。 模型表示企业数据和业务规则。在 MVC的三个部件中,模型拥有最多的处理任务。例如它可能用像EJBs和 ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。 控制器接受用户的输入并调用模型和视图去
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2016 年下 半年 软件 水平 考试 中级 嵌入式 系统 设计师 下午 应用技术 试题 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-493318.html