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

    文章

    10878

    浏览量

    212138
  • Linux
    +关注

    关注

    87

    文章

    11317

    浏览量

    209815
  • 操作系统
    +关注

    关注

    37

    文章

    6847

    浏览量

    123420
收藏 人收藏

    评论

    相关推荐

    一文聊聊自动驾驶测试技术的挑战与创新

    随着自动驾驶技术的飞速发展,自动驾驶测试的重要性也日益凸显。自动驾驶测试不仅需要验证车辆的感知、决策、控制模块的独立性能,还需确保系统在复杂场景中运行的整体可靠性。然而,自动驾驶测试面
    的头像 发表于 12-03 15:56 222次阅读
    一文聊聊<b class='flag-5'>自动驾驶</b>测试技术的<b class='flag-5'>挑战</b>与创新

    什么是自动驾驶场景仿真软件——VTD(Virtial Test Drive)?#ADAS #智能驾驶

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年11月20日 18:38:20

    自动驾驶算法数据链路是怎么样的?#ADAS #智能驾驶

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年11月20日 13:05:51

    自动驾驶HiL测试方案案例分析--ADS HiL测试系统#ADAS #自动驾驶 #VTHiL

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年10月22日 15:20:19

    自动驾驶HiL测试方案——摄像头仿真之视频注入#ADAS #自动驾驶 #VTHiL

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年10月17日 15:18:41

    自动驾驶HiL测试方案 ——场景仿真3D演示#ADAS #自动驾驶 #VTHiL

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年10月16日 10:55:35

    自动驾驶HiL测试方案介绍#ADAS #自动驾驶 #VTHiL

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年10月12日 18:02:07

    自动驾驶仿真测试技术面临的挑战#ADAS #智能驾驶 #VTHiL

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年10月12日 09:49:31

    智驾软件冒烟测试之测试管理软件解决方案#ADAS #自动驾驶 #冒烟测试

    adas
    北汇信息POLELINK
    发布于 :2024年09月29日 13:41:46

    中国电动车企竞相角逐自动驾驶领域,向特斯拉发起技术挑战

    中国的自动驾驶技术竞赛正以前所未有的激烈态势展开,各大电动汽车厂商竞相加速研发先进的驾驶辅助系统(ADAS),旨在通过技术创新吸引消费者,并挑战特斯拉在全球
    的头像 发表于 09-27 15:26 1422次阅读

    智驾软件冒烟测试的基本流程#ADAS #自动驾驶 #冒烟测试

    自动驾驶
    北汇信息POLELINK
    发布于 :2024年09月27日 14:18:52

    康谋分享 | 直面AD/ADAS快速开发挑战:IVEX自动驾驶场景管理及分析平台!

    如何快速了解开发 AD/ADAS 组件中的车辆行为以便进行改进,是目前开发 AD/ADAS 组件时面临的重大挑战。为此,康谋推出IVEX自动驾驶场景管理及分析平台来克服这一难题,本文康
    的头像 发表于 09-25 09:27 822次阅读
    康谋分享 | 直面AD/<b class='flag-5'>ADAS</b>快速开发<b class='flag-5'>挑战</b>:IVEX<b class='flag-5'>自动驾驶</b>场景管理及分析平台!

    FPGA在自动驾驶领域有哪些优势?

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)在自动驾驶领域具有显著的优势,这些优势使得FPGA成为自动驾驶技术中不可或缺的一部分。以下是FPGA在自动驾驶
    发表于 07-29 17:11

    FPGA在自动驾驶领域有哪些应用?

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)在自动驾驶领域具有广泛的应用,其高性能、可配置性、低功耗和低延迟等特点为自动驾驶的实现提供了强有力的支持。以下
    发表于 07-29 17:09

    自动驾驶发展问题及解决方案浅析

    随着科技的飞速进步,自动驾驶汽车已经从科幻概念逐渐转变为现实。然而,在其蓬勃发展的背后,自动驾驶汽车仍面临一系列亟待解决的问题和挑战。本文将对这些问题进行深入的剖析,并提出相应的解决方案,以期为未来
    的头像 发表于 03-14 08:38 1180次阅读