FPGA在汽车领域的应用简谈

embedded/2024/11/13 9:35:33/

8bb514cf68bad7224d1e9ad07cd28577.jpeg

随着科技的不断进步,汽车行业也在不断演变,而FPGA(可编程逻辑门阵列)的引入给汽车领域带来了革命性的变化。FPGA作为一种灵活且高性能的“处理器”,已经在汽车行业找到了广泛的应用

67714bc96ba75c3e4672770562037c86.jpeg

目前随着新能源汽车的发展,智能化成为一个重要的发展方向,而芯片领域的万金油-FPGA在发动机控制单元、辅助驾驶及通信系统(包括车辆对车辆(V2V)通信和车辆对基础设施(V2I)通信。通过V2V和V2I通信,车辆能够实现实时交通信息的共享,从而提高交通安全性和效率)等领域都发挥着重要作用。下面结合发动机控制单元和辅助驾驶介绍一下FPGA在这两方面的应用。

发动机控制单元(ECU)

4b62ef51e7f65dda908460e25186195d.png

发动机控制几乎从未被认为是获得更好燃油经济性的一种方式。但在燃油价格不断上涨的今天,电子技术可以非常有效地提高燃油经济性。使用 FPGA 实现 ECU 是一个很大的优势,因为它可以很容易地重新配置。

发动机控制算法,包括点火时机、燃油喷射量和气门正时等。通过使用FPGA,汽车制造商能够根据不同的发动机类型和驾驶条件来优化控制算法,从而提高燃油效率和性能。

基于上面,提出了一种循环地控制内燃发动机的方法。该方法包括:维护识别引擎的映射函数的训练数据;用给定气缸的自适应数据填充缓冲器,其中自适应数据是测量给定气缸的多个操作循环期间捕获的映射函数的输入和输出;将映射函数的训练数据与自适应数据相结合;使用最小加权二乘法从组合数据集中识别映射函数;使用映射函数和当前循环期间的输入测量来预测给定汽缸在下一个循环中的燃烧特征;使用一个或多个致动器在下一循环中基于给定汽缸的预测燃烧特征来控制发动机。

23fe79942cd8733baac202f76e71f199.png传统发动机控制单元

上面理论只是控制运行该引擎的一小部分内容。下面参数和组件有助于更好地控制发动机。

  • Injection duration

  • Injection timing

  • 喷射燃油压力

  • 低压燃油泵

  • 点火时间

  • DBW 阀门

  • 翻滚阀门(Tumble valves)

  • 短/长流道阀门

通常,传统 ECU 具有以下 I/O 设备来运行整个管理系统。

  • 12 个喷油器输出,可用作辅助输出

  • 8 个点火输出

  • 8 个辅助输出,可驱动高电平或低电平

  • 8 个数字输入,具有可配置的内部上拉/下拉电阻

  • 5 个触发输入,可配置为磁阻器或数字IO

  • 4 VSS 或涡轮速度输入,可配置为磁阻器或数字IO

  • 16 个通用模拟输入,其中 4 个可配置用于温度传感,2 个适用于氧气传感器

在怠速时,可能会以 14.7:1 左右运行,但在轻负载时,可以比这更精简地运行,而不会出现发动机故障。精简程度取决于许多因素,包括传动装置、发动机燃烧效率等,但 16:1 左右的比率通常是可以接受的。在某些汽车中,轻载时的精简比可以达到 20:1。上面说明的是采用这种方法意味着可以根据负载和转速条件将发动机总混合比例从 16.5:1 的稀油比例设置到 12.5:1 的浓油比例。智能化意味着动态去调整这类参数。

机器学习提供了一种有效的方法来捕获复杂的循环燃烧模式,同时避免对底层混合物状态和成分的显式了解(假设选择了适当的抽象映射函数)。虽然机器学习方法有明显的好处,但一个关键问题是机器学习是数据驱动的,需要相对大量的数据才能充分覆盖大维空间。

这里推荐一个ECU的开源项目可用于学习相关理论。

