当前位置:首页计算机类软件水平考试中级嵌入式系统设计师->案例分析

案例分析

卷面总分:25分 答题时间:240分钟 试卷题量:25题 练习次数:48次
问答题 (共25题,共25分)
1.

ATM自动取款机系统是一个由终端机、ATM系统、数据库组成的应用系统,具有提取现金、查询账户余额、修改密码及转账等功能。

ATM自动取款机系统用例图如图1所示。

中级嵌入式系统设计师,章节练习,案例分析

ATM自动取款机系统功能组成如图2所示。

中级嵌入式系统设计师,章节练习,案例分析

1、根据ATM自动取款机系统功能和系统用例图,完成图3所示的ATM自动取款机系统的系统状态图,将系统状态图中的(1)~(6)补充完整。

中级嵌入式系统设计师,章节练习,案例分析

2、ATM自动取款机系统取款用例描述用户取款的过程。其事件流如下:

(1)基本流 a.用户输入取款金额; b.系统验证输入金额是否符合输入要求; c.系统验证用户账户余额; d.系统显示用户账户余额; e.用户确认取款金额; f.系统要求点钞机出钞; g.系统更新并保存账户信息。

(2)备选流 a.如果输入金额不符合输入数字格式要求,给出提示,退出; b.如果输入金额超出最大取款金额,给出提示,退出; c.如果用户没有确认,给出提示,退出。

根据上述ATM:自动取款机系统取款用例描述,请完成取款功能的流程图。

3、ATM自动取款机系统是与银行服务器联网的网络系统,由于系统涉及个人和企事业单位的财产安全,要求网络通信安全可靠,因此通信过程要采取消息加解密、身份认证、消息鉴别和访问控制等信息安全措施。

(1)请简要解释下列术语的基本概念。 a.对称密钥 b.公开密钥 c.访问控制 d.消息鉴别

(2)以下几种常见的加密算法哪些属于对称加密算法?哪些属于非对称加密算法?a.DES b.RSA c.AES d.IDEA e.PGP f.DSA g.椭圆曲线DSA

标记 纠错
2.

在嵌入式系统设计中,李工使用某嵌入式处理器和对应的以太网芯进行带有网络功能的单板实现,该电路中还包含DDR、Flash等存储芯片和相应的外围控制芯片。

图1为所选用嵌入式处理器的存储模块存储地址总线变换示意图,

图2为以太网芯片外围设计的相关原理示意图,

图3为用户在该嵌入式单板系统上实现内部嵌入式Web服务器的流程示意图。

在该嵌入式处理器的存储系统设计中,嵌入式处理器内部包含SA[25:0](从高到低)共26根系统地址总线,外部使用22根数据线和外部存储设备进行连接。 嵌入式处理器和以太网芯片之间的交互接口为:MII(Media Independent Interface)接口,包含数据线和控制线。数据线分为收发两个方向:其中RXD[3:0]为并行数据接收线,RXCLK为对应的时钟线;TXD[3:0]为并行数据发送线,TXCLK为对应的时钟线。

MDIO和MDC为控制线,通过其进行以太网芯片的配置。以太网芯片的最大通信频率由其外围的晶振频率和收发数据线的并行数目决定。 在嵌入式系统设计中,嵌入式处理器和以太网芯片之间可以设计为一对多的方式,每个以太网控制器都有一个PHYID,该PHYID依赖于以太网芯片周边的电路设计。在图2的设计中,该以太网芯片的PHYID由图中的PHYID[4:0]五个管脚来定。

对于该以太网芯片而言,PHYID[4:0]在启动时是作为。PHYID选择控制使用,在启动后是作为其他指示功能使用。PHYID的最大值是31(五位),最小是0,由PHYID[4:0]从高位到低位决定,对应管脚为高电平时对应的值为1,低电平时对应的值为0。

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

1、如图1所示,用户可以通过寄存器将存储总线变换方式配置为字节模式(8位模式),半字模式(16位模式)或者字模式(32位模式)中的任何一种,不同模式下,所使用到的地址线不同。 在图2中的,①、②、和③分别对应的地址线连接应该依次是______。 A SA2-SA23, SA1-SA22, SA0-SA21 B SA0-SA21, SA2-SA23, SA1-SA22 C SA1-SA22, SA2-SA23, SA0-SA21 D SA0-SA21, SA1-SA22, SA2-SA23 根据图2的网络部分相关电路设计,可以知道该嵌入式处理器的网络通信中,最大通信频率是______Mbps。 A.10000 B.1000 C.100 D.10 如果该网络芯片工作在100Mbps,那么在图2的设计中,RXCLK的工作频率应该是______Mbps.根据图2的电路和题目说明,在该电路中,以太网芯片的PHYID应该是______。

2、在图3中,为了实现嵌入式Web服务器和对应的请求流程,李工设计了该流程示意图,根据网络通信的过程,从下面选项中选择合适的处理过程,填充图3中的空(1)~(4)。 空(1)~(4)备选答案: A.创建TCP socket套接字 B.关闭socket套接字 C.accept尝试建立TCP连接 D.HTTP服务 E.数据发送处理 F.数据接收处理 G.bind绑定套接字 H.本地其他服务处理 I.listen侦听客户套接字 J.创建UDP socket套接字

中级嵌入式系统设计师,章节练习,案例分析

标记 纠错
3.

某嵌入式刹车控制软件,应用于汽车刹车控制器,该软件需求如下:

1.模式选择:采集模式控制离散量信号In_D1并通过模式识别信号灯显示软件当前工作模式。在信号In_D1为低电平时进入正常工作模式(模式识别信号灯为绿色),为高电平时进入维护模式(模式识别信号灯为红色)。软件在正常工作模式下仅进行刹车控制和记录刹车次数,在维护模式下仅进行中央控制器指令响应;

2.刹车控制:采用定时中断机制,以5ms为周期采集来自驻车器发出的模拟量信号In_A1以及来自刹车踏板发出的模拟量信号In_A2,并向刹车执行组件发送模拟量信号Out_A1进行刹车控制;

3.记录刹车次数:在Out_A1大于4V时,读出非易失存储器NVRAM中保存的刹车次数记录进行加1操作,然后保存至非易失存储器NVRAM中;

4.响应中央控制器指令:接收来自中央控制器的串行口指令字In_S1,回送串行口响应字Out_S1。当接收的指令字错误时,软件直接丢弃该命令字,不进行任何响应。 指令字及响应字说明如表1所示。表1 指令字和响应字

中级嵌入式系统设计师,章节练习,案例分析

1、请简述本软件串行输入接口测试的测试策略及测试内容。针对表1中“读取刹车次数指令”进行鲁棒性测试时应考虑哪些情况?

2、某测试人员设计了表2所示的操作步骤对模式选择功能进行测试(表中END表示用例到此结束)。

中级嵌入式系统设计师,章节练习,案例分析

为进一步提高刹车控制软件的安全性,在需求中增加了设计约束:软件在单次运行过程中,若进入正常工作模式,则不得再进入维护模式。请参照表2的测试用例完成表3,用于测试该设计约束。

中级嵌入式系统设计师,章节练习,案例分析

3、本项目在开发过程中通过测试发现了17个错误,后期独立测试发现了31个软件错误,在实际使用中用户反馈了2个错误。请计算缺陷探测率(DDP)。

标记 纠错
4.

