第12章 · 知识精要

嵌入式系统设计

章节概述

嵌入式系统是一种以应用为中心、以计算机技术为基础的专用计算机系统,其核心三要素为"嵌入性"、"专用性"与"计算机系统"。嵌入式系统数量上远超通用计算机系统,广泛应用于工业控制、通信、家电、消费电子、交通、医疗等领域。典型的嵌入式系统由嵌入式硬件平台(嵌入式处理器、存储器、外部设备、总线与接口)、嵌入式操作系统、支撑软件和应用软件组成。

与通用计算机相比,嵌入式系统具有鲜明的特点:系统专用性强、实时性强、软硬件依赖性强、处理器专用、多种技术紧密结合、系统透明性、资源受限。设计者在有限的存储容量、处理能力、功耗、成本和体积约束下,需要通过软、硬件协同设计来满足功能和性能指标,并保证系统的可靠性与实时性。

本章内容涵盖七个方面:嵌入式系统概论与组成(硬件架构/软件架构)、嵌入式开发平台与调试环境(交叉编译与多种调试方法)、嵌入式网络系统(现场总线/家庭信息网/无线通信/嵌入式Internet)、嵌入式数据库管理系统、实时系统与嵌入式操作系统(实时概念/OS特点/性能指标)、嵌入式系统开发设计(设计流程/核心技术/软件设计模型/需求分析/系统设计/集成测试),构成从概念到工程实践的完整知识体系。

知识结构框架

  • 12.1 嵌入式系统概论 — 定义(三要素:嵌入性/专用性/计算机系统)、七大特点(专用性/实时性/软硬件依赖/处理器专用/多技术融合/透明性/资源受限)
  • 12.2 嵌入式系统的组成 — 硬件架构(嵌入式处理器EMPU/EMCU/EDSP/SoC、总线AMBA/PCI/Avalon、存储器Cache/主存/外存、I/O接口RS-232/USB/IEEE1394)与软件架构(操作系统/应用支撑软件/应用软件三层)
  • 12.3 嵌入式开发平台与调试环境 — 交叉平台开发环境(宿主机/目标机)、交叉编译环境(COFF/ELF目标文件格式)、五种调试方法(直接测试法/调试监控法即插桩法/在线仿真法ICE/片上调试法ICD/模拟器法)
  • 12.4 嵌入式网络系统 — 现场总线网(FCS控制系统)、家庭信息网、无线数据通信网(短程无线/无线Internet)、嵌入式Internet(直接接入/网关接入、嵌入式TCP/IP协议栈特点)
  • 12.5 嵌入式数据库管理系统 — 使用环境特点(移动性/网络频繁断接/网络多样化/通信不对称)、系统组成(嵌入式DBMS/同步服务器/数据服务器/连接网络)、关键技术(数据一致性/事务处理/数据安全性)、移动DBMS八大特性
  • 12.6 实时系统与嵌入式操作系统 — 实时概念(强/一般/弱实时、硬/软实时)、嵌入式OS特点与分类(商业型/免费型、实时/非实时)、实时嵌入式OS关键特性与性能指标(任务切换时间/中断相关时间/系统响应时间)、主流嵌入式操作系统
  • 12.7 嵌入式系统开发设计 — 设计特点与技术指标(NRE成本/单位成本/大小/性能/功耗/灵活性等)、设计挑战、开发模型(瀑布/螺旋/逐步求精/层次)、设计方法、三大核心技术(处理器技术/IC技术/设计验证技术)、软件设计模型(状态机/数据流/并发进程/面向对象)、需求分析(UML规格说明)、系统设计(架构/硬件/软件子系统)、系统集成与测试

核心概念

嵌入式系统定义

以应用为中心、以计算机技术为基础,集可配置可裁减的软硬件于一体的专用计算机系统。三要素:嵌入性(嵌入对象系统,满足环境要求)、专用性(软硬件裁剪至最小配置)、计算机系统(满足对象系统控制要求)。

实时系统(硬实时/软实时)

正确性依赖逻辑结果产生结果的时间。按响应时间分强实时(毫秒/微秒级)、一般实时(秒级)、弱实时。按错失时限后果分硬实时(错失即灾难性后果)和软实时(有一定灵活性,错失不会导致系统失败)。

嵌入式处理器分类

EMPU(嵌入式微处理器,由通用CPU演变,单板计算机)、EMCU(嵌入式微控制器/单片机,单片化,占市场约70%)、EDSP(数字信号处理器,哈佛结构,硬件乘法器,用于信号处理)、SoC(片上系统,多功能模块集成于单芯片)。

嵌入式操作系统