9f0f075bff9f76bae8bd53e10628d6a2.png

https://github.com/rusefi/rusefi

驾驶辅助系统

83ba6c224bcc27f8bd6657fb167b869a.png

FPGA在驾驶辅助系统中发挥着关键作用,如车道保持辅助、自适应巡航控制和自动紧急制动等。利用FPGA处理实时视频和传感器数据,汽车能够识别车道标记和障碍物,以及调整车速和方向以保持安全距离。

372b587684611dc88fb5c96a0adf627d.png

目前ASIC在这方面的发展比较迅速,像英伟达、华为海思等公司都有专用的ASIC。早期在这方面探索的时候FPGA还是有一定的优势的,但是目前没有了。所以在这里就不过多介绍了,下面的视频是基于FPGA搭建的智能辅助系统:

完整的系统架构如下:

3125e835993d4af81a6fa65c5cc4a28f.png

论文链接:

https://www.hackster.io/javier-cristian/thefifthdriver-machine-learning-driving-assistance-on-fpga-98f295

代码链接:

https://gitlab.com/jracevedob/thefifthdriver

https://github.com/jracevedob/TheFifthDriverAI

总结

FPGA为汽车制造商带来了更高的性能、灵活性和功能。随着技术的不断进步,我们有理由期待FPGA在未来汽车技术中的更多创新应用,部分重配置等特点可以实现整合非并发功能和硬件级容错的新颖机制。

但是,FPGA在这方面更多的是探索,未来属于ASIC~


http://www.ppmy.cn/embedded/11413.html

相关文章

MODBUS

Modbus标准的定义是: 一主多从 主有寄存器 寄存器有四个存储区: 0区:输出线圈(Coils)存储区。它是可读可写的。这个区域用于存储可以写入或读出的布尔量,如IO口的电平高低、灯的开关状态等。 1区&#xff…

【VI/VIM】基本操作备忘录

简介 新建/打开文件 工作模式 常用命令 补全命令 命令模式输入:ctrl p 移动命令 文本选中 撤销、删除 复制粘贴 替换 缩排 查找 替换 插入 分屏 练习

CyclicBarrier(循环屏障)源码解读与使用

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 目录 1. 前言 2. 什么是CyclicBarrier? 3. CyclicBarrier与CountDownL…

00_Qt概述以及如何创建一个QT新项目

Qt概述 1.Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 支持的平台1.4 Qt版本1.5 Qt的下载与安装1.6 Qt的优点 2.QT新项目创建3.pro文件4.主函数5.代码命名规范和快捷键 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面…

OpenHarmony网络协议通信—kcp

kcp 是一种 ARQ 协议,可解决在网络拥堵情况下 tcp 协议的网络速度慢的问题 下载安装 直接在 OpenHarmony-SIG 仓中搜索 kcp 并下载。 使用说明 准备一套完整的 OpenHarmony 3.1 Beta 代码 库代码存放路径:./third_party/kcp 修改添加依赖的编译脚本 在/develo…

项目中的解耦小能手-观察者模式

目录 1.使用场景 2.什么是观察模式 3.观察者模式结构图 4.代码实现案例 4.1 subject代码实现 4.2 Observer类代码实现 5. 回顾总结 1.使用场景 当一个对象的改变需要同事改变其他对象的时候,如:订单中心-下单成功需要通知库存、物流和积分去做相应…

水位传感器优点有哪些

水位传感器是一种用于检测液体水位的重要设备,在各种工业和民用场景中起着至关重要的作用。其中,光学液位传感器作为一种先进的水位检测技术,在市场上备受青睐,其优点主要包括以下几个方面。 光学液位传感器内部所有元器件均经过…

SQLAIchemy 异步DBManager封装-01入门理解

前言 SQLAlchemy 是一个强大的 Python SQL 工具包和对象关系映射(ORM)系统,是业内比较流行的ORM,设计非常优雅。随着其2.0版本的发布,SQLAlchemy 引入了原生的异步支持,这极大地增强了其在处理高并发和异步…