汽车系统的有效软硬件协同设计

描述

为我们生活中的主要“枢纽”之一——汽车,尤其是它的娱乐系统——提供信息和娱乐的战斗正在进行中。2014 年 1 月在拉斯维加斯举行的国际消费电子展以及底特律车展的气氛非常乐观,预计产量将在 2012 年生产的 8400 万辆汽车和商用车之后创下历史新高。开发人员面临的关键问题之一是选择正确的硬件/软件组合。与我们生活的其他领域一样,主要的战斗是在 Apple、Google 和开源 Linux 之间展开。苹果去年 6 月宣布了“车内 iOS”计划。谷歌于 2014 年 1 月宣布与奥迪、通用、本田、现代、和 NVIDIA 以简化与 Android 的集成并标准化 Android IVI 系统。2009 年,作为一个非营利性行业联盟,GENIVI 联盟成立,致力于推动车载信息娱乐 (IVI) 开源开发平台的广泛采用。然后是微软的 Windows Embedded Automotive OS 和 QNX 作为黑莓的一部分。

所有这些举措的定义特征是消费者的用户体验,通过作为硬件抽象层的操作系统 (OS) 与他们的实现完全分离。这导致了两个挑战:软件验证在其执行的硬件环境中的障碍,以及设计链中不同开发人员如何交互的非常具体的需求。

设计链

一般来说,消费电子设计链包含五种主要的公司类型,这些公司类型涉及电子系统的开发。首先,IP 提供商向半导体公司提供一些构建模块,例如处理器或图形内核、连接到芯片接口的外围模块以及片上互连。例如,具有特定汽车功能的 USB 和以太网本身并没有为芯片开发人员带来差异化,而是作为预定义模块获得更好的许可,而不是使用可用于有效区分芯片设计的宝贵开发资源。

其次,半导体公司提供的芯片是我们汽车传感器的核心,在我们计算步数的手腕上,在我们的手机中,在保存我们信息的服务器内部,以及在使用我们的手机无线传输数据的网络中,内置在车载电话中,或在车内使用以太网进行有线连接。

第三,系统公司构建了这条链中涉及的实际设备——腕带、手机和保存信息的服务器。在这种特殊情况下,为您提供腕带以收集运动和睡眠行为的系统公司可能会运行保存信息的服务器来运行大数据分析,无论是它们自己还是使用基于云的服务提供商的商业基础设施。

第四,独立软件供应商通过在 Android、Linux 或商业操作系统(如 iOS 和 Windows Mobile)上运行的工具为支持这一场景的软件做出贡献。

最后,有必要的无线和有线基础设施由位于链顶端的网络提供商运行,并通过启用支持上述交互的设备直接与最终用户交互。

图 1 概述了汽车设计链中的其他复杂性。这些系统非常复杂,以至于有两种系统制造商——生产汽车的实际 OEM 和采用半导体组件(也包含许可 IP 和 SoC 子系统)并将它们集成到板级子系统中的一级供应商(电子控制单元(ECU))。

图 1:第 1 层到 OEM 设计链和软件职责。

NVIDIA

图 1 还概述了软件开发的相对所有权。提供实际汽车的汽车原始设备制造商更注重应用和用户体验。一级供应商和子系统集成商专注于面向任务的中间件,而一级供应商专注于标准服务、ECU 抽象和复杂的驱动程序。作为其半导体可交付成果的一部分,半导体公司需要提供基本的抽象层软件,例如 MCU 抽象 MCAL。由于需要能够在不同的 MCU 和 ECU 之间灵活移植软件,因此开发了 AUTOSAR(汽车开放系统架构)等标准,以提供基础架构,以实现汽车软件、用户界面和管理的基于组件的开发适用于所有应用程序域。

汽车开发技术

没有一个单一的芯片和系统开发引擎,无论是基于硬件的还是基于软件的,都可以满足硬件和软件验证所需的所有使用模型和用户需求。通常只有引擎的组合才能帮助用户最有效地应对他们的验证和软件开发挑战。在寄存器传输级 (RTL) 芯片的实际可实现表示被开发之前,虚拟原型可以允许基于硬件的事务级模型进行软件开发。对于 RTL 执行,用户可以在实际芯片可用之前使用仿真、仿真和基于 FPGA 的原型设计。

硬件-软件依赖关系可能很复杂,并且严重影响从单元级别到系统级别的上市时间。毕竟,汽车产品的上市时间也越来越短,而汽车系统需要符合 ISO 26262 等标准并在各个级别进行适当的测试。这些依赖关系还跨越设计链中的不同层——半导体 IP 需要遵守并在 SoC 环境和系统环境中工作,以及在集成处理器上运行的操作系统中访问它的软件驱动程序。

例如,考虑测试功能齐全的 10/100/1000M 汽车以太网 MAC。用户将要求诸如嵌入式实时时钟、时间戳单元和对音频/视频桥接 (AVB) 的硬件支持等功能,包括优先排队和流量整形,这使得以太网适用于汽车电子。他们将需要不同的接口,包括 RMII、RGMII 和 SGMII,以连接到片外 PHY 和符合 AHB 或 AXI4 的 DMA 总线主控片上接口进行控制。获取 IP 时,用户会期望获得适当的软件,例如包含驱动程序的软件堆栈以及用于虚拟原型设计的事务级模型 (TLM)。

为了测试软件和硬件是否正确交互,可以混合使用虚拟和基于 RTL 的环境,以利用两全其美——软件执行速度和 RTL 准确性。混合 TLM/仿真环境允许将在仿真上运行的所有模块的准确 RTL 与在虚拟处理器模型上运行的固件混合,例如集成在虚拟平台中的 ARM Cortex-R4 内核。TLM 和 RTL 世界使用 Accellera 的 SCE-MI 标准连接。所有的 MAC 都可以通过 ARM 处理器进行配置,可以设置优先级队列,并且可以使用各种数据检查来比较 MAC 之间数据流量的发送和接收。由于高度可控性,如果连接了 ARM DS-5 Development Studio,则可以使用 Lauterbach T32 等调试器将测试代码和测试包动态预加载到设计中。所有信号和总线都可以在运行时全速跟踪,并将跟踪数据写入控制台和/或文件,从而实现高效的硅前测试。

此外,Broadcom 和 NVIDIA 等公司已经表明,相同的混合环境(用于处理器子系统上的软件执行的 TLM 和执行其余硬件的仿真)非常适合向软件开发团队公开准确的硬件。这使得操作系统的启动速度提高了 60 倍,软件执行速度提高了 10 倍,这一切都在实际芯片可用之前完成。

图 2 显示了一些硅前软件开发环境的最佳点,包括 TLM/仿真组合,它允许 IP 供应商、半导体供应商、一级供应商、OEMS 和他们的软件开发人员在很早之前就提出操作系统和软件对硅的承诺。这样的环境不仅允许设计链中更有效的交互和更早、更有效的软件启动,它们还可以显着提高功能安全性,可以根据 ISO 26262 等标准定义测试过程。

图 2:不同硬件-软件开发引擎的最佳点。

NVIDIA

高效的汽车系统设计

整个设计链中成功的汽车开发依赖于有效和高效的硬件/软件协同设计。TLM/仿真流程等方法可以在硬件环境一成不变之前启用操作系统和软件。这样的过程减轻了上市时间的压力,并导致设计满足对汽车行业至关重要的功能安全要求。

审核编辑:郭婷

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分