物联网嵌入式开发人员面临的5大挑战

开发嵌入式软件并不像以前那样“简单”。对于许多开发团队来说,创建独立设备一直是而且仍然是充满挑战的。在物联网时代,我们开始连接几乎所有东西,包括牙刷,系统复杂性正在飞速增长。传统的,脱节的开发人员发现,他们面临着几个新的挑战,需要成功解决这些挑战。

挑战1 –连接性

开发人员面临的第一个挑战是连通性。听起来很简单,但是有很多不同的方法可以连接到互联网。开发人员可以通过Wi-Fi,以太网,蜂窝,LoRa,蓝牙网桥和许多其他潜在资源进行连接。每个组件都有其自身的优缺点,以及开发人员需要学习和理解以使硬件正常工作的不同软件堆栈。甚至还没有涵盖其他软件方面的考虑因素,例如使用UDP,COAP,TCP / IP和其他几种协议,或者是否同时使用多种协议。因此,面临的挑战是学习和使用TLS和/或MQTT,并了解当您将其放入服务器时所有这些如何工作。当然,开发人员可以使用预先存在的软件堆栈来帮助减少挑战,但是他们仍然需要了解发生了什么,以防万一发生故障或需要对其进行修改。

挑战2 –空中更新

现在设备终于连接到了互联网,我们可以远程更新其固件,这听起来是个好主意。使用独立设备时,开发人员通常只是将新的固件映像发布到安全站点,然后通过电子邮件将其所有客户的电子邮件发送给“获得并获得它”!通过物联网,软件更新有望奇迹般地出现并自行执行。即使在涉及数千个设备的小型部署中,开发人员也需要弄清楚如何:

  • 生成固件更新作业
  • 保护他们的更新
  • 验证它们来自受信任的来源
  • 如果有问题,请回滚更新
  • 确定何时更新设备是合适的。

这是所有棘手的事务,开发人员现在需要了解如何成功部署其产品,这可能会很耗时。

挑战3 –安全

连接的设备现在连接良好,这意味着互联网上的任何其他设备也可以看到它们。开发人员现在不仅需要学习如何连接,还需要学习如何保护其设备免受不断发展的和日益复杂的安全威胁的侵害。安全并不是在设计周期结束时就可以添加到系统中的东西,也不是一夜之间就能学到的东西。需要仔细考虑系统如何分区,隔离以及需要保护哪些信息。开发人员需要清楚地确定其系统的安全性。毫无疑问,电动牙刷的安全性将远远低于智能电表的安全性。

挑战4 –调试

随着越来越多的团队构建连接的设备,复杂性增加了,这意味着花费在调试上的时间也很可能增加。当开源软件和其他软件包集成在一起时,除非首先将它们设计为可以一起工作,否则肯定会导致系统出现奇怪的新行为。嵌入式调查显示,开发人员平均已经在调试上花费了40%的时间!在每个嵌入式项目中,调试都需要大量的时间和金钱。因此,开发人员必须了解他们可用的所有调试技术,以及如何从一开始就防止调试。

挑战5 –变化率

可能只是我一个人,但是在我职业生涯的前十年,感觉就像我们设计嵌入式系统的方式和我们使用的技术是相对相同的。当然,每年都会推出功能更强大的处理器,但是这种改进是渐进的。在过去的五年多的时间里,可用技术及其需要做的事情有了很大的飞跃。它从连通性开始,但是迅速扩展到不仅安全性,而且还扩展到人工智能和系统。开发人员开始发现他们可用的技术变化快于他们学习的速度。

结论

在开发团队开始从设计独立设备过渡到连接设备时,这些是我看到的主要挑战。当然,这些挑战并非无法克服,在许多情况下,解决方案已经以多种形式存在。诀窍在于开发人员和团队如何快速掌握并维护每个开发人员所需的这些新技能。

我还面临其他挑战吗?请评论您在设计中面临的挑战,以及您用来克服这些挑战的资源。

3 thoughts 上 “物联网嵌入式开发人员面临的5大挑战”

  1. 经过几年在嵌入式系统上的工作,而在物联网上的工作却很少,我面临的最大挑战之一就是仍然要发送到云中的数据量以及如何正确记录这些数据以便最终应用轻松检索。在此问题上至少存在两个挑战:使用的数据库技术(sql,no-sql,其他?)和扩展数据集的灵活性(这在实际的单词项目中是现实)。我试图找到讨论该主题的案例,但我没有’我的进步很大,我觉得这个问题很缺乏。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.