用于处理相干数据的方法和系统

文档序号:877481 发布日期:2021-03-19 浏览:1次 >En<

阅读说明:本技术 用于处理相干数据的方法和系统 (Method and system for processing coherent data ) 是由 M.G.弗雷克斯 J.J.麦克多诺 于 2020-09-18 设计创作,主要内容包括:提供了一种用于处理相干数据的方法、系统和计算机可读存储介质。在一个实施例中,用于处理相干数据的方法包括将相干数据分成两个分离的帧。此外,该方法包括将相同的相干数应用于两个分离的帧,并将包括这两个分离的帧的信号发送到接收模块。该方法还包括基于相同的相干数来确定两个分离的帧是否匹配。当两个分离的帧匹配时,该方法将这两个分离的帧输出到下游逻辑。该方法可以包括将这两个分离的帧添加到填入选定数量的最近接收的帧的缓冲器中,并且当这两个分离的帧不匹配时,从这两个分离的帧中识别一选定帧,并且在缓冲器中从最近接收的帧中搜索匹配帧。(A method, system, and computer-readable storage medium for processing coherent data are provided. In one embodiment, a method for processing coherent data includes dividing coherent data into two separate frames. Further, the method includes applying the same coherence number to two separated frames and transmitting a signal including the two separated frames to a receiving module. The method also includes determining whether the two separate frames match based on the same coherence number. When two separate frames match, the method outputs the two separate frames to downstream logic. The method may include adding the two separate frames to a buffer that fills a selected number of the most recently received frames and, when the two separate frames do not match, identifying a selected frame from the two separate frames and searching the buffer for a matching frame from the most recently received frames.)

用于处理相干数据的方法和系统

技术领域

本发明涉及用于处理相干数据的方法和系统。

背景技术

控制器局域网(CAN)总线是一种稳健的车辆总线标准,其被设计为旨在允许微控制器和设备在没有主机的应用程序中相互通信。这是一种基于消息的协议,最初是为汽车内的多路电线设计的以节省铜,但也可以用于许多其他环境。

现代汽车的各种子系统可能有多达七十个电子控制单元(ECU)。通常最大的处理器是发动机控制单元。其他用于变速器、安全气囊、防抱死制动系统/ABS、巡航控制、电动转向、音响系统、电动车窗、车门、后视镜调节、混合动力/电动汽车的电池和充电系统等。其中一些形成独立的子系统,但其他子系统之间的通信是必不可少的。控制器或子系统可能需要控制执行器或接收来自传感器的反馈。控制器局域网(CAN)标准的设计是为了方便控制器之间的信息通信,即一个控制器读取的传感器信息可以与其他控制器共享。一个关键的优点是,不同车辆系统之间的互连可以允许仅使用软件来实现广泛的安全、经济和方便的特性,如果这些是使用传统的汽车电子设备“硬连线”的,则这些功能将增加成本和复杂性。

在控制器局域网(CAN)总线中,数据通过帧进行通信。帧具有最大数据容量。相干数据,即,同时获得并应相干处理的数据,可能超过一个CAN帧的最大数据容量。

因此,期望提供用于处理超过CAN帧的数据容量的相干数据的方法、系统和计算机可读存储介质。此外,期望提供这样的方法、系统和计算机可读存储介质,以克服通过CAN总线的数据传输中的延迟或错误。此外,结合附图和引言,从随后的详细描述和所附权利要求中,其他期望的特征和特性将变得显而易见。

发明内容

提供了一种用于处理相干数据的方法、系统和计算机可读存储介质。在一个实施例中,用于处理相干数据的方法包括将相干数据分成两个分离的帧。此外,该方法包括将相同的相干数应用于两个分离的帧,并将包括这两个分离的帧的信号发送到接收模块。该方法还包括基于相同的相干数来确定两个分离的帧是否匹配。当两个分离的帧匹配时,该方法将这两个分离的帧输出到下游逻辑。

在该方法中,将相同的相干数应用于两个分离的帧可以包括从位受限的滚动计数器值中选择相同的相干数。此外,对两个分离的帧应用相同的相干数可以与向接收模块发送包括两个分离的帧的信号同时发生。在某些实施例中,基于信号传输的时间选择相同的相干数。在其他实施例中,该方法包括利用发送模块获得相干数据,例如通过读取或采样传感器或输入数据,并且基于获得相干数据的时间,即采样或读取传感器或输入数据的时间,选择相同的相干数。

