工程机械及其网络优化方法和装置与流程

文档序号:24979954发布日期:2021-05-07 22:54阅读:84来源:国知局
工程机械及其网络优化方法和装置与流程

本公开涉及控制器局域网络(can)技术领域,尤其是一种工程机械及其网络优化方法和装置。



背景技术:

can总线在工程机械领域的应用越来越广泛,尤其是实时性要求高的数据传输场合。

can总线采用非破坏性总线仲裁技术,即,在多个节点同时发送数据时,采用仲裁机制优先传输高优先级的报文,但这会导致低优先级的报文的实时性得不到保证。



技术实现要素:

发明人注意到,相关技术中,虽然can总线有仲裁机制,但在仲裁完成前,多个节点仍会同时经由can总线发送报文。在can总线的负载率大的情况下,由于信号会叠加,造成信号的幅值变大或信号变形,降低了节点间的通信质量,而低优先级报文甚至无法发送。即,报文的成功率和及时性无法保证。

为了解决上述问题,本公开实施例提出了如下解决方案。

根据本公开实施例的一方面,提供一种工程机械的网络优化方法,包括:所述第一节点接收每个第二节点按照预设发送周期经由控制器局域网络can总线发送的至少一种报文;所述第一节点根据can总线的波特率和接收到的报文,确定can总线的负载率;在所述负载率大于预设负载率的情况下,所述第一节点向至少一个第二节点发送增大指令,以增大一种或多种报文的预设发送周期,直到所述负载率不大于所述预设负载率。

在一些实施例中,所述负载率包括瞬时负载率,所述第一节点每隔第一时间间隔根据第一预设时间段内接收到的第一组报文确定一次所述瞬时负载率,所述第一预设时间段的结束时刻为确定所述瞬时负载率的当前时刻;在每次确定的所述瞬时负载率大于can总线允许的最大瞬时负载率的情况下,所述第一节点向所述第一组报文对应的第一组第二节点发送所述增大指令,以增大所述第一组报文中的一种或多种报文的预设发送周期,直到下一次确定的所述瞬时负载率不大于所述最大瞬时负载率。

在一些实施例中,所述第一节点向所述第一组报文对应的第一组第二节点发送所述增大指令包括:所述第一节点优先向所述第一组报文中优先级最低的某种报文对应的第二节点发送所述增大指令,以增大该种报文的预设发送周期。

在一些实施例中,所述第一节点向所述第一组报文对应的第一组第二节点发送所述增大指令包括:所述第一节点按照所述第一组报文中每种报文的优先级从低到高的顺序依次向所述第一组第二节点发送所述增大指令,以按照优先级从低到高的顺序依次增大所述第一组报文中每种报文的预设发送周期。

在一些实施例中,所述方法还包括:所述第一节点根据所述第一组报文中每种报文的预设发送周期的变化范围,确定所述第一组报文中每种报文的预设发送周期增大后的多个目标值;其中,所述增大指令使得所述第一组报文中每种报文的预设发送周期按照从小到大的顺序依次增大为每种报文的多个目标值,并且,所述增大指令使得所述第一组报文中每种报文的预设发送周期按照优先级从低到高的顺序依次增大为一个目标值后,再使得所述第一组报文中每种报文的预设发送周期按照优先级从低到高的顺序依次增大为另一个目标值。

在一些实施例中,所述负载率包括平均负载率,所述第一节点每隔第二时间间隔根据第二预设时间段内接收到的第二组报文确定一次所述平均负载率,所述第二预设时间段的结束时刻为确定所述平均负载率的当前时刻;在连续m次确定的所述平均负载率大于can总线允许的最大平均负载率的情况下,所述第一节点向每个第二节点发送所述增大指令,以增大每个第二节点发送的每种报文的预设发送周期的指令,直到下一次确定的所述平均负载率不大于所述最大平均负载率,m为大于或等于2的整数。

在一些实施例中,所述第一节点向每个第二节点发送所述增大指令包括:所述第一节点按照所述第二组报文中每种报文的优先级从低到高的顺序依次向对应的第二节点发送所述增大指令,以按照优先级从低到高的顺序依次增大所述第二组报文中每种报文的预设发送周期。

