EEJournal

专题文章
现在就订阅

这是嵌入式系统和物联网的未来吗?

我想我已经看到了嵌入式系统和构成物联网(IoT)的“事物”的未来。据我所知,这将是一个包含丰富容器的虚拟未来。如果我更多地了解虚拟化,特别是容器,我就可以统治世界了。

只是说到未来造成的未来的日子过去了这张专辑是穆迪布鲁斯乐队在1967年发行的,它突然出现在我的脑海里(我笑着称之为)。这张专辑融合了管弦乐和摇滚元素,被认为是前卫摇滚的第一个例子。包括一组关于日常生活的歌曲,未来的日子过去了发行时只取得了一定的成功,但最终得到了许多人的认可,包括《滚石》杂志,被认为是1967年最重要的专辑之一。我是说……拜托……白缎之夜我还需要多说吗?如果你想清醒一下头脑,这里有一个物品链接到YouTube上的专辑)。

恐怕我说的是“自取其利”(hoist with my own petard),就像诗人说的那样,这个短语的意思是一个炸弹制造者用他自己的炸弹(“petard”是一种小型爆炸装置)被抬离地面(“hoist”),暗示着一种具有讽刺意味的逆转,或诗意的正义。我这么说的原因,我不敢相信说的是,我已经被淘汰了。

正如我在最近的一篇博客中提到的(见不要说极客语!),“即使你是极客中的极客或极客中的极客,也不建议你用极客的土话说话。我不知道有多少次我和别人说话的时候,他们的眼睛都呆滞了……当我说“极客”的时候,情况就更糟了。”

我在这里提到这个的原因是我刚刚和弗雷德·里瓦德聊天,他是MicroEJ(发音为“Micro Edge”)。你可能还记得,我的职业是一名硬件设计工程师,我对软件的知识充其量是“毛茸茸的”和“不可靠的”,所以不幸的是,弗雷德告诉我的大部分内容都是以软件为中心的,结果我现在知道了我的非技术朋友们在我向他们讲述我的技术小勇敢的曲折故事时的感受。

所有这些都让我们想到了“黄鼠狼的话”(记住“老鹰可以翱翔,但黄鼠狼很少会被吸进喷气发动机”)。我相信你一定听人说过“盲人给盲人引路”。如所示那幅同名的画这个成语和比喻(我从来没有不喜欢的比喻)是用来描述一个一无所知的人从另一个几乎一无所知的人那里得到建议和帮助的情况。好吧,系好安全带,因为我是一个几乎一无所知的人,我将要描述一些我几乎一无所知的东西。“哦,真高兴,”我听到你说,但不要绝望——让我们都把这看作是一次勇敢的冒险,是生活丰富多彩的一部分。

首先,让我们从Android开始,这是一种基于Linux内核和其他开源软件的改进版本的操作系统,主要用于智能手机和平板电脑等移动设备。

你有没有想过Android应用程序(简称“app”)是如何创建的?我知道我(到现在为止)还没有。我熟悉为我在业余项目中使用的微控制器单元(mcu)创建应用程序,这些mcu包括Arduino Uno, Seedunio XIAO和tenensy 3.6。在这种情况下,我用C/ c++编写我的程序(应用程序),选择一个目标MCU,然后使用Arduino集成开发环境(IDE)中的编译器将其转换为二进制可执行文件形式的机器代码,将在我选择的MCU上运行。这里房间里的大象是,如果我随后决定使用不同类型的MCU,我不能使用相同的二进制可执行文件。相反,我不得不为新的目标平台重新编译原来的程序。

现在想想Android设备是如何工作的。假设我面前的桌子上放着一套安卓智能手机和平板电脑。进一步假设每个设备都是由不同的制造商创建的,由不同的处理器驱动。关键是,我可以拿起任何这些设备,进入谷歌Play(相当于苹果iOS设备上的app Store),下载并运行应用程序,而不去想它(具有讽刺意味的是,不去想事情是我最擅长的事情之一)。

想想看——完全相同的应用程序无需重新编译就可以在任何Android设备上运行。这怎么可能呢?实际上,应用程序源文件被编译成Java字节代码,这是源代码和机器代码之间的中间代码。这个字节代码随后由Java虚拟机(JVM)执行,JVM是为目标平台自定义创建的,并且驻留在目标平台上。当然,这意味着必须有人将JVM移植到每台目标机器上,但一旦完成了这一点,所有机器都可以运行以这种方式创建的任何应用程序。

