FPGA在汽车电子中应用-ADAS

devtools/2024/12/23 0:28:50/

之前某鱼上出现大量汽车控制板,如下图所示:

5c202e2f0b4a826de9bfbe4dff2c026c.jpeg

核心主控是ZYNQ UltraScale+系列FPGA。虽然目前新能源汽车主控已经转投英伟达+ARM了,但是FPGA还是有一定应用场景的。

aa0bff2458f2295a4fc753ecbd9c2062.jpeg小米su7上主要芯片

今天我们介绍一下FPGA在汽车上ADAS系统中的应用。

10a1836c201b766277e20e7809425ae7.png

ADAS(Advanced Driving Assistance System,高级驾驶辅助系统)在汽车上非常重要。该系统的主要功能是协助驾驶员避免事故,并确保驾驶员、车辆和道路安全。ADAS 系统现在是部分/有条件自动驾驶和完全自动驾驶的重要组成部分。

本方案基于 Xilinx Zynq UltraScale+ MPSoC-EV FPGA,将在其上使用 Vitis/Petalinux 方法运行机器学习模型(Vitis AI 模型和自定义模型)。使用 4 GMSL 摄像头系统作为视频源并执行预处理、机器学习部署以进行人员/行人检测、后视车牌检测和侧视车辆或物体检测,以确保车辆安全。

c7ec676b86c58094ddd8abfb81d38407.png

