在过去的两个世纪中,使硬件可编程已经取得了长足的进步。有人可能会争辩说,工业规模的硬件编程的第一个例子是 1800 年代早期开发的提花织机系统。纺织工程师可以使用该系统通过使用一串穿孔卡片来定义他们希望织机编织的图案。这项发明使发明家 Joseph Marie Jacquard 成为纺织行业的著名人物,并展示了硬件编程的巨大进步。他的名字现在是一个常用词,用来指代他的织布机上制造的织物类型。
快进 200 年,可以看到更可编程硬件的趋势。机械自动化首先过渡到可编程,然后是机电和电子逻辑,最后是微控制器、微处理器和软件的嵌入式控制。如今,机器和设备的可编程性因应用和行业而异。它们的范围从没有可编程性的固定功能设备到智能手机等完全可编程和可升级的设备。
设计可编程硬件的传统方式继承了机械工程的强大遗产,嵌入式设备在某种程度上模仿了过去以机械或机电方式完成的工作。公用事业仪表是这种方法的一个很好的例子。起初,电表只是机械表的简单替代品,用 LCD 显示屏代替编号轮,以提供更大的成本优化和可靠性。然后添加了更多功能,例如自动抄表,以在不改变目的或用例的情况下降低运营成本。
这些设备上存在嵌入式软件或实时软件,它们需要大学很少教授的特定技能。相反,他们通常是在工作中学习的。嵌入式软件开发需要几乎与硬件开发一样多的专业知识,原因有两个。首先,修复嵌入式软件错误的成本很高,因为设备可能难以升级。其次,许多嵌入式设备必须遵守严格的安全法规,这需要额外的知识和时间资源来确保遵守诸如 IEC 61508、IEC 62304、UL 60730-1 H、CSA E60730-1 H、IEC 60730-1 H、 UL 60335-1 R,和 IEC 60335-1 R,UL 1998。
然而,大多数人不知道的是,在物联网 (IoT) 的推动下,嵌入式软件开发范式发生了一场无声的革命,并且每天都在取得进展。随着我们的设备变得更加互联,它们突然向世界开放。正如NEST、Fitbit 和 Withings (Nokia) Digital Health等应用程序所证明的那样,开发人员必须能够通过定义明确的 API 访问一个好的物联网设备。相反,任何连接的设备现在都可以访问云中几乎无限的资源。这开辟了超越传统嵌入式设备能力的新可能性,因为语音识别、人工智能和个人助理功能——如亚马逊 Alexa——变得更加广泛可用。
因此,一种新型的开发者(互联网开发者社区)开始修补设备。他们从创客板开始,并使用他们知道的工具进行开发——面向对象编程、API、脚本和框架,如 Java、JavaScript、Python、Lua、JSON 和 REST API。为了展示嵌入式开发的新水平,Arduino 平台(基于 Wiring 和 C++)普及了对象语言概念,如方法和属性。Raspberry Pi 让每个人都可以使用 Linux 和 Python。他们教我们使用带有预定义框架的集成工具,使编写一个简单的应用程序成为“在公园里散步”。
这个新的开发者社区正在重塑嵌入式世界,创造硬件的“软件化”。他们正在推动嵌入式工程师像现代软件开发人员一样思考,并着眼于其他对 IT 系统和 Web 应用程序有效的技术。例如,瑞萨电子的合作伙伴之一,物联网初创公司 MediumOne,能够使用云中的 Python 脚本在现场对设备进行编程——这真是令人难以置信。
重新发明轮子的时代已经过去了。嵌入式行业有能力彻底改变其定义和设计产品的方式。在当今竞争激烈的市场中,工程师必须善于重用经过验证的、具有高度抽象性的产品化软件组件。这些组件传统上来自专业公司,而且价格昂贵。然而,一些低成本的选择使它们更容易获得。开源是一种方法,尽管它带有未知的质量问题和其他风险。另一种选择是与将专业软件与其硬件设备集成的芯片制造商合作,将它们作为单一平台成本结构的一部分提供。
这种软件化趋势将把传统的固件开发人员转变为一个超专业化的社区,就像硬件开发人员现在成为嵌入式团队的专业成员一样。他们的职责是确保完整的板级支持包在硬件上运行,使越来越多的软件开发人员能够使用框架和高级语言和脚本创建应用程序。
这一趋势还可以扩展嵌入式开发人员的职业可能性。以下是一些可以帮助您利用这一转变的教育要点:
了解如何使用中间件和 RTOS。这很快将成为使用硬件的工程师所期望的基础知识。
开始使用框架。汽车开发商有 Autosar。工业开发人员可以从嵌入式 Linux 入手,作为理解的良好基础。即使是开发 Android 或 IOS 应用程序——甚至是 Minecraft Mod——也是理解框架开发的好方法。
玩创客板。它们今天可能看起来像玩具,但您会对它们提供的可能性感到惊讶。
如果你想培养你的软件方面,可以尝试使用 C++、Java 和 Objective C 等对象语言,并尝试 XML 等标记语言以及 JavaScript、Python 或 Lua 等脚本语言。从开发移动应用程序或 Web 开发开始,很快就会有使用更小的微控制器的嵌入式选项。
熟悉 RESTfull API 和 JSON 数据格式。它们是互联网通信的基础,大多数物联网服务都使用其中一种。
开发人员社区提供交互式点对点论坛来磨练软件技能,特别是与社区合作,围绕新的嵌入式框架,例Renesas Synergy 平台,或使用 MediumOne 开发的IoT Sandbox 。
审核编辑:郭婷
-
嵌入式
+关注
关注
5064文章
18992浏览量
302590 -
Linux
+关注
关注
87文章
11216浏览量
208810 -
API
+关注
关注
2文章
1481浏览量
61776
发布评论请先 登录
相关推荐
评论