第12章 · 播客 第3集
嵌入式系统设计 · 存储器三层与串并接口的数字坑
🎙️ 本集播客:第3集:Cache 在嵌入式系统里全部集成在微处理器内部这个反常识考点,主存外存怎么分工,Flash 凭什么是外存之王;接口部分是数字雷区——RS-232 的 20kbps、15 米、1000 米,USB 的四根电缆 480Mbps,1394 的 S100/S200/S400 精确速率、4.5 米、6 根电缆和「不需要主控制器」。 语音由微软 Edge 神经网络语音预生成(女声·晓伊,男声·云希)。点击下方任意对话可直接从该句开始播,当前句朗读时下一句已预先加载,无缝衔接。
明
阿明
存储器这块,嵌入式和通用计算机有区别吗?我总觉得都一样是内存硬盘。
雅
小雅
有本质区别,先把三层结构立起来。嵌入式系统的存储器主要分为三种:高速缓存 Cache、片内主存和片外主存,以及外存。逐层说。高速缓存是存放当前使用最多的程序代码和数据的,即主存中部分内容的副本。然后是本集第一个杀招:在嵌入式系统中,Cache 全部集成在嵌入式微处理器内部,可以分为数据 Cache、指令 Cache 和混合 Cache 三种。
明
阿明
全部在内部?通用计算机不是有些 Cache 挂在外面吗?
雅
小雅
你的直觉没错,所以这道练习题才坑。题目问关于嵌入式系统中 Cache 的说法哪个正确,四个选项:全部集成在微处理器内部、全部位于微处理器外部、一部分在内部一部分在外部、与主存共用同一存储空间——按本教材答案是全部集成在微处理器内部。因为嵌入式系统的处理器很多本身就集成了片上存储,片外再挂 Cache 的方案不存在。这题就考原文这一句话,别用通用机的经验去改答案。
明
阿明
懂了,考嵌入式就按嵌入式的原话说。主存呢?
雅
小雅
主存是处理器能够直接访问的存储器,用来存放系统和用户的程序和数据,系统上电后,主存中的代码直接运行,主要特点是速度快,一般采用 ROM、EPROM、NOR flash、SRAM 和 DRAM 等存储器件。注意「处理器能够直接访问」这几个字,这是主存的定义性特征。
明
阿明
外存就是不直接访问的了?
雅
小雅
对,外部存储器是不与运算器直接联系的后备存储器,用来存放不常用的或暂不使用的信息,一般以非易失性存储器构成,数据能够持久保存,即使掉电也不消失。其中重点记 Flash 存储器:它是在 EPROM 和 EEPROM 的基础上发展起来的非易失性存储器,具有结构简单、可靠性高、体积小、质量轻、功耗低、成本低等优点,是最常用的一种外存类型。
明
阿明
把 Cache 的三种分法再确认下:数据 Cache、指令 Cache、混合 Cache——这和第 1 章学的 RISC 双 Cache 能对上。
雅
小雅
能对上,概念是相通的,但嵌入式的题问法不同:问「嵌入式系统中的 Cache 按内容分哪几种」,答数据 Cache、指令 Cache 和混合 Cache;问「位于哪」,答全部集成在嵌入式微处理器内部。两问合起来就是那道练习题的全部选项来源。
明
阿明
主存的器件清单里有 NOR flash,它和外存的 Flash 什么关系?别是一个东西吧?
雅
小雅
不是一个考点:NOR flash 列在主存的常用器件 ROM、EPROM、NOR flash、SRAM、DRAM 里,因为它支持芯片内执行、随机访问快,能当主存放代码;而外存说的 Flash 存储器是泛指在 EPROM 和 EEPROM 基础上发展起来的非易失性存储器,作为外存类型出现。题目问「主存一般采用哪些存储器件」,别漏了 NOR flash 这一项。
明
阿明
那判断「主存的数据掉电不丢」呢?主存清单里有 ROM 和 RAM 混着。
雅
小雅
别下这种绝对化结论。原文只说外存一般以非易失性存储器构成、掉电不消失;主存的定义性特征是处理器能够直接访问、速度快、上电后代码直接运行,没有承诺掉电保持。判断题考「外存数据掉电不消失」答对,考「主存掉电不消失」这种绝对说法要警惕。
明
阿明
明白了。存储三层我理清了:Cache 全在处理器内部,主存直接访问、上电即跑,外存非易失、掉电不丢。接下来接口,我预习过,全是数字,头大。
雅
小雅
数字多,但都是死记型的,讲一个钉一个。先看输入输出设备的分类:根据输入设备实现机理的不同,嵌入式系统的设备可以分为机械式、触控式以及声光式三类。输出设备除了显示器、打印机、绘图仪等,还包括 LED 指示灯、LCD 屏幕、扬声器等媒体。
雅
小雅
接口电路的设计首先考虑的是电平匹配问题,微处理器所提供与接收信号的电平必须与所连接设备的电平相匹配,否则将导致电路损坏或逻辑判定错误;其次还要考虑驱动能力和干扰问题。当前广泛应用的接口主要有 RS232 串行接口、并行接口、USB 接口、IEEE-1394 接口以及 RJ-45 接口,此外以蓝牙为代表的无线接口应用也日趋广泛。
明
阿明
第一个,RS-232,我记得它是老古董串口。
雅
小雅
RS-232 接口是美国电子工业协会推广的一种串行通信总线标准,是数据通信设备和数据终端设备间传输数据的接口总线。三个数字:RS-232-C 标准规定其最高速率为 20kbps;在低码元畸变的情况下,最大传输距离是 15 米;通过使用增强器,传输距离已经延长到 1000 米左右。
明
阿明
15 米和 1000 米别搞混就行——原始是 15 米,加了增强器 1000 米。
雅
小雅
对,出题就喜欢把「通过增强器」这个前提藏起来,直接问「RS-232 最大传输距离」,标准答案按原句答 15 米,选项里再放个 1000 米做干扰。看清楚题干有没有提增强器。下一个 USB:1995 年由康柏等几大厂商共同制定的一种支持即插即用的外设接口标准。在 USB 系统中,必须有一个 USB 主控制器——注意「必须」二字,和 1394 对比就靠它——USB 设备通过四根电缆与 USB 主控制器直接或间接相连,规范从 1.0 到 1.1 再到当前主流的高速 2.0 版本,最高速率可到 480Mbps。
明
阿明
四根电缆、480Mbps、必须有主控制器,USB 三个锚点。1394 呢?
雅
小雅
IEEE1394 即火线 FireWire,最初是由 Apple 公司研制的,1995 年 IEEE 协会以 FireWire 为蓝本制定了这个串行接口标准。硬件上其电缆接口为 6 根电缆组成,包括一堆电源线和两对双绞信号线。协议定义了三种传输速率:98.304Mbps、196.608Mbps 和 392.216Mbps,分别称之为 S100、S200 和 S400。为了保证数据传输率,线缆的长度一般不超过 4.5 米。
明
阿明
这三个速率数字也太刁钻了,98.304、196.608、392.216,一个都不能记成整数?
雅
小雅
一个都不能错,S100 对 98.304,S200 对 196.608,S400 对 392.216,MHz 的精确倍数就是 1394 的性格。记忆窍门:三个数大约是 100、200、400,但精确值分别乘了 0.98304——直接把三个完整数字抄下来背。4.5 米也别写成 5 米。
明
阿明
1394 和 USB 最大的区别是什么?我记得有道题专门考这个。
雅
小雅
就是刚才 USB 那句「必须有主控制器」埋的伏笔。IEEE1394 标准通过所有连接设备建立起一种对等网络,不需要主控节点来控制数据流,即跟 USB 技术相比,最大的区别是 IEEE1394 不需要主控制器,不同的外设之间可以直接传递信息。此外,采用该技术,两台计算机可以共享同一个外部设备。练习题问「IEEE1394 与 USB 相比,最大的区别在于」,选项有传输速度更快、支持设备数量更多、不需要主控制器设备间可直接通信、功耗更低,答案就是第三个。
明
阿明
所以 USB 是主从架构,1394 是对等架构,不用主控制器还能两台电脑共享一个设备。
雅
小雅
理解到位。1394 还有两个特性要背:它同时支持同步和异步传输两种模式——异步传输模式下信息的传递可以被中断,同步模式下数据将不受任何中断和干扰实现连续传输;采用异步传输模式时,会根据不同的设备实际需要分配相应的带宽。同时 IEEE1394 设备也支持热插拔和即插即用。
明
阿明
1394 的「两台计算机共享同一个外部设备」这个点,出题会怎么绕?
雅
小雅
判断题形式:「USB 技术下两台计算机可以共享同一个外部设备」,错,这是 1394 的特性;或者反过来「IEEE1394 必须通过主控制器中转」,也错,它是对等网络。你把因果链背全:因为不需要主控节点、设备间可直接传递信息,所以能两台计算机共享同一个外部设备。
明
阿明
USB 的版本线 1.0、1.1、2.0 也提一下?
雅
小雅
提了,USB 的规范由最初的 1.0 版本发展到了 1.1 版本,以至当前主流的高速 2.0 版本,最高速率可到 480Mbps。问「USB 2.0 最高速率」,答 480Mbps;注意题干写的是「USB2.0」才选 480,没有版本限定的就要掂量选项里有没有 12Mbps 之类的旧版本干扰——按本教材,480Mbps 就是绑定 2.0 版本的。
明
阿明
还有 RS-232 的全称,美国电子工业协会,这个机构名会考吗?
雅
小雅
会,考法是配对:「RS-232 是哪个组织推广的串行通信总线标准」,答美国电子工业协会。它的另一个定位句也别丢:是数据通信设备和数据终端设备间传输数据的接口总线——DCE 和 DTE 之间的接口,这句判断题改个词就能出题。
明
阿明
最后那个 RJ-45 呢?就是网口吧。
雅
小雅
对,RJ-45 接口就是常见的以太网接口,原文只点了名没展开,记住它在嵌入式常用接口清单里就行,清单是 RS232、并行接口、USB、IEEE-1394、RJ-45,外加以蓝牙为代表的无线接口。这道「清单题」的坑法是塞进一个不在清单里的串行标准,比如把 RS-485 混进来,按原文清单排除。
雅
小雅
本集必背第一部分:存储器三层 Cache、主存、外存;嵌入式系统 Cache 全部集成在微处理器内部,分数据、指令、混合三种;主存处理器直接访问、速度快,用 ROM、EPROM、NOR flash、SRAM、DRAM;外存非易失,Flash 在 EPROM 和 EEPROM 基础上发展而来,是最常用外存;输入设备按机理分机械式、触控式、声光式三类;接口设计先考虑电平匹配,其次驱动能力和干扰。
雅
小雅
第二部分,接口数字:RS-232 是美国电子工业协会标准,最高 20kbps,15 米,增强器到 1000 米左右。USB 是 1995 年康柏等制定,四根电缆,必须有主控制器,2.0 版本最高 480Mbps。1394 以 Apple 火线为蓝本,6 根电缆一堆电源线两对双绞线,S100 是 98.304Mbps、S200 是 196.608Mbps、S400 是 392.216Mbps,线缆不超 4.5 米,最大区别不需要主控制器、设备可直接通信,支持同步异步两种模式、热插拔即插即用。
明
阿明
98.304、196.608、392.216,我今晚做梦估计都在念这三个数。
雅
小雅
念顺了就丢不了。下一集进入开发环境:为什么嵌入式开发必须用交叉平台开发方法 CPD,交叉编译器、链接器怎么把宿主机上的源代码变成目标机的可执行映像,目标文件格式 COFF 和 ELF 又是怎么回事。