现在,对于嵌入式系统和物联网开发人员来说,这是事情开始变得有趣的地方,因为MicroEJ与Android共享相同的虚拟化技术。话虽如此,在嵌入式和物联网领域,对于内存大小和处理器能力的任何要求,“占用空间就是金钱”。这就是为什么MicroEJ的虚拟化比Android小1000倍,从而允许它在1美元的mcu上运行。除此之外,所有这些都使现有的Android开发人员能够轻松地为具有成本效益的嵌入式/物联网设备开发应用程序。

另一种思考方式是,嵌入式/物联网设备无处不在,但没有标准的应用程序平台。MicroEJ通过允许您一次性编译应用程序,然后将其部署到多个平台,使用来自不同供应商的不同mcu来解决这个问题。

这就是“容器”出现的地方。一种考虑容器的方法是将其视为一个包,其中包含应用程序的二进制可执行文件以及所有配置文件和库,以及应用程序运行所需的任何依赖项。

在MicroEJ的情况下,他们创建了一个32位虚拟处理器单元(VPU),称为MEJ32,具有自己独特的指令集架构(ISA)。该ISA非常适合嵌入式/物联网系统,因为它经过了定制和优化,可以在各种嵌入式系统处理器上运行,包括ARM Cortex-M、ARM Cortex-A、Renesas RX和V850、MIPS32、英飞凌TriCore和Tensilica Xtensa。

接下来是MicroEJ虚拟执行环境(VEE),这是一个标准、安全、可靠的设备上平台,能够运行在任何类型的处理器上,包括mcu、mpu和片上系统(SoC)设备。我们可以这样想:MICROEJ VEE作为一个软件容器,它可以运行在嵌入式系统中常用的任何OS/RTOS上(FreeRTOS, QP/C, ucOS, ThreadX, mBed OS, mBed OS, VxWorks, PikeOS, Integrity, Linux…),也可以在没有OS/RTOS的情况下运行(裸机)或使用专有的OS/RTOS(呸!)

缺点是MicroEJ VEE必须移植到您希望运行MicroEJ应用程序的每个平台上。有利的一面是MicroEJ的伙计们已经将这个VEE移植到大量的流行平台上。更好的是,对于晦涩或专有的平台,他们已经创建了基础设施,允许您自己快速、轻松地(相对而言)移植VEE。

现在,这是我们需要关注的地方,因为我们还没有讲完容器。说实话,这就是我有点困惑的地方,因为我花了一些时间才意识到这一点——就像电影里的孩子一样第六感电影-我现在到处都能看到集装箱。实际上有两个MicroEJ VEE的化身:theMicroEJ VEE虚拟设备MicroEJ嵌入式运行时.它们都是运行在各自平台上的容器。MicroEJ VEE虚拟设备运行在您的主计算机上,它作为您未来项目的数字双胞胎。同时,MicroEJ嵌入式运行时是为在目标硬件上运行而量身定制的化身。

MicroEJ VEE虚拟设备作为一个模拟器,允许您在设计现实世界电子平台的同时,在您的普通PC/台式机上开发嵌入式软件应用程序。虚拟设备模拟代码执行以及所有外设,如显示器、连接性、传感器和系统的任何特定于硬件的特性。在虚拟设备上开发的应用程序将执行相同的操作,而无需在实际设备上进行任何更改,允许您“编写一次,然后在任何地方运行和部署”。

这里需要注意的是,当您创建MicroEJ应用程序时,该应用程序本身就是一个容器,它包含应用程序的二进制可执行文件(编译为在MicroEJ VEE上运行)以及它的所有配置文件和库以及应用程序运行所需的任何依赖项。

另一种看待这个的方式是,你有两个容器。第一个包含MicroEJ VEE,其他人已经将其移植到目标平台,并充当超级复杂的硬件抽象层(HAL),而第二个包含您的应用程序。VEE运行在物理MCU上,而您的应用程序运行在VEE中的虚拟机(VM)上。

我知道,我知道,如果你是一个硬件爱好者,就像你谦卑的叙述者一样,那么你需要花很多精力来理解这类事情。最简单的方法是退一步,简单地接受你可以一次编译一个应用程序,然后在多个平台上运行它。(我还没有谈到,也不打算谈论的是所有这些更深奥的方面,比如容器可以包含容器,它们可以动态地交换,以及……我敢打赌,你很高兴我不打算谈论这些。)

仔细想想,这种硬件与应用程序的分离有很多应用程序(没有双关语的意思)。例如,它允许您利用新的硬件创新,例如来自不同制造商的更快、更强大的处理器,同时保持相同的软件可执行文件。这在供应链中断的可怕和绝望的日子里也有好处,因为它有助于从当前不可用的处理器迁移到来自不同供应商的替代部件。

