(嵌入式系统的特点是什么)。
嵌入式系统是一个
电子设备具有执行计算任务的中央组件,专为特定和有限的功能而设计,并作为电气或机械系统的组件实现。
也许这个定义最烦人的方面是术语嵌入式系统、电子设备和电气或机械系统之间的冲突。
在诸如此类的讨论中,“系统”应保留给集成在功能单元中的大量机械和电气组件。示例包括 MRI 机器、加热系统和激光打印机。当我们谈论用作系统组件的单个电路板或电子模块时,应该使用“设备”,例如MRI机器中的梯度定时和控制模块,加热系统中的可编程恒温器或激光打印机中的数据处理模块。
然而,术语“嵌入式系统”是有用的,因为它提醒我们,这些设备经常表现出系统的特征,即使它是一个纯粹的电子系统,它也只是一个非常小的系统。它是一个系统(嵌入)在一个系统中。
嵌入式系统中有什么?计算任务的核心组件
根据我们的定义,嵌入式系统是执行计算任务的核心组件。在大多数情况下,这将是一个微控制器,但它也可能是一个微处理器、数字信号处理器或FPGA。
每个嵌入式设计人员都应该完全熟悉固件开发。(另一方面,FPGA技能通常是可选的。如果我不得不猜测,我会说只有不到5%的嵌入式系统使用FPGA作为核心组件。)
固件开发包括以下任务:
编写代码。通常用 C 语言编写。在我看来什么叫系统,汇编语言的知识至关重要,因为汇编指令会告诉您处理器的工作原理。您不需要在程序集中编写代码什么叫系统,但您需要知道它。
配置外围设备。许多(可能是大多数)嵌入式系统将使用模数转换器、可编程计数器模块、I2C 接口或 USB 控制器等外设的组合。嵌入式设计人员需要全面了解这些硬件模块:它们如何工作,通常如何实现,以及如何在所需功能和配置寄存器中的位之间进行转换。
测试代码。这并不意味着打开设备电源并等待三分钟以确认其正常工作。您需要系统地测试所有功能,同时将设备暴露在各种操作条件下。
优化代码。也许你的固件第一次总是完美运行,但我的不是。初始测试主要是一种确定使代码进入功能状态所需的更正和调整的方法。
调试代码。“调试”是一个模糊的术语。在这里,我专门使用它来描述查找或纠正代码中已经或多或少起作用的细微错误的过程。调试是一项基本技能,很难从书籍和文章中学习。熟练程度来自经验丰富的嵌入式设计师的丰富个人经验和观察。
验证码。此时,您将尽一切努力确保代码正确执行所需的功能,并且在系统或周围环境中的其他地方发生意外情况时不会着火。一个例子是“猴子测试”,您可以在其中为代码提供连续的随机输入并确认设备没有故障。
嵌入式设备可以作为独立单元进行测试,
甚至作为独立单元运行,但嵌入式设计通常从根本上受到集成概念的约束。嵌入式系统的设计人员需要熟悉配电、通信接口和互连技术,因为这些是我们用来将设备成功集成到更大系统中的工具。
嵌入式设计是一个有趣的领域,因为它结合了各种令人愉快的技能和任务,包括模拟设计、固件开发、PCB 布局、接口设计和系统集成。如果您正在研究嵌入式系统,请随时在注释中描述它们,以便我们可以更全面地了解属于此类别的设备类型。