电子电气架构——车载ECU刷写工具vFlash简介

电子电气架构——车载ECU刷写工具vFlash简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标准。到最后,既没有活成别人喜欢的样子,也没有活成自己想要的样子。
我们只有接纳真实的自己,不自卑、不自傲,才能拥有更强大的内心;只有找到自己的核心价值,才能活出自己的精彩人生。

随着芯片技术的快速发展,基于需求将以太网技术引进汽车行业,车载控制器所能实现的功能也变得越来越复杂,致使车载控制器的代码量也跟着水涨船高。

每当ECU需要更新软件版本时(修复ECU软件BUG),动辄需要刷写几十兆字节的数据,一些控制器代码量甚至高达成百上千兆字节。特别是现在新电子电气架构下,域控制器的深度应用。对于自动驾驶域、智能座舱域,更新全量数据包所需要的文件大小可达到30G。

若使用500Kb/s的车载CAN总线进行数据传输来刷写ECU,即使在全负载的情况下传输数据,也需要花费数小时才能完成。其中,不包括其他干扰因素导致刷写失败,而不得不重新再刷写的情况。这对于“患有强迫症”的工程师们来说,是不可忍受的。

本文分享如何使用Vector的VN5610(以太网接口卡)与vFlash(上位机工具)通过DoIP协议进行控制器程序刷写。

DoIP协议,全称为Diagnostic communication over Internet Protocol,是基于IP网络的汽车诊断协议。该协议由ISO 13400系列标准定义,作为实现基于Ethernet的诊断通信的方案。

DoIP协议的优势包括更快的诊断响应、更短的传输大量数据的时间(用于软件刷新和参数下载),以及使得远程的直接诊断成为可能。DoIP协议模型中的ISO 13400-1描述了一些通用信息和应用场景,而ISO 13400-4则定义了以太网诊断连接器的要求。

在架构模型方面,DoIP结点是基于DoIP协议通信的网络节点,但只能作为通信节点,不能支持路由DoIP报文。而DoIP网关则是车辆内部网关,实现DoIP协议的主机节点,可以路由其连接的子网与外部设备之间的报文。

此外,DoIP协议在传输层中使用TCP和UDP协议,在网络层中使用IPv4或IPv6。这些协议都是OSI七层模型中从层4到层1这四层协议中的一部分,也就是通用计算机网络所使用的协议。

如何把Flash Data数量大(Software Data一般指ECU运行需要的软件代码,包括APP、Calibration data等)基于DoIP协议刷进汽车控制器?

-> Step 1:待刷写的控制器(ECU);

-> Step 2:准备好刷写上位机 ;

-> Step 3:连接上位机和待刷写ECU;

-> Step 4:刷写及验证刷写是否成功。

一、待刷写的控制器(ECU)

首先找到待刷写控制器的供电定义,并Power On上电,让ECU运行起来,最简单的办法是用上位机工具发送几个简单指令,比如通过CANoe连接ECU,发送简单指令,验证ECU正常运行。

其次确认控制器的以太网类型,一般是100Base-TX,或者100Base-T1。这一步至关重要,需要通过这一步确认总线类型,才可以在接口卡连接器中做相应的配置。

最后,对于待刷写ECU,也需要确认BootLoader开发是否完成,是否支持DoIP刷写功能。这个是基于DoIP刷写ECU的前置条件,需要跟项目接口人确认该ECU当前软件完成情况以及项目信息。

关于准备一把带DoIP的“刷子”。

在安装有Vector的硬件驱动的电脑上找到控制面板,打开Vector Hardware Config。如果电脑已经安装了vFlash,在Application中会找到vFlash图标,双击后在界面中添加以太网通道,如下图红色指示:

vFlash是一款由Vector公司开发的通用软件工具,它支持各种网络通信协议,包括CAN、CAN FD、FlexRay、LIN、Ethernet/DoIP等。vFlash还支持各种格式的刷写文件,如S19、BIN、HEX,以及各大OEM的文件类型,如VBF、CBF等。

此外,vFlash具有广泛的适用性、良好的稳定性和丰富的接口,支持C++、C#、CAPL等多种编程语言。它配合CANoe使用可以实现自动化刷写和批量刷写等功能。

vFlash是一个功能强大的工具,可以帮助开发人员和工程师进行高效的固件刷写和网络通信开发。

将vFlash以太网软件通道分配到Vector VN5610的以太网目标刷写硬件通道上,如下图红色指示:

以太网接口卡是用于将设备连接到以太网网络的硬件设备。它通常具有一个或多个RJ-45连接器,用于插入到以太网电缆中,并支持各种以太网标准,如10BASE-T、100BASE-TX和1000BASE-T等。以太网接口卡通常安装在计算机的扩展插槽中,以便计算机可以通过以太网网络与其他设备通信。除了基本的以太网连接功能之外,一些以太网接口卡还支持其他功能,如网络唤醒(Wake-on-LAN)和流量控制等。