在一些实施例中,所述方法还包括:在连续n次确定的所述平均负载率小于can总线允许的最小平均负载率的情况下,所述第一节点向每个第二节点发送减小指令,以减小每个第二节点发送的每种报文的预设发送周期的指令,直到下一次确定的所述平均负载率不小于所述最小平均负载率,所述最小平均负载率小于所述最大平均负载率,n为大于或等于2的整数。

在一些实施例中,所述方法还包括:所述第一节点根据接收到每帧报文的时间,确定can总线的至少一个空闲时间段;所述第一节点判断接收到的每帧报文是否被仲裁;所述第一节点根据每帧报文是否被仲裁,计算每种报文的连续p帧报文的仲裁率,p为大于或等于2的整数;在某种报文的连续p帧的仲裁率大于can总线允许的最大仲裁率的情况下,所述第一节点向发送该种报文的第二节点发送延时指令,以使得该第二节点延时特定时间后在一个空闲时间段内开始按照该种报文的预设发送周期发送该种报文。

在一些实施例中,所述特定时间为第二时刻与第一时刻的差值,所述第一时刻为接收到p帧报文中的第一帧报文的时刻,所述第二时刻位于区间[tbase+tmin,tbase+tmax]中的最大空闲时间段内,tbase为所述第一时刻,tmin为该种报文的预设发送周期的最小值,tmax为该种报文的预设发送周期的最大值。

在一些实施例中,所述第二时刻为最大空闲时间段的中点时刻。

在一些实施例中,所述第一节点判断接收到的每帧报文是否被仲裁包括:根据接收到每种报文的每帧报文的时间,确定该种报文的实际发送周期;确定该种报文的实际发送周期与预设发送周期之间的第一差值;确定接收该种报文的每帧报文的时刻与接收前一帧报文的时刻之间的第二差值;在所述第一差值大于第一预设差值、且所述第二差值小于或等于第二预设差值的情况下,确定该帧报文被仲裁。

在一些实施例中,所述方法还包括:所述第一节点按照预设发送周期经由can总线发送至少一种报文。

在一些实施例中,所述第一时间间隔为单帧报文的最大传输时间。

在一些实施例中,所述第二时间间隔为单帧报文的最大传输时间。

在一些实施例中,所述第一预设差值大于或等于单帧报文的最大传输时间的2倍。

根据本公开实施例的另一方面,提供一种工程机械的网络优化装置,所述工程机械包括第一节点以及一个或多个第二节点,所述装置设置在所述第一节点中,所述装置包括:接收模块,被配置为接收每个第二节点按照预设发送周期经由控制器局域网络can总线发送的至少一种报文;确定模块,被配置为根据can总线的波特率和接收到的报文,确定can总线的负载率;和发送模块,被配置为在所述负载率大于预设负载率的情况下,所述第一节点向至少一个第二节点发送增大指令,以增大一种或多种报文的预设发送周期,直到所述负载率不大于所述预设负载率。

根据本公开实施例的又一方面,提供一种工程机械的网络优化装置,所述工程机械包括第一节点以及一个或多个第二节点,所述装置设置在所述第一节点中,所述装置包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行上述任意一个实施例所述的方法。

根据本公开实施例的再一方面,提供一种工程机械,包括:第一节点,包括上述任意一个实施例所述的工程机械的网络优化装置;和一个或多个第二节点,每个第二节点被配置为按照预设发送周期经由can总线发送至少一种报文;响应于所述第一节点发送的增大指令,增大一种或多种报文的预设发送周期。

根据本公开实施例的还一方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例所述的方法。

本公开实施例中,第一节点根据can总线的波特率和接收到的报文确定can总线的负载率,进而在负载率大于预设负载率的情况下,向至少一个第二节点发送增大指令,以增大一种或多种报文的预设发送周期,从而使得can总线的负载率不大于预设负载率。这样的方式下,通过动态调整第二节点发送某种或某些报文的预设发送周期,可以在can总线的负载率过大时及时将其调小,从而提高报文发送的成功率和实时性。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本公开一些实施例的can总线的架构示意图;

