0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用实时操作系统和类型1 Hypervisor设计物联网系统

电子设计 来源:美通社 作者:Mentor Graphics 2021-06-28 15:45 次阅读

物联网IoT)是一个跨越很多行业的技术发展趋势,包括可穿戴设备、智能电表、智能家电及汽车等设备。随着大家对联网设备及其提供信息的依赖不断增加, 服务时间、可靠性等因素对其成功和整个物联网生态系统起着关键作用。智能家电及车载信息娱乐音响主机代表了一大类同时需要互联性和高度可靠执行性的物联网系统。

智能家电如洗衣机有一个丰富的用户界面(UI),能够处理任何数量的指令。该设备可以通过智能手机进行遥控,连接输电网络,定点在电费比较便宜的非高峰时段洗涤。当然洗衣机必须能够很好、很可靠地执行一项功能 -- 洗衣功能。工业系统有更加严格的实时控制要求,保证实时控制和其他重要操作能够独立于更高级别的功能运行,这点很重要。

汽车行业也在投资联网汽车,如收集远程信息处理数据以及通过可更新和可下载的应用程序(Apps)提供车载信息娱乐系统(IVI)来满足消费者的期望。汽车制造商面临大量的审查以确保车载信息娱乐系统是安全的。应用程序下载不能干扰车载信息娱乐系统更关键的功能, 如后置摄像头的视频。在这种情况下,像 Android 操作系统可能是提供应用程序的可行性选择,而车载信息娱乐系统的核心系统可基于 Linux 平台。类似的通用操作系统工业环境还可能包括一个实时操作系统(RTOS)实行关键的实时控制功能,而 Linux,即通用操作系统(OS),可提供用户界面和监督数据通信

在实时操作系统下通过使用 MMU/MPU 实现代码模块独立

一个实时操作系统与一个独立的模式,如 Mentor Graphics 的 Nucleus 实时操作系统,能够利用可在诸多系统芯片设备上应用的内存管理单元(MMU)来独立和保护代码模块。图1说明了实时控制任务如何可以共享内核的受保护存储区,而其他软件任务分为各自的受保护存储区。互联功能和远程更新共享相同的区域,而用户界面和其他应用程序任务被分配到另一个独立区域。独立应用子系统的方法可防止互联功能或用户界面应用子系统破坏内核或者实时控制操作。

用一个进程模式分离连接性和远程更新的控制。

使用实时操作系统优于通用操作系统的一个好处就是其内核的实时特性。实时操作系统提供严格的实时调度,保证优先级任务的运行。进程模式实时操作系统能保证确定的实时调度,并增加了存储保护。存储保护并不改变任务的优先级和系统反应。图2显示了应用程序(任务7)和远程更新任务在分开的独立存储区域能够在同一优先级执行而控制和连接任务可在更高的优先级执行。这在很大程度上有别于通用操作系统中程序的执行方式。在受保护的实时操作系统环境下, 开发人员可以自由地调整任务的优先级,而无需将其合并到一个共同的存储区域。

基于实时操作系统的进程模式还允许进程模块(一个共同的独立存储区域内任务和库功能的集合)在系统运行时不断加载和卸载。这除了能明显更新系统外,还可以允许开发人员不断地重新配置设备,使其具备不同的操作模式,切换不同的任务分离和优先级配置。

通过类型1的虚拟机 Hypervisor 实现多 OS 系统的应用

在今天嵌入式设备中具备的多核处理器可提供更强大的处理能力和连接选项。这些设备使多个操作系统的整合成为引进互联性的可行安全方法,同时确保更重要的功能的执行。即使是在非常注重安全的行业,如汽车业,消费者现在也期待车载信息娱乐系统可提供智能手机和平板电脑所具备的应用程序。

在物联网和车联网出现以前, 安全性和可靠性是通过物理分离实现的,通过同一或独立的面板上多个单独的处理器以确保设计的稳健性。有了现在的整合的嵌入式系统,引入连接性的一个推荐的方法是使用多个操作系统,由类型1 Hypervisor 实行分离,实际上分离和虚拟化设备资源,确保必要的汽车功能优先于连接应用程序的功能。

图3说明了一个 Hypervisor,如 Mentor Graphics 的 Hypervisor,如何被用于汽车信息娱乐系统,该系统的连接应用程序功能是 Android 的而其他车载信息娱乐系统则是基于 Linux 的。

一个 Hypervisor 不仅仅是如图3所示的简单分离,它还提供了一种机制限制周边设备进入特定的应用程序域。就车载信息娱乐系统而言,我们可能想要限制对车载 CAN 总线的使用,只允许车载信息娱乐系统接入CAN数据,而联网的 Android 应用程序接入数据只能通过进程间通信(IPC)和基于 Linux 车载信息娱乐系统应用程序。同时,我们想要 Linux 和 Android 都可以使用 本地的记忆卡查看媒体文件。图4说明了一个 Hypervisor 如何允许我们直接映射及准虚拟化外围设备。这使得开发者能够限制访问CAN总线及实现如记忆卡等其它资源的共享。

用一个Hypervisor来分离和共享外围设备。

在真实场景中测试可靠性

到现在为止我们已经说明了设计物联网系统的两种可能的方法,实时操作系统的使用和类型1 Hypervisor。当然多种不同的变更和理想的方法还要取决于具体的设备。然而所有连接系统都会受益于某种程度的测试以确保其实地操作的正确性。对连接设备的自动化安全峰值测试和压力测试就是一个例子,说明协议栈或过程控制功能的失败是可以检测的。此外,设备的功能性健康是可以在模拟攻击中确定的。应该执行的其他测试包括发送无效或分散的数据包,执行测试框架,探测已知的软件栈的漏洞。执行这些测试可以增加连接设备在实际应用中的鲁棒性。

