本篇文章以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.
欢迎关注 『十六宿舍』,大家喜欢的话,给个👍,更多关于嵌入式相关技术的内容持续更新中。