某公司承接了某嵌入式系统的研制任务。该嵌入式系统由数据处理模块、系统管理模块、FC网络交换模块和智能电源模块组成,系统组成如图1所示。数据处理模块处理系统的应用任务;系统管理模块除了处理系统的应用任务外,还负责管理整个嵌入式系统;FC网络交换模块采用消息机制,支持广播和组播,主要负责系统的数据交换;智能电源模块负责给其他模块供电,该模块根据系统命令可以给其他模块供电或停止供电。

中级嵌入式系统设计师,章节练习,案例分析

1、该系统的软件大部分是用C语言编程的,编程人员经常会使用运算符,请按优先级由高到低的次序,重新排序下面的运算符:%, =, image.png=, &&。

2、该系统的开发要求按软件能力成熟度模型CMM 3级开发,请回答下列问题:

(1)CMM 3级包含多少个关键过程域?

(2)请写出CMM 3级的关键过程域。

(3)CMM2级包含多少个关键过程域?

(4)在对该开发软件单位进行CMM 3级达标评级时,只需检查3级的关键过程域还是3级和2级的关键过程域都需要检查?

3、(1)在本系统中,FC网络采用何种拓扑结构?请从如下4项中选择最为合适的。 A.总线 B.树型 C.星形 D.点对点

(2)FC网络除了用于交换的光纤基础架构,还必须有高性能的I/O通道结构支持,I/O通道在FC网络中的优势是什么?

4、智能电源模块首先进行系统初始化,初始化后各设备就可使用,再根据系统初始配置表对嵌入式系统的其他模块供电。智能电源模块通常完成两件事情:

一、周期性地查询本模块温度、各路电流(给各模块供电的)以及电源模块的供电是否异常,如果异常,则进行异常处理,并报系统管理模块,由系统管理模块进行决策;

二、进入中断处理程序,处理系统管理模块的各种命令,如果系统管理模块命令关机下电,则智能电源模块对所有模块(也包括自己)进行下电处理

中级嵌入式系统设计师,章节练习,案例分析

图2是智能电源模块上的管理软件处理流程图,请完成该流程图,给(1)~(5)处填空。

标记 纠错
5.

阅读以下关于C语言编程方面的说明和程序,回答下列问题。

[说明] 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中: 程序1是关于文件操作的一段程序。 程序2是某信息管理系统的系统登录和密码验证程序,规定密码最长为20个字符。首先,打开密码文件sys_code,如果成功,则将文件中的密码信息与用户输入的密码进行比较,若相等,则身份验证通过并进入信息管理系统,否则输出错误信息并退出登录系统。如果打开文件sys_code失败,则由用户输入密码并保存到密码文件sys_code。

[程序1] #include image.pngstdio.h> #include image.pngstdlib.h> Void main15 { FILE *fp; char c, fname [20]; printf("输入文件名:"); Scanf("%S", fname); if((fp=fopen(fname, "r"))==______) { printf("不能打开文件:%sin", fname); exit16; } while (______) /*检测文件是否结束*/ { c=fgetc(fp); if (______) /*检测文件是否出错*/ { printf("文件读错误\n"); break; } putchar(c); } }

[程序2] void password15 { int sign=0; sign=checkcode15; if (______) { printf("\a\n\n\n\n\n\n\n\n\n\t\t密码错误, 请重新登录!"); getch 19; system("cls"); exit20; } system("cls"); printf ("\a\n\n\n\n\n\n\n\n\n\t\t"); printf("欢迎登录信息管理系统!\n"); getch 19; return; } int checkcode 15 { FILE *fp; char ch, syspwd[21]="\0"; char usrpwd[21]="\0"; int i; /*身份验证*/ if((fp=fopen("sys_code", "r"))==NULL) { system("cls"); printf("please set your identify\n"); printf("password(image.png=20): "); for(i=0; iimage.png20; i++){ ch=getchar19; if (ch=='\r' || ch=='\n') break; ______ =ch; } fp=fopen("sys_code", "w"); fputs(syspwd,fp); fclose(fp); return 0; else{ system("cls"); fgets(syspwd,21,fp); fclose(fp); printf("please enter your password:"); for(i=0; iimage.png20; i++){ ch=getehar19; if (ch=='\r' ||ch=='\n') break; usrpwd[i]=ch; } if(strcmp(______)!=0) return 1; } return 0; } }

1、变量存储类型是指数据在内存中存储的方法,即确定所定义的变量在内存中的存储位置,也确定了变量的作用域和生存期,内部变量有3种存储类型。假设有一个内部整型变量aa,请按不同存储类型给出相应的变量声明。

2、王工在编写某嵌入式程序时,用到对文件系统的操作,由于要保证系统的安全性,要求必须使用文件检测函数feof()和ferror(),完成[程序1]中的空。

3、王工根据系统的需求编写了[程序2],请填写其中的空。

标记 纠错
6.

【程序1】是关于条件编译的一段程序示例;

【程序2】是一段switch语句应用示例。C语言要求switch之后圆括弧内的“表达式”类型必须是整型或字符型。该程序代码中a与x的对应关系如表5-1所示。表5-1 a与x对应关系表

中级嵌入式系统设计师,章节练习,案例分析

【程序3】是冒泡排序算法的实现。假设有N个数据存放在数组aa中,用冒泡排序将这N个数从小到大排序。首先,在aa[0]到aa[N..1]的范围内,依次比较两个相邻元素的值,若aa[j]>aa[j+1],则交换aa[j]与aa[j+1],j的值取0,1,2,…,N-2;经过这样一趟冒泡,就把这N个数中最大的数放到aa[N-1]中。接下来对aa[0]到aa[N-2]中的数再进行一趟冒泡,这样就将该范围内的最大值换到aa[N-2]中。依次进行下去,最多只要进行N-1趟冒泡,就可完成排序。如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理。

【C程序代码1】

中级嵌入式系统设计师,章节练习,案例分析

【C程序代码2】

中级嵌入式系统设计师,章节练习,案例分析

【C程序代码3】

中级嵌入式系统设计师,章节练习,案例分析

问题:5.1 (1)什么是c语言的条件编译?(2)请解释#ifndef的作用。(3)分析【C程序代码1】,写出该段执行后的输出结果。

问题:5.2 完成【C程序代码2】中的(1)?(3)空,将答案写到相应的位置。

问题:5.3 完成【C程序代码3】中的(4)?(6)空,将答案写到相应的位置。

标记 纠错
7.

某水电站根据安全监控的需要决定采用嵌入式工控微机进行实时多任务安全监测。该系统有32路模拟量输入、96路开关量、16路脉冲量输入和水位落差量输入,产生显示信息、报警信号、监测报表和水位传感器控制信号等输出。该水电站安全监测系统具有以下几个特点:对各种模拟量、开关量、脉冲量、水位落差量等数据量的监测,事实上只是周期性地重复执行相应的各个任务模块。

监视的对象比较固定,系统硬件的规模相对固定不变。尽可能允许把所有软件都固化在EPROM中。人机交互作用的内容固定,即由操作人员通过键盘去调用此系统中所存入的相应应用程序,不会去修改应用程序。基于以上安全监测系统的特点,该水电站技术研发部门准备选用现有的工业控制机系统及现成的各种模板等硬件,由本部门的开发人员自行开发软件。

所开发的软件主要包括:应用程序,即按各类输入/输出量的采集、处理、显示、报警和制表等功能分别作为若干任务块,由这些任务组成应用程序。多任务嵌入式实时操作系统,用来协调各任务的资源分配与管理,管理任务之间的联系与多任务操作。

