开始 通过我们的介绍性内容提高自己的速度。

物联网设备迭代的最佳设计实践

SaaS和Agile Development已经配对,以将不变的迭代带入软件一段时间。而且市场对它更有利,一旦获得新功能和产品更新(与在盒子中发货的12个月或18个月的软件发行周期相比。随意迭代。现在,我们可以作为硬件设备生命周期的一部分更新具有新功能和功能的设备。但是,为了最大化设备离开工厂后更新配置或添加新功能的能力,开发人员有重要的前期工作要考虑。

要考虑的第一个因素是引导加载程序作为设计良好的引导加载程序可以启用迭代更新。所有无线SOC都配备了一些库存设备固件更新(DFU)功能。但是,在许多情况下,在引导加载程序中添加一些功能将大大减少更新风险因素,最多可减少90%。

单独的引导加载程序

我在此领域提出的第一个建议是将Bootloader DFU与主要应用程序固件分开。通过将两者分开,无论应用固件的状态如何,您都会增加设备启动的机会。最近的物联网设备DDOS攻击利用将密码硬编码为固件来控制设备。重新启动时,他们砖了。拥有单独的引导程序有助于避免这种情况(良好的安全性和密码卫生也是如此)。

双缓冲区

迭代设计的第二种最佳做法是包含双缓冲区。这使您可以灵活地在设备上加载更新之前验证更新。但是,只有双重缓冲区是不够的。设计工程师应提前计划,并确保缓冲区足够大以促进任何潜在的更新。考虑到我见过的各种用例,我发现500k通常足够了。

加密

我推荐的第三种最佳练习是端到端加密。端到端在这里很重要,因为安全性仅与最弱的链接一样好。完整的加密可以保护您免受各种各样的事件 - 从窃取您的IP的人到恶意代码攻击。最近,新闻报道的范围是Cayla娃娃令人不愉快的是,食品供应链或医疗设备中的安全事件可能会产生广泛的影响。

因此,我主张从完全控制的系统到IoT设备本身对更新包进行加密。不要依靠蓝牙连接的默认加密。取而代之的是,您应该通过工厂的硬线连接在制造时共享钥匙。这样可以确保即使连接受到损害,也无法在设备上加载Rogue固件。

大规模更新

设计用于迭代的设备后,拥有一个用于管理现场和大规模更新的过程和系统也很重要。我建议使用设备操作应用程序,该应用程序可以与每个设备进行交谈,并具有识别和分组设备的能力。例如,您可能需要根据其功能或部署的位置标记或组设备。为了支持固件设计和设备操作应用程序中的这些标签,您可以轻松地分组设备以进行更新。这简化了更新设备功能和功能的过程。

此外,这样的标记使您可以分层和交错推出,从而使您对过程有更多控制权,并降低了更新失败的风险。实际上,现在参与了100多个物联网项目,我强烈建议您交错的推出。在这些推出中,管理员会逐步更新批次的设备,并在每个设备之间等待绿灯,以确保成功。

良好的更新设计还包括在某些故障保护区中构建。作为分开提示,我建议设计师将逻辑添加到他们的引导加载程序DFU中,以对更新进行检查。在您写入固件图像之前,验证它已成功传输。就像蓝绿色部署在DevOps世界中,在设备重新启动时将原始固件的副本移至缓冲区。如果新固件失败,只需回到较早的工作版本。

设备离开工厂后,更新设备的能力是物联网最大的优势之一。确保您的设备是为这种迭代级别设计的,确实需要进行一些前期工作。然而,它在避免安全问题的潜在成本方面付出了收益。更重要的是,随着开发人员可以以业务速度传递影响市场影响的功能,可以培养客户满意度和业务价值。

所有的物联网议程网络贡献者都负责其帖子的内容和准确性。意见是作家的,不一定会传达物联网议程的思想。

搜索CIO

搜索安全

搜索联网

搜索数据中心

搜索数据管理