[TOC]
前言简述
描述: 本章以物联网以及工业控制入门学习的朋友为主,针对微控制器四大平台的一个概览,简单讲讲这些平台都有什么样的特点,能胜任什么样的任务,以及未来这些平台的发展趋势,最后谈谈学习这四大平台的切入点。
此处假设读者在阅读前对上面四大平台有一定的了解。
思维导图链接: https://kdocs.cn/l/cp10f8UIR77L
单片机 -
描述: 单片机非常适用于做控制的,例如读取传感器信号后判断来控制电机的转动,然而其不适合做算法,并且其一般就是冯诺依曼结构的,它的吞吐也不够,它也不适合做数据传输,因此它也不能做高速的数据处理。
优点: (1) 结构简单:
- 体积小: 例如最小的单片机是一片F51的单片机(3x3)有16个引脚用于光模块里。
- 价格低: 例如Arduino Micro 芯片带外围元件才两位数。
- 低功耗: 例如在做低功耗设计的时候,可将其静态的待机电流控制在10个nA以下,然后便可利用纽扣电池让他待机久。
(2) 开发时间短: 有大量的例程和开发资料所以学习和开发周期短。
(3) 现成接口多:
- I2C、SPI : 用于接一些传感器元件和屏幕等。
- AD : 用于读取模拟量信号,电位器的旋钮。
- PWN: 控制电机和舵机的转动。
缺点:
- 传输速度低: 一般只有10兆到百兆,例如新型的单片机ESP32其最高的速度可以运行到200兆。
- 接口局限性: 一般只能接一些低俗的传感器之类的接口,很难接上高速传输通用的接口,例如没有USB OTG(支持主接口(
电脑主机USB->host接口
)和从接口U盘->peripheral(外围接口)
)、网口、MIPI、SATA等。
DSP - 数字信号处理
描述: DSP(Digital Signal Processor
) 数字信号处理 , 其为了实现一个数字滤波最基本的功能, 为了实现数字滤波其必须具备一个高吞吐量的特点,所以绝大数的DSP都是采用的哈佛结构。其次是高处理速度特点,它的高主要体现在两个方面第一个是主频高(例如TI公司即德州仪器公司在2006年左右实现了6000系列的DSP芯片就已经达到1Ghz主频),第二是必须能完成硬件卷积运算。
Tips: DSP 为了完成硬件卷积运算,一般在其内部集成了这三类硬件,首先累加器、硬件乘法器、桶形移位寄存器,有了这个三个器件后卷积速度便会大大加快。
Tips” 数字滤波实际上是要对两个采样点之间对缓存的数据进行一次卷积(可能有同学在图像滤波中听说过),实际上是移位乘加运算。
应用场景
Q: 哈佛结构和冯诺依曼结构有何关系区别与特点?
总结说明 DSP 适合处理单路串行的数字信号,如果不是数字信号则加上AD采样转换成为数字信号之后再处理,另外DSP也适合运行各种各样的数字信号处理的算法。
DSP 不适合的是做低端控制,绝大多数DSP芯片它的接口是没有单片机丰富的,使用起来也没单片机方便。其功耗与使用简易也比单片机要高和复杂。
ARM
优点:
- 安装OS操作系统: 实现一个并发的现象,实现多任务、多进程的调度(线程)。
- 丰富的接口: 包括以太网、USB、MIPI、SATA这些接口是需要协议栈支持的。
- 配置灵活: 例如CPU(手机里的其实是ARM的),将ARM把不用的东西去掉就可以实现一个单片机比如stm32或者esp32等(基于ARM核)。
缺点: (1)软件开发的门槛更高: 绝大多数是没有一个集成的IDE开发环境的,例如虚拟机->安装linux操作系统->配置开发工具链->开发板通过网口连接到虚拟机->开启NFS服务(用于数据共享)->使用VSCODE或者Source Insight代码编辑器编写代码->返回虚拟机编译代码->生成可执行文件->放入到NFS共享区->用开发板执行可执行程序。
(2)元器件更加复杂:体积大、价格高、功耗高(基于ARM核的单片机除外)。
应用场景: 视频解决方案: 利用ARM中央处理器实现运动相机以及行车记录仪等。
说明总结: ARM 适合数据处理、数据传输、以及作为一个CPU。 ARM 不适合
FPGA
Q:什么是FPGA?
现场可编程门阵列(Field Programmable gate arry), 实际上它就是一个集成元件库。
集成元件库:
- 导线:wire
- 寄存器: red
- 乘法器
- 时钟管理器: PLL(锁相环), DCM(数字时钟管理器), MMCM。
- 存储器: RAM, 双口RAM、FIFO(先入先出存储器)特点是容量大。
- 存储控制器: DDR2/DDR3/DDR4
- 高速串行器: 光纤、PCIe、SATA。(将并行信号改进行高速的串行信号)
- CPU处理器: 其主要可以分为以下三种单片机(软核):
Microblaze(TM)
, X86(硬核):IBM PowerPC
, ARM(硬核):Zync-七系列以后
双核处理器。 - AD转换器: 主流的开发库都包含它。
FPGA 开发方法采用硬件描述语言HDL(Hardware Description Language),表面与C语言有相似性,但其本质是不同的。
流程是根据你的开发套件画的电路,把HDL转换成为原理图,最终再把原理图变成电路图。
FPGA 三大方向:
- (1) 逻辑开发: 核心是要产生一个复杂的时序,例如CMOS的驱动时序图(有的时序图利用单片机、ARM或者DSP是及其难以实现的),主要应用于高端相机。
- (2) DSP开发: 一般是进行雷达开发。
- (3) 嵌入式开发: 一般是采用ARM和处理电路实现的。
FPGA 缺点:
- (1) 价格高: 最次的也是几十到一百左右。主流的A7的35T大概现在的价格在500元。
- (2) 接口不丰富: 要什么都需自己编,例如I2C/SPI等。
- (3) 开发周期长门槛高: 硬件描述语言是一个说明文,编译时间较长。
- (4) 外围器件多,PCB设置复杂: 需要外接存储器 flash记录配置,并在启动时读取FPGA。
- (5) 体积大、功耗高。
FPGA 优点: 就一句话One Chip to rule them all
利用一个FPGA实现所有芯片的功能,可以用其实现一个单片机、DSP或者ARM(包括专用电路的arm),总结一句话就是适合做大型复杂的工程设计。
说明总结: FPGA 特别适合处理并行的高速信号、芯片设计前期验证、还适合用在一些不值流片的高端设计上。
FPGA 不适合低成本的产品。
本章总结
应用场景: 单片机: 白色家电(例如洗衣机控制) DSP: 视频直播 ARM: 统揽天下 FPGA: 芯片验证、高端应用。
未来发展: 单片机: 精简的ARM(STM32或者ESP32) DSP: 加了DSP硬件的ARM(arm9【哈佛结构】、Ti公司的DSP集成C-M4核) ARM: 加了各种专用电路的ARM(SOC) FPGA: 带可编程电路的ARM.
基本学习路线
- 单片机: ATMEGA328P、STM32系列、ESP32系列。
- STM32: RTOS
- ARM处理器: Linux