在某些实施例中,该方法还包括利用车辆内的发送模块从车辆传感器读取或采样车辆传感器数据,其中车辆传感器数据是相干数据;将相干数据传输到同一车辆内的接收模块;处理来自两个分离的帧的相干数据,用于下游逻辑;以及基于该下游逻辑操作车辆;其中,所述发送模块将相干数据分成两个分离的帧,将相同的相干数应用于两个分离的帧,并将包括两个分离的帧的信号发送到接收模块;并且其中接收模块基于相同的相干数确定两个分离的帧是否匹配,并且当两个分离的帧匹配时,将两个分离的帧输出到下游逻辑。

该方法还可以包括将两个分离的帧添加到填入选定数量的最近接收的帧的缓冲器中,并且当两个分离的帧不匹配时,从两个分离的帧中识别一选定帧,并且在缓冲器中从最近接收的帧中搜索匹配帧,例如通过基于相干数选择匹配的帧。在这样的实施例中,该方法可以进一步包括从最近接收的帧中识别匹配帧,并且将所选定的帧和所述匹配帧输出到下游逻辑。在某些实施例中,该方法可以进一步包括确认最近接收的帧不包括匹配帧,并设置相干性错误指示。此外或可替换地,这种方法还可以包括分析最近接收的帧以识别期望的相干数或相干数范围。在某些实施例中,将两个分离的帧中的每一个的相干数与期望的相干数或相干数范围进行比较。

在另一个实施例中,提供了一种用于处理相干数据的系统。该系统包括由通信总线耦合的通信网络、被配置为发送包括在两个分离的CAN帧之间划分的相干数据的信号并对两个分离的CAN帧应用相同的相干数的发送模块、包括用于存储选定数量的最近接收的帧的缓冲器的接收模块、以及用于基于每个帧的相干数匹配帧的对齐模块。在某些实施例中,该系统还包括下游逻辑,该下游逻辑被配置为从对齐模块接收匹配的帧。

在该系统中,发送模块可以被配置为从位受限的滚动计数器值中选择相同的相干数。此外,发送模块可以被配置为在将信号发送到接收模块的同时,将相同的相干数应用于两个分离的CAN帧。此外,发送模块可以被配置为基于信号被发送的时间来选择相同的相干数。或者,发送模块可以被配置为基于获得相干数据的时间,即传感器或输入数据被采样或读取的时间,选择相同的相干数。

在某些实施例中,对齐模块可以被配置为搜索缓冲器以从最近接收的帧中以寻找匹配帧。此外,对齐模块可以被配置为当最近接收的帧不包括匹配帧时设置相干性错误指示。

此外,在该系统中,对齐模块可以被配置为分析最近接收的帧,以识别期望的相干数或相干数范围,并将两个分离的帧中的每一个的相干数与期望的相干数或相干数范围进行比较。

另一个实施例包括具有嵌入其中的程序指令的非暂时性计算机可读存储介质,该程序指令可由处理器读取以使处理器执行用于处理相干数据的方法,该方法包括将相干数据分成两个分离的帧,将相同的相干数应用于两个分离的帧,将包括两个分离的帧的信号传输到接收模块,基于相同的相干数确定两个分离的帧是否匹配,并且当两个分离的帧匹配时,将两个分离的帧输出到下游逻辑。在某些实施例中,从位限制滚动计数器值中选择相同的相干数。

提供本概述是为了以简化形式介绍将在下面的详细描述中进一步描述的一些概念。该概述不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图说明

下文将结合以下附图描述本主题,其中相同的数字表示相同的元件,并且其中:

图1是根据本文实施例的用于处理相干数据的系统的示意图;

图2是示出根据一个或多个实施例的用于处理相干数据的方法的流程图。

具体实施方式

