《系统分析师教程(第2版)》笔记——第 17 章 嵌入式系统分析与设计
第 17 章 嵌入式系统分析与设计【版权声明与学习说明】本文系笔者学习《系统分析师教程第2版》第17章后结合个人理解整理的原创学习笔记。文中所有表格、通俗化举例及箭头式总结均为本人消化后重新归纳表述不代表原书官方立场。整理初衷仅为交流学习、备考记录无意侵犯原作者版权。若您认为存在不当引用请通过CSDN私信联系我会第一时间处理。推荐备考的朋友购买正版教材尊重知识成果。嵌入式系统是一种以应用为中心、软硬件紧密结合的专用计算机系统广泛应用于航空航天、汽车电子、智能家居、工业自动化等领域市场规模增长迅速。其核心特点是专用性强、实时性高、软硬件依赖性强需满足功能、可靠性、成本、体积和功耗的严格要求。本章围绕嵌入式系统的基础特性、数据库系统、操作系统、开发方法及验证测试展开全面覆盖从理论到实践的核心知识是系统分析师开展嵌入式系统相关工作的关键指南。17.1 嵌入式系统概述17.1.1 嵌入式系统的特点嵌入式系统区别于通用计算机系统核心特点如下专用性强针对具体应用设计软硬件结合紧密需根据硬件调整软件产品生命周期长与应用系统生命周期同步实时性强多数需在限定时间内响应外部事件分为实时硬实时、软实时和非实时嵌入式系统实时性是核心需求之一软硬件依赖性强软硬件需协同设计共同满足功能、性能、成本等要求无法单独脱离对方优化专用处理器采用专为嵌入式场景设计的处理器具备高可靠性、低功耗、小体积、高集成度特点资源存储、I/O、处理能力有限。17.1.2 嵌入式系统的组成嵌入式系统由 5 个核心功能部件构成协同完成数据采集、处理和输出传感器将物理参数如温度、压力转换为可处理的电信号处理单元PE核心部件对传感器采集的信号进行处理决策输出功能作动器接收处理单元的电信号执行具体物理动作如继电器开关、电机运转输入接口将传感器的电信号转换为处理单元可识别的数字形式输出接口将处理单元的二进制数据转换为作动器或外部设备可接收的信号形式。其体系架构分为四层硬件层微处理器、存储器、I/O 接口、中间层硬件抽象层 HAL / 板级支持包 BSP隔离软硬件、系统软件层操作系统、支撑软件、功能层应用软件。17.1.3 嵌入式处理器结构嵌入式处理器为适配不同场景演化出多种结构核心包括单核结构单一处理器核心结构简单、成本低适用于简单场景异构多核结构多个不同类型的处理器核心分别处理不同任务如一个核心处理实时控制一个处理数据计算同构多核结构多个相同类型的处理器核心协同处理任务提升并行计算能力分布式共享存储多核结构多个处理器核心共享全局存储器减少数据传输延迟共享 Cache 的多核结构多个核心共享片上 Cache提高数据访问效率超线程多核结构通过超线程技术使逻辑处理器数量翻倍提升并发处理能力。多核技术虽提升运算能力但会增加系统确定性设计的难度。17.1.4 安全攸关系统安全攸关系统安全关键系统是指功能失效会导致人员伤亡、重大财产损失的嵌入式系统如飞行控制系统、汽车 ECU需通过特殊设计提升安全性和可靠性三模块冗余模式TMR三个并行独立的运作通道表决器检查结果采用 “少数服从多数” 原则可容错随机错误适用于无故障安全状态的系统监控 - 启动器模式通过独立传感器监控系统状态当检测到异常时直接将系统转入故障安全fail-safe状态仅需额外增加传感器和监控器成本较低。设计时还需考虑完整性、可用性、可维护性等指标。17.2 嵌入式数据库系统17.2.1 嵌入式数据库系统概述嵌入式数据库管理系统EDBMS是嵌入于嵌入式系统中用于存储和管理数据的轻量级数据库系统与操作系统、应用软件集成适用于移动信息设备手机、车载设备、PDA也称为移动数据库。核心特点嵌入性可嵌入软件或硬件设备中无缝集成实时性需快速响应系统请求第一时间处理数据需额外优化实现移动性适配移动设备支持设备移动过程中的数据管理伸缩性适配不同软硬件平台可根据需求调整功能和资源占用。17.2.2 嵌入式数据库的分类按功能侧重点分为三类核心差异如下类型功能侧重点处理数据对象典型产品嵌入式内存数据库管理系统内存中建立和管理数据库离散、简单数据In-Memory、eXtremeDB、SolidDB嵌入式实时数据库管理系统实时存储和处理数据连续的实时数据流eXtremeDB、Empress、RDM移动数据库管理系统支持移动计算远程数据副本小金灵KingBase Lite、SQL Anywhere Studio、SQLite嵌入式内存数据库数据库主拷贝或工作版本驻留内存适用于频繁数据存取场景提升访问速度嵌入式实时数据库结构精简满足嵌入式系统资源限制数据正确性依赖逻辑结果和产生时间支持实时数据流处理移动数据库适配移动计算环境支持网络断接后正常工作核心技术包括数据库微型化、移动事务处理、数据同步。17.2.3 使用环境与系统结构使用环境特点设备随时移动性数据库随移动设备移动网络频繁断接移动设备常间歇性断接网络需支持离线操作网络条件多样化可能通过不同带宽、通信代价的网络连接通信能力不对称移动设备发送能力有限上下行带宽差异大。系统结构核心包括移动设备嵌入式数据库 应用程序、同步服务器数据同步桥梁、数据库服务器主数据库、连接网络固定网络 / 无线网络通过数据同步机制保持移动数据库与主数据库的松散一致。17.2.4 实例“小金灵” 移动数据库管理系统“小金灵”KingBase Lite是国产移动数据库运行于移动信息设备核心特点以静态链接库形式提供开发工具包DTK支持应用程序存取本地数据或通过 SyncServer 访问主数据库SyncServer 支持多移动设备与多数据服务器连接通过 ODBC 接口与主数据库Oracle、DB2 等通信数据同步机制确保网络断接时应用程序正常运行重连后同步数据。17.3 嵌入式操作系统17.3.1 嵌入式操作系统概述嵌入式操作系统EOS是管理嵌入式系统软硬件资源、调度并行活动的系统软件包括底层驱动、网络协议、图形界面等核心价值是提高开发效率和软件可移植性。分类按时间响应能力分为两类类型适用场景典型产品核心特征硬实时操作系统RTOS控制、通信如航空、汽车VxWorks、Nucleus、天脉、瑞华响应时间严格峰值负载性能可预测安全关键软实时操作系统消费电子手机、电子书Android、iOS、WinCE、麒麟、鸿蒙响应时间宽松峰值负载性能可降低非安全关键也可按应用场景分为机器人 OSROS、车载 OS、机载 OS、工业 OS 等。核心特点微型化适配嵌入式系统有限的存储和内存资源体积小巧代码质量高代码精简、高效充分利用有限资源专业化适配多样化硬件平台移植性强实时性强满足过程控制、数据采集等场景的实时响应需求可裁减和可配置可根据应用需求灵活配置功能适配微型化和专业化要求。层次结构与内核类型层次结构应用程序→标准库 / 第三方软件→内核接口→嵌入式操作系统内核→硬件抽象层→硬件平台硬件抽象层封装底层硬件细节简化移植内核类型宏内核用户服务与内核服务在同一空间实时性高、结构简单但耦合度高、移植性差微内核用户服务与内核服务在不同地址空间内核仅提供基础服务结构清晰、移植性好但性能偏低混合内核融合两者优势常用功能放入内核不常用功能置于用户层平衡性能和灵活性。实时性能指标时间是实时操作系统的核心性能指标关键包括任务切换时间CPU 控制权从一个任务转移到另一个任务的时间含上下文保存 / 恢复、调度时间中断相关时间中断延迟时间中断发生到系统获知的时间、中断响应时间中断发生到执行用户中断服务例程的时间、任务响应时间中断产生到任务开始运行的时间系统响应时间从发出处理请求到系统应答的时间由内核调度算法决定。17.3.2 多任务调度算法多任务调度的核心是合理分配 CPU 资源确保任务按要求执行算法分类及核心类型如下调度算法分类按时限性质软时限算法任务尽快执行、硬时限算法任务必须在特定时间内完成按任务周期周期性算法任务定期执行、非周期性算法任务执行时间不可预期按可抢占性可抢占算法高优先级任务可打断低优先级任务、非抢占算法任务运行至结束或阻塞才释放 CPU按优先级确定时机静态算法设计时确定优先级运行中不变、动态算法运行中动态调整优先级按处理器数量单处理器算法、多处理器算法同质 / 异质多处理系统按调度信息获取时机离线算法运行前确定调度信息、在线算法运行中动态获取。核心调度算法单调速率调度RMS静态固定优先级算法任务周期越短优先级越高假设条件任务周期性、无同步需求、抢占式调度、任务时限为下一周期开始、执行时间固定、同等重要可调度性条件所有任务的 CPU 利用率之和≤n (2^(1/n)-1)n 为任务数通常不超过 70%。时间轮转调度为相同优先级任务分配固定时间片轮流执行时间片结束释放 CPU进入就绪队列尾部时间片大小关键过大失去轮转意义过小导致任务切换频繁降低有效执行时间适用于相同优先级任务的公平调度常与基于优先级的抢占调度结合使用。截止时间优先EDF动态优先级算法任务截止时间越早优先级越高优势可调度性上限 100%CPU 利用率最高劣势实现难度大调度开销大需动态确定优先级。分区 APPS 调度静态调度算法适用于综合化模块化航空电子系统IMA核心将处理器时间划分为独立时间片分配给不同分区分区无优先级按固定周期重复调度调度原则调度单元为分区按时间优先周期小的分区优先调度确保分区时间资源独立。优先级反转及解决方法优先级反转是指低优先级任务占用高优先级任务所需资源导致高优先级任务阻塞的现象解决方法包括优先级继承协议低优先级任务占用高优先级任务所需资源时暂时提升至被阻塞任务的最高优先级退出临界区后恢复原优先级优点避免无限期阻塞缺点可能出现阻塞链或死锁。优先级天花板协议优先级天花板是指使用某临界资源的所有任务中最高的优先级规则请求资源时若资源被占用则阻塞若资源空闲且任务优先级高于当前优先级天花板则分配资源否则阻塞优点避免阻塞链和死锁一个任务仅被一个任务阻塞。17.4 嵌入式系统开发17.4.1 开发平台嵌入式系统采用交叉开发方法在通用宿主机上开发软件在嵌入式目标机上运行核心是交叉开发环境包括宿主机运行交叉开发工具编译器、汇编器、链接器编写和调试代码目标机嵌入式硬件平台运行开发完成的软件通信链路连接宿主机和目标机传输代码和调试信息目标文件格式常用 COFF通用对象文件格式和 ELF可执行链接格式需转换为二进制代码才能在目标机运行。17.4.2 开发流程与分析设计方法开发流程嵌入式软件开发与硬件紧密相关流程包括项目计划→需求分析→系统架构设计→软硬件设计→编码实现→下载→调试→固化→测试→运行可采用瀑布模型、螺旋模型等也可采用专用过程模型如快速面向对象过程 ROPES、无线互联网服务工程过程 WISEP。分析与设计方法改进的结构化方法结构化方法向实时领域扩展如 RTSAD、DARTS 等适用于简单系统复用性和可修改性较差面向对象的方法优势在于复用性和可修改性如 ROOM、OOTRTS 等支持大型复杂实时系统分析与设计基于构件的方法将实时内核、网络协议栈、嵌入式数据库等作为可复用构件降低开发成本提升质量基于模型的开发方法MBD通过可执行模型描述系统行为常用建模语言UML、SysML、AADL和工具Rhapsody、MATLAB、SCADE适用于初期设计阶段。17.4.3 软硬件协同设计嵌入式系统软硬件界限模糊“软件硬化” 和 “硬件软化” 并存协同设计核心是统一工具和方法同步设计软硬件核心目标均衡软硬件功能分配在满足复杂度要求的前提下提升性能、降低成本关键步骤系统规范→设计空间探索与架构设计→软硬件划分→硬件设计 / 软件设计→界面设计→协同验证→综合实现工具支持需协同合成工具和协同模拟工具如 PTOLEMY、TSS同时验证功能和性能早期发现问题。17.4.4 系统分析与设计实例多用途通用控制平台以集成网络技术和视频处理技术的多用途控制平台为例开发流程如下需求分析输出系统规格说明书包含物理尺寸、操作环境、功耗、通信协议等可采用 UML 描述系统架构设计架构组成硬件架构 软件架构软件架构需考虑实时性要求、设计模型、是否使用 EOS原则优先选用最简单的架构满足功能和非功能约束成本、速度、功耗硬件子系统设计核心选择处理器考虑速度、I/O 功能、调试支持等、划分硬件模块、设计接口电路关注电平匹配、驱动能力、干扰问题关键向软件设计人员提供详细硬件信息I/O 端口、内存映射、中断分配等软件子系统设计步骤明确实时性指标→任务划分→可调度性分析→任务优先级分配与中断关联性、紧迫性、执行频率、传递性优先级分配原则中断关联任务优先级高、紧迫任务优先级高、周期短的任务优先级高、前驱任务优先级高于后继任务EOS 选择考虑功能、配套开发工具、可移植性、内存需求、附加软件包、实时性、灵活性可剪裁性编程语言选择权衡通用性高级语言优于汇编、可移植性高级语言更好、执行效率汇编优于高级语言、可维护性高级语言模块化设计更易维护。17.4.5 低功耗设计嵌入式系统多为移动设备低功耗设计需从软硬件两方面入手基于硬件的低功耗设计板级电路设计围绕处理器低功耗特性和外围芯片工作特点优化选择低功耗处理器和总线器件如 LVDS 低电压差分信号器件接口驱动电路设计合理选择上拉 / 下拉电阻处理悬空引脚分区分时供电按电压划分供电区域关闭空闲区域电源基于软件的低功耗设计编译优化通过编译器优化指令执行顺序降低功耗软硬件功能再分配将部分功能由软件实现减少硬件规模算法优化采用时间复杂度低的算法如快速排序缩短执行时间降低功耗。17.5 嵌入式系统验证嵌入式系统多应用于安全攸关领域验证是确保系统满足需求、安全可靠的关键环节。17.5.1 验证与确认VV定义参考 EN 50129-2018验证提供客观证据确认已满足规定要求如设计验证检查设计是否符合规格确认提供客观证据确认满足预期用途或申请要求。实例电池管理系统参考 GB/T 39086-2020安全目标防止过充电、过放电、过温、过流导致热失控明确安全完整性等级ASIL、安全状态和故障容错时间间隔FTTI验证方法模拟环境模拟温度信号覆盖低于 / 等于 / 高于安全阈值和真实环境真实电池系统充放电监控安全状态切换测试测试通过准则在 FTTI 内进入安全状态无意外退出。17.5.2 嵌入式系统软件测试软件测试是验证的核心活动包括评审、分析和测试分类如下按程序执行状态静态测试不运行程序如代码评审、动态测试运行程序如功能测试按是否了解内部结构黑盒测试不关注内部结构、白盒测试关注内部逻辑、灰盒测试部分了解内部结构按执行方式人工测试、自动化测试。基于需求的软件测试方法参考 DO-178B/C 适航标准核心覆盖所有软件需求和代码分为软硬件集成测试、软件集成测试、低级需求测试覆盖分析需求覆盖分析TCA测试用例对需求的覆盖程度结构覆盖分析SCA测试用例对代码结构的覆盖程度包括语句覆盖、判定覆盖、改进条件 / 判定覆盖MCDC要求A 级软件需满足 100% MCDC 覆盖未覆盖代码需分析原因补充用例、增加需求、删除死代码等流程开发测试用例→运行测试→覆盖分析→补充测试→直至完全覆盖。形式化方法定义基于数学的系统属性描述技术用形式化规约语言书写功能描述是提高安全攸关系统可靠性的重要手段分类按建模方式面向对象Z 语言、Object-Z、面向属性OBJ3、Larch、基于并发CCS、CSP、基于实时TRIO、RTOZ按描述方式模型描述构造数学模型、性质描述描述系统属性优势发现描述不一致、不明确或不完整的问题加深对系统的理解。17.5.3 基于系统的构件测试方法构件化设计已广泛应用于嵌入式系统核心是验证构件的质量和复用性测试目的验证构件是否符合需求规约和构件标准验证构件选择、部署、复用、修改 / 升级的正确性核心问题异构性语言、OS、架构不同、源代码不可得性二进制交付、演化性多版本管理、执行路径不确定性测试流程单元测试验证单个构件的质量集成测试验证构件间交互和通信系统测试验证整个系统的功能与性能回归测试验证构件变更对系统的影响复用原有测试用例并补充新用例。