MCU四大平台概览
条评论MCU:Micro Control Unit
微控制器四大平台:单片机,DSP,ARM,FPGA
单片机
适合:
控制:控制开关打开关闭,电机转动
不适合:
算法:处理速度慢,吞吐量小
数据传输:低速
高速数据处理
优点:
1.结构简单:体积小,价格低,功耗低
2.开发时间短
3.有诸多现成接口:I2C、SPI、AD、PWM 可以接各类传感器
缺点:
1.速度低、十至百兆
2.接口不够丰富:没有高速接口如USB OTG(on the go 既可以做主接口又可以做从接口)、网口、MIPI、SATA等
DSP
Digital Signal Processor
基本功能:
数字滤波器:在两个采样点之间对缓存数据进行卷积运算,运算量大
适合:
处理单路串行信号(对于非数字信号进行AD转换后处理)
运行各类DSP算法
不适合:
低端控制
优点:
1.高吞吐量(哈弗结构)
2.高处理速度
主频高
完成硬件卷积运算,内部集成三类硬件:累加器,硬件乘法器,桶形移位寄存器
缺点:
较单片机接口更少,功耗高,编程方面资源少
ARM
arm9及arm9以后全部采用哈佛结构
适合:
数据处理
数据传输
cpu
优点:
1.能装操作系统
2.接口丰富:以太网、USB、MIPI、SATA等需要协议栈支持的接口
3.配置灵活:CPU、单片机、视频解决方案等
缺点:
1.软件开发门槛较高:没有集成的开发环境,需要装虚拟机、装OS、配置开发工具链、开发板通过网口和虚拟机接在一起开启NFS服务,拥有一块共享空间。编写代码并在虚拟机环境下编译代码生成可执行文件,放在NFS共享区域中执行
2.器件更加复杂:体积大,价格高,功耗高
FPGA
现场可编程门阵列
通俗理解:集成元件库,将各类元件库集成到硅片上
导线、寄存器、乘法器、时钟管理器(PLL、DCM、MMCM)、存储器(RAM、双口RAM、FIFO)、存储控制器(DDR2\3\4)、高速串行器(光纤、PCle、SATA)、CPU(单片机(软核):Microblaze(TM)、x86(硬核):IBM PowerPC、ARM(硬核):Zync)、AD转换器
开发方法
硬件描述语言HDL:根据描述语言在集成开发环境下画一个电路
综合:把HDL转成原理图
实现:把原理图变成电路图
FPGA三大方向
逻辑信号:时序发生
DSP开发:雷达
嵌入式开发:ARM+处理电路
适合:
并行高速信号处理
芯片设计前期验证:联调验证
不值得流片的高端设计:比如5g基站
不适合:
低成本
优点:
用一个FPGA实现所有功能
缺点:
1.价格高
2.接口不丰富
3.开发门槛高,周期长
HDL:“说明文”
编译时间慢
4.外围器件多,PCB设计复杂
需要外挂一个flash、上电把电路图LOAD进FPGA
大量引脚
电源设计需要考虑各种硬件软件电流消耗
5.体积大功耗高
总结:
典型应用场景 | 未来发展方向 | |
---|---|---|
单片机 | 白色家电(比如洗衣机:根据水位温度传感器控制电机和各个程序) | 精简的ARM:STM32、ESP32 |
DSP | 实时数字信号处理:视频直播 | 加了DSP硬件的ARM:ARM9(哈弗结构)、TI的DSP集成C-M4核 |
ARM | 所有 | 加了各种专用电路的ARM,加速各种CPU应用 |
FPGA | 芯片验证、高端应用 | 带了可编程电路的ARM |
基本学习路线:简单单片机(ATMEGA328P、STM32系列、ESP32系列)->STM32+RTOS(实时操作系统)->ARM处理器(linux)
其他
冯氏结构简单、易实现、成本低,但效率偏低;哈佛结构效率高但复杂,对外围设备的连接与处理要求高,十分不适合外围存储器的扩展。现在的处理器,依托CACHE的存在,已经很好的将二者统一起来了。x86CPU外部是冯诺依曼结构,内存空间里是不区分数据与指令;内部是哈佛结构,CPU的L1 cacha是区分指令和数据的
arm+linux
linux 是操作系统内核。一般还可以说是一整套基于 Linux 内核运行的软件。
arm 嵌入式,是说的硬件。也就是把 arm 架构的 CPU 做的机器,嵌入到某个设备上作为一部分的开发。arm 性能高,资源多,需要开发各种任务调度,资源配置,I/O处理的基础功能,来实现 arm 本来就有的高性能。操作系统的作用就是提供一些基础的资源管理硬件调用的功能,有了 arm + linux ,再继续开发就只需要关注软件的功能了。