[问题1]根据以上安全监测系统的特点,技术研发人员郭工程师提出了一个自行编制简化“多任务嵌入式实时操作系统”的方案,以适应于协调管理硬件资源和监测对象的实际需求,其中只保留了标准的多任务实时操作系统的核心功能,例如CPU管理、中断管理和外设管理等。请在200字以内简要说明郭工程师提出的简化的“多任务嵌入式实时操作系统”可能具有哪些优点。

[问题2]设计简化的多任务嵌入式实时操作系统时,由于多个任务均可能要求占用CPU这个关键资源,因此CPU的任务管理是一个非常重要的设计内容。在该嵌入式实时操作系统中,作为占用资源的基本单位,任务总共有五个状态,分别是休眠状态、就绪状态、运行状态、等待状态和延时等待状态。在任何时候,一个任务只会处于其中的某一个状态。请根据图6-8中已给出的信息将(1)~(5)空缺处填写完整。

中级嵌入式系统设计师,章节练习,案例分析

[问题3]在该水电站安全监测系统中,数据采集任务(Collect_task)把所采集的数据送入一单缓冲区,计算任务(Calculate_task)从该单缓冲区中取出数据进行计算。以下是利用信号量机制实现两个任务共享单缓冲区的C语言形式化描述程序。请将程序代码中(6)~(9)空缺处以及(10)空缺处的内容填写完整。int sr=0'int (6) :main(){cobeginCollect_task();Calculate_task();coend}Collect_task(){ While(采集工作未完成){ 采集一个数据, P(se), 将数据送入缓冲区中: (7) ,}}Calculate_task(){While(计算工作未完成){(8) ,从缓冲区中取出数据:(9)进行数据计算送入缓冲区中,}}如果以上程序中“int sf=0;”语句不小心被改写成“ints{=-1;”,那么系统运行时将会进入(10)状态。

标记 纠错
8.

使用在汽车、飞机中的嵌入式软件,由于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。

以下是一段C语言代码,请仔细阅读,并回答相关问题:int logicTest(int x, int y){int magic=0;if(x>0 && y>0) {magic=x+y+10;}else{magic=x+y-10;}if(magic image.png 0){magic=0;}return magic;}

问题1:请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。

问题2:画出以上代码的流程图。

问题3:请根据[说明]中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取值范围

标记 纠错
9.

在开发某嵌入式系统时,设计人员根据系统要求,分别编写了相关程序,其中:

[程序1] 是李工编写的一个数据交换子程序。

[程序2] 是赵工编写的一段利用递归方法判别链表表示的两个数据结构是否相等的程序,若相等则返回值为1,否则返回为0。判别的准则是若两个链表的首指针相等,则相等;否则进行内部元素比较,元素中的itemid表示后面联合体un的有效性,itemid为0时,联合体un里面的data项有效,否则联合体un中的link项有效。

[程序1]#includeimage.pngstdio.h>swap(int x,int y) {int t;t=x;x=y;y=t;}main17 {int a, b;a=3;b=4;swap (a,b);printf("%d, %d\n", a, b);}

[程序2]typedef struct Item {int itemid;union {char data;struct Item *link;} un;struct Item *nextItem;} ItemNode;int EqualItem(ItemNode *x, ItemNode *y) {int res;if x==y) return 1;if (12) {if (13) {if (x->itemid==0) {res=14;}else {res=15}if (res) {return 16}}}return 0;}

问题1:执行[程序1]后,打印出来的a=3,b=4;并没有完成数据交换,请指出李工的问题?并改正程序错误。

问题2:仔细阅读并分析[程序2]中的C语言代码,完成其中(1)~(5)空白填空。

问题3:李工编写某嵌入式软件时,遇到了一些问题,请帮助李工解答下面2个问题。

(1)李工在编译时,程序没有通过编译,经检查程序后将文件头的#include image.pngfilename.h>改为#include "filename.h"后编译通过,请问#includeimage.pngfilename.h>和#include "filename.h"的区别是什么?

(2)李工在编写一段c++程序时,需要调用一段已编译的C语言函数,为什么要加extern "C"?

标记 纠错
10.

某公司承接了一个控制系统的项目,由王工负责系统的方案设计。王工的设计方案如图1所示。该方案是基于VME总线的多机并行处理系统,由主控制模块作为VME总线的主设备,即总线控制器,负责整个系统的控制与管理;3个数据处理模块作为从设备,负责数据处理与计算;1个I/O模块也作为从设备,负责系统与外部接口之间的高速数据通信。同时,为了简化设计,该系统5个模块均采用同一款VME协议芯片,实现内总线和VME总线的连接。

中级嵌入式系统设计师,章节练习,案例分析

该系统中每个模块的相关信息见表1所示。

中级嵌入式系统设计师,章节练习,案例分析

1、王工设计采用共享存储器方式,进行多机之间的通信。VME共享存储器的地址空间映射,分为输出窗口和输入窗口两部分。输出窗口实现处理器本地地址空间到VME总线地址空间的映射,输入窗口实现VME总线地址空间到处理器本地地址空间的映射。 输出窗口空间设置说明:为了每个模块能访问到其他4个模块,在每个模块的处理器本地地址空间中开辟5M空间,映射到VME总线上的5M地址空间。映射关系见表2。

中级嵌入式系统设计师,章节练习,案例分析

输入窗口空间设置说明:每个模块分配1M的VME地址空间,并将这1M空间映射到处理器本地RAM区域中,专门用于VME通信数据缓冲区。映射关系见表3。

中级嵌入式系统设计师,章节练习,案例分析

VME总线驱动中,按照上述方式对寄存器进行设置,实现了VME总线共享存储器工作方式,将对其他模块的操作转化为对处理器本地地址空间访问操作相似的读写操作,并且都采用总线远程写,总线本地读的方式。

数据处理模块1发送消息到数据处理模块2,它们之间采用1M数据缓冲区的第一个32位作为握手标志。则数据处理模块1访问标志区的总线地址为______,数据处理模块2访问标志区的总线地址为______。 I/O模块向主控制模块发送控制命令,它们之间采用1M数据缓冲区偏移0x100处作为命令缓冲区。则I/O模块访问命令区的总线地址为______,主控制模块访问命令区的总线地址为______。

2、如表1所示,该系统中采用的处理器有大端和小端两种工作模式。王工设计VME总线上传输的数据全部采用小端方式,那么当处理器通过VME总线发送数据时,需要根据自己的工作模式,对数据进行必要的转换,以符合协议要求。 当I/O模块向主控制模块发送控制命令0xAABBCCDD,那么它写入V=ME总线的实际数据是______,当主控制模块向数据处理模块3和I/O模块发送控制命令0x12345678,那么它写入VME总线的实际数据是______和______。

3、为了提高数据通信的性能,在进行大数据量通信时,王工设计采用DMA的方式。DMA通信方式能够满足高速VME设备的需求,也有利于发挥CPU效率。该VME协议芯片有两种DMA工作方式:一种是直接方式(Direct mode),一种是链方式(Linked list mode)。

在直接方式下,在每次数据传输前,需要驱动程序对DMA控制寄存器进行设置,然后进行DMA传输,并等待传输完成,或者异常错误。直接方式是一种软件和硬件同步工作方式。在链方式下,驱动程序只需要设置命令包。

