一种CAN报文防丢失方法、装置、系统、芯片及介质与流程

未命名 09-22 阅读:59 评论:0

一种can报文防丢失方法、装置、系统、芯片及介质
技术领域
1.本技术涉及can通信技术领域,特别是涉及一种can报文防丢失方法、装置、系统、芯片及介质。


背景技术:

2.can(controller area network,控制器局域网总线)是一种用于实时应用的串行通讯协议总线,是应用最广泛的现场总线之一,can协议常用于汽车中各种不同元件之间的通信。
3.相关技术中,can控制器关联的缓存是预先配置的,其大小是固定的。并且,在具有can接口的电子产品中,处理器的can接口只有一路,通过该接口仅连接单个can控制器。然而在使用过程中,比如在汽车上的特定场景下,短时间内会产生大量的can报文,需要can控制器缓存31帧报文,而在固定缓存和单路can接口的限制下,硬件资源最多只可以接受13帧报文,很容易丢失数据包,无法确保can报文能够全部被及时处理,严重影响总线的通信效率。


技术实现要素:

4.为了解决现有技术中存在的至少一个问题,本技术的目的在于提供一种can报文防丢失方法、装置、系统、芯片及介质,能够通过多个微控制单元内的多个can控制器分别配置can接口连接收发器,并配置有相应的通信缓存,实现协同接收报文,确保了can报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量can报文的应用场景,效果尤为显著。
5.为实现上述目的,本技术提供的can报文防丢失方法,应用于通过收发器连接can总线的微控制单元;所述微控制单元中包括至少两个can控制器,所述至少两个can控制器包括一个第一can控制器和至少一个第二can控制器;每一个can控制器连接所述收发器,并配置有相应的通信缓存;所述方法包括:获取所述第一can控制器的缓存可用空间量和第一can报文量;其中,所述第一can报文量为所述收发器当前接收到的can报文的报文量;响应于所述第一can控制器的缓存可用空间量大于等于所述第一can报文量,控制所述第一can控制器接收并处理所述can报文;响应于所述第一can控制器的缓存可用空间量小于所述第一can报文量,根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的至少两个报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文。
6.进一步地,所述根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的至少两个报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文的步骤,包括:
获取所述微控制单元中的can控制器个数;根据所述can报文的报文编号对所述can控制器个数取余数,确定所述can报文的第一分组识别号;所述第一分组识别号与所述微控制单元中的can控制器一一对应;控制所述can控制器根据对应的第一分组识别号,接收并处理对应的can报文。
7.更进一步地,所述控制所述can控制器根据对应的第一分组识别号,接收并处理对应的can报文的步骤,包括:获取每个can控制器的缓存可用空间量和相应的第二报文量;其中所述第二报文量为所述can控制器对应第一分组识别号的can报文的报文量;响应于所述can控制器的缓存可用空间量大于等于所述相应的第二报文量,确定所述can控制器为可处理can控制器,控制所述可处理can控制器接收并处理对应第一分组识别号的can报文。
8.更进一步地,所述方法还包括:响应于所述can控制器的缓存可用空间量小于所述相应的第二报文量,确定所述can控制器为不可处理can控制器,控制所述可处理can控制器接收并处理所述不可处理can控制器对应的can报文。
9.更进一步地,所述控制所述可处理can控制器接收并处理所述不可处理can控制器对应的can报文的步骤,包括:获取所述微控制单元中的可处理can控制器个数;根据所述不可处理can控制器对应的can报文的报文编号对所述可处理can控制器个数取余数,确定所述不可处理can控制器对应的can报文的第二分组识别号;所述第二分组识别号与所述微控制单元中的可处理can控制器一一对应;控制所述可处理can控制器根据对应的第二分组识别号,接收并处理相应的can报文。
10.进一步地,所述根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的至少两个报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文的步骤,包括:获取每个can控制器的缓存可用空间量和相应的第三can报文量;其中,所述can控制器被配置有相应的报文编号区间,所述第三can报文量为所述can报文中匹配相应报文编号区间的can报文的报文量;响应于所述相应的缓存可用空间量大于等于所述相应的第三can报文量,确定所述can控制器为可处理can控制器,控制所述可处理can控制器接收并处理对应报文编号区间的can报文;响应于所述相应的缓存可用空间量小于所述相应的第三can报文量,确定所述can控制器为不可处理can控制器,控制所述可处理can控制器接收并处理所述不可处理can控制器对应报文编号区间的can报文。
11.更进一步地,控制所述可处理can控制器接收并处理所述不可处理can控制器对应报文编号区间的can报文的步骤,包括:获取所述微控制单元中的可处理can控制器个数;根据所述不可处理can控制器对应的can报文的报文编号对所述可处理can控制器
个数取余数,确定所述不可处理can控制器对应的所述can报文的第三分组识别号;所述第三分组识别号与所述微控制单元中的可处理can控制器一一对应;控制所述可处理can控制器根据对应的第三分组识别号,接收并处理对应的can报文。
12.为实现上述目的,本技术还提供的can报文防丢失装置,应用于通过收发器连接can总线的微控制单元;所述微控制单元中包括至少两个can控制器,所述至少两个can控制器包括一个第一can控制器和至少一个第二can控制器;每一个can控制器连接所述收发器,并配置有相应的通信缓存;所述装置包括:获取模块,用于获取所述第一can控制器的缓存可用空间量,和,第一can报文量;其中,所述第一can报文量为所述收发器当前接收到的can报文的报文量;控制模块,响应于所述第一can控制器的缓存可用空间量大于等于所述第一can报文量,控制所述第一can控制器接收并处理所述can报文;所述控制模块还用于,响应于所述第一can控制器的缓存可用空间量小于所述第一can报文量,根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文。
13.为实现上述目的,本技术还提供的can报文防丢失系统,包括:收发器,连接can总线;微控制单元,通过所述收发器连接所述can总线;受控单元,连接所述can总线,并受所述微控制单元控制;和,如上所述的can报文防丢失装置,用于防止所述收发器向所述微控制单元发送的can报文丢失。
14.为实现上述目的,本技术还提供的微控制器芯片,包括:存储器和处理器,所述存储器中存储有计算机指令;所述处理器被配置为运行所述指令以执行如上所述的can报文防丢失方法。
15.为实现上述目的,本技术提供的一种计算机可读存储介质,其上存储有计算机指令,当计算机指令运行时执行如上所述的can报文防丢失方法的步骤。
16.本技术的一种can报文防丢失方法、装置、系统、芯片及介质,通过获取第一can控制器的缓存可用空间量和第一can报文量;并响应于第一can控制器的缓存可用空间量大于等于第一can报文量,控制第一can控制器接收并处理can报文;以及响应于第一can控制器的缓存可用空间量小于第一can报文量,根据报文编号,将can报文分为与至少两个can控制器一一对应的至少两个报文组,控制至少两个can控制器接收并处理相应报文组中的can报文。由此,能够通过多个微控制单元内的多个can控制器分别配置can接口连接收发器,并配置有相应的通信缓存,实现协同接收报文,确保了can报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量can报文的应用场景,效果尤为显著。
17.本技术的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。
附图说明
18.附图用来提供对本技术的进一步理解,并且构成说明书的一部分,并与本技术的实施例一起,用于解释本技术,并不构成对本技术的限制。在附图中:图1为根据本技术实施例的can报文防丢失系统的结构框图;图2为根据本技术实施例的can报文防丢失方法流程图;图3为根据本技术另一实施例的can报文防丢失方法流程图;图4为根据本技术又一实施例的can报文防丢失方法流程图;图5为根据本技术又一实施例的can报文防丢失方法流程图;图6为本技术实施例的can报文防丢失装置的结构框图;图7为根据本技术实施例的微控制器芯片的结构框图。
具体实施方式
19.下面将参照附图更详细地描述本技术的实施例。虽然附图中显示了本技术的某些实施例,然而应当理解的是,本技术可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本技术。应当理解的是,本技术的附图及实施例仅用于示例性作用,并非用于限制本技术的保护范围。
20.应当理解,本技术的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本技术的范围在此方面不受限制。
21.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分的基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
22.需要注意,本技术中提及的“第一”、“第二”等概念仅用于对不同的装置、模块、单元、数据或位置进行区分,并非用于限定这些装置、模块、单元、数据或位置所执行的功能的顺序或者相互依存关系。
23.需要注意,本技术中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
24.下面,将参考附图详细地说明本技术的实施例。
25.首先需要说明的是,如图1所示,本技术提供的can报文防丢失方法,应用于can报文防丢失系统10。在can报文防丢失系统10中,通过收发器(transceiver)12连接can总线的微控制单元(microcontroller unit,mcu)11。微控制单元11中包括至少两个can控制器(controller),该至少两个can控制器包括一个第一can控制器111和至少一个第二can控制器112。每一个can控制器配置有相应的can接口,以分别连接收发器12,且,每一个can控制器配置有相应的通信缓存113。
26.在具体示例中,收发器12可以是帧报文中数据段波特率可变的can收发器(canfd transceiver)。
27.相比于第二can控制器112,第一can控制器111可以具有较佳的功能性,该功能性
可以包括缓存大小、传输速率功能、接口功能中的至少一个。
28.mcu处理器中设置的can控制器,用于处理can总线上发来的数据。
29.can控制器配置的缓存113,可以是mailbox缓存,用以存储can报文,并根据报文标记,发送给系统内对应单元。mailbox是用于不同处理单元之间进行通信和数据交换的机制或数据结构,其可以用于在不同的处理器、核心或硬件模块之间(例如在多核处理器、系统级芯片或多个独立的功能模块之间)传递消息、触发事件以及共享数据。
30.图2为根据本技术实施例的can报文防丢失方法流程图,下面将参考图2,对本技术的can报文防丢失方法进行详细描述。
31.在步骤201,获取第一can控制器的缓存可用空间量和第一can报文量。
32.其中,第一can报文量,为收发器当前接收到的can报文的报文量。第一can控制器的缓存可用空间量,等于第一can控制器的缓存空间量减去缓存占用量。
33.在步骤202,响应于第一can控制器的缓存可用空间量大于等于第一can报文量,控制第一can控制器接收并处理can报文。
34.也就是说,当前第一can控制器的缓存可用空间足够存储收发器接收到的can报文时,直接通过第一can控制器接收并处理can报文。
35.在步骤203,响应于第一can控制器的缓存可用空间量小于第一can报文量,根据报文编号,将can报文分为与至少两个can控制器一一对应的至少两个报文组,控制至少两个can控制器接收并处理相应报文组中的can报文。
36.也就是说,当前第一can控制器的缓存可用空间不足以存储收发器接收到的can报文时,若微控制单元中的第一can控制器和第二can控制器的总个数为n个,则根据报文编号,将收发器当前接收到的can报文分为n个报文组,n个报文组与n个can控制器一一对应设置,并控制n个can控制器接收及处理相应报文组中的can报文。
37.根据本技术实施例的can报文防丢失方法,通过获取第一can控制器的缓存可用空间量和第一can报文量;并响应于第一can控制器的缓存可用空间量大于等于第一can报文量,控制第一can控制器接收并处理can报文;以及响应于第一can控制器的缓存可用空间量小于第一can报文量,根据报文编号,将can报文分为与至少两个can控制器一一对应的至少两个报文组,控制至少两个can控制器接收并处理相应报文组中的can报文。由此,能够通过多个微控制单元内的多个can控制器分别配置can接口连接收发器,并配置有相应的通信缓存,实现协同接收报文,确保了can报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量can报文的应用场景,效果尤为显著。
38.作为一种实施例,如图3所示,根据报文编号,将can报文分为与至少两个can控制器一一对应的至少两个报文组,控制至少两个can控制器接收并处理相应报文组中的can报文的步骤,包括以下子步骤:步骤301,获取微控制单元中的can控制器个数。
39.步骤302,根据can报文的报文编号对can控制器个数取余数,确定can报文的第一分组识别号;第一分组识别号与微控制单元中的can控制器一一对应。
40.步骤303,控制can控制器根据对应的第一分组识别号,接收并处理对应的can报文。
41.在具体示例中,微控制单元中包括3个can控制器。can报文的第一分组识别号n1=
id1%3,其中,id1为收发器当前接收到的can报文的报文编号,第一分组识别号n1为0、1或2。3个can控制器分别对应接收n1为0、1和2的第一分组中的can报文。
42.进一步地,步骤303,包括以下子步骤:步骤3031,获取每个can控制器的缓存可用空间量和相应的第二报文量。
43.其中,第二报文量为can控制器对应第一分组识别号的can报文的报文量。
44.步骤3032,响应于can控制器的缓存可用空间量大于等于相应的第二报文量,确定can控制器为可处理can控制器,控制可处理can控制器接收并处理对应第一分组识别号的can报文。
45.更进一步地,该方法还包括:步骤3033,响应于can控制器的缓存可用空间量小于相应的第二报文量,确定can控制器为不可处理can控制器,控制可处理can控制器接收并处理不可处理can控制器对应的can报文。
46.也就是说,在步骤303中,为避免can控制器接收并处理对应报文组中的can报文时,发生缓存可用空间量不足的情况,可进行进一步的can报文防丢失策略。
47.具体地,在can控制器的缓存足以接收对应第一分组识别号的can报文的第二报文量时,即该can控制器为可处理can控制器,此时控制该可处理can控制器接收对应的can报文。相反,在can控制器的缓存不足以接收对应第一分组识别号的can报文的第二报文量时,即该can控制器为不可处理can控制器,此时控制该不可处理can控制器不接收其对应的can报文,而是由可处理can控制器接收并处理。
48.更进一步地,如图4所示,控制可处理can控制器接收并处理不可处理can控制器对应的can报文的步骤,包括:步骤401,获取微控制单元中的可处理can控制器个数。
49.步骤402,根据不可处理can控制器对应的can报文的报文编号对可处理can控制器个数取余数,确定不可处理can控制器对应的can报文的第二分组识别号;第二分组识别号与微控制单元中的可处理can控制器一一对应。
50.步骤403,控制可处理can控制器根据对应的第二分组识别号,接收并处理相应的can报文。
51.例如,在具体示例中,微控制单元中包括2个可处理can控制器和1个不可处理can控制器。对该不可处理can控制器对应的第一分组的报文,确定第二分组识别号n2=id2%2,其中,id2为收发器当前接收到的can报文的报文编号,第二分组识别号n2为0或1。2个可处理can控制器分别对应接收n2为0和1的第二分组中的can报文。
52.作为另一种实施例,如图5所示,根据报文编号,将can报文分为与至少两个can控制器一一对应的至少两个报文组,控制至少两个can控制器接收并处理相应报文组中的can报文的步骤,包括:步骤501,获取每个can控制器的缓存可用空间量和相应的第三can报文量。
53.其中,can控制器被配置有相应的报文编号区间,第三can报文量为can报文中匹配相应报文编号区间的can报文的报文量。
54.步骤502,响应于相应的缓存可用空间量大于等于相应的第三can报文量,确定can控制器为可处理can控制器,控制可处理can控制器接收并处理对应报文编号区间的can报
文。
55.步骤503,响应于相应的缓存可用空间量小于相应的第三can报文量,确定can控制器为不可处理can控制器,控制可处理can控制器接收并处理不可处理can控制器对应报文编号区间的can报文。
56.也就是说,当前第一can控制器的缓存不足以存储收发器接收到的can报文时,每个can控制器通过各自的报文编号区间处理相应的报文编号的报文。即,以报文编号区间对can报文进行分组,形成每个can控制器对应的第三报文量。在can控制器的缓存足以接收对应第三报文量时,确定该can控制器为可处理can控制器,并控制可处理can控制器接收及处理对应报文编号区间的can报文。在can控制器的缓存不足以接收对应第三报文量时,确定该can控制器为不可处理can控制器,并控制可处理can控制器接收及处理不可处理can控制器所对应区间的can报文。
57.进一步地,控制可处理can控制器接收并处理不可处理can控制器对应报文编号区间的can报文的步骤,可以包括以下步骤:步骤5031,获取微控制单元中的可处理can控制器个数。
58.步骤5032,根据不可处理can控制器对应的can报文的报文编号对可处理can控制器个数取余数,确定不可处理can控制器对应的can报文的第三分组识别号;第三分组识别号与微控制单元中的可处理can控制器一一对应。
59.步骤5033,控制可处理can控制器根据对应的第三分组识别号,接收并处理对应的can报文。
60.综上所述,根据本技术实施例的can报文防丢失方法,通过获取第一can控制器的缓存可用空间量和第一can报文量;并响应于第一can控制器的缓存可用空间量大于等于第一can报文量,控制第一can控制器接收并处理can报文;以及响应于第一can控制器的缓存可用空间量小于第一can报文量,根据报文编号,将can报文分为与至少两个can控制器一一对应的至少两个报文组,控制至少两个can控制器接收并处理相应报文组中的can报文。由此,能够通过多个微控制单元内的多个can控制器分别配置can接口连接收发器,并配置有相应的通信缓存,实现协同接收报文,确保了can报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量can报文的应用场景,效果尤为显著。
61.图6为本技术实施例的can报文防丢失装置的结构框图。该can报文防丢失装置60,应用于通过收发器连接can总线的微控制单元;微控制单元中包括至少两个can控制器,至少两个can控制器包括一个第一can控制器和至少一个第二can控制器;每一个can控制器连接收发器,并配置有相应的通信缓存。参考图6所示,can报文防丢失装置60,包括获取模块61和控制模块62。
62.获取模块61,用于获取第一can控制器的缓存可用空间量,和,第一can报文量;其中,第一can报文量为收发器当前接收到的can报文的报文量。
63.控制模块62,响应于第一can控制器的缓存可用空间量大于等于第一can报文量,控制第一can控制器接收并处理can报文。控制模块62还用于,响应于第一can控制器的缓存可用空间量小于第一can报文量,根据报文编号,将can报文分为与至少两个can控制器一一对应的报文组,控制至少两个can控制器接收并处理相应报文组中的can报文。
64.本技术实施例中,控制模块62具体用于:响应于第一can控制器的缓存可用空间量小于第一can报文量,获取微控制单元中的can控制器个数;根据can报文的报文编号对can控制器个数取余数,确定can报文的第一分组识别号;第一分组识别号与微控制单元中的can控制器一一对应;控制can控制器根据对应的第一分组识别号,接收并处理对应的can报文。
65.进一步地,控制模块62具体用于:获取每个can控制器的缓存可用空间量和相应的第二报文量;其中第二报文量为can控制器对应第一分组识别号的can报文的报文量;响应于can控制器的缓存可用空间量大于等于相应的第二报文量,确定can控制器为可处理can控制器,控制可处理can控制器接收并处理对应第一分组识别号的can报文。
66.进一步地,控制模块62还具体用于:响应于can控制器的缓存可用空间量小于相应的第二报文量,确定can控制器为不可处理can控制器,控制可处理can控制器接收并处理不可处理can控制器对应的can报文。
67.进一步地,控制模块62具体用于:获取微控制单元中的可处理can控制器个数;根据不可处理can控制器对应的can报文的报文编号对可处理can控制器个数取余数,确定不可处理can控制器对应的can报文的第二分组识别号;第二分组识别号与微控制单元中的可处理can控制器一一对应;控制可处理can控制器根据对应的第二分组识别号,接收并处理相应的can报文。
68.本技术实施例中,控制模块62具体用于:响应于第一can控制器的缓存可用空间量小于第一can报文量,获取每个can控制器的缓存可用空间量和相应的第三can报文量;其中,can控制器被配置有相应的报文编号区间,第三can报文量为can报文中匹配相应报文编号区间的can报文的报文量;响应于相应的缓存可用空间量大于等于相应的第三can报文量,确定can控制器为可处理can控制器,控制可处理can控制器接收并处理对应报文编号区间的can报文;响应于相应的缓存可用空间量小于相应的第三can报文量,确定can控制器为不可处理can控制器,控制可处理can控制器接收并处理不可处理can控制器对应报文编号区间的can报文。
69.进一步地,控制模块62具体用于:获取微控制单元中的可处理can控制器个数;根据不可处理can控制器对应的can报文的报文编号对可处理can控制器个数取余数,确定不可处理can控制器对应的can报文的第三分组识别号;第三分组识别号与微控制单元中的可处理can控制器一一对应;控制可处理can控制器根据对应的第三分组识别号,接收并处理对应的can报文。
70.需要说明的是,上述实施例中对can报文防丢失方法的解释说明也适用于上述实施例中的can报文防丢失装置,此处不再赘述。
71.图1为根据本技术实施例的can报文防丢失系统的结构框图。参考图1所示,can报文防丢失系统10,包括微控制单元11、收发器12、受控单元13和上述实施例的can报文防丢失装置(图中未示出)。
72.其中,收发器12,连接can总线。微控制单元11,通过收发器连接can总线。受控单元13,连接can总线,并受微控制单元控制,具体可以是电机、温度传感器、光电开关、接近开关等。can报文防丢失装置,用于防止收发器向微控制单元发送的can报文丢失。
73.在具体示例中,汽车电子领域中的can总线上,多个ecu可以共享总线,并且每个
ecu都有可能发送消息。为了避免数据冲突可以采用polling(查询)通信方式,来协调ecu之间的访问,确定消息的传输优先级和访问权。在can总线的polling机制中,每个ecu按照一定的顺序依次轮流发送消息。当一个ecu要发送消息时,会等待总线空闲,并依据预设的优先级顺序,依次轮流获取总线的访问权。只有在获取到访问权后,ecu才能发送其消息。其他ecu会监听总线上的消息。如果检测到有较高优先级的消息,则会停止发送自己的消息,等待总线空闲后再次获取访问权。通过polling机制,can总线中的消息发送和接收可以有序进行,避免了数据冲突,确保了消息的传输和处理的有效性和可靠性。
74.图7为根据本技术实施例的微控制器芯片的结构框图。参考图7所示,微控制器芯片70,包括存储器71和处理器72,存储器71中存储有计算机指令;处理器72被配置为运行指令以执行上述实施例的can报文防丢失方法。
75.本技术一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的系统中所包含的;也可以是单独存在,而未装配入该系统中。上述计算机可读存储介质承载有一个或者多个计算机指令,当上述一个或者多个计算机指令被执行时,实现上述实施例的can报文防丢失方法的步骤。
76.本技术的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件,或者上述的任意合适的组合。在本技术中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
77.本领域普通技术人员可以理解:以上仅为本技术的优选实施例而已,并不用于限制本技术,尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种can报文防丢失方法,其特征在于,应用于通过收发器连接can总线的微控制单元;所述微控制单元中包括至少两个can控制器,所述至少两个can控制器包括一个第一can控制器和至少一个第二can控制器;每一个can控制器连接所述收发器,并配置有相应的通信缓存;所述方法包括:获取所述第一can控制器的缓存可用空间量和第一can报文量;其中,所述第一can报文量为所述收发器当前接收到的can报文的报文量;响应于所述第一can控制器的缓存可用空间量大于等于所述第一can报文量,控制所述第一can控制器接收并处理所述can报文;响应于所述第一can控制器的缓存可用空间量小于所述第一can报文量,根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的至少两个报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文。2.根据权利要求1所述的can报文防丢失方法,其特征在于,所述根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的至少两个报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文的步骤,包括:获取所述微控制单元中的can控制器个数;根据所述can报文的报文编号对所述can控制器个数取余数,确定所述can报文的第一分组识别号;所述第一分组识别号与所述微控制单元中的can控制器一一对应;控制所述can控制器根据对应的第一分组识别号,接收并处理对应的can报文。3.根据权利要求2所述的can报文防丢失方法,其特征在于,所述控制所述can控制器根据对应的第一分组识别号,接收并处理对应的can报文的步骤,包括:获取每个can控制器的缓存可用空间量和相应的第二报文量;其中所述第二报文量为所述can控制器对应第一分组识别号的can报文的报文量;响应于所述can控制器的缓存可用空间量大于等于所述相应的第二报文量,确定所述can控制器为可处理can控制器,控制所述可处理can控制器接收并处理对应第一分组识别号的can报文。4.根据权利要求3所述的can报文防丢失方法,其特征在于,所述方法还包括:响应于所述can控制器的缓存可用空间量小于所述相应的第二报文量,确定所述can控制器为不可处理can控制器,控制所述可处理can控制器接收并处理所述不可处理can控制器对应的can报文。5.根据权利要求4所述的can报文防丢失方法,其特征在于,所述控制所述可处理can控制器接收并处理所述不可处理can控制器对应的can报文的步骤,包括:获取所述微控制单元中的可处理can控制器个数;根据所述不可处理can控制器对应的can报文的报文编号对所述可处理can控制器个数取余数,确定所述不可处理can控制器对应的can报文的第二分组识别号;所述第二分组识别号与所述微控制单元中的可处理can控制器一一对应;控制所述可处理can控制器根据对应的第二分组识别号,接收并处理相应的can报文。6.根据权利要求1所述的can报文防丢失方法,其特征在于,所述根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的至少两个报文组,控制所述至少两个
can控制器接收并处理相应报文组中的can报文的步骤,包括:获取每个can控制器的缓存可用空间量和相应的第三can报文量;其中,所述can控制器被配置有相应的报文编号区间,所述第三can报文量为所述can报文中匹配相应报文编号区间的can报文的报文量;响应于所述相应的缓存可用空间量大于等于所述相应的第三can报文量,确定所述can控制器为可处理can控制器,控制所述可处理can控制器接收并处理对应报文编号区间的can报文;响应于所述相应的缓存可用空间量小于所述相应的第三can报文量,确定所述can控制器为不可处理can控制器,控制所述可处理can控制器接收并处理所述不可处理can控制器对应报文编号区间的can报文。7.根据权利要求6所述的can报文防丢失方法,其特征在于,控制所述可处理can控制器接收并处理所述不可处理can控制器对应报文编号区间的can报文的步骤,包括:获取所述微控制单元中的可处理can控制器个数;根据所述不可处理can控制器对应的can报文的报文编号对所述可处理can控制器个数取余数,确定所述不可处理can控制器对应的所述can报文的第三分组识别号;所述第三分组识别号与所述微控制单元中的可处理can控制器一一对应;控制所述可处理can控制器根据对应的第三分组识别号,接收并处理对应的can报文。8.一种can报文防丢失装置,其特征在于,应用于通过收发器连接can总线的微控制单元;所述微控制单元中包括至少两个can控制器,所述至少两个can控制器包括一个第一can控制器和至少一个第二can控制器;每一个can控制器连接所述收发器,并配置有相应的通信缓存;所述装置包括:获取模块,用于获取所述第一can控制器的缓存可用空间量和第一can报文量;其中,所述第一can报文量为所述收发器当前接收到的can报文的报文量;控制模块,响应于所述第一can控制器的缓存可用空间量大于等于所述第一can报文量,控制所述第一can控制器接收并处理所述can报文;所述控制模块还用于,响应于所述第一can控制器的缓存可用空间量小于所述第一can报文量,根据报文编号,将所述can报文分为与所述至少两个can控制器一一对应的报文组,控制所述至少两个can控制器接收并处理相应报文组中的can报文。9.一种can报文防丢失系统,其特征在于,包括:收发器,连接can总线;微控制单元,通过所述收发器连接所述can总线;受控单元,连接所述can总线,并受所述微控制单元控制;和,如权利要求8所述的can报文防丢失装置,用于防止所述收发器向所述微控制单元发送的can报文丢失。10.一种微控制器芯片,其特征在于,包括存储器和处理器,所述存储器中存储有计算机指令;所述处理器被配置为运行所述指令以执行权利要求1-7中任一项所述的can报文防丢失方法。11.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运
行时执行权利要求1至7中任一项所述的can报文防丢失方法的步骤。

技术总结
一种CAN报文防丢失方法、装置、系统、芯片及介质,应用于通过收发器连接CAN总线的微控制单元;微控制单元中包括至少一个第一CAN控制器和至少两个第二CAN控制器;每个CAN控制器连接收发器,并配置有相应的通信缓存。其方法包括:获取第一CAN控制器的缓存可用空间量和第一CAN报文量;若第一CAN控制器的缓存可用空间量大于等于第一CAN报文量,则控制第一CAN控制器接收并处理CAN报文,否则根据报文编号,将CAN报文分为与CAN控制器一一对应的报文组,控制CAN控制器接收并处理相应报文组中的CAN报文。由此确保了CAN报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。率。率。


技术研发人员:王斌
受保护的技术使用者:北京芯驰半导体科技有限公司
技术研发日:2023.08.17
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