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