基于CAN总线电池性能监测系统设计

2021-07-08 03:11王海龙左付山
仪表技术与传感器 2021年6期
关键词:模组字节报文

王海龙,左付山,杨 柳,张 营

(南京林业大学汽车与交通工程学院,江苏南京 210037)

0 引言

插电式混合动力汽车(PHEV)具有动力输出方式复杂、电池充放电状态多样以及电池容量大等特点,这些特点使得PHEV在使用过程中电池的安全性能需求更高,使用寿命需要更长,因此对于动力电池的运行性能进行实时的评价诊断很有必要[1]。CAN总线是一种具有高性能和可靠性的串行通信协议[2],广泛应用于汽车、船舶等[3]。基于动力电池通信高安全性、高可靠性、抗干扰能力强、实时性好、容错性高等要求,CAN总线的数据通信性能好,成为首选的通信方式。同时,在对动力电池进行运行性能评价时,电池参数的采集与获取是第一步也是最重要的一步。然而,由于一般的PHEV中电池的各项参数数据是保密的,为了获取诊断参数进行后期的故障诊断,本文以一款PHEV的三元锂电池为研究对象,以提高电池使用过程中的安全性和可靠性为目标,基于CAN总线通信方式,进行了动力电池数据监测系统软硬件的开发。

1 硬件系统整体结构

PHEV的动力电池监测系统的整体架构[4-5]主要由电池数据采集模块和数据通信控制模块2部分组成。硬件系统整体结构图[6]如图1所示。本文选择MC9S08DZ60作为电池监测系统的主控芯片,以DS2438作为电池采集模块的监测芯片,MC9S08DZ60主控芯片与DS2438监测芯片之间采用CAN总线的通信方式。DS2438监测芯片可以对电池数据进行采集,并将采集到的信息通过单总线传递给主控芯片;主控芯片可先将相应的电池状态数据存储并做出基础的处理,然后通过CAN控制器和收发器将数据传输至CAN总线,并通过USBCAN分析仪传递给上位机,上位机可以显示电池的数据以及利用监测到的数据进行检测诊断。

图1 硬件系统整体结构图

1.1 数据采集模块

本文数据采集系统采用集成型数据采集方案[7],选用智能电池监测芯片DS2438对于电池的电压、电流、温度、电阻等状态数据进行采集,并将这些信息传递给主控芯片。DS2438监测芯片具有体积小、检测准确等优点。监测的电池模组共有8组,以1个电池模组作为1个监测单元,配置1个监测芯片。为了提高监测系统的精确度以及简化采集电路,该监测方案需要将采集芯片安置在每个电池模组上。图2为采集模块结构图。

图2 采集模块结构图

由于电池模组电压与电池总电流超过了DS2438芯片的监测范围,所以电压与电流的采集分别通过分压电路和电流传感器再与监测芯片管脚进行连接;当监测芯片接收到转换命令后,内部A/D转换器会将电压和电流A/D转换,即可实现电池的电压与电流数据采集。DS2438芯片还可实现温度的直接测量,其内部具有集成的温度传感器,因此需要将芯片紧贴在被测电池模组上。与电压、电流采集一样,温度采集并不是自动采集,因此需要先由控制器发出控制命令后才能采集,并将采集后的温度信息经A/D转换后,再通过温度寄存器输出。绝缘电阻的检测方法是通过测量电压值与电流值来间接求得绝缘电阻值,其测量电路图[8]如图3所示。

图3 电池绝缘阻值测量方式

1.2 数据通信模块

飞思卡尔单片机MC9S08DZ60[9]主控芯片具有性价比高、功耗低、性能强大等优点,已经广泛应用于汽车控制和工业控制。选择该芯片的最大优势在于其内部具有MSCAN控制器,这就使得CAN控制器的设置和控制工作更加简化,省去了选用单独CAN控制器的工作以及设计相应的电路[10-11]。

MSCAN作为系统CAN控制器,内置于芯片MC9S08DZ60中,其主要功能是初始化、报文的发送与接收,内部由配置寄存器、报文滤波与缓冲、接收/发送引擎、低通滤波器等组成。该芯片具有支持CAN2.0A/B协议、可实现单独信令传输与中断等特点。当主控芯片对CAN总线控制器进行配置时,可以通过设置MSCAN各寄存器来实现。

本文选用CTM1050T CAN收发器[12-13]作为CAN控制器和物理传输线路之间的接口,可实现报文的收发以及差分电平信号与逻辑电平信号的转换。选择该芯片的优势在于其自带隔离功能,省去了外部隔离电路设计,同时具有接口简单、通信速率高、环境适应能力强等优点。CAN收发器与控制器连接电路图如图4所示。