下面的详细描述本质上仅仅是说明性的,并不旨在限制这里描述的用于处理相干数据的方法、系统和计算机可读存储介质的实施例。如这里所使用的,词语“示例性的”意味着“用作例子、实例或说明”。这里描述为示例性的任何实施方式不一定被解释为比其他实施方式优选或有利。此外,不打算受前面的技术领域、背景技术、发明内容或下面的详细描述中提出的任何明示或暗示的理论的约束。应当理解,在所有附图中,相应的附图标记表示相似或相应的部件和特征。如这里所使用的,术语模块指的是处理电路,其可以包括专用集成电路、电子电路、处理器(共享的、专用的或成组的)和执行一个或多个软件或固件程序的存储器、组合逻辑电路和/或提供所述功能的其他合适的组件。

本文的实施例可在下文中参考可采用编程和计算机程序产品的方法、系统、设备或装置的示意图或流程图来描述。应当理解,示意性或流程图图示的框和框的组合可以通过包括计算机程序指令在内的编程指令来实现。这些计算机程序指令可以被加载到计算机或其他可编程数据处理设备(例如控制器、微控制器或处理器)上以产生机器,使得在计算机或其他可编程数据处理设备上执行的指令创建用于实现流程图块或多个块中指定的功能的指令。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指导计算机或其他可编程数据处理设备以特定方式运行,使得存储在计算机可读存储器中的指令产生包括实现流程图块或多个块中指定的功能的指令的制品。计算机程序指令也可以被加载到计算机或其他可编程数据处理设备上,以使得在计算机或其他可编程设备上执行一系列操作步骤,从而产生计算机实现的过程,使得在计算机或其他可编程设备上执行的指令提供用于实现流程图块中指定的功能的步骤。编程指令也可以存储在电子电路中和/或通过电子电路实现,包括与传感器设备、装置和系统结合使用的集成电路和专用集成电路。

如本文所述,提供了用于在控制器局域网(CAN)中处理数据的方法、系统和计算机可读存储介质。更具体地,这里描述的相干数据处理方案提供了处理大于单个CAN帧限制的数据量。具体而言,这里的实施例提供了将相干数据分割成两个或更多个独立的CAN帧,并且成功地发送和接收这样的CAN帧,同时消除或减少由于帧延迟引起的相干数据的不匹配。结果,这里描述的系统和方法可以确保由下游逻辑处理的相干数据是由原始控制模块发出的相同集合。

当从一台设备传输的一组数据超过了单个CAN网帧的容量时,数据将通过多个相互靠近的分离的帧传输。在CAN发送时间的变化和接收设备逻辑的执行速率之间,这些分离的帧可能不会像发送器预期的相同集合或对那样被处理。当两个帧中的数据相干时,就有必要确保收到的每个帧都正确配对,以供下游逻辑使用。

在每一帧数据中发送一个时间戳会很快导致一个CAN帧上的位溢出。因此,这里描述的实施例不与数据帧一同发送时间戳。相反,这里描述的实施例使用相干数来代替时间戳。在示例性实施例中,相干数是从每次位寄存器填充时滚动的有限范围的值中选择的。因此,每个相干数是一个位受限的滚动数,其用于验证消息从发送模块发出的时间点。在本文的示例性实施例中,发送模块同时向CNA帧分配相干数,并发送包括相干数的CAN帧。

此外,在本文描述的实施例中,接收CAN帧的接收模块采用对齐过程。在某些实施例中,示例性接收模块包括用于保存指定的有限数量的最近接收的消息(帧)的缓冲器。缓冲器是一种存储机制,用于存储最近的消息历史,以便对齐过程从中提取信息。对齐过程利用来自缓冲器的输出评估与唯一帧相关联的相干数,以按照发送控制器的意图通过主机控制器智能地处理它们。

示例性接收模块进一步应用算法,该算法使用相干数来对齐从发送模块接收的任何不匹配的数据。该算法可以利用现有的诊断数据,并且可以被下游诊断所利用。这使得缓冲器和对齐算法可以轻松集成到现有的软件环中。

使用上游诊断信息,对齐过程和缓冲器仅在理想条件下使用处理能力。对齐过程向下游发送其自身的诊断信息,以防止在未对齐的条件下处理其数据。

因此,当接收模块上的CNA帧没有对齐时,有效的数据对可以在缓冲器内级联,以做出准确的控制决策。在缓冲器不包含有效数据对的情况下,依赖于该数据的下游诊断将暂停,直到可以配对有效数据。对齐不良将触发故障诊断码,并可提醒维修技师已发生的特定故障。

