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