设置以太网类型,双击设备名称,打开Device Configuration进行通道类型设置,根据ECU使用的网口类型,选择汽车以太网还是传统以太网,如下图所示:

ECU上电,设备与控制器以太网接口连接后,检查连接状态,出现Link up字样表示连接成功,如下图红色所示:

步骤三:把控制器“刷”一下

配置刷写工具vFlash的参数,包括控制器的IP地址,Vector的设备IP地址,两个IP地址需要在一个网段内,但是不能相同;以下是对控制器IP地址的设置,如下图红色所示:

以下是对设备IP地址的设置,如下图红色所示

配置完成就可以开始刷写啦,如下图红色所显示的速度,数据坐上了火箭,快速刷写起来!!!

在刷写过程中,vFlash承担刷写上位机功能:

刷写上位机是一种通过上位机软件进行固件刷写的技术。具体来说,上位机软件提供了一个友好的用户界面,使用户能够选择固件文件、指定目标设备、发送刷写命令等操作。在刷写过程中,上位机软件会与目标设备进行通信,将固件文件传输到目标设备中,并控制目标设备进行刷写操作。

刷写上位机通常具有以下功能:

-> 选择固件文件:用户可以通过上位机软件选择要刷写的固件文件,支持多种格式,如S19、BIN、HEX等;

-> 指定目标设备:用户可以指定要刷写的目标设备,例如ECU或微控制器等;

-> 发送刷写命令:上位机软件可以向目标设备发送刷写命令,控制目标设备进行刷写操作(需要以项目形式向Vector定制刷写需求vFlash Template);

-> 进度监控:上位机软件可以实时监控刷写进度,并显示当前刷写的进度百分比等信息;

-> 错误处理:当刷写过程中出现错误时,上位机软件可以提供相应的错误提示和处理机制,帮助用户解决问题。

刷写上位机vFlash是一种方便、高效、可靠的固件刷写技术,广泛应用于汽车电子、智能家居、工业自动化等领域。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/348080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ldap java_使用LDAP保护Java EE6中的Web应用程序

ldap java在上一篇文章中,我们解释了如何在通过传输层安全性(TLS)/安全套接字层(SSL)传输数据时保护数据。 现在让我们尝试了解如何为使用LDAP服务器进行身份验证的基于JEE 6的Web应用程序应用安全机制。 目的&#x…

mysql 一致性hash_一致性hash算法在分表分库中的应用

