系统架构设计师考试题库笔记重点3:嵌入式系统设计
存储系统寄存器中央处理器CPU:处理程序指令控制器。指令寄存器IR:存储当前正在执行的指令程序计数器PC(指令计数器):存储将要执行的下一条指令的地址程序状态寄存器PSW:存放条件码标志、控住标志和系统标志。数据寄存器DR:先把内存取到DR中,再传到IR累加寄存器:为ALU提供工作区。地址寄存器:保持当前CPU正在访问的内存单元地址。Cachecache:高速缓冲存储器主存主存的地址编码地址区间A
·
嵌入式系统核心要素
- 嵌入性:指计算机计算机嵌入到对象系统中,且满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。
- 专用性:指软、硬件的裁剪性,满足对象要求的最小软、硬件配置等。
- 计算机系统:指嵌入式系统必须是一个能满足对象系统控制要求的计算机系统。
嵌入式系统组成
- 硬件:嵌入式处理器、存储器和外部设备构成整个系统的硬件基础。
- 软件:系统软件、应用支撑软件和应用软件,系统软件和支撑软件是基础,应用软件则是最能体现整个嵌入式系统的特点和功能的部分。
嵌入式系统软件开发平台
- 交叉平台开发环境CPD:即软件在一个通用的平台上开发,而在另一个嵌入式目标平台上运行。这个用于开发嵌入式软件的通用平台通常叫作宿主机系统,被开发的嵌入式系统称为目标机系统。而当软件执行环境和开发环境一致时的开发过程则称为本地开发(Native Development,ND)。
- 交叉编译环境:宿主机提供的基本开发工具是交叉编译器、交叉链接器和源代码调试器。作为目标机的嵌入式系统则可能提供一个动态装载器、链接装载器、监视器和一个调试代理等。在目标机和宿主机之间有一组连接,通过这组连接程序代码映像从宿主机下载到目标机,这组连接同时也用来传输宿主机和目标机调试代理之间的信息。
嵌入式网络系统
- 现场总线:是一种将数字传感器、变换器、工业仪表及控制执行机构等现场设备与工业过程控制单元、现场操作站等互相连接而成的网络。它具有全数字化、分散、双向传输和多分。
- 家庭信息网:是一种把家庭范围内的个人计算机、家用电器、水、电、气仪表、照明设备和网络设备、安全设备连接在一起的局域网。
- 无线数据通信网:是一种通过无线电波传送数据的网络系统。它是在有线数据通信的基础上发展起来的,能实现移动状态下的数据通信。通过无线数据通信网,智能手机、PDA 及笔记本计算机可以互相传递数据信息,并接入 Internet。
- 嵌入式 Internet 技术:随着 Internet 和嵌入式技术的飞速发展,越来越多的信息电器,如 Web 可视电话、机顶盒以及信息家电等嵌入式系统产品都要求与 Internet 连接,来共享 Internet 所提供的方便、快捷、无处不在的信息资源和服务
嵌入式数据库组成
- 嵌入式数据库管理系统:嵌入式数据库管理系统是一个功能独立的单用户数据库管理系统。它可以独立于同步服务器和主数据库管理系统运行,对嵌入式系统中的数据进行管理,也可以通过同步服务器连接到主服务器上,对主数据库中的数据进行操作,还可以通过多种方式进行数据同步。
- 同步服务器:同步服务器是嵌入式数据库和主数据库之间的连接枢纽,保证嵌入式数据库和主数据库中数据的一致性。
- 数据服务器:数据服务器的主数据库及数据库管理系统可以采用 Oracle 或 Sybase等大型通用数据库系统。
- 连接网络:主数据库服务器和同步服务器之间一般通过高带宽、低延迟的固定网络进行连接。移动设备和同步服务器之间的连接根据设备的具体情况可以是无线局域网、红外连接、通用串行线或公众网等。
嵌入式数据库关键技术
- 数据的一致性
- 高效的事务处理
- 数据的安全性
移动数据库管理系统的特性
- 微核结构,便于实现嵌入式功能:考虑到嵌入式设备的资源有限,嵌入式移动 DBMS 应采用微型化技术实现,在满足应用的前提下紧缩其系统结构以满足嵌入式应用的需求。
- 对标准 SQL 的支持:嵌入式移动 DBMS 应能提供对标准 SQL 的支持。支持SQL92 标准的子集,支持数据查询(连接查询、子查询、排序、分组等)、插入、更新、删除多种标准的 SQL 语句,充分满足嵌入式应用开发的需求。
- 事务管理功能:嵌入式移动 DBMS 应具有事务处理功能,自动维护事务的完整性、原子性等特性;支持实体完整性和引用完整性。
- 完善的数据同步机制:数据同步是嵌入式数据库最重要的特点。通过数据复制,可以将嵌入式数据库或主数据库的变化情况应用到对方,保证数据的一致性。
- 支持多种连接协议:嵌入式移动 DBMS 应支持多种通信连接协议。可以通过串行通信、TCP/IP、红外传输、蓝牙等多种连接方式实现与嵌入式设备和数据库服务器的连接。
- 完备的嵌入式数据库管理功能:嵌入式移动 DBMS 应具有自动恢复功能,基本无须人工干预进行嵌入式数据库管理并能够提供数据的备份和恢复,保证用户数据的安全可靠。
- 平台无关性与支持多种嵌入式操作系统:嵌入式移动 DBMS 应能支持 Windows CE、Palm OS 等多种目前流行的嵌入式操作系统,这样才能使嵌入式移动数据库管理系统不受移动终端的限制。
- 零管理特性:嵌入式数据库具有自动恢复功能,不需要人工干预就可以进行嵌入式数据库管理,并提供数据的备份与同步。
嵌入式移动数据库管理系统的数据同步机制特点
- 提供多种数据同步方式,具有上载同步、下载同步和完全同步 3 种同步方式;
- 具有完善的冲突检测机制和灵活的冲突解决方案,具有冲突日志记录功能;
- 支持快速同步,系统同步时,只传递变化的数据,节省了大量的同步时间;
- 支持表的水平分割和垂直分割复制,最大限度地降低了嵌入式数据库的大小;
- 支持异构数据源连接同步,可以用支持 ODBC 的异构数据源作为主数据库和嵌入式设备上的数据库进行数据同步;
- 具有主动同步的功能,允许用户对系统提供的同步事件自定义过程实现,提供了最大灵活度的同步过程。
实时嵌入式系统特征
- 逻辑正确:系统对外部事件的处理能够产生正确的结果。
- 时间正确:系统对外部事件的处理必须在预定周期内完成。
- deadline、时限或截止时间:系统必须对外部事件处理的最迟时间,超出可能产生严重后果
- 实时系统:功能正确和时间正确同时满足的系统。
实时系统按时限划分
- 强实时系统:毫秒级
- 一般实时系统:秒级
- 弱实时系统:更长时间
实时系统按时限容忍度划分
- 硬实时系统:系统必须满足其灵活性接近零时限要求的实时系统。
- 软实时系统:指必须满足时限的要求,但是有一定灵活性的实时系统。
嵌入式操作系统主要特点
- 微型化:必须做得小巧,尽量少占用系统资源
- 代码质量高:减少代码存储空间。
- 专业化:要有很好的适应性和移植性,还要支持多种开发平台。
- 实时性强:多用于要求实时响应的场合。
- 可裁剪、可配置:适应微型化和专业化要求。
嵌入式实时操作系统特性
- 满足嵌入式应用的高可靠性;
- 满足应用需要的可裁减能力;
- 内存需求少;
- 运行的可预测性;
- 采用实时调度策略;
- 系统的规模紧凑;
- 支持从 ROM 或 RAM 上引导和运行;
- 对不同的硬件平台均有更好的可移植性。
嵌入式实时操作系统的实时性能指标
- 任务切换时间:是指 CPU 控制权由运行态的任务转移给另外一个就绪任务所需要的时间,包括在进行任务切换时,保存和恢复任务上下文所花费的时间及选择下一个待运行任务的调度时间,该指标跟微处理器的寄存器数目和系统结构有关。
- 中断处理相关的时间指标:
- 中断延迟时间,是指从中断发生到系统获知中断的时间,主要受系统最大关中断时间的影响,
- 关中断时间越长,中断延迟也就越长;
- 中断处理执行时间,该时间由具体的应用决定;
- 中断响应时间,是指从中断发生到开始执行用户中断服务例程的时间;
- 中断恢复时间,是指用户中断服务例程结束回到被中断的代码之间的时间;
- 最大关中断时间,包含两个方面:一是内核最大关中断时间,即内核在执行临界区代码时关中断;二是应用关中断时间,关中断最大时间是这两种关中断时间的最大值;
- 任务响应时间,是指从任务对应的中断产生到该任务真正开始运行的时间;
- 对于可抢占式调度,中断恢复的时间还要加上进行任务切换和恢复新的任务上下文的时间。
- 系统响应时间:指系统在发出处理请求到系统做出应答的时间,即调度延迟,这个时间的大小主要由内核任务调度算法所决定。
嵌入式系统设计特点
- 软、硬件协同并行开发;
- 微处理器的类型多种多样;
- 实时嵌入式操作系统具有多样性;
- 与通用系统开发相比,可利用系统资源很少;
- 应用支持少;
- 要求特殊的开发工具;
- 软、硬件都要很健壮;
- 调试很困难。
嵌入式系统的技术指标
- NRE 成本(非重复性工程成本):设计系统所需要支付的一次性货币成本,即一旦设计完毕,不需要支付额外的设计费用,就可以制造任意数目的产品。
- 单位成本:生产单个产品所需要支付的货币成本,不包含 NRE 成本。
- 大小:指系统所占的空间,对软件而言,一般用字节数来衡量;对硬件而言,则用逻辑门或晶体管的数目来衡量。
- 性能:系统完成规定任务所需要的时间,是设计时最常用的设计指标,主要有两种衡量方式,一是响应时间,即开始执行到任务结束之间的时间。二是完成量,即单位时间内所完成的任务量。
- 功率:系统所消耗的功率,它决定了电池的寿命或电路的散热需求。
- 灵活性:在不增加 NRE 成本的前提下,改变系统功能的能力。
- 样机建立时间:建立系统可运行版本所需的时间,系统样机可能比最终产品更大更昂贵,但可以验证系统的用途和正确性,改进系统的功能。
- 上市时间:从系统开发到可以上市卖给消费者的时间,最主要的影响因素包括设计时间、制造时间和检测时间。
- 可维护性:系统推出或上市后进行修改的难易程度,特别是针对非原始开发人员进行的修改。
- 正确性:正确实现了系统的功能,可以在整个设计过程中检查系统的功能,也可以插入测试电路检验是否正确。
- 安全性:系统不会造成伤害的概率。各个设计指标之间一般是互相竞争的,改良了某个指标常常会导致其他指标的恶化。
嵌入式系统的设计面临挑战
- 需要多少硬件
- 如何满足时限
- 如何减少系统的功耗
- 如何保证系统的可升级性
- 如何保证系统的可靠性
- 测试的复杂性
- 可视性和可控制性有限
- 开发环境受限
嵌入式系统常用开发模型
- 瀑布模型:瀑布模型由五个主要阶段构成:
- 需求分析阶段:确定目标系统的基本特点;
- 系统结构设计阶段:将系统的功能分解为主要的构架;
- 编码阶段:主要进行程序的编写和调试;
- 测试阶段:检测错误;
- 维护阶段:主要负责修改代码以适应环境的变化,并改正错误、升级。
- 各个阶段的工作和信息总是由高级的抽象到较详细的设计步骤单向流动,是一个理想的自顶向下的设计模型。
- 螺旋模型:螺旋模型假定要建立系统的多个版本,早期的版本是一个简单的试验模型,用于帮助设计者建立对系统的直觉和积累开发此系统的经验,随着设计的进展,会创
- 逐步求精模型:逐步求精模型是一个系统被建立多次,第一个系统被作为原型,其后逐个将系统进一步求精。当设计者对正在建造的系统的应用领域不是很熟悉时,这个方法很有意义。通过建造几个越来越复杂的系统,从而精炼系统,使设计者能检验架构和设计技术。此外,各种迭代技术也可仅被局部完成,直到系统最终完成。
- 层次模型:许多嵌入式系统本身是由更多的小设计组成的,完整的系统可能需要各种软件构件、硬件构件。这些部件可能由尚需设计的更小部件组成,因此从最初的完整系统设计到为个别部件的设计,设计的流程随着系统的抽象层次的变化而变化,从最高抽象层次的整体设计到中间抽象层次的详细设计,再到每个具体模块的设计,都是逐层展开的,其中每个流程可能由单个设计人员或设计小组来承担,每个小组依靠其他小组的结果,各个小组从上级小组获得要求,同时上级小组依赖于各个分组设计的质量和性能。而且,流程的每个实现阶段都是一个从规格说明到测试的完整流程。
嵌入式系统架构设计
- 原始框图:主要操作和数据流。
- 软件系统架构:软件系统主要由用户界面、数据库搜索引擎和数据转换器组成。
- 硬件系统架构:硬件系统采用通用微处理器、存储器和 I/O 设备组成。
嵌入式系统设计硬件子系统设计
- 开发环境组成:目标硬件平台、嵌入式操作系统、编程语言和开发工具,其中处理器和操作系统的选择应当考虑更多的因素,避免错误的决策影响项目的进度。
- 选择处理器技术:嵌入式系统设计的主要挑战是如何使互相竞争的设计指标同时达到最佳化。
- 通用嵌入式处理器的选择:根据用户的需求和项目的需要选择合适的通用嵌入式处理器,选择时需要考虑如下指标。
- 硬件设计的注意事项:首先,将硬件划分为部件或模块,并绘制部件或模块连接框图。其次,对每个模块进行细化,把系统分成更多个可管理的小块,可以被单独实现。
嵌入式系统设计软件子系统设计
- 操作系统的选择:在选择嵌入式操作系统时,需要做多方面的考虑:
- 操作系统的功能。
- 配套开发工具的选择。
- 操作系统的移植难易程度。
- 操作系统的内存需求如何。
- 操作系统附加软件包。
- 操作系统的实时性如何。
- 操作系统的灵活性如何。
- 编程语言的选择:在选择编程语言时,也需要做多方面的考虑:
- 通用性。
- 可移植性。
- 执行效率。
- 可维护性。
- 基本性能。
- 软件开发过程:嵌入式软件的开发过程不同于一般通用软件的开发过程,主要有如下步骤:
- 选择开发语言,建立交叉开发环境;
- 根据详细设计说明编写源代码,进行交叉编译、链接;
- 目标代码的重定位和下载;
- 在宿主机或目标机调试、验证软件功能;
- 进行代码的优化。
- 软件开发文档:在嵌入式产品的开发设计过程中,开发阶段完成系统产品的实现,这一阶段同时需要完成一系列的文档,这些文档对完成产品设计、维护相当重要,这些文档分别为
- 技术文件目录
- 技术任务书
- 技术方案报告
- 产品规格
- 技术条件
- 设计说明书
- 试验报告
- 总结报告。
嵌入式系统测试
-
软件测试:原理跟通用软件的测试基本一致
-
硬件测试:包括可靠性测试和电磁兼容性测试
-
单元测试
嵌入式系统和通用软件测试区别
- 嵌入式软件必须长时间稳定运行。
- 嵌入式软件一般不会频繁地版本升级。
- 嵌入式软件通常使用在关键性的应用中。
- 嵌入式软件必须和嵌入式硬件一起对产品的故障和可靠性负责。
- 现实世界的条件是异步和不可预测的,使得模拟测试非常困难。
嵌入式系统软件测试关注点
- 因为实时性和同时性很难同时满足,所以大多数测试集中于实时测试。
- 大多数实时系统都有资源约束,因此需要更多的性能和可用性测试。
- 可以使用专用实时跟踪工具对代码覆盖率进行测试。
- 对可靠性的测试级别比通用软件要高得多。
更多推荐
所有评论(0)