ECU通讯:CAN总线仿真测试

news2024/9/20 16:59:10

01.ECU

在软件定义汽车的大背景下,几乎每一个汽车功能都需要依靠ECU(Electronic Control Unit,电子控制单元)来实现:有些功能靠ECU独立实现,有些功能则需要多个ECU联合实现。总体来说,ECU绝大多数情况下都需要与其他ECU进行信息交互,比如充电功能就需要车载充电机OBC(On-Board Charger)联合电池管理系统BMS(Battery Management System)、整车控制器VCU(Vehicle Control Unit)等联合才能实现。

常见的ECU通讯方式有CAN(Controller Area Network),LIN(Local Interconnect Network)和FlexRay,随着汽车电子电器架构朝着中央集成控制方向发展,以太网的应用也越来越广泛。

▲电子电气架构的演变趋势

来源:the software Car: Building ICT Architectures for Future Electric Vehicles

02.CAN总线

当前最为常见的ECU通讯方式为CAN总线,即控制器局域网总线。CAN是博世于上世纪八十年代为车载网络所开发的。在此之前,汽车制造商一直使用点对点布线系统来提供车载电子设备之间的连接。然而,随着车辆中使用的电子元件数量的增加,笨重且昂贵的线束占据了过多的空间。据统计,中型轿车需要的线束插头为300个以上,插针总数在1800-2200个,线束总长超过2千米,装配极为复杂,故障率也极高。

为降低布线成本,CAN总线应运而生。CAN是一种用于联网智能设备的高度一致的串行总线系统,自1993年起就作为汽车联网国际标准被广泛引入汽车行业。只需要两条线(CAN High和CAN Low),每个ECU便可以与其他ECU进行通信。下图为一种典型的CAN总线通信方式:

▲典型的CAN总线通信方式

各个ECU通过CAN收发器连接到CAN总线上,同时将数据广播出去,处于CAN总线上的每个ECU都可以接收到该广播信息。如果该信息为收方ECU所需信息就会被接收,反之则会被忽略。

CAN可工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN 协议废除了地址编码,而是对通信数据进行编码,使不同的节点能够同时接收到相同的数据。这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,有助于提高系统的可靠性和系统的灵活性。

世界上几乎所有的汽车厂商都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。CAN总线的应用优势如下:

1.提供了轻量级、低成本的网络

作为总线网络,每个ECU仅需要一个CAN接口就可以与处于网络上的其他ECU进行通信。

2.广播式通信

每条消息都可以被各个ECU的CAN收发器接收,并由各ECU自行决定是否忽略该条消息。

3.优先级机制

CAN总线是点对点网络,无主从设备之分。数据发送前会先检查总线是否繁忙。传输的CAN帧不包含地址编码,而是在整个网络中唯一的仲裁ID,也是各ECU判断是否接受该数据的依据。如果多个节点同时尝试向CAN总线发送消息,则将依据CAN帧优先级(帧ID)被授予访问总线的权限,总线繁忙时,优先级低的CAN帧必须等待总线可用才能再次尝试传输。优先级机制保证了CAN节点之间的确定性通信。

4.错误检测

CAN使用了循环冗余码(CRC,Cyclic Redundancy Check)进行校验,用于确保数据完整性,可以对每个帧进行错误检查,错误帧将被所有结点忽略。

03.软件与仿真测试

在过去的普遍认知中,软件貌似与汽车行业关系甚小,甚至许多车主也倾向于认为汽车软件只存在于汽车的信息娱乐系统中。实际上,一辆汽车所包含的软件远比想象中多得多,上百个ECU中的每一个都需要运行软件。可以说,如今汽车上的每一个功能几乎都有软件参与控制。汽车软件的增加也意味着问题产生的几率上升。事实上,主机厂因软件缺陷而召回的车辆的情况不在少数:

  • 2016年,由于软件缺陷而召回的车辆占总召回车辆的46%。

  • 2021年,美国梅赛德斯奔驰公司召回了41838辆SUV车型,原因为软件故障导致的前轮扭力施加问题。

  • 2024年3月,现代起亚因集成充电控制模块(ICCU,Integrated Charging Control Unit)软件问题召回14.7万辆汽车。

多ECU联合实现的汽车功能则更易受到影响。为了尽可能地避免软件故障问题带来的损失,应使用仿真平台搭建虚拟总线来进行ECU软件中总线功能的测试,还可应用仿真平台所提供的总线监视功能来监控软件运行过程中的总线通信数据,方便开发人员进行故障排查。

天目全数字实时仿真软件SkyEye,是一款国产自主可控的基于可视化建模的硬件行为级仿真平台,能够用于汽车虚拟CAN总线的搭建。建立下图所示的CAN总线应用场景:

▲CAN总线应用场景

该场景需要仿真4个SVCU计算节点,以2个VCU计算节点为例,通过SkyEye搭建的目标系统拓扑结构如下图所示:

▲基于SkyEye的CAN总线交互设计

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

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

相关文章

解决SonarQube中Vue项目中deep选择器报错的问题

1. 前言 当使用SonarQube对Vue项目进行代码质量审查时,可能会遭遇因Vue特有的deep选择器(旨在实现样式深度穿透)而触发的错误或警告。由于SonarQube默认并不识别这一Vue特有的语法,这些错误报告可能会成为审查过程中的干扰项。为了…

Mysql sql技巧与优化

1、解决mysql同时更新、查询问题 2、控制查询优化 hint 3、 优化 特定类型的查 优化 COUNT() 查询 使用 近似值 业务能接受近似值的话,使用explain拿到近似值 优化关联查询 优化子查询 4、优化group by和distinct 优化GROUP BY WITH ROLLUP 5、优化 limit分页 其他…

【MySQL-19】一文带你了解存储函数

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

Richteck立锜科技电源管理芯片简介及器件选择指南

一、电源管理简介 电源管理组件的选择和应用本身的电源输入和输出条件是高度关联的。 输入电源是交流或直流?需求的输出电压比输入电压高或是低?负载电流多大?系统是否对噪讯非常敏感?也许系统需要的是恒流而不是稳压 (例如 LED…

应届生软件测试面经_一名应届生的软件测试面试题目

1.你为什么选择软件测试行业 因为之前有了解软件测试这个行业,觉得他的发展前景很好, 2.根据你以前的项目经验描述一下软件开发、测试过程,由那些角色负责,你做什么 要有架构师、开发经理、测试经理、程序员、测试员。我在里面…

什么是死锁 , 以及产生的原因详细介绍

死锁 一. 什么是死锁 指的是两个或者两个以上的线程在执行的过程中由于竞争同步锁而产生的一种阻塞现象;如果没有外力的作用,他们将无法继续执行下去,这种情况称之为死锁, 通俗的说死锁产生的原因主要是由于线程的相互等待 , 导致程序无法进行下去 二. 代码阐述 这里我们写…

科技论文在线--适合练习期刊写作和快速发表科技成果论文投稿网站

中国科技论文在线这个平台可以作为练手的一个渠道,至少可以锻炼一下中文写作,或者写一些科研方向的简单综述性文章。当然,如果你的老师期末要求也是交一份科技论文在线的刊载证明的话,这篇文章可以给你提供一些经验。 中国科技论…

数据结构 - 队列(精简介绍)

文章目录 单端队列单端队列操作:Queue实现 双端队列双端队列操作:Deque实现 循环队列循环队列手动实现 优先级队列Q 不断取最大礼物并开方 单端队列 普通队列为单端队列,先进先出(FIFO) 只能从尾部插入,头…

jscolor 赋值input 没能引起前边色框的颜色变化

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

操作系统内核源码杂谈篇:临界区

临界资源,是指同一时刻只能由一个线程(linux下为进程)访问的资源,而临界区就是为了确保临界资源访问是单一数据流。 临界区的代码执行,也就是进行原子操作,不会被打断。 先分析RTOS的运行架构&#xff0c…

35道最新【软件测试】面试题,常见面试题及答案汇总

前言 除了掌握扎实的专业技能之外,你还需要一份《软件测试面试宝典2024版》才能在万千面试者中杀出重围,成功拿下offer。 小编特意整理了35道测试必问必过面试题,送给大家,希望大家都能顺利通过面试,拿下高薪。赶紧码…

ngnix添加自定义模块

参考如下的 示例: hello handler 模块 部分, handler模块(100%) — Nginx开发从入门到精通 参考: 【Nginx】Nginx新增自定义模块_nginx 自定义模块-CSDN博客 需要详细说明的是, 创建一个addtion_module文件夹,将.c文件放进去&…

应急靶场(6):Linux1

目录 黑客的IP地址遗留下的三个flag 第一个flag第二个flag第三个flag 下载好靶场(应急响应靶机-Linux(1))并搭建好环境,使用帐号密码(defend / defend)登录靶机,然后使用su root命令和帐号密码(…

为hugo博客添加isso评论

个人博客评论诉求 能简单的在页面看到评论即可 能找到评论人的邮箱评论可以折叠能私有化部署 之前用过twikoo,个人体验没有isso丝滑简洁 私有化安装isso 官网 https://isso-comments.de/https://github.com/isso-comments/isso 部署方法 服务端安装python, pip 通过以下命…

“社群+”生态下的开源AI智能名片源码:驱动商业与社会连接的新引擎

摘要:在“社群”生态日益成为主流趋势的今天,开源AI智能名片源码作为技术创新与社群运营的深度融合体,正逐步展现出其重塑商业格局、深化社会连接的巨大潜力。本文旨在深入探讨开源AI智能名片源码的技术特性、在“社群”生态中的具体应用、对…

C/C++ yaml 库

文章目录 一、yaml 介绍1.1 yaml 介绍1.2 yaml 教程1.3 yaml 在线工具1.4 yaml 出现背景 二、C/C yaml 库选型2.2 libfyaml2.3 yaml-cpp 一、yaml 介绍 1.1 yaml 介绍 YAML(YAML Ain’t Markup Language)是一种人类可读的数据序列化格式,通…

在安卓手机上原生运行docker

前言 之前的文章(香橙派5plus上跑云手机方案一 redroid(带硬件加速))在Ubuntu的docker里运行安卓,这里说下怎么在安卓手机下运行docker,测试也可以跑Ubuntu。 想在手机上运行docker想的不是一天两天了,其实很久之前就有这个想法了&#xff…

12款超实用的视频压缩软件,帮你一键压缩视频

视频压缩软件这么多,我们该怎样正确使用它们并高效地压缩视频大小呢?数字化时代,高清画面的视频往往意味着更大的视频文件大小,它们往往会影响电脑占用内存、视频传输速度。本文将为您提供12款视频压缩技巧,帮您轻松将…

智能化革新:数字装备场的移动信息终端实战攻略!

智慧营区发展项目在数字化装备管理领域取得了显著进展,得益于物联网、大数据和人工智能等先进技术的融合应用,极大地增强了装备场所硬件之间的互动性和协同作业能力。 此外,该系统亦提供了定制化的在线业务流程管理服务,使得管理活…

小白新手搭建个人网盘

小白新手搭建个人网盘 序云服务器ECS重置密码远程连接ECS实例 安装OwnCloud安装Apache服务PHP运行环境NAS挂载挂载验证操作体验 序 阿里云文件存储NAS(Apsara File Storage NAS)是一个可大规模共享访问,弹性扩展的分布式文件系统。本文主要是…