电子电气架构——车载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,一经查实,立即删除!

相关文章

mysql执行系统命令_mysql 命令行执行 sql

1.直接输入sql执行MySQL> select now();---------------------| now() |---------------------| 2013-09-18 13:55:45 |---------------------1 row in set (0.00 sec)2.执行编写好的sql脚本mysql> source /home/1.sql---------------------| now() |-------------------…

jboss7.1.1 部署_在JBoss AS 7上部署BroadleafCommerce 2.0

jboss7.1.1 部署前2个步骤实际上与Broadleaf无关&#xff0c;但是提到该步骤是为了使其易于执行&#xff08;复制/粘贴&#xff09;这些步骤。 步骤&#xff03;1&#xff1a;在JBoss AS中配置数据源。 <datasource jta"true" jndi-name"java:jboss/datasou…

java中n次方怎么表示_java如何计算一个数的n次方

java递归算法&#xff0c;代码如下&#xff1a;public class Test3 { public double zhishu(double x,double y){ if(y>0){ return x*zhishu(x,y-1); }else if(y<0){ return (x*zhishu(x,-y-1)); }else{ return 1; } } public double fuzhishu(…

枚举集合的EnumSet

在上一篇博客文章中&#xff0c;我们发现了EnumMap用于带有枚举键的映射。 您可能已经观察到&#xff0c;还有一个专门针对枚举优化的Set &#xff1a; EnumSet 。 我们再次定义一个CoffeeType枚举&#xff1a; public enum CoffeeType {ESPRESSO, POUR_OVER, FRENCH_PRESS, …

linux下mkdir头文件_Linux中判断一个目录是否存在,如果不存在就创建这个目录

在操作文件目录时我们常常会考虑如下的功能&#xff1a;1、判断文件是否存在&#xff0c;并判断文件是否可写/目录是否存在Linux下&#xff1a;#includeint access(const char* pathname, int mode);参数介绍&#xff1a;返回值&#xff1a;成功0&#xff0c;失败-1pathname 是…

mac 连接hbase的图形化界面_MAC安装Hbase以及Hbase基本命令

安装Hbase1&#xff0e;官网下载安装包&#xff0c;我下载的是hbase-2.4.0-bin.tar.gz。2&#xff0e;解压&#xff1a;tar zxf hbase-2.4.0-bin.tar.gz3&#xff0e;安装JDK&#xff0c;并设置JAVA_HOME&#xff0c;通过vi ~/.bash_profile&#xff0c;设置环境变量export JAV…

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

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

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

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

生产中的性能分析

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

mysql用com_MySQL 使用教程

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

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

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

设计模式 工厂方法_工厂设计模式–一种有效的方法

设计模式 工厂方法如您所知&#xff0c;“工厂方法模式”或俗称“工厂设计模式”是“创意设计模式”类别下的一种设计模式。 模式背后的基本原理是&#xff0c;在运行时&#xff0c;我们根据传递的参数获得类似类型的对象。 关于这种模式的文章很多&#xff0c;开发人员可以通过…

SMPP Java示例(客户端)

这篇文章通过创建一个简单的SMPP客户端向移动用户发送短信来提供SMPP Java示例&#xff0c;使用该客户端我们可以简单地提交以向单个移动用户发送消息&#xff0c;也可以一次将消息广播给多个移动用户。另外&#xff0c;我们将验证交货收据。 出于客户端的目的&#xff0c;我们…

mysql插入另一个表中数据_MySql中把一个表的数据插入到另一个表中的实现

1.如果2张表的字段一致&#xff0c;并且希望插入全部数据&#xff0c;可以用这种方法&#xff1a;INSERT INTO 目标表 SELECT * FROM 来源表;insert into insertTest select * from insertTest2;2.如果只希望导入指定字段&#xff0c;可以用这种方法&#xff1a;INSERT INTO 目…

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

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

mysql自定义函数多参数_自定义mysql函数 - 无法传递参数

作为标题状态。这里的功能DELIMITER //CREATE FUNCTION GetCreateValue( table_name CHAR(64), id_field CHAR(64), name_field CHAR(64), name_value CHAR(64) )RETURNS INTEGERBEGINDECLARE ret INTEGER;SELECT count(*) INTO ret FROM table_name WHERE name_field name_va…

与Zapier集成

整合很无聊。 也是不可避免的。 但是我不会写有关企业集成模式的文章 。 相反&#xff0c;我将解释如何创建与Zapier集成的应用程序。 什么是Zapier &#xff1f; 它是一项服务&#xff0c;使您可以通过其API&#xff08;或协议&#xff09;连接两个&#xff08;或多个&#x…

python用psf函数_python学习之-类的内置函数

内置方法&#xff1a;__str__(该方法必须返回字符串类型),在对像被打印时自动触发,然后将该方法的返回值当做打印结果输出)class People:def __init__(self,name,age):self.namenameself.ageagedef __str__(self): #绑定给对象的方法return ‘‘ %(self.name,self.age) #这个方…

多用户远程连接mysql_Mysql权限控制 - 允许用户远程连接

Mysql为了安全性&#xff0c;在默认情况下用户只允许在本地登录&#xff0c;可是在有此情况下&#xff0c;还是需要使用用户进行远程连接&#xff0c;因此为了使其可以远程需要进行如下操作&#xff1a;一、允许root用户在任何地方进行远程登录&#xff0c;并具有所有库任何操作…

cxf 服务端soap报文_使用Apache CXF开发SOAP Web服务

cxf 服务端soap报文在上一篇文章中&#xff0c;我逐步介绍了使用apache CXF开发简单的RESTFull服务的步骤。 在本文中&#xff0c;我将讨论使用CXF开发SOAP Web服务。 在继续前进之前&#xff0c;让我们先了解一下构成SOAP Web服务的概念/元素 SOAP或简单对象访问协议 SOAP是一…