[发明专利]多路CAN报文实时接收的软件实现方法有效
申请号: | 201710457894.0 | 申请日: | 2017-06-16 |
公开(公告)号: | CN107241251B | 公开(公告)日: | 2021-02-26 |
发明(设计)人: | 陈淑娟;陈宝龙;符小军;陈少棠 | 申请(专利权)人: | 龙海特尔福汽车电子研究所有限公司 |
主分类号: | H04L12/40 | 分类号: | H04L12/40 |
代理公司: | 常州佰业腾飞专利代理事务所(普通合伙) 32231 | 代理人: | 王玉平 |
地址: | 363104 福建省漳州*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多路 can 报文 实时 接收 软件 实现 方法 | ||
一种CAN接收方法,使用CAN扩展帧的29为标识符,根据CAN ID的优先级分别创建多个接收缓存,用于接收不同优先级的报文,缓存的大小由实际应用中需要使用到的物理量来决定,每一个缓存数组的下标都与该优先级下的CAN ID一一对应,CAN设置为接收中断,每接收一帧报文,利用CAN ID的优先级和对应关系的公式对缓存的数据进行更新。本发明的技术方案采用接收完一帧CAN报文就及时对存储CAN消息的缓存进行更新,以便能够快速及时的接收CAN消息,同时在接收的过程中根据通讯协议对接收到信号的进行分类处理使得数据结构更加清晰,报文解析起来也更加有条理。
技术领域
本发明属于汽车电子技术领域,具体涉及一种多路CAN报文实时接收的软件实现方法。
背景技术
CAN总线上有多个信号帧,不同的信号帧代表不同的物理含义,每个信号帧有唯一的ID。工程师在进行CAN总线发送接收时,需要根据CAN信号的不同ID对其进行分类以便更好的进行CAN消息的解析提取工作。现有CAN进行接收时往往需要等待全部信息发送完成再对数据进行更新,这就造成了信息更新不及时。同时接收完全部信息后根据各个ID进行分类,若是接收的信息较大又会导致处理复杂而且需要消耗大量的时间。
因此现在需要一种新的CAN接收方法,以便能够快速及时的接收CAN消息并对其进行分类处理。
发明内容
1、要解决的技术问题
为解决现有技术存在的上述缺陷,本发明提供一种CAN接收方法,能够简单快速实时地对多路的CAN消息进行接收并分类。
2、技术方案
为了实现上述的目的,本发明提供了以下技术手段:
一种CAN接收方法,包括以下步骤:
S101:创建存储CAN信号的缓存区,同时创建一个全局变量作为标识位;
S102:利用CAN信号采集设备采集CAN信号;
S103:获取每个CAN信号ID,所述CAN信号为扩展帧,每个CAN信号ID为29位;
S104:获取ID的优先级,依据优先级判断该ID对应的信号帧应存储的缓存区;
S105:根据公式i=(SA-1)*PF_MAX+PF,判断该缓存区中应当进行更新的信息,
其中,i为数组下标,SA为对应ID的源地址,PF为PDU格式,PF_MAX为该ID下的PF个数;
S106:进行数据更新,同时标识位置1。
进一步的,在所述S101中,创建3个缓存区,并依据优先级对缓存区进行分类。
进一步的,每个缓存区的大小根据实际的物理量来设计,同一个优先级的CAN ID中的PF值按照顺序排列,并在计算缓存区的大小时考虑需预留的PF。
进一步的,在所述S102中,采用中断的方式进行CAN信号的接收采集。
进一步的,在所述S106中,采用轮询的方式解析CAN信号,通过标识位是否置1来判断是否有CAN通讯,判断完成后将标识位清零。
3、有益效果:
与现有技术相比,本发明的一种CAN接收方法的有益效果在于:
本发明提供了一种CAN接收方法,采用接收完一帧CAN报文就及时对存储CAN消息的缓存进行更新,以便能够快速及时的接收CAN消息,同时在接收的过程中根据通讯协议对接收到的信号进行分类处理使得数据结构更加清晰,报文解析起来也更加有条理。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙海特尔福汽车电子研究所有限公司,未经龙海特尔福汽车电子研究所有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710457894.0/2.html,转载请声明来源钻瓜专利网。