对于终端客户来说,要思考到底怎么做一款产品。目前好像主流的就是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 则通过模块化设计,简化了硬件开发过程,加快了产品开发进度,适合原型设计和中小规模生产的项目。选择时应根据项目的开发能力、成本要求和上市时间来决定。