图4 CAN收发器与控制器连接电路图

由于CAN总线与上位机并不能直接通讯,因此需要配置相应的CAN总线适配器,本文选用了基于USB接口的CAN总线分析仪[14]。其实物图如图5所示。该分析仪可使用USB2.0接口与上位机直接连接,并支持CAN2.0协议及双向传输,连接简单方便,通信稳定可靠,最高传输速率可以达到1 Mbit/s。通过上位机自编程,USBCAN分析仪可以实现CAN总线与上位机的数据通信[15],传输速率的调整以及收发模式的选择,从而达到动力电池状态数据在线监测与后期检测诊断的目的。

图5 CAN分析仪实物外观图

2 CAN通信协议设计

由CAN通讯网络结构可知,物理层和数据链路层已经被ISO的标准所规定并且被硬件驱动控制[16]。然而,为了便于使用者根据自己的需求设计适合自己的通讯协议,其应用层并没有规定具体的格式与内容。因此,根据不同的对象及通讯要求需要使用者自己定义和编写通讯内容。基于本文通讯的特点,采用了数据帧中具有11位ID号的标准帧格式,在CAN2.0B应用层通信协议基础上,设计了适用于本文监测系统的CAN通讯协议。

2.1 通讯信息的确定

CAN总线通信传输的信息是由采集模块采集的电池状态信息,主要包括2部分:一是电池整体状态信息,包括电池组的总电压、总电流、电池温度、绝缘电阻;二是电池模组状态信息,包括每个模组的电压、温度。

2.2 帧结构的确定

根据CAN2.0B标准帧[17]中应用层的规定,结合本文监测系统数据传输消息种类和数量不多的特点,为了提升通讯传输速率,采用了字节较少的标准帧格式,设计了适合本文监测系统的帧结构。其具体结构如表1所示。

表1 本文帧结构

由表(1)可知,标准帧字节1~3为信息段,字节4~11为数据段,每个字节为8位。其中,第1个字节是帧信息,包含帧格式、数据长度等信息;第2~3个字节为仲裁段,其前11位为标识符,包含数据的属性和位置信息,还剩下5位可以保留备用。报文结构中4~11字节共含有8个字节,可用来存储需要传输的数据信息。

2.3 ID分配

根据CAN2.0B协议和本文系统传输需求,需要将11位标准标识符分别定义为数据与位置属性2部分。根据数据属性与位置属性,便可以确定每个报文传输的是电池哪个位置的什么类型数据。其ID分配格式如表2所示。

表2 11位标准标识符ID分配格式

11位标识符中前5位定义为数据属性,主要是辨识传递数据内容,主要分为电池总体状态、模组电池电压、模组电池温度;后6位定义为位置属性,主要辨识的是数据位置,主要区分后面的数据来源于哪些位置。针对本文电池模组数量为8组,以及监测系统需要传输的电池总体与模组信息,现将其数据属性与位置属性进行具体分配,其ID分配内容如表3所示。

表3 数据ID分配

2.4 数据格式定义

在CAN总线传输中,实际物理量数据一般需要转化为多位二进制代码进行传输,因此传输的数据中每个二进制值对应着一个实际物理量值。为了提高监测系统CAN通讯的利用率,本文采用了定点数的方式将实际物理量进行表示。其具体的转换公式如下:

实际物理量=比例因子×(定点数+偏移量)

2.5 报文设计

为了实时监测电池状态,本系统中需要监测的信号包括电池总体状态数据与每个模组的电压、温度信号。由于传递信号多为数据信号,所以采用定时周期型发送方式,即按照固定的时间周期向总线上发送数据。下文分别给出了电池总体状态、模组电池电压、模组电池温度具体报文设计样例。

由于电池总体状态中包含4个参数,每个参数占2个字节,考虑到每个标准帧数据段总共有8个字节,综合发送间隔,我们将电池总体状态参数发送分为2组。第1组为电池总电压、电池总电流,数据属性为0x01,位置属性为0x01,发送间隔为50 ms,占用4个字节;第2组传输的数据为电池温度、绝缘电阻,数据属性为0x01,位置属性为0x02,发送间隔为750 ms,也需要占用4个数据字节。下文以电池总体状态第1组参数报文设计为例,列出了电池总电压与总电流的报文设计的具体格式,如表4所示。

表4 电池总体状态第1组参数报文设计

