嵌入式系统的定义与解析

发表时间: 2020-04-08 13:36

嵌入式系统是一种电子设备,具有执行计算任务的中央组件,专为特定和有限的功能而设计,并且被实现为电气或机械系统的组件。

该定义最令人讨厌的方面可能是术语嵌入式系统,电子设备以及电气或机械系统之间的冲突。

在诸如此类的讨论中,“系统”应保留给集成在功能单元中的物理上较大的机械和电气组件集合。例如MRI机,加热系统和激光打印机。当我们谈论用作系统组件的单个电路板或电子模块时,应使用“设备”,例如MRI机器中的梯度定时和控制模块,加热系统中的可编程恒温器,或激光打印机中的数据处理模块。

但是,术语“嵌入式系统”很有用,因为它提醒我们这些设备通常表现出系统的特征,即使它是纯电子系统,也只是一个很小的系统。它是一个系统(嵌入)在一个系统中。

嵌入式系统中有什么?计算任务的核心组件

根据我们的定义,嵌入式系统是执行计算任务的中央组件。在大多数情况下,这将是微控制器,但也可能是微处理器,数字信号处理器或FPGA。

每个嵌入式设计人员应完全熟悉固件开发。(另一方面,FPGA技能通常是可选的。如果我不得不猜测,我会说少于5%的嵌入式系统使用FPGA作为核心组件。)

“固件开发”包括以下任务:

编写代码。通常用C语言编写。我认为,汇编语言的知识至关重要,因为汇编指令会告诉您处理器的工作原理。您不需要在汇编中编写代码,但是您需要了解它。

配置外围设备。许多(可能是大多数)嵌入式系统将结合使用外设,例如模数转换器,可编程计数器模块,I2C接口或USB控制器。嵌入式设计人员需要彻底了解这些硬件模块:它们如何工作,通常如何实现以及如何在所需功能和配置寄存器中的位之间转换。

测试代码。这并不意味着打开设备电源并等待三分钟以确认其正常工作。您需要在将设备暴露于各种操作条件的同时系统地测试所有功能。

提炼代码。也许您的固件第一次总是可以完美运行,但我的固件却并非如此。初始测试主要是确定将代码带入功能状态所需的更正和调整的一种方法。

调试代码。“调试”是一个模糊的术语。在这里,我专门使用它来描述查找或纠正已经或多或少功能正常的代码中的细微错误的过程。调试是一项必不可少的基本技能,很难从书籍和文章中学习。熟练程度来自广泛的个人经验和经验丰富的嵌入式设计师的观察。

验证码。此时,您将尽一切努力确保代码正确执行所需的功能,并且当系统中其他地方或周围环境中发生意外情况时,不会着火。一个例子是“猴子测试”,即您为代码提供连续的随机输入,并确认设备没有故障。

嵌入式设备可以作为独立单元进行测试,甚至可以作为独立单元运行,但是嵌入式设计通常从根本上受集成概念的束缚。嵌入式系统的设计人员需要熟悉电源分配,通信接口和互连技术,因为这些是我们用来将设备成功集成到更大系统中的工具。

嵌入式设计是一个有趣的领域,因为它结合了令人愉悦的各种技能和任务,包括模拟设计,固件开发,PCB布局,接口设计和系统集成。如果您从事的工作是嵌入式系统,请随时在注释中对其进行描述,以便我们可以对属于此类别的设备类型有一个更完整的了解。