一种通过CAN总线消息解析系统、方法及其函数存取方法技术方案

技术编号:16326982 阅读:88 留言:0更新日期:2017-09-29 18:57
本发明专利技术涉及一种CAN总线消息解析系统,包括:数据接口,用于获取CAN总线消息的帧数据;调用模块,用于根据所获取的总线消息数据帧的前4个字节获取消息号,并调用解析函数模块;解析函数模块,根据所述消息号,加载信号描述符变量模块中所述消息号所对应信号的解析变量,并对所述总线消息数据帧的后8个字节进行解析,获得原始数据,将获得的原始数据保存至信号描述符变量模块;信号描述符变量模块,按照消息中的每个信号,分别存储用于从总线消息数据帧中解析获得该信号原始数据的变量,以及用于存储解析获得的信号的原始数据。

【技术实现步骤摘要】
一种通过CAN总线消息解析系统、方法及其函数存取方法
本专利技术涉及一种获取车辆状态信息的方法,尤其是一种获取CAN总线获取车辆信息的方法和装置。
技术介绍
随着电子技术的发展,传统的车辆都往智能化方向发展,车辆的电控系统越来越多,并且,遍布于车身的各种传感器实时的监测车辆的状态信息,并将此信息发送至相对应的控制单元内。车身上的这些控制单元并不是独立工作的,它们作为一个整体,需要信息的共享,因此存在信息传递的问题。目前普遍采用CAN-BUS即CAN总线技术(控制器局域网总线技术),通过该种方式,每个控制单元都连接到这两条上,这样此信息会在总线系统上进行传递,每个与总线系统连接的控制单元都会接收到此信息,如果此信息对自己有用则会存储下来,如果对其无用,则会进行忽略。CAN总线技术通过这种方式实现多个控制单元间的信息共享,所有的信息,不管信息容量的大小,都可以通过CAN总线进行传递,提高了整个系统的运行效率。获取CAN总线的车辆状态信息并解析该信息能够对于智能汽车的功能实现十分重要,每个厂商的每个车型都有不同的CAN总线信号格式的定义,因此,需要一种有效的能够从各种车型中解析到CAN总线消息的方法。
技术实现思路
本专利技术的目的是为了提供一种能够动态解析CAN总线消息的方法。一种CAN总线消息解析系统,包括:数据接口,用于获取CAN总线消息的帧数据;调用模块,用于根据所获取的总线消息数据帧的前4个字节获取消息号,并调用解析函数模块;解析函数模块,根据所述消息号,加载信号描述符变量模块中所述消息号所对应信号的解析变量,并对所述总线消息数据帧的后8个字节进行解析,获得原始数据,将获得的原始数据保存至信号描述符变量模块;信号描述符变量模块,按照消息中的每个信号,分别存储用于从总线消息数据帧中解析获得该信号原始数据的变量,以及用于存储解析获得的信号的原始数据。上述系统中,信号描述符变量模块,所述描述符变量中包括第一标识位,用于标识变量中是否保存有原始数据。上述系统中,所述信号描述符变量模块,还存储将原始数据换算为物理数据的变量;以及,调用物理数据接口获取原始数据;物理数据接口,按照所述变量将原始数据换算为物理数据。上述系统中,所述物理数据接口将换算得到的物理数据发送到上层应用。上述系统中,所述数据帧数据结构为摩托罗拉升序编码格式motolsb或者摩托罗拉降序编码格式motomsb或者英特尔编码格式intel中的一种。一种CAN总线消息解析方法,包括:获取CAN总线消息的帧数据;根据所获取的总线消息数据帧的前4个字节获取消息号;查找该消息号对应的洗好描述符,获得各信号描述符分别对应的解析变量,分别从所述数据帧的后8个字节中解析获得各消息描述符对应的原始数据。上述方法还包括:查找该消息号对应的消息描述符,获得各消息描述符分别对应的换算变量,根据所述换算变量将信号描述符所对应的原始数据换算为物理数据。一种CAN总线消息解析函数存取方法,获取数据库容器文件dbc中的消息号以及信号名;查找所述信号名,获取从数据帧中获取所述信号原始数据的第一变量集合;查找所述信号名,获取将所述信号原始数据换算为物理数据的第二变量集合;按照预置的格式保存所述信号名以及所对应的所述第一变量集合与第二变量集合。上述方法中,所述按照预置的格式保存第一变量集合与第二变量集合,具体为:保存信号名对应原始数据在数据帧的起始位置、原始数据长度以及原始数据位的初始化数据;保存信号名对应的原始数据到物理数据的换算比例、原始数据到物理数据的偏移、物理数据的最小值及物理数据最大值。上述方法中,所述按照预置的格式保存还包括保存所述消息号。本专利技术实施例可以有效的从各种车型中解析得到CAN总线的消息,提高了解析效率,降低各种车型CAN总线消息定义不同造成的解析错误的风险。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术系统实施例示意图;图2为本专利技术方法实施例流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例可以有效的从各种车型中解析得到CAN总线的消息,提高了解析效率,降低各种车型CAN总线消息定义不同造成的解析错误的风险。由于每个厂商的每个车型都有不同的CANbus矩阵表格,该表格以dbc文件格式定义。从而导致通过CANbus解析不同车辆类型状态的时候,需要实现不同的解析模块。其中,dbc是MicrosoftVisualFoxPro数据库容器文件。为实现本专利技术目的,首先对dbc文件进行解析。比如,dbc文件的某段数据内容为:BO_1028T_BOX_404:8TboxSG_TboxNMSleepAcknowledge:13|1@0+(1,0)[0|1]""BCM,IC,PEPSSG_TboxNMSleepIndication:12|1@0+(1,0)[0|1]""BCM,IC,PEPSSG_TboxNMLimphome:10|1@0+(1,0)[0|1]""BCM,IC,PEPSSG_TboxNMRing:9|1@0+(1,0)[0|1]""BCM,IC,PEPSSG_TboxNMAlive:8|1@0+(1,0)[0|1]""BCM,IC,PEPSSG_TboxNMDestinationAddress:7|8@0+(1,0)[0|255]""BCM,IC,PEPS以上dbc文件数据中,包含CANbus消息的消息名,“T_BOX_404”为消息名。以及,消息名中包括CANbus消息的消息号,为0X404。以上dbc文件数据中,“TboxNMSleepAcknowledge”、“TboxNMSleepIndication”、“TboxNMLimphome”、“TboxNMRing”、“TboxNMAlive”、“TboxNMDestinationAddress”为消息名T_BOX_404对应的信号名。对应于每个信号,信号名后面的数据表示该信号的描述信息,包括解析变量以及换算变量。其中,所述解析变量用于描述信号在总线采集到的帧数据中的起始位(bit),位宽,bit的endian模式,现在通用的有3中模式,Motorla升序,Motorla降序,Intel小端序,分别对应"motolsb_order","motomsb_order","intel_order";根据这三者信息,可以从帧数据中获取到信号的原始数据。所述换算变量,用于描述信息中包括原始数据到物理数据的变换比例和偏移量,原始数据×变换比例+偏移量就是对应的物理数据,经过这样的计算,就可以获取到信号表示的物理数据。以SG_TboxNMSleepAcknowledge:13|1@0+(1,0)[0|1]""BCM,IC,PEPS为例,信号名TboxNMS本文档来自技高网...
一种通过CAN总线消息解析系统、方法及其函数存取方法

