CN107241251B - 多路can报文实时接收的软件实现方法 - Google Patents
多路can报文实时接收的软件实现方法 Download PDFInfo
- Publication number
- CN107241251B CN107241251B CN201710457894.0A CN201710457894A CN107241251B CN 107241251 B CN107241251 B CN 107241251B CN 201710457894 A CN201710457894 A CN 201710457894A CN 107241251 B CN107241251 B CN 107241251B
- Authority
- CN
- China
- Prior art keywords
- signal
- priority
- cache
- receiving
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40052—High-speed IEEE 1394 serial bus
- H04L12/40078—Bus configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Abstract
一种CAN接收方法,使用CAN扩展帧的29为标识符,根据CAN ID的优先级分别创建多个接收缓存,用于接收不同优先级的报文,缓存的大小由实际应用中需要使用到的物理量来决定,每一个缓存数组的下标都与该优先级下的CAN ID一一对应,CAN设置为接收中断,每接收一帧报文,利用CAN ID的优先级和对应关系的公式对缓存的数据进行更新。本发明的技术方案采用接收完一帧CAN报文就及时对存储CAN消息的缓存进行更新,以便能够快速及时的接收CAN消息,同时在接收的过程中根据通讯协议对接收到信号的进行分类处理使得数据结构更加清晰,报文解析起来也更加有条理。
Description
技术领域
本发明属于汽车电子技术领域,具体涉及一种多路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消息,同时在接收的过程中根据通讯协议对接收到的信号进行分类处理使得数据结构更加清晰,报文解析起来也更加有条理。
附图说明
图1为本发明实施例公开的CAN接收方法的流程图;
图2为本发明实施例公开的数据存储结构图;
图3为本发明采用的协议数据单元图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本发明保护范围。
一种CAN接收方法,使用CAN扩展帧的29为标识符,根据CAN ID的优先级分别创建多个接收缓存,用于接收不同优先级的报文,缓存的大小由实际应用中需要使用到的物理量来决定,每一个缓存数组的下标都与该优先级下的CAN ID一一对应,通过以下公式实现:
i=(SA-1)*PF_MAX+PF
其中:i为数组下标,SA为对应ID的源地址,PF为PDU格式,PF_MAX为该ID下的PF个数;
CAN设置为接收中断,每接收一帧报文,利用CAN ID的优先级和对应关系的公式对缓存的数据进行更新。
以下是本发明提供的一种具体的实施例,本实施例中以接收三个不同优先级的CAN信号帧为例进行说明,如图3所示,本发明采用中断的方法进行CAN信息的接收,包括以下步骤:
步骤S101:创建存储CAN消息的缓存,同时创建一个全局变量作为标识位。创建的数据结构具体参考图2,共有3个缓冲区,依据优先级的不同进行分类。每个缓存的大小需要根据实际的物理量来进行设计,需要注意的是同一个优先级的CAN ID中的PF值应该按照顺序排列下来,如有需预留的PF,在计算缓存的大小时应该将其也计算在内。
步骤S102:利用CAN信号采集设备采集CAN信号。这里采用中断的方式进行CAN信号的接收采集。
步骤S103:获取每个CAN信号ID。这里的CAN消息为扩展帧,ID共有29位。
步骤S104:获取ID的优先级,依据优先级判断该信号帧应存储的缓存。ID的优先级由前最高的3位来表示,报文优先级可从最高0(000b)设置到最低7(111b),本实施例中取三个优先级。
步骤S105:根据公式i=(SA-1)*PF_MAX+PF,判断该缓存中应当进行更新的信息。SA为源地址由8个2进制位组成,当CAN线上存在多个不同的设备时可以使用不同的源地址用于区分。PF则可以用来区分同一个设备中不同的物理量,取值范围(0-239)。计算公式也是由SA和PF来进行标识。
步骤S106:数据更新同时标识位置1。更新缓存的同时也需要将标识置1以便确定是否有CAN报文进行更新,解析CAN消息的时候推荐采用轮询的方式进行解析。如需判断是否有CAN通讯则需区判断标识是否置1,判断完成后需将标识重新清零,以便下次的判断。
Claims (5)
1.一种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。
2.如权利要求1所述的一种CAN接收方法,其特征在于,在所述S101中,创建3个缓存区,并依据优先级对缓存区进行分类。
3.如权利要求2所述的一种CAN接收方法,其特征在于,每个缓存区的大小根据实际的物理量来设计,同一个优先级的CAN ID中的PF值按照顺序排列,并在计算缓存区的大小时考虑需预留的PF。
4.如权利要求3所述的一种CAN接收方法,其特征在于,在所述S102中,采用中断的方式进行CAN信号的接收采集。
5.如权利要求4所述的一种CAN接收方法,其特征在于,在所述S106中,采用轮询的方式解析CAN信号,通过标识位是否置1来判断是否有CAN通讯,判断完成后将标识位清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710457894.0A CN107241251B (zh) | 2017-06-16 | 2017-06-16 | 多路can报文实时接收的软件实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710457894.0A CN107241251B (zh) | 2017-06-16 | 2017-06-16 | 多路can报文实时接收的软件实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107241251A CN107241251A (zh) | 2017-10-10 |
CN107241251B true CN107241251B (zh) | 2021-02-26 |
Family
ID=59986993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710457894.0A Active CN107241251B (zh) | 2017-06-16 | 2017-06-16 | 多路can报文实时接收的软件实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107241251B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645564B (zh) * | 2017-10-24 | 2021-03-23 | 厦门市福工动力技术有限公司 | 一种基于数据缓存的can报文解析方法及其系统 |
CN108965001B (zh) * | 2018-07-12 | 2020-08-25 | 北京航空航天大学 | 一种车辆报文数据模型的评估方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101559747A (zh) * | 2009-05-27 | 2009-10-21 | 中国汽车技术研究中心 | 实现两路can过滤及转发的多功能汽车中央信息集成系统 |
CN101870278A (zh) * | 2009-05-27 | 2010-10-27 | 中国汽车技术研究中心 | 在中央信息集成系统中实现两路can总线数据转发的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8751098B2 (en) * | 2008-01-25 | 2014-06-10 | Omnitracs, Llc | Method of monitoring CANbus information |
-
2017
- 2017-06-16 CN CN201710457894.0A patent/CN107241251B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101559747A (zh) * | 2009-05-27 | 2009-10-21 | 中国汽车技术研究中心 | 实现两路can过滤及转发的多功能汽车中央信息集成系统 |
CN101870278A (zh) * | 2009-05-27 | 2010-10-27 | 中国汽车技术研究中心 | 在中央信息集成系统中实现两路can总线数据转发的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107241251A (zh) | 2017-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104217592B (zh) | 人流量统计方法、设备及系统 | |
CN103605349B (zh) | 一种基于CAN‑bus的远程数据实时采集及分析统计系统及方法 | |
CN108415975B (zh) | 基于bdch-dbscan的出租车载客热点识别方法 | |
CN107786440B (zh) | 一种数据报文转发的方法及装置 | |
CN106713662B (zh) | 定位系统性能的优化方法、装置及移动终端 | |
CN107241251B (zh) | 多路can报文实时接收的软件实现方法 | |
CN111078818B (zh) | 地址分析方法、装置、电子设备及存储介质 | |
CN106027693B (zh) | 基于ip地址的定位方法及装置 | |
CN107564292B (zh) | 基于站点WiFi和车载移动终端的乘客等车时间规律估计方法 | |
CN110493363B (zh) | 一种智能手机随机mac地址的辨别系统及方法 | |
CN102724291A (zh) | 一种车联网数据采集方法、单元和系统 | |
CN106211049A (zh) | 基于wifi的地铁拥挤提示方法及系统 | |
CN110377687A (zh) | 用户出行方式判别方法、装置和服务器 | |
CN107545318B (zh) | 公交线路优先级确定、公交换乘线路排序方法及装置 | |
CN109688070A (zh) | 一种数据调度方法、网络设备及转发单元 | |
CN110460962A (zh) | 轨道交通用户识别方法和装置 | |
CN108093430A (zh) | 一种适用于高速移动环境下的无线网络探测方法 | |
CN106383693A (zh) | 一种智能集中器及以测量点为标签的数据处理方法 | |
CN110556014B (zh) | 智能公交调度平台系统 | |
CN113505644B (zh) | 一种车厢客流检测告警系统及其方法 | |
CN103888364A (zh) | 报文分流方法及设备 | |
CN108540992A (zh) | 一种用于车载设备在线实时监测的系统 | |
CN105704784B (zh) | 无线接入的处理方法和装置 | |
CN109005504A (zh) | 无线信息的定位方法、装置、终端设备及存储介质 | |
CN110933690B (zh) | 一种移动终端室分判别方法、装置、服务器和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |