今天闲暇之时偶然刷到了“工科男孙老师”的一则视频,视频介绍了如何将一个AI模型放入MCU中,孙老师的视频质量是非常的高, 不过UP的视频
后面演示的时候是在NXP的一块 云开发平台上进行的实验 。 其实在这里
我主要是想关于MCU还有MPU的区别好像似乎没有界限的很清晰,因为视频一开始的图是MCU而最后演示的是在一块MPU上进行的,因此我们本期主要的内容是探讨一下MCU和MPU的区别。
群友记录
首先是从名字上:MCU是Microcontroller Unit 的英文简称,而MPU是Microprocessor
Unit的英文简称,那么从名字中就很好的体现了微控制器和微处理器的区别,前者MCU擅长控制,而MPU擅长运算,二者直观的体现在于算力和集成度上。 MCU
常常应用用在冰箱,洗衣机等家电控制等领域上,而通常 MCU
中也会集成内存和存储,使得一块小型的芯片可以在外部依赖极小的情况下可以正常运行,例如我们常用的51单片机,STM32F103/F4/H等就是常见的MCU,通常
不会运行太复杂的系统 , 一般是裸机开发或者加上操作系统 ,而这些被集成到一块芯片上的微控制器也就是我们概念中的 单 片机
。(这里对STM32特指了型号是因为我发现他们家有MPU) MPU
呢,则常被应用在路由器、汽车控制等需要复杂运算的设备上。由于其高性能和灵活性,因此在边缘计算上非常受欢迎,但是同时MPU也 依赖外部存储器以及一些外围设备
,成本和功耗都相比MCU较为高,由于其高性能,通常也会在其上部署Linux系统,而不是较为简单的实时操作系统。
而我们通常学习的Linux开发,当然我也接触过简单的Linux开发包括IMX6ULL,当然由于水平限制,只是限制在了非常简单的开发接触,在Linux系统中使用交叉编译器开发Linux,允许开发者在功能强大的开发主机上进行开发,然后将结果部署到资源受限的嵌入式设备上,当然这个过程也是在MPU中部署Linux系统必要操作。这里也简单的提一句为什么选择Linux而不是Windows,主要在于Linux的强开源性而且社区支持非常好(应用人群很多)
然后在此之上,还有SoC的概念,也就是System on
Chip,系统级芯片,将大部分功能例如电源、通讯模块,处理器,存储,输入输出接口等等功能集成在一块芯片上,例如我们的手机处理器比方说骁龙888(我的小米手机就是这块),它的出现主要是用来解决
CPU需要太多大体积外设
的问题,实现设备小型化、高集成度必不可少的技术。实际上嵌入式系统大范围则是指的SoC,而SoC则是包含MCU或者MPU亦或者二者皆有。
这里有一个小插曲,其实我也是最近查阅了一些资料才弄明白MPU和MCU的差别,之前就感到挺奇怪的,因为一次在翻ST家的产品的时候发现其MP系列的芯片。
虽然开始也没有搞明白为什么会区别开来,不过现在倒是清楚了,一个是MPU一个是MCU,当时只是一味的认为MP系列是多核高性能MCU,虽然没有用过但是对其产品还是蛮期待的,之后可能会入手一块MP系列的板子试一下开发。