![]() |
![]() |
![]() |
嵌入式系统开发演变过程概述随着数字化转型,嵌入式系统的开发方式发生了哪些改变呢? 1. 固定功能到灵活系统 许多嵌入式或控制系统都是以单片方式设计的;定制硬件配备了定制的操作系统,可能是一些复杂的中间件,并托管一个或多个应用程序来执行一组特定的任务。整个设备作为单个设备进行包装和销售,并通过经历了类似设计周期的新一代替换整个单元来执行升级。这不仅是一种繁琐的设计方法,需要在每个设计周期重新开发和重新测试许多非差异化组件,而且在部署新功能或修复损坏的功能(包括安全更新)时也很不灵活。 2. 自动化设备到自治系统 许多嵌入式系统旨在自动执行特定任务。例如,在工业系统中,可编程逻辑控制器 (PLC) 用于自动化制造过程,例如化学反应、装配线或机器人设备。通常,这些设备具有高度的准确性、可重复性和可靠性,尽管它们需要单独编程才能这样做,并且通常在其初始设计参数之外执行的余地很小。然而,为了提高生产力并影响更大的业务成果,学习系统将越来越多地用于跨越单元、工厂或系统级别的一系列控制设备。类似的系统级方法正在自动驾驶应用中出现,学习系统还将对需要在边缘设备上运行的计算工作负载类型产生重大影响。传统上,嵌入式系统设计从定制硬件开始,可能包括定制的硅处理器,软件在其上分层——一种“自下而上”的方法。对于机器学习实现来说,这个过程是完全相反的;定义的问题陈述将确定要使用的最佳学习算法类型(例如,对象分类问题可能需要不同的语音识别方法),从中选择最佳硬件平台来最有效地运行学习框架。例如,这可能涉及选择具有特定指令集或加速器的 CPU,或者将 GPU 或 FPGA 与传统处理器一起使用。在这些环境中, 3. 软件定义一切 自主系统的出现将需要将系统设计重点从单个、资源受限的定制设备转向更灵活和可编程的环境,这些环境可以在全球范围内进行更改或优化。这种转变不仅会影响构建智能系统的工程方法,还会影响各个行业长期以来围绕特定功能“黑匣子”的生产建立的供应链,例如汽车中的电子控制单元 (ECU),或工业应用中的分布式控制系统 (DCS)。 类似地,构建这些系统所需的技能集将演变为包含更多以软件为中心的方面。那些通过设计和销售硬件来定义差异化并获得价值的公司可能会发现他们需要开发丰富的软件能力。这将涉及定义软件蓝图,以及可能的工具、API 和 SDK,他们的生态系统将通过这些工具、API和SDK为底层计算平台提供额外的增值组件。集成来自多个供应商的中间件或应用程序的责任可能会从供应链转移到设备制造商本身,并带来支持或责任模型的变化。 使开发范式现代化:IT 之旅 在过去的几十年里,企业IT系统经历了彻底的转变。最开始的时候,使用大量的微型计算机,每个微型计算机都有自己独特的操作系统风格。深入了解内部,会发现这些计算机采用独特的、有时是定制的处理器架构。随着台式电脑和服务器的出现,英特尔架构成为企业IT系统无处不在的硅架构,推动了硬件、开发工具和充满活力的软件生态系统的标准化。 接下来,我们看到了虚拟化的变革力量,它导致了应用程序的整合并推动了更高的硬件利用率,从而进一步提高了IT环境的效率。虽然最初的动机是优化本地计算资源,但将软件与底层硬件解耦允许计算资源的集中化,并为云计算铺平了道路。 如今,云计算消除了硬件和软件之间的依赖,可以快速高效地编写应用程序或单个功能,同时对底层计算、存储和网络资源有很好的控制。这种解耦使开发人员能够快速开发、部署和更新应用程序,而且规模庞大,完全无需担心购买或管理任何硬件。 虽然IT开发人员可以快速构建和部署超大规模应用程序,通过使用丰富的应用程序框架、现代开发语言和工具以及使用由其他人管理的基础设施来构建他人的知识,但嵌入式开发人员大多没有这种奢侈。相反,他们的开发模式让他们难以跟上快速变化的芯片架构,无法利用其IT同行所享受的软件开发和部署方法方面的许多进步,因此在快速创新和系统的可负担性方面苦苦挣扎和产品过时。他们没有享受IT之旅带来的进步。 为了改变这一点,人们必须认识到嵌入式系统通常与IT系统有很大不同。诸如系统性能和可靠性、成本、资源和时间限制、故障或停机的容忍度、安全需求等问题,都对系统的构建和部署方式提出了非常具体的要求。然而,通过认识到并满足这些要求,可以利用IT领域的进步,并在构建嵌入式系统的方式中释放更多的效率、创新和可负担性。
文章分类:
新闻动态
|