第12章 · 趣味学习

嵌入式系统设计:藏在小物件里的大智慧 🔧

小明的奶茶店开到了汽车上——一台会自己跑的智能奶茶车。这车里的"大脑"就是嵌入式系统:体积小、专用、实时、资源受限。本章是全书最厚的一章,从概念到设计全流程讲透"藏在小物件里的计算机"。

🎭 本章导读:三个核心要素

嵌入式系统三要素:嵌入性(嵌入对象系统,满足物理/电气/成本环境)、专用性(软硬件可裁剪,最小配置)、计算机系统(满足对象控制要求)。7大特点:专用强、实时强、软硬件依赖强、处理器专用、多技术紧密结合、系统透明、资源受限。
小明
嵌入式系统和我用的电脑啥区别?
老师
你的电脑是"通用"的——啥都能干。嵌入式是"专用"的——只干一件事,但干得又小又省电又可靠。你的电脑坏了重启就行,汽车里的嵌入式刹车系统坏了可不能重启。所以它强调实时性、可靠性、资源受限。本章7节走一遍:概念→组成→开发平台→网络→数据库→实时OS→开发设计。

📌 12.1 嵌入式系统概论

以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用对功能/可靠性/成本/体积/功耗的专用计算机系统。

7大特点:①系统专用性强 ②系统实时性强 ③软硬件依赖性强 ④处理器专用 ⑤多种技术紧密结合 ⑥系统透明性(用户可能感觉不到它的存在) ⑦系统资源受限。

🧱 12.2 嵌入式系统的组成

软件+硬件。硬件=嵌入式处理器+存储器+外部设备。软件3层:系统软件(嵌入式OS)、应用支撑软件(窗口/网络/数据库/Java VM)、应用软件(最能体现系统功能)。

12.2.1 硬件架构

4类嵌入式处理器

类型缩写特点代表
嵌入式微处理器EMPU由通用CPU演变,体积小功耗低,单板计算机ARM/POWER PC/MIPS
嵌入式微控制器(单片机)EMCU单片化,体积更小功耗更低,占市场70%8051/MCS-96/MC68HC
嵌入式DSPEDSP哈佛结构,硬件乘法器,专门信号处理
嵌入式片上系统SOC一块芯片集成多功能模块,体积最小Trocore/M-Core/ARM

3种总线:①AMBA(ARM公司,AHB高性能/ASB系统/APB外设) ②PCI(地址数据复用32/64位,CPCI工业控制) ③Avalon(Altera,SOPC)。

3种存储器:高速缓存Cache(片内,数据/指令/混合)、主存(ROM/EPROM/NOR flash/SRAM/DRAM)、外存(Flash为主,非易失)。

I/O接口:RS-232串行(20kbps,15米)、USB(即插即用,480Mbps)、IEEE1394火线(对等网络,不需主控,支持热插拔)。

12.2.2 软件架构

自底向上3层:①嵌入式OS(微内核,负责进程调度/通信/内存/中断) ②应用支撑软件(窗口/网络/数据库/JVM,用于浅度嵌入如智能手机) ③应用软件(系统功能集中体现,不可没有)。

🛠️ 12.3 嵌入式开发平台与调试环境

嵌入式开发采用交叉平台开发方法(CPD):在宿主机开发,在目标机运行。本地开发(ND)则是开发环境=执行环境。

12.3.1 交叉编译环境

3部分:①宿主机和目标机上的交叉开发工具 ②目标机上的可裁剪实时OS ③宿主机与目标机的通信(以太网/串口/ICE/ROM仿真器)。

目标文件格式:COFF(公共对象)和ELF(可执行链接)。目标文件含:通用信息、二进制指令数据、符号表和重定位表、调试信息。

12.3.2 嵌入式开发调试5种方法

