CN112671512B - Can报文的发送方法、控制单元、can节点及其网络 - Google Patents
Can报文的发送方法、控制单元、can节点及其网络 Download PDFInfo
- Publication number
- CN112671512B CN112671512B CN202011601075.7A CN202011601075A CN112671512B CN 112671512 B CN112671512 B CN 112671512B CN 202011601075 A CN202011601075 A CN 202011601075A CN 112671512 B CN112671512 B CN 112671512B
- Authority
- CN
- China
- Prior art keywords
- message
- sending
- sending period
- period
- arbitration
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种CAN报文的发送方法、控制单元、CAN节点及其网络。该方法包括:设定在与当前CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在发送周期范围内的所有质数;采用初始发送周期发送CAN报文,并统计在初始发送周期中CAN报文被仲裁导致延迟的情况;以及在CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与初始发送周期最相近的质数作为新的发送周期,采用该新的发送周期发送CAN报文,并统计在新的发送周期中CAN报文被仲裁导致延迟的情况。本公开可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
Description
技术领域
本公开涉及CAN(Controller Area Network,控制器局域网络) 总线通信领域,特别涉及一种CAN报文的发送方法、控制单元、CAN 节点及其网络。
背景技术
当前,国内外CAN总线的应用越来越广泛,尤其是在汽车和工程机械行业,CAN总线通信在实时性要求高的数据传输场合尤为重要。 CAN总线采用非破坏性总线仲裁技术,例如“载波监测,CSMA/CA (Carrier Sense Multiple Access with Collision Avoid,带有冲突避免的载波侦听多路访问)”的通信模式。这种总线仲裁方式允许总线上的任何一个节点都有机会取得总线的控制权并向外发送数据。如果在同一时刻有2个或2个以上的节点要求发送数据,就会产生总线冲突, CAN总线能够实时检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输,而低优先级的数据被仲裁,等待总线空闲再发送。
在多个节点同时发送数据报文时,仲裁机制保证了高优先级的数据优先传输,会导致低优先级报文实时性得不到保证,总线负载率高时甚至无法发送。因此,为了保证数据实时性,目前行业应用中一般认为总线负载率应不大于30%。虽然CAN总线有仲裁机制,但在仲裁完成前,多个节点同时发送仲裁段数据,信号会叠加,造成幅值变大,信号产生变形,降低通信质量或产生错误。此外,仲裁后低优先级报文等待发送,总线空闲后立即发送,在有多个报文等待发送的情况下会使得该时间段的总线负载率过大,即突发负载率过大,容易造成总线数据某一时段拥堵,下一时段空闲的现象,如图1所示。对于周期型报文,一旦形成该现象,则会持续周期性的出现,对网络和报文实时性影响较大。
发明内容
本公开解决的一个技术问题是:提供一种CAN报文的发送方法,从而可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
根据本公开的一个方面,提供了一种CAN报文的发送方法,包括:设定在与当前CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在所述发送周期范围内的所有质数;采用所述初始发送周期发送所述CAN报文,并统计在所述初始发送周期中所述CAN报文被仲裁导致延迟的情况;以及在所述CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与所述初始发送周期最相近的质数作为新的发送周期,采用所述新的发送周期发送所述CAN报文,并统计在所述新的发送周期中所述CAN报文被仲裁导致延迟的情况。
在一些实施例中,所述CAN报文的发送方法还包括:若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况不再超出所述设定条件,则采用所述新的发送周期作为默认发送周期;若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况依然超出所述设定条件,则继续从所计算得到的所有质数中查找与当前所述新的发送周期最相近的质数作为下一个新的发送周期,并采用所述下一个新的发送周期发送所述 CAN报文。
在一些实施例中,所述CAN报文的发送方法还包括:若采用所计算得到的所有质数作为发送周期发送所述CAN报文均使得所述CAN 报文被仲裁导致延迟的情况超出所述设定条件,则采用所述CAN报文被仲裁导致延迟的概率最低的周期作为所述CAN报文的默认发送周期。
在一些实施例中,所述CAN报文被仲裁导致延迟的情况包括下面两种情况中的至少一个:所述CAN报文在被发送时连续被仲裁导致延迟的次数;和在指定次数的发送所述CAN报文中所述CAN报文被仲裁导致延迟的概率。
在一些实施例中,所述CAN报文被仲裁导致延迟的情况超出设定条件包括:所述CAN报文在被发送时连续被仲裁导致延迟的次数大于或等于第一阈值;或者在指定次数的发送所述CAN报文中所述 CAN报文被仲裁导致延迟的概率大于或等于第二阈值。
在一些实施例中,所述CAN报文被仲裁导致延迟的概率为所述 CAN报文被仲裁导致延迟的数量与计算该概率所采用的所述CAN报文的总数量的比值。
根据本公开的另一个方面,提供了一种控制单元,包括:周期设定模块,用于设定在与当前控制器局域网络CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在所述发送周期范围内的所有质数,以及在所述CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与所述初始发送周期最相近的质数作为新的发送周期;发送模块,用于采用所述初始发送周期或者所述新的发送周期发送所述CAN报文;以及统计模块,用于统计在所述初始发送周期中所述CAN报文被仲裁导致延迟的情况和在所述新的发送周期中所述CAN报文被仲裁导致延迟的情况。
在一些实施例中,所述发送模块还用于若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况不再超出所述设定条件,则采用所述新的发送周期作为默认发送周期;所述周期设定模块还用于若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况依然超出所述设定条件,则继续从所计算得到的所有质数中查找与当前所述新的发送周期最相近的质数作为下一个新的发送周期;所述发送模块还用于采用所述下一个新的发送周期发送所述CAN报文。
在一些实施例中,所述周期设定模块还用于若采用所计算得到的所有质数作为发送周期发送所述CAN报文均使得所述CAN报文被仲裁导致延迟的情况超出所述设定条件,则采用所述CAN报文被仲裁导致延迟的概率最低的周期作为所述CAN报文的默认发送周期。
在一些实施例中,所述CAN报文被仲裁导致延迟的情况包括下面两种情况中的至少一个:所述CAN报文在被发送时连续被仲裁导致延迟的次数;和在指定次数的发送所述CAN报文中所述CAN报文被仲裁导致延迟的概率。
在一些实施例中,所述CAN报文被仲裁导致延迟的情况超出设定条件包括:所述CAN报文在被发送时连续被仲裁导致延迟的次数大于或等于第一阈值;或者在指定次数的发送所述CAN报文中所述 CAN报文被仲裁导致延迟的概率大于或等于第二阈值。
在一些实施例中,所述CAN报文被仲裁导致延迟的概率为所述 CAN报文被仲裁导致延迟的数量与计算该概率所采用的所述CAN报文的总数量的比值。
根据本公开的另一个方面,提供了一种控制单元,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如前所述的方法。
根据本公开的另一个方面,提供了一种CAN节点,包括:如前所述的控制单元。
在一些实施例中,所述CAN节点还包括:数据采集模块、电源模块、CAN控制器模块和CAN收发器模块;其中,所述数据采集模块、所述电源模块和所述CAN控制器模块分别与所述控制单元电连接,所述CAN收发器模块与所述CAN控制器模块电连接。
根据本公开的另一个方面,提供了一种控制器局域网络,包括:多个如前所述的CAN节点。
根据本公开的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如前所述的方法。
在上述方法中,设定在与当前CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在该发送周期范围内的所有质数;采用该初始发送周期发送CAN报文,并统计在该初始发送周期中该CAN报文被仲裁导致延迟的情况;以及在该CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与该初始发送周期最相近的质数作为新的发送周期,采用该新的发送周期发送CAN报文,并统计在该新的发送周期中该CAN报文被仲裁导致延迟的情况。该方法可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出在相关技术中的CAN网络中多个节点的报文同时发送造成的拥堵情况示意图;
图2是示出根据本公开一些实施例的CAN报文的发送方法的流程图;
图3是示出根据本公开另一些实施例的CAN报文的发送方法的流程图;
图4是示出利用根据本公开一些实施例的CAN报文的发送方法发送CAN报文的分布示意图;
图5是示出根据本公开一些实施例的控制单元的结构示意图;
图6是示出根据本公开另一些实施例的控制单元的结构示意图;
图7是示出根据本公开另一些实施例的控制单元的结构示意图;
图8是示出根据本公开一些实施例的CAN节点的结构示意图;
图9是示出根据本公开一些实施例的CAN网络的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图2是示出根据本公开一些实施例的CAN报文的发送方法的流程图。如图2所示,该方法包括步骤S202至S206。该图2所示的方法可以由当前CAN节点的控制单元来执行。
在步骤S202,设定在与当前CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在该发送周期范围内的所有质数。该初始发送周期为初始的默认发送周期。例如,该初始发送周期在该发送周期范围内。
这里,同一个CAN节点发送的CAN报文具有相同的标识(ID),不同的CAN节点发送的CAN报文具有不同的标识。因此,在CAN 网络中,各个CAN节点发送的CAN报文分别具有各自的标识。这样的报文也可以称为CAN-ID报文。这样可以分辨出不同节点所发送的报文。对于某个CAN节点来说,其发送的CAN报文具有相同的标识,也就是说,其发送的报文为同一个标识下的CAN的报文。
另外,质数是指在大于1的自然数中除了1和它本身以外不再有其他因数的自然数。在给定了某个标识的CAN报文的发送周期范围后,就可以计算出在该范围内的所有质数。
在步骤S204,采用初始发送周期发送CAN报文,并统计在初始发送周期中CAN报文被仲裁导致延迟的情况。
例如,CAN报文被仲裁导致延迟的情况可以包括下面两种情况中的至少一个:CAN报文在被发送时连续被仲裁导致延迟的次数;和在指定次数的发送CAN报文中该CAN报文被仲裁导致延迟的概率。
这里,该CAN报文连续被仲裁的情况说明该报文被仲裁较为严重,可以作为优化的依据。
在一些实施例中,CAN报文被仲裁导致延迟的概率为该CAN报文被仲裁导致延迟的数量与计算该概率所采用的该CAN报文的总数量的比值。
例如,可以先确定计算概率时采用的某个ID的CAN报文的总数量,比如10帧。例如该总数量可以在编写代码时确定。CAN节点发送该CAN报文时计数,记录发送数量和被仲裁数量。该ID的CAN 报文被仲裁概率=该ID的CAN报文被仲裁的数量/该ID的CAN报文总数量*100%。在一些实施例中,在计算完成后可以采用滑动窗口算法动态更新报文被仲裁概率,也就是每次有新的一帧报文发出,就删掉最早一帧报文的数据,保持总数数量不变,重新计算概率。当更换报文周期以后则重新计数。
在步骤S206,在CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与初始发送周期最相近的质数作为新的发送周期,采用该新的发送周期发送CAN报文,并统计在该新的发送周期中CAN报文被仲裁导致延迟的情况。
在一些实施例中,CAN报文被仲裁导致延迟的情况超出设定条件包括:该CAN报文在被发送时连续被仲裁导致延迟的次数大于或等于第一阈值;或者在指定次数的发送CAN报文中该CAN报文被仲裁导致延迟的概率大于或等于第二阈值。
例如,该第一阈值的范围可以为5次至10次。例如,该第二阈值的范围可以为30%至50%。当然,本领域技术人员能够理解,这里的第一阈值和第二阈值仅是示例性的,本公开的范围并不仅限于此。该第一阈值和该第二阈值可以根据实际需要来确定。
这里,采用质数作为报文发送周期,可以有效将各报文分时在总线网络上传输,即使某一次出现仲裁,则参与仲裁的各报文由于周期不相同且互质,到各自的下一个周期来临时不会再次同时发送,因此该次参与仲裁的报文下一发送时间互不相同,不会再次出现这几帧报文相互仲裁的情况,只会在这几帧报文周期的公倍数时才出现一次,因此可以有效地将各报文分散开,降低被仲裁的概率。
至此,提供了根据本公开一些实施例的CAN报文的发送方法。该方法包括:设定在与当前CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在该发送周期范围内的所有质数;采用该初始发送周期发送CAN报文,并统计在该初始发送周期中该CAN报文被仲裁导致延迟的情况;以及在该CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与该初始发送周期最相近的质数作为新的发送周期,采用该新的发送周期发送CAN报文,并统计在该新的发送周期中该CAN报文被仲裁导致延迟的情况。该方法可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
在一些实施例中,上述CAN报文的发送方法还可以包括:若在采用新的发送周期发送CAN报文后,该CAN报文被仲裁导致延迟的情况不再超出设定条件,则采用该新的发送周期作为默认发送周期;若在采用该新的发送周期发送CAN报文后,该CAN报文被仲裁导致延迟的情况依然超出设定条件,则继续从所计算得到的所有质数中查找与当前新的发送周期最相近的质数作为下一个新的发送周期,并采用该下一个新的发送周期发送CAN报文。也就是说,当采用新的发送周期后依然超过设定条件,则可以继续动态调整该周期,循环执行该步骤,从而持续优化网络,自动找出最优组合。
例如,在选择质数时,可以先选择大于当前周期的质数作为新的发送周期,如果仍不能满足要求就继续采用更大的质数作为下一个新的发送周期,直至可用的质数用完仍然不能满足要求则再从小于所述当前周期的质数的开始查找,如果采用小于当前周期的质数作为发送周期仍不能满足要求则继续采用更小的质数作为发送周期,直至找到可用的质数。
又例如,在选择质数时,也可以先选择小于当前周期的质数作为新的发送周期,如果仍不能满足要求就继续采用更小的质数作为下一个新的发送周期,直至可用的质数用完仍然不能满足要求则再从大于所述当前周期的质数的开始查找,如果采用大于当前周期的质数作为发送周期仍不能满足要求则继续采用更大的质数作为发送周期,直至找到可用的质数。
在一些实施例中,上述CAN报文的发送方法还可以包括:若采用所计算得到的所有质数作为发送周期发送CAN报文均使得该CAN报文被仲裁导致延迟的情况超出设定条件,则采用该CAN报文被仲裁导致延迟的概率最低的周期作为该CAN报文的默认发送周期。这样可以使得CAN报文被仲裁导致延迟的概率尽可能得低,减少仲裁,提高通信质量和数据实时性。
图3是示出根据本公开另一些实施例的CAN报文的发送方法的流程图。如图3所示,该方法包括步骤S302至S314。
在步骤S302,系统上电后,CAN节点进行初始化,设定在与当前 CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在该发送周期范围内的所有质数。
在步骤S304,采用初始发送周期发送CAN报文,并统计在初始发送周期中CAN报文被仲裁导致延迟的情况。
在步骤S306,判断CAN报文被仲裁导致延迟的情况是否超出设定条件。例如,判断CAN报文在被发送时连续被仲裁导致延迟的次数是否大于或等于第一阈值;或者在指定次数的发送CAN报文中该 CAN报文被仲裁导致延迟的概率是否大于或等于第二阈值。如果是,则过程进入步骤S308;否则过程进入步骤S310,即保持当前周期并设置为默认周期,下次节点上电后默认采用该周期发送该报文。
在步骤S308,从所计算得到的所有质数中查找与当前发送周期最相近的质数作为新的发送周期,采用该新的发送周期发送CAN报文,并统计在该新的发送周期中CAN报文被仲裁导致延迟的情况。
在步骤S310,保持当前发送周期,并将当前发送周期作为默认发送周期。
在步骤S312,判断采用所计算得到的所有质数作为发送周期发送 CAN报文是否均使得CAN报文被仲裁导致延迟的情况超出设定条件。如果是,则过程进入步骤S314,否则过程返回步骤S306。
在步骤S314,采用CAN报文被仲裁导致延迟的概率最低的周期作为CAN报文的发送周期,并设置为默认周期,下次节点上电后默认采用该周期发送该报文。
后续可以重复执行步骤S306至步骤S314,持续动态优化各报文发送周期。
至此,提供了根据本公开另一些实施例的CAN报文的发送方法。在该方法中,每个CAN节点在设计时根据实时性等要求设定各CAN- ID报文的发送周期范围和初始发送周期(例如,单位为ms),根据该发送周期范围计算出在该范围内的所有质数;CAN节点运行时,首先采用初始发送周期发送报文,当需要调整发送周期时,从计算得到的所有质数中查找与当前周期最相近的质数作为新的发送周期;若采用新的周期发送报文后报文被仲裁减少,不再超出设定条件,则采用该周期作为默认发送周期,若CAN报文被仲裁情况仍然超出设定条件,则继续更改发送周期;采用每个周期时节点均统计和记录被仲裁概率,若采用计算得到的所有质数的发送周期均超出设定条件,则采用被仲裁概率最低的周期。网络中所有CAN节点均依照此方法动态调整,从而达到动态优化、减少总线仲裁的目的。
在上述方法中,采用节点自适应方式,节点通过自身数据被仲裁的情况,在设定的发送周期范围内动态调整数据发送周期,能够减少 CAN网络报文仲裁现象的发生,合理分布总线报文发送时间,各时段总线负载率较为平均,有利于保持总线网络稳定,提高报文的实时性,并且不影响事件型报文的正常交互。另外,本公开的方法不影响总线网络原有数据,不需要降低总线负载,各节点根据被仲裁的情况在指定范围内动态调整数据发送周期,提高实时性。
上述方法采用无主方式来实施,这样可以不需要在相关技术中的主节点发出指令数据,有效减少网络数据量,采用本公开的上述方法前后的网络数据不发生变化,不影响网络和节点功能,适用面广;各节点关注自身数据和发送周期,负担小,调整速度快,不影响其他节点。本公开的上述方法也可以不需要降低总线负载,不对新增节点做出限制,通过采用质数周期,能够大大降低报文被仲裁的概率,合理分布总线网络报文传输时间,提高数据实时性,使得网络更加稳定。
图4是示出利用根据本公开一些实施例的CAN报文的发送方法发送CAN报文的分布示意图。
从图4可以看出,通过各CAN节点对本节点数据报文发送周期的动态调整,网络报文在各时段内比较均匀的分布,即使出现仲裁现象也能够动态的调整和优化。
图5是示出根据本公开一些实施例的控制单元的结构示意图。如图5所示,该控制单元包括周期设定模块502、发送模块504和统计模块506。例如,该控制单元为MCU(Microcontroller Unit,微控制单元,又称单片机)。
周期设定模块502用于设定在与当前CAN节点对应的标识下的 CAN报文的发送周期范围和初始发送周期,并计算得到在该发送周期范围内的所有质数,以及在该CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与该初始发送周期最相近的质数作为新的发送周期。
在一些实施例中,CAN报文被仲裁导致延迟的情况包括下面两种情况中的至少一个:CAN报文在被发送时连续被仲裁导致延迟的次数;和在指定次数的发送CAN报文中该CAN报文被仲裁导致延迟的概率。
在一些实施例中,CAN报文被仲裁导致延迟的情况超出设定条件包括:CAN报文在被发送时连续被仲裁导致延迟的次数大于或等于第一阈值;或者在指定次数的发送CAN报文中该CAN报文被仲裁导致延迟的概率大于或等于第二阈值。
在一些实施例中,CAN报文被仲裁导致延迟的概率为CAN报文被仲裁导致延迟的数量与计算该概率所采用的CAN报文的总数量的比值。
发送模块504用于采用初始发送周期或者新的发送周期发送CAN 报文。
统计模块506用于统计在初始发送周期中CAN报文被仲裁导致延迟的情况和在新的发送周期中该CAN报文被仲裁导致延迟的情况。
至此,提供了根据本公开一些实施例的控制单元。在该控制单元中,周期设定模块用于设定在与当前CAN节点对应的标识下的CAN 报文的发送周期范围和初始发送周期,并计算得到在发送周期范围内的所有质数,以及在CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与初始发送周期最相近的质数作为新的发送周期;发送模块用于采用初始发送周期或者新的发送周期发送CAN报文;以及统计模块用于统计在初始发送周期中 CAN报文被仲裁导致延迟的情况和在新的发送周期中CAN报文被仲裁导致延迟的情况。该控制单元可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
在一些实施例中,发送模块504还可以用于若在采用新的发送周期发送CAN报文后,CAN报文被仲裁导致延迟的情况不再超出设定条件,则采用该新的发送周期作为默认发送周期。
在一些实施例中,周期设定模块502还可以用于若在采用新的发送周期发送CAN报文后,CAN报文被仲裁导致延迟的情况依然超出设定条件,则继续从所计算得到的所有质数中查找与当前新的发送周期最相近的质数作为下一个新的发送周期。发送模块504还可以用于采用该下一个新的发送周期发送CAN报文。
在一些实施例中,周期设定模块502还可以用于若采用所计算得到的所有质数作为发送周期发送CAN报文均使得CAN报文被仲裁导致延迟的情况超出设定条件,则采用CAN报文被仲裁导致延迟的概率最低的周期作为CAN报文的默认发送周期。
图6是示出根据本公开另一些实施例的控制单元的结构示意图。该控制单元包括存储器610和处理器620。其中:
存储器610可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图2和/或图3所对应实施例中的指令。
处理器620耦接至存储器610,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器620用于执行存储器中存储的指令,从而可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
在一些实施例中,还可以如图7所示,该控制单元700包括存储器710和处理器720。处理器720通过BUS总线730耦合至存储器 710。该控制单元700还可以通过存储接口740连接至外部存储装置 750以便调用外部数据,还可以通过网络接口760连接至网络或者另外一台计算机系统(未标出),此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,从而可以动态调整发送报文的时机,减少仲裁,提高通信质量和数据实时性。
本公开的实施例还提供了一种CAN节点,该CAN节点包括如前所述的控制单元。
图8是示出根据本公开一些实施例的CAN节点的结构示意图。
如图8所示,该CAN节点除了包括控制单元810,还可以包括数据采集模块820、电源模块830、CAN控制器模块840和CAN收发器模块850。数据采集模块820、电源模块830和CAN控制器模块840 分别与控制单元810电连接。CAN收发器模块850与CAN控制器模块840电连接。
数据采集模块820用于采集数据,并将采集的数据传输到控制单元810。
电源模块830 用于向控制单元810供电。
CAN控制器模块840用于将CAN报文是否被仲裁导致延迟的信息反馈给控制单元810。
CAN收发器模块850用于接收和发送CAN报文。
这里,数据采集模块820、电源模块830、CAN控制器模块840 和CAN收发器模块850可以采用已知的技术来实现。
在一些实施例中,控制单元监控和统计每个CAN-ID报文被仲裁情况的方法为:控制单元将数据写入CAN控制器模块的邮箱(mailbox) 中;CAN控制器模块将数据信号输出至CAN收发器模块;CAN收发器模块负责将数据信号转换CAN电平(即CAN报文)后发出;在发送过程中,CAN控制器模块可以实时掌握数据发送状态,包括发送数据被仲裁、发送成功、发送失败等;控制单元通过读取CAN控制器模块的寄存器数据获得数据发送状态,当数据被仲裁时,CAN控制器模块中相关寄存器的仲裁位被赋值。因此,控制单元通过读取CAN控制器模块的寄存器中仲裁位的值即可判断当前待发送数据帧(即报文) 是否被仲裁,进行监控和统计。
上述CAN节点均包含控制单元(例如MCU)、CAN控制器模块、CAN收发器模块、数据采集模块和电源模块。控制单元可以收集和处理数据,并控制CAN控制器模块和CAN收发器模块完成报文发送过程。控制单元使用CAN-ID(CAN标识)区分不同的报文,并监控和统计每个CAN-ID报文被仲裁的情况,当报文被仲裁情况超出设定条件(例如,报文发送时连续被仲裁的次数超出第一阈值或在指定次数的发送中报文被仲裁的概率超出第二阈值,等等),则动态调整该CAN-ID报文的发送周期。本公开的方案不影响原有网络数据,不增加总线负载,可以有效提高通信实时性和稳定性。
图9是示出根据本公开一些实施例的CAN网络的结构示意图。
如图9所示,该CAN网络包括多个CAN节点1至n,这里n为大于1的正整数。每个CAN节点均为如前所述的CAN节点(例如图 8所示的CAN节点)。
另外,如图9所示,该CAN网络还可以包括第一导线CAN_H 和第二导线CAN_L。该CAN网络还可以包括连接在第一导线CAN_H 与第二导线CAN_L之间的终端电阻91和92。
上述CAN节点基于节点自身数据报文被仲裁情况进行数据发送周期调整。CAN网络在设计时可以设计通信协议,通信协议中列出各 CAN节点发送和接收的报文。本公开的CAN节点对周期发送的报文进行优化,在周期报文被多次仲裁后修改数据发送周期。
上述基于优化策略的整车无主CAN网络(即CAN总线通信系统)包括若干CAN节点,每个CAN节点均采用前面所述的CAN报文的发送方法,根据被仲裁情况对自身发送周期进行动态优化。该 CAN网络为无主网络,每个CAN节点独立工作,没有主从节点之分。每个CAN节点关注自身数据发送周期和报文被仲裁情况,无需关注其它节点,与其它节点的数据交互依据网络通信协议进行,不增加报文,与采用该方法前的网络数据量保持一致,不需要降低总线负载,新增零件时也不需要做特殊处理。通过各CAN节点对自身的优化,达到整车CAN总线通信系统的优化。
在一些实施例中,本公开还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图2和/或图3 所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/ 或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
Claims (17)
1.一种控制器局域网络CAN报文的发送方法,包括:
设定在与当前CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在所述发送周期范围内的所有质数;
采用所述初始发送周期发送所述CAN报文,并统计在所述初始发送周期中所述CAN报文被仲裁导致延迟的情况;以及
在所述CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与所述初始发送周期最相近的质数作为新的发送周期,采用所述新的发送周期发送所述CAN报文,并统计在所述新的发送周期中所述CAN报文被仲裁导致延迟的情况。
2.根据权利要求1所述的CAN报文的发送方法,还包括:
若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况不再超出所述设定条件,则采用所述新的发送周期作为默认发送周期;
若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况依然超出所述设定条件,则继续从所计算得到的所有质数中查找与当前所述新的发送周期最相近的质数作为下一个新的发送周期,并采用所述下一个新的发送周期发送所述CAN报文。
3.根据权利要求2所述的CAN报文的发送方法,还包括:
若采用所计算得到的所有质数作为发送周期发送所述CAN报文均使得所述CAN报文被仲裁导致延迟的情况超出所述设定条件,则采用所述CAN报文被仲裁导致延迟的概率最低的周期作为所述CAN报文的默认发送周期。
4.根据权利要求1所述的CAN报文的发送方法,其中,所述CAN报文被仲裁导致延迟的情况包括下面两种情况中的至少一个:
所述CAN报文在被发送时连续被仲裁导致延迟的次数;和
在指定次数的发送所述CAN报文中所述CAN报文被仲裁导致延迟的概率。
5.根据权利要求4所述的CAN报文的发送方法,其中,所述CAN报文被仲裁导致延迟的情况超出设定条件包括:
所述CAN报文在被发送时连续被仲裁导致延迟的次数大于或等于第一阈值;或者
在指定次数的发送所述CAN报文中所述CAN报文被仲裁导致延迟的概率大于或等于第二阈值。
6.根据权利要求3或4所述的CAN报文的发送方法,其中,
所述CAN报文被仲裁导致延迟的概率为所述CAN报文被仲裁导致延迟的数量与计算该概率所采用的所述CAN报文的总数量的比值。
7.一种控制单元,包括:
周期设定模块,用于设定在与当前控制器局域网络CAN节点对应的标识下的CAN报文的发送周期范围和初始发送周期,并计算得到在所述发送周期范围内的所有质数,以及在所述CAN报文被仲裁导致延迟的情况超出设定条件的情况下,从所计算得到的所有质数中查找与所述初始发送周期最相近的质数作为新的发送周期;
发送模块,用于采用所述初始发送周期或者所述新的发送周期发送所述CAN报文;以及
统计模块,用于统计在所述初始发送周期中所述CAN报文被仲裁导致延迟的情况和在所述新的发送周期中所述CAN报文被仲裁导致延迟的情况。
8.根据权利要求7所述的控制单元,其中,
所述发送模块还用于若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况不再超出所述设定条件,则采用所述新的发送周期作为默认发送周期;
所述周期设定模块还用于若在采用所述新的发送周期发送所述CAN报文后,所述CAN报文被仲裁导致延迟的情况依然超出所述设定条件,则继续从所计算得到的所有质数中查找与当前所述新的发送周期最相近的质数作为下一个新的发送周期;所述发送模块还用于采用所述下一个新的发送周期发送所述CAN报文。
9.根据权利要求8所述的控制单元,其中,
所述周期设定模块还用于若采用所计算得到的所有质数作为发送周期发送所述CAN报文均使得所述CAN报文被仲裁导致延迟的情况超出所述设定条件,则采用所述CAN报文被仲裁导致延迟的概率最低的周期作为所述CAN报文的默认发送周期。
10.根据权利要求7所述的控制单元,其中,所述CAN报文被仲裁导致延迟的情况包括下面两种情况中的至少一个:
所述CAN报文在被发送时连续被仲裁导致延迟的次数;和
在指定次数的发送所述CAN报文中所述CAN报文被仲裁导致延迟的概率。
11.根据权利要求10所述的控制单元,其中,所述CAN报文被仲裁导致延迟的情况超出设定条件包括:
所述CAN报文在被发送时连续被仲裁导致延迟的次数大于或等于第一阈值;或者
在指定次数的发送所述CAN报文中所述CAN报文被仲裁导致延迟的概率大于或等于第二阈值。
12.根据权利要求9或10所述的控制单元,其中,
所述CAN报文被仲裁导致延迟的概率为所述CAN报文被仲裁导致延迟的数量与计算该概率所采用的所述CAN报文的总数量的比值。
13.一种控制单元,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至6任意一项所述的方法。
14.一种控制器局域网络CAN节点,包括:如权利要求7至13任意一项所述的控制单元。
15.根据权利要求14所述的CAN节点,还包括:
数据采集模块、电源模块、CAN控制器模块和CAN收发器模块;
其中,所述数据采集模块、所述电源模块和所述CAN控制器模块分别与所述控制单元电连接,所述CAN收发器模块与所述CAN控制器模块电连接。
16.一种控制器局域网络,包括:多个如权利要求14或15所述的CAN节点。
17.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011601075.7A CN112671512B (zh) | 2020-12-29 | 2020-12-29 | Can报文的发送方法、控制单元、can节点及其网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011601075.7A CN112671512B (zh) | 2020-12-29 | 2020-12-29 | Can报文的发送方法、控制单元、can节点及其网络 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112671512A CN112671512A (zh) | 2021-04-16 |
CN112671512B true CN112671512B (zh) | 2022-06-07 |
Family
ID=75412031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011601075.7A Active CN112671512B (zh) | 2020-12-29 | 2020-12-29 | Can报文的发送方法、控制单元、can节点及其网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112671512B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116094867B (zh) * | 2023-04-10 | 2023-06-16 | 湖南鲸瓴智联信息技术有限公司 | 基于mlvds总线的时间敏感网络控制协议设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092594A (zh) * | 2014-07-22 | 2014-10-08 | 中国第一汽车股份有限公司 | Can报文仲裁影响因素检测系统及其方法 |
CN106453115A (zh) * | 2016-10-18 | 2017-02-22 | 北京汽车研究总院有限公司 | Can 网络报文的传输方法及装置 |
CN107005449A (zh) * | 2014-11-20 | 2017-08-01 | 国立大学法人名古屋大学 | 通信系统和通信装置 |
CN109274564A (zh) * | 2017-07-18 | 2019-01-25 | 比亚迪股份有限公司 | Can总线网络控制方法及can总线网络 |
CN111106987A (zh) * | 2019-11-27 | 2020-05-05 | 珠海广通汽车有限公司 | 一种can报文发送方法、装置、存储介质及电子设备 |
-
2020
- 2020-12-29 CN CN202011601075.7A patent/CN112671512B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092594A (zh) * | 2014-07-22 | 2014-10-08 | 中国第一汽车股份有限公司 | Can报文仲裁影响因素检测系统及其方法 |
CN107005449A (zh) * | 2014-11-20 | 2017-08-01 | 国立大学法人名古屋大学 | 通信系统和通信装置 |
CN106453115A (zh) * | 2016-10-18 | 2017-02-22 | 北京汽车研究总院有限公司 | Can 网络报文的传输方法及装置 |
CN109274564A (zh) * | 2017-07-18 | 2019-01-25 | 比亚迪股份有限公司 | Can总线网络控制方法及can总线网络 |
CN111106987A (zh) * | 2019-11-27 | 2020-05-05 | 珠海广通汽车有限公司 | 一种can报文发送方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112671512A (zh) | 2021-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10051091B2 (en) | Network system for vehicle and data transmission method of heterogeneous communication controllers in the same system | |
US8448035B2 (en) | Communication system adapting for car, communication apparatus adapting for car, and communication method adapting for car | |
CN111404792B (zh) | 数据传输方法及装置 | |
JPS6331245A (ja) | 通信ネットワ−ク | |
US10200290B2 (en) | Station and method for serial data transmission using dynamic reprioritizing of data frames | |
WO2008041271A1 (fr) | Système d'émission/reception, noeud et procédé de communication | |
CN112769714B (zh) | 工程机械及其网络优化方法和装置 | |
US20110238774A1 (en) | Data transmitting and receiving method, data transmitting and receiving system, master device, and slave device | |
US10602530B2 (en) | Access method with access slots and priority resolution | |
EP3599743B1 (en) | Method and device for communicating data frames on a multi-master bus | |
US11368404B2 (en) | Method of releasing resource reservation in network | |
CN112671512B (zh) | Can报文的发送方法、控制单元、can节点及其网络 | |
CN109167737B (zh) | 融合数据缩减与动态优先权队列的can调度方法 | |
CN110391960A (zh) | 总线传输控制装置及方法 | |
CN111106987A (zh) | 一种can报文发送方法、装置、存储介质及电子设备 | |
CN102447621B (zh) | 一种最优链路选择方法和设备 | |
CN109274564B (zh) | Can总线网络控制方法及can总线网络 | |
CN112165420A (zh) | 报文处理方法、报文处理装置、机器人系统及can设备 | |
CN105045224A (zh) | 数据传输的方法和装置 | |
KR101573549B1 (ko) | 이종 프로토콜 간 대용량 데이터 전송을 위한 데이터 전송 시스템 및 그 데이터 전송 방법 | |
CN111131066A (zh) | 一种流量整形方法及装置 | |
Siegfried et al. | Evaluation of protocol for industrial informatics systems | |
CN110958717A (zh) | 中心化无线局域网无竞争随机介质访问控制方法及系统 | |
CN107171921B (zh) | 一种基于rs485网络的实时通信方法 | |
CN107926061A (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 |