CN107241251A - 多路can报文实时接收的软件实现方法 - Google Patents
多路can报文实时接收的软件实现方法 Download PDFInfo
- Publication number
- CN107241251A CN107241251A CN201710457894.0A CN201710457894A CN107241251A CN 107241251 A CN107241251 A CN 107241251A CN 201710457894 A CN201710457894 A CN 201710457894A CN 107241251 A CN107241251 A CN 107241251A
- Authority
- CN
- China
- Prior art keywords
- signal
- priority
- message
- reseptances
- buffer area
- 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.)
- Granted
Links
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 true CN107241251A (zh) | 2017-10-10 |
CN107241251B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645564A (zh) * | 2017-10-24 | 2018-01-30 | 厦门市福工动力技术有限公司 | 一种基于数据缓存的can报文解析方法及其系统 |
CN108965001A (zh) * | 2018-07-12 | 2018-12-07 | 北京航空航天大学 | 一种车辆报文数据模型的评估方法及装置 |
CN114448744A (zh) * | 2022-01-28 | 2022-05-06 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN114448744B (zh) * | 2022-01-28 | 2024-05-03 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192662A1 (en) * | 2008-01-25 | 2009-07-30 | Qualcomm Incorporated | Method of monitoring canbus information |
CN101559747A (zh) * | 2009-05-27 | 2009-10-21 | 中国汽车技术研究中心 | 实现两路can过滤及转发的多功能汽车中央信息集成系统 |
CN101870278A (zh) * | 2009-05-27 | 2010-10-27 | 中国汽车技术研究中心 | 在中央信息集成系统中实现两路can总线数据转发的方法 |
-
2017
- 2017-06-16 CN CN201710457894.0A patent/CN107241251B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192662A1 (en) * | 2008-01-25 | 2009-07-30 | Qualcomm Incorporated | Method of monitoring canbus information |
CN101559747A (zh) * | 2009-05-27 | 2009-10-21 | 中国汽车技术研究中心 | 实现两路can过滤及转发的多功能汽车中央信息集成系统 |
CN101870278A (zh) * | 2009-05-27 | 2010-10-27 | 中国汽车技术研究中心 | 在中央信息集成系统中实现两路can总线数据转发的方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107645564A (zh) * | 2017-10-24 | 2018-01-30 | 厦门市福工动力技术有限公司 | 一种基于数据缓存的can报文解析方法及其系统 |
CN107645564B (zh) * | 2017-10-24 | 2021-03-23 | 厦门市福工动力技术有限公司 | 一种基于数据缓存的can报文解析方法及其系统 |
CN108965001A (zh) * | 2018-07-12 | 2018-12-07 | 北京航空航天大学 | 一种车辆报文数据模型的评估方法及装置 |
CN108965001B (zh) * | 2018-07-12 | 2020-08-25 | 北京航空航天大学 | 一种车辆报文数据模型的评估方法及装置 |
CN114448744A (zh) * | 2022-01-28 | 2022-05-06 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
CN114448744B (zh) * | 2022-01-28 | 2024-05-03 | 航天科工火箭技术有限公司 | 复用标识号的can数据解析方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107241251B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103036692B (zh) | 针对it支撑网生成网络拓扑的方法及装置 | |
US20010014081A1 (en) | Packet flow control apparatus and a method for controlling the same | |
CN105745870A (zh) | 从用于检测大流量的串行多级过滤器去除头部过滤器以便清除流量以实现延长操作 | |
CN101789949B (zh) | 一种实现负荷分担的方法和路由设备 | |
CN107241251A (zh) | 多路can报文实时接收的软件实现方法 | |
CN101520947B (zh) | 动态交通信息发布的方法及装置 | |
CN104833055A (zh) | 多联机空调系统数据传输的方法和装置 | |
CN102143071B (zh) | 一种网络流量确定方法、装置及网络设备 | |
CN103079207B (zh) | 物理小区标识pci的配置方法和设备 | |
CN101232508B (zh) | 加速多生成树协议网络拓扑收敛的方法及设备 | |
US9584446B2 (en) | Memory buffer management method and system having multiple receive ring buffers | |
US9137158B2 (en) | Communication apparatus and communication method | |
CN103973747A (zh) | 一种获取内容的方法和装置 | |
CN101115001B (zh) | Adsl路由器的主机和pvc动态绑定的方法 | |
CN105243078A (zh) | 一种文件资源的分发方法、系统和装置 | |
CN105656814B (zh) | 一种sdn网络转发系统与方法 | |
CN105681229A (zh) | 扩展端口编号的方法及交换机 | |
CN111740922A (zh) | 数据传输方法、装置、电子设备及介质 | |
CN103929378B (zh) | 跨域数据传输的通信链路分配及跨域数据传输方法和系统 | |
CN105282036A (zh) | 一种路由节点、路由交换方法及系统 | |
CN103595800B (zh) | 一种数据实时分发处理装置及方法 | |
CN103179116A (zh) | 一种万兆协议解析方法及系统 | |
CN104426759A (zh) | 主机路由获取方法、装置及系统 | |
CN103441931B (zh) | 一种报文发送方法及装置 | |
CN111464443B (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 |