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