图2是根据本公开一些实施例的工程机械的网络优化方法的流程示意图;

图3a是根据本公开一些实施例的标准帧的示意图;

图3b是根据本公开一些实施例的扩展帧的示意图;

图4所是根据本公开一些实施例的多个节点同时发送报文造成的拥堵情况的示意图;

图5是根据本公开另一些实施例的工程机械的网络优化方法的流程示意图;

图6是根据本公开一些实施例的判断报文是否被仲裁的流程示意图;

图7是根据本公开一些实施例的工程机械的网络优化装置的结构示意图;

图8是根据本公开另一些实施例的工程机械的网络优化装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

在本公开实施例中,can仲裁是指can总线采用的“载波监测,多主掌控/冲突避免”(csma/ca)的通信模式。这种总线仲裁方式允许can总线上的任何一个节点都有机会取得can总线的控制权并向外发送数据。如果在同一时刻有2个或2个以上的节点要求发送数据,就会产生总线冲突。can总线能够实时地检测这些冲突并对其进行仲裁,从而使具有高优先级的数据不受任何损坏地传输,而低优先级的数据则被仲裁,等待can总线空闲再发送。

图1是根据本公开一些实施例的can总线的架构示意图。

如图1所示,can总线包括第一线can_h和第二线can_l。can总线的两端连接有终端电阻。各节点可以经由第一线can_h和第二线can_l进行数据传输。可以理解的是,在同一时刻,can总线只能传输一帧报文,即,一帧报文传输完毕后再传输下一帧报文。

参见图1,工程机械可以包括第一节点n1以及一个或多个第二节点n2。第一节点n1可以称为主节点,第二节点n2可以称为从节点。每个第二节点n2可以按照预设发送周期经由can总线发送至少一种报文。可以理解的是,第二节点n2发送每种报文均按照每种报文各自的预设发送周期来发送,故,不同种报文的预设发送周期可能相同,也可能不同。

在一些实施例中,第一节点n1也可以按照预设发送周期经由can总线发送至少一种报文。在另一些实施例中,第一节点n1也可以仅接收其他节点经由can总线发送的报文,并执行下述优化步骤。换言之,第一节点n1可以是专门用于网络优化的节点。

可以理解的是,工程机械还可以包括其他节点,例如经由can网络发送事件型报文的第三节点等。

图2是根据本公开一些实施例的工程机械的网络优化方法的流程示意图。

在步骤202,第一节点接收每个第二节点按照预设发送周期经由can总线发送的至少一种报文。

例如,第一节点可以被配置为接收can总线上的所有报文。另外,第一节点中可以配置有can网络参数和各个第二节点的节点参数。例如,can网络参数可以包括can总线允许的最大平均负载率、最小平均负载率、最大瞬时负载率、报文被仲裁的最大仲裁率pmax。例如,节点参数可以包括第二节点的节点编号、每种报文的种类标识can-id、报文默认的发送周期(即预设发送周期)、发送周期的变化范围。在一些实施例中,可以在工程机械出厂前进行上述配置,出厂后原厂服务人员有操作权限。

作为一些实现方式,可以通过界面设置、文件导入、通信接口指令配置等方式进行以上配置。例如,配置后的can网络参数和节点参数可以存储在闪存(flash)、电可擦可编程只读存储器(eeprom)等非易失性存储器中。

在步骤204,第一节点根据can总线的波特率和接收到的报文,确定can总线的负载率。

作为一些实现方式,第一节点可以根据如下公式计算波特率:波特率baudrate=fpclk1/((tbs1+tbs2+1)*brp)。在该式中,fpclk1为can收发器时钟,可以在程序初始化时设置;tbs1和tbs2为can位时间中的参数,tbs1为传播段和相位缓冲段1所占用的时间量子数量之和,tbs2为相位缓冲段2所占用的时间量子数量;brp为分频系数。作为示例,fpclk1为45mhz,tbs1=6,tbs2=8,brp=12时,波特率=45m/((6+8+1)*12)=500kbps。

