第5篇:物联网与实时操作系统
2014-07-02江文瑞何小庆审校
江文瑞 译,何小庆 审校
物联网设备为什么需要实时操作系统?
日益增长的数据驱动世界的需求意味着物联网设备将需要强大和可靠的软件。因此,你将需要一个实时操作系统(RTOS)。
正如在《第2篇:嵌入式计算设备》中讨论的那样:在Micrium公司看来,物联网的设备可以作为在网络上发送和接收信息的嵌入式系统。尽管许多嵌入式系统可以使用并不复杂的软件管理,但网络设备需要更强大的系统软件。
物联网设备的软件必须具有:
◆可扩展性,以适应范围广泛的不同类别的设备。
◆模块化,可以只选择满足严格的RAM需求的组件。
◆连通性,可以通过WiFi、以太网、USB或蓝牙来实现设备之间的数据传输。
◆可靠性,设备需要通过关键性的安全应用认证。
为什么不是Linux?
不可否认,Linux是一个强大的、对开发人员友好的操作系统,其作为物联网设备平台的操作系统也已受到重视。对于许多应用,Linux已经成长为一个主流的嵌入式操作系统。
然而,与实时操作系统相比,Linux有一个缺点——存储器容量大。虽然Linux可以通过删除工具将嵌入式系统中不需要的系统服务裁减下来,但它仍然是一个大型软件,无法运行在8或16位微控制器上,甚至是许多新的32位微控制器,对于Linux内核也没有足够的板上(或者片上-见译者注)内存。ARM Cortex-M系列就是一个很好的例子:有数百种基于流行的Cortex-M架构的微控制器,通常它们的板上内存只有几百KB,Linux很难在这些芯片上运行。
[译者注]:现在许多的微控制器一般都支持大容量的片上内存,所以不仅仅是板子内存,还包括片上内存。
无疑Linux将在嵌入式设备中被广泛地使用,尤其是提供丰富的图形用户界面的应用。但同时,也有成千上万的应用对Linux来说是不太适合的。
工业与消费物联网的需求对比
用于工业和消费物联网设备的软件要求是有差异的。尽管它们可能共享一个共同的内核和低级别的服务,但它们应用所需的中间件可以是完全不同的,如图1所示。
图1 工业物联网设备和消费物联网设备
图1(a)中,我们看到针对工业物联网设备,例如无线传感器节点的软件协议栈,这是一个低功耗、低成本设备,有可能完全在电池供电下运行。通常这种设备可以使用Cortex-M0或Cortex-M3/M4微控制器以及高效的网络协议(如6LoWPAN),以减少传输时间、节省电力。而且,它还将使用蓝牙或低功耗WiFi,进行短距离无线通信,或者使用以太网进行通信。
图1(b)为针对消费物联网设备的软件协议栈,对于这种设备的软件需求要大得多。它可能需要Java虚拟机,并很可能使用垂直市场的协议,如AllSeen、Home-Plug/HomeGrid、Continua联盟或2net。通常这种设备可能使用Cortex-M3/M4或Cortex-A处理器。
这些需求将推动实时操作系统的选择,而大家并不希望选择软件平台来支配设备的功能。
物联网设备对操作系统的基本要求可扩展性
灵活的、可扩展的实时操作系统可以帮助你提高投资回报率,降低开发成本,并缩短上市时间。虽然嵌入式系统历史完全是建立在8和16位微控制器之上,但是32位微控制器的价格已经迅速下降,使得它们能成为商业化产品。因此,它们在嵌入式设备中的受欢迎的程度大为提升。
在设备中使用两个处理器是常见的用于网络嵌入式系统工程的解决方案。在这种结构中,一个8位或16位微控制器被用于传感器或执行器,而另一个32位微控制器被用于网络接口。在32位微控制器上运行实时操作系统(RTOS)。
32位微控制器的销售量已经在过去的几年里激增,并成为微控制器市场最大的细分市场。预计到2017年,单独的32位微控制器部分将增长至192亿美元,如图2所示。
图2 微控制器销售和单位出货量
未来几年,物联网设备将仍然是小型和大型微控制器的混合体。在各种16位和32位微控制器上运行可扩展的RTOS,可以满足严格的内存要求,降低对处理器的需求,从而节省费用。
模块化
物联网设备将需要模块化操作系统,以便中间件、协议和应用与内核分离。这样做的原因是易于开发,并保持软件的内存占用量达到最小值。
采用模块化的操作系统可以简化开发过程,特别是如果开发者正在开发具有不同功能的设备系列。依托于一个共同的核心,它允许整个设备系列共享通用的代码库,而每个设备可以仅仅通过应用所需的中间件和协议栈进行定制。
这种方法还允许针对更小内存尺寸的设备,不同于捆绑了整个软件套件在一起的单一操作系统,模块化操作系统允许为设备裁减嵌入式软件,使用更少的RAM和闪存,降低成本。
连通性
网络连接是物联网的本质。无论我们谈论的是工厂里的无线传感器节点还是医院里的网络医疗设备,当前这个行业的预期是:嵌入式设备彼此相互连接,并与企业或公共网络进行通信。
选择操作系统需要支持的通信标准和协议,如IEEE802.15.4、WiFi和蓝牙。设备必须能够连接到使用具有高效带宽的IP协议网络,如6LoWPAN的IP网络。
操作系统将允许你选择需要的特定的协议栈,这样可以节省设备内存,并降低成本。它能帮助你改造现有的设备使其具有新的连接选项,而不用修改嵌入式软件的核心。
可靠性
许多物联网系统将被部署在关键性的安全环境中,或安置在维修和更换较为困难的地点。因此,物联网设备需要绝对可靠。
你可能还需要操作系统具有安全认证,这是至关重要的,以便证明设备的可靠性和安全性。
可能需要的认证包括:
①航空电子系统的DO-178B。
②工业控制系统的IEC 61508。
③医疗设备的ISO 62304。
④运输和核能系统的SIL3/SIL4 IEC。
如果使用安全关键环境,使用已经认证软件建立产品,可以减少设备的认证时间,并降低成本。设备的每一部分都将需要认证和准备大量的文档。通常从第三方获得可用的验证套件和认证包,它们可以提供你所需要的为产品创建的数千页的文件。
即使不需要为设备认证,得知运行在设备上的操作系统已被认证,也可以为你提供产品能够可靠完成的信心和定力。