嵌入式项目基本架构
大型项目由三大部分构成:分别是嵌入式终端、上位机、云服务器,如下图所示:
- 嵌入式终端:它的设计包含软硬件两部分。它的种类最丰富的,既有手机、平板、触控板等人机设备,也有温度传感器、人体传感器等数据采集设备。关于它的详细介绍见下面章节。
- 上位机:它的设计是纯软件。可以模拟嵌入式终端与云服务器调试、可以作为嵌入式终端的产测、可以作为云服务器的客户端查看嵌入式终端上报的数据等等。
- 云服务器:它的设计是纯软件。它是服务的角色,服务于嵌入式终端和上位机。
嵌入式终端的种类非常丰富。按照设备的CPU的运行速度以及复杂度,从简单到复杂可分为三类:小、中、大。
|
CPU |
OS |
交互方式 |
|
|
小 |
51/AVR/PIC/STM8… |
事件触发型框架 |
串口 |
|
中 |
Cortex-M |
uCOSII/FreeRTOS/… |
串口/网络 |
|
大 |
Cortex-A/MIPS |
Linux/Android/YunOS |
串口/网络/GUI |
|
软件 |
APP |
Design doc |
业务逻辑 |
|
OS/API |
User Guide |
技术支持 |
|
|
硬件 |
SOC |
Datasheet |
|
|
POWER/PCB |
Schematic |
业务逻辑 |
一款嵌入式终端产品包含了硬件以及软件,可分为硬件和软件两层。硬件和软件又可以分别分为两层,硬件包括POWER/PCB层和SOC层,软件包括OS/API层和APP层。
POWER/PCB层和APP层的工程师占大多数,属于下游产业,与业务息息相关,他们的开发更关心的是业务逻辑。
中间两层由更专业的上游SOC芯片提供商提供,他们关心的是技术支持,他们设计出SOC芯片并将SOC芯片卖给下游开发商,与SOC芯片配套的有底层的软件OS/API,上游SOC芯片提供商会提供底层软件的使用说明以及技术支持。
下图是嵌入式终端环形图,最内环为核心环,做一环相关工作的称为一环工程师,即为上游产业,通吃各行业,一环工程师的数量相对较少,做一环工作的专业性更强,属于专业内拔尖人才。
做二环相关工作的属于二环工程师,这类工程师占绝大多数,他们做的工作与业务逻辑息息相关。
项目经理、产品经理的属于三环,他向外面向客户,了解客户需求,向内面向二环工程师,指导业务逻辑。
嵌入式终端的实现可分为三大层,分别是硬件层、系统层、应用层,对应的岗位分别是嵌入式硬件工程师、嵌入式系统工程师、嵌入式软件工程师。
嵌入式硬件工程师,主要有以下职责:
- 面向业务逻辑。
- 参考嵌入式系统工程师提供的原理图设计质量高、成本合理的硬件。
嵌入式软件工程师,主要有以下职责:
- 面向业务逻辑。
- 使用嵌入式系统工程师提供的API设计高质量的代码。
嵌入式系统工程师,主要有以下职责:
- 面向嵌入式硬件工程师和嵌入式软件工程师。
- 选择合理的方案(SOC)。并与上游厂商的技术支持保持沟通与联系。
- 向下给嵌入式硬件工程师提供原理图设计上的指导。
- 向上给嵌入式软件工程师构造稳定的代码运行空间并提供API。
嵌入式硬件工程师可分为:电源工程师和PCB工程师。
嵌入式软件工程师可分为:单片机应用工程师、Linux应用工程师、Android应用工程师、iOS应用工程师。