作为一些实现方式,can总线的负载率可以根据如下公式计算:总线负载率busload=nbit*tbit/tload。在该式中,tload为计算该总线负载率所采用的时间周期(即后文提到的第一预设时间段和第二预设时间段);nbit为tload内接收到的第二节点发送的所有报文包含填充位、帧间隔在内的位(bit)的数量;tbit为位时间,tbit=1/baudrate。例如,在计算can总线的平均负载率时,tload=1s;在计算can总线的瞬时负载率时,tload=10ms。

在步骤206,在负载率大于预设负载率的情况下,第一节点向至少一个第二节点发送增大指令,以增大一种或多种报文的预设发送周期,直到负载率不大于预设负载率。

例如,负载率可以包括瞬时负载率和平均负载率中的至少一个。可以理解的是,针对瞬时负载率和平均负载率大于对应的预设负载率的情况,第一节点可以向对应的第二节点发送增大指令。第二节点在接收到第一节点发送的增大指令后,后续会按照增大后的预设发送周期经由can总线发送一种或多种报文。

在一些实施例中,第一节点可以每隔预设时间间隔计算一次can总线的负载率。

上述实施例中,第一节点根据can总线的波特率和接收到的报文确定can总线的负载率,进而在负载率大于预设负载率的情况下,向至少一个第二节点发送增大指令,以增大一种或多种报文的预设发送周期,从而使得can总线的负载率不大于预设负载率。这样的方式下,通过动态调整第二节点发送某种或某些报文的预设发送周期,可以在can总线的负载率过大时及时将其调小,从而提高报文发送的成功率和实时性。

下面结合不同实施例对上述步骤104和步骤106的一些实现方式进行说明。

作为一些实现方式,负载率包括瞬时负载率。第一节点每隔第一时间间隔根据第一预设时间段内接收到的报文(称为第一组报文)确定一次瞬时负载率。这里,第一预设时间段的结束时刻为确定瞬时负载率的当前时刻。可以理解的是,第一预设时间段的开始时刻为当前时刻之前的某一时刻。例如,第一预设时间段为10ms。

参照上文介绍的,可以根据第一预设时间段内接收到的报文的位的数量、第一预设时间段、以及can总线的波特率,确定瞬时负载率。在每次确定的瞬时负载率大于can网络允许的最大瞬时负载率的情况下,第一节点向第一组报文对应的第二节点(称为第一组第二节点)发送增大指令,以增大第一组报文中的一种或多种报文的预设发送周期,直到下一次确定的瞬时负载率不大于最大瞬时负载率。例如,最大瞬时负载率小于或等于70%。

上述实现方式中,通过向第一预设时间段内接收到的第一组报文对应的第一组第二节点发送增大预设发送周期的指令来动态调整瞬时负载率。一方面,向第一组第二节点更有针对性,从而可以更准确地调整瞬时负载率;另一方面,无需向每个第二节点发送指令,降低了can总线的负载压力。

在一些实施例中,第一节点优先向第一组报文中优先级最低的某种报文对应的第二节点发送增大指令,以增大该种报文的预设发送周期。例如,第一组报文包括第一种报文和第二种报文,第一种报文的优先级最低。第一节点优先向发送第一种报文的第二节点发送增大指令,以增大第一种报文的预设发送周期。这样的方式下,可以尽可能减小对报文的实时性的影响。

在另一些实施例中,第一节点按照第一组报文中每种报文的优先级从低到高的顺序依次向第一组第二节点发送增大指令,以按照优先级从低到高的顺序依次增大第一组报文中每种报文的预设发送周期。例如,第一节点优先向发送第一种报文的第二节点发送增大指令,然后向发送第二种报文的第二节点发送增大指令,从而按先后顺序依次增大第一种报文的预设发送周期和第二种报文的预设发送周期。这样的方式下,可以进一步尽可能减小对报文的实时性的影响。

