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

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

3天内不再提示

应对ADAS和自动驾驶的软件挑战

星星科技指导员 来源:嵌入式计算设计 作者:Kerry Johnson 2022-06-16 14:42 次阅读

现代操作系统可以提供各种工具来帮助开发人员使用现成的软件构建强大的、可安全认证的系统。

一个世纪前,拆除马匹并用马达代替它是一项重大创新。接下来是电启动器、自动变速器和收音机。随着电子产品的普及,我们看到了间歇性雨刷、燃油喷射以及发动机性能增强和监控。现在,微处理器和软件正在推动高级驾驶员辅助系统 (ADAS) 的发展,以帮助驾驶员驾驶汽车。

ADAS 从被动到初级,再到主动,最后到完全自主控制。在被动 ADAS 中,系统会向驾驶员发出警告,但要由驾驶员采取行动。例如,配备运动检测器的倒车摄像头可以在检测到车后有人时发出警报,但驾驶员仍必须踩刹车。基本 ADAS 控制的一个例子是自适应巡航控制,它可以保持驾驶员设定的速度并自动调整以确保与前方车辆的安全距离。主动 ADAS 的一个例子是自动车道保持,它不仅会警告驾驶员,还会主动控制车辆以使其保持在车道内。最终,这些技术将融合在自动驾驶汽车中——一种无需人工干预就能自行驾驶的汽车。

软件

ADAS 系统将硬件(例如,摄像头、雷达、外来激光瞄准系统)与相关的设备驱动程序和控制软件相结合。附加的软件层提供模块之间的通信并实现系统的“高级”功能,例如在倒车时避开汽车后面的行人或协调制动系统、转向系统和摄像头的交互以实现车道保持特征。自动驾驶汽车将需要更多的软件。

为了提供安全可靠的产品,开发人员必须使用经过认证的组件、方法和工具,但他们还必须处理成本限制。因此,为了按时按预算开发产品,使用商业现货 (COTS) 软件是有意义的。这种方法在多个 OEM 之间分摊了软件的开发、测试和认证成本。同样,硬件平台的通用性为 COTS 论点提供了支持——高端豪华车和低端多功能车之间的差异可能非常明显,但它们可能都使用相同的底层视觉系统。一旦 OEM 熟悉了硬件平台,他们就可以将其集成到多个型号和产品线中以降低成本。

不受干扰

汽车软件行业正在追随其他依赖软件并具有严格安全要求的行业的脚步,包括医疗、铁路和核能。每个都有流程和认证,以帮助确保一致性、质量,尤其是安全性。对于汽车,主要标准是 ISO 26262,“道路车辆 - 功能安全”。它以 IEC 61508“电气/电子/可编程电子安全相关系统的功能安全”为蓝本,但专门针对汽车行业并涉及整个软件生命周期。

ISO 26262 中的一个关键概念是不受干扰。简而言之,一个组件不能干扰另一个组件的操作。例如,如果系统同时包含媒体播放器和后视摄像头,则媒体播放器不应干扰摄像头的操作,即使两者可能共享同一个 LCD 面板。

现代操作系统平台的目标是减轻软件进程之间所有形式的干扰。例如,操作系统可以使用内存管理单元 (MMU) 来确保每个进程在一个私有的、硬件强制的地址空间中运行,只有该进程可以访问该地址空间。这种技术可以防止内存干扰。但其他形式的干扰仍然可能发生——例如,在拒绝服务 (DoS) 攻击中,一个进程可能会消耗所有可用的内存或 CPU 资源,从而使其他进程处于饥饿状态。因此,操作系统还需要支持资源限制和调度保证。

操作系统架构在这里有所作为。尤其是微内核操作系统,在确保不受干扰方面比其单片操作系统要好得多。例如,考虑设备驱动程序。在诸如 Linux 之类的单片操作系统中,设备驱动程序软件存在于内核中。因此,一个设备驱动程序中的故障将损坏或可能关闭整个操作系统。即使从安全角度来看,这也是一个严重的漏洞,因为破坏最不安全的设备驱动程序可以让攻击者完全控制操作系统。但是,在微内核操作系统中,情况并非如此。设备驱动程序作为常规的、最低特权的、受内存保护的进程运行,通过久经考验的 MMU 强制硬件保护相互隔离(和内核)。如果一个驱动程序发生故障,系统的其余部分将继续工作。

资源限制和自适应分区

