欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】中级嵌入式系统设计师下午试题-5及答案解析.doc

    • 资源ID:1322606       资源大小:187KB        全文页数:19页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】中级嵌入式系统设计师下午试题-5及答案解析.doc

    1、中级嵌入式系统设计师下午试题-5 及答案解析(总分:75.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读以下关于嵌入式系统 I2C 总线接口电路的技术说明,根据要求回答问题 1 至问题 4。【说明】I2C 总线是一种多主控器总线,对多个 IC 器件具有控制总线的能力。采用串行 I2C 总线技术设计接口电路,可节约嵌入式系统微处理器的 I/O 端口。图 6-17 给出了一种实现了键盘、时钟和实时参数存储三个功能模块的应用电路。图 6-17 中仅应用 I2C 总线构成单主控器的系统。此时时钟线 SCL 仅由微处理器驱动,因此可以用微处理器的一根 I/O 线作为 S

    2、CL 信号线,将其设置为输出方式,由软件控制产生串行时钟信号;用微处理器的另一根 I/O 线作为 I2C 总线的串行数据线,由软件控制在时钟的低电平期间读取或输出数据。在图 6-17 中采用 ATMEL 公司的 E2PROM AT24C64(IC8)实现了系统初始化数据、仪表系数、用户设置的参数或某些重要的实时数据参数的存储。DS1302 时钟芯片可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达 2.55.5 V。8 位并行 I/O 口扩展器件 PCF8574 具有口输出锁存功能,可直接驱动大电流 LED 管,同时还带有一个中断请求输出端 INT(漏极开路方式)。在

    3、图 6-17 中,将PCF8574 器件的 8 位准双向口外挂了一个 44 键盘矩阵。(分数:15.00)(1).【问题 1】电阻 R36、R37 在图 6-17 电路中有何作用。请在 100 字以内简要说明。(分数:3.75)_(2).【问题 2】图 6-18 给出了 I2C 总线开始条件与停止条件的时序图。通常 I2C 总线的开始条件、停止条件总是由U (1) /U产生。在开始条件产生后,总线被认为处于U (2) /U,在完成数据传输产生停止条件后,总线被认为处于空闲状态。在时钟信号的高电子期间,SDA 传输线上的电平必须稳定,只有在 SCL传输线上的时钟信号为U (3) /U,数据线上的

    4、高低电子才允许发生变化,此时传送的数据才有效。每一个写到 SDA 传输线上的数据字节必须为 8 位长度,每一次传输的字节数没有限制,每传输一个字节必须跟一个U (4) /U,传输字节时最高位在前。(分数:3.75)_(3).【问题 3】I2C 总线的寻址过程是在U (5) /U后发送第 1 个字节,该字节地址决定主控器选择哪一个从器件,还可以通过U (6) /U方式同时寻址所有的I2C 器件,但当某个 I2C 器件不需要进行数据传输时,将忽略该寻址方式而不作任何应答。如果某个 I2C 器件需要获取数据,则将发出U (7) /U信号并作为一个U (8) /U。(分数:3.75)_(4).【问题

    5、4】 以下是利用 MCS-51 系列单片机汇编语言实现模拟 I2C 总线接收 N 个字节数据的程序段(RDNBYTE),请将汇编程序代码中(9)(13)空缺处的内容填写完整。表 6-21 所示为 MCS-51 系列单片机部分汇编指令及寄存器说明。 B表 6-21 MCS-51 系列单片机部分汇编指令及寄存器说明/B 指令 功能 寄存器 功能MOV 数据传送指令 A 累加器INC 加 1 指令 R1 寄存器JB 转移指令,直接寻址位为 1 时转移 R3 寄存器DJNZ 转移指令,寄存器/直接寻址单元减 1,结果不为零时转移 F0 用户标志位SJMP 相对短转移LCALL长调用指令RET 子程序返

    6、回指令程序中已定义了标号为 START 的启动位子程序、标号为 STOP 的停止位子程序、标号为 MACK 的发送应答位子程序、标号为 MNACK 的发送非应答位子程序、标号为 CACK 的应答位检查子程序、标号为 WRBYT 的向VSDA 线上发送 1 个数据字节的子程序、标号为 RDBYT 的从 VSDA 线上读取 1 个数据字节的子程序。调用RDNBYTE 程序的归一化操作命令是 MOV SLA,#SLAR MOV NUMBYTE,#N LCALL RDNBYT 【汇编程序代码】 VSDA EQU P1.6 ;虚拟 I2C 总线数据线 VSCL EQU P1.5 ;虚拟 I2C 总线时钟

    7、线 SLA EQU 50H ;寻址字节存放单元 NUMBYTE EQU 51H ;传送字节数存放单元 MTD EQU 30H ;发送数据缓冲区 MRD EQU 40H ;接收数据缓冲区 SLAW0 EQU 0AOH ;写 AT24C64(器件地址为 0AOH) SLAR0 EQU 0A1H ;读 24C64 SLAW1 EQU 40H ;写 PCF8574(器件地址为 040H) SLAR1 EQU 41H ;读 PCF8574 ;模拟 I2C 总线接收 N 个字节数据 RDNBYTE:MOV R3,NUMBYTE LCALL START ;发送启动位 MOV A,SLA ;发送寻址字节(读)

    8、 U(9) /U U(10) /U JB F0,RDNBYTE RDN: MOV R1,#MRD RDN1: U(11) /U MOV R1,A DJNZ R3,ACK ;N 个字节读完否?未完转 U(12) /U LCALL STOP ;发送停止位 RET ACK: U (13) /U INC R1 SJMP RDN1 ;转读下一个字节数据 (9)(13)空缺处供选择的答案 ALCALL START BLCALL MACK CLCALL CACK DLCALL RDBYT ELCALL WRBYT FLCALL MNACK GLCALL STOP(分数:3.75)_二、B试题二/B(总题数:

    9、1,分数:15.00)阅读以下关于基于嵌入式系统的住宅安全系统的技术说明,根据要求回答问题 1 至问题 4。【说明】基于某嵌入式系统的住宅安全系统可使用传感器(如红外探头和摄像头等)来检测各种意外情况,如非法进入、火警及水灾等。房主可以在安装该系统时配置安全监控设备(如传感器、显示器和报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个 D 编号和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出的电话号码。当系统检测到一个传感器事件时,就激活警报,拨出预置的电话

    10、号码,并报告关于位置和检测到的事件的性质等信息。图 6-19 所示是住宅安全系统的顶层数据流图,图 6-20 所示是住宅安全系统的第 0 层数据流图,图 6-21 所示是对住宅安全系统的第 0 层数据流图中加工 4 的细化图。(分数:15.00)(1).【问题 1】请将住宅安全系统的顶层数据流图(图 6-19)中(A)(D)空缺处,以及第 0 层数据流图(图 6-20)中(E)空缺处的内容填写完整。(分数:3.75)_(2).【问题 2】将图 6-21 所示的加工 4 的细化图中的数据流补充完整,请按以下答题格式分别指明加工名称、数据流名称和数据流方向(输入/输出)。答题格式示例:4.2 评估

    11、设置(告警数据)4.3 产生告警信号或4.3 产生告警信号(告警类型)(分数:3.75)_(3).【问题 3】修改在住宅安全系统第 0 层数据流图(图 6-20)中的数据存储“配置信息”,将会影响第 0 层数据流图中的哪些加工?(分数:3.75)_(4).【问题 4】数据流图是系统分析阶段用于描述系统逻辑模型的图形描述工具。嵌入式实时系统分析阶段的主要任务是确定需要解决的问题或需要完成的目标及其U (1) /U,同时对实时系统的软/硬件做全面的分析,并对软/硬件做合理的分解,为实时系统的设计打下基础。实时系统的分析需要建模和U (2) /U,以便系统分析人员估计“时间和大小”。建立系统模型时应

    12、明确体现U (3) /U、U (4) /U、功能特点及约束条件等因素。(分数:3.75)_三、B试题三/B(总题数:1,分数:15.00)阅读以下说明和 x86 汇编语言代码,根据要求回答问题 1 至问题 3。【说明】在某嵌入式安全监测系统中,对某任务的加工操作需通过数据采集(Collect_task)、计算(Calculate_task)这两个不同的程序段来完成,并且执行程序段 Collect_task 和 Calculate _task 的顺序及次数有如下约定:Collect_task(2 次)Calculate_task(1 次)Collect_task(5 次)Calculate_ta

    13、sk(4 次)Collect_task(2 次)Calculate_task(2 次)表 6-22 所示为 x86 系统部分指令及寄存器说明。B 表 6-22 x86 系统部分指令及寄存器说明表/B 指令 功能 寄存器 功能MOV 传送字或字节 CS 代码段寄存器LEA 地址传送 段寄存器 DS 数据段寄存器ADD 加法指令 SS 堆栈段寄存器SUB 减法指令 ES 附加段寄存器PUSH 进栈操作 AX 累加器POP 出栈操作 BX 基址寄存器SAL 算术左移 CX 计数寄存器CALL 子程序调用数据寄存器DX 数据寄存器DEC 减 1 指令 BP 基数指针寄存器JMP 无条件转移指令 SP

    14、堆栈指针寄存器JZ/JNZ 结果为 0/不为 0 时转移 SI 源变址寄存器JL/JG 结果小于/大于转移专用寄存器DI 目的变址寄存器JC/JNC 有进(借)位/无进(借)位时转移INT 软中断RET 返回主程序IRET 从中断服务程序返回采用逻辑尺控制法实现以上要求的汇编程序如下:【汇编程序代码】N EQUU (1) /URULE EQUU (2) /UCODE SEGMENTASSUME CS:CODESTART: MOV AX,RULEMOV CL,NLOP: SAL AX,1JC U(3) /UCollect: CALL Collect_task ;执行 Collect_task 程

    15、序段JMP U (4) /UCalculate:CALL Calculate_task ;执行 Calculate_task 程序段NEXT: U(5) /UJNZ U (6) /UMOV AH,4CH ;功能号送入 AH 寄存器INT U (7) /U ;结束程序运行,中断返回U(8) /UEND START(分数:15.00)(1).【问题 1】请根据试题的要求,将汇编程序代码中(1)(8)空缺处的内容填写完整。(分数:5.00)_(2).【问题 2】汇编程序是一种系统软件,它的基本功能是将汇编语言源程序翻译成(1)。对于一个 N 行汇编语言代码的源程序,由于汇编指令中形成操作数地址的部分

    16、可能出现后面才会定义的符号,因此汇编程序一般至少需要(2)次扫描程序才能完成翻译过程。(分数:5.00)_(3).【问题 3】编译程序的功能是什么?解释程序与编译程序的主要区别是什么?请在 150 字以内简要说明。(分数:5.00)_四、B试题四/B(总题数:1,分数:15.00)1.【说明】 网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色,分别是客户机和服务器。 一般发起通信请求的应用程序称为客户软件,该应用程序通过与服务器进程建立连接来发送请求,然后等待服务器返回所请求的内容。服务器软件一般是指等待接收并处理客户机请求的应用程序,通常由系统执行,

    17、等待客户机请求,并且在接收到请求之后,根据请求的内容,向客户机返回合适内容。 本题中的程序较为简单,客户机接收用户在键盘上输入的文字内容,服务器将客户机发送来的文字内容直接返回给客户机,在通信过程中服务器方和客户机方都遵守的通信协议如下: 由客户机首先发送请求,该请求由首部和内容两大部分组成,两个部分各占一行文字,通过行结束符/n隔离。 首部只有一个 Length 域,用于指定请求的内容部分的长度,首部的结构为 关键词 Length+ +数值+/n 内容部分为一行文字,其长度必须与 Length 域的数值相符。 例如,客户机的请求为“Length 14/n hello,welcome to m

    18、y home!”,服务器接收请求处理后返回文字“Hello,welcome to my home!”。 【Socket 程序】 /服务器主程序部分 #includestdio.h /引用头文件部分略 #define SERVER_PORT 8080 /服务器监听端口号为 8080 #define BACKLOG 5 /连接请求队列长度 int main(int argc,char *argv ) int listenfd,connfd; /监听套接字、连接套接字描述符 struct sockaddr_in servaddr; /服务器监听地址 listenfdU (1) /U, /创建用于监听

    19、的套接字 if(listenfd0) fprintf(stderr,“创建套接字错误!“) /套接字创建失败时打印错误信息 exit(1); bzero(&servaddr.sizeof(servadd); /将地址结构置空 servaddr.sin_familyAF_INET; /设置地址结构遵循 TCP/IP 协议 servaddr.sin_addrs_addrhtonl.U (2) /U /设置监听的 IP 地址为任意合法地址,并将该地址转换为网络字节顺序 servaddr.sin_portU (3) /U; /设置监听的端口,并转化为网络字节顺序 if(bind(4)0) fprint

    20、f(stderr,“绑定套接字与地址!“), exit(1); /将监听地址与用于监听的套接字绑定,绑定失败时打印错误信息 if(listen(listedfd,BACKLOG)0) fprintf(stderr,“转换套接字为监听套接字!“); exit(1); /将用于监听的套接字由普通套接字转化为监听套接字 for(;) connfdU (5) /U; /从监听套接字的连接队列中接收已经完成的连接并创建新的连接套接字 if(connfd0) fprintf(stderr,“接收连接失败!“); exit(1); /接收失败打印错误信息 serv_respon(connfd); /运行服务

    21、器的处理函数 U(6) /U; /关闭连接套接字 close(listenfd); /关闭监听套接字 /服务器通信部分 #includestdio.h /引用头文件部分略 void serv_respon(int sockfd) int nbytes; char buf1024 for(;) nbytesread_requ(sockfd,buf,1024); /读出客户机发出的请求,并分析其中的协议结构,获知请求的内 /部分的长度,并将内容复制到缓冲区buf 中 if(nbytes=0) return; /如客户机结束发送就退出 else if(bytes0) fprintf(siderr,“

    22、读错误情息:%s/n“,strerror(errno); return; /读请求错误打印错误信息 if(write_all(sockfd,buf,nbytes)0) /将请求中的内容部分反向发送回客户机 fprintf(siderr,“写错误信息:%s/n“,strerror(errno); int read_requ(int sockfd,char*buf int size) char inbuf256, int n; int i; iread_line(sockfd,inbuf,256); /从套接字接收缓冲区中读出一行数据,该数据为客户请求的首部 if(i0) return(i); e

    23、lse if(i0) return(0); if(strncmp(inbuf,“ “,6)0) sscanf(U (7) /U,“%d“,&n),/从缓冲区 buf 中读出长度信息 else sprintf(buf,“ “,14); return(14); /取出首部 Length 域中的数值,该数值为内容部分的长度 return(read_all(sockfd,buf,n),/从接收缓冲区中读出请求的内容部分 int get_char(int fd,char*ch) /*get_char 的处理方式较为特殊,并不是每次调用 read 函数读一个字符,而是一次从缓冲区中读一块内容,再一次一个字

    24、符提交给函数 read_line,如果提交完了就再读一块,这样可以提高读缓冲区的效率。另外,由于客户机是分两次调用 writ_all 函数将请求的首部和内容发送给服务器,因此 get_char 不会取出请求内容部分的字符*/ /声明静态变量,在 get_char 多次被调用期间,该变量的内存不释放 static int offset=0; static int size0; static char buffC1024; for(;size0U (8) /U;) sizeread(M,bur,1024),/一次从套接字缓冲区中读出一个数据块 if(size0) if(errnoEINTR) si

    25、ze0; contine;/EINTR 表示本次读操作没有成功,但可以继续使用该套接字读出数 i else return(-1); offset = 0, /读出数据后,将偏址置为 0 *ch = bufU (9) /U; /将当前的字符取出,并将偏址移向下一字符 return(1); int read_line(int fd,char * buf,int maxlen) /函数 read_line 的作用是读出请求的首部,其处理的方法是每次调用 get_char 函数 /取出一个字符,检查该字符是否是回车符/n,如果是回车符,就返回请求的首部 int i,n; char ch; for(i=

    26、0;imaxlen;) n=get_char(fd,&ch);/取出一个字符 if(n=1) buffi+ch;/将字符加入字符串中 if(U (10) /U) break; else if(n0) return(-1); else break; bufi=/0; return(i); 【部分 Socket 数据结构与函数说明】 1地址结构 sockaddr_in 类型的结构定义; sockaddr_in 是通用套接字结构 SOCkaddr 在TCP/IP 协议下的结构重定义,为 TCP/IP 套接字地址结构。 Struct sockaddr_in short int sin_family;

    27、/地址类型 AF_XXX,其中 AF_INET 为 TCP/IP 专用 unsigned short int sin_port; /端口号 struct in_addr sin_addr; /Internet 地址 /端口号以及 Internet 地址使用的是网络字节顺序,需要通过函数 htons 转换 struct_inaddr _u32 s_addr; /类型为 unsignel long hostent 类型的结构定义: struct hostent char *h_name; /主机的正式名称 char* * h_aliases; /别名列表 int h_addrtvPe /主机地址类

    28、型:AF_XXX int h_length: /主机地址长度:4 字节(32 位) char* *h_addr_list; /主机 IP 地址列表 #define h_addr h_addr_list0 2基本函数 int socket(int domain,int type,int protocol); 函数 socket 创建一个套接字描述符,如果失败则返回-1。domain 为地址类型;type 为套接字类型,本题中为 SOCK_STREAM;protocol 指定协议,本题中为0。 int connect(int sockfd,struct sockaddr *servaddr,int

    29、 addrlen); 函数 connect 与服务器建立一个连接,成功返回 0,失败返回-1。servaddr 为远程服务器的套接字地址,包括服务器的 IP 地址和端口号;addrlen 为地址的长度。 int read(int fd,char * bur,int len); int write(int fd,char *buf,int len); 函数 read 和 write 从套接字读和写数据,成功返回数据量大小,否则返回-1。buf 指定数据缓冲区,len 指定接收或发送的数据量大小。 int bind(int sockfd,struct sockaddr *myaddr,int ad

    30、drlen); 函数 bind 将本地地址与套接字绑定在一起,成功返回 0,否则返回-1;myaddr 是本机地址:addrlen 为套接字地址结构的长度。 int listen(int sockfd,int backlog);函数 listen 将一个套接字转换为倾听套接字,成功返回 0,否则返回-1;backlog 为请求队列的最大长度。 int accept(int sockfd,struct sockaddr *addr,int *addrlen); 函数 accept 从监听套接字的完成连接中接收一个连接,如果完成连接队列为空,那么这个进程睡眠,失败则返回1,成功时返回新的套接字描述

    31、符。sockfd 为监听套接字, addr 为客户机的地址,addlen 为地址长度,在调用时用常量 NULL 代替 addr 与 addlen 表示无需取出客户机的地址信息。 struct hostent *gethostbyname(const char *hostname); 函数 gethostbyname 查询指定的域名地址对应的 IP 地址,返回一个 hostent 结构的指针,如果不成功则返回 NULL。 3用户自定义函数 int read_all(int fd,void *buf,int nbyte); 函数 read_all 从参数 fd 指定的套接字描述符中读取 nbyte

    32、s 字节数据至缓冲区 bur 中,成功则返回实际读的字节数(可能小于 nbyte),失败则返回-1。 int write_all(int fd,void * buf,int nbyte); 函数 write_all 向参数 fd 指定的套接字描述符中写入缓冲区 buf 前nbyte 字节的数据,成功则返回实际写的字节数(始终等于 nbyte),失败则返回-1。 write_requ 函数为客户机发送请求的函数。 read_requ 函数为服务器获取请求的函数。(分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)阅读以下关于嵌入式操作系统软件编码优化的技术说明,根据要求回答问题

    33、 1 至问题 5。【说明】由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。图 6-22 给出了两个算术运算的程序段(a)、(b)。(分数:15.00)(1).【问题 1】在嵌入式系统设计过程中,给定一份软件设计规格说明书后,下一步的工作就是编写代码。通常编码工作包含哪些步骤?(分数:3.00)_(2).【问题 2】图 6-22 所示的(a)、(b)程序段的功能是完全一样的,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。请在 200 字以内归纳这两个算术运算程序段所采用的实现方法。(分数:3.00)_(3).【问题 3】在一台

    34、采用 S3C44BOX 微处理器(32 位 RISC 结构)的嵌入式系统中,将图 6-22所示的(a)、(b)程序段分别重复 11 000 次,(a)程序段需要 2.13 ms;(b)程序段需要 1.01 ms。由此可见,在进行算术运算编码时遵守哪些编码准则?(分数:3.00)_(4).【问题 4】在嵌入式系统中,由于软/硬件资源有限,且系统对实时性和可靠性要求较高,因此在进行嵌入式软件开发时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。请具体说明在编写代码时,需要做到哪几点编码准则?(分数:3.00)_(5).【问题 5】编译器对程序进行一定的优化是非常有必要的,高级

    35、语言的程序可以被转化为汇编语言的指令形式。通常优化的方法有(1)、循环优化、废代码的清除等。对嵌入式系统进行性能测试可以衡量系统的实时性,分析嵌入式软件的优劣,同时分析程序的执行时间可以帮助分析 CPU 功耗等特性。最坏执行时间是指(2)。(分数:3.00)_中级嵌入式系统设计师下午试题-5 答案解析(总分:75.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读以下关于嵌入式系统 I2C 总线接口电路的技术说明,根据要求回答问题 1 至问题 4。【说明】I2C 总线是一种多主控器总线,对多个 IC 器件具有控制总线的能力。采用串行 I2C 总线技术设计接口电路,

    36、可节约嵌入式系统微处理器的 I/O 端口。图 6-17 给出了一种实现了键盘、时钟和实时参数存储三个功能模块的应用电路。图 6-17 中仅应用 I2C 总线构成单主控器的系统。此时时钟线 SCL 仅由微处理器驱动,因此可以用微处理器的一根 I/O 线作为 SCL 信号线,将其设置为输出方式,由软件控制产生串行时钟信号;用微处理器的另一根 I/O 线作为 I2C 总线的串行数据线,由软件控制在时钟的低电平期间读取或输出数据。在图 6-17 中采用 ATMEL 公司的 E2PROM AT24C64(IC8)实现了系统初始化数据、仪表系数、用户设置的参数或某些重要的实时数据参数的存储。DS1302

    37、时钟芯片可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达 2.55.5 V。8 位并行 I/O 口扩展器件 PCF8574 具有口输出锁存功能,可直接驱动大电流 LED 管,同时还带有一个中断请求输出端 INT(漏极开路方式)。在图 6-17 中,将PCF8574 器件的 8 位准双向口外挂了一个 44 键盘矩阵。(分数:15.00)(1).【问题 1】电阻 R36、R37 在图 6-17 电路中有何作用。请在 100 字以内简要说明。(分数:3.75)_正确答案:()解析:R36、R37 分别是 I2C 串行总线上双向的数据线 SDA 与时钟线 SCL 的上拉电阻

    38、这是一道要求读者掌握 I2C 串行总线接口电路中各个部件作用的电路分析题。本题的解答思路如下:I 2C 串行总线有两根信号线:一根是双向的数据线 SDA;另一根是时钟线 SCL。总线上受控器件的串行数据线 SDA 都接到总线的 SDA 线上,各受控器件的时钟线 SCL 接到总线的 SCL 上。在图 6-17 所示的电路中,电阻 R36、R37 的阻值为 10 k,分别接在 AT24C64、 DS1302、PCF8574 芯片的时钟线 SCL 和数据线 SDA 上。由于 I2C 总线接口均采用漏极开路(Open-drain)或集电极开路(Open-collector)的方式来完成线与(Wired

    39、 AND)功能,因此需在数据线 SDA、时钟线 SCL 上接人上拉电阻。可见 R36、R37 分别是 I2C 串行总线上双向的数据线 SDA 与时钟线 SCL 的上拉电阻。另外,设计 I2C 总线接口电路时需要注意,总线的驱动能力以所连接器件的负载电容量不超过 400 pF为宜。(2).【问题 2】图 6-18 给出了 I2C 总线开始条件与停止条件的时序图。通常 I2C 总线的开始条件、停止条件总是由U (1) /U产生。在开始条件产生后,总线被认为处于U (2) /U,在完成数据传输产生停止条件后,总线被认为处于空闲状态。在时钟信号的高电子期间,SDA 传输线上的电平必须稳定,只有在 SC

    40、L传输线上的时钟信号为U (3) /U,数据线上的高低电子才允许发生变化,此时传送的数据才有效。每一个写到 SDA 传输线上的数据字节必须为 8 位长度,每一次传输的字节数没有限制,每传输一个字节必须跟一个U (4) /U,传输字节时最高位在前。(分数:3.75)_正确答案:()解析:(1)主器件 (2)忙状态(3)低电平 (4)应答位 ACK这是一道要求读者阅读 I2C 总线开始条件与停止条件的时序图,并理解 I2C 总线数据有效性,数据字节格式的综合分析题。本题的解答思路如下:每一个 I2C 总线器件都通过惟一的地址进行识别,根据其特性,可作为发送器或接收器工作。由于连接到 I2C 总线上

    41、的器件各不相同(如有 CMOS 器件、NMOS 器件、TTL 器件等),逻辑。或逻辑 1 的电平会根据电源电压的高低发生变化,因此,每传输一个位就产生一个时钟脉冲。在图 6-18 所示的时序图中,I 2C 总线的开始条件是指当 SCL 为高电平时,SDA 产生由高电平到低电平的跳变。停止条件是指当 SCL 为高电平时,SDA 产生由低电平到高电子的跳变。开始和停止条件总是由主器件产生。在开始条件产生后,总线被认为处于忙状态,在完成数据传输产生停止条件后,总线被认为处于空闲状态。因此(1)空缺处应填入“主器件”,(2)空缺处应填入“忙状态”。I 2C 总线数据有效性是指在时钟信号的高电平期间,S

    42、DA 传输线上的电平必须稳定,只有在 SCL 传输线上的时钟信号为低电平时,数据线上的高低电子才允许发生变化。因此(3)空缺处应填入“低电子”。I 2C 总线数据字节的格式规定,每一个写到 SDA 传输线上的数据字节必须为 8 位长度,每一次传输的字节数没有限制,每传输一个字节必须跟一个应答位 ACK(见图 6-18),传输字节时最高位在前(MSB-first)。如果接收器因为执行其他功能(如中断服务)而不能接收剩余的数据字节时,接收器就保持时钟线 SCL 为低电平强制发送器进入等待状态,只有当接收器准备接收其他字节并释放 SCL 传输线时,数据传输才会继续进行。可见,(4)空缺处应填入“应答位 ACK”。(3).【问题 3】I2C 总线的寻址过程是在U (5) /U后发送第 1 个字节,该字节地址决定主控器选择哪一个从器件,还


    注意事项

    本文(【计算机类职业资格】中级嵌入式系统设计师下午试题-5及答案解析.doc)为本站会员(吴艺期)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开