在又一些实施例中,第一节点还可以根据第一组报文中每种报文的预设发送周期范围,确定第一组报文中每种报文的预设发送周期增大后的多个目标值。这种情况下,第一节点发送的增大指令使得第一组报文中每种报文的预设发送周期按照从小到大的顺序依次增大为每种报文的多个目标值。并且,第一节点发送的增大指令使得第一组报文中每种报文的预设发送周期按照优先级从低到高的顺序依次增大为一个目标值后,再使得第一组报文中每种报文的预设发送周期按照优先级从低到高的顺序依次增大为另一个目标值。这样的方式下,可以更进一步尽可能减小对报文的实时性的影响。

例如,第一报文的当前预设发送周期为100ms,预设发送周期变化范围为50ms至200ms,当前预设发送周期增大后的目标值例如可以包括100ms、120ms、140ms、160ms、180ms、200ms;第二报文的当前预设发送周期为50ms,预设发送周期变化范围为20ms至100ms,当前预设发送周期增大后的目标值例如可以包括60ms、70ms、80ms、90ms、100ms。第一节点发送的增大指令使得第一种报文的预设发送周期增大为100ms,并且使得第二种报文的预设发送周期增大为60ms;之后,使得第一种报文的预设发送周期增大为120ms,并且使得第二种报文的预设发送周期增大为70ms;以此类推。

作为另一些实现方式,负载率包括平均负载率。第一节点每隔第二时间间隔根据第二预设时间段内接收到的报文(称为第二组报文)确定一次平均负载率。这里,第二预设时间段的结束时刻为确定平均负载率的当前时刻。可以理解的是,第二预设时间段的开始时刻为当前时刻之前的某一时刻。例如,第二预设时间段大于第一预设时间段。例如,第二预设时间段为1s。

参照上文介绍的,可以根据第二预设时间段内接收到的报文的位的数量、第二预设时间段、以及can总线的波特率,确定平均负载率。在连续m次确定的平均负载率大于can总线允许的最大平均负载率的情况下,第一节点向每个第二节点发送增大指令,以增大每个第二节点发送的每种报文的预设发送周期,直到下一次确定的平均负载率不大于最大平均负载率。这里,m为大于或等于2的整数,例如4、6、10等。例如,最大平均负载率小于或等于30%。

上述实现方式中,在连续大于或等于2的m次确定的平均负载率大于can总线允许的最大平均负载率时,第一节点向每个第二节点发送增大指令,无需额外确定向哪些第二节点发送增大指令。另外,在一些实施例中,在第二预设时间段内每个第二节点发送了各自的每种报文,故,向每个第二节点发送增大指令也不会影响对平均负载率调整的准确性。

在一些实施例中,第一节点按照第二组报文中每种报文的优先级从低到高的顺序依次向对应的第二节点发送增大指令,以按照优先级从低到高的顺序依次增大第二组报文中每种报文的预设发送周期。

在一些实施例中,可以按照瞬时负载率的调整方式确定第二组报文中每种报文的预设发送周期增大后的多个目标值。第一节点发送的增大指令使得第二组报文中每种报文的预设发送周期按照从小到大的顺序依次增大为每种报文的多个目标值。并且,第一节点发送的增大指令使得第二组报文中每种报文的预设发送周期按照优先级从低到高的顺序依次增大为一个目标值后,再使得第一组报文中每种报文的预设发送周期按照优先级从低到高的顺序依次增大为另一个目标值。这样的方式下,可以更进一步尽可能减小对报文的实时性的影响。

在一些实施例中,在连续n次确定的平均负载率小于can总线允许的最小平均负载率的情况下,第一节点向每个第二节点发送减小指令,以减小每个第二节点发送的每种报文的预设发送周期,直到下一次确定的平均负载率不小于最小平均负载率。可以理解的是,这里的最小平均负载率小于上述最大平均负载率。n为大于或等于2的整数,例如4、6、10等。这样的方式下,可以增加同一时间内发送报文的第二节点的数量,提高can总线的利用率,从而提高工程机械中各节点之间交互的响应速度。