调度争用是当多个进程共享一个 CPU 时可能发生的另一个干扰问题,并且不能通过简单地分配优先级来消除。要了解原因,请考虑以相同优先级运行的两个进程。由于错误,其中一个进程进入无限循环并永远运行。另一个进程不会被安排运行,因为第一个进程正在消耗所有可用的 CPU。解决方案可能看起来很简单:更改优先级,使一个进程的优先级高于另一个。但这只是将漏洞转移到不同的进程。当 bug 遇到优先级较高的进程时,该进程会占用其他进程的 CPU 时间。为了防止任务匮乏成为问题,系统设计人员可以使用自适应分区,

例如,使用自适应分区,设计人员可以将 60% 的 CPU 分配给一个进程,将 40% 分配给另一个进程。因此,即使两个进程都以最高优先级运行,操作系统也将确保第一个进程仅消耗 60% 的 CPU,而第二个进程则消耗 40% — 完全符合规定。因为这种方法是“自适应的”,它可以将空闲的 CPU 时间分配给可以从中受益的分区。例如,如果第一个分区没有使用任何 CPU,而第二个分区需要执行大量工作,则操作系统可以让第二个分区使用超过 40% 的份额,只要它不影响第一个分区的操作。当第一个分区需要 CPU 时间时,操作系统保证它应该拥有 60% 的 CPU。

高级操作系统提供细粒度的权限映射。内核提供的每个不同的功能,例如设置时间、附加到中断或创建进程,都被分配了一个特权级别。然后,操作系统内核将进程限制为所需的绝对最低权限。进程可以以“额外”权限启动(例如,为了设置硬件映射并附加到中断),然后它们可以在其稳态操作中放弃一次。“以 root 身份运行”的概念不再相关或不可接受。

管理程序

ISO 26262 认证的系统也可以使用管理程序。如前所述,自适应分区允许我们在同一个 CPU 上运行多个进程,并对它们之间的交互做出强有力的保证。管理程序允许我们从两个额外的配置选项中受益。在一种情况下,我们可能希望将经过认证的系统与未经认证的系统结合起来,例如后视摄像头和多媒体播放器。多媒体播放器可能会进行更频繁的更新,并且由于它不是关键系统,因此不需要进行认证。管理程序可以以简单且经济高效的方式在认证域和非认证域之间创建明确的分隔。

管理程序还可以允许多媒体播放器在未经认证的商品操作系统(例如 Linux)上运行,同时允许经过安全认证的关键软件在实时操作系统(例如 QNX Neutrino)上运行。同样,管理程序在认证部分和非认证部分之间提供了有效的屏障。使用管理程序的好处包括硬件整合(一个 CPU、一个 LCD 面板)和较低的认证成本,从而在保持安全认证的同时降低整体系统成本。

审核编辑:郭婷

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

    关注

    68

    文章

    10412

    浏览量

    206467
  • Linux
    +关注

    关注

    87

    文章

    10981

    浏览量

    206687
  • 操作系统
    +关注

    关注

    37

    文章

    6266

    浏览量

    121842