在通信过程中,硬件根据命令包的内容完成传输,并根据链中的下一个命令包,继续传输,直到所有命令包完成或者异常错误。链方式是一种软件和硬件异步工作的方式。 图2是DMA直接方式的流程图,请补全流程图。

中级嵌入式系统设计师,章节练习,案例分析

标记 纠错
11.

在某四轴飞行器系统设计中,利用惯性测量单元(IMU)、PID电机控制、2.4G无线遥控通信和高速空心直流电机驱动等技术来实现一个简易的嵌入式四轴飞行器方案。整个系统的设计包括飞控板和遥控板两部分,两者之间采用2.4G无线模块进行数据传输。飞控板采用高速单片机STM32作为处理器,采用含有三轴陀螺仪、三轴加速度计的运动传感器MPU16050作为惯性测量单元,通过2.4G无线模块和遥控板进行通信,最终根据PID控制算法以PWM方式驱动空心电机来控制目标。

中级嵌入式系统设计师,章节练习,案例分析

图1为李工设计的系统总体框图。

飞控板和遥控板的核心处理器都采用STM32 F103。飞控系统的惯性测量单元采用MPU6050测量传感器,MPU6050使用IIC接口,时钟引脚SCL、数据引脚SDA和数据中断引脚分别接到STM32的对应管脚,图2为该部分原理图。遥控板采用STM32单片机进行设计,使用AD对摇杆模拟数据进行采集,采用NRF2401无线模块进行通信,图3为该部分原理图。 李工所设计的系统软件同样包含飞控板和遥控板两部分,飞控板软件的设计主要包括无线数据的接收、自身姿态的实时计算、电机PID增量的计算和PWM的电机驱动。遥控板主控制器软件通过ADC外设对摇杆数据进行采集,把采集到的数据通过2.4G无线通信模块发送至飞控板。

图4为飞控系统的软件流程示意图。

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

1、由图1系统总体框图设计可知,飞控板和遥控板之间是用2.4G无线通信进行数据传输,各自主处理器和无线通信模块之间是SPI接口。同时,在飞控板上,处理器和惯性测量单元是通过IIC进行数据交互。以下关于SPI接口和IIC接口的描述中,正确的是:______ 、______、______、______。 A.SPI和IIC都是主从式通信方式 B.SPI的数据收发线是各自独立的,IIC也是同样 C.SPI和IIC的传输都不需要片选控制 D.IIC总线是一个多主机的总线,可以连接多于一个能控制总线的器件到总线 E.IIC总线包括标准模式,快速模式和高速模式,相互之间的传输速度差异并不大 F.在原理设计中,到底采用SPI和IIC哪种方式,需要依据外设芯片的接口而定 G.SPI是一种环形总线结构 H.在IIC总线上,可以有多个从设备具有相同的IIC地址

2、(1)图2飞控板部分原理图中,R4的作用是什么?

(2)图3遥控板部分原理图中,C11、C12、C13、C14的作用是什么?

3、在STM32处理器的PWM使用过程中,最为关键的就是PWM的频率和占空比。PWM的频率依赖于PWM模块的参考时钟频率,自动装载寄存器ARR的值加1之后再乘以参考时钟频率即可得到PWM的频率。PWM的占空比是用捕获比较寄存器CCR和自动装载寄存器ARR获得的,PWM占空比=CCR/(ARR+1)。 假设当前主控板的STM32处理器PWM模块的参考时钟频率为1kHz,要将PWM模块的频率设置为100kHz,则ARR寄存器的值应设置为多少?如果此时占空比希望设置为20%,那么CCR寄存器的值应该设置为多少?

4、5毫秒进行一次定时器的触发,每次中断都会检查一次无线模块数据的接收,以确保飞控系统控制信息的实时性。每2次中断(即1毫秒)读取一次。MPU16050单元的数据,并进行算法处理。每4次中断(即2毫秒)通过计算当前飞控板系统的姿态,结合遥控端的目标姿态,根据两者的差值通过PID控制算法对各个电机进行调速控制。每200次中断(即100毫秒)采集一次电池电压,然后通过无线模块把电池电压发送给遥控板,以告知操作人员当前电压的大小。 图4为飞控系统软件实现的简要流程图,根据以上描述,请补全图4中的空(1)~(6)处的内容。

标记 纠错
12.

某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等功能,并能通过移动客户端对其进行远程控制。图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语言编写了对应的数据接收和校验程序,请根据注释要求补全程序。程序段如下:

中级嵌入式系统设计师,章节练习,案例分析中级嵌入式系统设计师,章节练习,案例分析中级嵌入式系统设计师,章节练习,案例分析

标记 纠错
13.

王工在采用某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汇编程序。

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

标记 纠错
14.

某嵌入式控制软件中,通过采集传感器数值来计算输出控制率,同时为提高数据采集的可靠性,对采集数值使用三余度采集方法进行三个通道的数据采集。

1.三余度数据采集及处理要求:

(1)如果某通道采集值在[-3.0,3.0]v正常范围内,且与任一相邻通道间差值不大于0.5v,则该通道数据满足要求;

(2)如果某通道釆集值超过[-3.0,3.0]v正常范围,或者此通道采集值与其他两个通道的差值均大无0.5v,则该通道数据不满足要求;

(3)如果三通道值均满足要求,则取三通道中差值较小的两通道数据乎均值;

(4)如果三通道值均满足要求,且相邻两数值的差值相等,则取三个采集值的中间值;

(5)如果仅有一个通道数据不满足釆集要求,取满足要求的两个通道数据平均值;

(6)如果大于一个通道数据不满足采集要求,取安全值0v。

2.对计算输出控制率的具体处理算法如下:

(1)如果依据采集数据计算的控制率C1与目前实际控制率C0差值不大于0.01,则使用本周期计算控制率Cdft行输出控制,否则使用目前实际控制率C0输出控制,连续超过范围计数加1,不上报传感器故障;

(2)如果连续3个周期计算的控制率C1与目前实际控制率C0差值大于0.01,则上报传感器三级故障,连续超过范围计数清零,使用目前实际控制率C0输出控制;如果已经连续3个周期控制率差值超过范围,并已上报三级故障,但第4个周期计算的控制率C1与目前实际控制率C0差值不大于0.01,则清除三级故障上报,并使用C1进行输出控制;

(3)如果累计大于等于10个周期计算的控制率C1与目前实际控制率C0,差值大于0.01,则上报传感器二级故障,使用目前实际控制率C0输出控制;

(4)如果累计大于等于100个周期计算的控制率C1目前实际控制率C0,差值大于0.01,则上报传感器一级故障,清除二级故障,并切断输出控制(输出安全值0);

(5)如果低级故障和高级故障同时发生,则按高级故障上报和处理。

问题:3.1 为了测试采集算法,在不考虑测量误差的情况下,根据所设计测试用例的输入填写表3-1中的(1)?(6)空,预期输出结果精度为小数点后保留两位数字。

中级嵌入式系统设计师,章节练习,案例分析

问题:3.2 白盒测试方法和黑盒测试方法是目前嵌入式软件测试常用的方法。请简述白盒测试方法与黑盒测试方法的概念。同时依据本题说明,指明问题1中设计的测试用例使用了白盒测试方法还是黑盒测试方法。

问题:3.3 为了测试控制率计算算法,在不考虑测量误差的情况下,请完善所设计的测试用例,填写表3-2中的空(1)?(6)。

中级嵌入式系统设计师,章节练习,案例分析

标记 纠错
15.

某公司承接了一个数据处理模块的项目,由沈工负责模块的方案设计,沈工的设计方案如图4-1所示。该数据处理模块以PowerPC处理器为核心,设计了存储器、以太网、温度传感器、调试接口等功能电路。处理器外接FLASH存储器用于存储上电初始化程序和应用程序。

处理器通过I2C接口连接测温电路,监控模块的工作温度。以太网、串口、调试离散量等用于软件调试和状态显示。测温电路选用ADT7461AR芯片,用于测试模块温度。ADT7461AR是一个双通道数字温度计,工作电压3v至5v,具有低/超温报警功能,采用I2C接口实现主机对远程/本地温度数据的采集f采集数据存储在高/低两个数据寄存器中,每个寄存器为16位,高寄存器表示整数值,低寄存器表示小数值。

中级嵌入式系统设计师,章节练习,案例分析

存储模块采用某公司的FLASH存储芯片。

支持编程、擦除、复位等操作命令。该FLASH芯片的常用命令序列如表4-1所示。表中的地址和数据皆为16进制数。

中级嵌入式系统设计师,章节练习,案例分析

问题:4.1 ADT7461AR芯片支持两种测温模式,其中第0种模式为二进制模式,用0表示0度,测温范围为0℃?+127℃;第二种模式为偏移二进制模式,用64表示0度,测温范围为-55℃?+150℃,温度数据转换关系如表4-2所示。请在(1)?(4)处写出对应温度的二进制数。

中级嵌入式系统设计师,章节练习,案例分析

问题:4.2 沈工用C语言实现对FLASH的操作,需按照表4-1中定义的命令序列顺序执行即可。仔细阅读下列代码,请在(1)?(4)处将对应的C语言代码补全。

中级嵌入式系统设计师,章节练习,案例分析

问题:4.3 该嵌入式系统对处理的性能要求较高,沈工在完成软件设计后,需要对每一个函数的执行性能进行测试,检测其是否满足系统设计的要求。沈工通过PowerPC处理器内部的高精度时钟寄存器(TimeBase)进行计时,该寄存器由高低两个32位的寄存器组成,根据总线频率自动递增,当低32位寄存器递增到0xFFFFFFFF时,向高32位寄存器进位。计数值可以换算成时间值,精确到微秒级。在功能函数functkm1()的执行体前后,进行时间统计,最后计算出该函数的执行时间值,请在(1)?(2)处将对应的C语言代码补全。

中级嵌入式系统设计师,章节练习,案例分析

中级嵌入式系统设计师,章节练习,案例分析

标记 纠错
16.

某直升机的显示控制计算机是其座舱显控系统的核心部件,将来自飞行员的参数和控制命令与载机的飞行参数信息进行融合处理后,在显示器上显示。该显示控制计算机由一个显示控制单元和一个输入输出单元组成,它们之间通过双口RAM进行数据交换,如图4-1所示。

中级嵌入式系统设计师,章节练习,案例分析

显示控制单元采用Freescale公司的PowerPC8270高性能、低功耗32位处理器,并设计有系统FLASH存储器、用户FLASH存储器、SDRAM存储器。CPU内部宾成存储器控制器,提供地址译码、数据处理周期访问时序、SDRAM时钟等功能。输入输出单元采用Ti公司的DSP F2812高性能、低功耗16位处理器,采用AF.INC429总线用于接收导航计算机、大气数据计算机等外部设备的数据。

ARINC429解算程序严格遵循ARINC429规范,其通用字格式如表4-1所示,字长32Bit,不用的数据位填“0”。当接收到ARINC429数据后,首先判断状态位,只有在状态和标号正确的情况下,才进一步根据分辨率等进行解算数据的含义。

中级嵌入式系统设计师,章节练习,案例分析

问题:1 系统FLASH存储器的存储容量是8MB,用于存储CPU模块引导程序、BIT测试程序,FLASH在板编程程序,网口操作系统,用户程序。系统FLASH地址分配在存储空间的高端,地址空间为(1)~OxFFFFFFFF。用户FLASH存储器的存储容量是为(2),用于记录数据的存储。FLASH地址分配在存储空间的高端,地址空间为0x78000000?0x7BFFFFFF。SDRAM的存储容量是256MB,用于运行操作系统和应用软件,地址空间位于存储器的低端0x00000000~3)。请完成(1)~(3)填空。

问题:2 根据ARINC429数据的标号(D8-D1)可知该数据为高度表数据。根据系统定义,高度表数据的分辨率为0.1米,即D9为1表示0.1米,D10为1表示0.2米,D11为1表示0.4米,依此类推。若接收数据帧中D28-D9位是0000.0000.0111.1101.0000,则当前的高度是(1)米。若当前的高度是100米,则数据帧中D28-D9位应为(2)。请完成(1)和(2)填空。

问题:3 显示控制单元和输入输出单元通过双口交换信息,两个处理器上的软件采用相同定义的结构体来定义双口单元,方便交换信息。以下是双口结构体定义:typedef struct{char ctrlWord; /*通道工作方式控制字*/char head; /*F1FO 控制头指针*/char tail; /*FIFO 控制尾指针*/short fifo[32] ; /*FIFO 缓冲区*/}SPM_CHAN_RX429; /*ARINC429 接收通道定义*/为了避免由于不同的编译环境对上述数据结构产生不同的编译结果,建议对上述数据结构通过设置紧缩属性(packed属性),强迫编译器采用字节对齐方式,在该模式下,SPM_CHAN_RX429结构体占用(1)字节的存储空间。ARINC429接收通道设计为由一个首尾相连的FIFO数组形成的环形队列。输入输出单元根据头指针向环形队列写入数据,头指针始终指向下一个要写入的位置,并且限制写入数据最多为31个,即队尾与队首之间至少保留一个元素的空间。显示控制单元根据尾指针从环形队列读取数据,尾指针始终指向下一个要读取的位置。初始化环形队列的C语言为:typedef struct{char ctrlWord; /*通道工作方式控制字*/char head; /*F1FO 控制头指针*/char tail; /*FIFO 控制尾指针*/short fifo[32] ; /*FIFO 缓冲区*/}SPM_CHAN_RX429; /*ARINC429 接收通道定义*/SPM_CHAN_RX429 *pBuf;pBuf= (SPM_CHAN_RX429 *) ADDR_3RAM_PPC; /*双口地址的宏定义*/ pBuf->ctrlWord=0;pBuf->head=O; pBuf->tail=O;判断队列为空的C语言为(2)。判断队列为满的C语言为(3)。;请完成(1)~(3)填空。

标记 纠错
17.

在某嵌入式系统设计中,使用8片RAM进行64KRAM的外部存储器扩展,如图所示。该CPU有16根地址线,8根数据线,在设计中,利用CPU的作为访问控制信号,该访问控制信号低电平有效。另外,R/W作为读写命令信号(高电平为读,低电平为写)。8片8Kx8位的RAM芯片与CPU相连,RAM芯片的片选内部为上拉电阻到电源,各个RAM芯片的片选信号和74138译码器的输出相连,译码器的地址选择端连接到CPU的A13,A14,A15地址线上。

中级嵌入式系统设计师,章节练习,案例分析