例如,可以按照优先级从高到低的顺序依次向对应的第二节点发送减小指令,以按照优先级从高到低的顺序依次减小每种报文的预设发送周期。类似的,针对每种报文的多个目标值,可以按照从小到大的顺序依次增大,即增大为一个目标值后,下次再增大为更大的另一个目标值。

作为一些实现方式,n=m。这样的方式下,发送增大和减小预设发送周期的指令需要满足的条件类似,可以更准确地动态调整平均负载率。

在一些实施例中,上述第一时间间隔和第二时间间隔可以相同,例如可以均是单帧报文最大传输时间。单帧报文最大传输时间tframe=nfbitmax*tbit。这里,nfbitmax为单帧报文包含填充位、帧间隔在内的理论最大位(bit)数量,帧间隔以3bit计算。

图3a是根据本公开一些实施例的标准帧的示意图;图3b是根据本公开一些实施例的扩展帧的示意图。

参见图3a,对于标准帧,报文的最大帧长度为127bit,因此,nfbitmax=130。

参见图3b,对于扩展帧,报文的最大帧长度为150bit,因此,nfbitmax=153。

例如,波特率为250kbps的情况下,位时间tbit=1/250k=4us。在采用标准帧的情况下,单帧报文最大传输时间tframe=130*4us=520us,即0.52ms。

在第一时间间隔和第二时间间隔均是单帧报文最大传输时间的情况下,可以尽可能增加计算can总线的瞬时负载率和平均负载率的次数,从而可以更准确地调整can总线的瞬时负载率和平均负载率。

发明人注意到,仲裁后低优先级报文等待发送,can总线空闲后立即发送,在有多个报文等待发送的情况下会使得该时间段的can总线的负载率过大,即突发负载率过大,容易造成can总线在某一时段拥堵,下一时段空闲的现象。图4所是根据本公开一些实施例的多个节点同时发送报文造成的拥堵情况的示意图。

有鉴于此,本公开实施例还提供了如下解决方案。

图5是根据本公开另一些实施例的工程机械的网络优化方法的流程示意图。

与图2所示实施例相比,图5所示实施例还包括步骤502-步骤508。

在步骤502,第一节点根据接收到每帧报文的时间,确定can总线的至少一个空闲时间段。

例如,第一节点中可以设置有计时器,在接收到每帧报文时可以分别记录各帧报文的接收时间。第一节点可以统计各帧报文在时间上的分布情况,进而可以得到can总线的空闲时段的分布情况,即,可以得到一个或多个空闲时间段。

在步骤504,第一节点判断接收到的每帧报文是否被仲裁。

在步骤506,第一节点根据每帧报文是否被仲裁,计算每种报文的连续p帧报文的仲裁率,p为大于或等于2的整数。

例如,在接收到某种报文的第一帧报文时从0开始计数,达到p帧后,开始计算p帧报文中被仲裁的百分比,即,仲裁率p1=被仲裁的报文数量/接收到报文总数量p。之后,可以重新从0开始计数,进而计算之后的p帧报文的仲裁率。

在步骤508,在某种报文的连续p帧的仲裁率大于can总线允许的最大仲裁率的情况下,第一节点向发送该种报文的第二节点发送延时指令,以使得该第二节点延时特定时间后在一个空闲时间段内开始按照该种报文预设发送周期发送该种报文。

例如,按照该种报文的预设发送周期,本应在时刻t发送报文,延时特定时间后,发送报文的时刻被推迟到某个空闲时间段内,即在空闲时间段内发送该种报文。

上述实施例中,在控制can总线的负载率的同时,通过规划报文的发送时机,在无需改变预设发送周期的情况下,可以有效降低报文的仲裁率,从而提高通信质量和数据实时性。

在一些实施例中,上述特定时间为第二时刻与第一时刻的差值。这里,第一时刻为接收到p帧报文中的第一帧报文的时刻,第二时刻位于区间[tbase+tmin,tbase+tmax]中的最大空闲时间段内。tbase为第一时刻,tmin为该种报文的预设发送周期的最小值,tmax为该种报文的预设发送周期的最大值。这样的方式下,可以尽可能保证该种报文在can总线的空闲时间段内发送。