运行在嵌入式系统上的OS,特点:微型化、代码质量高、专业化、实时性强、可裁减可配置。分类:商业型(VxWorks、pSOS、Palm OS)vs 免费型(嵌入式Linux、μC/OS);实时型 vs 非实时型。采用微内核结构,仅负责调度、通信、内存分配、异常中断管理。

交叉开发环境

嵌入式软件开发采用交叉平台开发(CPD):软件在通用平台(宿主机)上开发,在嵌入式平台(目标机)上运行。三部分组成:交叉开发工具、目标机上的可裁剪RTOS、宿主机与目标机间的通信连接(以太网/串口/ICE/ROM仿真器)。

调试方法

五种调试方法:直接测试法(最原始,观察指示灯)、调试监控法/插桩法(目标机加桩,与宿主机通信)、在线仿真法ICE(替代CPU,功能强但昂贵)、片上调试法ICD(BDM/JTAG,不占资源,环境一致)、模拟器法(纯软件,适合非实时应用早期开发)。

嵌入式总线与接口

片内总线与片外总线。AMBA(ARM规范,含AHB高性能/ASB系统/APB外设三种总线)、PCI/CPCI(高性能局部总线,欧洲卡结构高可靠)、Avalon(Altera SOPC用)。接口:RS-232串行、USB即插即用、IEEE1394火线(无需主控制器,点对点)。

嵌入式数据库(移动数据库)

运行在嵌入式/移动设备上的DBMS。特点:设备移动性、网络频繁断接、网络条件多样化、通信能力不对称。关键问题:数据一致性(乐观复制方法)、高效事务处理数据安全性。特性含微核结构、SQL支持、数据同步、零管理等。

实时性能指标

核心时间指标:任务切换时间(保存恢复上下文+调度时间)、中断延迟时间(中断发生到系统获知)、中断响应时间(中断发生到执行用户ISR)、中断恢复时间最大关中断时间(内核+应用)、任务响应时间系统响应时间(调度延迟)。

软件设计模型

嵌入式常用计算模型:状态机模型FSM(六元组,适合控制系统,可扩展为FSMD/HCFSM)、数据流模型(结点=变换,边=数据流,令牌触发,适合数据处理)、并发进程模型(最广泛,RTOS多任务实现)、面向对象模型(隐式/显式并发)。

关键公式与规则

本章无数学公式,但包含以下关键定义、规则和性能指标计算关系:

有限状态机FSM定义

FSM = 六元组 F<S, I, O, F, H, S0> S = 状态集合 {s0, s1, ..., sl} // 系统任一时刻仅处于一个状态 I = 输入集合 {i0, i1, ..., im} O = 输出集合 {o0, o1, ..., on} F = 次态函数/转移函数 (S × I → S) // 状态+输入 → 新状态 H = 输出函数 (S → O) // 状态 → 输出 S0 = 初始状态 // 扩展: FSMD(带数据路径的FSM)、HCFSM(分级/并发FSM)

实时系统正确性条件

实时系统正确性 = 功能正确(逻辑正确) AND 时间正确(在预定时限内完成) 硬实时: 时限必须满足,否则灾难性后果,结果错过后零级无用/高度贬值 软实时: 时限有灵活性,可容忍统计分布的响应时间,错失不导致系统失败 // 时限(Deadline): 系统必须对外部事件处理的最迟时间界限

可抢占实时内核性能指标计算关系

任务切换时间 = 保存当前任务上下文 + 恢复新任务上下文 + 调度选择时间 // 与微处理器寄存器数目和系统结构相关 中断延迟时间 = 中断发生 → 系统获知中断 // 主要受系统最大关中断时间影响 中断响应时间 = 中断发生 → 开始执行用户中断服务例程(ISR) // 中断延迟 + 中断处理执行准备 中断恢复时间 = 用户ISR结束 → 回到被中断的代码 // 可抢占式调度时还需加上任务切换和恢复新任务上下文的时间 最大关中断时间 = max(内核最大关中断时间, 应用关中断时间) 任务响应时间 = 任务对应的中断产生 → 该任务真正开始运行 系统响应时间(调度延迟)= 发出处理请求 → 系统做出应答 // 主要由内核任务调度算法决定

嵌入式系统设计指标体系

关键设计指标(各指标互相竞争,改良一个常导致其他恶化): NRE成本 = 一次性设计工程成本(设计完毕后不再支付) 单位成本 = 生产单个产品的货币成本(不含NRE) 大小 = 系统占用空间(软件:字节数; 硬件:逻辑门/晶体管数) 性能 = 响应时间 或 完成量(单位时间任务量) 功率 = 决定电池寿命/散热需求 灵活性 = 不增加NRE成本下改变功能的能力 上市时间 = 设计+制造+检测时间 可维护性 = 上市后修改的难易程度 正确性 = 功能正确实现程度 安全性 = 不造成伤害的概率

三大核心技术分类

