Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>

X
BLOG

什么是嵌入式系统?

什么是嵌入式系统? Reading Time: < 1 minutes

嵌入式系统是基于微处理器的计算机系统,通常内置在系统或产品中,具有专门的操作角色。换句话说,嵌入式系统是在我们使用的所有设备、我们驾驶的汽车、我们乘坐的飞机以及我们乘坐的火车背后的隐藏“智能”。

与由桌面计算机、服务器和其他类似的计算领域等独立组件组成不同,嵌入式系统包含于产品中,包括集成硬件和软件。

如何应用嵌入式系统?

嵌入式系统的有趣之处在于其具有广泛的应用领域。从智能家居设备中的小型控制器到飞机上的航空电子系统,再到组成电信网络的大型网络交换机。这也使得它们的设计和开发具有挑战性。预期产品的约束会影响嵌入式硬件和软件的性能范围。

嵌入式系统是无处不在的,但对大多数消费者而言却相对了解不多。现代汽车的代码多达1亿行,但其中大部分不在信息娱乐系统中。现代汽车的许多软件和硬件都存在于各种微控制器和发动机控制单元中,用于控制和监控其功能。

嵌入式系统的架构

如上所述,嵌入式系统由硬件和软件组成。它们通常用于需要感知环境中的物理存在以及需要控制响应的应用程序。

一个简单的例子是带有嵌入式温控器的暖通空调系统。这样的系统可以感知房间的温度,并启动暖气或空调。它可能需要通过网络接口进行某种形式的通信,并在LCD屏幕(人机界面或HMI)上显示温度。

这样的系统通常被称为 “实时” 或“事件驱动”,因为它们必须及时地对现实世界的事件做出反应。根据应用程序的类型和关键程度,在特定时间响应事件非常重要。关键安全系统,如汽车上的防抱死制动器(ABS),必须在几毫秒内做出反应。这样的系统被称为“硬实时”,这意味着它们必须在规定的期限内完成,否则就会发生故障。具有较宽松截止日期的系统被称为“软实时”。在大多数情况下,这些系统运行在某种实时操作系统(RTOS)之上。

以下是嵌入式系统架构的一个简单示例:

什么是嵌入式系统?

嵌入式系统的独特之处还在于微控制器架构的使用。与桌面或服务器系统不同,微控制器通常将所有的RAM、ROM和I/O都放在一个芯片上。这些控制器通常具有与传感器和执行器交互以及与网络和其他通信设备集成所需的I/O能力。

嵌入式系统硬件

嵌入式系统在旨在满足其所用产品约束的硬件上运行。通常指定硬件以满足业务(如成本)和技术为目标。这些产品的数量可以达到数百万台,并且运行数十年,这意味着需要硬件和软件的可靠性和质量。

硬件上的约束

嵌入式系统硬件的常见限制是:

  • 有限的处理能力
  • 内存
  • 存储

这些约束限制了硬件所能支持的应用程序的性能和复杂性。反过来,这增加了设计和开发的挑战,特别是在尝试集成更多功能时。

嵌入式系统硬件约束是由业务需求驱动的,这些业务需求通常会影响最终产品的盈利能力。

  • 材料清单成本。 复杂程度较低的硬件购买成本较低,利润率较高。然而,随着软件复杂性的增长,它的速度很快就超过了硬件容量。转向更大规模的处理器意味着更高的物料清单(BOM)成本以及重大的软件影响。
  • 尺寸和重量。 最终产品受到尺寸和重量的限制,这可能会影响硬件的选择。更复杂的硬件可能需要更大的电路板、电源和散热。
  • 功耗。 嵌入式系统通常位于电池供电的设备中,因此其功耗受到严格管理。它们也可能存在于需要考虑热量的高端系统中。