方法原理优缺点
直接调试法下载代码到目标机执行,看指示灯判断最原始最低效
调试监控法(插桩法)目标机加"桩"模块与宿主机调试器通信提高效率,但占用资源、不能响应中断
ROM仿真器法替代目标机ROM芯片,改良插桩法不占资源、不需开发监控器
在线仿真法(ICE)替代目标机CPU,有自己的CPU/内存最强调试(实时跟踪/硬件断点),但昂贵
片上调试法(ICD)CPU芯片内部调试模块(BDM/JTAG/OnCE)不占资源、环境一致,但标准不统一
模拟器法宿主机纯软件模拟目标机指令/系统调用不需硬件,但实时性差、不能模拟所有外设
交叉开发像"在北京画图纸,到沙漠里施工"——宿主机是舒适的开发环境,目标机是资源受限的现场。5种调试方法从"看灯泡"到"仿真器",精度和成本递增。ICE最贵最强,模拟器最便宜但最不真实。

🌐 12.4 嵌入式网络系统

4种网络:现场总线网、家庭信息网、无线数据通信网、嵌入式Internet。

现场总线(FCS):工业自动化领域的局域网,全数字化、分散、双向、多分支。将控制功能下放到现场,是开放的、互操作的、彻底分散的分布式控制系统。

家庭信息网:连接家电/水电气仪表/照明/安防/网络设备。控制子网(低带宽,类似现场总线)+数据子网(高带宽)。

无线数据通信网:短程(802.11/蓝牙/IrDA/HomeRF)+无线Internet(移动接入GSM/GPRS/CDPD,固定接入微波/扩频/卫星)。

嵌入式Internet两种接入:①直接接入(集成TCP/IP栈,需IP,性能要求高) ②网关接入(瘦设备方案,如EMIT,不需完整TCP/IP)。

嵌入式TCP/IP协议栈4特点:①API不标准(为效率简化) ②可裁剪(模块化) ③平台兼容性好(对OS依赖小) ④高效率(占用空间少)。

💾 12.5 嵌入式数据库管理系统

又称移动数据库。解决移动计算环境下数据管理问题。

使用环境4特点:设备随时移动、网络频繁断接、网络条件多样化、通信能力不对称(下行带宽远大于上行)。

系统组成:嵌入式DBMS(独立单用户)+同步服务器(连接枢纽)+数据服务器(主库)+连接网络。

应用关键3问题

  • 数据一致性:弱连接下采用乐观复制方法,允许操作本地副本,重连后交换修改+冲突检测协调
  • 高效事务处理:按连接速度定优先级、长时间事务迁移到服务器、按数据量定上载/下载、完善日志、断接处理机制、位置属性实时更新
  • 数据安全性:终端认证、无线通信加密、下载副本加密存储

移动DBMS 8特性:微核结构、支持SQL92子集、事务管理、完善数据同步(上载/下载/完全3种+冲突检测+快速同步+水平垂直分割+异构数据源+主动同步)、多连接协议、完备管理功能、平台无关性、零管理(自动恢复)。

⏱️ 12.6 实时系统与嵌入式操作系统

实时系统正确性依赖逻辑结果+产生结果的时间。死线(Deadline)=最迟处理时间界限。

12.6.1 实时概念

按响应时间强弱:强实时(毫秒/微秒)→一般实时(秒级)→弱实时(可随负载变化)。

按错失时限容忍度:硬实时(时限必须满足,否则灾难性后果,结果零级无用) vs 软实时(有灵活性,错失不致系统失败)。

12.6.2 嵌入式OS概述

5特点:微型化、代码质量高、专业化、实时性强、可裁剪可配置。

分类:商业型(VxWorks/pSOS/Palm OS,稳定但贵) vs 免费型(嵌入式Linux/uC/OS,免费但支持差);实时型(控制通信为主) vs 非实时型(消费电子)。

12.6.3 实时嵌入式OS关键特性

8特性:高可靠性、可裁剪、内存需求少、运行可预测性、实时调度策略、规模紧凑、支持ROM/RAM引导、可移植性。

3类时间性能指标

  • 任务切换时间:保存恢复上下文+调度时间
  • 中断相关:中断延迟(中断发生到系统获知)、中断处理执行、中断响应(到开始执行用户ISR)、中断恢复(ISR结束回到被中断代码)、最大关中断时间(内核+应用)
  • 系统响应时间:发出请求到系统应答(调度延迟)

📐 12.7 嵌入式系统开发设计

