一种CAN信号解析方法及系统技术方案

技术编号:17011601 阅读:18 留言:0更新日期:2018-01-11 08:20
公开了一种CAN信号解析方法及系统。该方法包括:1)定义需要处理信号的结构体,所述结构体包括信号的起始地址、长度、分辨率、偏移量以及保存地址;2)接收CAN消息,确定CAN消息的ID中需要处理的信号;3)基于所述ID所对应的结构体确定步骤2)中需要处理的信号所对应的起始地址、长度、分辨率、偏移量以及保存地址;4)将CAN消息中包含的CAN数据转换为64位数据;5)基于步骤3)所得到的数据对步骤4)中得到的64位数据进行处理,得到CAN消息包含的信号的实际值。在本发明专利技术的方法和系统中,代码方便维护,具有较高可移植性,降低了生产成本和维护成本,且开发周期短,生产质量高。

【技术实现步骤摘要】
一种CAN信号解析方法及系统
本专利技术涉及汽车电子领域,更具体地,涉及一种CAN信号解析方法及系统。
技术介绍
随着互联网的快速发展,汽车上的ECU数量越来越多,车载CAN网络交互数据量越来越大,需要ECU处理的信号也越来越多。传统的解析车载CAN信号的方法代码量大、执行时间长、维护难度大、效率低,并且没有可移值性,已不能满足现有的大数据量、高频度的交互。因此,有必要开发一种具有可移植性,能够处理大数据量的CAN信号解析方法及系统。公开于本专利技术
技术介绍
部分的信息仅仅旨在加深对本专利技术的一般
技术介绍
的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
技术实现思路
针对现有技术中CANID里的信号数据需要单独解析、单独处理、单独保存的问题,本专利技术提供了一种CAN信号解析方法及系统,能够满足大量CAN信号的高效解析,缩短开发周期并降低了生产成本。根据本专利技术的一方面,提出一种CAN信号解析方法。该方法可以包括:1)定义需要处理信号的结构体,所述结构体包括信号的起始地址、长度、分辨率、偏移量以及保存地址;2)接收CAN消息,确定CAN消息的ID中需要处理的信号;3)基于所述ID所对应的结构体确定步骤2)中需要处理的信号所对应的起始地址、长度、分辨率、偏移量以及保存地址;4)将CAN消息中包含的CAN数据转换为64位数据;5)基于步骤3)所得到的数据对步骤4)中得到的64位数据进行处理,得到CAN消息包含的信号的实际值并保存到相应地址。优选地,当CAN消息的存储格式为Intel格式时,步骤4)将CAN消息中包含的CAN数据转换为64位数据包括:在大端存储模式下,将CAN数据中第1个字节与第8个字节互换、第2个字节与第7个字节互换、第3个字节与第6个字节互换、第4个字节与第5个字节互换;在小端存储模式下,将CAN数据的8个字节数据直接转换为64位数据。优选地,在步骤5)中对步骤4)中得到的64位数据进行处理包括以下子步骤:5.1)将64位数据右移所处理信号的起始地址值;5.2)将64位为1的数据左移所处理信号的长度值,并取反;5.3)将步骤5.1)得到的值和步骤5.2)得到的值进行与操作,得到信号的原始值;5.4)将信号的原始值乘以分辨率,并与偏移量相加,得到信号的实际值。优选地,当CAN消息的存储格式为Motorola格式时,步骤4)将CAN消息中包含的CAN数据转换为64位数据包括:在大端存储模式下,将CAN数据的8个字节数据直接转换为64位数据;在小端存储模式下,将CAN数据中第1个字节与第8个字节互换、第2个字节与第7个字节互换、第3个字节与第6个字节互换、第4个字节与第5个字节互换。优选地,在步骤5)中对步骤4)中得到的64位数据进行处理包括以下子步骤:5.1)将信号的起始地址值除以8取余数,将所得结果乘以2,与56相加后再与所述起始地址值相减;5.2)将64位数据右移子步骤5.1)所得到的值;5.3)将64位为1的数据左移所处理信号的长度值,并取反;5.4)将子步骤5.2)得到的值和子步骤5.3)得到的值进行与操作,得到信号的原始值;5.5)将信号的原始值乘以分辨率,并与偏移量相加,得到信号的实际值。根据本专利技术的另一方面,提出一种CAN信号解析系统。该系统可以包括:CAN总线;CAN信号采集设备,用于采集在CAN总线上传输的消息;处理器,用于执行:1)定义需要处理信号的结构体,所述结构体包括信号的起始地址、长度、分辨率、偏移量以及保存地址;2)确定所述CAN信号采集设备所采集的CAN消息的ID中需要处理的信号;3)基于所述ID所对应的结构体确定步骤2)中需要处理的信号所对应的起始地址、长度、分辨率、偏移量以及保存地址;4)将CAN消息中包含的CAN数据转换为64位数据;5)基于步骤3)所得到的数据对步骤4)中得到的64位数据进行处理,得到CAN消息包含的信号的实际值并保存到相应地址。优选地,当CAN消息的存储格式为Intel格式时,步骤4)将CAN消息中包含的CAN数据转换为64位数据包括:在大端存储模式下,将CAN数据中第1个字节与第8个字节互换、第2个字节与第7个字节互换、第3个字节与第6个字节互换、第4个字节与第5个字节互换;在小端存储模式下,将CAN数据的8个字节数据直接转换为64位数据。优选地,在步骤5)中对步骤4)中得到的64位数据进行处理包括以下子步骤:5.1)将64位数据右移所处理信号的起始地址值;5.2)将64位为1的数据左移所处理信号的长度值,并取反;5.3)将步骤5.1)得到的值和步骤5.2)得到的值进行与操作,得到信号的原始值;5.4)将信号的原始值乘以分辨率,并与偏移量相加,得到信号的实际值。优选地,当CAN消息的存储格式为Motorola格式时,步骤4)将CAN消息中包含的CAN数据转换为64位数据包括:在大端存储模式下,将CAN数据的8个字节数据直接转换为64位数据;在小端存储模式下,将CAN数据中第1个字节与第8个字节互换、第2个字节与第7个字节互换、第3个字节与第6个字节互换、第4个字节与第5个字节互换。优选地,在步骤5)中对步骤4)中得到的64位数据进行处理包括以下子步骤:5.1)将信号的起始地址值除以8取余数,将所得结果乘以2,与56相加后再与所述起始地址值相减;5.2)将64位数据右移子步骤5.1)所得到的值;5.3)将64位为1的数据左移所处理信号的长度值,并取反;5.4)将子步骤5.2)得到的值和子步骤5.3)得到的值进行与操作,得到信号的原始值;5.5)将信号的原始值乘以分辨率,并与偏移量相加,得到信号的实际值。根据本专利技术的CAN信号解析方法及系统可高效便捷地处理大量CAN信号的解析,提高了代码执行效率。在本专利技术的方法和系统中,代码方便维护,具有较高可移植性,降低了生产成本和维护成本,且开发周期短,生产质量高。本专利技术的方法和装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本专利技术的特定原理。附图说明通过结合附图对本专利技术示例性实施例进行更详细的描述,本专利技术的上述以及其它目的、特征和优势将变得更加明显,其中,在本专利技术示例性实施例中,相同的参考标号通常代表相同部件。图1为根据本专利技术的示例性实施方案的CAN信号解析方法的流程图。具体实施方式下面将参照附图更详细地描述本专利技术。虽然附图中显示了本专利技术的优选实施例,然而应该理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本专利技术更加透彻和完整,并且能够将本专利技术的范围完整地传达给本领域的技术人员。本专利技术充分利用C语言的数据类型、数据结构,将所需要的CAN信号配置成相同的数据类型,通过算法运算,得到实际数据。以下参考图1详细描述根据本专利技术示例性实施方案的CAN信号解析方法,其主要包括以下步骤:步骤1:定义需要处理信号的结构体,所述结构体包括信号的起始地址、长度、分辨率、偏移量。本领域技术人员应当理解,结构体也可以包括其他任意适当的信息。通过参照CAN矩阵来定义结构体里的成员,本专利技术中信号结构体类型的成员包括起始地本文档来自技高网...
一种CAN信号解析方法及系统