问题1:根据上图所示,写出RAM0,RAM1和RAM7的地址范围(请用16进制进行表示)。RAM0: (1)RAM1: (2)RAM7: (3)若CPU操作的地址总线为A800H,结合上图所示的示意图,CPU访问的是哪个RAM存储器 ?(4) ?。

问题2:如果运行时发现不论往哪片RAM写入数据后,以C000H为起始地址的存储芯片都有与其相同的数据,假设芯片与译码器可靠工作,则说明:

(1)RAM0~RAM7中______的片选输入端总是处于低电平。

(2)如果有问题的存储芯片的片选输入端总是处于低电平,以下可能原因中描述不正确的是______。A.该存储芯片的CS端与存储芯片的端错连或短路B.该存储芯片的CS端与CPU的端错连或短路C.该存储芯片的CS端与地线错连或短路D.该存储芯片的CS端悬空

问题3:根据连接图,若出现地址线A15与CPU断线,并搭接到高电平上,下面描述中正确的是______。(该题为多选题)A.此时存储器只能寻址A15=1的地址空间B.此时存储器只能寻址总共64KB空间的高32KB地址空间C.此时访问64KB空间的高32KB地址空间时会错误地访问到低32KB地址空间D.此时访问64KB空间的低32KB地址空间时会错误地访问到高32KB地址空间

标记 纠错
18.

某飞行器供油阀控制软件通过控制左右两边的油箱BL、BR向左右发动机EL、ER供油,既要保证飞行器的正常飞行,又要保证飞行器的平衡,该软件主要完成的功能如下:

(1)无故障情况下,控制左油箱Bl向左发动机BL供油,右油箱EL向右发动机BR供油,不上报故障;

(2)当左油箱BL故障时,控制右油箱BR分别向左、右发动机EL和ER供汩,并上报二级故障——左油箱故障;

(3)当右油箱BR故障时,控制左油箱BL分别向左、右发动机EL和ER供汩,并上报二级故障——右油箱故障;

(4)当左发动机EL故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于50升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱BL还是右油箱BR向右发动机Er供油,并上报一级故障——左发动机故障;

(5)当右发动机ER故障时,根据左右油箱的剩油量决定(如果左右油箱剩油量之差大于等于50升,则使用剩油量多的油箱供油,否则同侧优先供油)左油箱BL.还是右油箱BR向左发动机El供油,并上报一级故障——右发动机故障;

(6)当一个油箱和一个发动机同时故障时,则无故障的油箱为无故障发动机供油,并上报一级故障——故障油箱和发动机所处位置;

(7)当两个油箱或两个发动机同时故障或存在更多故障时,则应进行双发断油控制,并上报特级故障——两侧油箱或两侧发动机故障;

(8)故障级别从低到高依次为二级故障、一级故障和特级故障,如果低级故障和高级故障同时发生,则只上报最高级别故障。

问题:1 在嵌入式软件测试中,一般采用的测试方法有白盒测试、黑盒测试和灰盒测试方法,白盒测试方法中需要基于(1)进行测试;根据本题给定的条件,最恰当的测试方法应选择(2)。

问题:2 覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。在实现第6条功能时,设计人员对部分功能采用了下列算法:if((BL==故障)&&(EL==故障)){BR供油ER;BL断油;EL断油;}请指出对上述算法达到100%语句覆盖、100%分支(DC)覆盖和100%MC/DC覆盖所需的最少测试用例数目。请完成表3-1中的(1)?(3)填空。

中级嵌入式系统设计师,历年真题,2017年嵌入式系统设计师下午真题卷

问题:3 为了测试此软件功能,测试人员设计了表3-2所示的测试用例,请填写该表中的空(1)?(9)。

中级嵌入式系统设计师,历年真题,2017年嵌入式系统设计师下午真题卷

标记 纠错
19.

[说明]在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中:

[程序1]:实现两个变量的值的互换;

[程序2]:完成某功能的C语言程序;