1. 处理器技术: 通用处理器 → 灵活, NRE低, 上市快; 但量大时单位成本高 单用途处理器 → 性能好, 体积小; 但NRE高, 灵活性差 专用处理器 → 性能/功耗/大小平衡, 灵活性好; 但编译器开发昂贵 2. IC技术: 全定制/VLSI → 面积/速度/功耗最优; NRE高, 制造长 半定制/ASIC → 门阵列/标准单元, 灵活, 性价比高 可编程/ASIC → 实验室可烧制, NRE低; 单位成本高, 功耗大, 速度慢 3. 设计/验证技术: 硬件: 芯片级(编译/综合 + 库/IP + 测试/验证) + 电路板级 软件: 软件语言(机器语言→汇编→结构化→面向对象→需求级)

考试要点

  • 嵌入式系统三要素:嵌入性(满足对象系统环境要求)、专用性(软硬件裁剪至最小配置)、计算机系统(满足控制要求)——必考概念辨析。
  • 嵌入式系统七大特点:专用性强、实时性强、软硬件依赖性强、处理器专用、多种技术紧密结合、系统透明性、资源受限——常以多选题出现。
  • 嵌入式处理器四分类:EMPU(微处理器,通用CPU演变)、EMCU(微控制器/单片机,占市场约70%)、EDSP(DSP,哈佛结构+硬件乘法器)、SoC(片上系统,多功能集成)——注意区分各自特点和应用场景。
  • 硬实时 vs 软实时:硬实时错失时限产生灾难性后果且结果零级无用;软实时有灵活性,错失不导致系统失败——高频辨析题。
  • 嵌入式OS五大特点:微型化、代码质量高、专业化、实时性强、可裁减可配置——对比通用OS记忆。
  • 常见RTOS:商业型(VxWorks、pSOS、Palm OS)、免费型(嵌入式Linux、μC/OS);实时型 vs 非实时型分类。
  • 交叉开发环境:宿主机编译、目标机运行;三部分(交叉开发工具、目标机RTOS、通信连接);目标文件格式COFF和ELF——必考概念。
  • 五种调试方法:直接测试法、调试监控法(插桩法,需开发桩且占用资源)、在线仿真法ICE(替代CPU,功能强但昂贵)、片上调试法ICD(BDM/JTAG,不占资源)、模拟器法(纯软件,适合非实时早期开发)——注意各方法优缺点对比。
  • 实时性能指标:任务切换时间、中断延迟时间、中断响应时间、中断恢复时间、最大关中断时间、任务响应时间、系统响应时间——理解各指标定义及影响因素。
  • AMBA总线三种:AHB(高性能,主模块发起)、ASB(逐步被AHB替代)、APB(低带宽外设,低功耗,唯一主模块APB桥,无仲裁器)。
  • 嵌入式总线/接口区别:RS-232(串行,最高20kbps)、USB(即插即用,需主控制器)、IEEE1394(火线,无需主控制器,点对点,支持同步/异步)。
  • 嵌入式数据库关键问题:数据一致性(乐观复制法)、高效事务处理、数据安全性(终端认证+通信加密+副本加密存储);移动DBMS特性(微核、SQL支持、数据同步、零管理)。
  • 软件设计模型:FSM(控制为主系统)、数据流模型(数据处理,令牌触发)、并发进程模型(最广泛,RTOS多任务实现)、面向对象模型(隐式/显式并发)——注意各模型适用场景。
  • 三大核心技术:处理器技术(通用/单用途/专用处理器)、IC技术(全定制VLSI/半定制ASIC/可编程ASIC)、设计验证技术——注意三者优缺点对比。
  • 设计指标互相竞争:NRE成本、单位成本、大小、性能、功率、灵活性等指标间需要权衡——理解设计最佳化原则。

关键图示

图12-1 嵌入式系统基本硬件架构

图12-1 嵌入式系统的基本硬件架构

微处理器是整个嵌入式系统的核心,配合RAM/ROM/混合存储器及Flash、键盘、触摸屏、LCD等外部设备构成硬件基础。

图12-5 交叉编译环境示例

图12-5 典型的交叉编译环境示例

交叉编译器根据目标机CPU类型将C/C++/Java源代码生成目标文件(COFF/ELF),经归档、链接后产生可执行映像,下载到目标机运行。

图12-10 中断时序图

图12-10 中断处理相关时序图

展示中断延迟时间、中断处理执行时间、中断响应时间、中断恢复时间及最大关中断时间等实时性能指标的时间关系。

图12-11 嵌入式系统设计流程

图12-11 嵌入式系统设计流程

展示软硬件协同设计流程:前端活动(规格说明与系统架构)同时考虑软硬件,中间阶段独立开发构件,后端进行系统集成与测试。