张凯龙_嵌入式系统体系、原理与设计_课后习题
写在前面
该文主要是学习了张凯龙老师的《嵌入式系统体系、原理与设计》后自己写的课后习题,由于个人水平有限,存在纰漏之处请多多批评指正。
第一章 概述 P19
分析计算机、网络的发展过程,简要阐述嵌入式计算系统的出现与发展历程。
随着电子器件技术的不断发展和演化,基于半导体材料的晶体管技术、集成电路技术出现,计算机硬件的体积、功耗降低,处理速度提升才能使专用的微型计算装置“嵌入”到应用对象中;C语言等软件语言的出现支持系统功能复杂化;网络通信技术促进嵌入式系统的发展。
在嵌入式系统发展史上,三次重要的技术飞跃分别是什么?其各自对于嵌入式系统的发展有何促进?
第一次飞跃是集成电路技术的诞生促进嵌入式微处理器的出现,使得硬件可以“嵌入”;第二次飞跃是C语言的出现可以支持复杂功能;第三次飞跃是嵌入式操作系统的出现使得功能更丰富。
辨析嵌入式系统的概念,进而分析其典型组成结构与特点。
嵌入式系统:如果一台计算机(及其软件)是一个大系统中集成的一部分,并且通过特定的硬件装置来控制和/或直接监控该系统,其就被认为是嵌入式的。即首先应该满足的条件是大系统中集成的一部分,其次是通过硬件装置对外界进行感知和做出相应的反应。
组成结构为嵌入式硬件、嵌入式操作系统与服务以及嵌入式应用软件;嵌入式硬件是整个系统的载体,以嵌入式处理器为核心;嵌入式操作系统是管理嵌入式硬件资源并进行服务能力扩展的系统级软件,即提供可定制能力和性能保证;嵌入式软件是面向特定应用所开发的软件系统。
特点:专用性强、资源定制化、多元的非功能属性约束、资源相对受限、一体化硬件设计、技术途径丰富、知识与技术密集。
如何理解嵌入式计算无所不在,同时又日益“消失”在物理世界中?
一方面,随着嵌入式计算的发展,其装置可以嵌入到越来越多的各式应用中,同时嵌入式与大数据、云计算等新型计算模式不断融合,因此称嵌入式计算无处不在。另一方面,由于网络通信技术的发展以及不断丰富的感知与作动能力和提高的集成度,嵌入式系统可以深度嵌入到越来越多的物理对象中,促进信息系统与物理世界的日益融合,因此可以说嵌入式系统日益“消失”在物理世界中。
要设计移动电话软硬件系统,可能需要设计者具备什么样的知识体系?什么样的移动电话可以算作是智能的?
需要具备的知识体系有组成原理与系统结构、数字电路及硬件设计、计算机接口技术、操作系统、数据库技术以及编程语言与软件工程,即需要多领域的、软硬件结合的知识体系。智能的应该是能够与人进行自然的人机交互,并且能够通过外界的反馈信息自主对其内部系统进行调节。
第二章 嵌入式硬件基础 P61
分析、比较TTL电平、CMOS电平和RS-232电平的特点。
TTL电平(电流控制器件,+5V等价于逻辑1,0V等价于逻辑0):输入时,高电平>2.0V,低电平<1.2V;输出时,高电平>2.4V,低电平<0.8V。
CMOS电平(采用12V电源电压):输入时,高电平>8.4V,低电平<3.6V;输出时,高电平>10.8V,低电平<1.2V。
RS-232电平(负逻辑电平):-3-12V为逻辑1,+3+12V为逻辑0。
阐述电路中上下拉电阻的用途和基本工作原理。
上下拉电阻用于防止部分的信号浮动情况。
上拉电阻是指连接在元件信号引脚和高电压之间的电阻,用于将引脚信号钳位在高电平,或者用来在驱动能力不足时提供电流。
下拉电阻是指连接在元件信号引脚和GND之间的电阻,用于将信号钳位在低电平,或者用于吸收电流。
简述漏极开路、推勉电路的工作原理,并解释为何多个漏极开路器件的输出可以进行“线与”连接,而多个推勉电路则不行。
漏极开路由于漏极浮空,因此场效应管只能在I/O向栅极供电时导通并“漏”电流(吸收电流),输出低电平。所以,开漏电路也可以支持多个开漏输出引脚的有上拉电阻限流的“线与”连接。
推勉电路在输出端采用了两个互补的三极管或MOSFET,顶部是P-MOS场效应管,地卜师N-MOS场效应管。当顶部晶体管导通,底部晶体管关闭时,顶部晶体管导通接高电压,输出高电平;反之,顶部晶体管关闭,底部晶体管导通时,底部晶体管接地,输出低电平。由于将两个或多个推勉电路连接在一起时,一端输出为高电平(灌电流)而另一端为低电流(漏电流)时,将在两个引脚之间产生瞬时的大电流,引发总线竞争问题并可能造成电路损坏。
旁路电容、退耦电容的作用是什么?应如何布放?
退耦电容主要起到消除电路之间的寄生耦合、滤除输出信号的干扰和缓冲电荷的作用;应该布放在靠近相应引脚(电源或信号)的地方,电容的电源或信号走线与地线所包围的面积最小。
旁路电容也起到滤波、抗干扰的作用,其主要工作原理是将输入信号中的高频噪声作为滤除对象,将前级携带的高频杂波滤除。布放在输入信号引脚附近。
分析图2.15脉冲计数器的计数过程。
详情参考数字电路逻辑分析,即每次时钟周期进行一次翻转时,都会使四个触发器的数位有翻转或者保持;第一个周期到来时,第一个触发器产生数位1;第二个周期到达时,第一个触发器发生翻转为0,第二个触发器产生数位1;以此类推。
简要阐述嵌入式硬件子系统的组成及其功能。
处理器子系统:是嵌入式计算装置的核心,连接各种外设进行工作。
存储子系统:是计算装置必不可少的功能组件,用于存储程序和数据,有助于提高指令和数据的访问效率。
时钟子系统:为计算系统的运行提供时钟控制脉冲信号,是处理器、存储器、总线以及WDT、UART等I/O有序、正常工作的重要条件。
I/O子系统:是围绕嵌入式处理器扩展出的接口子系统,采用内部总线、板级总线和接口电路连接大容量存储组件和用于交互的I/O组件,用于计算装置与外界设备、操作人员的数据通信和用户交互。
外围电路:用于连接、**甚至是监控,以使得嵌入式硬件的逻辑运行正确且可靠。
调试子系统:用于调试嵌入式系统的软硬件资源总成。
嵌入式系统的硬件形式有哪几种?各有什么特点?
基于通用计算机扩展的嵌入式硬件:其硬件主要采用了“通用计算机+I/O扩展+特殊外围”的架构,重点是对通用计算机硬件进行I/O接口与组件的扩展。
基于领域标准模块集成的嵌入式硬件:以通用或嵌入式处理器为核心设计的单板计算机,集成尽可能完整的领域型功能模块和接口,具有良好的机械、电气性能和可扩展性,可以支持嵌入式系统硬件的快速构建。
针对具体应用设计的嵌入式硬件:构建专门的嵌入式计算机,以减少资源浪费和生产成本
降低嵌入式系统硬件功耗的方法有哪几种?
低功耗器件设计:采用具有动态调节能力的双电源电压机制;增加控制电路休眠的门控电源逻辑,可以让电路某部分长时间断电;根据系统性能需求将时钟动态调整至适当频率,从而降低功耗。
低功耗系统设计:选用低功耗的电子元件和外围器件;选用集成度高的电子元件并充分利用元件内部继承的功能单元;通过寄存器关闭不需要的外设控制器;采用低功耗接口电路。
简述基于EDA软件的硬件电路设计基本流程。
电路原理图设计:在元件库中找到相应元件的符号,进而定义、绘制电路,连接形成原理图文件。
定义元件封装:对所有电子元件的封装进行正确设置。
PCB参数设定:设置PCB板及过孔、导线等的物理参数。
生成、加载网络表:Protel可自动生成网络表并检查网络表是否存在错误。网络表是描述电路元件及其参数、线路连接关系等信息的文档文件,是电路原理图和印制电路板设计的接口。
元件布局:按照高低频、高低压以及隔离、散热等特性进行合理调整。
布线规则设置与自动布线:设置后可通过软件自动布线。
手动布线:由于元件布局、电磁兼容或版面设计等因素,需要手动布线加以调整或优化。
电气规则校验:使用软件的校验功能来验证所设计PCB的可行性。
打印、制板:将PCB打印在胶片上形成制板底片,之后依次通过曝光、显影、蚀刻等流程的处理形成PCB电路板。
第三章 嵌入式处理器 P126
简述处理器微架构的含义,给出一个处理器微架构的描述。
微架构又称为微体系结构/微处理器体系结构,指将一种给定的指令集架构在处理器中执行的方法。一种给定的指令集可以在不同的微架构中执行。
什么是微控制器?请描述其基本逻辑组成及特点。
微控制器是一种快速构建微型计算装置电路所必需的控制单元。普遍以CPU为核心,在片内通过内部总线连接,集成了必要的程序/数据存储器、定时器/计数器、中断控制器以及特定I/O接口与组件,进而为嵌入式控制系统设计提供一个较为完整的计算系统核心。
特点是:计算核的指令数较少、位处理指令较丰富、供电电压较单一、计算性能通常不高、组件集成度较高、提供多种O/I接口、引脚数量相对较少、低功耗、低成本、使用方便,以及适合简单控制系统等。
ARM指令集、Thumb指令集各有什么特点?为什么Thumb代码不总是比ARM代码高效?
ARM指令集可分为六大类,几乎所有的ARM指令都有4位的条件域,为32位指令集。
Thumb指令集是基于ARM指令集进行重新编码的子集,指令长度固定为16位。与ARM指令集相比,在功能和性能上进行了一定限制,Thumb指令集是为了提升使用16位或更窄内存总线的ARM处理器的性能,并提供较ARM指令集更为优化的代码密度。
在使用32位存储器的时候,ARM指令集更快,原因是Thumb是针对16位进行的改良。
比较ARM体系中A32、T32、A64指令集的特点。
A32表示支持32位ARM指令集;
T32表示支持32位ARM指令集和16位Thumb指令集;支持用户代码更好的代码密度,为编译器提供了优势,有机会在单个指令集中平衡性能和代码大小权衡。
A64表示支持32位指令集,特点有:基于5位寄存器描述符的简洁解码表、指令语义与A32大致相同、31个随时可供访问的通用64位寄存器、无模式通用寄存器组、非通用的PC和SP以及可用于大多数指令的专用零寄存器(2R)。
CPSR和SPSR寄存器的功能是什么?何时使用SPSR?
CPSR是保留所有处理器状态的状态寄存器,模式M表示处理器工作模式;除了用户模式之外,其他6种模式有独立的处理器状态保存寄存器SPSR。
ARMv7-M中引入了哪些新寄存器?各有什么作用和特点?
有两个堆栈指针寄存器SP_main和SP_process(是R13的分组模式);专用的32位程序状态寄存器xPSR(分为应用程序专用状态处理器ASPR、中断程序状态处理器IPSR和质心程序状态寄存器EPSR);3个管理异常和中断优先级的32位掩码寄存器MR;一个32位的控制寄存器CONTROL,用于设定当前堆栈和线程模式的权限级别。
ARM32位指令集编码中,条件码字段的作用是什么?
一共有16个值,一个值用于指定指令无条件执行,14个值指定指令的执行条件,第16个值用于可选指令的编码。
简述异常和中断的内涵及其关系。
异常模式是指正常运行的用户程序因为某些事件被暂时中止,导致进入的特定处理模式。即进入异常模式后,主要靠中断进行异常处理并返回到正常程序中继续运行。
分析、对比ARM、MIPS及PowerPC体系架构的特点。
ARM架构:是一种32位精简指令及处理器架构,具有RISC体系的基本特征,包括:一个大容量的、统一的寄存器文件;采用加载/存储模式,在寄存器中而不是内存中进行数据处理;仅从寄存器及指令中读取地址,寻址简单;采用一种指令长度,简化指令的解码过程。
MIPS架构:是一种简单的流水型、高度可扩展32位、64位RISC架构。特点包括:高性能、行业标准的体系结构;固定长度、统一编码的指令集,所有指令集都向后兼容;采用加载/存储数据模型,所有操作都在寄存器上进行;开放式架构,允许用户在开发的内核中自定义指令;具有32位/64位两种架构的指令集;计算核内包括大量寄存器、指令数和字符;具有并行流水、超级流水以及多通道超标量流水等流水线结构,流水线延迟间隙可视;集成度高,芯片面积更小,功耗高于ARM;采用多发射核技术,用处理器中的闲置处理资源虚拟另外一个计算核,提高处理资源的利用率。
PowerPC架构:是一种典型的高性能RISC处理器架构,其特点为:可实现单核/多内核架构;采用多发射、分支预测的超标量流水线结构,并行度高;丰富、独立的整型寄存器组和浮点寄存器组,支持32位/64位计算和访问;采用统一定长的精简指令格式,最多可支持4个操作数;高效的分支处理;内存访问基于内存与GPR/FPR间的加载和存储指令完成;为GPR和FPR之间的数据传输提供专门指令;突出的浮点性能,提供支持IEEE 754标准浮点数的运算指令;良好的伸缩性,可根据特定需求进行架构扩充;应用范围广。
第四章 嵌入式存储技术 P169
为什么计算机体系需要采用多级的存储体系?
基于不同类型数据存储、访问的要求差异,以及数据访问在时间、空间和顺序上的局部性原理,计算系统的存储子系统主要采用了分级的存储体系。
为什么DRAM中不采取独立的行、列两组地址线,而是复用同一组地址线?
使用同一组地址线进行分时传输,可以减少芯片引脚的数量。
CPU访问DRAM会产生延迟,如何优化和解决?
为了使DRAM有效地存储信息,必须定期为已充电的电容补充电量,即进行DRAM的刷新操作,在刷新期间DRAM控制器会向CPU发出DRAM忙的信号,CPU的读写请求将会被延迟。
可以采用快速页模式(触发行地址后,CPU连续输出多个列地址来访问不同的位)、扩展数据输出(无需等待此次访问是否完成,只要达到规定的地址有效时间就开始输出下一个地址)、同步DRAM(采取了与CPU外频同步的DRAM频率,消除了访问冲突引起的CPU等待周期)等方式进行优化和解决。
简述LPDDR SDRAM的特点。为什么该类型存储器适合移动嵌入式系统?
LDPPR是面向智能手机、平板电脑等嵌入式系统的SDRAM产品,具有体积小、功耗低、更高的频率,因此更适合作为移动嵌入芯片。
简述双端口RAM的架构特点,并分析同时进行读写操作时的互斥机制。
架构特点为拥有两套独立的数据线、地址线和读写控制线,是两个CPU之间进行快速传输块数据的有效方式。其互斥机制主要通过三种方式实现:1)中断方式,当左CPU写特定的信令地址时,信令交换逻辑向右侧CPU发送中断,通知其开始数据访问操作;2)忙逻辑方式:当两个CPU同时访问存储器时,仲裁逻辑会选择出一个CPU进行授权,并通置BUSY引脚将忙状态通知给另一个CPU;3)信号量方式:提供硬件信号量仲裁机制,控制软件访问、获取硬件信号量SEM实现对存储单元的互斥访问。
分析EEPROM与Flash访问过程与性能的异同,并从微电路和结构角度阐述原因。
EEPROM采用浮栅管单元技术,通过电进行擦除,访问时是通负电荷写入来实现数据位的写入,读取时通过判断浮栅中有无电子进一步电路是否导通来判断0或1,访问速度较快;Flash同样采用了浮栅管单元技术,其擦除机制是基于隧道效应的编程与擦除机制,与EEPROM类似;访问时通过存储元的源、漏极是否导通来表示0和1,读取快,写入较慢。
原因是Flash中采用的是新型隧道氧化层MOS管,该晶体管的隧道层在源层且更薄,允许在控制栅和与源极之间加12V电压就使隧道导通。同时,Flash芯片内集成了高压产生电路(高压泵),因此可以在单电压供电输入的基础上,面向不同操作特性来提供不同的工作的电压。
分析NOR Flash与NAND Flash的架构和访问特性,说明为什么NOR Flash适合存放代码,而NAND Flash适合存放大块数据。
NOR Flash有对的地址线和数据线,按照字节读取,读取和传输速度快;以区块的方式擦除并以字节方式写入,擦除和写入速度较慢,因此适合存储小容量数据存储如代码。而NAND Flash具有更高的存储密度,更快的写入速度,耕地的价格以及更好的擦写耐用性等优点,要修改时必须重写整个数据块,适合存放大量数据如大块数据。
为什么对Flash存储器单元进行写操作之前必须先对其进行擦除操作?
在写入0的时候,需要同时对栅极和漏极加上高电压,源、漏极之间的电子就会进入浮栅。Flash擦除是写1的过程,编程的时候只对非0位进行注入电荷操作,即只写入0.
简述铁电存储器中存储元的结构、物理特性及其存储机制。
存储元的结构是“两个晶体管+两个电容”的2T2C结构,每个存储元包括了数据位和各自的参考位;2001年后采用更先进的1T1C结构,所有数据位使用相同的参考位。其物理特性是既有RAM的随机访问特性又非易失的特点。其存储机制主要是通过铁元素的词性和原子运动过程实现的,利用了铁电晶体材料的铁电性和铁电效应。通过将充电波形与参考位的充电波形比较,根据有无尖峰即可判断存储元中的原子位置状态,即数据位的值。
简述BBSRAM的工作机制及其优缺点。
BBSRAM即内带电池保护的SRAM,其结构为SRAM+锂电池+监控保护电路。优点是实现方便、成本较低,应用于诸如主板上的BIOS配置信息存储。缺点是设计中需要考虑额外的电源管理电路和固件,需要更换失效的电池,削弱了系统的可靠性,并且体积较大。
测试ROM数据的方法有哪几种?简述其原理。
校验和方式:编程前计算数据的校验和,并将数据及校验和编程到只读存储器;系统启动时从存储器读出数据以及校验和,用同样的方法计算数据的校验和并与读出的校验和进行比较,如果相同则正确。
循环冗余码校验:将信息多项式与生成多项式进行模2除法运算,计算出的数据CRC校验结果存放在特定存储区域。
纠错码方式:以海鸣威码为例,海鸣威码是一次只能纠正1位错误的冗余编码,若码距为n,则最多可以检测数n-1位数据错误,最多只能纠正小于〖(2〗^(-1))n位的错误。
CRC校验中,定义的生成多项式为G(X)=X^6+X^5+X+1,信息码为10110010,请计算CRC检错码
首先将10110010左移6位,形成的扩展信息码为10110010000000;
采用模2除法,用10110010000000除以生成码1100011;
得到校验码0000111。
第五章 最小系统外围电路设计 P208
简述复位的原理和目的,比较上电复位、看门狗复位、软件复位的异同。
复位是在系统电源建立的时候,为cpu或某些接口电路提供一个几十毫秒甚至数百毫秒的高或低的复位脉冲(原理),利用这段时间,系统振荡器启动启动并稳定下来,cpu复位内部寄存器及指针,为程序启动做准备(目的)。
上电复位的原理是电源电压达到可以正常工作的阈值后,集成电路内部的状态机便开始初始化器件,使得芯片在上电后一段时间内进入已知状态,并在完成初始化之前忽略除引脚之外(如有)的任何外部信号。
阻容式复位电路的原理是利用电容两端电压的指数变化特性为芯片的复位引脚提供复位信号。
软件复位是指通过软件指令或者对寄存器的修改触发芯片的复位脉冲,进而使系统初始化硬件并重新加载、运行嵌入式软件。
三者的原理各不相同,其相似点是都是发出复位信号,使得必要的寄存器、I/O接口等资源的值和状态能够初始化。
分析正弦波振荡电路基本组成及各组成部分的功能。
正弦波振荡电路一般由放大电路和正反馈网络组成正弦波生成电路(电路自激振荡机制)。在电源接通瞬间,电冲击、电干扰、晶体管的热噪声以及人体干扰等产生噪声信号,在“点干扰放大选频正反馈放大选频正反馈……”的过程中,频率未被选中的信号不断被抑制,而选中信号不断被加强,再结合晶体管的线性区放大特性,输出和反馈的振幅稳定下来,振荡过程建立。其中,放大电路起增大输出幅值的作用,反馈网络约束相位平衡,稳幅电路稳定输出信号的幅值。
分析STM32 L0嵌入式处理器的低功耗模式原理、特点以及进入与唤醒方式。
由于课本主要介绍了STM32 L1嵌入式处理器,且STM32 L0与STM32 L1区别主要在于电源电压、运行模式功耗、存储空间容量等方面,因此仍然使用STM32 L1答题。
其低功耗模式原理主要是降低V_CORE电压值、降低CPU频率和性能并限制启用的外设数量。其特点是仅当V_CORE在区间2时可以进入该模式;系统时钟的频率不超过f_MSI区间1限制启用的外设数量;所有的I/O引脚保持运行模式时的状态。唤醒方式是调压器被设置为主模式(1.8V),无唤醒延迟。
降低处理器功耗的主要方法有哪些?简述各种方式的原理和特点。
对电源电压的动态调整,根据功率与电压平方之间的反比关系,降低系统动态功耗可以采用降低供应电压方式进行调节;
开启/关闭部分组件,由于开启的组件数量更多,需要消耗的功率越大,因此通过开启/关闭部分组件能够减少相应的功耗。进一步可以使电子器件运行于不同的模式,较为灵活多变;
降低器件的频率,由于频率越高功耗越大,可以通过降低器件的频率减少器件的功耗,一般由制作工艺决定。
分析开关电路抖动产生的原因以及题图5-1电路中的消抖过程。说明电阻R2在这个电路中的作用。
由于电子设备中开关引脚的断开与接通可能会产生多个信号,或者由于电磁干扰会在信号线上耦合出本不应该出现的毛刺信号,这类现象称为“抖动”。
在题图中,C1电容起到消抖过程中的重要作用。上电后,C1经充电拉升至高电平。当开关闭合时,电阻R2的一端接地,C1放电一段时间后,输出为低电平。故Sm开关闭合瞬间产生的信号被RC电路补偿和抵消,从而产生稳定的信号。
电阻R2在这个电路中起到保护电路,防止电容被击穿的作用。
在题图5-1基础上,设计一个基于施密特触发器的开关消抖电路,并阐述其消抖原理及相应特性。
在题图5-1的基础上,在输出端增加一个施密特触发器。如图所示:
其消抖原理是增加了一个包含了正反馈、具有迟滞现象的比较器电路,在仅输入电压发生足够的变化时输出才会改变,因此能够消除开关断开和连接时微小输入电压变化所引起的可能的电压改变。
第六章 接口、总线与网络扩展 P300
在图6.3(a)的基础上设计一个主从式SPI总线系统,一个SPI主设备和n个从设备形成位长为(n+1)×8的循环移位寄存器。请给出硬件原理图,并分析数据传输过程。
从内部结构看,主设备和从设备内部各有一个8位的移位寄存器,主从设备之间通过MOSI、MISO引脚之间的连接将n+1个寄存器连接形成一个8*(n+1)的循环移位寄存器。随着时钟信号的变化(时钟信号的上、下沿),这个8*(n+1)的移位寄存器中的数据依次从左移出到输出引脚,同时将输入引脚采集的数据移入移位寄存器。如果想要做到这一点,需要将图中稍作修改,构建一个共享片选信号(SS) ̅、多个从级设备级联的菊花链式SPI通信系统,即“主设备的MOSI从设备1的MISO从设备2的MOSI……从设备n的MOSI&从设备的MOSI主设备的MISO”的逻辑结构。
参照图6.6,画出CPHA=1时的SPI各引脚的信号时序图,并与图6.5对比采样和数据输出的时机有何差异。
如图所示,可以看出CPHA=1时,表示第一个跳沿输出,第二个跳沿采样;因此在CPOL=0时即正脉冲时,在下降沿进行采样,在上升沿进行数据的输出,数据第一位和其他位输出时机也在上升沿;CPOL=1时即负脉冲的时候,在上升沿进行采样,在下降沿进行数据的输出。
与CPHA=0时进行对比,可以看出CPHA=0时,表示第一个沿采样,第二个沿输出。因此在CPOL=0时,在上升沿进行采样,且在上升沿之前数据已经准备好,在下降沿进行数据的输出。
题图6-1所示是基于I²C总线设计的三设备连接系统,请问该设计有何问题,如何解决。
由于I²C电路总线和设备需要支持多设备共享同一信号线的“线与”能力,因此SCL和SDA的接口内部逻辑只能采用“开漏”或集电极开路模式,因此需要分别为SDA、SCL信号线接一个上拉电阻Rp。
查阅资料,分析I²C总线上通过SCL上的“线与”来实现多主设备时钟同步的机制。
通过将主设备挂在I²C总线上,发起传输、产生SCL时钟信号(?该处存疑)
为什么说I²C总线的仲裁过程中并不会丢失任何数据。
通过SCL上的“线与”功能,实现多主设备时钟的同步;在每一个位周期时,当SCL为高电平时,主设备检查当前SDA上的电平与自己是否一致,如果一致则继续使用总线并检测;如果不是则该设备获知冲突发生且自己失去了总线的使用权,关闭输出驱动器,而其他主设备继续传输并进行检测。I²C规范通过这样的冲突检测和仲裁I²C解决多个主设备竞争总线时的冲突和破坏问题,即保证仲裁过程中不会丢失任何数据。
实际设计中,影响UART数据传输速率的因素有哪些?有哪些解决方法?
将UART传输速率使用波特率进行衡量,则有以下几个因素。
缓冲区FIFO的大小。如果接收缓冲区过小,其数据在读取中就会被后续字节覆盖进而产生错误。
通信距离。信号在介质中传播时其自身能量会不断衰减,抗干扰能力变弱。为了使信号有足够的能量会采取加大信号宽度这一措施,而信号宽度增加后单位时间内可传输的信号数量减少,即波特率降低。
分析车载舒适总线中的电平状态,并参照图6.49画出CANH和CANL的变化关系。
图略,下面给出分析。隐性状态时,CANH和CANL(两条差分线路)分别为预先设定的电压值,如车载CAN驱动总线中都为2.5V,而车载舒适总线中CANH为0V、CANL为5V,V_CANH-V_CANL为0V或者-5V,表示“1”。在显性状态时,CANH上的电压升高一个预定值,则CANL上的电压值会降低一个同样的值。某一时刻,总线电平要么处于显性水平要么为隐性水平。
IrDA和蓝牙技术都用于短距离无线通信,请比较二者的特性有何异同点。
不同点:1)IrDA使用红外线作为通信媒介,是点对点传输;蓝牙指无线数据和语音通信的短距离无线通信技术标准,支持点到点、点到多点。2)特征上的差异:具有相同红外接口的设备之间可以进行信息交换,安全性较强,传输距离短;蓝牙将内嵌蓝牙芯片的设备互联起来,提供语音和数据接入服务,易于组网。
相同点:其系统架构基本相同,基带芯片和射频单元组成一个模块运行底层的物理层和链路层的功能;高层协议由单独的CPU运行。均应用于家庭和小型办公室的应用场合,是主要的PAN技术。
一个蓝牙设备组成的微微网中,在什么状态下可以有多于7个的从设备?该从设备状态有什么特点和用处?
在等待状态下,设备的活跃成员地址AM_ADDR修改为PM_ADDR,此时其所在微微网的就可以存在多余7个从设备。在该设备状态下,设备的活动非常少,从设备不必加入微微网,但仍保持为微微网成员,其用处是功耗降低。
分析、对比Bluetooth、ZigBee、Wi-Fi技术原理与特点。
简述WiGig的原理和特点,并将其与Wi-Fi技术进行比较。
Wigig为第五代标准IEEE 802.11ad,称为千兆无线局域网,其主要是通过60GHz频谱进行数据传输,可以保证在各种情况下实现更稳定的传输,能够在最大10米的距离内提供大约5Gbps的无线网络速度。其与Wi-Fi比较传输速度更快,但传播范围更小。
设计ZigBee、Bluetooth、Wi-Fi接口的方式都有哪几类?分别有什么优缺点?
Wi-fi接口可采用芯片级、模块级的设计方案,具有SPI或UART接口;
Bluetooth接口可采用USB、UART等,只需要通过这些接口发送操作命令就能够实现对蓝牙通信。
ZigBee使用的是GPIO接口,输出功率较低,有效通信距离不够。
第七章 嵌入式软件结构与基础软件 P339
结合ARM处理器特性,分析裸机软件和嵌入式操作系统的启动过程。
由于裸机软件直接在硬件上部署和运行,因此其启动过程较为简单,只需要将编译生成的二进制代码烧写到NAND Flash的0x00000000地址。系统复位后,处理器上电复位;NAND控制器将NAND Flash中的启动代码赋值到ARM的SRAM中;处理器根据PC值从SRAM的首地址开始执行即可完成启动过程。
对于嵌入式操作系统而言,在上电启动后,还需要将Boot Loader代码从Flash复制到SDRAM的特定区间并引导执行。Boot Loader首先执行一系列基本的硬件初始化工作,然后为操作系统运行做好环境准备,并将外部存储器中的操作系统内核映像复制到内存中的代码和数据空间,设置内核启动参数。最后跳转至内核入口地址开始执行。至此,嵌入式操作系统的启动才全部完成。
简述ROM Monitor软件的工作原理及其在嵌入式系统开发中的作用。
ROM Monitor软件的工作原理是上电后,ROM Monitor对硬件进行基本的初始化,进而可以通过串口/网口与开发主机交互,执行程序加载、命令执行、程序调试等操作,并提供一个简单的用户命令接口、支持对程序设置断点并单步跟踪及集成调试器,使开发人员能够在嵌入式系统开发过程中对资源进行管理并进行软件调试。
Boot Loader的最小功能是什么?与BIOS有何异同?
Boot Loader的最小功能是至少应该驱动一个外部的数据通信接口,且提供一种读、写、擦除Flash的方法。Boot Loader与BIOS的相似点在于功能,都能完成对于处理器相关的硬件资源进行初始化、内存映射建立、代码搬移与启动等操作。
区别在于:
Boot Loader是嵌入式系统组件,与具体硬件平台密切相关,需要面向硬件平台定制;设计人员需要关注Boot Loader的功能和机制。
BIOS负责初始化硬件,之后调用操作系统加载代码,而Boot Loader包含了全部这些功能;
通用计算机中一定存在BIOS,而嵌入式硬件中可能不存在Boot Loader;
BIOS一般不能更改,Boot Loader允许配置或增加新的功能;
BIOS通常是主板上独立的ROM单元,Boot Loader可以是独立ROM,也可以和操作系统、应用代码共同存储在Flash的不同区域;
系统启动后BIOS的运行时服务驻留在内存中,目标操作系统及应用仍可使用。而Boot Loader完成引导任务后不再有效,成为哑代码。
BSP包具有开放性,允许设计人员将自己的应用代码添加到BSP中,这种做法是否可取?为什么?
BSP(板级支持包)是位于嵌入式系统硬件和嵌入式操作系统之间的软件包,形式由嵌入式操作系统决定,具体内容由硬件平台决定。由于嵌入式系统操作系统丰富多样、嵌入式处理器不同应用系统的硬件资源类型、数量等存在差异,因此为了更好使用嵌入式操作系统,会允许设计人员将自己的应用代码添加到BSP中。我个人认为这是可取的,面对多种多样的嵌入式软硬件,确实需要设计人员量体裁衣,选择最合适的BSP资源并进行特定BSP的开发。
分析0型、Ⅰ型、Ⅱ型虚拟机的特点,分析为什么Ⅱ型不适合于嵌入式系统设计。
0型虚拟机指嵌入式系统的虚拟化,即嵌入式系统部署裸机上直接运行的虚拟机监控程序,监控程序向下屏蔽和管理硬件,向上提供多个虚拟的硬件平台。
Ⅰ型是可以直接安装、运行于硬件平台的虚拟机,无需宿主操作系统,其监控程序是一种特殊的操作系统,创建一个底层硬件平台的 抽象。
Ⅱ型是运行于主操作系统之上的虚拟机,算作操作系统中的应用程序。在虚拟机上,用户可以安装客户操作系统、应用程序,与主操作系统环境同时运行。
由于Ⅱ型虚拟机是运行于主操作系统上的虚拟机,即需要宿主操作系统,不满足嵌入式虚拟机中的体积约束(其监控程序可达千兆字节)和效率约束(应具有很小的规模和不高的内存使用率)这两个要求。
实践作业:
在PC上安装VxWorks开发环境、RamDiskNT软件、VMWare虚拟机;
在VxWorks中创建新的工程,选择Pentium BSP包并配置、编译一个支持串口、以太网的VxWorks映像文件;配置生成一个从C:盘根目录加载VxWorks映像的bootrom文件;
将生成的bootrom拷贝至RamDiskNT虚拟机的A:盘,WMWare虚拟机从A:盘启动bootrom和VXWorks;
编写实验报告。
第八章 嵌入式操作系统及其服务机制 P402
超微内核、微内核、内核三者在功能上有何差异和联系?
微内核仅实现基本、必要的操作系统功能,与内核相比,核心更小、组件化程度更高、使用更灵活;进一步,超微内核的功能更加单一,也更为底层。其联系是内核经过功能裁剪后可作为微内核,微内核经过裁剪后可作为超微内核。
简述任务、进程和线程的含义,并比较其异同。
任务是指多任务编程模型中,每个并发的执行单元,是可以被调度且并发运行于处理器的软件功能单元;线程是处理器中的最小调度执行单位,进程是一组线程的资源容器。
其异同在于:
任务体现了一定的应用含义,线程、进程侧重计算的含义。
在逻辑嵌入式软件中也可能有任务的概念。
进程中的线程和任务一样有独立的上下文。
任务、线程与进程不同于函数,不能调用另一个入任务/进程/线程。
如何理解实时和实时系统?
实时是指系统能够在限定的响应时间内提供所需水平的服务。实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会产生系统出错。
简述硬实时与软实时的含义,并举例说明。
硬实时是指截止期是一个严格的时间约束,必须严格遵守,否则就会造成系统障碍乃至重大灾难。例如无人机控制。
软事实是指系统具有时间约束,但任务的截止期限制并不严格,。例如足球赛的转播。
什么是优先级翻转问题?请给出几种解决方法,并比较这些方法的特点和异同。
优先级翻转问题:因为低优先级任务持有高优先级任务所需要的临界资源,从而导致高优先级任务被延迟执行。
解决方法有优先级继承协议和优先级天花板协议。
优先级继承协议核心思想是,优先级反转问题发生时,让持有共享资源的低优先级获取被阻塞高优先级任务的优先级,以尽快执行并释放共享资源,进而使高优先级任务得到快速响应。
优先级天花板协议指的是为每个临界资源赋予一个较高的优先级。任务在邻接资源以外时,以原先的优先级运行;当一个任务τ尝试获取一组所需临界资源中的一个资源S时,如果任务τ的优先级严格大于其他已被其他任务所持有邻接资源的优先级天花板,那么该任务就能获取该临界资源;否则,任务τ被阻塞,并且持有共享资源的任务继承任务τ的优先级。
其区别在于,在优先级天花板协议中,不论是否发生优先级翻转问题,只要任务访问共享资源就睡提升其优先级,减少了复杂的判断,但是提升和恢复优先级会产生额外的系统开销,增加对实时系统的影响。
有同时到来的周期任务组:τ1、τ2、τ3,其参数(执行时间,周期)依次为(1s,4s)(2s,6s)(3s,8s)。请分别采用RM和EDF调度算法是否可调度?请给出两种调度算法在该任务组上的调度过程分析。
对于RM算法,U=1/4+2/6+3/8=23/24>3(2^(1/3)-1),故不可调度;
对于EDF算法,U=1/4+2/6+3/8=23/24<1,故可调度,其调度方法是以任务的截止期来设定周期任务的优先级。其调度过程分析如下: