【汽车电子】CAN总线分析仪使用介绍(PCAN/同星CAN卡)
本篇文章以CAN卡的使用为基本线索,介绍了在汽车电子领域涉及的一些CAN卡使用流程,搭配强大的上位机可以实现诸多功能。文章并没有局限于一种CAN卡,而是针对PCAN和同星的CAN卡分别以常用CAN报文收发以及诊断控制台实现这两种方向进行了CAN卡使用的详解。当然,文章涉及到了一些概念并没有具体展开,CAN卡相关的功能也仅仅介绍了常用常用的功能,如果读者在实际使用过程中有遇到欢迎私信讨论。
目录
使用背景
PCAN
与硬件建立连接
接收和发送报文
导入DBC文件
将报文保存为trc文件
同星CAN卡
方案概述
基本参数配置
配置诊断服务
配置刷写流程
使用背景
新能源汽车区别于传统燃油车最核心的技术为“三电”,具体指的是电动车的电池、电机、电控,这三大件。这三部分的作用如下。
- 电池:电池是与化学、机械工业、电子控制等相关的一个行业。电池的关键在电芯,电芯最重要的材料便是正负极、隔膜、电解液。正极材料广为熟知的有磷酸铁锂、钴酸锂、锰酸锂、三元、高镍三元。采用不同征极材料的电池在安全稳定性、能量密度以及循环寿命上有不同的表现。
- 电驱(电机):电驱由三部分构成:传动机构、电机、逆变器。电机由三部分组成:定子、转子、壳体,电机技术的关键点在定子、转子。转子即新能源汽车的主驱动电机,它承担了与新能源汽车运动相关的所有功能。逆变器是把直流电转变成交流电的设备,逆变器中IGBT模块的散热问题,是提高充电效率的关键问题,目前日本丰田对此研究较深入,例如其加硅碳技术的应用。
- 电控:新能源汽车电机、电控系统作为传统发动机(变速箱)功能的替代,其性能直接决定了电动汽车的爬坡、加速、最高速度等主要性能指标。狭义上的电控指的是整车控制器,但是新能源汽车的“电控”较多,还有电机控制器与电池管理系统等,这些控制器通过CAN网络等进行通信。
- 整车控制器(VCU):采集油门,制动踏板等各种信号,并作出相应判断与给出指令,协调各个控制器之间的通信。
- 电机控制器(MCU):接收整车控制器的扭矩报文指令,进而控制驱动电机的转速和转动方向,另外,在能量回收过程中,电机控制器还要负责将驱动电机副扭矩产生的交流电进行整流回充给动力电池。
- 电池管理系统(BMS):电池物理参数实时监测、在线诊断与预警、充放电与预充控制、均衡管理和热管理等。
电控系统通过CAN网络指挥电动汽车电子器件的运行,包括各种电子控制器(ECU),传感器与驱动器等,简单的CAN盒可以实现CAN报文收发以及监控等功能,搭配功能强大的使用软件,CAN总线分析仪能够帮助调试模拟CAN总线状态,完成相关高级功能以及测试过程。
PCAN
PCAN为PEAK-System公司的CAN总线产品,下面我们介绍一下PCAN-Explorer5基本使用方法。
与硬件建立连接
点击Nets Configuration,弹出网络配置对话框,该窗口中显示了已经连接上的硬件,我这里有两个PCAN-USB表示我连接了两个PCAN-USB到电脑上。有把蓝色锁的连接表示该连接已经通过另外一个软件与电脑连接上了。
首先要新建一个工程,然后在添加连接。
接收和发送报文
点击View菜单下的Receive/Transmit,会出现如下图所示的发送接收窗口,在这里可以显示接收到的报文和要发送的报文。
导入DBC文件
CAN总线的dbc文件就是CAN总线的库文件,通过dbc文件,可以将16进制的CAN报文解析为我们容易识别和理解的信号值,如温度,压力等。
但是需要注意的是,导入dbc文件后还需要点击应用才可以解析报文。在dbc文件名上单击右键,选择Open in Symbol Editor,可以再Symbol Editor中看到每个ID所代表的信息,具体哪个字节代表什么信号,报文与信号值之间的数学关系等报文的详细信息。
我们还可以查看DBC文件中对信号的具体定义。
将报文保存为trc文件
使用Trace记录报文,其记录报文的数量可以说是不受限制的,只与硬盘的容量相关,按照下图设置即可:
当然也可以点击主菜单栏中的File中的另存为按钮。
同星CAN卡
上海同星的CAN卡配合TSMaster可以实现一下测试仿真功能。
- 使用TSMaster从零打造车辆控制器HIL实时仿真,搭配同星的硬件接口模块就可以达到最高性能。基于HIL仿真的实时性,我们就可以通过操纵总线数据发送的方法来执行实时仿真。
- 运用TSMaster做CCP/XCP标定。标定是作为整车及ECU开发过程中不可或缺的一个开发流程,对整车及ECU性能的优化起着至关重要的作用。
- 建立诊断控制台基础功能,用户可以根据需求配置自己的发送和应答请求。诊断传输层类型支持CAN/CANFD/LIN。未来将支持汽车以太网与FlexRay。
下面我们介绍一下使用同星CAN卡+TSMaster实现英飞凌TLE989X系列芯片程序烧录功能,无需单独开发上位机,如果更换新的芯片平台以及BootLoader刷写流程,仅需更改配置即可。
方案概述
同星提供的代码包内包含了APP1、APP2、Bootloader、boot_TSmaster、使用说明文档,其中:
- APP1文件和APP2文件是LED闪烁不同频率的APP例程。
- boot_TSmaster文件夹中是配置好的TSmaster上位机软件工程例程,结合Bootloader可以实现下载APP的功能。
- Bootloader文件里面是 bootload 的源代码,需要预先编程至芯片内部,在芯片内部配合TSmaster完成应用程序的刷写功能。
- Bootloader service manual是中英文的使用手册。
在BootLoader示例代码中,刷写流程分为以下十个步骤。
- 10 03 //10服务切换到03扩展模式。
- 85 02 //关DTC(Boot中为空服务,没有具体实现)。
- 28 03 01 //服务关报文(Boot中为空服务,没有具体实现)。
- 10 02 //10服务切换到02编程会话。
- 27 01 // 27服务,解锁,通过安全验证。
- 27 02
- 2e 00 00
- 31 00 00
- (34、36、37) //复合诊断服务下载APP。
- 11 //ECU复位。
下面从TSMaster软件的基本参数配置,以及诊断服务和刷写流程三个方面介绍一下要完成整个刷写流程,上位机需要完成的相关工程配置(也可以直接使用boot_TSmaster文件夹中是配置好的上位机软件工程例程)
基本参数配置
打开TSMaster软件,选择创建新工程-诊断-UDS诊断,然后选择一个新工作目录,创建一个新文件夹,点击选择之后进入到TSMaster工程文件中。
CAN通道配置,如下图所示,最上方硬件、通道选择设置一下CAN通道:点击总线硬件、配置波特率。配置通道一为1000kbps,通道二为500kbps。
新建一个uds诊断模块。
设置诊断基本参数,Protocal的Transport Layer,通道选择channel 2。
设置Diagnostic layer参数。将安全算法的dll导入。
配置诊断服务
在这里配置我们刷写流程中会用到的所有诊断服务,以及用于下载APP的复合诊断服务(343637),复合诊断服务中包含APP文件的加载、配置校验方式、配置擦除Flash、请求和传输数据配置、传输退出配置等。下面我们挑选两个比较重要的诊断服务进行说明。
下面为新建一个复合诊断服务(343637),在“Basic Diagnostic Config”选项卡,创建服务,在“Service Name”中修改想要的名字,点击+号选中想要烧录的文件之后,下方会显示出了文件中的数据区,以及每个数据区的参数信息,TSMaster会全自动地把这一切全部刷写进去,之后会得到两个重要信息,待刷写数据的地址、待刷写数据的长度。
烧录完s19文件后需要进行一个校验来判断烧录文件的完整性。在31服务中创建一个新的服务,改好对应的数据,在下方参数中的“Value Type”里选择“SystemVar”,修改数据长度为32,最后添加校准参数。
然后点击下方参数列表中右侧的+号,在内部变量中找到相应文件的校验参数。点击确定。
完成之后,再去把该动作添加至“Automatic Diagnostic”中相应烧录文件的流程后。
配置刷写流程
在自动诊断流程中配置根据我们前面提到的步骤配置刷写流程。配置好之后,可以用CAN转USB的CAN卡在线刷写,也可以将这个流程下载到离线工具TF1011中实现离线刷写。
配置完成之后点击启动,则进行整个诊断流程,如下图程序正在刷写中。
十六宿舍 原创作品,转载必须标注原文链接。
©2023 Yang Li. All rights reserved.
欢迎关注 『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。
相关文章:

【汽车电子】CAN总线分析仪使用介绍(PCAN/同星CAN卡)
本篇文章以CAN卡的使用为基本线索,介绍了在汽车电子领域涉及的一些CAN卡使用流程,搭配强大的上位机可以实现诸多功能。文章并没有局限于一种CAN卡,而是针对PCAN和同星的CAN卡分别以常用CAN报文收发以及诊断控制台实现这两种方向进行了CAN卡使…...
C //例 7.13 有一个3*4的矩阵,求所有元素中的最大值。
C程序设计 (第四版) 谭浩强 例 7.13 例 7.13 有一个3*4的矩阵,求所有元素中的最大值。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法:使用指针、动态分配内存 #include <stdio.h> …...

基于SSM的供电所档案管理系统
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

excel用RAND函数生成一个大于0小于1的随机数
插入-》函数: 选择RAND函数: 点击“继续”: 点击“确定”,就生成随机数了:...

详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
目录 IP安全概述 IPSec协议簇 IPSec的实现方式 AH(Authentication Header,认证头) ESP(Encapsulating Security Payload,封装安全载荷) IKE(Internet Key Exchange,因特网密钥…...
mysql使用--数据库的基本操作
在MYSQL中,一些表的集合称为一个数据库。MYSQL服务器管理若干个数据库,每个数据库下都可有若干个表。 1.展示数据库 SHOW DATABASES; 2.创建数据库 如:CREATE DATABASE myname; 更智能语法,可用:CREATE DATABASE IF …...

计算机毕业设计选题推荐-个人记账理财微信小程序/安卓APP-项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

如何利用IP代理进行海外推广?
在当今数字化的时代,网络营销已经成为企业策略的重要组成部分。而对于进去海外市场的跨境玩家来说,海外的推广推广是重中之重。然而,在开展推广的过程中,我们常常会遇到各种挑战,如地域限制、访问速度慢等。 为了解决…...
使用FFmpeg转封装为hls(m3u8)流
改造ffmpeg/doc/examples/remuxing.c,支持将输入流转封装为hls协议对应的github地址:GitHub - yagerfgcs/FFmpeg at examples/remuxing_support_hls修改点:增加设置hls头 // example:https://www.ffmpeg.org/ffmpeg-all.html#hls-2 // f…...

npm install导致的OOM解决方案
文章目录 问题记录解决方法Linux重启排查方法 如何排查Linux自动重启的原因 问题记录 我在华为云服务器配置npm开发环境的时候, SSH远程连接一直掉线,无奈提了工单,被告知是NPM install导致的OOM问题。无语了,破NPM还有这个问题呢…...

HTTP和HTTPS详解
一)什么是HTTP协议 1)HTTP协议是倾向于相遇业务层次上面的一种协议,传输层协议主要考虑的是端对端之间的一个传输过程,TCP重点进行关注的是可靠传输;咱们的HTTP/1,HTTP/2是基于TCP的,但是咱们的HTTP/3是基于UDP的&…...

设计模式之模版方法(TemplateMethod)
模版方法 钩子函数 回调函数 在父类里面有一个模版方法,在这个方法里面调用了op1,op2,op3… 在子类里面如果想要改变父类的op1和op2 只需要重写op1和op2,那么这个重写之后的方法,可以在父类里面直接调用的到 例子: J…...

为什么数据安全很重要?哪些措施保护数据安全?
数据安全很重要的原因是因为数据是现代社会的重要财产之一。很多组织和企业依赖数据来做出商业决策,管理客户关系,进行财务规划等等。如果这些数据泄露或遭到黑客攻击,那么就会影响企业的经济利益,甚至影响到个人的隐私和安全。此…...
git push 操作代码回退
git reset revert 回退回滚取消提交返回上一版本 总有一天你会遇到下面的问题. (1)改完代码匆忙提交,上线发现有问题,怎么办? 赶紧回滚. (2)改完代码测试也没有问题,但是上线发现你的修改影响了之前运行正常的代码报错,必须回滚. 这些开发中很常见的问题,所以git的取消提交…...

ESP32 Arduino引脚分配参考:您应该使用哪些 GPIO 引脚?
ESP32 芯片有 48 个引脚,具有多种功能。并非所有 ESP32 开发板中的所有引脚都暴露出来,有些引脚无法使用。 关于如何使用 ESP32 GPIO 有很多问题。您应该使用什么引脚?您应该避免在项目中使用哪些引脚?这篇文章旨在成为 ESP32 GP…...
【链接装载与库】 Linux共享库的组织
Linux共享库的组织 由于动态链接的诸多优点,大量的程序开始使用动态链接机制,导致系统里面存在数量 极为庞大的共享对象。如果没有很好的方法将这些共享对象组织起来,整个系统中的共享对象文件则会散落在各个目录下,给长期的维护…...

大模型时代的机器人研究
机器人研究的一个长期目标是开发能够在物理上不同的环境中执行无数任务的“多面手”机器人。对语言和视觉领域而言,大量的原始数据可以训练这些模型,而且有虚拟应用程序可用于应用这些模型。与上述两个领域不同,机器人技术由于被锚定在物理世…...
devops步骤 -- jenkins安装
安装的docker-compose ##安装步骤参考: https://editor.csdn.net/md/?articleId133070011 编写docker-compose.yml version: 3 services: # 集合docker_jenkins:user: root # 为了避免一些…...

docker命令大全
1、查看Docker 容器占用的空间 docker ps -s2、查看所有容器 docker ps -a3、启动、关闭、重启一个已存在的容器 docker start <容器ID> docker stop <容器ID> docker restart <容器ID> 4、进入容器,退出终端的时候不会关闭container的ma…...

【EI会议征稿】第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024)
第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) The 3rd International Academic Conference on Blockchain, Information Technology and Smart Finance 第三届区块链、信息技术与智慧金融国际学术会议 (ICBIS2024) 将于2024年2月23-25日在马来西亚举行。本次会…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...