目标硬件示例包括小型微控制器,如:

      • 无处不在的8位8051
      • Microchip的PIC16 MCU
      • ST Micro STM32 32-bit ARM Cortex MCU
      • 芯片上的嵌入式系统(TI的 OMAPRaspberry Pi)
      • 基于ARM、Intel和AMD处理器的大型多处理器64位系统
      Requirements Management and the Traceability Matrix

      嵌入式系统软件

      嵌入式系统的软件是大部分工程工作的投入点。事实上,大多数制造商都需要一个软件团队来开发嵌入到产品中的应用程序。这些公司的首席执行官开玩笑说:“我们是伪装成小部件制造商的软件公司。”事实是,软件已经成为许多市场差异化和创新的关键领域,包括那些主要产品不是软件的公司。

      与硬件一样,软件的复杂性取决于预期的应用程序,这可能会有很大的差异。然而,大多数嵌入式软件都可以分为三类:

      • 小规模
      • 中等规模
      • 大规模

      小规模, “裸金属"

      这些应用程序通常在8位和16位微控制器上,没有正式的操作系统,也称为裸金属。应用程序通常控制基于几个传感器的单个子系统。它们可能没有连接到网络,可能是自主操作。高级控制则在其他地方,例如监控和数据采集(SCADA)系统,通常需要更复杂的硬件和软件。

      中规模

      这些系统通常使用商业或开源的嵌入式操作系统,这些操作系统通常也是实时的(RTOS)。这些操作系统提供了必要的硬件抽象、多处理、多线程、网络和接口库。例子包括FreeRTOS, VxWorks, 和 QNX, 在某些情况下还包括嵌入式Linux。其应用可能各不相同,从飞机航空电子设备等硬实时、安全关键型应用程序到无线路由器和暖通空调系统。

      通常,硬件是32位微控制器和SoCs会比小规模系统拥有更多的RAM和闪存。然而,这类应用程序的代码行数(LOC)在数万到100万行甚至更多时,软件复杂性要高几个数量级。

      大规模

      这类系统通常非常复杂,具有多种特性和功能。它们通常在具有多处理器的类似服务器的硬件上运行。应用程序通常需要实时处理,并且可能仍然使用高端RTOS或Linux。这方面的例子包括企业网络交换机和路由器、电信网络骨干系统、股票交易处理和空中交通管制。这些系统高度复杂,与数百万行代码的代码库相互连接。

      尽管应用程序种类繁多,但仍有一些共同的特征,例如应用程序的专用性质。嵌入式系统通常全年24小时运行。它们还共同需要可靠、安全、节能和具有成本效益的生产。他们比以往任何时候都更需要安全,这一点我们稍后会讲到。

      嵌入式系统的应用

      嵌入式系统的应用程序不胜枚举,但明显引人注目的例子包括:

      • 心脏起搏器等救生设备
      • 飞机飞行控制和自动驾驶辅助等关键应用
      • 运行小装置和智能家居设备的软件

      我们的智能手机、平板电脑、智能手表和智能电视实则都是嵌入式系统,以下是更多运行在嵌入式系统上的应用程序:

      • 工业自动化
      • 核电站、发电及配电的指挥与控制
      • 用于维持经济运转的电能,热能及照明
      • 火车、飞机和汽车上的关键安全软件
      • 用于互联网和电信业务的通信塔、集线器、交换机和路由器
      • 先进的武器,战斗机、坦克和导弹的核心都包含嵌入式系统

      事实上,世界上生产的98%的微处理器都用于嵌入式系统。

      什么是非嵌入式?

      尽管嵌入式系统无处不在,但仍有许多系统和软件不是。所有桌面软件,如生产力、网页浏览器和视频游戏都不被视为嵌入式软件。企业软件、云基础设施和后端系统也没有嵌入。

      通常,如果它运行在通用硬件上,如典型的PC或服务器,它就不被认为是嵌入式的。在物理上,应用程序并没有与硬件捆绑在一起,不可分割。例如,个人电脑可能自带微软Windows操作系统,但该操作系统可以在不改变个人电脑主要功能的情况下被替换或移除。非嵌入式软件通常是可以在各种硬件(远程或本地)上运行的应用软件。

      嵌入式系统的信息及功能安全问题

      嵌入式系统在功能及信息安全关键设备中起着重要作用。像起搏器和ABS制动控制器这样的产品绝对不能出现故障。生命依赖于这些设备的始终正常运行。有名的故障,例如Therac 25 事件,大量病人受过量辐射,或者由整数溢出错误引起的阿丽亚娜5火箭灾难

      随着越来越多的嵌入式系统通过互联网(物联网)连接到一起,安全性成为了一个主要问题。这种相互联系创造了新的特性和机会,并为安全性攻击提供了机会。不安全的设备将存在大量隐患,因此在这些关键设备中必须同时考虑到信息安全以及功能安全。

      如何使嵌入式系统安全可靠?

      确保嵌入式系统安全可靠的唯一方法是通过测试。更准确地说,是通过整个开发生命周期中严格的验证和确认。这包括从软件开发之前,到早期的需求分析,一直到生命周期结束。

      在功能安全至关重要的一些行业里,必须遵守以下具体标准,包括:

      这些设备的制造商必须遵守这些标准,并通过审计证明他们进行了尽职审查,解决了所有关于功能安全以及信息安全的问题。这种类型的硬件和软件开发虽然耗时且昂贵,但对于确保部署时的正确行为至关重要。

      什么是嵌入式系统?

Written by

Ricardo Camacho

A Sr. Technical Product Marketing Manager for Parasoft’s embedded testing solutions, Ricardo has expertise in the SDLC and test automation of embedded real time, safety, and security-critical applications, and software compliance to industry standards.

将最新的软件测试新闻和资源发送到您的电子邮箱。