纯电动客车 CAN 通信上位机设计讨论介绍开发 CAN 通信上位机时对报文自动解析的四种规律设计方法,并依据上位机前面板显示需求特点的不同,采纳中断法和多任务法进展 CAN上位机的编程及进展应用举例。 关键词:纯电动客车;上位机;CAN 通信 CAN 总线是汽车领域目前应用最广泛的现场总线之一[1],也是纯电动客车各电气件最主要的通信方式。其通信协议是连接 CAN 报文与各电气件物理参数的纽带,一般由各车厂依据实际需求制定。人工直接解析 CAN 报文是一项费事又耗力的工作,而通过上位机软件解析则极大程度上解决了此问题,提高了工作效率,缩短了工程时间。基于此,本文采纳一种依据 CAN 协议自动解析报文并保存数据的方法,为纯电动客车开发上位机软件[2-3]。 1 上位机解析 CAN 报文的设计方法 1.1 软件程序的设计流程本上位机设计是基于 QtCreator4.3.1 的接口 库 函 数 ControlCAN . lib 和 NILabVIEW2025 的 接 口 库 函 数ControlCAN.dll 二次开发而成[4-5]。接口库函数的根本处理流程如图 1 所示,该处理流程的底层函数构造如图 2 所示。软件设计过程中的根本处理流程应依次为翻开设备→检测有无设备翻开信息特别→清空缓冲区→复位 CAN→读取 CAN 缓冲区帧数→读取 CAN 内容→关闭设备[6]。在软件系统内,依据接口库函数二次开发的设计要求,结合纯电动客车 CAN 总线数据量大的特点,为了尽可能不使上位机丢帧,程序内部应将读取 CAN 报文程序[7]设为中断程序,即当收到 CAN 报文后,程序马上响应中断,读取 CAN 报文并呈递给程序设定参数,然后将报文解析出来,这样才能最大几率保证接收的 CAN 报文不丧失[8]。1.2 对报文自动解析的规律设计方法报文的自动解析过程是程序设计最重要的一环。依据 CAN 报文 SAEJ1939 的规定[9],在纯电动客车上,从 CAN 总线 接 收 到 的 报 文 数 据 帧 为 8 个 字 节 , 分 别 记 为 BYTE1……BYTE7、BYTE8,该数据均为十六进制数。依据 CAN 通信协议[10],找到相应 ID 的报文,然后由协议中的比例和偏置解析出相应的物理数据。本上位机的数据解析设计使用以下几种方式。1.2.1 对报文的直接处理协议规定,需要解析的字节 BYTE。若比例为 x、偏置为 y,则解析出的结 果 z 为 (1) 假 设 上 位 机 收 到 BMS 的 报 文 [ 11 ] 数 据 为{01,02,03,04,05,06,07,...