在电池模组报文中,定义模组电压、模组温度的数据属性分别为0x02、0x03,位置属性均为0x01~0x02,其发送方式仍为周期型,前者发送间隔为50 ms,模组温度的发送间隔为750 ms。由于电池模组数量为8组,每个报文中8个数据字节需要被全部占据,同时每个模组电池电压、温度数据都占据2个字节,所以每组报文可以包含4组模组的电压/温度信息。下面以一个模组电压报文设计为例,其具体报文设计格式如表5所示。

表5 电池模组电压报文设计

3 上位机软件设计

上位机的设计[18]主要包含2个模块,CAN收发模块(即通过上位机编程,控制USBCAN分析仪从而实现对CAN信号的接收与发送)和数据解析与显示模块(即对接收的电池报文数据进行解析,转换成实际物理量[19],并通过上位机进行实时显示及存储)。结合上述功能,本文基于LabVIEW对于上位机进行了开发[20-21]。

3.1 CAN收发模块

在进入LabVIEW程序后,首先需要选择设备型号——USBCAN,再设置相应的CAN参数,例如通信速率、CAN通道等,然后打开设备,如果成功打开,就需要进一步对于CAN收发进行设置,例如帧ID、数据内容等,若匹配成功,即可实现CAN数据的发送;同时,CAN收发模块通过设置发送采集指令,可以直接接收CAN总线中的数据。CAN收发模块流程图如图6所示。

图6 CAN收发模块流程图

3.2 数据解析与显示模块

由于接收到的CAN总线数据为十六进制数据,同时每个报文中有可能包含不同位置属性和数据属性电池状态数据,因此首先需要按照上文设计的报文格式对ID号进行解析,得到该数据来源于哪个位置,数据属性是属于电池总体状态数据、模组电压数据还是模组温度数据;然后,根据上述的实际物理量与定点数的转换关系,将报文中不同字节的电池状态数据解析为十进制数据,并在LabVIEW界面进行实时显示。

为了使得解析后的模组数据在界面显示得更加直观以及快速地检测诊断出模组之间的一致性,本文将电池中每个模组电压与模组温度数据在同一个界面中均通过柱状图进行显示。电池总体状态数据显示界面包括了电池总电压、电池总电流、电池温度、绝缘电阻信息。其LabVIEW显示界面图如图7所示。

图7 电池数据显示界面

4 实验验证

为了验证本文设计的监测系统的可行性,通过实验的方式进行了验证。首先将实物进行了连接,包括测试板以及USBCAN分析仪。

实物连接后,打开LabVIEW程序,接着选择设备型号—USBCAN,点击启动设备,并设置相应的CAN参数,通道选择CAN1,CAN总线的波特率设置为250 Kbps,点击打开设备,显示成功打开设备。继而,按照CAN协议规定,帧格式选择标准帧,帧类型选择数据帧,然后进行数据的收发。下面以发送帧ID:0201为例进行验证,数据接收界面如图8所示。

图8 LabVIEW数据接收界面

根据上述设计的报文格式可知,ID号0201表示的是1-4号模组电池电压信息,再通过实际物理量与定位数的转换关系,数据段中的01 4d 01 4e 01 50 01 51代表的是1~4号模组电压值大小,分别为3.33 V、3.34 V、3.36 V、3.37 V。数据解析结果在LabVIEW显示界面显示如图9所示。

图9 数据解析结果界面

当发送ID:0201后,上位机会接收到电池1~4号模组的电池电压,通过解析后,在LabVIEW界面进行显示。由图9可知,1~4组模组电压成功通过柱状图显示出来,并且4组电压一致性较好。因此,通过该实验验证了CAN收发模块与解析和显示模块上位机程序的可行性以及监测系统的可实现性。

5 结束语

本文基于CAN总线设计了一套PHEV电池数据监测系统,硬件部分主要包括数据采集模块与数据传输模块,软件部分基于LabVIEW进行了开发,该系统不仅可以实时获取电池的电压、电流、电阻等特征参数并实时显示,也为后期的电池检测诊断提出了数据基础。同时,系统在CAN通信模块中详细规定了帧结构和报文格式,并分析说明了报文内容与电池各物理量之间的对应关系。为了验证系统的实用性与可靠性,采用了一组电压数据进行测试,成功地实现了数据的收发与显示,系统运行良好,满足设计要求。

猜你喜欢
模组字节报文
基于J1939 协议多包报文的时序研究及应用
No.8 字节跳动将推出独立出口电商APP
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
光学薄膜技术及在背光模组中的应用研究
No.10 “字节跳动手机”要来了?
高速公路表贴透镜模组设计浅谈
浅谈石墨烯材料在LED路灯模组中的应用及该模组的设计
简谈MC7字节码
ATS与列车通信报文分析