中级嵌入式系统设计师2016下半年下午试题-附答案解析.doc

中级嵌入式系统设计师2016下半年下午试题-附答案解析.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中级嵌入式系统设计师2016下半年下午试题 试题一 阅读以下说明,回答问题。 ? ?【说明】 ? ?某综合化智能空气净化器设计以微处理器为核心,包含各种传感器和控制器,具有检测环境空气参数(包含温湿度、可燃气体、细颗粒物等),空气净化、加湿、除湿、加热和杀菌等功能,并能通过移动客户端对其进行远程控制。 ? ?图1为该系统电气部分连接图,除微处理器外,还包括了片上32KB FLASH,以及SRAM和EEPROM。 ? ? ? ?图1 ?智能空气净化器系统电气部分连接图 1、 ? ?该系统的SRAM的地址线宽度为11,数据线宽度为8,其容量为多少字节? 2、 ? ?该系统分别设计了iOS和Android两种不同操作系统下的客户端程序,二者在开发上都使用MVC(模型(M)-视图(V)-控制器C.)设计模式。在典型的程序设计中,用户可以直接和视图进行交互,通过对事件的操作,可以触发视图的各种事件,再通过控制器,以达到更新模型或数据的目的。请完善图2所示的流程模型。 ? ? ? ?图2 ?流程模型示意图 3、 ? ?该系统采用数字式激光传感器检测PM2.5、PM10,并通过异步串行接口将数据上报给处理器,通信波特率为9600bps,上报周期为1.5秒,数据帧内容包括:报文头、指令号、数据(6字节)、校验和及报文尾,具体字段描述如表所示。 报文通信协议说明表 字节序 名 称 备 注 0 报文头 AA 1 指令号 C0 2 数据1 PM2.5低字节 3 数据2 PM2.5高字节 4 数据3 PM10低字节 5 数据4 PM10高字节 6 数据5 ID字节1 7 数据6 ID字节2 8 校验和 数据1到数据6的字节加和 9 报文尾 AB ? ?王工根据数据报文通信协议,使用C语言编写了对应的数据接收和校验程序,请根据注释要求补全程序。 ? ?程序段如下: ? ?#define uint16_t unsigned short ? ?#define uint8_t unsigned char ? ?uint16_t Pm25; ? ?uint16_t Pm10; ? ?void ProcessSerialData() ? ?{ ? ?uint8_t mData=0; ? ?uint8_t i=0; ? ?uint8_t mPkt[10]={0}; ? ?uint8_t mCheck=0; ? ?while(Serial.available()>0) ? ?{ ? ?mData=Serial.read(); ? ?delay(2); ?//延迟2毫秒 ? ?if(mData==______) ?//等待直到有效数据包接收到 ? ?{ ? ?mPkt[0]=mData; ? ?mData=Serial.read(); ? ?if(mData==______) ? ?{ ? ?mPkt[1]=mData; ? ?mCheck=0; ? ?for(i=0;i<6;i++) ?//接收数据并进行校验计算 ? ?{ ? ?mPkt[i+2]=Serial.read(); ? ?delay(2); ? ?mCheck+=______; ? ?} ? ?mPkt[8]=Serial.read(); ? ?delay(1); ? ?mPkt[9]=Serial.read(); ? ?if(mCheck==______) ?//校验判断 ? ?{ ? ?Serial.flush(); ? ?//请使用位操作方式计算Pm25和Pm10的值 ? ?Pm25=______; ? ?Pm10=______; ? ?} ? ?} ? ?} ? ?} ? ?return; ? ?} ? ?注释: ? ?Serial.available():判断串口接收缓冲器的状态函数。读取串口接收缓冲器的值(128字节寄存器),以判断数据送达到串口。 ? ?返回:串口已经准备好的字节数。 ? ?Serial.read():读取串口函数。 ? ?返回:串口的数据第一个字节,如果没有返回-1。 ? ?Serial.flush():清除串口缓冲器内容函数。 ? ?返回:None。 试题二 阅读以下说明,回答问题。 ? ?【说明】 ? ?王工在采用某16位嵌入式CPU进行A/D采集硬件电路设计时,利用8255控制器C口中的PC0输出控制信号,利用PC7读入AD574的状态信号,利用A口和B口读入AD574

您可能关注的文档

文档评论(0)

k12教育文档 + 关注
实名认证
服务提供商

本人专注于k12教育,英语四级考试培训,本人是大学本科计算机专业毕业生,专注软件工程计算机专业,也可承接计算机专业的C语言程序设计,Java开发,Python程序开发。

1亿VIP精品文档

相关文档