可更新性设计

移动设备的用户熟知需经常性升级设备,修补漏洞,添加安全更新或增加设备性能 -- 所有这些都毫不费力地通过“空中下载技术”来完成。基于实时操作系统的进程模式和使用类型1 Hypervisor 都能促进嵌入式系统的设计,该系统可以一种安全的方式通过空中下载技术实现更新。通过分离可不断加载和卸载的应用子系统,这两种方法可随着时间的推移更新特定子系统,修复漏洞或在开发和实际应用时解决可靠性问题。

结论

物联网设备的广度和相关功能经常需要开发人员集成来自多种途径的代码,包括国内的,商业的和开源的。所有这些都会增加对物联网(IoT)联网设备的灵敏度和可靠性的负面冲击。使用包含进程模式的实时操作系统来分离应用子系统和使用类型1 Hypervisor 来整合多个操作系统对于在应用程序和系统中引进互联性是有效途径, 因后者在执行过程中需要较高水平或可靠性。

除了选择合适的系统架构和技术方法,设计师还必须及时添加额外的测试来确保正确的操作,考虑设备的整个操作生命周期,具备快速,无缝,尽可能轻松地更新设备软件的能力。

作者简介

Kamran Shah 是 Mentor Graphics 嵌入式软件部市场总监。他充当多个技术角色,包括产品营销,产品管理和研发。在他的整个职业生涯中,Kamran 引领了嵌入式系统开发领域的创新,包括异构目标 、 软件定义无线电系统和基于云的开发工具和服务。Kamran 获得了15项专利,于1999年毕业于德克萨斯 A&M 大学,取得计算机工程学士学位。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2909

    文章

    44557

    浏览量

    372750
  • 操作系统
    +关注

    关注

    37

    文章

    6801

    浏览量

    123280
  • 代码
    +关注

    关注

    30

    文章

    4779

    浏览量

    68519
收藏 人收藏

    评论

    相关推荐

    联网的八大操作系统

    科技行业将大量的时间花在致力于联网热潮。营利性科技公司和开源社区成员都在宣传各自的操作系统,标榜自己是适合众多联网用途的那种
    发表于 03-10 09:12 1.4w次阅读

    联网设备操作系统有哪些?如何选择联网操作系统

    联网(IoT)设备端操作系统是指安装在联网设备上的软件系统,用于管理和控制设备的硬件资源、执
    的头像 发表于 08-05 16:25 2462次阅读
    <b class='flag-5'>物</b><b class='flag-5'>联网</b>设备<b class='flag-5'>操作系统</b>有哪些?如何选择<b class='flag-5'>物</b><b class='flag-5'>联网</b><b class='flag-5'>操作系统</b>

    联网操作系统设计要领与资料集锦

    联网操作系统由内核、辅助外围模块(文件系统、图形用户界面、通信协议栈、各类常见设备的驱动程序等、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用,
    发表于 06-05 16:13

    【NXP LPC54110试用申请】TreeOS联网实时操作系统语音识别底层驱动

    项目名称:TreeOS联网实时操作系统语音识别底层驱动试用计划:申请理由本人在联网领域有三年
    发表于 09-27 11:18

    十大联网操作系统介绍

    、中间件组件和开发者社区于一体的技术平台。RT-Thread也是一个组件完整丰富、高度可伸缩、简易开发、超低功耗、高安全性的联网操作系统。ALiOS:面向loT领域的轻量级
    发表于 01-16 22:50

    主流联网操作系统的比较

    实时性和安全的传感、连接、云端管理服务软件平台。目前联网操作系统大致可以分为两类:一类是为联网
    发表于 09-17 09:05

    联网有哪些开源实时操作系统

    、Linux、Android、iOS等操作系统,对任务处理能力要求比较高。联网操作系统一般地,对实时性控制要求比较高的应用MCU用不到RT
    发表于 09-18 09:05

    联网为何需要开源操作系统联网开源操作系统有哪几种?

    操作系统是什么?操作系统通常具有哪些功能?什么是开源操作系统?开源操作系统的优势有哪些?联网
    发表于 06-16 06:37

    国产开源IoTOS:腾讯联网操作系统TencentOS Tiny的探索与实践 精选资料分享

    导语 |腾讯联网终端操作系统(TencentOS tiny)是腾讯面向联网领域自主研发的嵌入式实时
    发表于 07-21 07:20

    MiCO联网操作系统

    摘要电脑联网成了互联网,手机联网成了移动互联网联网
    发表于 08-20 06:06

    探讨十大联网开源操作系统

    联网作为新时代的宠儿,有其独到之处,操作系统联网的灵魂,开源操作系统更是集结了各
    的头像 发表于 01-08 15:37 3562次阅读

    实时操作系统和非实时操作系统的区别

    本文主要阐述了实时操作系统和非实时操作系统的区别。
    发表于 09-02 15:58 1.1w次阅读

    联网十大经典的开源操作系统

    联网作为新时代的宠儿,有其独到之处,操作系统联网的灵魂,开源操作系统更是集结了各
    的头像 发表于 12-25 18:22 2651次阅读

    为什么谷歌认为联网需要实时操作系统

    嵌入式实时操作系统用于许多联网应用
    发表于 08-29 17:03 825次阅读
    为什么谷歌认为<b class='flag-5'>物</b><b class='flag-5'>联网</b>需要<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>?

    联网操作系统产业发展背景 联网操作系统应用场景分析

    按照技术路线来看,具体可以分为由传统嵌入式RTOS发展而来,基于传统操作系统进行“剪哉”和定制、专门面向联网研发的操作系统和解决
    发表于 12-20 10:46 729次阅读