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

SoM的理解

对于终端客户来说,要思考到底怎么做一款产品。目前好像主流的就是SoC和SoM。以前联发科是有Turnkey项目,不过我记得我参与的项目,都是直接拿原厂的参考设计,基本上就是改一个壳,电路板,IO啥的都不动,撑死就是多几个灯或者按键。当然,之前的项目都是规范性很高的网关或者机顶盒项目,硬件上改动也不会很大。

但是在现在AIoT的项目中,硬件可能就百花齐放了,因为没有强如电信的大佬来做规范,所以终端百花齐放,客户怎么更快出产品就是一个问题。所以现在SoM又流行了,其实就是类似STM32那种主控板。基本上等同于国内的土话最小系统板。

比如这样一个STM32,直接焊在或者用接口连在终端产品的板子上,组成一个系统。包含了SDK,包含了底层驱动BSP,包含了操作系统。开发的话客户只用关心外设和应用。

### 1. **System on Chip (SoC)**
**SoC** 是一种集成电路,它将一个计算机系统的所有核心组件(如 CPU、GPU、内存控制器、I/O 接口等)集成在一块芯片上。SoC 通常用于嵌入式系统、移动设备、物联网设备等场景中,追求高集成度、低功耗和小尺寸。

#### **开发模式**
- **硬件开发**:使用 SoC 进行开发时,开发者通常需要设计和制作电路板(PCB),并将 SoC 焊接到板上。同时,还需设计电源管理电路、时钟电路、存储器接口和外设接口等。
- **软件开发**:需要从底层开始开发,包括引导加载程序(如 U-Boot)、操作系统内核(如 Linux 内核)以及驱动程序的编写和调试。
- **典型应用**:智能手机、平板电脑、单板计算机(如树莓派)、物联网设备。

#### **优缺点**
- **优点**:
  - 高度集成,体积小,功耗低。
  - 适合大规模量产,降低生产成本。
- **缺点**:
  - 需要硬件设计经验,对开发者要求较高。
  - 开发周期长,调试复杂。

### 2. **System on Module (SoM)**
**SoM** 是一个小型模块,它将 SoC 以及必要的存储器(如 RAM、闪存)、电源管理电路、时钟电路等集成在一个模块上,并提供标准化接口(如 GPIO、I2C、SPI、UART 等)供外部连接。SoM 通常直接焊接或插入到主板上使用。

#### **开发模式**
- **硬件开发**:使用 SoM 进行开发时,开发者只需设计载板(Carrier Board),即 SoM 的外围电路板。载板上主要包括电源输入、外设接口(如 USB、HDMI、Ethernet)、传感器和其他外部设备接口。
- **软件开发**:SoM 通常已经预装了引导加载程序和操作系统,开发者可以直接进行应用开发,减少底层软件开发的工作量。
- **典型应用**:工业控制、医疗设备、物联网网关、自动化设备。

#### **优缺点**
- **优点**:
  - 降低开发难度,加快产品上市时间。
  - 硬件设计简化,只需设计载板,不需复杂的 PCB 设计。
  - 适合原型设计和小批量生产。
- **缺点**:
  - 相对 SoC 成本更高,不适合大规模量产。
  - 性能受 SoM 上预集成的组件限制,灵活性稍差。

### 3. **如何选择 SoC 和 SoM?**
- **选择 SoC**:
  - 适合大规模量产的产品。
  - 适合对成本极为敏感的项目。
  - 需要高度定制化硬件设计的项目。
  - 开发团队具备完整的硬件开发能力。

- **选择 SoM**:
  - 适合快速原型开发和中小规模量产的产品。
  - 适合硬件设计经验不足的开发团队。
  - 适合产品生命周期较短或需要快速迭代的项目。
  - 需要减少开发时间和风险的项目。

### 4. **总结**
SoC 和 SoM 各有其适用场景和开发模式的差异。SoC 提供了更大的灵活性和更低的单位成本,但开发复杂度高,适合大规模量产的项目;而 SoM 则通过模块化设计,简化了硬件开发过程,加快了产品开发进度,适合原型设计和中小规模生产的项目。选择时应根据项目的开发能力、成本要求和上市时间来决定。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 头脑风暴中的颜色
  • [M二叉树] lc236. 二叉树的最近公共祖先(dfs+二叉搜索树)
  • IEEE P3233 标准启动会回顾:迈向去中心化存储标准化的第一步
  • 华为云CCE集群创建loadBalancer
  • 如何使用mcu 内置 flash 实现fatfs
  • jQuery基础——DOM
  • 要隐藏滚动条,您可以使用CSS中的overflow属性。
  • 编译可执行命令的FFmpeg
  • 达达熊搭建工程日志(持续更新中)
  • 【Python报错已解决】`ModuleNotFoundError: No module named ‘graphviz‘`
  • java利用JXL操作excel
  • 自然语言处理系列四十八》Word2vec词向量模型》算法原理
  • MyBatis 源码解析:SqlSessionFactoryBuilder 解析与实现
  • EasyExcel动态映射Excel数据到任意实体类教程
  • 会议记录|MAS Lab 年度组会记录
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • java中具有继承关系的类及其对象初始化顺序
  • JS数组方法汇总
  • Laravel Telescope:优雅的应用调试工具
  • Quartz初级教程
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • tab.js分享及浏览器兼容性问题汇总
  • 不上全站https的网站你们就等着被恶心死吧
  • 配置 PM2 实现代码自动发布
  • 前端技术周刊 2019-01-14:客户端存储
  • 悄悄地说一个bug
  • 如何编写一个可升级的智能合约
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • raise 与 raise ... from 的区别
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​ssh免密码登录设置及问题总结
  • ![CDATA[ ]] 是什么东东
  • ## 1.3.Git命令
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • %check_box% in rails :coditions={:has_many , :through}
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2)nginx 安装、启停
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (java)关于Thread的挂起和恢复
  • (八)Flink Join 连接
  • (二十六)Java 数据结构
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (利用IDEA+Maven)定制属于自己的jar包
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (源码分析)springsecurity认证授权
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • (状压dp)uva 10817 Headmaster's Headache
  • (自适应手机端)行业协会机构网站模板
  • ****三次握手和四次挥手