CN116208581B - Can控制器的邮箱配置信息的获取方法、邮箱的配置方法 - Google Patents
Can控制器的邮箱配置信息的获取方法、邮箱的配置方法 Download PDFInfo
- Publication number
- CN116208581B CN116208581B CN202310464496.7A CN202310464496A CN116208581B CN 116208581 B CN116208581 B CN 116208581B CN 202310464496 A CN202310464496 A CN 202310464496A CN 116208581 B CN116208581 B CN 116208581B
- Authority
- CN
- China
- Prior art keywords
- mailbox
- length
- ids
- mailboxes
- message
- 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
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
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- 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/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了CAN控制器的邮箱配置信息的获取方法、邮箱的配置方法。获取方法包括经由CAN控制器所在的片上系统以外的处理器,获取预先设置的第一CAN总线数据信息,基于CAN ID发送周期,获取预设时间内发送的总报文数量,基于总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度,且基于邮箱长度配置的邮箱的负载率不超过阈值负载率,基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;将第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,得到CAN ID与各邮箱的匹配信息。如此,能够使得CAN控制器配置的各个邮箱实现均衡负载。
Description
技术领域
本申请涉及汽车零部件技术领域,具体涉及CAN控制器的邮箱配置信息的获取方法、邮箱的配置方法。
背景技术
CAN 总线是一种简单的架构,允许多个节点连接在同一条总线上,相互发送消息,由各个节点通过每条报文消息的 CAN ID( Identifier)决定接受或拒绝在 CAN 总线上传输的数据。
CAN控制器需要将CAN总线的CAN ID分配到各个邮箱中,而现有的分配CAN ID的方式是人工完成的,主要依赖于人的工作经验等,主观性较强。并且,人工分配CAN ID的分配效果不好,一方面,无法实现对各个邮箱的均衡分配,有些邮箱无法在较短时间内处理人工分配的CAN ID,导致部分信息丢失。另一方面,将CAN ID分配到各邮箱后,由于CAN ID的分配结果不合理,使得邮箱无法有效过滤掉不需要的信息,然后需要再利用CAN控制器的芯片上的处理器进一步对每条报文进行筛选。如此,极大地提高了处理器的运算负荷。而且,在处理器对每个报文消息进行筛选的过程中,会将大量的不需要的垃圾信息在应用程序软件中丢弃,这会需要消耗更多的存储空间和处理器算力来处理垃圾信息。
发明内容
针对现有技术中存在的上述技术问题,提出了本申请。本申请旨在提供CAN控制器的邮箱配置信息的获取方法、邮箱的配置方法,其能够得到合理的CAN ID与各邮箱的分配关系,CAN控制器基于该获取方法得到的CAN ID与各邮箱的匹配信息能够实现多个CAN ID复用一个邮箱的同时保证各个邮箱的负载均衡。
根据本申请的第一方案,提供一种CAN控制器的邮箱配置信息的获取方法,所述邮箱配置信息至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息,以使得所述CAN控制器基于所述邮箱配置信息配置与所述CAN ID相匹配的邮箱;所述获取方法包括,经由CAN控制器所在的片上系统以外的处理器:获取预先设置的第一CAN总线数据信息,所述第一CAN总线数据信息至少包括各报文的CAN ID、CAN ID对应的数据长度和CAN ID发送周期;基于所述CAN ID发送周期,获取预设时间内发送的总报文数量;基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度,且基于所述邮箱长度配置的邮箱的负载率不超过阈值负载率;基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,得到所述CAN ID与各邮箱的匹配信息。
根据本申请的第二方案,提供一种基于CAN控制器的邮箱的配置方法,所述CAN控制器设置于片上系统,所述配置方法包括:经由与所述CAN控制器可通信传输信息的接口,获取所述CAN控制器的邮箱配置信息以及第二CAN总线数据信息,所述邮箱配置信息经所述CAN控制器所在的片上系统以外的处理器处理得到,至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息;经由所述CAN控制器,配置与所述各邮箱长度相匹配的确定数量的邮箱;将所述第二CAN总线数据信息中的各报文分配到与所述各报文的CAN ID匹配的邮箱中。
根据本申请的第三方案,提供一种基于CAN控制器的配置邮箱的片上系统,所述片上系统包括接口以及与所述接口可通信传输信息的CAN控制器;所述接口配置为:获取所述CAN控制器的邮箱配置信息以及第二CAN总线数据信息,所述邮箱配置信息经所述片上系统以外的处理器通过本申请各个实施例所述的CAN控制器的邮箱配置信息的获取方法得到,至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息以及至少包含两个CAN ID的邮箱的过滤器值和掩码值;所述CAN控制器配置为:获取所述邮箱配置信息,配置与所述各邮箱长度相匹配的邮箱数量;将所述第二CAN总线数据信息中的各报文分配到与所述各报文的CANID匹配的邮箱中;以及对至少包含两个CAN ID的邮箱的过滤器值和掩码值进行配置。
根据本申请的第四方案,提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行本申请各个实施例所述的CAN控制器的邮箱配置信息的获取方法。
与现有技术相比,本申请实施例的有益效果在于:
基于本申请实施例提供的邮箱配置信息的获取方法,得到预设时间内发送的总报文数量,并结合CAN ID对应的数据长度,可以得到更合理的CAN控制器配置邮箱的邮箱长度。在邮箱长度确定之后,可以确定出CAN控制器配置的邮箱数量,基于总报文数量和邮箱数量,可以估计出配置的邮箱的负载率。如果配置的邮箱的负载率不超过阈值负载率,则可以认为通过这种方法确定的邮箱长度较为合理,基于该邮箱长度对CAN ID进行分配的结果越合理。如此,将第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到各个邮箱中,可以得到更合理的CAN ID与各邮箱的匹配信息,CAN控制器基于该匹配信息对CAN ID进行分配时,能够实现各个邮箱的CAN ID的负载均衡,避免一个邮箱上的某个CAN ID的发送频率过快,导致尚未完成对该CAN ID的处理却出现丢帧的问题。
基于本申请实施例的获取方法来确定CAN ID与各邮箱的匹配信息相较于通过人工自行配置CAN ID与各邮箱的匹配,不仅极大的提高了获取CAN ID与各邮箱的匹配信息的获取速度,而且,能够得到更合理、更均衡的CAN ID与各邮箱的匹配信息。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述说明和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。具有字母后缀或不同字母后缀的类似附图标记可以表示相似组件的不同示例。附图通过举例而不是以限制的方式大体上示出各种实施例,并且与说明书以及权利要求书一起用于对所公开的实施例进行说明。这样的实施例是说明性和示例性的,而并非旨在作为本方法、装置、系统或具有用于实现该方法的指令的非暂时性计算机可读介质的穷尽或排他的实施例。
图1示出根据本申请实施例所述的CAN控制器的邮箱配置信息的获取方法的流程图。
图2示出根据本申请实施例所述的基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度的流程图。
图3示出根据本申请实施例所述的CAN控制器的邮箱配置信息的获取方法的又一流程图。
图4示出根据本申请实施例的将CAN ID与各邮箱进行匹配的结构示意图。
图5示出根据本申请实施例所述的基于CAN控制器的邮箱的配置方法的流程图。
图6示出根据本申请实施例所述的基于CAN控制器的配置邮箱的片上系统的结构示意图。
具体实施方式
为使本领域技术人员更好的理解本申请的技术方案,下面结合附图和具体实施方式对本申请作详细说明。下面结合附图和具体实施例对本申请的实施例作进一步详细描述,但不作为对本申请的限定。
本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分。本申请中使用的“包括”或者“包含”等类似的词语意指在该词前的要素涵盖在该词后列举的要素,并不排除也涵盖其他要素的可能。在本申请中,各个步骤在图中所示的箭头仅仅作为执行顺序的示例,而不是限制,本申请的技术方案并不限于实施例中描述的执行顺序,执行顺序中的各个步骤可以合并执行,可以分解执行,可以调换顺序,只要不影响执行内容的逻辑关系即可。
本申请使用的所有术语(包括技术术语或者科学术语)与本申请所属领域的普通技术人员理解的含义相同,除非另外特别定义。还应当理解,在诸如通用字典中定义的术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
图1示出根据本申请实施例所述的CAN控制器的邮箱配置信息的获取方法的流程图。所述邮箱配置信息至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息,以使得所述CAN控制器基于所述邮箱配置信息配置与所述CAN ID相匹配的邮箱。其中,所述邮箱长度可以是一种邮箱长度,也可以是多种邮箱长度的组合,对此不做具体限定。所述获取方法经由CAN控制器所在的片上系统以外的处理器执行如下步骤。
在步骤S101,获取预先设置的第一CAN总线数据信息,所述第一CAN总线数据信息至少包括各报文的CAN ID、CAN ID对应的数据长度和CAN ID发送周期。在该实施例中,各种构件,例如CAN控制器、寄存器、处理器等可以通过SOC(片上系统)来实现。然而,请注意,该实施例所述的获取方法并非经由片上系统中的处理器来执行,而是经由片上系统以外的处理器执行得到邮箱配置信息。
用于执行获取方法的处理器可以是包括诸如微处理器、中央处理单元(CPU)等一个或更多个通用处理设备的处理设备。更具体地,处理器可以是复杂指令集运算(CISC)微处理器、精简指令集运算(RISC)微处理器、超长指令字(VLIW)微处理器、运行其他指令集的处理器或运行指令集的组合的处理器。处理器还可以是诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)等一个或更多个专用处理设备。
具体地,所述处理器可以被配置在车载终端、服务器等设备。例如,用户可以经由车载终端获取第一CAN总线数据信息,并执行后续计算处理步骤。其中,对于预先设置的第一CAN总线数据信息的获取不做限定,可以经由用户自行设置,也可以从已经配置好的汽车上下载得到的第一CAN总线数据信息,例如,某系列的车辆已配置好各个CAN ID的相关数据信息,用户只需要下载第一CAN总线数据信息即可。
第一CAN总线数据信息中的各报文的CAN ID、各个CAN ID对应的数据长度和各个CAN ID的发送周期都是稳定的。各个报文都具有对应的CAN ID,邮箱在接收报文时根据CANID确定是否需要该报文。各CAN ID对应的数据长度可以理解为数据位长度,即CAN ID对应的数据中有效数据位的长度。CAN ID的发送周期可以理解为各个CAN ID每隔一段时间发送一次的间隔时间,间隔时间越短,说明发送周期越小,在一定时间内收到该报文的频率越高。例如,如果CAN ID1的发送周期为10分钟,CAN ID2的发送周期为5分钟,则在10分钟内,系统可以收到1次CAN ID1和2次CAN ID2。
在步骤S102,基于所述CAN ID发送周期,获取预设时间内发送的总报文数量。其中,所述预设时间可以为10分钟、30分钟,对于预设时间不做具体限定,可由用户自行设置。具体地,例如CAN ID1的发送周期为10分钟,CAN ID2的发送周期为2分钟,CAN ID3的发送周期为1分钟,则10分钟内可以获取发送的总报文数量为16(也就是1+5+10)。因此,基于第一CAN 总线数据信息中的各个CAN ID的发送周期,可以获取在预设时间内发送的总报文数量,这些总报文数量可以理解为在该预设时间内需要多个邮箱进行处理的总报文数量。
在步骤S103,基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度,使得基于所述邮箱长度配置的邮箱的负载率不超过阈值负载率。具体来说,车厂在设计车辆的时候相应的确定好了该车辆使用的片上系统中的CAN控制器的数量,以及各个CAN控制器的数据类型和各个CAN控制器的CAN ID的范围。并且,在配置CAN控制器所在的片上系统时,由于片上系统的存储空间有限,通常会规定好特定的邮箱长度配置特定数量的邮箱,例如,配置的邮箱的数量会随着邮箱长度的增加而减小。示例性的,配置的邮箱长度可以是8,16,32或64中的一种或多种。在配置的邮箱长度确定之后,配置的邮箱数量也随之确定,在邮箱长度分别为8、16、32、64时,与之匹配的邮箱数量分别为32、21、12和7,仅以此为示例,不构成对配置的邮箱的具体限定。
其中,所述邮箱的负载率可以反映各个配置的邮箱在预设时间内能够处理的报文的数量。在该实施例中,通过确定配置的邮箱长度,可以随之确定出与邮箱长度相匹配的配置的邮箱的数量,根据预设时间内收取的总报文数量和配置的邮箱的数量,可以确定出配置的邮箱的负载率。如果负载率不超过阈值负载率,则说明当前匹配的邮箱长度、邮箱数量较为合理,能够实现不同配置的邮箱的负载均衡。如果负载率超过阈值负载率,则说明在预设时间内,配置的邮箱长度以及邮箱的数量不合理,存在一个或多个配置的邮箱无法在预设时间内处理收到的报文,导致部分数据信息丢失的问题。进一步地,在所述配置的邮箱的负载率超过阈值负载率的情况下,可以对配置的邮箱长度进行更新,在更新的过程中,要使得配置的邮箱长度能够容纳CAN ID对应的最大数据长度。通过对邮箱长度的更新,使得基于更新后的邮箱长度配置的邮箱的负载率不超过阈值负载率。对于阈值负载率不做具体限定,可以经由用户自行设置,也可以是默认的数值。
在步骤S104,基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱。在步骤S105,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,得到所述CAN ID与各邮箱的匹配信息。如上所述,邮箱长度与邮箱数量的匹配关系由CAN控制器所在的片上系统(如芯片)决定,例如,可以按照芯片设计默认的规则,在邮箱长度分别为8、16、32、64时,与之匹配的邮箱数量分别为32、21、12和7,这仅仅作为一种示例,不构成对邮箱长度和邮箱数量匹配关系的具体限定。在该实施例中,基于已经确定的邮箱长度,可以配置与邮箱长度相匹配的确定数量的邮箱。比如,在邮箱长度为8和32的组合邮箱长度时,配置的邮箱的数量为44个,即包括32个邮箱长度为8的邮箱和12个邮箱长度为32的邮箱。
在得到确定数量的邮箱之后,将第一CAN总线数据信息中的各个报文的CAN ID按照预设顺序依次匹配到配置的各个邮箱中。例如,可以将各CAN ID按照从小到大的顺序,依次匹配到各个邮箱中,由于配置的邮箱的长度和数量已经确定,因此,可以在匹配的过程中,结合CAN ID对应的数据长度将CAN ID按照从小到大顺序匹配到各个邮箱中,以使得各个配置的邮箱都能够包含CAN ID,从而得到CAN ID与各邮箱的匹配信息。如此,经过本申请实施例所述的获取方法确定的邮箱配置信息能够实现各个邮箱的均衡负载,能够避免有效数据丢失的问题。
在获取到配置的邮箱长度和CAN ID与各邮箱的匹配信息后,将该邮箱配置信息写入到CAN 控制器所在的片上系统中的寄存器。CAN控制器可以访问并读取该邮箱配置信息,基于配置的邮箱长度配置出确定数量的邮箱,然后,再将各个CAN ID按照CAN ID与各邮箱的匹配信息,分别匹配到邮箱中。如此,无需CAN控制器所在的芯片上的处理器进一步对收到的邮箱配置信息进行额外处理,CAN控制器仅仅从硬件层面就能够实现对各个邮箱的配置,实现各个邮箱的负载均衡,避免数据丢失。此外,本申请实施例所述的邮箱配置信息的获取方法能够高效率的得到更加合理的邮箱配置信息,解决了人工配置邮箱导致各邮箱负载失衡,数据丢失的问题。
在本申请的一些实施例中,所述邮箱配置信息还包括至少包含两个CAN ID的邮箱的过滤器值和掩码值,以使得所述CAN控制器基于所述过滤器值和掩码值对至少包含两个CAN ID的邮箱的报文进行过滤。所述获取方法还包括基于所述各邮箱匹配的CAN ID,按照公式(1)确定出至少包含两个CAN ID的邮箱的过滤器值和掩码值:
CAN ID and Mask=Filter公式(1);
其中,Mask表示掩码值,Filter表示过滤器值。
具体地,当配置地邮箱中只有一个CAN ID时,CAN控制器会自动识别出该CAN ID且只允许该CAN ID通过邮箱,而不会让其他CAN ID通过该邮箱。而对于配置地邮箱中包含至少两个CAN ID时,CAN 控制器无法自动识别出允许通过的CAN ID,此时,需要对包含至少两个CAN ID的邮箱配置过滤器值和掩码值。
在将各个CAN ID匹配到配置的各邮箱中之后,每个邮箱中包含的CAN ID随即确定。根据公式(1),对各个邮箱的过滤器值和掩码值进行计算,如果CAN ID和掩码值进行“与”运算的结果等于过滤器值,则可以确定出该邮箱的过滤器值和掩码值。如此,CAN 控制器在获取到本申请实施例所述的获取方法得到的邮箱配置信息之后,可以直接配置包含至少两个CAN ID的邮箱的过滤器值和掩码值,CAN控制器从硬件层面直接实现对经由各邮箱的各报文CAN ID的过滤,而无需进一步经由CAN控制器所在的芯片上的处理器进行过滤,减少了存储空间的消耗,降低了芯片上的处理器的工作负荷。
图2示出根据本申请实施例所述的基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度的流程图。
在步骤S201,对所述各报文CAN ID对应的数据长度进行遍历,对于所述遍历的方法不做具体限定,可以采用现有的任意一种遍历方法或者采用用户自行编写的遍历程序。接着,执行步骤S202,判断CAN ID对应的数据长度是否相等。如果步骤S202的判断结果为是,即在所述各CAN ID对应的数据长度均相等的情况下,执行步骤S203,确定配置的邮箱长度与所述各CAN ID对应的数据长度相同。具体地,如果所有的CAN ID对应的数据长度均相等,例如为8,则确定配置的邮箱长度也为8。
如果步骤S202的判断结果为否,则说明各CAN ID对应的数据长度存在差异,此时,邮箱长度为两种邮箱长度的组合,包括第一邮箱长度和第二邮箱长度。在对所述各报文CANID对应的数据长度进行遍历的过程中,确定出CAN ID对应的最大数据长度,并将所述最大数据长度作为第二邮箱长度(步骤S204)。例如,经过遍历发现各报文CAN ID对应的数据长度有8,16,64三种,则将第二邮箱长度确定为64。
在步骤S205,基于总报文数量以及候选邮箱长度和第二邮箱长度,确定出配置的邮箱的负载率。其中,所述总报文数量基于各CAN ID发送周期以及预设时间得到。在确定了第二邮箱长度之后,遍历所有可能设置的邮箱长度的值作为候选邮箱长度,例如,候选邮箱长度选自8,16,32,64。以第二邮箱长度为64,候选邮箱长度为32为示例,则对应的邮箱数量共19个。也就是说,基于候选邮箱长度和第二邮箱长度的组合,可以得到对应的邮箱数量,此时,基于总报文数量和确定数量的邮箱,可以确定出配置的邮箱的负载率。然后,执行步骤S206,判断负载率是否超过阈值负载率,如果步骤S206的判断结果为否,则说明负载率不超过阈值负载率,可以确定所述候选邮箱长度为第一邮箱长度(步骤S207)。负载率不超过阈值负载率表示对于各个邮箱分配的报文数量较为合理,各个邮箱负载均衡,可以将所述候选邮箱长度确定为第一邮箱长度。
如果步骤S206的判断结果为是,则说明此时邮箱的负载率较大,当前的候选邮箱长度和第二邮箱长度的组合不合理,继续执行步骤S208,对所述候选邮箱长度进行更新,以得到更新后的候选邮箱长度,直到基于所述更新后的候选邮箱长度和第二邮箱长度得到的负载率不超过所述阈值负载率。具体地,例如,当所述候选邮箱长度为32,第二邮箱长度为64时,计算得到的邮箱负载率超过阈值负载率,则表明当前的邮箱长度的组合不合理。继续对候选邮箱长度进行更新,比如将候选邮箱长度由32更新为16,即更新后的候选邮箱产长度为16,则更新后的邮箱长度的组合包括候选邮箱长度16和第二邮箱长度64。继续计算更新后的邮箱长度的组合的邮箱的负载率,如果负载率没有超过阈值负载率,则将候选邮箱长度16确定为第一邮箱长度,得到邮箱长度的最优组合。该邮箱长度的最优组合包括第一邮箱长度16和第二邮箱长度64。
在本申请的一些实施例中,基于第一CAN总线数据信息,确定出在预设时间内不大于候选邮箱长度(mailbox_p0)的第一报文数量(s0)和不大于第二邮箱长度(mailbox_p1)的第二报文数量(s1)。将所述第一报文数量(s0)和所述第二报文数量(s1)相对于基于所述候选邮箱长度(mailbox_p0)和所述第二邮箱长度(mailbox_p1)确定的邮箱的分配结果作为各邮箱的负载率。具体来说,在确定了候选邮箱长度和第二邮箱长度之后,相应的可以确定出与候选邮箱长度和第二邮箱长度各自匹配的确定数量的邮箱。统计第一CAN总线数据信息中的第一报文数量(s0)和第二报文数量(s1),可以将第一报文数量(s0)分配到基于候选邮箱长度确定的邮箱中,计算出第一负载率,再将第二报文数量(s1)分配到基于第二邮箱长度确定的邮箱中,计算出第二负载率,然后将第一负载率和第二负载率的和作为各邮箱的负载率,仅以此为示例,不构成对计算邮箱的负载率的具体限定。
进一步地,获取所述第一报文数量(s0)与所述候选邮箱长度(mailbox_p0)和第二邮箱长度(mailbox_p1)的和的第一比值,获取所述第一报文数量(s0)与预设时间内发送的总报文数量(sum_all)的第二比值,获取所述第二报文数量(s1)与所述第二邮箱长度(mailbox_p1)的第三比值,获取所述第二报文数量(s1)与预设时间内发送的总报文数量(sum_all)的第四比值,将所述第一比值、第二比值的乘积与所述第三比值、第四比值的乘积的和作为所述负载率(loadrate),具体地,如公式(2)所示:
公式(2)。
负载率(loadrate)越小表示分配得越合理,通过遍历候选邮箱长度(mailbox_p0)所有可能设置的长度的值,根据公式(2)计算在不同的邮箱长度的组合下的邮箱的负载率,将负载率最小的邮箱长度的组合作为最优邮箱长度。如此,通过公式(2)计算得到的负载率来确定候选邮箱长度是否可以作为第一邮箱长度,从而确定出能够使得CAN控制器配置的各个邮箱均衡负载的邮箱长度。
在本申请的一些实施例中,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息具体包括如下步骤。基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱,将所述第一CAN总线数据信息中各报文的CAN ID按照递增或递减的顺序依次匹配到所配置的各邮箱。在匹配的过程中,如果在预设时间内,当前配置的邮箱中已匹配的CAN ID 的数量未超过阈值数量,则继续向当前配置的邮箱中匹配下一个CAN ID。其中,阈值数量可以由用户自行设置,对此不做具体限定。具体地,所述阈值数量可以是预设时间内的总报文数量与配置的邮箱的数量的比值,其中,如上所示,配置的邮箱的数量基于最终确定的邮箱长度,邮箱长度确定后,相应的配置的邮箱的数量也随之确定。
以预设时间为10分钟为例,比如将CAN ID1分配到邮箱1的过程中,需要统计10分钟内邮箱1收到的CAN ID1的数量,如果超过阈值数量,则继续向邮箱2匹配CAN ID2。如果10分钟内邮箱2收到的CAN ID2的数量没有超过阈值数量,则可以继续将CAN ID3分配到邮箱2中。在邮箱2中被分配了CAN ID2和CAN ID3之后,继续统计10分钟内邮箱2将会收到的CANID2和CAN ID3的总数量,如果总数量超过阈值数量,则继续分配下一个CAN ID4,并将CANID4分配到邮箱3中,以此类推。因此,如果超过阈值数量,则将剩余的CAN ID继续按照顺序依次匹配到下一个配置的邮箱中,以使得确定数量的各个邮箱均匹配到CAN ID,并获取所述CAN ID与各邮箱的匹配信息。如此,能够进一步提高CAN 控制器配置的各个邮箱之间的均衡负载,以使得各个邮箱都能够高效的对CAN ID进行处理,从而避免由于邮箱处理能力不够导致有效数据丢失的问题。
在本申请的一些实施例中,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次匹配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息进一步包括如下步骤。基于所述第一CAN总线数据信息,获取各报文的更新频率。将所述更新频率超过阈值频率的关注报文的CAN ID预先分配到与所述关注报文的数据长度相同的关注邮箱中,以使得所述关注邮箱中仅具有所述关注报文的CAN ID。其中,所述阈值频率可以由用户自行设置,对此不做具体限定。所述关注报文的更新频率较快,发送最频繁,如图3所示,在步骤S301,将关注报文单独分配到关注邮箱中,如此,该关注邮箱只用于处理所述关注报文的CAN ID,从而有利于实现各个邮箱的负载均衡并且确保关注报文的高效处理。然后,执行步骤S302,计算剩余每个邮箱平均负载的报文数量,例如,用预设时间内的总报文数量减去预设时间内的关注报文的总报文数量,再除以配置的邮箱的数量,可以得到剩余每个邮箱平均负载的报文数量。
进一步地,将剩余各报文的CAN ID按照递增或递减的顺序依次匹配到除所述关注邮箱之外的剩余邮箱中。具体地,在步骤S303,对CAN ID进行分组,将每组中的CAN ID依次匹配到各邮箱。例如,将CAN ID对应的数据长度不大于第一邮箱长度的报文的CAN ID配置为第一组,将CAN ID对应的数据长度大于第一邮箱长度的报文的CAN ID配置为第二组;基于所述第一CAN总线数据信息,获取各报文的CAN ID的传输方向,所述传输方向包括接收方向和发送方向;将所述第一组中的各报文的CAN ID按照所述各报文的CAN ID的传输方向,分为第一接收组和第一发送组,将所述第二组中的各报文的CAN ID按照所述各报文的CANID的传输方向,分为第二接收组和第二发送组,分别在所述第一接收组、第二接收组、第一发送组和第二发送组中,将各组中的报文的CAN ID各自按照递增或递减的顺序依次匹配到各邮箱。
将各组中的报文的CAN ID各自按照递增或递减的顺序依次匹配到各邮箱时,可以通过判断分配到每个邮箱中的报文数量是否大于每个邮箱平均负载的报文数量(步骤S304),如果否,则继续执行步骤S305,继续向当前邮箱分配下一个CAN ID,如果是,则执行步骤S306,将CAN ID匹配到下一个邮箱,直到所有CAN ID与配置的各个邮箱匹配分配完成(步骤S307),分配结果如图4所示,例如邮箱2由CAN ID2和CAN ID3共用。然后根据公式(1)计算每个邮箱的过滤器值和掩码值(步骤S308),以得到邮箱配置信息。
通过综合考虑报文的传输方向、CAN ID对应的数据长度进行分组,能够使得CANID与匹配的邮箱的匹配关系更加合理,避免出现部分邮箱无法容纳匹配的CAN ID的情况。如此,能够使得所有的CAN ID都能够被匹配到的邮箱进行高效的筛选,以使得CAN 控制器从硬件层面实现对CAN ID的筛选,避免不必要的信息进入到配置的邮箱中,降低了CAN 控制器所在的芯片上的处理器的工作负荷,而且,极大的提高了各个邮箱过滤CAN ID的效率。
在本申请的一些实施例中,提供了一种基于CAN控制器的邮箱的配置方法。所述CAN控制器设置于片上系统,所述配置方法如图5,在步骤S501,经由与所述CAN控制器可通信传输信息的接口,获取所述CAN控制器的邮箱配置信息以及第二CAN总线数据信息,所述邮箱配置信息经所述CAN控制器所在的片上系统以外的处理器处理得到,至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息。在步骤S502,经由所述CAN控制器,配置与所述各邮箱长度相匹配的确定数量的邮箱。在步骤S503,将所述第二CAN总线数据信息中的各报文分配到与所述各报文的CAN ID匹配的邮箱中。如此,CAN 控制器可以直接根据获取的邮箱配置信息配置各个邮箱,并按照CAN ID与邮箱的匹配信息,将获取的CAN ID匹配到各自的邮箱当中,从而实现对各个邮箱的均衡负载。CAN 控制器获取的邮箱配置信息在CAN控制器所在的片上系统以外的处理器处理得到,而不是经由人工配置得到,因此,CAN 控制器基于邮箱配置信息配置将CAN ID分配到各个邮箱中的合理性更高。
进一步地,所述邮箱配置信息还包括至少包含两个CAN ID的邮箱的过滤器值和掩码值,所述配置方法还包括基于所述至少包含两个CAN ID的邮箱的过滤器值和掩码值,对至少包含两个CAN ID的邮箱的过滤器值和掩码值进行配置。CAN控制器可以基于邮箱配置信息,直接对至少包含两个CAN ID的邮箱的过滤器值和掩码值进行配置,从而直接过滤掉了每个邮箱不需要的CAN ID,而无需经过片上系统中的处理器进一步对各邮箱的CAN ID进行过滤,降低了片上系统上的处理器的工作负荷。尤其是,CAN 控制器可以直接从硬件层面实现对各个邮箱的CAN ID的过滤,极大的节省了算力,提高了对各个邮箱CAN ID进行过滤的效率。
在本申请的一些实施例中,所述邮箱配置信息经由CAN控制器所在的片上系统以外的处理器经由如下步骤处理得到:获取预先设置的第一CAN总线数据信息,所述第一CAN总线数据信息至少包括各报文的CAN ID、CAN ID对应的数据长度和CAN ID发送周期;基于所述CAN ID发送周期,获取预设时间内发送的总报文数量;基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度,且基于所述邮箱长度配置的邮箱的负载率不超过阈值负载率;基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,得到所述CAN ID与各邮箱的匹配信息。如此,使得CAN 控制器基于该CAN ID与各邮箱的匹配信息,能够得到负载均衡的配置的各个邮箱,各个邮箱对于自身匹配的CAN ID的处理效果更好,避免出现某些邮箱由于无法及时处理CAN ID导致数据丢失的问题。
在本申请的一些实施例中,所述步骤进一步包括:基于所述各邮箱匹配的CAN ID,按照公式(1)确定出至少包含两个CAN ID的邮箱的过滤器值和掩码值;
CAN ID and Mask=Filter公式(1);
其中,Mask表示掩码值,Filter表示过滤器值。
用户提前在电脑上计算出来至少包含两个CAN ID的邮箱的过滤器值和掩码值,并将写入到片上系统的CAN 控制器上,写入后由CAN控制器硬件执行过滤,不需要片上系统的处理器进行过滤。
在本申请的一些实施例中,基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度具体包括对所述各报文CAN ID对应的数据长度进行遍历,在所述各CANID对应的数据长度均相等的情况下,确定配置的邮箱长度与所述各CAN ID对应的数据长度相同。在所述各CAN ID对应的数据长度存在差异的情况下,所述邮箱长度包括第一邮箱长度和第二邮箱长度;在对所述各报文CAN ID对应的数据长度进行遍历的过程中,确定出CANID对应的最大数据长度,并将所述最大数据长度作为第二邮箱长度;基于总报文数量以及候选邮箱长度和第二邮箱长度,确定出配置的邮箱的负载率;在所述负载率不超过阈值负载率的情况下,确定所述候选邮箱长度为第一邮箱长度。如此,确定出的邮箱长度能够有利于CAN控制器配置的各个邮箱实现均衡负载。
在本申请的一些实施例中,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息具体包括如下步骤。基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;将所述第一CAN总线数据信息中各报文的CAN ID按照递增或递减的顺序依次匹配到所配置的各邮箱,在匹配的过程中,如果在预设时间内,当前配置的邮箱中已匹配的CAN ID 的数量未超过阈值数量,则继续向当前配置的邮箱中匹配下一个CAN ID;如果超过阈值数量,则将剩余的CAN ID继续按照顺序依次匹配到下一个配置的邮箱中,以使得确定数量的各个邮箱均匹配到CAN ID,并获取所述CAN ID与各邮箱的匹配信息。如此,可以避免CAN 控制器基于邮箱配置信息配置的各个邮箱,出现某些邮箱无法及时处理CAN ID导致有效数据丢失的问题,从而进一步提高了CAN ID与各邮箱的匹配信息的可靠性和合理性。
图6示出了一种基于CAN控制器的配置邮箱的片上系统600,所述片上系统600包括接口601以及与所述接口601可通信传输信息的CAN控制器602。所述接口601配置为从片上系统600以外的位置(例如分立的设备、分立的控制模块,或者分立的另一片上系统等等)获取所述CAN控制器602的邮箱配置信息以及第二CAN总线数据信息。所述邮箱配置信息经所述片上系统600以外的处理器通过本申请各个实施例所述的CAN控制器602的邮箱配置信息的获取方法得到,至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息以及至少包含两个CAN ID的邮箱的过滤器值和掩码值。所述CAN控制器602配置为获取所述邮箱配置信息,配置与所述各邮箱长度相匹配的邮箱数量,将所述第二CAN总线数据信息中的各报文分配到与所述各报文的CAN ID匹配的邮箱中,以及对至少包含两个CAN ID的邮箱的过滤器值和掩码值进行配置。如此,CAN 控制器602可以直接从硬件层面实现对各个邮箱的CAN ID的过滤,极大的节省了算力,提高了对各个邮箱CAN ID进行过滤的效率。
所述片上系统600,例如,可以利用处理器IP来作为片上系统600(SOC)的处理单元来执行对应的功能,从而可以实现为嵌入式系统。所述接口601可以传输信息,可以包括但不限于网络适配器、电缆连接器、串行连接器、USB连接器、并行连接器、高速数据传输适配器等,例如光纤、USB 3.0、雷电接口(Thunderbolt)等,无线网络适配器,诸如WiFi适配器、电信(3G、4G/LTE等)适配器等。
本申请实施例中的车辆可以是“汽车”、“车辆”和“整车”或者其它相似术语包括一般的机动车辆,例如包括轿车、SUV、MPV、公交车、卡车和其它载货或者载客车辆,包括各种船、艇在内的水运工具,以及航空器等,包括混合动力车辆、电动车辆、燃油车辆、插电式混合动力车辆、燃料电池汽车以及其它代用燃料车辆。其中,混合动力车辆指的是具有两种或者多种动力源的车辆,电动车辆包括纯电动汽车、增程式电动汽车等,本申请对此不做具体限定。
本申请描述了各种操作或功能,其可以被实现为软件代码或指令或被定义为软件代码或指令。此类内容可以是可以直接执行的源代码或差分代码(“增量”或“补丁”代码)(“对象”或“可执行”形式)。软件代码或指令可以存储在计算机可读存储介质中,并且在被执行时,可以使机器执行所描述的功能或操作,并且包括以机器(例如,计算装置、电子系统等)可访问的形式存储信息的任何机制,例如可记录或不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存装置等)。
还应理解,本发明实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,简称DR RAM)。
需要说明的是,当处理器为通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)集成在处理器中。
应注意,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
所述总线除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。
本申请描述的示例性方法可以至少部分地由机器或计算机实现。在一些实施例中,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本申请各个实施例所述的CAN控制器的邮箱配置信息的获取方法。这样的方法的实现可以包括软件代码,例如微代码、汇编语言代码、高级语言代码等。可以使用各种软件编程技术来创建各种程序或程序模块。例如,程序部分或程序模块可以用或借助Java、Python、C、C++、汇编语言或任何已知的编程语言来设计。可以将这样的软件部分或模块中的一个或多个集成到计算机系统和/或计算机可读介质中。这样的软件代码可以包括用于执行各种方法的计算机可读指令。该软件代码可以形成计算机程序产品或计算机程序模块的一部分。此外,在示例中,软件代码可以有形地存储在一个或多个易失性,非暂时性或非易失性有形计算机可读介质上,例如在执行期间或在其他时间。这些有形计算机可读介质的示例可以包括但不限于硬盘、可移动磁盘、可移动光盘(例如光盘和数字视频盘)、盒式磁带、存储卡或存储棒、随机存取存储器(RAM)、只读存储器(ROM)等。
此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本申请的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。因此,本说明书和示例旨在仅被认为是示例。
以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本申请。
以上实施例仅为本申请的示例性实施例,不用于限制本申请。本领域技术人员可以在本申请的实质和保护范围内,对本申请做出各种修改或等同替换,这种修改或等同替换也应视为落在本申请的保护范围内。
Claims (18)
1.一种CAN控制器的邮箱配置信息的获取方法,其特征在于,所述邮箱配置信息至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息,以使得所述CAN控制器基于所述邮箱配置信息配置与所述CAN ID相匹配的邮箱;
所述获取方法包括,经由CAN控制器所在的片上系统以外的处理器:
获取预先设置的第一CAN总线数据信息,所述第一CAN总线数据信息至少包括各报文的CAN ID、CAN ID对应的数据长度和CAN ID发送周期;
基于所述CAN ID发送周期,获取预设时间内发送的总报文数量;
基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度,且配置的邮箱长度能够容纳CAN ID对应的最大数据长度,得到的基于所述邮箱长度配置的邮箱的负载率不超过阈值负载率;
基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;
将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,得到所述CAN ID与各邮箱的匹配信息。
2.根据权利要求1所述的获取方法,其特征在于,所述邮箱配置信息还包括至少包含两个CAN ID的邮箱的过滤器值和掩码值,以使得所述CAN控制器基于所述过滤器值和掩码值对至少包含两个CAN ID的邮箱的报文进行过滤;
所述获取方法还包括:基于各邮箱匹配的CAN ID,按照公式(1)确定出至少包含两个CAN ID的邮箱的过滤器值和掩码值;
CAN ID and Mask=Filter公式(1);
其中,Mask表示掩码值,Filter表示过滤器值。
3.根据权利要求1所述的获取方法,其特征在于,基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度具体包括:
对所述各报文的CAN ID对应的数据长度进行遍历,在各CAN ID对应的数据长度均相等的情况下,确定配置的邮箱长度与各CAN ID对应的数据长度相同。
4.根据权利要求3所述的获取方法,其特征在于,在各CAN ID对应的数据长度存在差异的情况下,所述邮箱长度包括第一邮箱长度和第二邮箱长度;
在对所述各报文的CAN ID对应的数据长度进行遍历的过程中,确定出CAN ID对应的最大数据长度,并将所述最大数据长度作为第二邮箱长度;
基于总报文数量以及候选邮箱长度和第二邮箱长度,确定出配置的邮箱的负载率;
在所述负载率不超过阈值负载率的情况下,确定所述候选邮箱长度为第一邮箱长度。
5.根据权利要求4所述的获取方法,其特征在于,在所述负载率超过阈值负载率的情况下,对所述候选邮箱长度进行更新,以得到更新后的候选邮箱长度,直到基于所述更新后的候选邮箱长度和第二邮箱长度得到的负载率不超过所述阈值负载率。
6.根据权利要求4所述的获取方法,其特征在于,基于总报文数量以及候选邮箱长度和第二邮箱长度,确定出配置的邮箱的负载率具体包括:
基于第一CAN总线数据信息,确定出在预设时间内不大于候选邮箱长度的第一报文数量和不大于第二邮箱长度的第二报文数量;
将所述第一报文数量和所述第二报文数量相对于基于所述候选邮箱长度和所述第二邮箱长度确定的邮箱的分配结果作为各邮箱的负载率。
7.根据权利要求6所述的获取方法,其特征在于,基于总报文数量以及候选邮箱长度和第二邮箱长度,确定出配置的邮箱的负载率进一步包括:
获取所述第一报文数量与所述候选邮箱长度和第二邮箱长度的和的第一比值;
获取所述第一报文数量与预设时间内发送的总报文数量的第二比值;
获取所述第二报文数量与所述第二邮箱长度的第三比值;
获取所述第二报文数量与预设时间内发送的总报文数量的第四比值;
将所述第一比值、第二比值的乘积与所述第三比值、第四比值的乘积的和作为所述负载率。
8.根据权利要求1所述的获取方法,其特征在于,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息具体包括:
基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;
将所述第一CAN总线数据信息中各报文的CAN ID按照递增或递减的顺序依次匹配到所配置的各邮箱,在匹配的过程中,如果在预设时间内,当前配置的邮箱中已匹配的CAN ID的数量未超过阈值数量,则继续向当前配置的邮箱中匹配下一个CAN ID;
如果超过阈值数量,则将剩余的CAN ID继续按照顺序依次匹配到下一个配置的邮箱中,以使得确定数量的各个邮箱均匹配到CAN ID,并获取所述CAN ID与各邮箱的匹配信息。
9.根据权利要求8所述的获取方法,其特征在于,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次匹配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息进一步包括:
基于所述第一CAN总线数据信息,获取各报文的更新频率;
将所述更新频率超过阈值频率的关注报文的CAN ID预先分配到与所述关注报文的数据长度相同的关注邮箱中,以使得所述关注邮箱中仅具有所述关注报文的CAN ID;
将剩余各报文的CAN ID按照递增或递减的顺序依次匹配到除所述关注邮箱之外的剩余邮箱中。
10.根据权利要求8所述的获取方法,其特征在于,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次匹配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息进一步包括:
将CAN ID对应的数据长度不大于第一邮箱长度的报文的CAN ID配置为第一组,将CANID对应的数据长度大于第一邮箱长度的报文的CAN ID配置为第二组;
基于所述第一CAN总线数据信息,获取各报文的CAN ID的传输方向,所述传输方向包括接收方向和发送方向;
将所述第一组中的各报文的CAN ID按照所述各报文的CAN ID的传输方向,分为第一接收组和第一发送组;
将所述第二组中的各报文的CAN ID按照所述各报文的CAN ID的传输方向,分为第二接收组和第二发送组;
分别在所述第一接收组、第二接收组、第一发送组和第二发送组中,将各组中的报文的CAN ID各自按照递增或递减的顺序依次匹配到各邮箱。
11.一种基于CAN控制器的邮箱的配置方法,其特征在于,所述CAN控制器设置于片上系统,所述配置方法包括:
经由与所述CAN控制器可通信传输信息的接口,获取所述CAN控制器的邮箱配置信息以及第二CAN总线数据信息,所述邮箱配置信息至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息;
经由所述CAN控制器,配置与各邮箱长度相匹配的确定数量的邮箱;
将所述第二CAN总线数据信息中的各报文分配到与各报文的CAN ID匹配的邮箱中;
其中,所述邮箱配置信息经由CAN控制器所在的片上系统以外的处理器经由如下步骤处理得到:
获取预先设置的第一CAN总线数据信息,所述第一CAN总线数据信息至少包括各报文的CAN ID、CAN ID对应的数据长度和CAN ID发送周期;
基于所述CAN ID发送周期,获取预设时间内发送的总报文数量;
基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度,且配置的邮箱长度能够容纳CAN ID对应的最大数据长度,得到的基于所述邮箱长度配置的邮箱的负载率不超过阈值负载率;
基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;
将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,得到所述CAN ID与各邮箱的匹配信息。
12.根据权利要求11所述的配置方法,其特征在于,所述邮箱配置信息还包括至少包含两个CAN ID的邮箱的过滤器值和掩码值;
所述配置方法还包括:基于所述至少包含两个CAN ID的邮箱的过滤器值和掩码值,对至少包含两个CAN ID的邮箱的过滤器值和掩码值进行配置。
13.根据权利要求11所述的配置方法,其特征在于,所述步骤进一步包括:基于各邮箱匹配的CAN ID,按照公式(1)确定出至少包含两个CAN ID的邮箱的过滤器值和掩码值;
CAN ID and Mask=Filter公式(1);
其中,Mask表示掩码值,Filter表示过滤器值。
14.根据权利要求11所述的配置方法,其特征在于,基于所述总报文数量和CAN ID对应的数据长度,确定出配置的邮箱长度具体包括:
对所述各报文的CAN ID对应的数据长度进行遍历,在各CAN ID对应的数据长度均相等的情况下,确定配置的邮箱长度与各CAN ID对应的数据长度相同。
15.根据权利要求14所述的配置方法,其特征在于,在各CAN ID对应的数据长度存在差异的情况下,所述邮箱长度包括第一邮箱长度和第二邮箱长度;
在对所述各报文的CAN ID对应的数据长度进行遍历的过程中,确定出CAN ID对应的最大数据长度,并将所述最大数据长度作为第二邮箱长度;
基于总报文数量以及候选邮箱长度和第二邮箱长度,确定出配置的邮箱的负载率;
在所述负载率不超过阈值负载率的情况下,确定所述候选邮箱长度为第一邮箱长度。
16.根据权利要求11所述的配置方法,其特征在于,将所述第一CAN总线数据信息中各报文的CAN ID按照预设顺序依次分配到配置的各邮箱,以得到所述CAN ID与各邮箱的匹配信息具体包括:
基于配置的邮箱长度,得到与所述邮箱长度相匹配的确定数量的邮箱;
将所述第一CAN总线数据信息中各报文的CAN ID按照递增或递减的顺序依次匹配到所配置的各邮箱,在匹配的过程中,如果在预设时间内,当前配置的邮箱中已匹配的CAN ID的数量未超过阈值数量,则继续向当前配置的邮箱中匹配下一个CAN ID;
如果超过阈值数量,则将剩余的CAN ID继续按照顺序依次匹配到下一个配置的邮箱中,以使得确定数量的各个邮箱均匹配到CAN ID,并获取所述CAN ID与各邮箱的匹配信息。
17.一种基于CAN控制器的配置邮箱的片上系统,其特征在于,所述片上系统包括接口以及与所述接口可通信传输信息的CAN控制器;
所述接口配置为:
获取所述CAN控制器的邮箱配置信息以及第二CAN总线数据信息,所述邮箱配置信息经所述片上系统以外的处理器通过权利要求1-10中任一项所述的CAN控制器的邮箱配置信息的获取方法得到,至少包括配置的邮箱长度、CAN ID与各邮箱的匹配信息以及至少包含两个CAN ID的邮箱的过滤器值和掩码值;
所述CAN控制器配置为:
获取所述邮箱配置信息,配置与所述各邮箱长度相匹配的邮箱数量;
将所述第二CAN总线数据信息中的各报文分配到与所述各报文的CAN ID匹配的邮箱中;以及
对至少包含两个CAN ID的邮箱的过滤器值和掩码值进行配置。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1-10中任一项所述的CAN控制器的邮箱配置信息的获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310464496.7A CN116208581B (zh) | 2023-04-26 | 2023-04-26 | Can控制器的邮箱配置信息的获取方法、邮箱的配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310464496.7A CN116208581B (zh) | 2023-04-26 | 2023-04-26 | Can控制器的邮箱配置信息的获取方法、邮箱的配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116208581A CN116208581A (zh) | 2023-06-02 |
CN116208581B true CN116208581B (zh) | 2023-08-01 |
Family
ID=86513182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310464496.7A Active CN116208581B (zh) | 2023-04-26 | 2023-04-26 | Can控制器的邮箱配置信息的获取方法、邮箱的配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116208581B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016132318A (ja) * | 2015-01-16 | 2016-07-25 | 株式会社デンソー | 電子制御装置 |
CN106230688A (zh) * | 2016-07-20 | 2016-12-14 | 中国航空工业集团公司航空动力控制系统研究所 | 基于dsp2812的can通信通道间通讯设计方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102820998B (zh) * | 2012-08-27 | 2015-09-23 | 南京云创存储科技有限公司 | 实现面向办公应用的双机容错服务系统及其数据存储方法 |
US10708206B2 (en) * | 2017-12-12 | 2020-07-07 | Microsoft Technology Licensing, Llc | Mailbox protection in web conferencing systems |
CN112118125B (zh) * | 2020-08-05 | 2023-04-07 | 东风电驱动系统有限公司 | 一种can报文高负荷率接收方法及系统 |
CN114979058B (zh) * | 2022-06-30 | 2023-10-03 | 东风电驱动系统有限公司 | 一种can多邮箱复用处理方法及系统 |
CN115460035B (zh) * | 2022-08-08 | 2024-01-09 | 武汉海微科技有限公司 | 基于can控制器的文件收发方法、系统、介质及设备 |
-
2023
- 2023-04-26 CN CN202310464496.7A patent/CN116208581B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016132318A (ja) * | 2015-01-16 | 2016-07-25 | 株式会社デンソー | 電子制御装置 |
CN106230688A (zh) * | 2016-07-20 | 2016-12-14 | 中国航空工业集团公司航空动力控制系统研究所 | 基于dsp2812的can通信通道间通讯设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116208581A (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110248417B (zh) | 一种电力物联网中上行通信业务的资源分配方法及系统 | |
CN107920007B (zh) | 车辆网络中的多个通信节点的第一通信节点及其操作方法 | |
CN107196771A (zh) | 车载网络系统同步休眠方法、系统及网关控制器 | |
CN111178686B (zh) | 一种网约车的分配方法、装置、电子设备及存储介质 | |
CN111176792A (zh) | 一种资源调度方法、装置及相关设备 | |
EP3223201A1 (en) | Aircraft message management system | |
CN112199266A (zh) | 车机系统的日志传输方法、系统、车辆及存储介质 | |
CN116208581B (zh) | Can控制器的邮箱配置信息的获取方法、邮箱的配置方法 | |
CN113071364B (zh) | 电池调度评估方法、装置及计算机可读存储介质 | |
CN106789694A (zh) | 新型车载设备通信控制方法及系统 | |
CN113377658A (zh) | 一种车辆控制器调试方法和装置 | |
CN111866902B (zh) | 资源利用率的评估方法和装置 | |
WO2020240806A1 (ja) | 制御装置、無線中継装置、プログラム、及び制御方法 | |
CN112527490B (zh) | 节点资源管控方法、装置、电子设备及存储介质 | |
DE102017127284A1 (de) | Betriebsverfahren eines Kommunikationsknotens zur Zeitsynchronisation im Fahrzeugnetzwerk | |
CN112438036B (zh) | 车载通信装置、记录介质及消息发送方法 | |
CN117061349A (zh) | 一种车载云端服务部署方法、系统、电子设备、存储介质 | |
US20230097087A1 (en) | Image detection method based on neural network model, electronic device, and storage medium | |
CN116366600A (zh) | 一种锂离子电池模组多簇并机地址分配方法和系统 | |
CN111831229B (zh) | 一种车联网数据存储管理方法 | |
CN107507293A (zh) | 乘车人员监控方法及终端设备 | |
CN115686555A (zh) | 车辆的ota更新控制设备及方法 | |
CN115202313A (zh) | 用于管理车辆的电子控制单元的更新的系统和方法 | |
Velusamy et al. | Automotive sensor infrastructure-challenges and opportunities | |
CN105857211A (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 |