一致性hash算法结构图 分表分库结构图 可进行循环冗余存储,顺时针存储到下一个物理节点(非虚拟节点)package com.haiziwang.platform.kmcsms.route.algorithm;import java.util.Collection;import java.util.SortedMap;import java.util.TreeMap;/*** 一致性Hash算法…

生产中的性能分析

生产中的性能分析 如果您在Java应用程序的性能方面遇到了一些严重问题,那么很可能您会知道线程分析的价值。 但是您知道应该使用哪个分析器吗? 探查器使用两种基本技术-采样和仪器。 采样分析器 采样探查器包括定期向JVM询问所有当前活动线程的当前执行…

mysql用com_MySQL 使用教程

关于 MySQLMySQL 是最流行的开源数据库。本文简明的讲解了 MySQL 如何下载安装到使用的整个过程。MySQL 支持多种特性:使用 C和 C编写,并使用了多种编译器进行测试,保证了源代码的可移植性。支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell…

c++ 一维数组长度_每天一点C / 一维数组和指针

哈喽,我是老吴,继续记录我的学习心得。每天一点系列是我对微习惯的践行。现在能做到每天一点 C,将来就会有更多的每天一点系列,没人规定嵌入式软件工程师就只能学习 C 语言和折腾 Linux,不要给自己设限。为什么是每天一…

mysql事务中怎么更改空值_MySQL事务

1.事务1.事务特性--ACIDAtomicity(原子性):要么全做,要么不做,不能只做一半(银行转账)Consistency(约束性):事务的前后,约束都能满足Isolation(依赖性):事务之间是独立的,互不影响的Durability(持久性):事务执行之后,事物的结果可以持久保存2.事务隔离级别:read uncommitted:可…

线程池实现填充短信_填充一个池需要多少个线程?

线程池实现填充短信在最近几个月中,我们一直看到很小但持续的操作失败,但有一个奇怪的异常– org.springframework.jdbc.CannotGetJdbcConnectionException –“无法获得JDBC连接; 嵌套异常是java.sql.SQLException:客户端尝试检出…

jsf标签_多个动态包含一个JSF标签

jsf标签每个JSF开发人员都知道ui&#xff1a;include和ui&#xff1a;param标签。 您可以包括一个facelet&#xff08;XHTML文件&#xff09;并传递一个对象&#xff0c;该对象将在包含的facelet中可用&#xff0c;如下所示&#xff1a; <ui:include src"/sections/co…

spring 长轮询_Spring集成文件轮询和测试

spring 长轮询我最近实施了一个小项目&#xff0c;在该项目中&#xff0c;我们必须轮询文件夹中的新文件&#xff0c;然后在文件内容上触发服务流。 Spring Integration非常适合此要求&#xff0c;因为它带有一个通道适配器 &#xff0c;该适配器可以扫描文件夹中的新文件&…

您将在下一个项目中使用JSF吗?

上周有一篇很棒的stackoverflow博客文章&#xff0c;主题是“ JavaScript框架的残酷生命周期” 。 这篇文章是关于Javascript UI框架&#xff08;angularjs&#xff0c;angular&#xff0c;jquery和react&#xff09;的流行和流行的速度。 这篇文章的关键指标是每月关于框架的问…

使用java自带的日志管理_java日志管理

1.相关概念日志统一框架(日志门面)&#xff1a;apache commons logging、slf4j日志实现框架(实现层)&#xff1a;JDK自带的logging(java.util.logging)、log4j、Java Util Logging、log4j2、logback.(1)JDK自带的logging(java.util.logging)用法&#xff1a;1 importjava.util.…

安卓4.4玩java_Android4.4运行过程中闪退java.lang.NoClassDefFoundError

上周五项目测试时发现一个奇怪的Bug&#xff0c;项目中依赖了一个第三方框架&#xff0c;但是在android4.0-4.4.4之间的系统中运行会直接闪退&#xff0c;抛出错误异常为java.lang.NoClassDefFoundError。第一次遇到这样的问题&#xff0c;google了好久找到了以下几个原因&…

update se_Java SE 7 Update 25 –发行说明进行了解释。

update se昨天是CPU日。 Oracle通过6月的Java重要补丁更新发布了Java SE更新25 。 在4月的最后一次重大更新之后&#xff0c;这是最后一次与Oracle其他所有Oracle产品都不适合的Oracle重要补丁更新计划。 从2013年10月开始 &#xff0c;Java安全修补程序将遵循四个年度安全发布…

java scavenge_请概述一下Java中都有哪些垃圾收集器

1、Serial(串行GC)收集器Serial收集器是一个新生代收集器&#xff0c;单线程执行&#xff0c;使用复制算法。它在进行垃圾收集时&#xff0c;必须暂停其他所有的工作线程(用户线程)。是Jvmclient模式下默认的新生代收集器。对于限定单个CPU的环境来说&#xff0c;Serial收集器由…

阿帕奇光束

Apache Beam是一个开放源代码统一模型&#xff0c;用于定义批处理和流数据并行处理管道。 使用一种开源的Beam SDK&#xff0c;您可以构建一个定义管道的程序。 然后&#xff0c;该管道由Beam支持的分布式处理后端之一执行&#xff0c;这些后端包括Apache Apex &#xff0c; Ap…

java音乐登陆界面_第四篇——Spring音乐登录界面设计及实现(C#)

Spring音乐播放器&#xff0c;我们小组设计其启动时有一个登录界面&#xff0c;用户初次可以注册&#xff0c;输入用户名和密码&#xff0c;点击注册即将输入信息保存到register文本文件中&#xff1b;如果已有用户名&#xff0c;输入用户名和密码&#xff0c;点击登录&#xf…

java中线性结构的例子_java数据结构--线性结构

一、数据结构数据结构由数据和结构两部分组成&#xff0c;就是将数据按照一定的结构组合起来&#xff0c;这样不同的组合方式有不同的效率&#xff0c;可根据需求选择不同的结构应用在相应在场景。数据结构大致分为两类&#xff1a;线性结构(如数组&#xff0c;链表&#xff0c…

Spring Boot和JSP

本指南展示了如何使用Spring Boot通过JSP创建MVC Web应用程序。 先决条件&#xff1a; Eclipse IDE&#xff08;最新版本&#xff09; Maven的4 Java 1.8 1.创建Maven Web项目 打开eclipse&#xff0c;然后创建一个新的Maven Web项目&#xff0c;并将其命名为SpringBootWe…

判断用户名和密码是否正确java_facebook中如何判断用户名和密码是否正确

Do you hear the angel?Do you think that this really has the angel in the world?We knew from the story in the book, the angel contain the wing of the beauty, beautiful face , the mind of the docile, generous breadth of view, they would like to sacrifice t…

使用Spock测试您的代码

Spock是针对Java和Groovy应用程序的测试和规范框架。 Spock是&#xff1a; 极富表现力 促进测试的给定/何时/然后语法 与大多数IDE和CI服务器兼容。 听起来不错&#xff1f; 通过快速访问Spock Web控制台&#xff0c;您可以非常快速地开始使用Spock。 当您有一个喜欢的小测…