如本文进一步描述的,分离帧上的相干数据可能被偏移,使得相干数据的并行处理被禁止。

因此,提供了一种系统和方法,该系统和方法具有一种算法,当从控制器局域网接收到包含这种相干数据的两个或多个帧时,该算法提供严格相干的数据。在示例性实施例中,当遇到帧之间的滚动计数器值的偏移时,滚动计数器值(例如0到15)、存储缓冲器和一组算法被用来诊断和重新对齐来自分离的帧的数据。该数据然后以相干的形式提供给下游应用软件。

虽然其他系统可能丢弃被发现不相干的数据,但是这里描述的实施例提供了匹配数据集以创建保持相干数据的帧对或组。因此,必须一致使用的安全关键信息可以打包到独立的CAN框架中。结果,这里描述的实施例满足网络安全保护要求,同时保持安全关键信息的保真度。

图1提供了机动车辆70的示意图,其包括用于处理相干数据10的系统100,例如控制器局域网。如图所示,相干数据10最初由发送模块20接收或产生,并被分成两个分离和不同的控制器局域网(CAN)帧或数据集11和12。虽然示出了两个帧,但是应当理解,相干数据10可以根据需要分成更多数量的帧。在某些实施例中,发送模块20采样或读取传感器或输入数据以获得相干数据10。

在示例性实施例中,发送模块20从车辆传感器60获得车辆传感器数据形式的相干数据10。示例性车辆传感器60监测车辆部件65的操作状况或性能。车辆70可以包括各种传感器60,用于提供或从相应的车辆部件65获取信息。例如,传感器60可包括变速器换档位置传感器、变速器输出速度传感器、车轮速度传感器、曲柄位置传感器、凸轮位置传感器、制动踏板位置传感器、加速踏板位置传感器或汽车中常用的其他传感器。

在图1中,在相干数据10被分成CAN帧11和12之后,CAN帧11和12从发送模块20发送,并且同时被分配一个相干数15。在示例性实施例中,控制器局域网100的发送模块20中的CAN收发器或CAN发送逻辑25分配相干数15并发送CAN帧11和12。相干数15存储在每个帧内。相干数15代表时间戳。例如,从时间=0到时间=20ms分配相干数为0,从时间=20ms到时间=40ms分配相干数为1,从时间=40ms到时间=60ms分配相干数为2,等等,直到滚动计数器复位,例如从15回到0。在某些实施例中,基于传感器或输入数据被发送模块20采样或读取的时间来设置相干数。在其他实施例中,基于发送帧的时间来设置相干数。

CAN帧11和12在由通信总线耦合的通信网络中通信,如图1中箭头所示。如图1所示,CAN帧11和12由接收模块30接收,并被放置在相干性和输入数据处理模块45内的缓冲器35中。选定数量的最近接收的CAN帧06、07、08和09也存储在缓冲器35中。在示例性实施例中,帧06、08和11包含同一组信息,随时间动态变化。同样,帧07、09和12包含同一组信息,随时间动态变化。

在缓冲器35中,比较CAN帧11和12的相干数15。假设在分配相干数、发送CAN帧11和12以及接收CAN帧11和12的过程中没有遇到延迟或错误,那么CAN帧的相干数15应该是相同的,即匹配的。当CAN帧的相干数15匹配时,CAN帧11和12中的数据被发送到下游控制器逻辑50。

然而,如果CAN帧11和12的相干数15不匹配,则接收模块30利用相干性和输入数据处理模块45内的对齐模块40来搜索缓冲器35。下表提供了当接收成对的CAN帧11和12(即,数据集A和B)时的对齐处理的示例,相干数为15(即,相干性A和相干性B)。

在表1中,在时间=0ms时,第一帧11或数据集A被接收为相干数(相干性A)为0的集0,第二帧12或数据集B被接收为相干数(相干性B)为0的集0。因为CAN帧的相干数都是0,所以数据集A和数据集B在时间=0ms时可以输出到下游控制器逻辑。类似地,在时间=50ms时,第一帧11或数据集A被接收为相干数(相干性A)为1的集1,第二帧12或数据集B被接收为相干数(相干性B)为1的集1。因为CAN帧的相干数都是1,所以数据集A和数据集B在时间=50ms时可以输出到下游控制器逻辑。如表1所示,每个时间段的数据集A和B匹配,并且可以作为输出数据集A和B输出到下游控制器逻辑。

