当前位置: 首页 > news >正文

Linux上位机开发实践(SoC和MCU的差异)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        soc一般是指跑linux的芯片,而mcu默认是跑rtos的芯片,两者在基本原理方面其实差异不大。只不过,前者由于性能的原因,会被用在性能较高的场景之下,后者则多用于实时应用的场合,本质上两者的差别没有大家想象的那么大。

1、soc+ddr+flash=mcu

        mcu可以看成是soc、ddr、flash的一个集合体。mcu的cpu一般是8051,或者是arm,频率不是很高,通常是几十到上百M不等,内部集成了232等低速接口。ddr就是ram,一般几k到上百k,当然soc的内部用mmu管理ddr。flash就是代码存储的地方,一般也是几十到1M不等。这部分集成在一起,就是mcu。

        当然现在也有一种mcu是集成在soc里面,这种mcu,当成soc的一个设备节点就可以了。

2、mcu电源要求不高

        mcu的电压,大多数情况都是5v转3.3v。soc则要复杂的多,很多时候除了3.3v,可能还需要2.5v、1.8v、1.2v等等,所以为了简便,soc的外围很多时候会集成一个pmic芯片,专门用来负责不同电压的输出。

3、烧入方式稍有差异

        mcu目前swd烧入基本是标配,soc的话,则是usb otg烧入为主。mcu就是内部flash启动,soc则是spi nor、spi nand、emmc或者tf卡启动。至于晶振和复位,两者一样。

4、除非特定camera产品,mcu一般低速接口为主

        这里的低速接口就是大家一直使用的gpio、232、485、can、spi、i2c、pwm,少部分集成了sdio、usb和eth。有一些mcu是专门用来处理camera数据的,左边从mipi进来之后,经过isp,通过usb uvc协议送出去,这种专门处理camera的mcu芯片也是存在的,很多的usb相机也是这么做的。只不过这种芯片都是专款专用,除了camera,就不能用在其他方面了。与此相比较,soc则是聚集了很多高速的接口,这些接口都是以差分总线的形式存在。

5、mcu价格普遍不高

        大多数mcu的价格都是在10块钱以下,2-3块钱的mcu也是不稀奇,甚至是1块钱、几毛钱。当然,很多高端的mcu还是不便宜的,比如m7的mcu。soc的价格则相对贵一点,大部分都是10块钱以上,哪怕是f1c100s这样内部集成32m ddr的soc,价格也在1.5个美金,大约10块钱左右。

        当然要想soc运行起来,外部还要一个nandflash,这相当于成本上又多了几块钱。

6、mcu可以实现soc的大多数功能

        一般soc可以做的,mcu都可以做。比如传感器数据的处理、普通接口的处理、屏幕显示、网络通信、文件系统、usb通信等等,这部分mcu都可以完成。所以,mcu能做的工作事实上,要比大家认为的多得多。

7、图像数据是mcu、soc应用的分水岭

        对于低速数据,mcu和soc差异不大,但是高速总线部分,两者就慢慢拉开差距。比如复杂的soc,一般默认集成了isp,可以对图像数据进行编码、解码的处理,除此之外,soc通常还会集成npu,实现图像ai处理,这些都是目前为止soc才有的功能。

        图象处理是生产、生活中很大的一个应用,从最基础的显示、截图和录制,到rtsp低时延访问,再到工业相机、内窥镜、ai部分,这块市场其实非常大。mcu虽然也可以做一部分usb camera的工作,不过主力的实现还是通过soc+linux+加速ip来完成的。哪怕是usb camera,用mipi+soc+usb otg实现,效果也会更好,功能也会更全。

        有了图像数据,所有的配套都要修改,比如cpu频率要提高,ddr要扩大,flash要增大,算法要硬加速,网络传输也要更快,所以数据量的提高、需求的变化是嵌入式技术发展最本质的原因。

8、实时控制是mcu的拿手好戏

        一开始mcu就是被用来进行控制处理的,比如电机的控制周期是6ms、8ms这样,用windows或者linux是没有办法完成的,但是对mcu来说却是很容易做到的事情。所以,只要是涉及到实时处理的部分,哪怕外挂都会外挂一个mcu来处理。

9、mcu非常适合个人来做

        从软硬件协同的角度说,mcu非常适合个人来做,本身电路不复杂,而且大部分mcu的应用就是while(1)+中断的形式来进行,就算是需要上位机适配,做一个qt上位机就好了,自己可以把大部分精力放在业务端来进行,养活自己肯定是没有问题的。

        相比较而言,soc要复杂一点,首先电路涉及到soc+ddr+nand+pmic,弄好了硬件,接着还得继续搭建uboot/kernel/rootfs的框架,不同的外设还得找不同的驱动,哪怕是一个屏幕,还有spi、iic、rgb、mcu接口、mipi、hdmi、lvds等很多的标准。等到这些都做好了,才能开始业务开发。为了突出业务的竞争力,必须适配厂家的sdk平台,寻找开源代码,这方面自然就没有mcu方便。这一切都做好了之后,才能慢慢去找客户,找市场。相比较而言,mcu的开发要容易一点。

10、用到什么学什么

        mcu和soc没有明显的分水岭,不存在谁比谁高级的问题,客户需要什么,我们就做什么。技术再好,卖出去才行。所以大家没必要画地为牢、固步自封,只需要知道两者的区别,在不同的场景下选择哪种方案合适就好。


http://www.mrgr.cn/news/98621.html

相关文章:

  • Information-Theoretic Limits of Bistatic Integrated Sensing and Communication
  • BTS7960 直流电机控制程序
  • SAP ECCS 标准报表 切换为EXCEL电子表格模式
  • 构建大模型知识库(一)
  • 【c++深入系列】:new和delete运算符详解
  • 安卓手游逆向
  • mysql表类型查询
  • 通过建模和仿真进行高速连接器设计
  • Python爬虫第15节-2025今日头条街拍美图抓取实战
  • GIS开发笔记(7)结合osg及osgEarth实现不同高度下的三个圆形区域形成的三维覆盖轮廓区域绘制
  • **Microsoft Certified Professional(MCP)** 认证考试
  • argparse
  • 子函数嵌套的意义——以“颜色排序”为例(Python)
  • Python抽象基类
  • Function Calling是什么?
  • CS5346 - CHARTS: Chart with Point / Bar / Line / Box
  • 神经光子渲染:物理级真实感图像生成——从麦克斯韦方程到深度学习
  • Windows安装Ollama并指定安装路径(默认C盘)
  • Godot学习-创建简单动画
  • RK3568 更换显示logo