[程序3]和[程序4]:是P、V操作的形式化定义,设S为信号量。在多道程序系统中,进程是并发执行的。这些进程间存在着不同的相互制约关系,主要表现为同步和互斥两个方面。信号量是解决进程间同步与互斥的有效方法。 [程序1] void swap (int n1, int n2) { int tmp=n1; n1=n2; n2=tmp; [程序2] #include image.pngstdio.h> int fun (int n) { int f0=0, f1=1, f, i; if (n==0) return 0; if (n==1) return 1; for(i=2j; iimage.png=n; i++) { f=f0+f1; f0=f1; f1=f; } return f; } void main12 {int n=5; printf ("fun(%d)=%d\n", n, fun(n)); n=7; printf ("fun(%d)=%d\n", n, fun(n)); n=9; printf ("fun(%d)=%d\n", n, fun(n)); } [程序3] P操作的形式化定义:P (S) { ______; if(______){ 阻塞该进程;将该进程插入信号量S的等待队列; } } [程序4]V操作的形式化定义:V(S) { ______; if(______){ 从信号量S的等待队列中取出队首进程;将其插入就绪队列; } }

1、执行[程序1]后,没有能够实现两个变量值的交换,为什么?请修改上述函数,实现两个变量值的交换,要求函数无返回值,形式为:void swap(...)。

2、请问[程序2]运行结果是什么?

3、请简述什么是临界资源?什么是临界区? 请完成[程序3]和[程序4]的形式化定义。

标记 纠错
20.

某嵌入式系统中,存在16路数据采集通道,为了提高数据采集的可靠性,对16路采集通道均采用双余度设计,为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较,只有当该通道两个余度设备采集值均不小于45时,才表示该路通道正常。设计人员设计函数num_of_passer用于统计无故障通道数目,在该函数的设计中考虑了如下因素:

9采用如下数据结构存储通道号及采集值:Struct value {unsigned int No; //通道号,1到16 unsigned short Value1; //余度1采集值 unsigned short Value2; //余度2采集值 }

10当输入参数异常时,函数返回-1;

11若正确统计了无故障通道数目,则返回该数目;

12该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值的数组,第二个参数为通道总数目。

开发人员根据上述要求使用ANSI C对代码实现如下(代码中第一个数字代表行号): 1)unsigned int num_of_passer(struct value array[], unsigned int num) { 2)unsigned int n=0; //循环变量 3)unsigned int counter; //无故障通道数目 4)if((array=NULL)||(num==0)||(num>16)) 5)return-1; //当输入参数异常时,函数返回-1 6)for(n=0; nimage.png=num; n++) { 7)if((array[n].Value1>45) && ((array[n].Value2>45))) 8)counter=counter+1; } 9)return counter; }

1、嵌入式软件中通常使用圈复杂度来衡量程序的可维护性(一般要求圈复杂度不大于10),请计算函数num_of_passer的圈复杂度。

2、作为测试人员,请参照表1序号1的方式使用代码审查的方法找出该程序中所包含的至少3处错误。

中级嵌入式系统设计师,历年真题,案例分析

3、覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标,请指出对函数num_of_passer达到100%语句覆盖、100%分支(DC.覆盖和100%MC/DC覆盖所需的最少测试用例数目,如表2所示。

中级嵌入式系统设计师,历年真题,案例分析

标记 纠错
21.

某公司承接了一个数据采集与处理系统的项目,由刘工负责系统的方案设计,刘工的设计方案如图1所示。该方案是基于PCI总线的多功能处理系统,PCI设备1是以太网,PCI设备2用于数据采集,PCI设备3、PCI设备4用于和该系统中的其他处理模块进行互联,LEGACY设备1、LEGACY设备2用于处理系统中一些慢速设备。

中级嵌入式系统设计师,历年真题,案例分析

1、在以下描述PCI总线的基本概念中,正确的表述有______、______、______、______、______、______。 A.PCI总线是一个与处理器有关的高速外围总线 B.PCI总线的基本传输机制是猝发式传送 C.PCI设备一定是主设备 D.PCI的物理地址与其他总线一样,是由内存地址空间和I/O地址组成 E.PCI设备的地址译码不能对配置空间直接寻址 F.PCI设备识别主要是对开发商代码和设备代码进行识别 G.访问配置空间时,PCI桥应提供IDSEL信号以选择PCI设备 H.系统中只允许有一条PCI总线 I.PCI总线是高速串行总线 J.PCI总线有3种桥,即HOST/PCI桥,PCI/PCI桥,PCI/LEGACY桥 K.PCI桥是可以把一条总线的地址空间映射到另一条总线的地址空间

2、PCI设备2和主CPU之间采用双口RAM方式交换数据,双口RAM是常见的共享式多端口存储器,其最大的特点是存储数据共享。它允许两个独立的CPU或控制器同时异步访问存储单元。既然数据共享,就必须存在访问仲裁控制,否则就会出现错误或冲突。内部仲裁逻辑控制提供以下功能:对同一地址单元访问的时序控制;存储单元数据块的访问权限分配;信令交换逻辑(例如中断信号)等。

两个端口对同一内存操作有4种情况:A.两个端口同时对同一地址单元读出数据;B.两个端口同时对同一地址单元写入数据;C.两个端口不同时对同一地址单元存取数据;D.两个端口同时对同一地址单元,一个写入数据,另一个读出数据。

在上述情况下,两个端口的存取不会出现错误的是______和______,会出现写入错误的是______,会出现读出错误的是______。

3、PCI设备2和主CPU之间通过双端口存储器进行数据交换。刘工设计了环形队列的实现方式。设备2向环形队列写入数据,主CPU从环形队列读取数据。环形队列是一个首尾相连的FIFO数据结构,采用数组存储,到达尾部时将转回到0位置,该转回是通过取模操作来实现的。因此环形队列逻辑上是将数组元素q[0]与q[MAX-1]连接,形成一个存放队列的环形空间。为了方便读写,还要用数组下标来指明队列的读写位置,其中head指向可以读的位置,tail指向可以写的位置,环形队列如图2所示。

中级嵌入式系统设计师,历年真题,案例分析

使用环形队列时需要判断队列为空还是为满。当tail追上head时,队列为满,当head追上tail时,队列为空。通常判断环形队列为空/为满有两种判断方法。

(1)附加一个标志位tag,当head赶上tail,队列空,则令tag=0,当tail赶上head,队列满,则令tag=1;

(2)限制tail赶上head,即队尾结点与队首结点之间至少留有一个元素的空间。队列空:head==tai;队列满:(tail+1)%MAXN==head。

如果采用第一种方法(即附加标志实现算法),则环形队列的结构定义如下: typedef struct ringg { int head; /*头部,出队列方向*/ int tail; /*尾部,入队列方向*/ int tag; int size; /*队列总尺寸*/ int space[RINGQ_MAX]; /*队列空间*/ }RINGQ; RINGQ p, *q; q=&p; 初始化环形队列的C语言代码为: q->head=q->tail=q->tag=0; q->size=RINGQ_MAX; 判断队列为空的C语言代码为______。判断队列为满的C语言代码为______。入队操作时,如果队列不满,则入队后更新尾指针的C语言代码为q->tail=______。出队操作时,如果队列不空,则出队后更新头指针的C语言代码为q->head=______。如果采用第二种方法,还采用上述数据结构,初始化环形队列的C语言代码为:q->head=q->tail=0; q->size=RINGQ_MAX; 判断队列为空的C语言代码为______。 判断队列为满的C语言代码为______。 入队操作时,如果队列不满,则入队后更新尾指针的C语言代码为q->tail=______。 出队操作时,如果队列不空,则出队后更新头指针的C语言代码为q->head=______。

标记 纠错
22.

某舰载综合处理系统由若干数据处理模块、10处理模块、信号处理模块、图形处理模块、大容量处理模块和电源模块组成,各处理模块通过CAN总线连接,如图1-1所示。

中级嵌入式系统设计师,历年真题,案例分析

为了提高综合处理系统的处理速度,主要处理模块都设计为多个处理器。其中,数据处理模块有

中级嵌入式系统设计师,历年真题,案例分析

中级嵌入式系统设计师,历年真题,案例分析

串行RapidlO协议即SRIO通信协议,构建了3层的协议体系。如图1-3所示,分别是物理层、传输层、逻辑层。物理层定义了硬件接口的电器特性,并包括链路控制、初级流量控制和低级错误管理等功能;传输层负责进行寻址和路由信息管理;逻辑层定义了服务类型和包交换的格式。逻辑层定义了数据包的格式,同时支持两种操作方式,分别是直接IO/DMA方式和消息传递方式。

直接IO/DMA是一种常用的数据传输方式,发送端需要知道被访问设备的存储空间地址映射,被访问端的操作基本由硬件实现。直接I0/DMA下,发起一次传输操作,需要有效数据、目标器件ID、数据长度、数据在被访问设备存储空间的地址以及包优先级等;同时,所有构成的包的长度为32bit的整数倍;若包长度不能满足要求,则添加附加位进行弥补。消息传递方式不要求发送节点知道目的节点的地址空间映射,当数据到达目的节点时,会根据邮箱号确定消息存储位置。在消息传递模式下进行数据传输时,除了有效载荷外还需要提供目的节点的ID、数据长度、包优先级和邮箱号等。

问题:1 可执行程序有严格的格式,一般分为text段、data段和bss段,请解释各段存放的内容,并将答案填写在(1)~(3)中。陈工程师写了一段图形图像相关的程序,在程序中他定义了一个大数组,如下所示:char arrMap[1024*1024];void main(void){...}请问此数组位于内存哪个位置(即在那个段中)?

问题:2 RapidlO逻辑层中直接IO/DMA和消息传递这两种传输方式的主要差异如表1-1所示。请完成表中的内容,将表1-1中的(1)~(5)答案填写在对应栏中。

中级嵌入式系统设计师,历年真题,案例分析

问题:3 在IO处理模块等多个模块上,都采用中断方式处理输入输出。在中断处过程包括关中断、保存断点、识别中断源等一系列步骤,如图1-4所示,请完成其中的填空。

中级嵌入式系统设计师,历年真题,案例分析

标记 纠错
23.

某智能农业基地需要实时监控各个蔬菜大棚的温湿度,李工开发了一款温湿度监测仪,硬件系统设计部分如图2-1所示。

中级嵌入式系统设计师,历年真题,案例分析

李工采用STM32作为主控处理器,利用TS-FTM01传感器进行温度和湿度采集,采用GSM/GPRS/GPS三合一模块来实现温湿度采集数据的上报。TF-FTM01传感器和主处理器之间采用RS485总线进行通信。在系统设计中,使用STM32处理器实现对多个TF-FTM01传感器的数据读取。

GSM/GPRS/GPS三合一模块可以实现自我定位,并把采集到的温湿度数据进行上报,该模块和STM32处理器之间采用RS232进行数据通信。TS-FTM01传感器使用RS485通信机制,每个传感器的RS485通信地址可以通过如图2-2所示的拨码开关进行配置。拨码开关一共有6位,实现对TS-FTM01传感器地址的编码。STM32处理器具有通用同步异步收发器(USART),USART利用分数波特率发生器提供宽范围的波特率选择。

STM32处理器的波特比率寄存器USART桞RR的定义如图2-3和表2-1所示。

中级嵌入式系统设计师,历年真题,案例分析

问题:1 RS232和RS485都属于串行通信总线,以下关于串行通信、RS232、RS485的叙述中,正确的是(1)、(2)、(3)、(4)。请将答案填写在对应栏中。A.RS232支持全双工通信,只允许一对一通信B.RS232采用差分传输方式进行数据信号的传输C.RS232传输距离远,传输距离最远可达上千米D.RS485—般采用两线制进行半双工通信,允许一对多通信E.RS485采用差分传输方式,抗干扰能力强,传输距离远F.在进行嵌入式开发时,常采用RS485作为调试串口使用G.RS232典型的连接器包括DB9和DB25,仅使用三线也可进行基本逍信

问题:2 STM32处理器具有通用同步异步收发器(USART),USART利用分数波特率发生器提供宽范围的波特率选择。波特率的计算公式为:

中级嵌入式系统设计师,历年真题,案例分析

其中,fck为给外设的时钟,USARTDIV是一个无符号数,其值设置在USART_BRR寄存器中。假设给外设提供的时钟频率fck=72MHz,GSM/GPRS/GPS三合一模块所需的波特率为115200,则USARTDIV的值应为(1),USART_BRR寄存器的十木进制值应为⑵。请完成其中的填空,将答案填写在对应栏中。

问题:3 RS485总线使用特制的RS485芯片,最大支持节点数可达128个以上。该系统的RS485总线上最多可以支持(1)个TS-FTM01传感器?请完成其中的填空,将答案填写在对应栏中。

问题:4 基于图2-1所示的硬件设计,需要实现某地点的温湿度数据的定时上报功能。该功能要求以T为周期读取RS485总线上16个TS-FTM01传感器(地址编码为0~15)的温湿度数据,通过GPS获取当前的位置信息,然后通过GSM网络把温湿度数据和定位信息发送到固定的手机号码上。

需要特别指出的是,在图2-1所示的硬件设计中未使用专用的RS485芯片,STM32端的RS485总线是通过GPIO45和GPIO46两根G310口线模拟出的,即通过两根GPIO口线的高低电平变化来模拟RS485数据传输协议”基于上述硬件和软件设计,请从以下选项中选择正确的操作,把图2-4所示的软件流程补充完整,将流程图2-4中的(1)-(3)的答案填写在对应栏。A.设置GPIO45为输入模式,设置GPIO46为输出模式B.设置GPIO45和GPIO46为输入模式C.设置GPIO45为输出模式,设置GPIO46为输入模式D.设置GPIO45和GPIO46为输出模式E.addr>16F.addr>=16本方案利用低速串行总线遍历读取16个传感器的温湿度数据及GPS的定位信息,并通过GSM实现数据上报。该执行过程需要消耗一定的时间,导致现有的算法流程并不能精确实现以T为周期进行温湿度数据的采集和上报。为了修正该问题,需要把图2-4所示流程中的步骤(4)调整到步骤(5)后执行。请完成其中的填空,将答案填写在对应栏中。

中级嵌入式系统设计师,历年真题,案例分析

标记 纠错
24.

企业根据利润提成发放奖金。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成15%;利润在20万到40万之间时,高于20万元的部分,可提成20%;40万到60万之间时高于40万元的部分,可提成25%;60万到100万之间时,高于60万元的部分,可提成30%;高于100万元时,高于100万元的部分可提成35%o已知企业本年度12个月的月利润存储在数组profit中,程序要求根据月利润计算月奖金并存储到数组bonus中,然后计算并返回该企业的年度总利润total_profito该程序的实现如下:

【程序】int calculate_bonus(const int profit[ ], int bonus[ ]){int n=12;int i=0;int sum_profit=0;int bonus1,bonus2,bonus4,bonus6,bonuslO;bonus1=100000*0.1;bonus2=bonus1+100000*0.15;bonus4=bonus2+200000*0.2;bonus6=bonus4+200000*0.25; bonusl0=bonus6+400000*0.3;for (i=0;iimage.pngn; i++){if (profit[i]image.png=100000)(1);else if(profit[i]image.png=200000)(2);else if(profit[i]image.png=400000)(3);else if(profit[i]image.png=600000)(4);else if(profit[i]image.png=1000000)(5) ;else(6) ;}/*以下代码计算年度总利润*/i=0;while(iimage.pngn)sum_profit += profit[++i];return sum_profit;}

问题:1 在程序中,使用关键字const修饰输入参数profit,请将这样修饰的作用写到(1)处。如果程序中bonus数组也使用const修饰,是否正确,并给出解释,请将答案写到(2)处。

问题:2 分析程序中的计算年度总利润的代码,指出错误的一行代码,将错误代码写到(1)处;然后用一条语句实现正确代码,将正确代码写到(2)处。

问题:3 根据题意分析程序,完成程序中的(1)~(6),每个空行只能写一行代码,即用一条语句来描述,将答案写到相应的位置。

标记 纠错
25.

王工在实验室负责自动电梯模拟控制系统的设计,自动电梯模拟控制系统需要完成电梯运行控制算法、输入界面和输出界面三项主要任务。系统结构图如图1所示。

中级嵌入式系统设计师,历年真题,案例分析

根据电梯运行的流程,把电梯划分为停止状态、运行状态、开门状态和关门状态4种控制状态。停止状态是指电梯在没有任何请求的情况下静止状态,而不是指电梯在运行过程中开门前的停顿状况,本题忽略停顿状况,把电梯从运行状态直接迁移为开门状态。电梯根据控制状态的迁移规则进行状态迁移,系统初始时,电梯处于停止状态。

问题1:电梯根据控制状态的迁移规则进行迁移,其状态迁移图如图2所示。

请根据下面状态转移的条件,完成状态迁移图。可供选择的状态转移条件:a.其他楼层有呼叫请求;b.无呼叫请求;c.乘客进入电梯或等待一段时间后;d.到达请求楼层;e.电梯所在楼层有呼叫请求。

中级嵌入式系统设计师,历年真题,案例分析

问题2:电梯运行处理程序的流程图如图3所示。请完成该流程图。

中级嵌入式系统设计师,历年真题,案例分析

问题3:系统采用多级优先级中断结构,如图4所示。它要求CPU在执行完当前指令时转而对中断请求进行服务。设备A连接于最高优先级,设备B次之,设备C又次之。IRQx为中断请求信号,INTx为CPU发出的中断响应信号。

中级嵌入式系统设计师,历年真题,案例分析

现假设:TDC为硬件中断周期时间;TM为一个指令执行周期时间;TA、TB、TC分别为A、B、C的中断服务程序执行时间;TS、TR为保护现场和恢复现场所需的时间。图5是中断处理过程示意图。

中级嵌入式系统设计师,历年真题,案例分析

当三个设备同时发出中断请求时,依次处理设备A、B、C的时间是多少?这种结构下中断饱和时间是多少?

标记 纠错

答题卡(剩余 道题)

问答题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
00:00:00
暂停
交卷