在表2中,在时间=0ms时,第一帧11或数据集A被接收为相干数(相干性A)为0的集0,第二帧12或数据集B被接收为相干数(相干性B)为1的集1。由于CAN帧的相干数不匹配,数据集A和数据集B在时间=0ms时不会一起输出到下游控制器逻辑。然后,对齐模块用于搜索缓冲器,以寻找与任一数据集的相干数的匹配。假设较早接收的数据集B,例如在时间=-50ms的数据集B(未在表2中示出),具有0的相干数,则来自时间=0ms的数据集A(集0)和来自时间=-50ms的数据集B(集0)由对齐模块匹配,并作为输出数据集A和B一起输出到下游控制器逻辑

类似地,来自时间=50ms的数据集A(集1)和来自时间=0ms的数据集B(集1)将由对齐模块匹配,并一起输出到下游控制器逻辑;时间=100ms的数据集A(集2)和时间=50ms的数据集B(集2)将由对齐模块匹配,并一起输出到下游控制器逻辑;时间=150ms的数据集A(集3)和时间=100ms的数据集B(集3)将由对齐模块匹配,并一起输出到下游控制器逻辑;并且来自时间=200ms的数据集A(集4)和来自时间=150ms的数据集B(集4)将由对齐模块匹配并一起输出到下游控制器逻辑。可以看出,每个数据集B到下游控制器逻辑的传输被延迟至少50ms,以等待匹配的相应数据集A的到达。

在表3中,在时间=0ms时,第一帧11或数据集A被接收为相干数(相干性A)为0的集0,第二帧12或数据集B被接收为相干数(相干性B)为2的集2。由于CAN帧的相干数不匹配,数据集A和数据集B在时间=0ms时不会一起输出到下游控制器逻辑。然后,对齐模块用于搜索缓冲器,以寻找与任一数据集的相干数的匹配。假设较早接收的数据集B,例如在时间=-100ms的数据集B(未在表3中示出),具有0的相干数,则来自时间=0ms的数据集A(集0)和来自时间=-100ms的数据集B(集0)由对齐模块匹配,并作为输出数据集A和B一起输出到下游控制器逻辑

在时间=50ms时,第一帧11或数据集A被接收为相干数(相干性A)为1的集1,第二帧12或数据集B被接收为相干数(相干性B)为3的集3。由于CAN帧的相干数不匹配,数据集A和数据集B在时间=50ms时不会一起输出到下游控制器逻辑。然后,对齐模块用于搜索缓冲器,以寻找与任一数据集的相干数的匹配。假设较早接收的数据集B,例如在时间=-50ms的数据集B(未在表3中示出),具有1的相干数,则来自时间=50ms的数据集A(集1)和来自时间=-50ms的数据集B(集1)由对齐模块匹配,并作为输出数据集A和B一起输出到下游控制器逻辑。

同样,来自时间=100ms的数据集A(集2)和来自时间=0ms的数据集B(集2)将由对齐模块匹配,并一起输出到下游控制器逻辑;来自时间=150ms的数据集A(集3)和来自时间=50ms的数据集B(集3)将由对齐模块匹配,并一起输出到下游控制器逻辑;来自时间=200ms的数据集A(集4)和来自时间=100ms的数据集B(集4)将由对齐模块匹配,并一起输出到下游控制器逻辑。可以看出,每个数据集B到下游控制器逻辑的传输被延迟至少100ms,以等待匹配的相应数据集A的到达。

表4示出了可以对用于数据集匹配的搜索施加限制。具体而言,系统可以被设置为仅在最近接收的两个帧内在缓冲器中搜索匹配。因此,在表4中,在时间=0ms时,第一帧11或数据集A被接收为相干数(相干性A)为0的集0,第二帧12或数据集B被接收为相干数(相干性B)为3的集3。由于CAN帧的相干数不匹配,数据集A和数据集B在时间=0ms时不会一起输出到下游控制器逻辑。然后,对齐模块用于在缓冲器中搜索与任一数据集的相干数的匹配,但仅在最近接收的两个帧内进行搜索,例如在t=-50和t=-100。假设从时间=-50到时间=-100没有找到相干数为3的数据集A,从时间=-50到时间=-100没有找到相干数为0的数据集B,则对齐模块生成相干性错误指示,即指示相干性故障未决,并且没有新的数据集输出到下游控制器逻辑。在这种情况下,最后的有效数据集或等效物,例如表4中的“集15”,可以输出到下游控制器逻辑。

