徐 希, 戈小中, 童晓辉, 刘 俊
(东风襄阳旅行车有限公司, 湖北 襄阳 441004)
CAN总线是汽车领域目前应用最广泛的现场总线之一[1],也是纯电动客车各电气件最主要的通信方式。其通信协议是连接CAN报文与各电气件物理参数的纽带,一般由各车厂根据实际需求制定。人工直接解析CAN报文是一项费事又耗力的工作,而通过上位机软件解析则极大程度上解决了此问题,提高了工作效率,缩短了工程时间。基于此,本文采用一种根据CAN协议自动解析报文并保存数据的方法,为纯电动客车开发上位机软件[2-3]。
本上位机设计是基于Qt Creator 4.3.1的接口库函数ControlCAN.lib和NI LabVIEW2018的接口库函数ControlCAN.dll二次开发而成[4-5]。接口库函数的基本处理流程如图1所示,该处理流程的底层函数结构如图2所示。

图1 接口库函数的基本处理流程图

图2 处理流程的底层函数结构
软件设计过程中的基本处理流程应依次为打开设备→检测有无设备打开信息异常→清空缓冲区→复位CAN→读取CAN缓冲区帧数→读取CAN内容→关闭设备[6]。在软件系统内,根据接口库函数二次开发的设计要求,结合纯电动客车CAN总线数据量大的特点,为了尽可能不使上位机丢帧,程序内部应将读取CAN报文程序[7]设为中断程序,即当收到CAN报文后,程序立即响应中断,读取CAN报文并呈递给程序设定参数,然后将报文解析出来,这样才能最大几率保证接收的CAN报文不丢失[8]。
报文的自动解析过程是程序设计最重要的一环。……