CN116781448A - 一种can报文防丢失方法、装置、系统、芯片及介质 - Google Patents

一种can报文防丢失方法、装置、系统、芯片及介质 Download PDF

Info

Publication number
CN116781448A
CN116781448A CN202311036255.9A CN202311036255A CN116781448A CN 116781448 A CN116781448 A CN 116781448A CN 202311036255 A CN202311036255 A CN 202311036255A CN 116781448 A CN116781448 A CN 116781448A
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.)
Granted
Application number
CN202311036255.9A
Other languages
English (en)
Other versions
CN116781448B (zh
Inventor
王斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xinchi Semiconductor Technology Co ltd
Original Assignee
Beijing Xinchi Semiconductor Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xinchi Semiconductor Technology Co ltd filed Critical Beijing Xinchi Semiconductor Technology Co ltd
Priority to CN202311036255.9A priority Critical patent/CN116781448B/zh
Publication of CN116781448A publication Critical patent/CN116781448A/zh
Application granted granted Critical
Publication of CN116781448B publication Critical patent/CN116781448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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报文防丢失方法、装置、系统、芯片及介质。
背景技术
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 (11)

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报文防丢失方法的步骤。
CN202311036255.9A 2023-08-17 2023-08-17 一种can报文防丢失方法、装置、系统、芯片及介质 Active CN116781448B (zh)

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 true CN116781448A (zh) 2023-09-19
CN116781448B 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)

* Cited by examiner, † Cited by third party
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收发包调度装置及方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
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
CN116781448B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
US20220200912A1 (en) System and method for facilitating efficient packet injection into an output buffer in a network interface controller (nic)
US10129150B2 (en) Systems and methods for implementing a switched controller area network
CN106034084B (zh) 一种数据传输方法及装置
CN101873269B (zh) 数据转发设备和端口缓存的分配方法
CN103475899A (zh) 数据分发方法和装置
CN101385296A (zh) 用于总线间信息自动路由的网关
WO2009070326A1 (en) A system and method for accessing memory
JP2009524308A (ja) 動的リソース割当てのための方法及びシステム
US8792518B2 (en) Automation system
US7404058B2 (en) Method and apparatus for avoiding collisions during packet enqueue and dequeue
US10069641B2 (en) Method for operating a communication network and communication network
CN107066413B (zh) 一种用于处理多个总线设备数据的方法及其总线系统
US7206882B2 (en) Triggered communication network for CANOpen networks
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN116781448B (zh) 一种can报文防丢失方法、装置、系统、芯片及介质
CN112929418B (zh) 一种基于发布订阅的RapidIO高速通信方法及系统
CN112073249B (zh) 数据传输方法、集群交换机系统及相关设备
US6907485B2 (en) Hybrid change of state protocol for CANOpen networks
CN105045224A (zh) 数据传输的方法和装置
CN112165420A (zh) 报文处理方法、报文处理装置、机器人系统及can设备
EP3605967B1 (en) Method and device for transmitting data
Lian et al. Network protocols for networked control systems
WO2017016300A1 (zh) 令牌申请处理方法、装置和计算机存储介质
CN111475439A (zh) 基于异步传输协议的通讯控制方法及装置、电子设备
CN111602375B (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