一种基于CAN通信的报文解析方法与流程

文档序号:11180464阅读:2491来源:国知局
一种基于CAN通信的报文解析方法与流程

【技术领域】

本发明涉及can通信技术领域,尤其涉及一种基于can通信的报文解析方法。



背景技术:

can是一种具有国际标准而且性能价格比又较高的现场总线,它在当今自动控制领域的发展中能发挥重要的作用,can的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。但是can的数据内容均为十六进制数据,读起来生涩难懂,所以制定一种方法来快速的识别内容

现有的can分析上位机系统,只能接收和发送can报文,例如在电池管理系统(bms)中常用到的电压和电流等信息,现在can通信报文需要使用计算器、协议文档等经过多次变换才能得到真实值。当数据快速变换时,一分钟的数据可能要用几小时甚至更长的时间才能分析完毕,效率低下。



技术实现要素:

本发明的目的是提供一种可以快速解析can通信报文且解析结果直观易懂的基于can通信的报文解析方法。

为了实现上述目的,本发明提供一种基于can通信的报文解析方法,包括以下步骤:

步骤s1:判断是否接到can通信报文,若是,则进入到步骤s2,若否,则继续行者等待can通信报文;

步骤s2:判断每帧can通信报文的id与idmask两者是否相同,若是,则进入到步骤s3,若否,则直接退出;

步骤s3:判断是否达到更新时间,若是,则进入到步骤s5,若否,则进入到步骤s4;

步骤s4:判断是否位跳变,若是,则进入到步骤s5;

步骤s5:清除时间标识,进入步骤s6;

步骤s6:选择是否低字节在前,若是,则进入步骤s61;若否则进入步骤s62;

步骤s61:以byte0作为lsb,然后进入步骤s7;

步骤s62:以byte7作为lsb,然后进入步骤s7;

步骤s7:将数据重组为64bit数据,然后进入步骤s8;

步骤s8:抽取重组为64bit数据,然后进入步骤s9;

步骤s9:选择所述的为64bit数据的输出类型,若选择输出类型为整数型,则进入到步骤s91,若选择输出类型为浮点型,则进入步骤s92;

步骤s91:输出整数型数据;

步骤s92:输出浮点型数据。

相比于现有技术,本方法不仅解析速度快,而且可解析出直观的输出数据,使用方便。例如当本方法应用电池管理系统时,解析出的can通信报文可以直观读出电压、电流、电荷状态等数据。

【附图说明】

图1为本发明基于can通信的报文解析方法流程图。

【具体实施方式】

为了使本发明的目的、技术方案和有益技术效果更加清晰明白,以下结合附图和具体实施方式,对本发明进行进一步详细说明。应当理解的是,本说明书中描述的具体实施方式仅仅是为了解释本发明,并不是为了限定本发明。

如图1所示,为本发明基于can通信的报文解析方法,包括以下步骤:

步骤s1:判断是否接到can通信报文,若是,则进入到步骤s2,若否,则继续行者等待can通信报文;

步骤s2:判断每帧can通信报文的id(标识)与idmask(即id掩码)两者是否相同,若是,则进入到步骤s3,若否,则直接退出;

步骤s3:判断是否达到更新时间,若是,则进入到步骤s5,若否,则进入到步骤s4;

步骤s4:判断是否位跳变,若是,则进入到步骤s5;

步骤s5:清除时间标识,进入步骤s6;

步骤s6:选择是否低字节在前?若是,则进入步骤s61;若否则进入步骤s62;

步骤s61:以byte0(字节0)作为lsb(leastsignificantbit,最低有效位),然后进入步骤s7;

步骤s62:以byte7(字节7)作为lsb(leastsignificantbit,最低有效位),然后进入步骤s7;

步骤s7:将数据重组为64bit数据,然后进入步骤s8;

步骤s8:抽取重组为64bit数据,然后进入步骤s9;

步骤s9:选择所述的为64bit数据的输出类型,若选择输出类型为整数型,则进入到步骤s91,若选择输出类型为浮点型,则进入步骤s92;

步骤s91:输出整数型数据;

步骤s92:输出浮点型数据。

由此完成对can通信报文的解析,本方法不仅解析速度快,而且可解析出直观的输出数据,使用方便。例如当本方法应用电池管理系统时,解析出的can通信报文可以直观读出电压、电流、电荷状态等数据。

本发明基于can通信的报文解析方法还进一步包括以下步骤:

步骤s10:在步骤s91或步骤s92之后,以列表的形式显示出整数形数据或者浮点型数据。

本发明基于can通信的报文解析方法还进一步包括以下步骤:

步骤11:在步骤s10之后,存储整数形数据或者浮点型数据。

本发明基于can通信的报文解析方法在步骤s4中,若位跳变为否,则进入到上述步骤s11。

本发明基于can通信的报文解析方法还进一步包括以下步骤:

在步骤s1之前,还包括以下步骤:

步骤s11:选择配置文件(程序开发者可以自定义配置文件的关键字);

步骤s12:对配置文件格式进行分析;

步骤s13:初始化解析数据。

本发明并不仅仅限于说明书和实施方式中所描述,因此对于熟悉领域的人 员而言可容易地实现另外的优点和修改,故在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。



技术特征:

技术总结
一种基于CAN通信的报文解析方法,包括以下步骤:步骤S1:判断是否接到CAN通信报文,若是,则进入到步骤S2;步骤S2:判断每帧CAN通信报文的ID与ID MASK两者是否相同,若是,则进入到步骤S3;步骤S3:判断是否达到更新时间,若是,则进入到步骤S5,若否,则进入到步骤S4;步骤S4:判断是否位跳变,若是,则进入到步骤S5;步骤S5:清除时间标识;步骤S6:选择是否低字节在前;步骤S7:将数据重组为64Bit数据;步骤S8:抽取重组为64Bit数据,然后进入步骤S9;步骤S9:选择所述的为64Bit数据的输出类型,若选择输出类型为整数型,则进入到步骤S91,若选择输出类型为浮点型,则进入步骤S92;步骤S91:输出整数型数据;步骤S92:输出浮点型数据。

技术研发人员:武宽;李瑶
受保护的技术使用者:深圳市沃特玛电池有限公司
技术研发日:2016.03.26
技术公布日:2017.10.03
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1