现在,这一切听起来都很棒,但这是真的还是只是一厢情愿?嗯,一方面,在四处询问之后,我惊讶地发现我的许多嵌入式开发朋友完全不知道MicroEJ的存在。另一方面,我很兴奋地发现,当我向他们解释事情并向他们介绍MicroEJ网站时,他们开始热情地跳墙。然后我再次惊讶地发现,市场上已经有超过1亿台MicroEJ-ready设备,而且每天都有更多的人加入其中。

因为我是一只脑洞小的熊,很容易误入歧途,所以我向Jean Baptiste " Jeb " Su他是Atherton Research的首席分析师和技术未来学家(Jeb也是TechPulse 360专栏关于创新业务的作者)Forbes.com).Atherton Research是一家全球性的技术咨询和情报公司,为企业提供市场战略、市场洞察、竞争分析、内容战略、营销和销售加速等方面的建议。当我问Jeb对MicroEJ的看法时,他是这样说的:

MicroEJ的虚拟化技术是半导体行业的游戏规则改变者。它完全将底层硬件(处理器、微控制器、内存……)从应用层抽象出来。这种硬件与软件的分离极大地加速了产品开发,现在可以并行地完成产品开发,而且几乎完全使用软件模拟器。另一个好处是,为特定处理器/微控制器编写的应用程序可以在任何其他具有MicroEJ VEE容器的处理器/微控制器上运行,该容器遵循Java的著名格言“一次编写,随处运行”。最后,硬件堆栈虚拟化的另一个好处是,制造商现在可以交换底层芯片,而不必修改软件堆栈,从而为当前芯片短缺提供了一个完美的缓解解决方案。

哇,我就是这么说的,但如果是杰布这样的人说的,那就更有意义,听起来更好。在我看来,最重要的是,就像Android颠覆了智能手机和平板电脑行业一样,MicroEJ正在颠覆嵌入式/物联网行业。一如既往,我们生活在激动人心的时代。你说呢?你有什么想法想和我们分享吗?

关于“这是嵌入式系统和物联网的未来吗?”

    1. 我不太懂法国时尚,但根据字典https://www.merriam-webster.com/dictionary/petard“Petard”指的是“装有炸药的箱子,用来炸开一扇门或一堵墙,或者是“发出响亮响声的烟花”。此外,如果你使用谷歌翻译将Petard从法语翻译成英语,你得到的都是Petard。谷歌翻译现在提供了这个词的原始语言的定义,在这种情况下,定义是“Petite charge d’explosive placée dans une envelope de paperier fort”。(我以为法语中领带的意思是“cravate”)

留下回复

有特色的博客
2022年12月28日
我不得不说,其中许多机械运动对我来说都是全新的,从第一个开始,我现在知道它是施密特耦合....
2022年12月25日
https://youtu.be/V2368Zo4Tb4直接链接,如果它说视频被屏蔽,在格罗夫兰CA(无人机飞行员凯里)周一:IEDM主题演讲:安凯莱赫对未来技术周二:RISC-V峰会第二天:Krste, Android周三:12月更新:陈明胡,闰秒,对…
2022年12月20日
作者:James Paris和Armen Asatryan在实现过程中自动进行简短检查,让设计团队快速找到并修复这些错误... ...
2022年12月20日
我们在Synopsys上回顾了2022年,包括基于云的芯片设计工具、机器学习和人工智能驱动的EDA解决方案、多模系统和安全接口IP。回顾一年:回顾2022年的关键技术进步和冒险,这篇文章首次出现在来自硅…

有特色的视频

演示:PCIe Gen5 x16运行在VectorPath加速卡上

Achronix

Achronix工程师展示了如何使用Speedster7t FPGA将VectorPath加速卡连接到PCIe Gen5 x16主机,并通过全芯片二维片上网络(NoC)读取/写入GDDR6内存。NoC将数据从任何高速接口以2GHz的速度路由到FPGA内部的核心结构,而不消耗任何FPGA逻辑资源。

点击这里观看更多来自Achronix的视频

特色粉笔谈话亚博里的电子竞技

在物联网世界中实现数据流动

逮老鼠的电子产品而且国巨集团

我们不断增长的物联网生态系统的核心是高性能半导体,但仅靠集成电路无法实现成功的物联网系统。在这一期的Chalk Talk中,Am亚博里的电子竞技elia Dalton与KEMET的Peter Blais和Pulse的Ryan Wenzelman讨论了被动组件对于成功的物联网框架的开发是如何至关重要的。他们仔细研究了物联网系统开发的射频、有线和配电方面,并调查了YAGEO集团如何通过广泛的无源组件推动物联网领域的创新。

点击这里了解更多关于脉冲电子物联网世界的信息

Baidu