第2章:嵌入式系统硬件基础知识
本章对应原书第 64~116 页。软考视角:本章通常占上午题 6~10 分,是嵌入式方向"专业味"最浓的一章——ARM 工作模式、存储器选型、A/D 转换、总线接口(I²C/SPI/USB/CAN)几乎都是命题点。
本章在讲什么?(先看这个)
第1章讲的是"通用计算机"的硬件基础,本章则把镜头拉近到嵌入式系统的具体硬件:先补齐数字电路的地基(门电路、触发器、可编程逻辑器件),再讲嵌入式的心脏——微处理器(8/16/32 位、ARM/MIPS/PowerPC/DSP、多核),然后是存储体系(SRAM/DRAM/Flash 的选型)、各种 I/O 接口(GPIO、A/D、键盘显示触摸屏)、定时器,最后是嵌入式系统最庞杂的一块——总线与通信接口(PCI、USB、串口、I²C、SPI、CAN、以太网、蓝牙、ZigBee……)。
学本章的思路是"分类 + 参数":每个接口记住"几根线、同步还是异步、速率多少、用在哪",考试考的就是这些。
核心概念拆解
2.1 数字电路基础
2.1.1 信号特征
计算机内部元器件都是数字式的,工作在二值电平:高电平("1"/逻辑真)和低电平("0"/逻辑假),1 和 0 称为互补信号。
- 组合逻辑电路:不含存储功能,任一时刻的输出仅取决于该时刻的输入,与电路先前状态无关;由门电路组成,无反馈。典型:译码器、多路选择器。
- 时序逻辑电路:含存储功能,输出不仅取决于当前输入,还取决于存储单元的值;触发器是构成时序逻辑电路的基础。典型:寄存器、计数器。
2.1.2 组合逻辑电路和时序逻辑电路
组合逻辑电路的描述方法:
- 真值表:n 个输入对应 2ⁿ 种输入组合;能完全描述任何组合逻辑函数,但表随输入数指数增长。
- 布尔代数:OR(+,逻辑和)、AND(·,逻辑乘)、NOT(取反)三种基本操作符。
- 门电路:与门、或门、非门;输入/输出端加"。"表示取非。NOR 和 NAND 称为全能门电路——任何逻辑函数都可以仅用 NOR 或仅用 NAND 实现。
- 译码器(decoder):n 个输入、m 个输出(m ≤ 2ⁿ),每输入一个 n 位代码,输出端中最多有一个有效。m = 2ⁿ 为全译码,m < 2ⁿ 为部分译码。与之对应的是编码器(encoder),实现译码的逆功能。
- 数据选择器(多路开关 MUX):在选择信号作用下从多个输入通道选一路输出,常见二选一、四选一、八选一等。2ⁿ 个数据输入的多路选择器可实现 n+1 个变量的组合逻辑函数。数据分配器(DMUX)与之相反:一个输入分配到多个输出之一,本质是带使能端的全译码器。
时序逻辑电路:
- 时钟信号:固定周期、与运行无关;时钟频率 CF 是时钟周期的倒数。边沿触发(Edge-triggered)时钟意味着所有状态变化都发生在时钟边沿(上升沿/下降沿)时刻。同步是时钟控制系统的主要制约条件。
- 触发器:按时钟控制方式分电位触发、边沿触发、主-从触发;按功能分 R-S 型、D 型、J-K 型等。
- 电位触发器:同步控制信号 E 为约定电平时接收输入数据(D 端变化立即反映到 Q)。结构简单,常用来组成暂存器。
- 边沿触发器:只在时钟 CP 的约定跳变(正跳/负跳)时接收数据。常用正边沿触发器是 D 触发器。边沿触发器又称延迟型触发器(CP=1 期间的数据要延迟到下一个边沿才被接收);由于 CP 跳变期间出现在 D 端的数据和干扰不会被接收,抗干扰能力强,广泛用于组成寄存器、计数器和移位寄存器。
- 寄存器与锁存器:一个触发器寄存 1 位,n 位寄存器需 n 个触发器。最常用正跳沿触发的 D 触发器(各位在同一 CP 上升沿接收信息);由电位信号(使能 G)控制的寄存器称为锁存器,用于把短暂信号锁存保存,实现时间上的扩展。
- 移位寄存器:在时钟控制下将所存信息左移或右移。分单向(左/右移)与双向;按输入/输出方式分串入-串出、串入-并出、并入-串出三种。串行→并行称"串-并变换",并行→串行称"并-串变换",在接口电路中使用十分广泛(串行通信的基础)。
2.1.3 信号转换
数字集成电路分类:
- 双极型(晶体管作开关元件,电子和空穴两种载流子):TTL(晶体管-晶体管逻辑,开关速度快、抗干扰强、带负载能力强,应用最广泛);ECL(发射极耦合逻辑,三极管工作在非饱和状态,速度极高、输出阻抗低、内部开关噪声低,但噪声容限低、功耗大,用于高速/超高速系统);另有 DTL、HTL、I²L 等。
- 单极型 MOS(只有一种载流子):PMOS(速度低,已少用)、NMOS(速度稍高、电源电压低,仍在用)、CMOS(PMOS+NMOS 互补,静态功耗极低、速度较高、抗干扰强,被广泛采用)。
考点:"哪种电路速度最快"(ECL)、"哪种功耗最低"(CMOS)是经典对比题。
常用电平接口技术(TTL 与其他电路的接口):
- TTL→ECL:用 CE1024 芯片;ECL→TTL:用 CE10125(四路转换器,差分输入、抑制共态干扰)。
- TTL→CMOS:TTL 输出高电平规范值 2.4V,低于 CMOS 要求的 VIH≥3.5V(5V 电源),需在 TTL 输出端与电源之间接上拉电阻 R(阻值随 TTL 系列不同,如 74 系列取 390Ω~4.7kΩ);CMOS 电源电压高于 TTL 时要用电平移位电路(CC4504、CC40109 等)。
- CMOS→TTL:TTL 输入短路电流较大,要求 CMOS 能给出足够驱动电流,需使用 CC4049、CC4050 等接口器件。
2.1.4 可编程逻辑器件
- FPLD(现场可编程逻辑器件)中应用最广的是 FPGA(现场可编程门阵列)和 CPLD(复杂可编程逻辑器件)。
- 发展脉络:PROM → EPROM → EEPROM(只能完成简单逻辑)→ PLD("与"门阵列 + "或"门阵列,以乘积和形式完成组合逻辑)→ PAL(可编程"与"平面 + 固定"或"平面,工艺有反熔丝、EPROM、EEPROM)→ PLA("与"、"或"两个平面都可编程)→ GAL(如 GAL16V8、GAL22V10,采用 EEPROM 工艺,电可擦除改写,输出为可编程逻辑宏单元,灵活性强)→ 20 世纪 80 年代中期 Altera 推出 CPLD、Xilinx 推出 FPGA。
- FPGA/CPLD 特点:体系结构和逻辑单元灵活、集成度高、设计开发周期短、成本低、可实时在线检验,广泛用于原型设计和万件以下的小批量生产。
考点:PAL 与 PLA 的区别("或"平面固定 vs 两个平面都可编程)是细节考点。
2.2 嵌入式微处理器基础
处理器架构可采用冯·诺依曼结构(程序和数据共用一个存储器,经同一总线传输)或哈佛结构(程序存储器与数据存储器分开,各有独立总线,可同时取指令和取数据)。
考点:冯·诺依曼 vs 哈佛结构的区别是必考题;DSP 芯片内部采用程序和数据分开的哈佛结构。
CISC 与 RISC 对比(原书表2-1):
| 项目 | CISC | RISC |
|---|---|---|
| 硬件/软件分工 | 部分硬件功能由软件完成,软件复杂性增加,芯片成本高 | 部分软件功能由硬件完成,价格增加,芯片成本低 |
| 性能 | 减少代码尺寸,增加指令执行周期 | 使用流水线降低指令执行周期数,增加代码尺寸 |
| 指令集 | 复杂,指令多达 200~3000 条 | 只设置使用频度高的简单指令,复杂指令由多条简单指令组合实现 |
| 高级语言支持 | 软件完成 | 硬件完成 |
| 寻址方式 | 较多 | 种类少 |
| 控制器 | 微程序控制器 | 组合逻辑控制器(硬件实现) |
| 寄存器 | 通用寄存器较少 | 大量的通用寄存器 |
依据:典型程序中 80% 的语句只使用指令系统中 20% 的指令,且高频指令都是简单基本指令。
CPU 的构成(以 8086 为例):①通用寄存器组(AX/BX/CX/DX 数据寄存器;BX/BP 基址寄存器;SI/DI 变址;SP 堆栈指针);②运算器(核心为 ALU + 暂存器);③控制器(PC 程序计数器存下一条指令地址、PSW 程序状态字存溢出标志 OF/进位标志 CF 等、IR 指令寄存器存当前指令、时序部件)。现代 CPU 还集成 Cache、流水线等。
2.2.1 嵌入式微处理器的结构和类型
8 位处理器:8 位数据总线,多为 16 位地址总线,可寻址 64KB。最早的 8 位机是 1973 年 Intel 8080,随后有 Zilog Z80、Motorola 6800、Intel 8085 等。著名的 8048 及其第二代产品 8051 是目前应用最广泛的 8 位微处理器系列(8044 是 8051 的延续,带链路接口作从处理器)。特点:低成本、可扩充内存及接口。
16 位处理器:内部总线宽度 16 位,速度、吞吐能力、实时处理能力比 8 位有较大提高,有更多中断源、多路 A/D 转换通道。第一款是 Intel 8086(IBM PC 的核心),1982 年推出 80286(集成时钟产生器、两个 DMA 通道、中断控制器、3 个可编程计时器等,与 8086/8088 软件兼容)。目前主流:Intel MCS-96/196 系列、TI MSP430 系列、Motorola 68HC12 系列(用于便携设备、工业控制、智能仪器仪表)。
32 位处理器:32 位地址和数据总线,地址空间达 4GB。主流系列:ARM、MIPS、PowerPC。
- ARM(RISC 体系)特点:每条数据处理指令都同时控制 ALU 和移位器以最大化利用率;自动递增/自动寻址模式优化循环;可同时执行 Load 和 Store 多条指令;所有指令都可以条件执行。它在高性能、小代码尺寸、低功耗、小芯片面积间取得平衡。
- ARM 数据类型:字(Word)= 32 位,半字(Half-Word)= 16 位,字节(Byte)= 8 位(注意:ARM 的"字"与 8/16 位机中"字"=16 位不同)。
- ARM 七种运行模式(必背):用户模式 USR(正常程序执行)、快速中断模式 FIQ(高速数据传输或通道处理)、外部中断模式 IRQ(通用中断处理)、管理模式 SVC(操作系统使用的保护模式)、数据访问终止模式 ABT(数据/指令预取终止时进入,用于虚拟存储及存储保护)、系统模式 SYS(运行具有特权的操作系统任务)、未定义指令中止模式 UND(执行未定义指令时进入,支持硬件协处理器软件仿真)。
- MIPS:MIPS32 基于固定长度的定期编码指令集,采用 load/store 数据模型;算术逻辑运算采用三个操作数形式;带 32 个通用寄存器,便于编译器优化;向上兼容 MIPS 64 位架构。
- PowerPC:体系结构分三级——Book I(用户指令集体系结构,非特权指令)、Book II(虚拟环境体系结构:Cache 管理、原子操作、用户级计时器)、Book III(操作环境体系结构:内存管理、异常向量处理、特权寄存器/计时器访问)。
DSP(数字信号处理器):内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊指令。主要特点:①一个指令周期内完成一次乘法和一次加法(MAC);②程序与数据空间分开可同时访问;③片内有快速 RAM,可通过独立数据总线同时访问;④低开销/无开销循环及跳转的硬件支持;⑤快速中断处理和硬件 I/O 支持;⑥单周期内操作的多个硬件地址产生器(支持 FFT 的比特倒置地址、环形缓冲模地址等);⑦可并行执行多个操作;⑧支持流水线操作。功耗小(0.5~4W,低功耗 DSP 仅 0.05W),适合电池供电的嵌入式系统。缺点是通用功能相对较弱。
多核处理器:一枚处理器集成两个或多个完整计算内核。按内核对等性分:
- 同构多核:内核相同、地位对等。如 Intel 酷睿(i7 至少 8 线程、支持 Turbo Boost;i5 是 4 线程;i3 双核 4 线程不支持 Turbo Boost);TI TMS320C6678(KeyStone 架构,8 个 C66x 核,每核 1.25GHz,定点 32MAC/周期、浮点 16FLOP/周期,累计处理速率高达 10GHz)。
- 异构多核:内核不同,多采用"主处理核 + 协处理核"设计。典型:AMD APU(x86 CPU 核心 + GPU 矢量处理引擎"融聚");TI OMAP/Davinci(ARM + DSP——ARM 端跑外设驱动、OS、用户应用,DSP 端做音视频编解码,如 TMS320DM6467 集成 600MHz ARM926EJ-S 核与 C64x+ DSP 核);Xilinx Zynq-7000(ARM Cortex-A9 双核 + FPGA,软硬件都可编程的 AP SoC)。
考点:"同构/异构多核的定义""ARM+DSP 异构平台中 ARM 和 DSP 各负责什么"是下午案例可能的素材。
2.2.2 嵌入式微处理器的异常与中断
异常(exception):控制流中的突变,用于响应处理器状态中的变化。分四类(原书表2-2,必背):
| 类别 | 异步/同步 | 返回行为 |
|---|---|---|
| 中断 | 异步(来自 I/O 设备的信号) | 总是返回下一条指令 |
| 陷阱(trap) | 同步(有意的异常) | 返回下一条指令;最重要用途是系统调用(syscall 指令) |
| 故障(fault) | 同步(潜在可恢复的错误) | 可能返回当前指令重新执行 |
| 中止(abort) | 同步(不可恢复的错误,如硬件错误、内存奇偶错) | 不返回,中止应用程序 |
中断:异步发生,来自处理器外部 I/O 设备的信号,不由任何专门指令造成。
- 硬中断与软中断:硬中断由硬件产生(磁盘、网卡、键盘、时钟),每个设备有 IRQ;软中断是一组静态定义的下半部分接口,可在所有处理器上同时执行,软中断不会抢占软中断,唯一能抢占软中断的是硬中断。
- 可屏蔽与不可屏蔽中断:都属于外部中断。不可屏蔽中断(NMI):一旦提出请求 CPU 必须无条件响应;可屏蔽中断(INTR):CPU 可响应可不响应,受标志寄存器中中断允许标志位 IF 控制(STI 置 1 开中断,CLI 清 0 关中断)。
- 中断优先级:分查询优先级(不可更改,决定同时请求时先查询谁,与中断嵌套无关)和执行优先级(决定高优先级服务程序能否打断低优先级服务程序)。中断控制器负责排队管理、避免信号丢失、配置优先级、支持嵌套。
- 中断嵌套:正在处理某中断时,更高优先级中断源发出请求,CPU 暂停当前服务程序转去处理高优先级中断,完毕后返回继续——形成服务程序套用服务程序的情况。
考点:陷阱/故障/中止的返回行为;"系统调用属于哪种异常"(陷阱);NMI 不可被 IF 屏蔽。
2.3 嵌入式系统的存储体系
2.3.1 存储系统的层次结构
理想存储器应"快、容量足、便宜",但三者不可兼得,故构成层次结构:寄存器 → L1/L2 Cache → 主存(RAM)→ 磁盘 → 磁带/光盘。越靠近上层速度越快、容量越小、单位容量价格越高。两种经典组合:Cache + 主存构成 Cache 存储系统(全部由硬件实现);主存 + 磁盘构成虚拟存储系统(硬件+软件实现)。
2.3.2 内存管理单元(MMU)
MMU 提供内存保护的硬件机制,操作系统利用它实现系统内核与应用程序的隔离、以及应用程序之间的隔离,防止应用程序破坏操作系统/其他程序、防止对硬件直接访问。内存保护两方面内容:①防止地址越界(硬件检查访问地址是否在限定的地址空间内);②防止操作越权(共享区域按各自权限检查,违规则进行操作越权处理)。
2.3.3 RAM 和 ROM 的种类与选型
存储器按易失性分为易失性(RAM)和非易失性(ROM/Flash);按用途分内部存储器和外部存储设备。
RAM:与 CPU 直接交换数据的主存,随机读写(读写时间与信息所在位置无关),速度是所有访问设备中最快的,断电丢失内容。RAM 电路由地址译码器、存储矩阵、读写控制电路三部分组成;容量以"字数×位数"表示。
- SRAM(静态):存储单元是双稳态触发器(每个单元六晶体管电路),数据写入后只要不断电就一直保持,不需要刷新。工作时有晶体管导通有电流,功耗较大、集成度不能很高,但速度最快。Cache 一般采用 SRAM。
- DRAM(动态):每个单元由一个电容 + 一个访问晶体管组成,靠 MOS 管栅极电容存电荷表示信息;电容会漏电,必须定时刷新(再生),内部要有刷新控制电路,操作比 SRAM 复杂。但结构简单、元器件少、功耗非常小、集成度高(可达 GB 级),是大容量 RAM 的主流。加电但不读写刷新时无晶体管导通、几乎不耗电。常见的内存条由 DRAM 构成。
- DDR SDRAM(双倍速率同步动态随机存储器):在 SDRAM 基础上发展而来。早期 PMDRAM、EDO DRAM 已淘汰,现在主要是 SDRAM 和 DDR SDRAM。内存主频以 MHz 计量,主频越高速度越快。
考点:SRAM vs DRAM——"六管触发器 vs 单管电容""不用刷新 vs 要刷新""Cache 用 SRAM、内存条用 DRAM",年年必考。
ROM:非易失性,断电信息不丢失,常用于存储固定程序和数据。
- PROM(可编程 ROM / OTPROM):内部有行列式熔丝,用大电流烧断写入,只能写一次。出厂时内容全 1(或全 0)。
- EPROM(可抹除可编程 ROM):高电压编程写入,紫外线照射擦除(封装上有石英透明窗),可重复使用;用电擦除的 ROM 称 EEPROM(E²PROM)。曾是使用最广泛的 ROM。
- EEPROM(电式可抹除可编程 ROM):用高电场(电)擦除,克服了 EPROM 紫外线擦除不方便的缺点,但集成度不高、价格较贵。
快闪存储器(Flash):EEPROM 的变种,能在块级快速擦除(EEPROM 可按字节擦写,闪存大部分芯片需块擦除),擦写速度快、集成度高、功耗低、体积小、可在线擦除。分两类:
- NOR Flash:带 SRAM 接口、有足够地址引脚寻址,可随机存取任一字节,可直接连系统总线构成内存储器,可直接在其上运行程序(代码就地执行 XIP)。
- NAND Flash:用复杂 I/O 口串行存取数据,不能构成内存,只能作外存储器(可取代硬盘等块设备);读写以 512 字节的块为单位。
- 两者对比:NOR 读比 NAND 稍快;NAND 写入、擦除速度远快于 NOR;NOR 写前需先把目标块所有位写 0;NOR 上可直接运行程序,NAND 上仅可存储信息。
考点:"为什么启动代码放 NOR"、"NOR/NAND 谁读快谁写快"是嵌入式特色考题。
其他存储介质:磁盘(磁表面存储器中存取速度最快,转速 5400~15000r/min;接口有 IDE/ATA 与 SCSI,SCSI 系统占用率极低但贵,用于服务器)、光盘(CD-ROM 只读、CD-R 一次写多次读 WORM、CD-RW 可重复读写、DVD 高密度)、CF 卡(SanDisk 1994 年,闪存技术,可靠性比磁盘高 5~10 倍,用电量仅为小型磁盘驱动器的 5%,数码相机首选;厚 3.3mm 为 CF I 型、5mm 为 CF II 型,I 型卡可插 II 型插槽)、SD 卡(松下/东芝/SanDisk 1999 年,24mm×32mm×2.1mm,9 针接口,基于 NAND 闪存 + MLC 技术,无移动部件)。
2.3.4 高速缓存(Cache)
Cache 位于处理器和外部内存之间,比 RAM 更快。其可行性依据是程序局部性原理:处理器在某时间段内总是访问当前内存地址的相邻地址,并非随机访问。
Cache 工作过程:①收到 CPU 访存地址;②地址分解为块号 + 块内偏移;③用块号查找 Cache 块;④命中则直接索引返回(读)或按 Cache 类型处理(写);⑤未命中则找空闲块;⑥有空闲块则装入对应内存块并返回数据;⑦无空闲块则按替换策略选出被替换块(回写式 Cache 若修改位为 1 需先回写内存),装入新块。
两种写策略(重点):
- 回写式(Write-back):写操作只写 Cache 不写内存,仅当该块被替换时才回写内存;每块有修改位(被修改置 1)。不能实时保证内存与 Cache 副本一致,但命中率高时效率较高,硬件实现较简单。
- 写通式(Write-through):写操作同时写 Cache 和内存;不需要修改位,替换时直接覆盖。始终保证一致性、稳定性高,但增加了 Cache 与内存的通信量,硬件实现复杂。
考点:"回写式 vs 写通式谁有一致性问题、谁需要修改位、谁通信量大"——三者对应关系别记反。
2.3.5 其他存储设备
见 2.3.3 中 Flash、磁盘、光盘、CF、SD 等内容(原书将闪存细述放在此节)。记忆要点再强调:Flash 是 EEPROM 的变种、按块擦除;NOR 可作内存跑代码、NAND 只能作外存。
2.4 嵌入式系统 I/O
接口是 CPU 和 I/O 设备之间交换信息的媒介和桥梁。嵌入式板卡常见物理接口:电源、以太网口、RS-232 串口、DVI、PS/2、USB、GPIO 等。低速接口:RS-232、RS-485、RS-422、SPI、I²C、GPIO;高速接口:以太网(百兆/千兆)、RapidIO、USB 接口等。
2.4.1 通用输入/输出接口(GPIO)
GPIO 是 I/O 的最基本形式,一组输入/输出引脚,CPU 可存取;有些引脚可编程改变工作方向,又称并行 I/O。双向端口由两个寄存器控制:
- 数据方向寄存器 DDR(Data Direction Register):设置端口方向——输出为 1,输入为 0;可写入改变,是微控制器地址空间中的映射单元。
- 数据寄存器 PORT:端口设为输出时,PORT 控制引脚状态;设为输入时,引脚状态由引脚上逻辑电路控制。端口为输入时写 PORT 不影响引脚,但读 PORT 总能读得引脚状态。
2.4.2 模数/数模接口
A/D 转换(模拟量→数字量):实时控制系统中,传感器测得物理量转成电信号,经放大、滤波,通过多路开关切换和采样/保持电路,送 A/D 转换器变成数字量供微机采集。三种常用方法(原书重点):
- 计数法:计数器从 0 计数,D/A 输出电压不断上升,与输入电压比较,第一次超过时停止计数。简单但速度慢——8 位 A/D 转换最大值需 255 个计数脉冲周期,且模拟电压越高越慢。
- 双积分法:对输入电压和参考电压进行两次积分,变换成与输入电压均值成正比的时间间隔,用时钟脉冲计数测出该时间。抗工频干扰能力强、精度高、速度慢(每秒转换频率小于 10Hz),用于数字仪表、温度测量。
- 逐次逼近法:A/D 芯片采用最多的方法。D/A 从高位到低位逐位试探,用逐次逼近寄存器存放数字量,与输入电压比较决定该位去留。速度快、精度较高:N 位转换只需 N 个时钟脉冲,可测几到几百微秒的过渡过程,是计算机 A/D 接口中应用最普遍的方法。
考点:"N 位逐次逼近只需 N 个脉冲,计数法最多需 2ⁿ−1 个"这组对比数字必须记住。
D/A 转换(数字量→模拟量):把每一位代码按权转成对应模拟量再相加。通常用 T 型(T 型电阻)网络把数字量转换为模拟电流,再用运算放大器把电流转换为电压。多数 D/A 芯片两个环节都含;只含第一环节的需外接运放。
2.4.3 键盘、显示、触摸屏接口
- 键盘:线性键盘(每个按键独立占一个 I/O 口,只适合按键少的场合)与矩阵键盘(N 行 M 列排列,需 N+M 个 I/O 口,最多可接 N×M 个键,节省连线,是最常用结构)。按识键/译键方法分:非编码键盘(软件方法,扫描法分行扫描、列扫描、反转法三种)和编码键盘(硬件实现扫描识别,常用 8279 专用接口芯片)。
- LCD 液晶显示:液晶分子液态存在,通电时分子按电流方向排列,液晶层能使光线扭转(类似偏光器)。通过给不同液晶单元供电控制光线通过与否来显示。彩色 LCD 每个像素由 3 个液晶单元格构成,分别带红、绿、蓝滤色片,三原色混色。
- 触摸屏:按工作原理分表面声波屏、电容屏、电阻屏、红外屏,常见的是电阻触摸屏——多层复合薄膜,两层透明导电层之间由细小透明隔离点绝缘;触摸时两层导电层在触点接触,接通 X 轴 5V 均匀电压场,底层电压由 0 变非零,控制器 A/D 采样后按分压原理算出坐标:Xᵢ = Lx·Vᵢ/V。
2.4.4 音频、视频接口
音频:数字音频链路——麦克风 → 音频解码器 A/D → 音频控制器 → DSP/CPU 处理 → 音频编码器 D/A → 扬声器。三种常用音频数据格式:
| 格式 | 说明 | 速率 |
|---|---|---|
| PCM | CD-ROM/DVD 采用,对左右声道采样,采样率 44.1kHz,精度 16 或 32 位 | 16 位时 1.41Mb/s;32 位时 2.42Mb/s |
| MP3 | 对 PCM 音频压缩编码,立体声 | 112~128kb/s(解码后音质与 CD 相同) |
| AC3 | 数字 TV、HDTV 和电影的数字音频编码标准 | 立体声 192kb/s |
I²S 音频总线:Philips 提出的串行数字音频总线协议(Inter-IC Sound Bus)。只处理声音数据,控制信号需单独传输。使用 3 根串行总线:分时复用的数据线、字段选择线(声道选择)、时钟信号线。
视频接口(按质量递进记忆):
| 接口 | 特点 |
|---|---|
| VGA(D-Sub) | 显卡输出模拟信号的接口,CRT 时代应用最广;接液晶时转换损失使效果下降 |
| CVBS(RCA) | 复合视频,亮度与色度频谱间置复合在一起,有亮色串扰,传输质量最差 |
| S-Video(S 端子) | 亮度 Y 与色度 C 分开传输,避免色度干扰亮度,效果明显改善 |
| 分量视频接口(色差) | 在 S-Video 基础上把色度再分为 2 个色差信号,质量与 RGB 相当,3 种模拟接口中效果最好 |
| DVI | 数字视频接口(DDWG 1999 年推出);DVI-D 只接收数字信号不兼容模拟 |
| HDMI | 基于 DVI 制定的高清晰度多媒体接口,增加了数字音频传输;单线集成视频和多声道音频;首个不压缩全数字音视频接口,主要用于高清电视等消费电子(DVI 多用于 PC) |
2.4.5 输入/输出控制
I/O 设备包括设备本身和设备控制器(插在电路板上的一块或一组芯片)。接口分低速和高速,与 2.4 开头的分类一致。
2.5 定时器和计数器
2.5.1 硬件定时器
硬件上 Timer 和 Counter 概念可互换,差别在应用。系统时间由定时器/计数器产生的输出脉冲触发中断产生,输出脉冲周期叫一个"滴答(Tick)",即发生了一次时钟中断。RTOS 内核的硬件定时器管理功能:
- 初始化定时器:设置寄存器、滴答间隔,挂接系统时钟中断处理程序。
- 维持相对时间和日历时间:相对时间即系统时间(单位为滴答),每发生一个滴答加 1;日历时间可从实时时钟获取启动时刻。
- 任务有限等待的计时:用差分时间链组织延迟对象——每产生一个滴答,链首对象时间值减 1,减到 0 激活该对象并取下一个对象为链首。
- 时间片轮转调度的计时:时钟中断服务程序中把当前运行任务的已执行时间加 1,等于时间片则结束运行转入就绪队列。
2.5.2 软件定时器
由应用程序创建,创建时提供定时值;定时值减法计数为 0 时触发该定时器上的时间服务例程(中断服务程序中需对定时值减 1)。软件定时器可在无硬件看门狗的情况下实现看门狗:系统正常运行时在某处不断停止计时,定时器永不到期;一旦进入定时器服务例程,说明停止计时操作没被执行到,系统出错。
2.5.3 可编程间隔定时器(PIT)
PIT 主要功能是事件计数和生成时间中断,解决系统时间控制问题。总体由两部分组成:计数硬件和通信寄存器(含控制寄存器、状态寄存器、计数初始值寄存器、计数输出寄存器)。工作流程:内核初始化时写入控制字和计数初值 → 计数硬件对晶振输入脉冲计数(每收到一个脉冲减 1)→ 减到 0 输出脉冲并从初值重新计数 → 输出脉冲接到中断控制器,定期产生时钟中断,OS 每次时钟中断把时间计数变量加 1。定时器中断速率指每秒产生的中断个数,设定在控制寄存器中,取值范围与输入时钟频率有关。
2.6 嵌入式系统总线及通信接口
2.6.1 PCI、PCI-E 等接口
PCI(外设部件互连标准,Intel 1992 年推出):定义 32 位数据总线(可扩展 64 位),33MHz 时钟,数据传输速率高达 132MB/s。九大特点:①高速性(主设备可与内存直接交换数据,不经 CPU 中转);②即插即用(硬件资源由系统统一分配,无冲突);③可靠性(独立于处理器的中间缓冲器设计,增加奇偶校验错、系统错、超时处理等);④复杂性(需 CPLD/FPGA 实现复杂功能);⑤自动配置(每个 PCI 设备有 256 字节配置空间存放自动配置信息;PCI 定义存储器空间、I/O 空间、配置空间 3 种地址空间);⑥共享中断(低电平有效,多个中断可共享一条中断线,而 ISA 是边沿触发);⑦扩展性好(可多级 PCI 总线并发工作);⑧多路复用(地址线和数据线共用一组物理线路,减少管脚);⑨严格规范。
PCI-E:原名 3GIO(第三代 I/O 接口标准——第一代 ISA、第二代 PCI),后移交 PCI-SIG 标准化。基本架构包括根组件(Root Complex,可集成在北桥中)、交换器(Switch,以软件形式提供,支持终端设备间对等传输)和各种终端(Endpoint)。
其他总线:
- EISA:1988 年 Compaq 等 9 家公司联合推出,在 ISA 的 98 条信号线上又增加 98 条(双层插座),完全兼容 ISA。
- VME:结合 Motorola Versa 总线电气标准与 Eurocard 机械标准;数据传输为异步方式(只受信号交换协议约束、不依赖系统时钟);地址宽度 16/24/32/40/64 位,数据线 8~64 位动态可选;速率 0~500Mb/s;广泛用于工业控制、军用、航空航天、医疗。
- CPCI(Compact PCI):PICMG 1994 年提出,以 PCI 电气规范为基础的高性能工业总线,解决了 VME 与 PCI 不兼容问题;机械结构用欧卡连接器和标准 3U、6U 板卡尺寸,抗震通风好,可前面板拔插。
- PCMCIA:笔记本/PDA 等便携设备的接口规范,定义三种卡(长宽 85.6mm×54mm):Type I 厚 3.3mm(RAM/ROM)、Type II 厚 5.5mm(Modem、LAN 适配器)、Type III 厚 10.5mm(旋转存储设备如硬盘)。分 16 位 PCMCIA 和 32 位 CardBus(吞吐量近 90Mb/s、总线自主可与内存直接交换数据、3.3V 低功耗、后向兼容 16 位 PC 卡)。
2.6.2 USB、串口等
USB(通用串行总线):Intel、Compaq 等 7 家公司 1994 年推出。特点:①单一标准连接类型,一个端口一个中断,节省系统资源;②支持热插拔和 PNP(不关机插拔、动态加载驱动);③可通过电缆供电,支持挂机和唤醒节能模式;④四种数据传输类型:控制传输、数据传输(批量)、中断数据传输、同步数据传输(同步传输为音视频等实时设备提供固定带宽);⑤速率:低速 1.5Mb/s、全速 12Mb/s、USB 2.0 高速 480Mb/s(USB 已发展至 3.0);⑥一个端口可通过 Hub 灵活扩展。注意:USB 不能进行计算机互连。
串行通信:数据一位一位传输,传输线少、成本低、适合远距离;缺点是速度慢(并行传 n 位需时间 T,串行至少需 nT)。
- RS-232C:美国 EIA 制定的串行物理接口标准(RS=推荐标准,232=标识号,C=修改次数)。25 条信号线,一般双工通信只需一条发送线、一条接收线、一条地线。速率 50~19200b/s 一档;驱动器允许 2500pF 电容负载(150pF/m 电缆时最大距离 15m);属单端信号传送,有共地噪声、不能抑制共模干扰,一般用于 20m 以内通信。
- RS-485:通信距离几米到上千米时广泛采用。采用平衡发送和差分接收,能抑制共模干扰(能检测低至 200mV 的电压,信号可在千米以外恢复);半双工工作,任何时候只能有一点处于发送状态(发送电路须由使能信号控制);多点互连时最多并联 32 台驱动器和 32 台接收器,可构成分布式系统。
考点:RS-232C 与 RS-485 的对比(单端 vs 差分、距离、全/半双工)是老牌考点。
IrDA 红外:红外线无线传输协议及接口。需对接才能传输、安全性强;缺点是距离短、传输中不能移动、遇障碍物中断、功能单一。
并口(LPT):并行通信协议,速率比串口快 8 倍(标准并口 1MB/s),常连打印机/扫描仪,又称打印口。
IEEE 488:并行总线接口标准,连接微计算机与仪器仪表;按位并行、字节串行双向异步方式传输,最多 15 台设备(原书此处写"20 米距离、500Kb/s、最大 1Mb/s",与第1章一致)。
SCSI:源于 Shugart 公司的 SASI,1986 年成为 ANSI 标准;最初数据线 9 位、5Mb/s、距离 6m(加驱动器 25m),后发展出 SCSI-2 Fast and Wide、SCSI-3(Ultra SCSI),普遍用作高速外设总线。
MXI:NI 公司 1989 年推出的 32 位高速并行互连总线,最高 23Mb/s、距离 20m;一根电缆可连 8 个 MXI 器件,硬件映像通信无需软件协议;VXI 总线测控机箱与计算机互连的事实标准。
SPI(串行外设接口):同步串行外设接口,MCU 与外设(FLASHRAM、网络控制器、LCD 驱动器、A/D、其他 MCU)串行通信。有三个寄存器:控制寄存器 SPCR、状态寄存器 SPSR、数据寄存器 SPDR。一般使用 4 条线:
- MOSI:主器件数据输出,从器件输入;
- MISO:主器件数据输入,从器件输出;
- SCLK:时钟信号,由主器件产生(最大 fPCLK/2);
- NSS:从器件使能信号,由主器件控制,低电平有效(有的芯片标注 CS)。
I²C(Inter-Integrated Circuit):飞利浦开发的两线式串行总线,用于连接微控制器及其外围设备。特点:
- 两根信号线:双向数据线 SDA + 时钟线 SCL。
- 总线上所有外围器件需要唯一的 7 位地址,由器件地址(出厂固有,不可更改)和引脚地址(A2A1A0 接电源/接地/悬空形成)构成;引脚地址数决定同种器件可接入总线的最大数目。R/W 方向位:0 为主发从收,1 为主读从。
- 主/从双向通信:主机(通常是微处理器)发出启动信号、时钟信号和停止信号;被寻址设备为从机。发送数据到总线的称发送器,接收的称接收器。
- 多主控能力与总线仲裁:多个主器件同时占用总线时,发送电平与 SDA 实际电平不符的器件自动关闭输出级;仲裁先比地址位、再比数据位,不会造成信息丢失。
考点:I²C"两根线 + 7 位地址 + 多主仲裁"三件套,SPI"四根线 + 主从 + NSS 低有效",两者经常放在同一题对比。
IEEE 1394(火线 FireWire):苹果公司开发,1987 年完成、1995 年定为规范。两种传输模式:Backplane 模式(12.5/25/50Mb/s)和 Cable 模式(100/200/400Mb/s;1394A 最长线 4.5m,支持 63 个设备)。通信协议三层:事务层(只支持异步传输)、链路层(提供同步传输)、物理层。接口有 6 针(4 数据 + 2 电源,可供电)和 4 针(SONY 改良,称 i.LINK)两种。
CAN(控制器局域网):国际上应用最广泛的现场总线之一,最初用于汽车内部各 ECU 之间交换信息(发动机管理、变速箱控制、仪表等)。特点:单一网络理想情况可挂任意多节点(实际受电气特性限制,如用 P82C250 收发器最多 110 个节点);速率 1Mb/s(10km 时仍可达 50kb/s);多主方式串行通信总线;高抗电磁干扰、可检测任何错误、高实时性;用于汽车、航空、工业控制、安全防护。
2.6.3 以太网、WLAN 等
以太网:分十兆(10Base-T,10Mb/s)、百兆(100Base-TX 快速以太网,10/100Mb/s 自适应,支持自动协商)、千兆(两个标准:IEEE 802.3z 基于光纤/短距离铜缆的 1000Base-X,8B/10B 编码、信道 1.25Gb/s;IEEE 802.3ab 基于双绞线)。网卡两种工作模式:半双工(载波监听多路访问/冲突检测 CSMA/CD,同一时间只能单向传输,双向同时传输会产生冲突)与全双工(点对点连接、无冲突,两个方向各 100% 效率;冲突检测电路不可用)。
WLAN(无线局域网):覆盖范围一般 100m 以内(桥接可更大),传输介质为红外线 IR 或射频 RF(后者居多)。标准针对物理层和 MAC 层:
- IEEE 802.11(1997,Wi-Fi):定义物理层和 MAC 层;两个 RF 方法(跳频扩频、直接序列扩频)+ 一个红外方法,工作在 2.4000~2.4835GHz 频段。
- IEEE 802.11b(1999.9):2.4~2.4835GHz,速率 11Mb/s,可按 11/5.5/2/1Mb/s 自动切换;补偿编码键控调制;点对点模式和基本模式。
- IEEE 802.11a(1999):5.15~8.825GHz 频段,速率 54Mb/s(Turbo 72Mb/s),采用 OFDM(正交频分复用)扩频。
- IEEE 802.11g:兼有 11a 的速率、安全性好于 11b;采用 OFDM + CCK 两种调制,与 11a/11b 兼容。
蓝牙(Bluetooth):爱立信、诺基亚、东芝、IBM、Intel 于 1998 年 5 月联合推出。特点:①工作距离 10m 以内(加大射频功率可达 100m);②跳频扩频:2.4~2.4835GHz 划出 79 个频点,每秒 1600 次跳频,安全性和抗干扰强;③时分复用多路访问:基带符号速率 1Mb/s,每时隙 0.625ms;④微网(Piconet)网络技术,多个 Piconet 连成多 Piconet 结构;⑤语音信道采用 CVSD(连续可变斜率增量调制)编码,错误率 4% 时语音仍可识别,从不重发语音包;⑥FEC 前向纠错(报头总有 1/3 比例的 FEC 保护)+ 无编号 ARQ 方案。
ZigBee:基于 IEEE 802.15.4 标准的低功耗局域网协议,短距离、低功耗,适合自动控制和远程控制领域。类似 CDMA/GSM 的无线数传网络,可由多达 65000 个无线数传模块组成,节点间距离标准 75m、可无限扩展(靠增加节点数);节点成本不到 1000 元,远低于移动通信基站。
WiFi:即 802.11b 标准,最大优点传输速度较高(11Mb/s)且与 802.11 DSSS 设备兼容。突出优势:覆盖半径可达 100m(比蓝牙广)、速度快(11b 为 11Mb/s、11a 为 54Mb/s)、无须布线、健康安全(IEEE 802.11 规定发射功率不超过 100mW,实际约 60~70mW,远低于手机)。
GPRS:通用分组无线业务,"2.5G"技术(位于 2G 与 3G 之间),利用 GSM 网络未使用的 TDMA 信道提供中速数据传递。基于分组交换——多用户共享传输信道,只在传输数据时占用;区别于旧的电路交换连接 CSD。
3G:第三代移动通信,要求室内、室外、行车环境分别支持至少 2Mb/s、384kb/s、144kb/s。三种制式标准:WCDMA(欧洲,基于 GSM 演进 GSM→GPRS→EDGE→WCDMA,占全球 80% 以上市场份额)、CDMA2000(美国高通主导,由窄带 CDMA IS-95 演进,演进路径 CDMA IS95→CDMA2000 1x→CDMA2000 3x,多载波技术)、TD-SCDMA(中国独自制定,时分同步 CDMA,大唐电信 1999 年向 ITU 提出,融合智能无线、同步 CDMA、软件无线电,辐射低,起步较晚)。
AFDX:航空电子全双工通信以太网交换,基于商业以太网标准(IEEE802.3/IP/UDP),保证带宽与服务质量;包含终端、交换机、链路,数据交换通过虚拟链路(VL)进行,任一虚拟链路只能有一个源端。
FC(Fiber Channel 光纤通道):ANSI X3T11 小组 1988 年提出的高速串行传输总线,解决并行总线 SCSI 的技术瓶颈;被认为未来航空总线发展方向之一。特点:①高带宽(1x/2x/4x/8x,串行速率 1Gb/s→4Gb/s 并持续提升)、多媒介(铜缆 25m、多模光纤 0.5km、单模光纤 10km)、长距离;②可靠性实时性(32 位 CRC 校验、误码率低于 10⁻¹²、端到端传输延迟小于 10μs);③统一性与可扩展性(可把 SCSI、IP、ATM 协议映射到 FC 上);④开放式互连;航空电子领域有 FC-AE 协议族(FC-AE-ASM、FC-AE-1553、FC-AE-VI、FC-AE-FCLP、FC-AE-RDMA)。
2.6.4 RapidIO
由 Freescale 和 Mercury 共同研发,初衷是作为处理器的前端总线、用于处理器之间互连;1999 年完成第一个标准,现已成为电信、通信及嵌入式系统内芯片与芯片之间、板与板之间的背板互连技术。设计基本原则:①轻量型传输协议(协议尽量简单);②对软件制约少、层次结构清晰;③专注于机箱内部芯片间、板间互连。可满足嵌入式互连需求:高效率低成本低系统成本、点对点/点对多点通信、支持 DMA 操作、支持消息传递模式、支持分散处理和多主控系统、支持多种拓扑结构、高稳定性和 QoS。
2.7 嵌入式 SoC
SoC(System on Chip,片上系统):把计算机或其他电子系统的所有组件集成在一块集成电路(单个基板)上,组件包括 CPU、存储器、I/O 端口和二级存储器;功能上可含数字信号、模拟信号、混合信号和射频信号处理。与多芯片设计相比,功耗更低、占用面积更小,广泛用于嵌入式系统和物联网。
以 Xilinx FPGA 系列为例(原书以此展示 SoC 载体):
- Virtex 系列(旗舰,高性能):Virtex-4(2004,90nm)、Virtex-5(2006,65nm,逻辑结构从四输入 LUT 改为六输入 LUT)、Virtex-6(2009,40nm,功耗减 15%、性能升 15%)、Virtex-7(2010,28nm,功耗降 50%、性能 2 倍、超过 200 万逻辑单元)、Virtex-7 3D(四个较小 FPGA 通过插入器(硅互连焊盘)封装,68 亿晶体管、1 万条数据通路;由此诞生 Vivado 设计套件)、Virtex UltraScale(2014,20nm,4.4M 逻辑单元)、Virtex UltraScale+(2016,16nm,可用于机器学习)。Virtex 通常用 ISE 或 Vivado 以硬件描述语言(VHDL/Verilog)编程。
- Spartan 系列(低成本、高容量、低功耗,用于显示器、机顶盒、无线路由器等):Spartan-6(2009,45nm,9 金属层双氧化物工艺)、Spartan-7(2015 发布,28nm,缺乏高带宽收发器)。
初学者容易踩的坑 / 易错考点
- ARM 的"字"不是 16 位:ARM 体系结构中字 = 32 位、半字 = 16 位、字节 = 8 位。被 8/16 位机的"字长 = 16 位"惯性带偏就错。
- SRAM/DRAM 的"快慢"记反:SRAM 快、贵、功耗大、不用刷新(六管触发器);DRAM 慢、便宜、功耗小、必须定时刷新(单管电容)。Cache = SRAM,内存条 = DRAM。
- NOR/NAND 特性张冠李戴:"NOR 可直接运行代码、读快;NAND 写擦快、只能作外存"。题目常问"嵌入式系统启动代码为什么放 NOR Flash"。
- 异常四类别的返回行为:陷阱和中断都返回下一条指令,但陷阱是同步、有意的(系统调用);故障可能返回当前指令重试;中止不返回。别把"故障"和"中止"混为一谈。
- A/D 转换方法的"快慢":逐次逼近法 N 位只需 N 个脉冲(快),计数法最多 2ⁿ−1 个脉冲(慢),双积分法最慢但抗干扰最强、精度最高。问"某 8 位 A/D 采用计数法最大需多少个时钟周期"答 255。
- I²C 与 SPI 线数混淆:I²C 两线(SDA+SCL)、SPI 四线(MOSI+MISO+SCLK+NSS)。SPI 的 NSS 低电平有效,I²C 的器件地址 7 位。
- RS-232C 距离:单端传送、共地噪声,一般 20m 以内(15m 是 150pF/m 电缆时的电容限制值);远距离要用 RS-485(差分、半双工、千米级)。
- Cache 回写/写通:回写式有修改位、可能不一致但通信量小;写通式无修改位、始终一致但通信量大。问"需要修改位的是哪种"——回写式。
- 蓝牙与 ZigBee 的定位:蓝牙 1600 跳/秒、10m、点对多点语音数据;ZigBee 基于 802.15.4、超低功耗、65000 节点、为自动控制服务。问"低功耗大规模传感网选什么"选 ZigBee。
- 可屏蔽中断的双重控制:可屏蔽中断既受自身屏蔽位控制,又受 IF 总控制位控制;NMI 不受 IF 控制。STI 开中断、CLI 关中断,别记反。
小结 & 备考提示
本章内容多而杂,但命题规律清晰:数字电路考组合/时序之分与触发器;微处理器考 ARM 七模式、哈佛结构、DSP 特点、异常四分类;存储考 SRAM/DRAM/Flash(NOR/NAND)选型对比与 Cache 回写/写通;接口考 A/D 三法、GPIO/I²C/SPI/串口线数与特性;无线考蓝牙/ZigBee/WiFi 的参数。建议把这些对比表格打印出来反复看,本章分数属于"背到就拿"型。
必须记住的关键词:哈佛结构、ARM 七种运行模式、SRAM vs DRAM vs NOR/NAND Flash、逐次逼近法(N 位 N 脉冲)、I²C/SPI 总线。