首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于LabVIEW的电池管理系统与充电机通信协议测试(2)

基于LabVIEW的电池管理系统与充电机通信协议测试(2)

发送报文均先入未拆分发送报文队列;创建未拆分发送报文处理线程,用于按多帧传输机制处理发送报文,程序流程图如图4所示,若发送报文数据超过8 B则需要通过多帧传输机制拆分发送。


2.3 J1939平台应用效果
定义电池管理系统BMS和LabVIEW的J1939协议地址分别为244和86.首先由BMS发送PGN为256的9 B报文给LabVIEW,CANoe监视到总线时序如图5所示。


由第一帧ID可以看出源地址为0xF4(244),目的地址为0×56(86),PGN为0xEC00,因此该帧为链接管理帧TP.CM,并且Data 域控制字节(第1 字节)为0×10,综上该帧为BMS 发送给LabVIEW 的请求发送帧,并由Data域可以看出此次报文共有0×09字节(第2,3字节),数据包共有0×02 包(第4 字节),PGN 为0×0100(第6,7,8 字节)。同理第二帧为LabVIEW发送的准备发送帧,通知BMS 从第0×01 包(第3 字节)开始发送0×02(第2 字节)包数据包。待接收到BMS发送的两帧TP.DT,LabVIEW发送TP.EndofMsgACK 代表此次多帧传输完成。Lab-VIEW接收重组后的数据如图6所示。


同理分析LabVIEW 作为发送节点的情况,总线时序图如图7所示,LabVIEW拆分前的发送数据如图8所示。综上分析,利用LabVIEW 开发平台很好地实现了J1939协议。




3 通信协议测试软件的开发
通信协议将整个通信分为多个阶段:充电握手阶段、充电参数配置阶段、充电阶段、充电结束阶段。每个通信阶段均涉及充电机与BMS 的信息交互,每次信息交互均有超时限制。为了实现对通信协议进行测试,不仅要模拟充电机与BMS 进行通信,还要实时监测通信的状态,判断通信过程是否出错并解析BMS 发送的信息。测试软件主要测试通信阶段出现的时序错乱以及信息交互超时这两种错误。
在已开发J1939协议基础上进行测试软件的开发,J1939协议提供了两个接口:需要发送报文直接入未处理发送报文队列、已处理接收报文出队列供应用层使用。通信阶段改变利用LabVIEW 状态机结构来实现。
创建充电机接收状态、充电机发送状态两个数据簇,记录接收报文是否已被接收、发送报文是否已被发送以及发送的时间。利用单独程序线程通过这两个数据簇实时判断是否有错误发生。
应用效果如图9所示,为了试验是否能准确测试出错误类型,有意将BMS 程序设置为不发送电池充电需求报文,测试软件指示超时类型代码为5,即电池充电需求报文超时,接收错误类型主要为通信顺序出错。通过对每个接收超时类型以及顺序出错类型进行测试,结果表明能很好地实现对通信协议进行测试。


4 结语
在LabVIEW开发平台上,利用其强大的数据处理能力以及丰富实用的程序结构实现了J1939协议,在此基础上开发电动汽车非车载传导式充电机与电池管理系统之间的通信协议测试软件,不仅可以辅助BMS的程序开发,还可以作为BMS测试平台的部分功能评价BMS合格与否。通过与BMS进行通信,并利用CANoe对总线进行监视,试验结果表明该测试软件可以实现J1939协议,能完成多帧传输机制,并且可以测试出通信协议中出现的通信流程错乱以及通信超时错误,可以满足要求。
返回列表