一、引言
自《嵌入式系统设计师考试复习笔记之存储管理篇》在嵌入式在线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问一些有关考试的问题,希望得到我的复习笔记的其他部分。我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使我萌生了将我以前的复习笔记、考试经验结合大纲教程并重新按《教程》的章节顺序整理一份适合考生复习的笔记手册,笔记后面再分析历年的真题,按章节考点找出相关的考题进行分析,希望能和有兴趣的人们一起讨论讨论。
嵌入式系统设计师的一天考试分为上午和下午部分,两部分的考试方式、试题难度、考点分布和复习方法都是不同的。这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布在上午的75道选择题之中。
从历年的真题和考试大纲来看,上午的选择题主要考查一些基本概念,重要原理的理解,一些关键技术和一些重要的原理引申出来的简单计算。根据这些考试特点,复习的时候可以采用适当的策略,当然每个人的方法都是不一样的,适合自己的办法才是最好的办法。方法大家可以自己慢慢去体会,我的也不多说了,通过笔记和真题分析就可以体现处理。对于很多关键的知识点和基本概念,除了记住之外还要彻底理解,否则出题的时候会进行一些变换,或者引申一些计算,那么就算你知道考那个考点,可能你也做不好。
在复习的过程中,你要记住:你不是要考一个很高的分数,而是要考一个通过的分数,在复习过程中可以放弃一些内容,只要保证在大部分基本概念,关键技术,重要原理和历年考点上都把握住,能够拿到需要的分数就可以了。
(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(2)嵌入式系统发展的4个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。
(3)知识产权核(IP核):具有知识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。
(4)IP核模块有行为、结构和物理3级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。
2、嵌入式系统的组成:硬件层、中间层、系统软件层和应用软件层
(1)硬件层:嵌入式微处理器、存储器、通用设备接口和I/O接口。
嵌入式核心模块=微处理器+电源电路+时钟电路+存储器
Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。
(2)中间层(也称为硬件抽象层HAL或者板级支持包BSP):它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。
BSP有两个特点:硬件相关性和操作系统相关性。
设计一个完整的BSP需要完成两部分工作:
A、 嵌入式系统的硬件初始化和BSP功能。
片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。
板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。
系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。
B、 设计硬件相关的设备驱动。
(3)系统软件层:由RTOS、文件系统、GUI、网络系统及通用组件模块组成。
RTOS是嵌入式应用软件的基础和开发平台。
(4)应用软件:由基于实时系统开发的应用程序组成。
(1)定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。
(2)区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。
(3)特点:时间约束性、可预测性、可靠性、与外部环境的交互性。
(4)硬实时(强实时):指应用的时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如:航天、军事。
(5)软实时(弱实时):指某些应用虽然提出了时间的要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统。
(6)任务的约束包括:时间约束、资源约束、执行顺序约束和性能约束。
(1)调度:给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程。
(2)抢占式调度:通常是优先级驱动的调度,如uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。
(3)非抢占式调度:通常是按时间片分配的调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如WinCE。优点是上下文切换少;缺点是处理器有效资源利用率低,可调度性不好。
(4)静态表驱动策略:系统在运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务的起始运行时刻及运行时间。
(5)优先级驱动策略:按照任务优先级的高低确定任务的执行顺序。
(6)实时任务分类:周期任务、偶发任务、非周期任务。
(7)实时系统的通用结构模型:数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。
(1)冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相同。例如:8086、ARM7、MIPS…
(2)哈佛结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。例如:AVR、ARM9、ARM10…
(3)CISC与RISC的特点比较(参照教程22页)。
计算机执行程序所需要的时间P可以用下面公式计算:
P=I×CPI×T
CPI:为执行每条指令所需要的平均周期数。
T:每个机器周期的时间。
(4)流水线的思想:在CPU中把一条指令的串行执行过程变为若干指令的子过程在CPU中重叠执行。
(5)流水线的指标:
吞吐率:单位时间里流水线处理机流出的结果数。如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。
建立时间:流水线开始工作到达最大吞吐率的时间。若m个子过程所用时间一样,均为t,则建立时间T=mt。
(6)信息存储的字节顺序
A、存储器单位:字节(8位)
B、字长决定了微处理器的寻址能力,即虚拟地址空间的大小。
C、32位微处理器的虚拟地址空间位232,即4GB。
D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。
E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。
F、网络设备的存储顺序问题取决于OSI模型底层中的数据链路层。
(1)根据电路是否具有存储功能,将逻辑电路划分为:组合逻辑电路和时序逻辑电路。
(2)组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。常用的逻辑电路有译码器和多路选择器等。
(3)时序逻辑电路:电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。因此,时序电路中必须包含记忆元件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。
(4)真值表、布尔代数、摩根定律、门电路的概念。(教程28、29页)
(5)NOR(或非)和NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。
(6)译码器:多输入多输出的组合逻辑网络。
每输入一个n位的二进制代码,在m个输出端中最多有一个有效。
当m=2n是,为全译码;当m<2n时,为部分译码。
(7)由于集成电路的高电平输出电流小,而低电平输出电流相对比较大,采用集成门电路直接驱动LED时,较多采用低电平驱动方式。液晶七段字符显示器LCD利用液晶有外加电场和无外加电场时不同的光学特性来显示字符。
(8)时钟信号是时序逻辑的基础,它用于决定逻辑单元中的状态合适更新。同步是时钟控制系统中的主要制约条件。
(9)在选用触发器的时候,触发方式是必须考虑的因素。触发方式有两种:
电平触发方式:具有结构简单的有点,常用来组成暂存器。
边沿触发方式:具有很强的抗数据端干扰能力,常用来组成寄存器、计数器等。
(1)总线是各种信号线的集合,是嵌入式系统中各部件之间传送数据、地址和控制信息的公共通路。在同一时刻,每条通路线路上能够传输一位二进制信号。按照总线所传送的信息类型,可以分为:数据总线(DB)、地址总线(AB)和控制总线(CB)。
(2)总线的主要参数:
总线带宽:一定时间内总线上可以传送的数据量,一般用MByte/s表示。
总线宽度:总线能同时传送的数据位数(bit),即人们常说的32位、64位等总线宽度的概念,也叫总线位宽。总线的位宽越宽,总线每秒数据传输率越大,也就是总线带宽越宽。
总线频率:工作时钟频率以MHz为单位,工作频率越高,则总线工作速度越快,也即总线带宽越宽。
总线带宽 = 总线位宽×总线频率/8, 单位是MBps。
常用总线:ISA总线、PCI总线、IIC总线、SPI总线、PC104总线和CAN总线等。
(3)只有具有三态输出的设备才能够连接到数据总线上,常用的三态门为输出缓冲器。
(4)当总线上所接的负载超过总线的负载能力时,必须在总线和负载之间加接缓冲器或驱动器,最常用的是三态缓冲器,其作用是驱动和隔离。
(5)采用总线复用技术可以实现数据总线和地址总线的共用。但会带来两个问题:
A、需要增加外部电路对总线信号进行复用解耦,例如:地址锁存器。
B、总线速度相对非复用总线系统低。
(6)两类总线通信协议:同步方式、异步方式。
(7)对总线仲裁问题的解决是以优先级(优先权)的概念为基础。
(1)数字集成电路可以分为两大类:双极型集成电路(TTL)、金属氧化物半导体(MOS)。
(2)CMOS电路由于其静态功耗极低,工作速度较高,抗干扰能力较强,被广泛使用。
(3)解决TTL与CMOS电路接口困难的办法是在TTL电路输出端与电源之间接一上拉电阻R,上拉电阻R的取值由TTL的高电平输出漏电流IOH来决定,不同系列的TTL应选用不同的R值。
9、可编程逻辑器件基础(具体参见教程51到61页)
这方面的内容,从总体上有个概念性的认识应该就可以了。
10、嵌入式系统中信息表示与运算基础
(1)进位计数制与转换:这样比较简单,也应该掌握怎么样进行换算,有出题的可能。
(2)计算机中数的表示:源码、反码与补码。
正数的反码与源码相同,负数的反码为该数的源码除符号位外按位取反。
正数的补码与源码相同,负数的补码为该数的反码加一。
例如-98的源码:11100010B
反码:10011101B
补码:10011110B
(3)定点表示法:数的小数点的位置人为约定固定不变。
浮点表示法:数的小数点位置是浮动的,它由尾数部分和阶数部分组成。
任意一个二进制N总可以写成:N=2P×S。S为尾数,P为阶数。
(4)汉字表示法(教程67、68页),搞清楚GB2318-80中国标码和机内码的变换。
(5)语音编码中波形量化参数(可能会出简单的计算题目哦)
采样频率:一秒内采样的次数,反映了采样点之间的间隔大小。
人耳的听觉上限是20kHz,因此40kHz以上的采样频率足以使人满意。
CD唱片采用的采样频率是44.1kHz。
测量精度:样本的量化等级,目前标准采样量级有8位和16位两种。
声道数:单声道和立体声双道。立体声需要两倍的存储空间。
(1)根据码组的功能,可以分为检错码和纠错码两类。检错码是指能自动发现差错的码,例如奇偶检验码;纠错码是指不仅能发现差错而且能自动纠正差错的码,例如循环冗余校验码。
(2)奇偶检验码、海明码、循环冗余校验码(CRC)。(教程70到77页)
(1)性能指标:分为部件性能指标和综合性能指标,主要包括:吞吐率、实时性和各种利用率。
(2)可靠性与安全性
可靠性是嵌入式系统最重要、最突出的基本要求,是一个嵌入式系统能正常工作的保证,一般用平均故障间隔时间MTBF来度量。
(3)可维护性:一般用平均修复时间MTTR表示。
(4)可用性
(5)功耗
(6)环境适应性
(7)通用性
(8)安全性
(9)保密性
(10)可扩展性
性价比中的价格,除了直接购买嵌入式系统的价格外,还应包含安装费用、若干年的运行维修费用和软件租用费。
(1)测量法是最直接最基本的方法,需要解决两个问题:
A、根据研究的目的,确定要测量的系统参数。
B、选择测量的工具和方式。
(2)测量的方式有两种:采样方式和事件跟踪方式。
(3)模型法分为分析模型法和模拟模型法。分析模型法是用一些数学方程去刻画系统的模型,而模拟模型法是用模拟程序的运行去动态表达嵌入式系统的状态,而进行系统统计分析,得出性能指标。
(4)分析模型法中使用最多的是排队模型,它包括三个部分:输入流、排队规则和服务机构。
(5)使用模型对系统进行评价需要解决3个问题:设计模型、解模型、校准和证实模型。
若每一条指令都可以分解为取指、分析和执行三步。已知取指时间t取指=4△t,分析时间t分析=3△t,执行时间t执行=5△t。如果按串行方式执行完100条指令需要 (4) △t。如果按照流水线方式执行,执行完100条指令需要 (5) △t。
(4)A. 1190 B. 1195 C. 1200 D. 1205
(5)A. 504 B. 507 C. 508 D. 510
<答案>:C、B
按照串行的方式,执行完一条指令才能执行下一条指令,那么执行完100条指令的时间为:(4+3+5)×100=1200
按照流水线的方式,可以同时执行多条指令。在第一条指令进行分析的时候,第二条指令已经开始取指;当第一条指令进行执行的时候,第二条指令进行分析,第三条指令取指;当第二条指令进行执行完的时候,第三条指令已经分析完成。依此类推,当第一条指令完成之后,每一个执行的周期就可以完成一条指令。需要注意的是,如果流水线的子过程所用时间不一样长,则吞吐率应以最长子过程来计算。因此,我们可以计算得100条指令的执行时间为:(4+3+5)+(100-1)×5=507。
某总线有104根信号线,其中数据总线(DB)32根,若总线工作频率为33MHz,则其理论最大传输率为 (24) 。(注:本题答案中的B表示Byte)
(24)A. 33 MB/s B. 64MB/s C. 132 MB/s D. 164 MB/s
<答案>:C
根据上面的笔记,总线带宽 = 总线位宽×总线频率/8=32×33/8=132MB/s。
某存储器数据总线宽度为32bit,存取周期为250ns,则该存储器带宽为 (26) 。(注:本题答案中的B表示Byte)
(26)A. 8×106B/s B. 16×106B/s C. 16×108B/s D. 32×106B/s
存储器带宽即总线带宽,总线频率为:1/250ns=4×106
存储器带宽为:32×4×106/8=16×106B/s
处理机主要由处理器、存储器和总线组成,总线包括 (27) 。
(27)A. 数据总线、串行总线、逻辑总线、物理总线
<答案>:D
三极管是可控的开关器件,其饱和与截止状态分别对应开关的接通和断开状态。UBE为基极输入电压,VTH为基极域值电压,如果UBETH,开关应处于 (35) 状态。
(35)A. 接通 B. 三态 C. 断开 D. 高阻
考查电路中最基本的基础知识点,我觉得做不对的根本不能算嵌入式系统开发入门。
如下图所示,若低位地址(A0-A11)接在内存芯片地址引脚上,高位地址(A12-A19)进行片选译码(其中,A14和A16没有参加译码),且片选信号低电平有效,则对下图所示的译码器,不属于此译码空间的地址为 (36) 。
(36)A. AB000H~ABFFFH B. BB000H~BBFFFH
C. EF000H~EFFFFH D. FE000H~FEFFFH
<答案>:D
考查指令运行方面的简单计算。
平均时钟数=(160000+2×30000+4×24000+8×16000)/(160000+30000+24000+16000)=1.93
MIPS是指每秒种执行多少百万条指令,即106。
计算机的运行数度为:400/1.93=207.25=207.3MIPS
计算机要对声音信号进行处理时,必须将它转换为数字声音信号。最基本的声音信号数字化方法时取样-量化法。若量化后的每个声音样本用2个字节表示,则量化分辨率是(12)
(12)A.1/2 B.1/1024 C.1/65536 D.1/131072
<答案>:C
2个字节是16位,其量化分辨率位1/1016=1/65536。
某幅图像具有640×480个象素点,若每个象素具有8位的颜色深度,则可表示(13)种不同的颜色,经过5:1压缩后,其图像数据需要占用(14)(Byte)的存储空间。
(13)A.8 B.256 C.512 D.1024
(14)A.61440 B.307200 C.384000 D.3072000
<答案>:B、A
8位颜色深度可以表示28=256种颜色深度。
经过5:1压缩后的数据大小为:640×480×8/8/5=61440。
若某逻辑门输入A、B和输出F的波形如下图所示,则F(A,B)的表达式为(23)
(23) A.F=A B B.F=A+B
C.F=A异或B D.F=A(B的非)
___ __
A_______| |____| |_______
_______
B_______| |___________
______
F___________| |_______
<答案>:C
考查数字电路的最基本知识点,我觉得这个都搞不清楚很难通过这个考试。
一个4位的二进制计数器,由0000状态开始,经过25个时钟脉冲后,该计数器的状态为24
(24) A.1100 B.1000 C.1001 D.1010
<答案>:C
考查数字电路的最基本知识点,相对上面一题有点难,需要对计数器的工作原理有比较清楚的理解。这个也是搞嵌入式系统的基础中的基础,参考教程38页或相关的数电书籍。
4位的计数器,其计数范围是24=16,0000开始经过16个时钟脉冲之后又回到了开始的状态0000。25-16=9,所以说经过25个时钟之后,其计数器的数值应该是9=1001。
稳压二极管构成的稳压电路的接法是(25)
B.稳压管与限流电阻并联。
C.限流电阻与稳压管串联后,在与负载电阻串联。
D.限流电阻与稳压管串联后,在与负载电阻并联。
<答案>:D
考查模拟电路的最基本知识点,实在太简单,不知道从那里开始分析了。
以下叙述中,不符合RISC指令系统特点的是(26)
(26) A.指令长度固定,指令种类少。
B.寻址方式种类丰富,指令功能尽量增强。
C.设置大量通用寄存器,访问存储器指令简单。
D.选取使用频率较高的一些简单指令。
<答案>:B
考查RISC与CICS的区别,考生应该清楚他们的区别,参加教程22页。
通常所说的32位微处理器是指(27)
(27) A.地址总线的宽度为32位 B.处理器数据长度只能为32位
C.CPU字长为32位 D.通用寄存器数目为32位
<答案>:C
在32位总线系统中,若时钟频率为500MHz,传送一个32位字需要5个时钟周期,则该总线系统的数据传送速率为(28)MB/s。
(28) A.200 B.400 C.600 D.800
<答案>:B
5个时钟周期可以传送4个Byte。
每秒中可以传送:4×(500/5)=400MB/s。
评价一个计算机系统时,通常主要使用(30)来衡量系统的可靠性。
(30) A.评价响应时间
B.平均无故障时间(MTBF)
C.平均修复时间
D.数据处理速率
<答案>:B
考查嵌入式系统性能评价中重要知识点。看过了就会做,每什么分析的,参见教程77页。
就我个人的意见,从内容来看,嵌入式系统基础知识的范围很广,知识点很多,而且没有很强的逻辑性,显得比较凌乱,很难将他们有序的组织在一起。但是也不要害怕,内容虽然多而乱,但是考试的题目都比较简单,有些题目几乎是所见即所得。只要你做过嵌入式或者单片机方面的工作,你都能做出来。一些计算的题目也是一些基本概念的延伸。通过分析历年的真题,一方面可以把握考试的出题方式和考试难度,同时可以把握这部分内容的出题方向和复习的方法。从两年的考试题目数量分布来看,06年10道,07年7道,数量有所较少,但是我觉得这不是一个趋势,08年应该不会少于7道题目的。这部分在嵌入式系统设计里面是相当重要的,有一个良好的基础才能做好下面的事情。如果复习得好,将这7、8分题目拿到手,那么你离45分左右的及格线又迈进了一大步了。