CN116781448B - 一种can报文防丢失方法、装置、***、芯片及介质 - Google Patents
一种can报文防丢失方法、装置、***、芯片及介质 Download PDFInfo
- Publication number
- CN116781448B CN116781448B CN202311036255.9A CN202311036255A CN116781448B CN 116781448 B CN116781448 B CN 116781448B CN 202311036255 A CN202311036255 A CN 202311036255A CN 116781448 B CN116781448 B CN 116781448B
- Authority
- CN
- China
- Prior art keywords
- message
- controller
- controllers
- messages
- receive
- 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
- 238000000034 method Methods 0.000 title claims abstract description 109
- 230000002265 prevention Effects 0.000 title claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 72
- 238000004891 communication Methods 0.000 claims abstract description 22
- 230000004044 response Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 5
- CVOFKRWYWCSDMA-UHFFFAOYSA-N 2-chloro-n-(2,6-diethylphenyl)-n-(methoxymethyl)acetamide;2,6-dinitro-n,n-dipropyl-4-(trifluoromethyl)aniline Chemical compound CCC1=CC=CC(CC)=C1N(COC)C(=O)CCl.CCCN(CCC)C1=C([N+]([O-])=O)C=C(C(F)(F)F)C=C1[N+]([O-])=O CVOFKRWYWCSDMA-UHFFFAOYSA-N 0.000 claims 1
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Small-Scale Networks (AREA)
Abstract
一种CAN报文防丢失方法、装置、***、芯片及介质,应用于通过收发器连接CAN总线的微控制单元;微控制单元中包括至少一个第一CAN控制器和至少两个第二CAN控制器;每个CAN控制器连接收发器,并配置有相应的通信缓存。其方法包括:获取第一CAN控制器的缓存可用空间量和第一CAN报文量;若第一CAN控制器的缓存可用空间量大于等于第一CAN报文量,则控制第一CAN控制器接收并处理CAN报文,否则根据报文编号,将CAN报文分为与CAN控制器一一对应的报文组,控制CAN控制器接收并处理相应报文组中的CAN报文。由此确保了CAN报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。
Description
技术领域
本申请涉及CAN通信技术领域,特别是涉及一种CAN报文防丢失方法、装置、***、芯片及介质。
背景技术
CAN(Controller Area Network,控制器局域网总线)是一种用于实时应用的串行通讯协议总线,是应用最广泛的现场总线之一,CAN协议常用于汽车中各种不同元件之间的通信。
相关技术中,CAN控制器关联的缓存是预先配置的,其大小是固定的。并且,在具有CAN接口的电子产品中,处理器的CAN接口只有一路,通过该接口仅连接单个CAN控制器。然而在使用过程中,比如在汽车上的特定场景下,短时间内会产生大量的CAN报文,需要CAN控制器缓存31帧报文,而在固定缓存和单路CAN接口的限制下,硬件资源最多只可以接受13帧报文,很容易丢失数据包,无法确保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报文量;其中,所述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报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量CAN报文的应用场景,效果尤为显著。
本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。
附图说明
附图用来提供对本申请的进一步理解,并且构成说明书的一部分,并与本申请的实施例一起,用于解释本申请,并不构成对本申请的限制。在附图中:
图1为根据本申请实施例的CAN报文防丢失***的结构框图;
图2为根据本申请实施例的CAN报文防丢失方法流程图;
图3为根据本申请另一实施例的CAN报文防丢失方法流程图;
图4为根据本申请又一实施例的CAN报文防丢失方法流程图;
图5为根据本申请又一实施例的CAN报文防丢失方法流程图;
图6为本申请实施例的CAN报文防丢失装置的结构框图;
图7为根据本申请实施例的微控制器芯片的结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分的基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块、单元、数据或位置进行区分,并非用于限定这些装置、模块、单元、数据或位置所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。“多个”应理解为两个或以上。
下面,将参考附图详细地说明本申请的实施例。
首先需要说明的是,如图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。
在具体示例中,收发器12可以是帧报文中数据段波特率可变的CAN收发器(CANFDTransceiver)。
相比于第二CAN控制器112,第一CAN控制器111可以具有较佳的功能性,该功能性可以包括缓存大小、传输速率功能、接口功能中的至少一个。
MCU处理器中设置的CAN控制器,用于处理CAN总线上发来的数据。
CAN控制器配置的缓存113,可以是mailbox缓存,用以存储CAN报文,并根据报文标记,发送给***内对应单元。Mailbox是用于不同处理单元之间进行通信和数据交换的机制或数据结构,其可以用于在不同的处理器、核心或硬件模块之间(例如在多核处理器、***级芯片或多个独立的功能模块之间)传递消息、触发事件以及共享数据。
图2为根据本申请实施例的CAN报文防丢失方法流程图,下面将参考图2,对本申请的CAN报文防丢失方法进行详细描述。
在步骤201,获取第一CAN控制器的缓存可用空间量和第一CAN报文量。
其中,第一CAN报文量,为收发器当前接收到的CAN报文的报文量。第一CAN控制器的缓存可用空间量,等于第一CAN控制器的缓存空间量减去缓存占用量。
在步骤202,响应于第一CAN控制器的缓存可用空间量大于等于第一CAN报文量,控制第一CAN控制器接收并处理CAN报文。
也就是说,当前第一CAN控制器的缓存可用空间足够存储收发器接收到的CAN报文时,直接通过第一CAN控制器接收并处理CAN报文。
在步骤203,响应于第一CAN控制器的缓存可用空间量小于第一CAN报文量,根据报文编号,将CAN报文分为与至少两个CAN控制器一一对应的至少两个报文组,控制至少两个CAN控制器接收并处理相应报文组中的CAN报文。
也就是说,当前第一CAN控制器的缓存可用空间不足以存储收发器接收到的CAN报文时,若微控制单元中的第一CAN控制器和第二CAN控制器的总个数为N个,则根据报文编号,将收发器当前接收到的CAN报文分为N个报文组,N个报文组与N个CAN控制器一一对应设置,并控制N个CAN控制器接收及处理相应报文组中的CAN报文。
根据本申请实施例的CAN报文防丢失方法,通过获取第一CAN控制器的缓存可用空间量和第一CAN报文量;并响应于第一CAN控制器的缓存可用空间量大于等于第一CAN报文量,控制第一CAN控制器接收并处理CAN报文;以及响应于第一CAN控制器的缓存可用空间量小于第一CAN报文量,根据报文编号,将CAN报文分为与至少两个CAN控制器一一对应的至少两个报文组,控制至少两个CAN控制器接收并处理相应报文组中的CAN报文。由此,能够通过多个微控制单元内的多个CAN控制器分别配置CAN接口连接收发器,并配置有相应的通信缓存,实现协同接收报文,确保了CAN报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量CAN报文的应用场景,效果尤为显著。
作为一种实施例,如图3所示,根据报文编号,将CAN报文分为与至少两个CAN控制器一一对应的至少两个报文组,控制至少两个CAN控制器接收并处理相应报文组中的CAN报文的步骤,包括以下子步骤:
步骤301,获取微控制单元中的CAN控制器个数。
步骤302,根据CAN报文的报文编号对CAN控制器个数取余数,确定CAN报文的第一分组识别号;第一分组识别号与微控制单元中的CAN控制器一一对应。
步骤303,控制CAN控制器根据对应的第一分组识别号,接收并处理对应的CAN报文。
在具体示例中,微控制单元中包括3个CAN控制器。CAN报文的第一分组识别号N1=ID1%3,其中,ID1为收发器当前接收到的CAN报文的报文编号,第一分组识别号N1为0、1或2。3个CAN控制器分别对应接收N1为0、1和2的第一分组中的CAN报文。
进一步地,步骤303,包括以下子步骤:
步骤3031,获取每个CAN控制器的缓存可用空间量和相应的第二报文量。
其中,第二报文量为CAN控制器对应第一分组识别号的CAN报文的报文量。
步骤3032,响应于CAN控制器的缓存可用空间量大于等于相应的第二报文量,确定CAN控制器为可处理CAN控制器,控制可处理CAN控制器接收并处理对应第一分组识别号的CAN报文。
更进一步地,该方法还包括:
步骤3033,响应于CAN控制器的缓存可用空间量小于相应的第二报文量,确定CAN控制器为不可处理CAN控制器,控制可处理CAN控制器接收并处理不可处理CAN控制器对应的CAN报文。
也就是说,在步骤303中,为避免CAN控制器接收并处理对应报文组中的CAN报文时,发生缓存可用空间量不足的情况,可进行进一步的CAN报文防丢失策略。
具体地,在CAN控制器的缓存足以接收对应第一分组识别号的CAN报文的第二报文量时,即该CAN控制器为可处理CAN控制器,此时控制该可处理CAN控制器接收对应的CAN报文。相反,在CAN控制器的缓存不足以接收对应第一分组识别号的CAN报文的第二报文量时,即该CAN控制器为不可处理CAN控制器,此时控制该不可处理CAN控制器不接收其对应的CAN报文,而是由可处理CAN控制器接收并处理。
更进一步地,如图4所示,控制可处理CAN控制器接收并处理不可处理CAN控制器对应的CAN报文的步骤,包括:
步骤401,获取微控制单元中的可处理CAN控制器个数。
步骤402,根据不可处理CAN控制器对应的CAN报文的报文编号对可处理CAN控制器个数取余数,确定不可处理CAN控制器对应的CAN报文的第二分组识别号;第二分组识别号与微控制单元中的可处理CAN控制器一一对应。
步骤403,控制可处理CAN控制器根据对应的第二分组识别号,接收并处理相应的CAN报文。
例如,在具体示例中,微控制单元中包括2个可处理CAN控制器和1个不可处理CAN控制器。对该不可处理CAN控制器对应的第一分组的报文,确定第二分组识别号N2=ID2%2,其中,ID2为收发器当前接收到的CAN报文的报文编号,第二分组识别号N2为0或1。2个可处理CAN控制器分别对应接收N2为0和1的第二分组中的CAN报文。
作为另一种实施例,如图5所示,根据报文编号,将CAN报文分为与至少两个CAN控制器一一对应的至少两个报文组,控制至少两个CAN控制器接收并处理相应报文组中的CAN报文的步骤,包括:
步骤501,获取每个CAN控制器的缓存可用空间量和相应的第三CAN报文量。
其中,CAN控制器被配置有相应的报文编号区间,第三CAN报文量为CAN报文中匹配相应报文编号区间的CAN报文的报文量。
步骤502,响应于相应的缓存可用空间量大于等于相应的第三CAN报文量,确定CAN控制器为可处理CAN控制器,控制可处理CAN控制器接收并处理对应报文编号区间的CAN报文。
步骤503,响应于相应的缓存可用空间量小于相应的第三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报文的步骤,可以包括以下步骤:
步骤5031,获取微控制单元中的可处理CAN控制器个数。
步骤5032,根据不可处理CAN控制器对应的CAN报文的报文编号对可处理CAN控制器个数取余数,确定不可处理CAN控制器对应的CAN报文的第三分组识别号;第三分组识别号与微控制单元中的可处理CAN控制器一一对应。
步骤5033,控制可处理CAN控制器根据对应的第三分组识别号,接收并处理对应的CAN报文。
综上所述,根据本申请实施例的CAN报文防丢失方法,通过获取第一CAN控制器的缓存可用空间量和第一CAN报文量;并响应于第一CAN控制器的缓存可用空间量大于等于第一CAN报文量,控制第一CAN控制器接收并处理CAN报文;以及响应于第一CAN控制器的缓存可用空间量小于第一CAN报文量,根据报文编号,将CAN报文分为与至少两个CAN控制器一一对应的至少两个报文组,控制至少两个CAN控制器接收并处理相应报文组中的CAN报文。由此,能够通过多个微控制单元内的多个CAN控制器分别配置CAN接口连接收发器,并配置有相应的通信缓存,实现协同接收报文,确保了CAN报文能够全部被及时处理,不仅有效避免丢帧,而且有助于提高总线的通信效率。对于短时间内处理大量CAN报文的应用场景,效果尤为显著。
图6为本申请实施例的CAN报文防丢失装置的结构框图。该CAN报文防丢失装置60,应用于通过收发器连接CAN总线的微控制单元;微控制单元中包括至少两个CAN控制器,至少两个CAN控制器包括一个第一CAN控制器和至少一个第二CAN控制器;每一个CAN控制器连接收发器,并配置有相应的通信缓存。参考图6所示,CAN报文防丢失装置60,包括获取模块61和控制模块62。
获取模块61,用于获取第一CAN控制器的缓存可用空间量,和,第一CAN报文量;其中,第一CAN报文量为收发器当前接收到的CAN报文的报文量。
控制模块62,响应于第一CAN控制器的缓存可用空间量大于等于第一CAN报文量,控制第一CAN控制器接收并处理CAN报文。控制模块62还用于,响应于第一CAN控制器的缓存可用空间量小于第一CAN报文量,根据报文编号,将CAN报文分为与至少两个CAN控制器一一对应的报文组,控制至少两个CAN控制器接收并处理相应报文组中的CAN报文。
本申请实施例中,控制模块62具体用于:响应于第一CAN控制器的缓存可用空间量小于第一CAN报文量,获取微控制单元中的CAN控制器个数;根据CAN报文的报文编号对CAN控制器个数取余数,确定CAN报文的第一分组识别号;第一分组识别号与微控制单元中的CAN控制器一一对应;控制CAN控制器根据对应的第一分组识别号,接收并处理对应的CAN报文。
进一步地,控制模块62具体用于:获取每个CAN控制器的缓存可用空间量和相应的第二报文量;其中第二报文量为CAN控制器对应第一分组识别号的CAN报文的报文量;响应于CAN控制器的缓存可用空间量大于等于相应的第二报文量,确定CAN控制器为可处理CAN控制器,控制可处理CAN控制器接收并处理对应第一分组识别号的CAN报文。
进一步地,控制模块62还具体用于:响应于CAN控制器的缓存可用空间量小于相应的第二报文量,确定CAN控制器为不可处理CAN控制器,控制可处理CAN控制器接收并处理不可处理CAN控制器对应的CAN报文。
进一步地,控制模块62具体用于:获取微控制单元中的可处理CAN控制器个数;根据不可处理CAN控制器对应的CAN报文的报文编号对可处理CAN控制器个数取余数,确定不可处理CAN控制器对应的CAN报文的第二分组识别号;第二分组识别号与微控制单元中的可处理CAN控制器一一对应;控制可处理CAN控制器根据对应的第二分组识别号,接收并处理相应的CAN报文。
本申请实施例中,控制模块62具体用于:响应于第一CAN控制器的缓存可用空间量小于第一CAN报文量,获取每个CAN控制器的缓存可用空间量和相应的第三CAN报文量;其中,CAN控制器被配置有相应的报文编号区间,第三CAN报文量为CAN报文中匹配相应报文编号区间的CAN报文的报文量;响应于相应的缓存可用空间量大于等于相应的第三CAN报文量,确定CAN控制器为可处理CAN控制器,控制可处理CAN控制器接收并处理对应报文编号区间的CAN报文;响应于相应的缓存可用空间量小于相应的第三CAN报文量,确定CAN控制器为不可处理CAN控制器,控制可处理CAN控制器接收并处理不可处理CAN控制器对应报文编号区间的CAN报文。
进一步地,控制模块62具体用于:获取微控制单元中的可处理CAN控制器个数;根据不可处理CAN控制器对应的CAN报文的报文编号对可处理CAN控制器个数取余数,确定不可处理CAN控制器对应的CAN报文的第三分组识别号;第三分组识别号与微控制单元中的可处理CAN控制器一一对应;控制可处理CAN控制器根据对应的第三分组识别号,接收并处理对应的CAN报文。
需要说明的是,上述实施例中对CAN报文防丢失方法的解释说明也适用于上述实施例中的CAN报文防丢失装置,此处不再赘述。
图1为根据本申请实施例的CAN报文防丢失***的结构框图。参考图1所示,CAN报文防丢失***10,包括微控制单元11、收发器12、受控单元13和上述实施例的CAN报文防丢失装置(图中未示出)。
其中,收发器12,连接CAN总线。微控制单元11,通过收发器连接CAN总线。受控单元13,连接CAN总线,并受微控制单元控制,具体可以是电机、温度传感器、光电开关、接近开关等。CAN报文防丢失装置,用于防止收发器向微控制单元发送的CAN报文丢失。
在具体示例中,汽车电子领域中的CAN总线上,多个ECU可以共享总线,并且每个ECU都有可能发送消息。为了避免数据冲突可以采用polling(查询)通信方式,来协调ECU之间的访问,确定消息的传输优先级和访问权。在CAN总线的polling机制中,每个ECU按照一定的顺序依次轮流发送消息。当一个ECU要发送消息时,会等待总线空闲,并依据预设的优先级顺序,依次轮流获取总线的访问权。只有在获取到访问权后,ECU才能发送其消息。其他ECU会监听总线上的消息。如果检测到有较高优先级的消息,则会停止发送自己的消息,等待总线空闲后再次获取访问权。通过polling机制,CAN总线中的消息发送和接收可以有序进行,避免了数据冲突,确保了消息的传输和处理的有效性和可靠性。
图7为根据本申请实施例的微控制器芯片的结构框图。参考图7所示,微控制器芯片70,包括存储器71和处理器72,存储器71中存储有计算机指令;处理器72被配置为运行指令以执行上述实施例的CAN报文防丢失方法。
本申请一个实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的***中所包含的;也可以是单独存在,而未装配入该***中。上述计算机可读存储介质承载有一个或者多个计算机指令,当上述一个或者多个计算机指令被执行时,实现上述实施例的CAN报文防丢失方法的步骤。
本申请的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
本领域普通技术人员可以理解:以上仅为本申请的优选实施例而已,并不用于限制本申请,尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
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报文。
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报文。
7.一种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报文。
8.一种CAN报文防丢失***,其特征在于,包括:
收发器,连接CAN总线;
微控制单元,通过所述收发器连接所述CAN总线;
受控单元,连接所述CAN总线,并受所述微控制单元控制;和,
如权利要求7所述的CAN报文防丢失装置,用于防止所述收发器向所述微控制单元发送的CAN报文丢失。
9.一种微控制器芯片,其特征在于,包括存储器和处理器,所述存储器中存储有计算机指令;所述处理器被配置为运行所述指令以执行权利要求1-6中任一项所述的CAN报文防丢失方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1至6中任一项所述的CAN报文防丢失方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311036255.9A CN116781448B (zh) | 2023-08-17 | 2023-08-17 | 一种can报文防丢失方法、装置、***、芯片及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311036255.9A CN116781448B (zh) | 2023-08-17 | 2023-08-17 | 一种can报文防丢失方法、装置、***、芯片及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116781448A CN116781448A (zh) | 2023-09-19 |
CN116781448B true CN116781448B (zh) | 2023-11-07 |
Family
ID=88011850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311036255.9A Active CN116781448B (zh) | 2023-08-17 | 2023-08-17 | 一种can报文防丢失方法、装置、***、芯片及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116781448B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110098989A (zh) * | 2018-01-30 | 2019-08-06 | 上海融聂电子科技有限公司 | 一种基于canfd总线的多路can仿真***及测试方法 |
CN110557309A (zh) * | 2018-06-04 | 2019-12-10 | 上海千顾汽车科技有限公司 | 一种基于硬件逻辑的can fd总线自动化控制***及方法 |
CN110958331A (zh) * | 2019-12-27 | 2020-04-03 | 视联动力信息技术股份有限公司 | 一种数据传输方法及终端 |
CN111010352A (zh) * | 2019-12-31 | 2020-04-14 | 厦门金龙联合汽车工业有限公司 | 一种汽车can报文发送方法 |
CN112118125A (zh) * | 2020-08-05 | 2020-12-22 | 东风电驱动***有限公司 | 一种can报文高负荷率接收方法及*** |
CN113282040A (zh) * | 2021-05-26 | 2021-08-20 | 苏州智加科技有限公司 | 减少整车网关转发丢帧的方法及装置 |
WO2021168859A1 (zh) * | 2020-02-29 | 2021-09-02 | 华为技术有限公司 | 一种控制器区域网can总线安全通信方法及装置 |
CN113746815A (zh) * | 2021-08-18 | 2021-12-03 | 南昌智能新能源汽车研究院 | 数据转发方法、装置、可读存储介质及控制终端 |
CN113852530A (zh) * | 2021-09-02 | 2021-12-28 | 东风汽车集团股份有限公司 | 一种can通信模块的快速创建方法及*** |
WO2022104869A1 (zh) * | 2020-11-20 | 2022-05-27 | 昆高新芯微电子(江苏)有限公司 | 基于芯片级加密的以太网和现场总线融合网关及传输方法 |
CN114978965A (zh) * | 2022-05-25 | 2022-08-30 | 中国第一汽车股份有限公司 | 一种芯片高负载情况下can诊断报文与网络报文处理方法、***、电子设备和存储介质 |
KR20220125649A (ko) * | 2021-03-05 | 2022-09-14 | 숭실대학교산학협력단 | Can 버스를 이용한 다중 uart 통신 방법, 이를 수행하기 위한 기록 매체 및 장치 |
CN115657646A (zh) * | 2022-12-12 | 2023-01-31 | 北京紫光芯能科技有限公司 | 一种can控制器的测试方法及装置 |
CN116192772A (zh) * | 2023-03-03 | 2023-05-30 | 成都市楠菲微电子有限公司 | 一种基于空间缓存的cpu收发包调度装置及方法 |
-
2023
- 2023-08-17 CN CN202311036255.9A patent/CN116781448B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110098989A (zh) * | 2018-01-30 | 2019-08-06 | 上海融聂电子科技有限公司 | 一种基于canfd总线的多路can仿真***及测试方法 |
CN110557309A (zh) * | 2018-06-04 | 2019-12-10 | 上海千顾汽车科技有限公司 | 一种基于硬件逻辑的can fd总线自动化控制***及方法 |
CN110958331A (zh) * | 2019-12-27 | 2020-04-03 | 视联动力信息技术股份有限公司 | 一种数据传输方法及终端 |
CN111010352A (zh) * | 2019-12-31 | 2020-04-14 | 厦门金龙联合汽车工业有限公司 | 一种汽车can报文发送方法 |
WO2021168859A1 (zh) * | 2020-02-29 | 2021-09-02 | 华为技术有限公司 | 一种控制器区域网can总线安全通信方法及装置 |
CN112118125A (zh) * | 2020-08-05 | 2020-12-22 | 东风电驱动***有限公司 | 一种can报文高负荷率接收方法及*** |
WO2022104869A1 (zh) * | 2020-11-20 | 2022-05-27 | 昆高新芯微电子(江苏)有限公司 | 基于芯片级加密的以太网和现场总线融合网关及传输方法 |
KR20220125649A (ko) * | 2021-03-05 | 2022-09-14 | 숭실대학교산학협력단 | Can 버스를 이용한 다중 uart 통신 방법, 이를 수행하기 위한 기록 매체 및 장치 |
CN113282040A (zh) * | 2021-05-26 | 2021-08-20 | 苏州智加科技有限公司 | 减少整车网关转发丢帧的方法及装置 |
CN113746815A (zh) * | 2021-08-18 | 2021-12-03 | 南昌智能新能源汽车研究院 | 数据转发方法、装置、可读存储介质及控制终端 |
CN113852530A (zh) * | 2021-09-02 | 2021-12-28 | 东风汽车集团股份有限公司 | 一种can通信模块的快速创建方法及*** |
CN114978965A (zh) * | 2022-05-25 | 2022-08-30 | 中国第一汽车股份有限公司 | 一种芯片高负载情况下can诊断报文与网络报文处理方法、***、电子设备和存储介质 |
CN115657646A (zh) * | 2022-12-12 | 2023-01-31 | 北京紫光芯能科技有限公司 | 一种can控制器的测试方法及装置 |
CN116192772A (zh) * | 2023-03-03 | 2023-05-30 | 成都市楠菲微电子有限公司 | 一种基于空间缓存的cpu收发包调度装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116781448A (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106034084B (zh) | 一种数据传输方法及装置 | |
CN101873269B (zh) | 数据转发设备和端口缓存的分配方法 | |
CN103475899A (zh) | 数据分发方法和装置 | |
CN101385296A (zh) | 用于总线间信息自动路由的网关 | |
EP3384637A1 (en) | Systems and methods for implementing a switched controller area network | |
EP3073688A1 (en) | Data transmission method, core forwarding device and end point forwarding device | |
EP4024146A1 (en) | Method and apparatus for controlling data transmission, and storage medium | |
JP2009524308A (ja) | 動的リソース割当てのための方法及びシステム | |
US8792518B2 (en) | Automation system | |
KR20150120952A (ko) | 프로토콜 예외 상태를 갖는 데이터 전송 | |
JP4399457B2 (ja) | マルチチャンネルcanアプリケーションにおける診断装置及び診断方法 | |
CN107066413B (zh) | 一种用于处理多个总线设备数据的方法及其总线*** | |
US20150295727A1 (en) | Method for operating a communication network and communication network | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
US20030084207A1 (en) | Triggered communication network for CANOpen networks | |
CN116781448B (zh) | 一种can报文防丢失方法、装置、***、芯片及介质 | |
WO2017000861A1 (zh) | 交换机虚拟局域网中mac地址的学习方法及装置 | |
CN112073249B (zh) | 数据传输方法、集***换机***及相关设备 | |
CN105045224A (zh) | 数据传输的方法和装置 | |
US6907485B2 (en) | Hybrid change of state protocol for CANOpen networks | |
CN112165420A (zh) | 报文处理方法、报文处理装置、机器人***及can设备 | |
CN116827474A (zh) | 一种时间敏感网络流量传输方法及*** | |
EP3605967B1 (en) | Method and device for transmitting data | |
Lian et al. | Network protocols for networked control systems | |
US20240214401A1 (en) | In-vehicle relay device, relay method, and relay program |
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 |