【技术保护点】
一种CAN总线消息解析系统,其特征在于,包括:数据接口,用于获取CAN总线消息的帧数据;调用模块,用于根据所获取的总线消息数据帧的前4个字节获取消息号,并调用解析函数模块;解析函数模块,根据所述消息号,加载信号描述符变量模块中所述消息号所对应信号的解析变量,并对所述总线消息数据帧的后8个字节进行解析,获得原始数据,将获得的原始数据保存至信号描述符变量模块;信号描述符变量模块,按照消息中的每个信号,分别存储用于从总线消息数据帧中解析获得该信号原始数据的变量,以及用于存储解析获得的信号的原始数据。

【技术特征摘要】
1.一种CAN总线消息解析系统,其特征在于,包括:数据接口,用于获取CAN总线消息的帧数据;调用模块,用于根据所获取的总线消息数据帧的前4个字节获取消息号,并调用解析函数模块;解析函数模块,根据所述消息号,加载信号描述符变量模块中所述消息号所对应信号的解析变量,并对所述总线消息数据帧的后8个字节进行解析,获得原始数据,将获得的原始数据保存至信号描述符变量模块;信号描述符变量模块,按照消息中的每个信号,分别存储用于从总线消息数据帧中解析获得该信号原始数据的变量,以及用于存储解析获得的信号的原始数据。2.如权利要求1所述的系统,其特征在于,信号描述符变量模块,所述描述符变量中包括第一标识位,用于标识变量中是否保存有原始数据。3.如权利要求1或2所述的系统,其特征在于,所述信号描述符变量模块,还存储将原始数据换算为物理数据的变量;以及,调用物理数据接口获取原始数据;物理数据接口,按照所述变量将原始数据换算为物理数据。4.如权利要求3所述的系统,其特征在于,所述物理数据接口将换算得到的物理数据发送到上层应用。5.如权利要求4所述的系统,其特征在于,所述数据帧数据结构为摩托罗拉升序编码格式motolsb或者摩托罗拉降序编码格式motomsb或者英特尔编码格式intel中的一种。6.一种C...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:云蜂出行智能科技有限公司
类型:发明
国别省市:北京,11

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1