您的位置 首页 数字

IoT工程师如何为你的规划挑选正确的软件架构

IoT工程师如何为你的设计选择正确的软件架构-在本文中,我们将讨论你在为微控制器或无线微控制器项目选择一套优秀的软件时,所需要考虑的各种要素。

  咱们都曾在职业生涯的某个时刻点思考过这个问题:现在,你想要创立一个适宜的项目,看是要更进一步探究这个主意或是将其产品化。可是,应该从哪种软件架构下手呢?Espruino?Arduino?micro Python?Segger embOS?MicriumuC/OS-II?以及在uC/OS-II和uC/OS-III之间又有什么区别呢?终究该选用初始本钱较低的开源架构,仍是挑选需求付出前期费用的商业处理方案,来加快你的规划进程呢?

  什么是软件架构

  在本文件中,将“软件构架”解说为“编写软件的一种特定办法”。例如,Arduino供给编写程序代码的一种特定办法,答应软件的片段能够跨过多个项目被从头运用。

  软件架构是由几个不同的部分所组成,并由以下组件所界说:程序言语、运用程序编程接口(API),以及某些东西集的衔接。例如,像是在Arduino和Espruino的事例中,软件架构能够被严密地衔接到东西,或是像在Micrium和FreeRTOS的事例中则是会被别离。

  什么是操作体系?

  因而,该怎么挑选一个软件架构呢?首要,咱们需求对一些名词解说的更清晰一点,咱们现已开端说到操作体系(OS)这个名词。你真实需求写的是能够履行你的特定要求的程序代码,这些程序代码将能够把你的产品与其他产品区别出来。可是,你依然需求依托软件的其他部分,像是ADC的驱动程序或SD卡的文件体系栈。这些软件的部分一般被称为软件构件。

  在此用一个比较本质的比方办法,你能够幻想你的软件构件就像是砖块,然后把操作体系视为水泥。在操作体系中界说了砖块的形状,以及它们将怎么与其他的砖块互动,因而当你添加更多构件到软件之中时,他们将能够持续完美地协同作业。这听起来适当不错,但你真的需求一个操作体系吗?添加操作体系也带来了额定的负荷,它将会耗费数千字节的闪存,为作业的呼应添加了推迟的时刻,而且还需求花费少许的时刻学习怎么在操作体系环境中编写程序。

  决议选用哪个软件架构,将会决议你的主意是否能够按时刻、按预算地推进,或是将你的出资放在危险之中。

  一般的经历法则是,假如你的方针闪存容量是128 KB或更高,而且或是需求通讯功用,便需求一些栈(USB、以太网络、SDIO、CAN、Wi-Fi、BLE),长时刻来看,你最好仍是运用操作体系。

  在操作体系中最重要的其间一件作业就是调度程序(scheduler)。调度程序是用在为或许会抢夺相同资源的不同使命、分配资源和处理时刻的组件。在一般情况下,调度程序有两种作业的办法,而这正是“实时”在实时操作体系(RTOS)的含义地点。实时意味着在一个特定的时刻内,会有一个特定的使命将会被履行。假定你得到一个你需求处理的射频封包,不管你的设备现在正在做什么事,实时操作体系的中心会先脱离它现在所做的使命,先完结这一个高优先等级的使命。这种类型的行为在处理器的利用上并不是最有功率的办法,但例如在马达操控运用中,它在通讯栈与运用中最需求注重的就是反应时刻的议题。

  商用与开源处理方案的比较

  举例来说,假如你现已想通了是否需求选用实时操作体系,并开端组成软件需求。你或许知道,你需求一个USB栈和以太网络栈,调配外部MAC/PHY驱动程序来一同将设备衔接到互联网。可是,你该从哪里开端呢?你真的只需求为你首选的微操控器下载最新的FreeRTOS模板,并持续下载开源软件并放到设备中就能够了吗?或许你仅仅需求去找有你所需软件的商业供货商,并取得完好的软件组合?

  为了做出更正确的决议,咱们常常议论要给选定的处理方案一个整体具有本钱(TCO)的概念。所谓的整体具有本钱包含的不仅是你为软件付出的钱银价值,还包含花费在寻觅处理方案、拼装不同的构件,并将不同的构件整合到你的项目,以及开发、测验和出产的作业时刻。

  在一般情况下,咱们看到的是商业处理方案的整体具有本钱(TCO),将比自己组成敞开原始码组件的处理方案要来的更低一些。但既然是商业处理方案便涉及到初始本钱,这些厂商一般要求在运用处理方案的前期,取决于你所需求的组件,便有必要先付出1万到10万美元之间的费用。在另一方面,下载FreeRTOS并开端拼装自己的处理方案,在某些具有密布资源的运用中,其所花费的金钱,相对会更廉价一些。

  决议你的项目的最佳处理方案,将高度依赖于它是否是最简单让你赚到现金,或是能够为整体具有本钱的工时来“买单”。

  候选方案

  所以,当你现已看到这儿,你的大脑中或许现已开端吶喊:“只需给我一个能够让我开端运用的架构就好了!”

  惋惜没有那么快,必定有一些方案的选项是比其他选项更好,微操控器的运用十分多样性,必定没有那种一个尺度便合适一切需求的处理方案。咱们先来了解许多最盛行的操作体系和软件架构,并别离细心地评论(本文所说到的操作体系都具有实时才能):

  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的稳定性和认证的程序代码根底,广泛遍及的布置,杰出的%&&&&&%支撑,敞开的原始码,以及合适大多数经济效益的商业模式,更使其在商业处理方案中显得特别杰出。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/172659.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部