1、2015 年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)真题试卷及答案解析(总分:34.00,做题时间:90 分钟)一、试题一(总题数:1,分数:8.00)阅读以下关于某嵌入式系统设计的说明,回答问题 1 至问题 4,将答案填入答题纸的对应栏内。【说明】 某公司承接了某嵌入式系统的研制任务。该嵌入式系统由数据处理模块、系统管理模块、FC 网络交换模块和智能电源模块组成,系统组成如图 1-1 所示。数据处理模块处理系统的应用任务;系统管理模块除了处理系统的应用任务外,还负责管理整个嵌入式系统;FC 网络交换模块采用消息机制,支持广播和组播,主要负责系统的数据交换;智能电源模块负责给
2、其他模块供电,该模块根据系统命令可以给其他模块供电或停止供电。 (分数:8.00)(1).【问题 1】该系统的软件大部分是用 C 语言编程的,编程人员经常会使用运算符,请按优先级由高到低的次序,重新排序下面的运算符:,=,=,&。(分数:2.00)_(2).【问题 2】该系统的开发要求按软件能力成熟度模型 CMM 3 级开发,请回答下列问题:(1)CMM 3 级包含多少个关键过程域?(2)请写出 CMM 3 级的关键过程域。(3)CMM2 级包含多少个关键过程域?(4)在对该开发软件单位进行 CMM 3 级达标评级时,只需检查 3 级的关键过程域还是 3 级和 2 级的关键过程域都需要检查?(
3、分数:2.00)_(3).【问题 3】(1)在本系统中,FC 网络采用何种拓扑结构?请从如下 4 项中选择最为合适的。A总线 B树型 C星形 D点对点(2)FC 网络除了用于交换的光纤基础架构,还必须有高性能的 IO 通道结构支持,IO 通道在 FC 网络中的优势是什么?(分数:2.00)_(4).【问题 4】智能电源模块首先进行系统初始化,初始化后各设备就可使用,再根据系统初始配置表对嵌入式系统的其他模块供电。智能电源模块通常完成两件事情:一、周期性地查询本模块温度、各路电流(给各模块供电的)以及电源模块的供电是否异常,如果异常,则进行异常处理,并报系统管理模块,由系统管理模块进行决策;二、
4、进入中断处理程序,处理系统管理模块的各种命令,如果系统管理模块命令关机下电,则智能电源模块对所有模块(也包括自己)进行下电处理。图 1-2 是智能电源模块上的管理软件处理流程图,请完成该流程图,给(1)(5)处填空。(分数:2.00)_二、试题二(总题数:1,分数:8.00)阅读以下关于某四轴飞行器系统设计的说明,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。【说明】 在某四轴飞行器系统设计中,利用惯性测量单:元(IMU)、PID 电机控制、24G 无线遥控通信和高速空心直流电机驱动等技术来实现一个简易的嵌入式四轴飞行器方案。整个系统的设计包括飞控板和遥控板两部分,两者之间采用 24G
5、 无线模块进行数据传输。飞控板采用高速单片机 STM32 作为处理器,采用含有三轴陀螺仪、三轴加速度计的运动传感器 MPU6050 作为惯性测量单元,通过 24G 无线模块和遥控板进行通信,最终根据 PID 控制算法以 PWM 方式驱动空心电机来控制目标。 图 2-1 为李工设计的系统总体框图。飞控板和遥控板的核心处理器都采用 STM32F103。飞控系统的惯性测量单元采用 MPU6050 测量传感器,MPU6050 使用 IIC 接口,时钟引脚 SCL、数据引脚 SDA 和数据中断引脚分别接到 STM32 的对应管脚,图 2-2 为该部分原理图。遥控板采用 STM32 单片机进行设计,使用
6、AD 对摇杆模拟数据进行采集,采用 NRF2401 无线模块进行通信,图 2-3 为该部分原理图。 李工所设计的系统软件同样包含飞控板和遥控板两部分,飞控板软件的设计主要包括无线数据的接收、自身姿态的实时计算、电机 PID 增量的计算和PWM 的电机驱动。遥控板主控制器软件通过 ADC 外设对摇杆数据进行采集,把采集到的数据通过 24G 无线通信模块发送至飞控板。图 2-4 为飞控系统的软件流程示意图。 (分数:8.00)(1).【问题 1】由图 2 一 1 系统总体框图设计可知,飞控板和遥控板之间是用 24G 无线通信进行数据传输,各自主处理器和无线通信模块之间是 SPI 接口。同时,在飞控
7、板上,处理器和惯性测量单元是通过IIC 进行数据交互。以下关于 SPI 接口和 IIC 接口的描述中,正确的是:_(1)、_(2)、_(3)、_(4)。 ASPI 和 IIC 都是主从式通信方式 BSPI 的数据收发线是各自独立的,IIC 也是同样 CSPI 和 IIC 的传输都不需要片选控制 DIIC 总线是一个多主机的总线,可以连接多于一个能控制总线的器件到总线 EIIC 总线包括标准模式,快速模式和高速模式,相互之间的传输速度差异并不大 F在原理设计中,到底采用 SPI 和 IIC 哪种方式,需要依据外设芯片的接口而定 GSPI 是一种环形总线结构 H在 IIC 总线上,可以有多个从设备
8、具有相同的 IIC 地址(分数:2.00)_(2).【问题 2】(1)图 2-2 飞控板部分原理图中,R4 的作用是什么?(2)图 2-3 遥控板部分原理图中,C11、C12、C13、C14 的作用是什么?(分数:2.00)_(3).【问题 3】 在 STM32 处理器的 PWM 使用过程中,最为关键的就是 PWM 的频率和占空比。PWM 的频率依赖于 PWM 模块的参考时钟频率,自动装载寄存器 ARR 的值加 1 之后再乘以参考时钟频率即可得到 PWM 的频率。PWM 的占空比是用捕获比较寄存器 CCR 和自动装载寄存器 ARR 获得的,PWM 占空比=CCR(ARR+1)。 假设当前主控板
9、的 STM32 处理器 PWM 模块的参考时钟频率为 lkHz,要将 PWM 模块的频率设置为 100kHz,则 ARR 寄存器的值应设置为多少?如果此时占空比希望设置为 20,那么 CCR 寄存器的值应该设置为多少?(分数:2.00)_(4).【问题 4】 飞控系统每 05 毫秒进行一次定时器的触发,每次中断都会检查一次无线模块数据的接收,以确保飞控系统控制信息的实时性。每 2 次中断(即 1 毫秒)读取一次 MPLl6050 单元的数据,并进行算法处理。每 4 次中断(即 2 毫秒)通过计算当前飞控板系统的姿态,结合遥控端的目标姿态,根据两者的差值通过PID 控制算法对各个电机进行调速控制
10、。每 200 次中断(即 100 毫秒)采集一次电池电压,然后通过无线模块把电池电压发送给遥控板,以告知操作人员当前电压的大小。 图 2-4 为飞控系统软件实现的简要流程图,根据以上描述,请补全图 2-4 中的空(1)(6)处的内容。(分数:2.00)_三、试题三(总题数:1,分数:6.00)阅读以下关于某嵌入式系统多路数据采集的说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。 【说明】 某嵌入式系统中,存在 16 路数据采集通道,为了提高数据采集的可靠性,对 16 路采集通道均采用双余度设计,为了监控采集通道是否发生故障,对各路双余度通道采集值进行比较,只有当该通道两个余度设备采
11、集值均不小于 45 时,才表示该路通道正常。设计人员设计函数 num of passer 用于统计无故障通道数目,在该函数的设计中考虑了如下因素: (1)采用如下数据结构存储通道号及采集值: Struct value unsigned int No; 通道号,1 到 16 unsigned short Value1; 余度 1 采集值 unsigned short Value2; 余度 2 采集值 (2)当输入参数异常时,函数返回-1; (3)若正确统计了无故障通道数目,则返回该数目; (4)该函数需要两个输入参数,第一个参数是用于存储通道号及余度采集值的数组,第二个参数为通道总数目。 开发人
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)(num16) 5) returni; 当输入参数异常时,函数返回1 6) for in=0; n=num; n+) 7) if(arraynValue145)(arraynValue245) 8) counter=cou
13、nter+1; 9) return counter; (分数:6.00)(1).【问题 1】嵌入式软件中通常使用圈复杂度来衡量程序的可维护性(一般要求圈复杂度不大于 10),请计算函数 num_of_passer 的圈复杂度。(分数:2.00)_(2).【问题 2】作为测试人员,请参照表 3-1 序号 1 的方式使用代码审查的方法找出该程序中所包含的至少 3 处错误。 (分数:2.00)_(3).【问题 3】覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和 MCDC 覆盖率作为度量指标,请指出对函数num_of_pass
14、er 达到 100语句覆盖、100分支(DC)覆盖和 100MCDC 覆盖所需的最少测试用例数目。(分数:2.00)_四、试题四(总题数:1,分数:6.00)阅读以下关于数据采集与处理系统的说明,回答问题 1 至问题 3,将答案填入答题纸的对应栏内。【说明】某公司承接了一个数据采集与处理系统的项目,由刘工负责系统的方案设计,刘工的设计方案如图 41所示。该方案是基于 PCI 总线的多功能处理系统,PCI 设备 1 是以太网,PCI 设备 2 用于数据采集,PCI设备 3、PCI 设备 4 用于和该系统中的其他处理模块进行互联,LEGACY 设备 1、LEGACY 设备 2 用于处理系统中一些慢
15、速设备。 (分数:6.00)(1).【问题 1】 在以下描述 PCI 总线的基本概念中,正确的表述有_(1)、_(2)、_(3)、_(4)、_(5)、_(6)。 APCI 总线是一个与处理器有关的高速外围总线 BPCI 总线的基本传输机制是猝发式传送 CPCI 设备一定是主设备 DPCI 的物理地址与其他总线一样,是由内存地址空间和 IO 地址组成 EPCI 设备的地址译码不能对配置空间直接寻址 FPCI 设备识别主要是对开发商代码和设备代码进行识别 G 访问配置空间时,PCI 桥应提供 IDSEL 信号以选择 PCI 设备 H系统中只允许有一条 PCI 总线 IPCI 总线是高速串行总线 J
16、PCI 总线有 3 种桥,即 HOSTPCI 桥,PCIPCI 桥,PCILEGACY 桥 KPCI 桥是可以把一条总线的地址空间映射到另一条总线的地址空间(分数:2.00)_(2).【问题 2】 PCI 设备 2 和主 CPU 之间采用双口 RAM 方式交换数据,双口 RAM 是常见的共享式多端口存储器,其最大的特点是存储数据共享。它允许两个独立的 CPU 或控制器同时异步访问存储单元。既然数据共享,就必须存在访问仲裁控制,否则就会出现错误或冲突。内部仲裁逻辑控制提供以下功能:对同一地址单元访问的时序控制;存储单元数据块的访问权限分配;信令交换逻辑(例如中断信号)等。 两个端口对同一内存操作
17、有 4 种情况: A两个端口同时对同一地址单元读出数据; B两个端口同时对同一地址单元写入数据; C两个端口不同时对同一地址单元存取数据; D两个端口同时对同一地址单元,一个写入数据,另一个读出数据。 在上述情况下,两个端口的存取不会出现错误的是_(1)和_(2),会出现写入错误的是_(3),会出现读出错误的是_(4)。(分数:2.00)_(3).【问题 3】 PCI 设备 2 和主 CPU 之间通过双端口存储器进行数据交换。刘工设计了环形队列的实现方式。设备 2 向环形队列写入数据,主 CPU 从环形队列读取数据。环形队列是一个首尾相连的 FIFO 数据结构,采用数组存储,到达尾部时将转回到
18、 0 位置,该转回是通过取模操作来实现的。因此环形队列逻辑上是将数组元素 q0与 qMAX-1连接,形成一个存放队列的环形空间。为了方便读写,还要用数组下标来指明队列的读写位置,其中 head 指向可以读的位置,tail 指向可以写的位置,环形队列如图 4-2 所示。使用环形队列时需要判断队列为空还是为满。当 tail 追上 head 时,队列为满,当 head 追上 tail 时,队列为空。通常判断环形队列为空为满有两种判断方法。 (分数:2.00)_五、试题五(总题数:1,分数:6.00)阅读以下关于 C 语言编程方面的说明和程序,回答问题 1 至问题 3,将答案填入答题纸的对应栏内。【说
19、明】 在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下程序,其中: 程序 1 是关于文件操作的一段程序。 程序 2 是某信息管理系统的系统登录和密码验证程序,规定密码最长为 20 个字符。首先,打开密码文件 sys_code,如果成功,则将文件中的密码信息与用户输入的密码进行比较,若相等,则身份验证通过并进入信息管理系统,否则输出错误信息并退出登录系统。如果打开文件 sys_code 失败,则由用户输入密码并保存到密码文件 sys_code。 【程序 1】 #includeStdioh #includeStdlibh Void main FILE*fp; char c,fname20
20、; printf(“输入文件名:“); scanf(“s“,fname); if(fp=fopen(fname,“r“)=_(1) printf(“不能打开文件:sn“, fname); exit(0); while(_(2) *检测文件是否结束* C=fgetc(fp); if(_(3) *检测文件是否出错* printf(“文件读错误n“); break; putchar(c); 【程序 2】 void password() int sign=0; sign=checkcode(); if(_(1) printf(“annnnnnnnntt 密码错误,请重新登录!“); getch();
21、system(“cls“); exit(1); system(“cls“); printf(“annnnnnnnntt“); printf(“欢迎登录信息管理系统!n“); getch(); return; int checkcode() FILE*fp; char ch,syspwd21=“0“; char usrpwd21=“0“; int i; *身份验证* if(fp=fopen(“sys code“,“r“)=NULL) system(“cls“); printf(“please set your identifyn“); printf(“password(=20):“); for(
22、i=0;i20;i+) ch=getchar(); if (ch=r ch=n) break; _(2)=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;i20;i+) ch=getchar(); if(ch=rch=n)break; usrpwdi=ch; if(strcmp(_(3)!=0) retur
23、n 1; return 0; (分数:6.00)(1).【问题 1】 变量存储类型是指数据在内存中存储的方法,即确定所定义的变量在内存中的存储位置,也确定了变量的作用域和生存期,内部变量有 3 种存储类型。假设有一个内部整型变量 aa,请按不同存储类型给出相应的变量声明。(分数:2.00)_(2).【问题 2】 王工在编写某嵌入式程序时,用到对文件系统的操作,由于要保证系统的安全性,要求必须使用文件检测函数 feof()和 ferron(),完成【程序 1】中的空(1)(3),将答案写到答题纸相应的位置。(分数:2.00)_(3).【问题 3】 王工根据系统的需求编写了【程序 2】,请填写其中
24、的空(1)(3),将解答填入答题纸的对应栏内。(分数:2.00)_2015 年下半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)真题试卷答案解析(总分:34.00,做题时间:90 分钟)一、试题一(总题数:1,分数:8.00)阅读以下关于某嵌入式系统设计的说明,回答问题 1 至问题 4,将答案填入答题纸的对应栏内。【说明】 某公司承接了某嵌入式系统的研制任务。该嵌入式系统由数据处理模块、系统管理模块、FC 网络交换模块和智能电源模块组成,系统组成如图 1-1 所示。数据处理模块处理系统的应用任务;系统管理模块除了处理系统的应用任务外,还负责管理整个嵌入式系统;FC 网络交换模块采用消息
25、机制,支持广播和组播,主要负责系统的数据交换;智能电源模块负责给其他模块供电,该模块根据系统命令可以给其他模块供电或停止供电。 (分数:8.00)(1).【问题 1】该系统的软件大部分是用 C 语言编程的,编程人员经常会使用运算符,请按优先级由高到低的次序,重新排序下面的运算符:,=,=,&。(分数:2.00)_正确答案:(正确答案:按优先级由高到低的次序,运算符排序为: ,=,&,=)解析:解析:本问题考查 C 语言的基础知识。在 C 语言中,对各种运算符的优先级是有规定的,必须掌握。优先级最高者其实并不是真正意义上的运算符,包括:数组下标、函数调用操作符、各结构成员选择操作符。它们都是自左
26、向右结合。 单目运算符的优先级仅次于上述运算符,在所有的真正意义的运算符中,它们的优先级最高。 双目运算符的优先级低于单目运算符的优先级。在双目运算符中,算术运算符的优先级最高,移位运算符次之,关系运算符再次之,接着就是逻辑运算符,赋值运算符,最后是条件运算符。总结以下两点: (1)任何一个逻辑运算符的优先级低于任何一个关系运算符; (2)移位运算符的优先级比算术运算符要低,但是比关系运算符要高。 下表是 C 语言运算符优先级表(由上至下,优先级依次递减)。C 语言运算符优先级表(2).【问题 2】该系统的开发要求按软件能力成熟度模型 CMM 3 级开发,请回答下列问题:(1)CMM 3 级包
27、含多少个关键过程域?(2)请写出 CMM 3 级的关键过程域。(3)CMM2 级包含多少个关键过程域?(4)在对该开发软件单位进行 CMM 3 级达标评级时,只需检查 3 级的关键过程域还是 3 级和 2 级的关键过程域都需要检查?(分数:2.00)_正确答案:(正确答案:(1)CMM 3 级(已定义级)包括 7 个关键过程区域 (2)同行评审、组间协调、软件产品工程、集成软件管理、培训大纲、组织过程定义、组织过程集点 (3)CMM 2 级(可重复级)包括 6 个关键过程区域 (4)3 级和 2 级的关键过程域都需要检查)解析:解析:CMM 即软件能力成熟度模型,是目前国际上最流行、最实用的软
28、件生产过程标准和软件企业成熟度的等级认证标准。CMM 是美国卡内基梅隆大学软件工程研究所与企业、政府合作的基础上开发的模型,主要用于评价软件企业的质量保证能力。目前,国内外的很多大型企业采用这一模型,如国内的鼎新、浪潮通软、用友、金蝶、创智、亚信、华为等公司都启动了 CMM 软件过程改进计划。国军标 GJB500-2003军用软件能力成熟度模型就是以 CMM 为参考蓝本而制定的。CMM 模型将软件能力成熟度自低到高依次划分,1 级为初始级、2 级为可重复级、3 级为已定义级、4 级为已管理级、5 级为优化级。除等级 1外,每个成熟度等级被分解成几个关键过程域,指明为了改进其软件过程组织应关注的
29、区域,关键过程域识别出为了达到各成熟度等级所必须着手解决的问题。CMM 共有 18 个关键过程域,其中初始级无关键过程域。 CMM 2 级(可重复级)包括 6 个关键过程域,为软件配置管理、软件质量保证、软件子合同管理、软件项目跟踪与监督、软件项目策划、软件需求管理; CMM 3 级(已定义级)包括 7 个关键过程域,为同行评审、组间协调、软件产品工程、集成软件管理、培训大纲、组织过程定义、组织过程集点; CMM 4级(已管理级)包括 2 个关键过程域,为软件质量管理和定量过程管理; CMM 5 级(优化级)包括 3 个关键过程域,为过程更改管理、技术改革管理和缺陷预防。 在 CMM 某一级达
30、标时,必须是该级别的所有关键过程域满足要求,同时低级别的所有关键过程域也必须达标。因此,某单位进行 CMM 3 级达标评级时,对3 级和 2 级的关键过程域都需要检查。(3).【问题 3】(1)在本系统中,FC 网络采用何种拓扑结构?请从如下 4 项中选择最为合适的。A总线 B树型 C星形 D点对点(2)FC 网络除了用于交换的光纤基础架构,还必须有高性能的 IO 通道结构支持,IO 通道在 FC 网络中的优势是什么?(分数:2.00)_正确答案:(正确答案:(1)C (2)简单、廉价、高速)解析:解析:数据通信网络常见的拓扑结构由简单到复杂依次为:点对点、总线、树型、星形。点到点型指网络中一
31、个信息源节点连接到一个或多个目的节点,是专用的链路,具有通信效率高,延迟小的优点,但是建立多点全互联的网络具有连线多、成本高、资源利用率低等缺点。总线型指网络中一个信息源节点连接到一个或多个目的节点,采用集中控制、令牌访问、CSMACD 等方式,具有连线少、成本较低、资源利用率高等优点,但存在通信吞吐量低、延迟大的缺点,尤其在网络负载重的情况下。 树型指网络中所有节点挂接到一个树形结构上,可以采用集中控制、令牌访问等方式,具有连线简单、成本较低的优点,但存在通信吞吐量低、延迟大的缺点,尤其在网络负载重的情况下。 星形指网络中所有节点连接到中心交换机,节点之间的通信经过交换机路由转发, 具有通信
32、吞吐量高、延迟小、连线较简单的优点,但存在成本高、交换机单点故障风险的缺点。 本题为了满足嵌入式系统对高带宽、低延迟的通信要求,通过分析以上网络的拓扑结构特点,FC 网络应选择星形结构。星形结构是最佳的方案。 SAN 通常有 FC SAN和 IP SAN 两种实现技术。FC SAN 采用 IO 结合光线通道,IP SAN 采用 iSCSI 实现异地间数据交换,具有简单、廉价、高速等优势。(4).【问题 4】智能电源模块首先进行系统初始化,初始化后各设备就可使用,再根据系统初始配置表对嵌入式系统的其他模块供电。智能电源模块通常完成两件事情:一、周期性地查询本模块温度、各路电流(给各模块供电的)以
33、及电源模块的供电是否异常,如果异常,则进行异常处理,并报系统管理模块,由系统管理模块进行决策;二、进入中断处理程序,处理系统管理模块的各种命令,如果系统管理模块命令关机下电,则智能电源模块对所有模块(也包括自己)进行下电处理。图 1-2 是智能电源模块上的管理软件处理流程图,请完成该流程图,给(1)(5)处填空。(分数:2.00)_正确答案:(正确答案:(1)按初始配置表给各模块供电 (2)电源模块温度检测 (3)向其他模块供电的各路电流检测 (4)屏蔽中断 (5)处理系统控制模块发来命令)解析:解析:智能电源模块首先进行系统初始化,再根据系统初始配置表对嵌入式系统的其他模块供电。按照智能电源
34、模块的工作过程,判断有无中断,如有中断,则进入中断处理程序。如没有中断,则周期性地查询本模块温度、各路电流(给各模块供电的)以及电源模块的供电是否异常,如果异常,则进行异常处理,并报系统管理模块,由系统管理模块进行决策。在中断处理程序中,首先屏蔽中断,喂看门狗,统计中断次数,接收系统控制模块的各种命令,处理系统控制模块发来的这些命令,打开中断。如果系统控制模块命令关机下电,则智能电源模块对所有模块(也包括自己)进行下电处理。 智能电源模块上的管理软件处理流程图如图 1-3 所示。二、试题二(总题数:1,分数:8.00)阅读以下关于某四轴飞行器系统设计的说明,回答问题 1 至问题 4,将解答填入
35、答题纸的对应栏内。【说明】 在某四轴飞行器系统设计中,利用惯性测量单:元(IMU)、PID 电机控制、24G 无线遥控通信和高速空心直流电机驱动等技术来实现一个简易的嵌入式四轴飞行器方案。整个系统的设计包括飞控板和遥控板两部分,两者之间采用 24G 无线模块进行数据传输。飞控板采用高速单片机 STM32 作为处理器,采用含有三轴陀螺仪、三轴加速度计的运动传感器 MPU6050 作为惯性测量单元,通过 24G 无线模块和遥控板进行通信,最终根据 PID 控制算法以 PWM 方式驱动空心电机来控制目标。 图 2-1 为李工设计的系统总体框图。飞控板和遥控板的核心处理器都采用 STM32F103。飞
36、控系统的惯性测量单元采用 MPU6050 测量传感器,MPU6050 使用 IIC 接口,时钟引脚 SCL、数据引脚 SDA 和数据中断引脚分别接到 STM32 的对应管脚,图 2-2 为该部分原理图。遥控板采用 STM32 单片机进行设计,使用 AD 对摇杆模拟数据进行采集,采用 NRF2401 无线模块进行通信,图 2-3 为该部分原理图。 李工所设计的系统软件同样包含飞控板和遥控板两部分,飞控板软件的设计主要包括无线数据的接收、自身姿态的实时计算、电机 PID 增量的计算和PWM 的电机驱动。遥控板主控制器软件通过 ADC 外设对摇杆数据进行采集,把采集到的数据通过 24G 无线通信模块
37、发送至飞控板。图 2-4 为飞控系统的软件流程示意图。 (分数:8.00)(1).【问题 1】由图 2 一 1 系统总体框图设计可知,飞控板和遥控板之间是用 24G 无线通信进行数据传输,各自主处理器和无线通信模块之间是 SPI 接口。同时,在飞控板上,处理器和惯性测量单元是通过IIC 进行数据交互。以下关于 SPI 接口和 IIC 接口的描述中,正确的是:_(1)、_(2)、_(3)、_(4)。 ASPI 和 IIC 都是主从式通信方式 BSPI 的数据收发线是各自独立的,IIC 也是同样 CSPI 和 IIC 的传输都不需要片选控制 DIIC 总线是一个多主机的总线,可以连接多于一个能控制
38、总线的器件到总线 EIIC 总线包括标准模式,快速模式和高速模式,相互之间的传输速度差异并不大 F在原理设计中,到底采用 SPI 和 IIC 哪种方式,需要依据外设芯片的接口而定 GSPI 是一种环形总线结构 H在 IIC 总线上,可以有多个从设备具有相同的 IIC 地址(分数:2.00)_正确答案:(正确答案:(1)(4):A、D、F、G)解析:解析:由图 2-1 系统总体框图可知,飞控板和遥控板之间是用 24G 无线通信进行数据传输,各自主处理器和无线通信模块之间是 SPI 接口。同时,在飞控板上,处理器和惯性测量单元是通过 IIC 进行数据交互。 IIC(Inter-Integrated
39、 Circuit)和 SPI(Sefial Peripheral Interface)这两种通信协议非常适合近距离低速芯片间进行通信。Philips(for IIC)和 Motorola(for SPI)出于不同背景和市场需求制定了这两种标准通信协议。IIC 开发于 1982 年,SPI 总线首次推出是在 1979 年。 SPI 包含 4 根信号线,分别是: (1)SCLK:Serial Clock(output from master) (2)MOSI,SIMO:Master Output,Slave Input(output from master) (3)MISO,SOMI:Master
40、 Input,Slave Output(output from slave) (4)SS:Slave Select(actiVe low,outputfrom master) SPI 是单主设备(single-master)通信协议,这意味着总线中只有一支中心设备能发起通信。当 SPI 主设备想读写从设备时,它首先拉低从设备对应的SS 线(SS 是低电平有效),接着开始发送工作脉冲到时钟线上,在相应的脉冲时间上,主设备把信号发到MOSI 实现“写”,同时可对 MISO 采样而实现“读”。SPI 有 4 种操作模式模式 0、模式 1、模式 2 和模式 3,它们的区别是定义了在时钟脉冲的哪条边沿转
41、换(toggles)输出信号,哪条边沿采样输入信号,还有时钟脉冲的稳定电平值(就是时钟信号无效时是高还是低)。 与 SPI 的单主设备不同,IIC 是多主设备的总线,IIC 没有物理的芯片选择信号线,没有仲裁逻辑电路,只使用两条信号线serial data(SDA)和serial clock(SCL)。IIC 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(34 Mbps),另外一些变种实现了低速模式(10 kbps)和快速+模式(1 Mbps)。 物理实现上,IIC 总线由两根信号线和一根地线组成。IIC 通信过程大概如下。首先,主设备发一个 START 信号,这个信号就像对所有其他设备喊:请大家注意!然后其他设备开始监听总线以准备接收数据。接着,主设备发送一个 7 位设备地址加一位的读写操作的数据帧。当所有设备接收数据后,比对地址以判断自己是否为目标设备。如果比对不符,设备进入等待状态,等待 STOP 信号的来临;如果比对相符,设备会发送一个应答信号一 ACKNOWLEDGE 作回应。当主设备收到应答后便开始传送或接收数据。数据帧大小为 8 位,尾随 1位的应答信号。主设备发送数据,从设备应答;相反主设备接收数据,主