软硬件协同设计。本章集大成章节,含设计特点/指标/挑战、开发模型、核心技术、设计环境、软件模型、需求分析、系统设计、集成测试。

12.7.1 设计特点与11项技术指标

8特点:软硬件协同并行、处理器多样、实时OS多样、资源少、应用支持少、需特殊工具、软硬件都要健壮、调试困难。

11项指标:NRE成本(一次性)、单位成本、大小、性能(响应时间/完成量)、功率、灵活性、样机建立时间、上市时间、可维护性、正确性、安全性。各指标互相竞争,改良一个常致其他恶化。

8设计挑战:需多少硬件、如何满足时限、如何减功耗、如何保证可升级性、如何保证可靠性、测试复杂性、可视可控性有限、开发环境受限。

12.7.2 开发模型与设计流程

4种开发模型:瀑布(理想自顶向下)、螺旋(多版本逐步求精)、逐步求精(原型迭代)、层次(从整体到模块逐层展开)。

嵌入式软件开发过程:项目计划→可行性→需求→概设→详设→程序建立(宿主机编译链接)→下载→调试→固化→测试→运行。每步都要考虑"交叉"进行。

12.7.3 三大核心技术

1. 处理器技术(3类):

  • 通用处理器:存储程序+通用数据路径,灵活性高,NRE低,但数量大时单位成本高
  • 单用途处理器(协处理器/加速器):性能好体积小,但灵活性差
  • 专用指令集处理器:针对特定类型优化(单片机/DSP)

2. IC技术(3类):全定制/VLSI(NRE高,性能最优)、半定制/ASIC(门阵列/标准单元,性价比高)、可编程/ASIC(实验室可烧制,NRE低但单位成本高)。

3. 设计/验证技术:硬件(芯片级编译综合/库IP/测试验证 + 电路板级)、软件(语言从低级到高级,汇编/分析/编译解释)。

12.7.5 嵌入式软件设计6种计算模型

模型特点适用
状态机FSM六元组S/I/O/F/H/S0,状态+转移纯控制系统
数据流模型结点=变换,边=数据流,令牌触发数据处理转换
并发进程模型进程间通信(共享变量+消息传递)最广泛,多任务系统
面向对象模型隐式(对象建模为主) vs 显式(进程+对象)并发+对象结合

FSM扩展:FSMD(带数据路径)、HCFSM(分级并发)。OCTOPUS方法是面向对象+实时系统的典型设计方法。

12.7.7 系统设计

协同合成工具:POLIS(UC-Berkeley,FSM,小型控制)、COSYMA(IDA,软件合成,自动分割)、Chinook(控制系统,多处理器,定时限制)。

协同模拟工具:PTOLEMY(混合计算模型)、TSS(硬件模拟,C语言,支持多核)。

处理器选择6考虑:速度、技术指标(集成外设)、熟悉程度、I/O功能、软件支持工具、调试功能、制造商支持、低功耗。

OS选择7考虑:功能、配套开发工具、移植难易、内存需求、附加软件包、实时性、灵活性(可裁剪)。

编程语言:Ada(国防航空)、C(最广泛)、C++(面向对象但代码大)、Java。汇编移植性差但效率高。

🏆 本章总结:嵌入式全流程

  • 概念:3要素(嵌入/专用/计算机)+7特点
  • 组成:4类处理器(EMPU/EMCU/EDSP/SOC)+3总线(AMBA/PCI/Avalon)+3存储+软件3层
  • 开发平台:交叉开发(CPD)+5种调试(直接/插桩/ROM仿真/ICE/片上/模拟器)
  • 网络:现场总线+家庭网+无线+嵌入式Internet(TCP/IP栈4特点)
  • 数据库:移动数据库,乐观复制,8特性(微核/SQL/事务/同步/多协议/管理/平台无关/零管理)
  • 实时OS:硬/软实时,5特点,3类时间指标(任务切换/中断/系统响应)
  • 开发设计:11指标、4模型、3核心技术(处理器/IC/设计验证)、6计算模型、系统设计(处理器6选/OS7选/语言)
3要素7特点、4处理器3总线、5调试法、网络4类、DB8特性、实时OS5特点3指标、11指标3核心技术6模型