本文目录
第 1 题
下面是关于C语言的基本概念和编程方面的叙述,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
王工在红外热像仪系统设计中负责软件模块,其核心功能在于进行人脸检测,调取温度检测模块获取检测到人的体温,将检测到的人脸信息及体温通过网络发送给平台进行存储,软件采用C语言编写。
【问题1】(3分)
请说明在C语言中下列宏定义的含义。
(1) #define f(a,b) a##b
(2) LINE
(3) DATE_
【问题1】解答
(1)连接两个宏参数为一个数
(2)LINE 当前程序行的行号,表示为十进制整型常量
(3)DATE 当前日期,一个以 “MMM DD YYYY” 格式表示的字符串常量。
【问题2】 (3分)
王工在利用网络发送所检测到的人脸及对应的体温信息时定义了对应的数据结构FaceTemp_info, 内容依次包括:检测到人脸框的左上角像素坐标(横向坐标Face_x,纵向坐标Face_Y), 人脸框的像素大小(横向宽度Face_w,纵向高度Face_H),以及人体温度信息Temp。假设人脸框坐标信息、人脸框的像素大小都用unsigned short来表示,人体温度信息用float来表示。请给出FaceTemp_info 数据结构的定义。
【问题2】解答
typedef struct FaceTemp_Struct{
unsigned short Face_x;
unsigned short Face_Y;
unsigned short Face_w;
unsigned short Face_H;
float Temp;
}FaceTemp_info;
【问题3】(9分)
在红外热像仪的图像信息处理中,王工设计了如下人脸检测、温度检测及信息发送程序,当检测到温度大于等于37.3C时,需要报警提示。请补全程序中的(1) ~ (6)。
(1) temp>=37.3
(2) facetemp_info.Face_x = face_x
(3) facetemp_info.Face_y = face_y
(4) facetemp_info.Face_w = face_w
(5) facetemp_info.Face_H = face_h
(6) &facetemp_info
第一题的15分至少可以拿下12分
第 2 题
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某温度采集系统以处理器为核心,采用PC总线连接嵌入式键盘和多个温度传感器,温度传感器负责采集温度,键盘可以输入字符和数字信息,并通过RS232总线连接上位机。
I²C (Inter Integrated Circuit)总线是一种2线式串行总线,用于连接控制器及其外围设备。I²C总线最主要的优点是其简单性和有效性。它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。但在任何时间点上只能有一个主控。 PC的这些特点使其在许多设计中备受青睐,本系统中采用I²C总线连接嵌入式键盘和多个温度传感器,如图4-1所示。
【问题1】(4分)
I²C总线上传送的信号是广义的,既包括地址信号,又包括数据信号。在起始信号后必须传送一个从机的地址、数据的传送方向。每次数据传送总是由主机产生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。
I²C总线协议规定:寻址字节由从机地址(D7~D1位)、数据传送方向位(D0位:“0”表示主机向从机写数据,“1”表示从从机读取数据)组成,如图4-2所示。主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据D0位将自己确定为发送器或接收器。
图4-2寻址字节位定义
该系统中用 I²C 总线连接了多个同样的温度传感器,用于实时采集温度值。该传感器的从机地址由固定位和可编程位组成,7位地址位前4位(即D7 ~ D4)是固定位,后3位(即D3~D1)是可编程位。
该系统中最多可连接(1)个本型 号的温度传感器。
该温度传感器从机地址中固定位是0xA,传感器1的可编程位是0、传感器2的可编程位是....以此.类推。当主机读取传感器4的数据时,总线命令序列中的寻址字节值是(2)。
【问题1】解答
(1) 8
(2) 0xA7
【问题2】 (6分)
本系统通过1路RS232总线将采集的温度值传给上位机进行处理。RS232采用异步通信方式传送ASCII码,数据位8位,奇校验1位,停止位1位。当RS232的波特率设置为4800时,字符传送的速率是(1)字符1秒, 每个数据位的时间长度是(2)毫秒, 数据位的传送速率是(3)位/秒。
【问题2】解答
(1) 480
(2) 0.208
(3) 3840
【问题3】(5分)
同时,本系统通过 I²C 总线连接了嵌入式键盘,用于人机交互。频繁按键会导致连续使用 I²C 总线读取数据,由于 I²C 总线操作是一个应答式的命令序列,所以防止2次读写之间的干扰(即在一次读写没有完成之前,另一次读写操作也占用 I²C 总线,两次的数据会造成紊乱)是一个重要的问题。
(1)为防止多次频繁按键,导致总线访问错误,需要采取什么机制,保证每次只允许一个读写操作占用总线?
(2)在执行读写操作命令序列时,如何使用该机制?
【问题3】解答
(1) 互斥机制
(2) 读写操作前等待互斥锁互斥,读写操作后释放互斥锁
本题15分,必要拿到的分数为 15分,可能由表述原因最后两三分拿不到,所以应该是12-15分
截至目前,分数范围:24-30;
第 3 题
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
人体的红外辐射特性与它的表面温度有着十分密切的关系,门式测温仪通过对人体自身辐射红外能量的测量,便能准确地测定人体表面温度。由于门式测温仪最大的优点是非接触、快速测量,一般小于1秒钟,所以被广泛应用于机场、车站、码头、学校等人流量大的地方。
该设备中软件主要完成A/D数据采集,并通过数学运算将红外数据转换为温度值,自动将额头表面温度结果换算为人体腋下温度,在显示终端显示。软件主要包括主程序模块、红外测温程序模块、温度转换模块、显示程序模块、报警程序模块、环境温度补偿模块等。
程序的主要功能说明如下:
(1)如果按下“高温报警设置”键,则通过“+”键每次增加0.1"C或通过“-”键每次减少0.1"C,设置最高温度报警值(默认值为40C),按下“确认”键进行确认;
(2)如果按下“低温报警设置”键,则通过“+”键每次增加0.1"C或通过“-”键每次减少0.1"C,设置最低温度报警值(默认值为35"C),按下“确认”键进行确认;
(3)主程序模块判断是否在30厘米范围内存在红外能量,如果没有,继续执行(3);否则执行(4);
(4)读取红外测温程序模块送回的目标表面温度信息,并调用温度转换模块和环境温度补偿模块进行温度转换和补偿,并形成最终人体温度;
(5)将读取的温度信息与设定的最大值与最小值比较,如果大于等于最大值或小于等于最小值,则执行(6);否则向显示程序模块发送显示的温度值,并执行(7);
(6)调用报警处理程序,发出蜂鸣声提醒检测人员,并向显示程序模块发送报警信息;
(7)显示程序模块显示高温报警或低温报警或者温度信息。
【问题1】(7 分)
为了测试软件功能,测试人员设计了表3-1所示的测试用例,请填写该表中的空白(1)~(7)。
【问题1】解答:
(1) 37.5℃
(2) 35.5℃
(3) 被测目标物体温度为37.4℃
(4) 高温报警信息
(5) 大于37.5℃
(6) 35.6℃
(7) 低温报警信息
【问题2】(6分)
软件的结构覆盖率是度量测试充分性和有效性的一种手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。
采用以下处理过程实现“判断温度是否在正常范围”的功能:
if ((目标物体温度<高温报警值)&& (目 标物体温度>低温报警值) )
显示目标物体温度;
else
{
if (目标物体温度≥高温报警值)
{
显示高温报警信息;
}
else
{
显示低温报警信息;
}
发出蜂鸣报警声音;
}
针对上述处理过程:
(1)若要求达到100%的语句覆盖,则所需的最少用例数是多少?
(2)若要求达到100%的分支覆盖,则所需的最少用例数是多少?
(3)若要求达到100%的MC/DC覆盖,则所需的最少用例数是多少?
【问题2】解答:
3
3
3
(第三个MC/DC覆盖不知道是啥,后续查一下,3是蒙的)
【问题3】 (2 分)
常见的黑盒测试的测试用例设计方法包括:①等价类划分;②边界值分析;③因果图;
④决策表等。测试人员在表3-1中针对本题设计测试用例时,使用了其中的哪种方法?
【问题3】解答:
②边界值分析
这道题拿15分一般没啥问题,如果因为MC/DC是啥蒙错了扣2分的话,拿个13分也可以
截至目前理论应得分数为:37-45分
第 4 题
阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
电子体温计可以快速、准确地进行体温测量,第一时间排查发热病人。李工通过AD模块设计体温采集电路,如图2-1所示,AD采集芯片使用ADC0809,单片机采用AT89S52。
对应的电路连接描述如下:
(1) ADC0809 的D0~ D7端口连接到AT89S52的P0口;
(2) ADC0809的A、B、C为AD输入IN0 ~ IN7选择端,A为最高位,C为最低位;
(3) ADC0809 的AD转换结束信号(EOC) 连接到AT89S52的P3.2;
(4) ADC0809 的AD转换启动信号(ST) 受AT89S52的P1.4管脚控制;
(5) ADC0809 的AD转换数据输出使能(OE)受AT89S52的P3.1管脚控制;
(6) ADC0809的时钟通过AT89S52的ALE输出控制,经过2个D触发器来生成;
(7) ADC0809 的输入模拟电压范围是0 ~ 5V;
(8) AT89S52 的P3.0管脚用来控制LED。
对于ADC0809而言,启动一次AD转换时,需要给ST一个短时的高电平。在AD转换过程中,EOC为低电平,当AD转换完毕后,EOC会变为高电平。在AD转换结束后,需要给OE一个短时高电平,在该期间内从D0 ~ D7读取AD转换后的数据。
【问题1】(3分)
AT89S52和ADC0809之间的连接线中,对ADC0809而言,下列信号中哪些为输入信号?
A. ST
B. EOC
C. OE
D. A
E. B
F. C
【问题1】解答:
ACDEF
【问题2】(2 分)
当外围的温度传感器模拟电压为1.2V 时,ADC0809 的输出值是多少?
【问题2】解答:
1.2/5*255 = 61.2 = 0X3D
【问题3】(2分)
若单片机AT89S52的ALE输出为2M的时钟频率,那么ADC0809的时钟是多少?
【问题3】解答:
2 个D 触发器串联,进行了4分频, 因此输出时钟为输入时钟的1/4 分频,也就是D 触发器输出最终为2M/4=500KHZ 。
【问题4】 (8分)
李工按照该电路的工作原理设计了如下程序,该程序以查询方式实现AD转换,读取
AD转换后的数据。
请根据逻辑,在下面A到O中选择正确答案,完成(1) ~ (8) 填空。
A. LED= 0
B. LED=1
C. OE=0
D. OE=1
E. ST=0
F. ST=1
G. P0=0xF8
H. PO=0xFC
I. while (EOC==0)
J. while (EOC==1)
K.ADdata=P0
L. P0=ADdata
M. if (ADdata> 128)
N. if (ADdata < 128)
O. LED=1
【问题4】解答:
(1) E ST=0
(2) F ST=1
(3) J while (EOC==1)
(4) C OE=0
(5) k ADdata=P0
(6) D OE=1
(7) M if (ADdata> 128)
(8) A LED= 0
这道题拿个11分不过分 11-15
截至目前,可以获得48-60分,基本可以及格了
第5题
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
2019年12月以来,新型冠状病毒首先在国内蔓延,现在又肆虐全球,我国政府全力以赴,抗击疫情,全国人民积极响应,短短几个月来,疫情得到很好的控制。在抗疫战斗中,相关医疗设备起到了至关重要的作用。某公司生产的红外热成像系统(测温仪)已被广泛使用,可以检测发热症状,排查受感人群。
该红外热成像系统如图1-1 所示,主要由红外光学系统、红外探测器、驱动采集电路、图像处理电路、显示与存储电路组成。
图1-1红外热成像 系统图
在该系统中,光学系统主要指专门红外镜头,与普通光学镜头不同,光学材料针对相应波段的红外光线,实现滤光和对焦。红外探测器是完成红外热辐射到电信号的转换。驱动采集电路完成图像信号的输出与采集。红外图像处理电路在系统中不仅要对红外图像进行非均匀校正、盲元补偿处理,还要对图像的温度漂移、图像增强以及温度测量信息进行处理。最后,红外图像需要设置不同的输出方式以匹配不同的显示器,或者采用文件系统将红外图像及信息进行存储。
红外热成像系统具体的系统架构如图1-2 所示,主处理器采用ARM,红外探测器采用320X240非制冷长波红外探测器,系统电路包括偏置电压电路、温控电路、A/D转换电路、基于FPGA的实时红外图像信号采集电路、基于ARM的系统控制电路以及LCD显示模块电路。实现了红外探测器的驱动、红外图像信号的采集和处理、红外图像的输出显示以及一些外设辅助功能。
图1-2 红外热成像系统的系统框架图
【问题1】(4分)
系统采用4片IS61LV51216 SRAM来做数据缓存,请问:
(1)下列关于SRAM、DRAM和ROM的论述中,哪些是正确的?
A.SRAM的中文名称为“静态随机存储器”
B.存放在SRAM中的信息不会因去掉供电电源而丢失
C.SRAM的静态存储单元是在静态触发器的基础.上附加门控管而构成的
D. SRAM必须定时不断刷新,以保证所存储的信息不会丢失
E. SRAM将每个位存储在一一个 双稳态存储器单元
F. SRAM的功耗较大,集成度不能做得很高
G. ROM所存数据稳定,断电后所存数据也不会改变
H. SRAM 需要刷新电路才保存它内部存储的数据
I. SRAM的优点是集成度较低,功耗较DRAM小
J. DRAM每隔一段时间要刷新充电一次, 否则内部的数据即会消失
(2) SRAM的容量为512KX16位,那么SRAM的地址线和数据线数目分别为多少?
【问题1】解答:
(1)A、C、E、F、G、J
(2)地址线19根,数据线16根
【问题2】(7分)
在红外热像仪系统中,FPGA完成红外图像的采集与预处理,包括前端探测器驱动、数:据采集与整形、数据预处理、SRAM控制器、ARM通信等,在整个数据采集过程中,FPGA将接收到的红外图像数据采用“乒乓”结构交替不断写入两块SRAM中,FPGA 在进行数据写入时,ARM不能读取相应区的数据,FPGA 每写完- -帧数据,就通过寄存器通知ARM取数据,新的一帧数据写入另-块SRAM。这样就避免了红外探测器图像采集时钟与ARM的图像处理帧频时钟的不匹配问题。
(1)下列关于FPGA的描述中,哪些是正确的?
A. FPGA由逻辑单元、RAM、 乘法器等硬件资源组成
B. FPGA只能实现有限次的重新编程
C. FPGA可通过使用原理图或者Verilog HDL来设计
D. FPGA的所有功能均依靠硬件实现
E. FPGA可以实现定点和浮点运算
F. FPGA的工作频率由FPGA芯片及设计决定
(2)完成图像乒乓操作流程图1-3中的空①~⑤。
图1-3图像数据 FPGA乒乓操作流程图
【问题2】解答
(1)A、C、D、F
(2)
①清SARM可读状态
②置SARM写状态
③写满? (是否写满)
④置SRAM可读
⑤有无空闲SRAM? (是否有空闲SRAM)
【问题3】(4分)
假设该红外热像仪CPU的中断系统有4个中断源A、B、C、D,其硬件排队优先次序为A>B>C>D,每个中断源对应-一个屏蔽码,表1-1为中断服务程序与屏蔽码的关系,其中“0”为允许,“1”为屏蔽,CPU 状态时屏蔽码为0000。
(1)设A、B、C、D同时请求中断,试画出CPU执行程序的轨迹。
(2)请给出中断服务程序完成的顺序。
【问题3】解答:
(1)
(2)C、A、D、B
之前刷到本篇的可能发现没有最后一题,确实是本人之前跟着做的时候做到最后一题忘记写上去了,现在发现了补充一下,嵌入式系统设计师确实比较难考,我之前考了一次,下半的没过,也是因为没复习去裸考了,只考了30多分。等明年春天好好复习了再考吧。