在时间=50ms时接收数据集A为集1和数据集B为集4之后,对齐模块搜索缓冲器以寻找与任一数据集的相干数的匹配,但是仅在最后两个最近接收的帧内。假设从时间=0到时间=-50没有找到相干数为4的数据集A,从时间=0到时间=-50没有找到相干数为1的数据集B,则对齐模块再次生成相干性错误指示,或指示相干性故障未决,并且没有新的数据集输出到下游控制器逻辑。同样,最后的有效数据集或等同物,例如表4中的“集15”,可以输出到下游控制器逻辑。

这一过程对于时间=100ms进行重复,并且在没有发现匹配并且连续第三个帧周期产生相干性错误指示后,对齐模块可以设置诊断困境代码(DTC)。在某些实施例中,对齐模块被编程为在接收到三个连续的帧周期而在定义的搜索帧内(还可以选择其他限制)没有找到匹配之后,设置DTC。

当设置DTC时,输出数据被设置为无效,因此下游控制器逻辑不使用任何接收到的数据集,因为其中的数据没有被确认为是由发送模块同时生成的。接收模块中的下游控制器逻辑可以在限定的时间段内继续使用从发送模块接收的最后验证的相干数据对,例如表4中为数据集15,直到出于安全或功能的原因,禁止使用这样的数据。

表5示出了单个重复或延迟帧的处理。在时间=0ms、时间=50ms、时间=100ms和时间=200ms接收的数据集成对排列,并如以上关于表1所述进行处理。然而,在时间=150ms时,第一帧11或数据集A被接收为相干数(相干性A)为3的集3,而第二帧12或数据集B被接收为相干数(相干性B)为2的集2。在规定的范围内,相干数3没有匹配项,而时间=100ms的数据集A被设置为相干数为2的数据集2。因此,对齐模块将时间=100ms的数据集A与时间=150ms的数据集B配对,并允许这些数据集的输出保持不变。

表6示出了两个重复或延迟帧的处理。在时间=0ms、时间=50ms和时间=100ms接收的数据集成对排列,并按照上面关于表1的描述进行处理。然而,在时间=150ms时,第一帧11或数据集A被接收为相干数(相干性A)为3的集3,而第二帧12或数据集B被接收为相干数(相干性B)为2的集2。在规定范围内,相干数3没有匹配项,而时间=100ms的数据集A被设置为相干数为2的数据集2。因此,对齐模块将时间=100ms的数据集A与时间=150ms的数据集B配对,并允许这些配对数据集的输出持续不变。

此外,在时间=200ms时,第一帧11或数据集A被接收为相干数(相干性A)为4的集4,而第二帧12或数据集B被接收为相干数(相干性B)为2的集2。在规定范围内没有相干数4的匹配,而在时间=100ms的数据集A被设置为相干数为2的数据集2。因此,对齐模块将时间=100ms的数据集A与时间=200ms的数据集B配对,并继续允许这些配对数据集的输出持续。

表7示出了三个重重复或延迟帧的处理。在时间=0ms和时间=50ms接收的数据集成对排列,并按照上面关于表1的描述进行处理。然而,在时间=100ms时,第一帧11或数据集A被接收为相干数(相干性A)为2的集2,在时间=150ms时,第一帧11或数据集A被接收为相干数(相干性A)为3的集3,并且在时间=200ms时,第一帧11或数据集A被接收为相干数(相干性A)为4的集4;而在时间=100ms、150ms和200ms时,第二帧12或数据集B被接收为相干数为1的集1。在规定范围内,相干数2、3或4不匹配,而时间=50ms的数据集A被设置为相干数(相干性A)为1的1。因此,对齐模块将时间=50ms的数据集A与时间=100ms的数据集B、时间=150ms的数据集B和时间=200ms的数据集B配对,并允许这些配对数据集的输出持续。

