为什么正确的软件架构对IoT设计越来越重要
样性,肯定没有那种一个尺寸便适合所有需求的解决方案。我们先来了解许多最流行的操作系统和软件架构,并分别仔细地讨论(本文所提到的操作系统都具有实时能力):
1)商用解决方案
• Micrium uC/OS-II与uC/OS-III
这是在微控制器业界最流行的两个实时操作系统,特别是因为其创新的商业模式,因为Micrium公司允许你下载完整的软件套件,并开始发展,等你真正开始产生营收后,才需要开始支付解决方案的费用。他们在安全至上的系统中拥有重要的地位,并且他们的大部分软件构件都已经通过认证。
• Segger embOS
嵌入式软件市场的新进入者,但这并不意味着他们是新手。该软件产品已经开发了超过20年的时间,并已经使用在他们自己的硬件产品之中,因此对装置的支持程度非常好,并配有一个优秀的驱动程序库。
• Express Logic ThreadX
由行业的资深人士所创办,该公司专注在所有关于性能的事物上,并挤压出元器件中每一个时钟周期的效能。它通常被看作是操作系统中的劳斯莱斯,并已经有很多认证被使用在安全至上的系统之中。
2)开源解决方案
• FreeRTOS
FreeRTOS跟MicriumuC/OS一样,都是在同行业中最常被采用的实时操作系统之一。它有一个庞大的社群,有很多人都在为软件做出贡献,像是TCP/IP栈,但做为开源软件,便意味着没有公司会负责整合,因此需要更多的工作来创建一个整合的解决方案。
也有一些公司在FreeRTOS的生态系统中,专门从事将差异化的软件构件提供给那些需要整合协助的客户,例如,Wittenstein高完整性系统公司提供称为SAFERTOS安全认证的FreeRTOS替换核心,以及HCC嵌入式公司提供可以与任何实时操作系统工作的USB、以太网络和文件系统。
• mbed OS
mbed OS解决一些你通常会在开源软件所遇到的痛点,因为ARM这一家公司会负责整合的工作。然而,它仍然是处于萌芽阶段,所以如果你想要有些贡献就可以去这里。
• RIOT OS
RIOT OS被冠以"物联网中最友好的操作系统",它是以通讯概念为基础所建立起来的操作系统。这使得它即使在面对困难的通讯问题时,仍然精简且高效率。然而它仍然还在积极发展的阶段当中,所以你得计划多花几个小时来进行除错。
3)架构
有一些操作系统的功能就像是将砖块黏合在一起的水泥一样,会与发展框架紧密地结合在一起,因此一般不能使用软件本身做为项目的一部分,你必须围绕着它来进行整个开发流程。这些框架往往是使用比C++更高阶的语言所编写,通常可以在实时操作系统上运行。
• mbed
mbed也出现在这里,这时则做为快速成型的项目。它是用C++编写,并对大多数微控制器和电路板有绝佳的支持,拥有一个庞大的元件程序库,和一个采用网页架构的漂亮集成开发环境(IDE)。目前,在它准备全面部署之前,它仍然需要一点成熟的时间,但它很适合硬件原型的开发。
• Espruino
Espruino是在微控制器上运行的实时JavaScript解释器。它允许你能够动态地更改程序代码,甚至不需要读写微控制器便可以撰写程序代码。在它开始量产之前,仍然需要一些时间来发展,但它很适合用于硬件原型,并呈现出成为一个不可忽视软件架构的巨大潜力。
• microPython
microPython所能做的事与Espruino大致相同,差别仅在于其使用Python来代替JavaScript。它发展的概念,便是让你从产品开发的一开始到量产,都能够支持预先编译的程序代码,并使用C语言来编写时序至上的程序代码。目前仍在开发当中。
• microEJ
microEJ是一个采用Java架构的框架,让你轻松地为你的设备打造好看的图形化应用程序。它已经在许多智能手表和一些物联网(IoT)设备中使用。
结语
如果你想要着手进行设备的开发,而无需安装单一的程序,像是mbed和microPython这类的框架,便是入门的好方法。但是,如果你要建立更大的部署,采用一个纯粹的实时操作系统将会是更好的选择。如果使用工作时间而不是金钱来当作软件的投资,对你的公司来说会更为轻松的话,像是FreeRTOS或RIOT这类非商业解决方案便有其优势。如果你的公司能负担得起前期投资,像是Segger、Express Logic和Micrium的商业解决方案,将大大降低软件开发风险和缩短产品上市的时间。在商业解决方案中,特别像是Micrium的稳定性和认证的程序代码基础,广泛普及的部署,良好的元器件支持,开放的原始码,以及适合大多数经济效益的商业模式,更使其在商业解决方案中显得特别突出。
- Windows Embedded CE 6.0开发初体验(04-26)
- Mbed Edge和物联网网关(11-07)
- ARM mbed平台WIZwiki-W7500使用说明(11-26)
- Qt Embedded4.6.2与tslib1.4移植到arm平台(11-09)
- Windows Embedded开发者更新可供下载(09-12)
- 19篇有关ARM7的技术文献和设计方案,软硬件协同(04-15)