本文主要内容来自 SpriCoder的博客,更换了更清晰的图片并对原文的疏漏做了补充和修正。
嵌入式系统硬件
- 嵌入式系统硬件经常在循环中使用(“循环中的硬件”):网络物理系统
硬件平台架构
- 包含很多部分:CPU、总线、内存、I/O 设备: 网络,传感器,执行器等。
- 每个部分有多大/多快?
流行的微处理器(单片机)
- ARM:做嵌入式设备很久,市场占有率比较高。
- MIPS(学院派):美国计算机协会(ACM)宣布 John L. Hennessy 和 David A. Patterson 荣获 2017 年年图灵奖。
- PowerPC
- X86
冯诺依曼结构计算机
- 存储器保存数据,指令。
- 中央处理器(CPU)从内存中获取指令:分离的 CPU 和内存区分可编程计算机。
- CPU 寄存器可提供帮助:程序计数器(PC),指令寄存器(IR),通用寄存器等。
- 嵌入式中两个版本的 CPU 都有
Harvard
- Harvard 不能使用自我修改的代码。
- Harvard 允许同时进行两次内存提取。
- 大多数 DSP(数据信号处理,Digital Signal Process)使用 Harvard 架构来传输数据:更大的内存带宽,更可预测的带宽
RISC vs. CISC
- CISC: 复杂指令集计算机:许多寻址模式、多种操作
- RISC: 精简指令集计算机:加载/存储、可传递指令
比较内容 | CISC | RISC |
---|---|---|
指令系统 | 复杂庞大 | 简单精简 |
指令数目 | 一般>200 | 一般 <100 |
指令格式 | 一般>4 | 一般<4 |
寻址方式 | 一般>4 | 一般<4 |
指令字长 | 不固定 | 等长 |
访存指令 | 不加限制 | 只有 LOAD/STORE 指令 |
指令使用频率 | 相差很大 | 相差不大 |
指令执行时间 | 相差很大 | 绝大多数在一个周期内完成 |
优化编译实现 | 很难 | 较容易 |
RISC-V
- 简单、完全开源并且免费
- 将基准指令和扩展指令分开,可以通过扩展指令做定制化的模块和扩展:RISC-V 的基准指令确定后将不不会再有变化,这是 RISC-V 稳定性的重要保障。
- 32、64、128 位指令集
设计系统芯片之前需要考虑的五件事
成本、生态系统、碎片化风险、安全性、设计保证
微处理器架构类型
编程模型
- 编程模型:对程序员可见的寄存器。
- 一些寄存器不可见(IR)
嵌入式微处理器的分类
- 嵌入式微处理器种类繁多,按位数可分为 4 位、8 位、16 位、32 位和 64 位。
- 根据功能不同,嵌入式微处理器分为四种:
- 嵌入式微处理单元(MPU)
- 嵌入式微控制器(MCU)
- 嵌入式 DSP 处理器
- 嵌入式 SoC
嵌入式微处理单元(MPU)
嵌入式微处理器就是和通用计算机的处理器对应的 CPU。
- 功能和微处理器基本一样,是具有 32 位以上的处理器,具有较高的性能。
- 具有体积小、功耗少、成本低、可靠性高的特点。
- 有的可提供工业级应用
流行的嵌入式微处理器:
- ARM(ARM 公司): Cortex-A8/A9/A15/A75/A76
- Power
- MIPS(MIPS 公司)
嵌入式微控制器(MCU,Microcontroller Unit)
嵌入式微控制器就是将整个计算机系统的主要硬件集成到一块芯片中,芯片内部集成 ROM/EPROM, RAM, 总线, 总线逻辑, 定时/计数器, Watchdog, I/O, 串行口等各种必要功能和外设。
特点:
- 一个系列的微控制器具有多种衍生产品
- 单片化,体积大大减小,功耗和成本降低,可靠性提高
- 是目前嵌入式工业的主流,约占嵌入式系统 50% 的份额
- 多是 8 位和 16 位处理器,32 位的也不多
流行的嵌入式微控制器
- 通用系列:8051,Coldfire 的 MC683xx(32 位),Cortex-M0/3/4/7/M33/M35P
- 半通用系列:支持 I2C,CAN BUS 及众多专用 MCU 和兼容系列
时间和温度系统的硬件架构图
基于 MPU | 基于 MCU |
---|---|
左侧部分是芯片,存储也会被集成到芯片中
NXP i.MX RT 系列跨界处理器
嵌入式 DSP
嵌入式 DSP 是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令执行速度。
应用领域:数字滤波、频谱分析、FFT
流行的嵌入式 DSP:
- 德州仪器器(TI),c6000 与 c5000
- 模拟器件公司(ADI)
- 摩托罗拉(Motorola)公司
嵌入式 SoC
嵌入式 SoC 是追求产品系统最大包容的集成器器件。绝大多数系统构件都在一个系统芯片内部。
特点:结构简洁、体积小、功耗小、可靠性高、设计生产效率高
流行的 SoC:高通骁龙(Snapdragon)、海思
FPGA
- 现场可编程门阵列列
- 赛灵思、阿尔特拉(被英特尔收购)
DSP 与 FPGA
TI 嵌入式处理产品组合
嵌入式系统产品
s
嵌入式微处理器的特点
基础是通用微处理器。
与通用微处理器相比的区别:
- 体积小、重量轻、可靠性高
- 功耗低
- 成本低:片上存储、引脚与封装、代码密度
- 工作温度、抗电磁干扰、可靠性等方面增强
ARM Ltd
- 成立于 1990 年 11 月:从 Acorn Computers 剥离出来
- 设计 ARM 系列的 RISC 处理器内核
- 将 ARM 核心设计许可给制造并销售给客户的半导体合作伙伴:ARM 本身并不制造硅
- 还开发有助于 ARM 体系结构设计的技术:软件工具、板、调试硬件、应用软件、总线架构、外围设备等
源自英国,售卖知识产权盈利
ARM 有非常大规模的生态链
ARM 处理器的分类
ARM 架构
典型的 RISC 架构:
- 大型统一寄存器文件
- 加载/存储架构
- 简单的寻址模式
- 统一和固定长度的指令字段
增强功能:
- 每条指令控制 ALU 和移位器
- 自动递增和自动递减寻址模式
- 多次加载/存储
- 有条件的执行
结果:高性能、低码量、低功耗、低硅面积
管道组织
提高速度:大多数指令在单个周期内执行
版本:
- 3 级(ARM7TDMI 及更早版本)
- 5 级(ARMS,ARM9TDMI)
- 6 级(ARM10TDMI)
管道刷新并在分支上重新填充,导致执行速度变慢
- 分支指令
if
,会导致预取指令失败,然后清空流水线,再取,分支指令可能会带来性能下降 - 有一个部分的分支嵌套过多,对嵌入式设备非常严重
指令集中的特殊功能消除了代码中的小跳转,从而获得了流水线中的最佳流程
Meltdown & Spectre
- 近 20 年的 Intel、AMD、Qualcomm 厂家和其它 ARM 的处理器受到影响
- 因为此次 CPU 漏洞的特殊性,包括 Linux、Windows、OSX 等在内的操作系统平台参与了修复
- Firefox、Chrome、Edge 等浏览器也发布了相关的安全公告和缓解方案
选择微控制器的标准
如何选择一个适合的微服务控制器?
嵌入式系统都是实时系统,需要考虑效率
- 有效且经济地满足任务的计算需求
- 速度,ROM 和 RAM 的数量,I/O 端口和计时器的数量,大小,包装,功耗
- 容易升级
- 单位成本
- 软件开发工具的可用性:汇编器,调试器,C 编译器,仿真器,模拟器,技术支持(开源框架可能没有多少人维护)
- 微控制器的广泛可用性和可靠来源。
选择微控制器的 10 个步骤
- 列出所需的硬件接口(保证物理上,设备可以连接到微处理器上)
- 检查软件架构
- 选择架构
- 确定内存需求
- 开始寻找微控制器
- 检查成本和功率约束
- 检查零件可用性
- 选择开发套件
- 研究编译器和工具
- 开始实验
- 做原型可以先忽略一些东西,SBC 板机,需要考虑够不够用的问题。
- 计算下移到 AIoT 的位置