如表7所示,在第三次连续未能找到匹配的相干数之后的时间=200ms,对齐模块产生相干性错误指示,即指示相干性故障未决。在其他实施例中,相干性错误指示可以在一个这样的故障之后指示,或者在任何确定数量的这样的故障之后指示。在第三个连续帧周期(或其他规定周期)产生相干性错误指示后,对齐模块可设置DTC。当设置DTC时,输出数据被设置为无效,因此下游控制器逻辑不使用任何接收到的数据集,因为其中的数据没有被确认为是由发送模块同时生成的。接收模块中的下游控制器逻辑可以在限定的时间段内继续使用从发送模块接收的最后验证的相干数据对,例如表7中的数据集1,直到出于安全或功能的原因,禁止使用这样的数据。

表8示出了随机遗失一帧的数据处理。在时间=0ms、时间=50ms、时间=150ms和时间=200ms接收的数据集成对对齐,并如以上关于表1所述进行处理。然而,在时间=100ms时,第一帧11或数据集A被接收为相干数为2的集2,而第二帧12或数据集B被接收为相干数为0的坏数据集。对齐模块将数据集B识别为坏数据集。具体而言,对齐模块识别由先前接收的数据集对建立的模式,并且可以定义可预期接收的一个或多个特定数。当接收到预期数范围之外的数(例如0)时,对齐模块将该数识别为反映坏数据集,并且不寻求为坏数据集寻找配对。相反,对齐模块可以为相干数2寻找配对。在规定的帧范围内没有找到配对之后,对齐模块允许包括集1的先前匹配的配对的输出持续而不更新。如所示,对齐模块生成相干性错误指示,即指示相干性故障未决。在时间=150ms处接收到匹配的数据集之后,对齐模块移除相干性错误指示。

表9示出了处理具有多个随机遗失帧的数据。在时间=0ms和时间=50ms接收的数据集成对对齐,并按照上面关于表1的描述进行处理。然而,在时间=100ms时,第一帧11或数据集A被接收为相干数为2的集2,而第二帧12或数据集B被接收为相干数为0的坏数据集。如上所述,对齐模块将数据集B识别为坏数据集。因此,对齐模块可以只寻找相干数为2的对。在规定的帧范围内没有找到配对之后,对齐模块允许包括集1的先前匹配的配对的输出持续而不更新。如图所示,在时间=100ms时,对齐模块生成相干性错误指示,即指示相干性故障未决。

在表9中,在时间=150ms时,第一帧11或数据集A被接收为相干数为3的集3,而第二帧12或数据集B被接收为相干数为15的坏集。同样,15在预期的值范围之外,并且被对齐模块识别为坏相干数。对齐模块可以寻找数据集A的相干数3的匹配。在规定的帧范围内没有找到匹配后,对齐模块允许包括集1的先前匹配的配对的输出持续而不更新。如图所示,对齐模块继续生成相干性错误指示,即指示相干性故障未决。

在时间=200ms时,第一帧11或数据集A被接收为相干数为4的集4,而第二帧12或数据集B被接收为相干数为12的坏集。同样,12在预期值范围之外,并且被对齐模块识别为坏相干数。对齐模块可以寻找数据集A的相干数为4的匹配。在规定的帧范围内没有找到匹配后,对齐模块允许包括集1的先前匹配的配对的输出持续而不更新。此外,根据用户选择的三个连续帧周期的限制,当第三组帧不包括成对或可成对的数据集时,对齐模块设置DTC,并且输出数据被设置为无效。如上所述,可以定义或选择用于设置DTC和将输出数据设置为无效的其他限制。

表10示出了类似于上面表7的三个重复或延迟帧的处理。然而,表10示出了使用外部CAN故障指示,即指示图1的CAN 100出现故障。

如表10的实施例所示,接收模块接收或者可以预期接收数据集A和B。如果接收模块没有接收到新的数据集,则接收模块可以向对齐模块传达没有接收到新的数据。例如,接收模块可以传达没有接收到新的帧12/数据集B,即数据集B是陈旧数据。结果,系统产生外部CAN故障指示,处理的某些功能可能会暂停。