在一些实施例中,第二时刻为最大空闲时间段的中点时刻。这样的方式下,可以保证该种报文在最大空闲时间段内发送。

图6是根据本公开一些实施例的判断报文是否被仲裁的流程示意图。

在步骤602,根据接收到每种报文的每帧报文的时间,确定该种报文的实际发送周期。

可以理解的是,通过对接收到每种报文的各帧报文的时间进行分析,可以得到该种报文的实际发送周期。

在步骤604,确定该种报文的实际发送周期与预设发送周期之间的第一差值。

在步骤606,确定接收该种报文的每帧报文的时刻与接收前一帧报文的时刻之间的第二差值。

可以理解的是,每帧报文的前一帧报文与该帧报文可以是同一种报文,也可以是不同种报文,即can-id可以相同,也可以不同。

在步骤608,在第一差值大于第一预设差值、且第二差值小于或等于第二预设差值的情况下,确定该帧报文被仲裁。否则,确定该帧报文未被仲裁。即,除步骤608之外的情况均认为该帧报文未被仲裁。

在一些实施例中,第一预设差值大于或等于单帧报文的最大传输时间的2倍。这样的方式下,可以避免将该帧报文由于can总线已被占用导致的等待视为被仲裁,从而使得该帧报文是否被仲裁的确定结果更为准确。

在第二差值小于或等于第二预设差值的情况下,可以认为该帧报文是在前一帧报文传输后立即被传输,即,该帧报文之前一直在等待。在一些实施例中,第二预设差值为单帧报文的最大传输时间。

例如,在采用标准帧,波特率为250kbps的情况下下,单帧报文最大传输时间tframe=0.54ms,对于can-id为0x182的报文,当前报文发送周期为10ms,实际测得报文周期为11.5ms,超过2个单帧报文最大传输时间。另外,该帧报文之前有紧邻的前一帧报文,则认为该报文被仲裁。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于装置实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图7是根据本公开一些实施例的工程机械的网络优化装置的结构示意图。工程机械包括第一节点以及一个或多个第二节点,工程机械的网络优化装置设置在第一节点中。

如图7所示,工程机械的网络优化装置包括接收模块701、确定模块702和发送模块703。

接收模块701被配置为接收每个第二节点按照预设发送周期经由控制器局域网络can总线发送的至少一种报文。确定模块702被配置为根据can总线的波特率和接收到的报文,确定can总线的负载率。发送模块703被配置为在负载率大于预设负载率的情况下,第一节点向至少一个第二节点发送增大指令,以增大一种或多种报文的预设发送周期,直到负载率不大于预设负载率。

图8是根据本公开另一些实施例的工程机械的网络优化装置的结构示意图。

如图8所示,工程机械的网络优化装置800包括存储器801以及耦接至该存储器801的处理器802,处理器802被配置为基于存储在存储器801中的指令,执行前述任意一个实施例的方法。

存储器801例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如可以存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

工程机械的网络优化装置800还可以包括输入输出接口803、网络接口804、存储接口805等。这些接口803、804、805之间、以及存储器801与处理器802之间例如可以通过总线806连接。输入输出接口803为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口804为各种联网设备提供连接接口。存储接口805为sd卡、u盘等外置存储设备提供连接接口。

本公开实施例还提供了一种工程机械,参见图1,包括第一节点p1、以及一个或多个第二节点p2。工程机械例如可以是起重机、挖掘机等。

第一节点p1包括上述任意一个实施例的工程机械的网络优化装置。每个第二节点p2被配置为按照预设发送周期经由can总线发送至少一种报文;响应于第一节点p1发送的增大指令,增大一种或多种报文的预设发送周期。第二节点p2之后按照增大后的预设发送周期发送一种或多种报文。

本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任意一个实施例的方法。

至此,已经详细描述了本公开的各实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解,可由计算机程序指令实现流程图中一个流程或多个流程和/或方框图中一个方框或多个方框中指定的功能。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1