西门子提供汽车嵌入式软件和嵌入式软件工程解决方案。西门子已于 2023 年 11 月停售 Nucleus、Nucleus Hypervisor、Nucleus ReadyStart、Sokol Flex Linux、Sokol Omni Linux 和 Sourcery CodeBench 产品(包括相关插件),现已停止为片上系统提供独立的嵌入式软件。这些产品的现有支持合同仍然有效,请联系西门子支持中心了解更多信息。
嵌入式软件有哪些不同类型及其用途?
- 操作系统 – 操作系统 (OS) 在一般意义上是指允许用户在计算设备上运行其他应用程序的软件。操作系统负责管理处理器的硬件资源,包括输入设备(如键盘和鼠标)、输出设备(如显示器或打印机)、网络连接以及存储设备(如硬盘驱动器和内存)。操作系统还提供各种服务,以促进软件应用程序的高效执行和管理以及内存分配。
- 固件 – 固件是一种直接为硬件编写的软件。它无需通过 API、操作系统或设备驱动程序即可运行,提供与其他设备通信或按预期执行基本任务和功能所需的指令和指导。
- 中间件 – 中间件是位于应用程序和操作系统之间的软件层。中间件通常用于分布式系统中,通过提供以下内容来简化软件开发:
- 隐藏分布式应用程序的复杂性
- 掩盖硬件、操作系统和协议的异质性
- 提供统一的高级接口,用于制作可互操作、可重用和便携式应用程序。
- 提供一套通用服务,减少大量重复劳动,增强应用程序之间的协作
- 应用程序 – 最终用户开发的最终软件应用在操作系统上运行,使用中间件和固件或与之交互,是嵌入式系统目标功能的主要焦点。终端应用程序各不相同,但不同设备可能使用相同的操作系统和固件。
嵌入式软件与嵌入式系统
运行嵌入式软件的设备中的硬件组件称为“嵌入式系统”。嵌入式系统中使用的硬件组件包括电源电路、中央处理单元、闪存设备、定时器和串行通信端口。在设备的早期设计阶段,就要确定组成嵌入式系统的硬件以及设备中的硬件配置。然后,从头开始开发嵌入式软件,以便在精确配置的硬件上专门运行。这使得嵌入式软件设计成为一个专业领域,相关人员需要对硬件功能和计算机编程有深入的了解。
基于嵌入式软件的功能示例
几乎每个带有电路板和计算机芯片的设备都将这些组件排列到嵌入式软件系统中。因此,嵌入式软件系统在日常生活中十分常见,广泛应用于消费、工业、汽车、航空航天、医疗、商业、电信和军事技术领域。
基于嵌入式软件的功能的常见示例包括:
- 医学成像设备中的图像处理系统
- 飞机中的电传操纵系统
- 安全摄像头中的运动检测系统
- 交通信号灯中的交通控制系统
- 智能家居设备中的计时和自动化系统
嵌入式系统有哪些不同类型?
根据性能和功能要求,嵌入式系统主要分为五类:
- 实时嵌入式系统以确定性和可重复的方式完成任务,这受到操作系统底层架构和调度以及线程性能、分支和中断延迟的影响。通用嵌入式系统没有实时性要求,管理中断或分支并不依赖于完成时间。图形显示和键盘鼠标管理是通用系统的典型体现。
- 独立的嵌入式系统可以在没有主机系统或外部处理资源的情况下完成任务。它们可以从连接的设备输出或接收数据,但不依赖这些设备完成任务。
- 独立的嵌入式系统可以在没有主机系统或外部处理资源的情况下完成其任务。它们可以从连接的设备输出或接收数据,但不依赖这些设备完成任务。
- 联网的嵌入式系统依赖于连接的网络来执行分配的任务。
- 根据系统硬件架构的复杂性,嵌入式系统主要分为三种类型:联网的嵌入式系统依赖于连接的网络来执行分配的任务。
终端市场如何影响嵌入式系统
嵌入式系统的要求和组件会根据目标市场的需求而有所不同。举几个例子:
- 消费类 – 在洗衣机、可穿戴设备和移动电话等消费品应用中,嵌入式系统注重
- 片上系统尺寸优化、低功耗/电池运行以及图形接口。在这些应用中,可配置的操作系统和关闭设计的非操作“域”的能力非常重要。
- 网络 – 支持企业网络的连接、通信、运行和管理的应用程序。它提供用户、进程、应用程序、服务和外部网络/互联网之间的通信路径和服务。嵌入式网络应用程序侧重于响应速度、数据包处理和外围硬件路径。
- 工业 – 对于工厂车间管理、电机和风车等应用,重点往往在于保护云连接和确定性的“实时”操作,并且会非常注重中间件。
- 医疗、汽车和航空航天 – 这些行业需要混合安全关键系统,其中设计的各个部分彼此隔离,确保只有必要的数据进入或离开系统(安保),同时保证不会对最终用户造成伤害(安全)。例如,汽车和医疗器械中的自动驾驶系统。这些嵌入式系统可以混合使用开源 (Linux) 和确定性实时操作系统 (RTOS),并大量使用经过验证的中间件。
为什么汽车嵌入式软件与众不同?
在汽车电子设备中,多个嵌入式系统之间会发生复杂的实时交互,每个嵌入式系统都控制着制动、转向、悬挂、动力总成等功能,其外面的物理外壳称为电子控制单元 (ECU)。每个 ECU 及其嵌入式软件都是分布式系统这一复杂电气架构的一部分。
通过相互通信,构成车辆分布式系统的 ECU 可以执行各种功能,例如自动紧急制动、自适应巡航控制、稳定性控制、自适应大灯等。每一种功能都可能需要 20 个或更多嵌入式软件应用程序进行交互,而这些应用程序分布在通过多种网络协议连接的众多 ECU 上。与嵌入式软件一起部署的复杂控制算法可确保功能的正确时序、所需的输入和输出以及数据安全性。
基于汽车软件应用的功能的常见示例包括:
- ADAS(高级驾驶辅助系统)功能,如自适应巡航控制、自动紧急制动、车道保持辅助、交通辅助、车道偏离警告
- 电池管理
- 扭矩补偿
- 燃油喷射率控制
ECU 软件堆栈
电子控制单元 (ECU) 由带芯片级硬件的主计算单元和嵌入式软件堆栈组成。然而,汽车制造商越来越倾向于设计具有复杂集成电路的 ECU,这些集成电路在单个芯片上包含多个计算内核,即片上系统 (SoC)。这些 SoC 可承载多种 ECU 抽象,以整合硬件。ECU 的软件堆栈通常包括一系列解决方案,从低级固件到高级嵌入式软件应用程序。
ECU 堆栈 | 描述 |
嵌入式软件应用程序 | 控制算法、处理、服务 |
应用程序框架 | 安保与安全框架 |
操作环境 | AUTOSAR Classic、AUTOSAR Adaptive、输入/输出通道 |
嵌入式虚拟化 | 实时操作系统、ECU 抽象 |
固件 | 引导加载程序、安全存储、安全线程 |
硬件 | 硅基器件、微控制器、单层或多层电路板 |