【技术保护点】
一种CAN信号解析方法,其特征在于,包括:1)定义需要处理信号的结构体,所述结构体包括信号的起始地址、长度、分辨率、偏移量以及保存地址;2)接收CAN消息,确定CAN消息的ID中需要处理的信号;3)基于所述ID所对应的结构体确定步骤2)中需要处理的信号所对应的起始地址、长度、分辨率、偏移量以及保存地址;4)将CAN消息中包含的CAN数据转换为64位数据;5)基于步骤3)所得到的数据对步骤4)中得到的64位数据进行处理,得到CAN消息包含的信号的实际值。

【技术特征摘要】
1.一种CAN信号解析方法,其特征在于,包括:1)定义需要处理信号的结构体,所述结构体包括信号的起始地址、长度、分辨率、偏移量以及保存地址;2)接收CAN消息,确定CAN消息的ID中需要处理的信号;3)基于所述ID所对应的结构体确定步骤2)中需要处理的信号所对应的起始地址、长度、分辨率、偏移量以及保存地址;4)将CAN消息中包含的CAN数据转换为64位数据;5)基于步骤3)所得到的数据对步骤4)中得到的64位数据进行处理,得到CAN消息包含的信号的实际值。2.根据权利要求1所述的CAN信号解析方法,其特征在于,当CAN消息的存储格式为Intel格式时,步骤4)将CAN消息中包含的CAN数据转换为64位数据包括:在大端存储模式下,将CAN数据中第1个字节与第8个字节互换、第2个字节与第7个字节互换、第3个字节与第6个字节互换、第4个字节与第5个字节互换;在小端存储模式下,将CAN数据的8个字节数据直接转换为64位数据。3.根据权利要求2所述的CAN信号解析方法,其特征在于,在步骤5)中对步骤4)中得到的64位数据进行处理包括以下子步骤:5.1)将64位数据右移所处理信号的起始地址值;5.2)将64位为1的数据左移所处理信号的长度,并取反;5.3)将子步骤5.1)得到的值和子步骤5.2)得到的值进行与操作,得到信号的原始值;5.4)将信号的原始值乘以分辨率,并与偏移量相加,得到信号的实际值。4.根据权利要求1所述的CAN信号解析方法,其特征在于,当CAN消息的存储格式为Motorola格式时,步骤4)将CAN消息中包含的CAN数据转换为64位数据包括:在大端存储模式下,将CAN数据的8个字节数据直接转换为64位数据;在小端存储模式下,将CAN数据中第1个字节与第8个字节互换、第2个字节与第7个字节互换、第3个字节与第6个字节互换、第4个字节与第5个字节互换。5.根据权利要求4所述的CAN信号解析方法,其特征在于,在步骤5)中对步骤4)中得到的64位数据进行处理包括以下子步骤:5.1)将信号的起始地址值除以8取余数,将所得结果乘以2,与56相加后再与所述起始地址值相减;5.2)将64位数据右移子步骤5.1)所得到的值;5.3)将64位为1的数据左移所处理信号的长度值,并取反;5.4)将子步骤5.2)得到的值和子步骤5.3)得到的值进行与操作,得到信号的原始值;5.5)将信号的原始值乘以分辨率,并与偏移量相加,得到信号的实际值。6.一种CAN信号解析系统,其特征在于,包括:CAN总线...

【专利技术属性】
技术研发人员:付印鹏
申请(专利权)人:智车优行科技北京有限公司
类型:发明
国别省市:北京,11

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

1