上图描绘了 ADAS FPGA 硬件设计的框图。FMC 模块具有 4 个摄像头 GMSL 链路解码 IC(https://www.avnet.com/shop/us/products/avnet-engineering-services/aes-fmc-mc4-ar0231at-g-3074457345635644762/)。四个摄像头数据均通过 MIPI CSI-2 接口到 FPGA。

PL 端将有三条管道设计。

  • 捕获管道:

该管道负责接收摄像头数据、预处理数据并将数据写入内存。管道由一系列模块组成,即 MIPI CSI-2 RX、Subset Converter, Stream Switch, and 预处理模块等。

摄像机数据以 MIPI CSI-2 数据格式进入 FPGA。然后生成 AXI-Stream数据。Stream Switch用于将单个流解复用为四个单独的流。这是因为四摄像头解串器将四摄像头数据复用到单个 MIPI CSI-2 接口。这就是为什么需要在 FPGA 中进行解复用,以便进一步访问和处理单个摄像头数据。接下来,每个数据流分别进入四个预处理模块。

7d1a44c8cd893f3fe3633a671dc2ce86.png

该管道由 Bayer2RGB IP、色彩空间转换器 (CSC)、缩放和缓冲区写入模块组成。Bayer2RGB 转换器将传感器数据的 RAW 格式转换为 RGB 格式。CSC 模块可以将 RGB 格式转换为其他格式,例如 YUV。缩放模块可以将传入的视频分辨率缩放为不同的输出分辨率。缩放后的分辨率将用于 ML 管道和显示管道。

缓冲区写入块用于将数据写入 DDR 内存的四个独立位置,具有特定的颜色格式和分辨率值。ML 管道将访问这些内存位置以检索相机数据并执行 ML 任务。

  • ML管道

该设计使用 DPU IP。

在此管道中使用 1xB4096 DPU IP 配置来运行机器学习模型。

ML管道运行以下 ML 模型:

  • 车牌识别模型

  • 人脸识别

  • 行人检测

  • VIVADO硬件设计

f257be26990f91e7e3125e17eb67f692.png
  • 显示管道

该管道有助于在车辆仪表板的平板显示屏上显示处理后的摄像头数据。视频叠加是该管道的主要模块,它将从内存中读取 ML 处理的数据并将其显示为覆盖层。模块中的 Axis2Video 将生成的视频数据转换为并行视频数据。该模块将流数据和视频时序作为输入并生成并行视频数据。这些数据将被馈送到实时显示端口 (DP) 接口。

  • HMI和GUI

基于 QT 框架开发的轻量级 GUI 将显示在 FPD 中,其中所有四个摄像头数据以及检测信息将使用 GST 管道显示在显示单元中。FPD 创建人机界面 (HMI),用户可以从中获取信息以及输入信息。另一方面,检测信息也可以通过视觉颜色标志和文本信号传递给用户。如果检测到,则可以显示红色警告和文本等等。

b42f7fef6d53bfcf3e1e2cf7e3193a2a.png

参考链接

https://logictronix.com/wp-content/uploads/2022/04/Logictronix_ADAS-Reference-Manual_v1_0_LRFD031.pdf

总结

ed08955ed4bdc337df91cdfdcb6b9554.png

上面就是一个使用FPGA进行ADAS系统设计的简单流程,FPGA的并行、实时处理特性及PS端ARM端运行嵌入式系统等特性,是该系统最大的特点。虽然目前新能源汽车上FPGA的使用率越来越低,但是在一些特殊场景中还是有一定应用价值,比如摄像头数据实时处理等低延时要求场景中。


http://www.ppmy.cn/devtools/119628.html

相关文章

【云服务器介绍】选择指南 腾讯云 阿里云全配置对比 搭建web 个人开发 app 游戏服务器

​省流目录:适用于博客建站(2-4G)、个人开发/小型游戏[传奇/我的世界/饥荒](4-8G)、数据分析/大型游戏[幻兽帕鲁/雾锁王国]服务器(16-64G) 1.京东云-专属活动 官方采购季专属活动地址&#xff1…

企业数据安全从0到1建设方法

随着中国数字经济的不断发展,各行各业都在积极推进数字化转型,数据安全逐渐受到国家和企业的重视。 近年来,国家持续颁布多种行业数据安全管理办法,明确各行业数据安全的建设标准,督促企业进行数据安全建设。 企业应该…

会议平台后端优化方案

会议平台后端优化方案 通过RTC的学习,我了解到了端对端技术,就想着做一个节省服务器资源的会议平台 之前做了这个项目,快手二面被问到卡着不知如何介绍,便有了这篇文章 分析当下机制 相对于传统视频平台(SFU&#xff…

Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能

前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(3)生成范围检测框 重置框选操作-CSDN博客 本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程 我只是对重要功能进行分析和做出笔记分享,…

单细胞中的GSVA基因集评分怎么实现?

愿武艺晴小朋友一定得每天都开心 ## 使用GSVA:score的大小来定量评价基因集在样本中的相对大小 library(GSVA) #读取gmt文件 geneset <- read.gmt(file.path("./PreB_pathways_GSVA_score.gmt")) #read.gmt geneset <- split(geneset$gene,geneset$term) gen…

枚举值实现下拉和tag展示的组件封装(vue2+js+elementUI)

枚举值组件EnumBase&#xff08;实现展示数据的时候提供tag样式&#xff0c;也可以变成下拉选择&#xff09; AllowSelect判断是要下拉选择还是展示tag标签 &#xff08;所有prop要使用的时候尽量通过computed进行&#xff0c;避免直接修改prop值&#xff09; <div :class&q…

学Java还是c++好?

Java在互联网行业中的应用非常广泛&#xff0c;就业方面&#xff0c;Java岗位较多&#xff0c;就业市场相对稳定&#xff0c;尤其是在Android应用开发、企业级应用、大数据技术等领域有大量的岗位。 Java的语法相对简单&#xff0c;对于初学者来说更容易上手。有很多成熟的框架…

【SQLite】基础操作

数据查询 SELECT 查询所有数据 SELECT *FROM tableName使用AND操作符 SELECT * FROM tableName WHERE id=? AND name=?使用OR操作符 SELECT * FROM tableName WHERE id=? OR name=?组合使用AND和OR SELECT * FROM tableName WHERE (id=? AND name=?) OR status=?多表查询…