现在参考图2,提供了用于处理相干数据的示例性方法200的流程图。在动作框212,传感器或输入数据作为相干数据获得,例如通过发送模块的采样或读取。例如,车辆传感器可以监测车辆部件的属性或在车辆部件处,并且发送模块可以采样或读取传感器数据。在动作块214,相干数据被划分成两个或多个分离的CAN帧,每个CAN帧被分配一个相干数。可以基于获得相干数据的时间或者基于发送帧的时间来选择相干数。在动作块216,将CAN帧从发送模块发送到接收模块。

在动作块222,接收包括相干数的输入的CAN帧。然后,方法200在查询224步骤中确定CAN总线是否有故障。如果CAN总线出现故障,则在动作块226,该方法停止对下游逻辑的输入数据的处理。如果总线没有故障,那么在动作块228,该方法用输入的CAN帧填入缓冲器。

该方法在查询230步骤处继续,在查询230处,确定最近接收的CAN帧是否具有彼此匹配的相干数。如果两个最近接收的CAN帧的相干数匹配,则方法200在查询232确定相干性故障是否激活,并且帧是否呈现停滞状态。如果是,则在动作框234,该方法将相干性故障保持为激活的。如果否,则在动作块236,成对的CAN帧被输出到下游逻辑。

如果在查询230处确定最近接收的CAN帧不具有匹配的相干数,则方法200在查询240确定帧1的相干数是否在帧2的相干数之前。如果帧1的相干数在帧2的相干数之前,则该方法继续至查询242,确定帧1缓冲器是否包含具有与帧2的相干数匹配的相干数的数据集。此外,查询242检查帧1缓冲器的顺序还包含反映定义范围内的陈旧或增加的值的相干数顺序,例如,如果最早的缓冲器数据包含相干数5,但是下一个最新的缓冲器数据包含相干数4,则不存在有效的相干数顺序。如果帧1缓冲器确实包含具有与帧2的相干数匹配的相干数的数据集,则在动作块244,方法200将具有匹配的相干数的帧配对。此后,在动作框236,成对的帧被输出到下游逻辑。

如果在查询242处确定帧1缓冲器不包含具有与帧2的相干数匹配的相干数的数据集,则在动作块246处,方法200生成相干性错误指示,即,将相干性故障设置为未决。

如果在查询240处确定帧1的相干数不在帧2的相干数之前,则该方法在查询248处继续,确定帧2缓冲器是否包含相干数与帧1的相干数匹配的数据集。此外,查询248检查帧2缓冲器的顺序还包含反映在定义的范围内的陈旧或增加的值的相干数顺序,例如,如果最早的缓冲器数据包含相干数5,但是下一个最新的缓冲器数据包含相干数4,则不存在有效的相干数顺序。如果帧2缓冲器确实包含具有与帧1的相干数匹配的相干数的数据集,则在动作块244,方法200将具有匹配的相干数的帧配对。此后,在动作框236,成对的帧被输出到下游逻辑。

如果在查询248处确定帧2缓冲器不包含具有与帧1的相干数匹配的相干数的数据集,则在动作块246处,方法200生成相干性错误指示,即,指示相干性故障未决。

方法200可以在动作框236输出成对的帧之后继续,在动作框252处,在下游逻辑中处理来自两个分离的帧的相干数据。在动作框256处,该方法包括基于下游逻辑对相干数据的处理来操作车辆。

如本文所述,提供了一种用于处理相干数据的方法、系统和计算机可读存储介质的实施例。在实施例中,相干数据被分成两个或多个分离的帧用于传输。相同的相干数被应用于保存相干数据的帧对或帧组。在传送帧之后,接收模块能够基于应用于帧的相干数来确定接收的帧是否保存相干数据。这里的实施例提供允许在帧的发送和接收中存在延迟或错误的情况下处理相干数据。

虽然在前面的详细描述中已经呈现了至少一个示例性方面,但是应当理解还存在大量的变化。还应当理解,一个或多个示例性方面仅仅是示例,并不旨在以任何方式限制所要求保护的主题的范围、适用性或配置。相反,前述详细描述将为本领域技术人员提供实现本主题的示例性方面的便利的路线图。应当理解,在不脱离所附权利要求阐述的主题的范围的情况下,可以对示例性方面中描述的元件的功能和布置进行各种改变。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:图像形成装置和数据一致性判断方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!