收藏 人收藏

    评论

    相关推荐

    未来已来,多传感器融合感知是自动驾驶破局的关键

    的Robotaxi运营。这标志着L4级自动驾驶迎来了新的里程碑,朝着商业化落地迈进了一大步。中国的车企也不甘落后:4月7日,广汽埃安与滴滴自动驾驶宣布合资公司——广州安滴科技有限公司获批工商执照。广汽埃安
    发表于 04-11 10:26

    语音数据集在自动驾驶中的应用与挑战

    随着人工智能技术的快速发展,自动驾驶汽车已经成为交通领域的研究热点。语音数据集在自动驾驶中发挥着重要的作用,为驾驶员和乘客提供了更加便捷和安全的交互方式。本文将详细介绍语音数据集在自动驾驶
    的头像 发表于 12-25 09:48 224次阅读

    LabVIEW开发自动驾驶的双目测距系统

    挑战,包括激光雷达、单目测距和双目视觉技术等。在当前的高级辅助驾驶技术(ADAS)中,双目视觉技术在距离检测方面表现出色,它可以精确地测量物体的距离,提供更客观的数据。 为了应对这一需
    发表于 12-19 18:02

    自动驾驶点云标注的挑战与解决方案

    自动驾驶技术是未来交通领域的重要发展方向,而点云标注作为自动驾驶环境感知的关键技术,面临着许多挑战。本文将介绍自动驾驶点云标注所面临的挑战
    的头像 发表于 09-13 18:18 426次阅读

    自动驾驶点云标注:挑战与解决方案

    自动驾驶中的应用,并探讨其中面临的挑战和解决方案。 一、点云标注的基本原理 点云标注是通过传感器捕捉到的环境信息来生成三维点云数据,然后通过对点云数据的处理和识别来实现环境感知。点云标注的准确性直接影响到自动
    的头像 发表于 09-01 17:59 470次阅读

    汽车自动驾驶现状及挑战

    会议自动驾驶现况自动驾驶技术的发展可以追溯到20世纪60年代,目前总共有六个阶段,从L0级到L5级阶段。L0:无自动化。没有任何自动驾驶功能或技术。L1:手动
    的头像 发表于 08-19 08:30 493次阅读
    汽车<b class='flag-5'>自动驾驶</b>现状及<b class='flag-5'>挑战</b>

    点云标注在自动驾驶中的挑战

    点云标注在自动驾驶中面临许多挑战,其中一些包括: 首先,点云数据的复杂性和多样性。自动驾驶汽车在行驶过程中会遇到各种不同的环境和场景,点云数据非常复杂和多样化,这给点云标注带来了很大的挑战
    的头像 发表于 07-20 11:08 265次阅读

    点云标注在自动驾驶中的实践应用与挑战

    光照、环境、传感器等因素的影响,导致数据质量下降或不确定性增加。因此,需要开发更加鲁棒的标注算法和模型,以应对实际应用中的挑战。 其次,点云标注的效率和准确性需要进一步提高。在实际应用中,自动驾驶汽车需要处
    的头像 发表于 07-18 17:00 314次阅读

    自动驾驶ADAS挑战与机遇

    尽管ADAS系统正加速发展,但距离实现自动驾驶还有几大步骤有待完成,在真正的自动驾驶成为现实之前,还有许多技术和监管障碍需要跨越。 随着自动驾驶功能的不断升级,制造商需要改进流程和设计
    的头像 发表于 06-30 16:50 367次阅读
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>ADAS</b>:<b class='flag-5'>挑战</b>与机遇

    Simulink与自动驾驶ADAS)算法的开发

    自动驾驶软件开发基础的架构,逃不出我们经常所说的三大法宝,感知--- 决策(规划)--- 执行(控制),这三个内容,软件开发基础思路都不一样,且听本屌丝娓娓道来!
    发表于 06-21 17:14 1372次阅读
    Simulink与<b class='flag-5'>自动驾驶</b>(<b class='flag-5'>ADAS</b>)算法的开发

    NVIDIA 自动驾驶实验室:如何通过 AI 分割模型增强自动驾驶安全性

    编辑注:NVIDIA 自动驾驶实验室系列视频,将以工程技术为重点的视角关注实现自动驾驶汽车的各个挑战以及 NVIDIA DRIVE AV 软件团队如何
    的头像 发表于 06-16 11:45 452次阅读
    NVIDIA <b class='flag-5'>自动驾驶</b>实验室:如何通过 AI 分割模型增强<b class='flag-5'>自动驾驶</b>安全性

    自动驾驶技术概述

    ,可释放人出行驾驶时间,把汽车变成除家、办公室外的人的第三空间,在出行过程中办公和娱乐等。 车辆要实现自动驾驶,需要解决车辆在哪、往哪儿去、怎么去这三个基本问题。解决这些问题,涉及硬件平台、软件算法、交互、安全等多
    发表于 06-01 14:50 1次下载
    <b class='flag-5'>自动驾驶</b>技术概述

    自动驾驶算法软件架构介绍

    自动驾驶技术是一个庞大的工程体系,软件架构、功能算法、控制规划、感知识别、建图定位、电气架构、车载控制器、验证 体系等等,有太多的角度可以去切入。对于自动驾驶功能与算法开发,自动驾驶
    发表于 06-01 14:41 1次下载
    <b class='flag-5'>自动驾驶</b>算法<b class='flag-5'>软件</b>架构介绍

    自动驾驶仿真工具

    仿真平台侧重于提供虚拟场景的搭建,以测试自动驾驶软件的性能,第一类是专门的自动驾驶模拟仿真软件,如Prescan、 VTD、51sim-one、Panosim、GaiA等等。第二类是
    发表于 06-01 14:31 1次下载
    <b class='flag-5'>自动驾驶</b>仿真工具

    浅谈自动驾驶规控决策方面的问题和挑战

    通过本文的阐述,我们希望能够提高人们对自动驾驶规控决策问题和挑战的认识,促使业界加强合作与沟通,共同应对未来自动驾驶技术带来的挑战,为人类社
    发表于 05-05 15:57 743次阅读
    浅谈<b class='flag-5'>自动驾驶</b>规控决策方面的问题和<b class='flag-5'>挑战</b>