CN115633044B - 报文的处理方法、装置、电子设备及存储介质 - Google Patents
报文的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115633044B CN115633044B CN202210859082.XA CN202210859082A CN115633044B CN 115633044 B CN115633044 B CN 115633044B CN 202210859082 A CN202210859082 A CN 202210859082A CN 115633044 B CN115633044 B CN 115633044B
- Authority
- CN
- China
- Prior art keywords
- network message
- network
- message
- channel
- copying
- 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
- 238000003672 processing method Methods 0.000 title abstract description 12
- 230000002093 peripheral effect Effects 0.000 claims abstract description 86
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000006870 function Effects 0.000 claims description 76
- 230000001960 triggered effect Effects 0.000 claims description 43
- 230000015654 memory Effects 0.000 claims description 18
- 238000012986 modification Methods 0.000 abstract description 2
- 230000004048 modification Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 11
- 238000003745 diagnosis Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种报文的处理方法、装置、电子设备及存储介质,该方法应用于网关,包括:获取网络报文,并确定所述网络报文对应的源通道;判断所述源通道与预设通道是否相同,其中,所述预设通道由所述网关基于连接的外设发送的目标指令确定;若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设。本申请可能够实现对源通道的修改来选择需要进行复制的网络报文,以此避免需要修改寄存器以及重启对应的CAN模块,进而,保证了复制的网络报文中不会出现错误帧;同时,提高了发送至外设的网络报文稳定性。
Description
技术领域
本申请涉及汽车电子技术领域,更具体地,涉及一种报文的处理方法、装置、电子设备及存储介质。
背景技术
目前,新国标法规要求车载诊断(On Board Diagnostics,OBD)***只允许一路诊断CAN接出,但是在调试CAN的过程中有着查看其他应用CAN的报文的需求,所以如何在只允许一路诊断CAN接出的情况下,查看其他CAN的报文是目前亟待解决的问题。
发明内容
有鉴于此,本申请实施例提出了一种报文的处理方法、装置、电子设备及存储介质,以改善上述问题。
根据本申请实施例的一个方面,提供了一种报文的处理方法,所述方法包括:获取网络报文,并确定所述网络报文对应的源通道;判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定;若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设。
根据本申请实施例的一个方面,提供了一种报文的处理装置,所述装置包括:网络报文获取模块,用于获取网络报文,并确定所述网络报文对应的源通道;判断模块,用于判断所述源通道与预设通道是否相同,其中,所述预设通道由所述网关基于连接的外设发送的目标指令确定;网络报文发送模块,用于若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设。
根据本申请实施例的一个方面,提供了一种电子设备,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如上所述报文的处理方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,实现如上所述报文的处理方法。
在本申请的方案中,通过获取网络报文,并确定网络报文对应的源通道,当确定源通道与预设通道相同时,将该网络报文进行复制并发送至外设,其中,预设通道由网关基于连接的外设发送的目标指令确定,以此,能够实现对源通道的修改来选择需要进行复制的网络报文,以此避免需要修改寄存器以及重启对应的CAN模块,进而,保证了复制的网络报文中不会出现错误帧;同时,提高了发送至外设的网络报文稳定性。
应当理解的是,以上的一般描述和后文细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请一实施例示出的适用于本申请的应用场景的示意图。
图2是根据本申请一实施例示出的报文的处理方法的流程示意图。
图3是根据本申请另一实施例示出的报文的处理方法的流程示意图。
图4是根据本申请再一实施例示出的报文的处理方法的流程示意图。
图5是根据本申请一实施例示出的报文的处理装置的框图。
图6是根据本申请一实施例示出的电子设备的硬件结构图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述,这些附图和文字描述并不是为了通过任何方式限值本发明构思的范围,而是通过特定实施例为本领域计算书人员说明本发明的概念。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
目前,部分芯片本身的硬件有着镜像路由的功能,该功能通过寄存器配置将源通道的发送硬件Buffer和接收硬件Buffer关联到网关的发送Buffer上,以此,实现该路CAN接收和发送的网络报文可以硬件直接转发到对应的诊断CAN上,进而,实现相应的镜像路由的功能。
但是,在硬件镜像路由中,源CAN与诊断CAN的绑定是在芯片CAN模块处于初始化模式时才能实现,如果要路由其他路CAN到诊断CAN上,就必须要重启CAN模块,以此重新进行源CAN与诊断CAN的绑定,而在这段重启过程中,可能造成网关的接受与发送报文功能失效。
由于硬件路由在复制源CAN发送的报文时,发送报文至诊断CAN的顺序是按照源CAN的报文填充至发送Buffer的顺序,而不是报文实际在CAN上的出现顺序。实际上,源CAN的报文发送至发送Buffer后可能会因为报文仲裁的原因实际并未发送出去,因此可能出现报文的发送顺序不准的问题。
由于目前只能对是传统类型的CAN进行镜像路由,传统类型的CAN的网络报文的数据长度不大于8,因此,对应硬件镜像路由也只能复制传统类型的CAN对应的网络报文,但是对应的源通道的网络报文也可能是CAN FD类型的,而CAN FD类型的网络报文的数据长度大于8,而此时,对于数据长度大于8的报文无法进行镜像路由。
针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的报文的处理方法、装置、电子设备以及存储介质,通过外设发送包括预设通道的目标指令至网关,网关能够根据获取的网络报文的源通道,来判断获取的网络报文对应的源通道是否与预设通道相同,以此避免需要修改寄存器以及重启对应的CAN模块,进而,保证了复制的网络报文中不会出现错误帧;同时,提高了发送至外设的网络报文稳定性。其中,具体的报文的处理方法在后续的实施例中进行详细的说明。
图1是根据本申请一实施例示出的适用于本申请的应用场景图。如图1所示,该应用场景包括车辆100和外设200,其中,车辆100中包括车载网关110,外设200与车辆100的车载网关110进行交互。外设200与车辆100的车载网关110通过车辆中的车载诊断接口连接。可选的,外设200可以是外部诊断仪、笔记本电脑、外置显示器等,在此不进行具体限定。
外设200将设置有预设通道的目标指令发送至车辆100的车载网关110中。车辆100中的车载网关110获取与车辆网关连接的控制器发送的网络报文,并确定该网络报文对应的源通道,然后车载网关110将该网络报文的源通道与外设200通过目标指令设置的预设通道进行对比,以此来判断源通道与预设通道是否相同;当车载网关110确定该网络报文对应的源通道与预设通道相同时,将该网络报文进行复制,并将复制的网络报文发送至外设200中。
请参阅图2,图2示出了本申请一实施例提供的报文的处理方法的流程示意图。该报文的处理方法通过判断源通道与预设通道是否相同,来确定获取到的网络报文的源通道是否与预设通道相同,在源通道与预设通道相同时,将网络报文进行复制并发送至外设,以此,能够实现对源通道的修改来选择需要进行复制的网络报文,保证了复制的网络报文中不会出现错误帧;同时,提高了发送至外设的网络报文稳定性。在具体的实施例中,该报文的处理方法可以应用于如图5所示的报文的处理装置500以及配置报文的处理装置500的电子设备600(图6)。下面将说明本实施例的具体流程,当然,可以理解的,本实施例所涉及的外设可以包括外部诊断仪、笔记本电脑、外置显示器等,在此不做限定。下面将针对图2所示的流程进行详细的阐述,所述报文的处理方法具体可以包括以下步骤:
步骤S210,获取网络报文,并确定所述网络报文对应的源通道。
通道是指在网关中用于传输信息的数据通路,能够接收车辆中各控制器发送的网络报文,以及车辆中的控制模块和与网关建立连接的外部设备所发送的指令。源通道是指将控制器的网络报文与网关进行传输的通道,可以理解的是,源通道指示了网络报文的来源,即,可根据网络报文的源通道确定发送该网络报文的控制器。
在一些实施例中,在一网络报文通过源通道发送至网关的过程中,可将源通道的标识信息添加至网络报文中,然后可根据该标识信息来确定该网络报文对应的源通道。
在另一些实施例中,可通过设置各网络报文与各网络报文对应的源通道之间的映射关系,在获取到网络报文后,根据该网络报文与各网络报文与各网络报文对应的源通道之间的映射关系确定该网络报文的源通道。
在一些实施例中,步骤S210可包括判断网关中的中断函数是否被触发,其中,所述中断函数在所述网关每一次接收到网络报文时或发送网络报文时被触发;若所述网关中的中断函数被触发,则获取所述网络报文。
中断函数是值当前满足一定的条件时就会暂停主函数的执行内容,转而去执行中断函数。中断函数被触发可以是软件触发也可以是硬件触发,可根据实际需要来选择触发方式。作为一种方式,若中断函数是软件触发的方式,可选的,可通过预先设置中断函数的中断指令,然后将该中断函数的中断指令发送至网关,网关根据该中断指令来触发该中断函数。
作为另一种方式,若中断函数是硬件触发的方式,可选的,可通过串口中断的方式触发终端函数,例如,当网络报文通过串口发送至网关,网关在接收到该网络报文后触发中断函数。可以理解的是,由于网络报文中包括报文结束帧,当网关中的寄存器在接收到数据并检测到网络报文中的结束帧后,触发中断函数。
作为又一种方式,还可以通过定时触发中断函数来实现中断。可选的,在网关的定时器中设置触发中断函数的时间间隔,然后网关根据该时间间隔来触发中断函数。例如,当在定时器中设置中断函数的时间间隔为40ms,则网关会按照40ms一次的频率来触发中断函数,具体的时间间隔可根据实际需要来设置,在此不进行具体限定。
作为还一种方式,可在网络报文中设置中断标志,当网关接收到网络报文后,根据该网络报文中的中断标志来触发中断函数。
在一些实施例中,由于中断函数被触发后,中断函数中的中断标志会发生改变,所以可通过判断中断函数中的中断标志是否发生变化来判断终端函数是否被触发。例如,中断函数中的中断标志为E,其中,当E=1时表示中断函数被触发;E=0时表示中断函数未被触发,可通过E的值来判断中断函数被触发。
在另一些实施例中,还可通过确定网关中与中断函数关联的硬件中的电平是否发生变化来判断中断函数是否被触发。例如,当与中断函数关联的硬件的中的电平由低电平变化为高电平,或由高电平变为低电平时,可确定终端函数被触发。
作为一种方式,由于网关在每一次接收到网络报文时或发送网络报文时中断函数被触发,为了避免网关在下一次接收到网络报文后无法触发中断函数,可以在确定中断函数被触发后,将中断函数进行复位。可选的,可将中断函数中的中断标志恢复至中断函数未被触发时对应的中断标志;或者,将网关中与中断函数关联的硬件中的电平恢复至中断函数未被触发时对应的电平。
当确定网关中的中断函数被触发后,可确定网关接收到完整的网络报文,则可直接获取接收到的网络报文。
请继续参阅图2,步骤220,判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定。
外设是指通过车辆的车载诊断口(On Board Diagnostics,OBD)连接的外部设备,例如,外部诊断仪、笔记本电脑、外置显示器等,可根据实际需要来设置外设,在此不进行具体限定。
在一些实施例中,目标指令是指由外部设备设置的需要进行镜像的预设通道的命令。作为一种方式,外部诊断仪可通过发送数据ID命令(Date ID,DID)到网关,网关根据DID指令将对应的通道信息设置来设置需要复制网络报文的通道。可选的,DID命令中可包括发送网络报文的控制器的ID、通道ID等。
在另一些实施例中,网关可预先定义一个变量Var_BufferSate,即预定定义一个通道变量,用于记录网关中各路CAN或各控制器的网络报文的接收与发送的缓冲区(Buffer)是否要开启镜像路由的状态标志位,然后通过外部设备设置需要进行复制的CAN的网络报文的Buffer,并发送至网关,网关在接收到后,更改Var_BufferSate中相应CAN的接受Buffer的镜像路由状态标志位为开启,其中镜像路由是指将网关获取的网络报文进行复制,然后将复制的网络报文进行转发。
在一些实施例中,可对各网络报文对应的源通道设置通道标识,并在预设通道中设置对应的通道标识,通过对比源通道的通道标识与预设通道的通道标识是否相同来判断源通道与预设通道是否相同。例如,若该网关中有5路CAN,其网络报文对应的源通道的通道标识分别为A、B、C、D、E,而预设通道的通道标识为B,此时,网关接收一网络报文其通道标识为B,预设通道的通道标识与网络报文的源通道标识相同,可确定网络报文的源通道与预设通道相同。
在另一些实施例中,还可对各CAN或控制器的接受与发送的Buffer设置其对应的第一标识,对需要进行复制的CAN的网络报文的Buffer也设置其对应的第二标识,并且第一标识与第二标识之间存在映射关系,基于第一标识与第二标识之间的映射关系来判断源通道与预设通道是否相同。
步骤S230,若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设。
当源通道与预设通道相同时,可确定经过该源通道传输到网关的网络报文是当前需要进行复制的报文,此时对该网络报文进行复制,并且将复制的网络报文发送至外部设备中,外部设备可根据该网络报文来进行故障诊断等工作。
在一些实施例中,在复制网络报文之前还可确定网络报文的数据长度,通常,能进行复制的网络报文的数据长度最长不得超过长度阈值,若网络报文的数据长度大于长度阈值,则需要先对网络报文中与长度阈值相等数据长度的数据内容进行复制,然后再对超出长度阈值的数据长度的数据内容进行复制,最后按照复制的顺序将复制的网络报文发送至外设中。
在一些实施例中,复制的网络报文可暂时存放于Buffer中,当复制的网络报文成功发送至外设后,将存放该网络报文的Buffer中对应的内容删除,以此减小网关的存储压力,也便于下一次发送网络报文。
在另一些实施例中,可预先定义内容存储变量,其中每一内容存储变量可存放数据长度不大于长度阈值的网络报文的数据内容,当一内容存储变量对应的网络报文发送成功后,将该网络报文的内容存储变量的指针指向下一个内容存储变量,便于网络报文按照缓存至内容存储变量的顺序发送至外设。
在另一些实施例中,当确定源通道与预设通道相同时,将该源通道对应的网络报文进行复制,并将复制的网络发送至外设和车载终端(T-BOX)中,车载终端接收到该网络报文后可将该网络报文上传至与该车载终端通信连接的电子设备或云端服务器中,可选的,通信连接可以是,通信连接可以是同一局域网、蓝牙、紫蜂(ZigBee)网络等连接,在此不进行具体限定,该电子设备可以包括智能手机、平板电脑、穿戴式电子设备等。
在一些实施例中,步骤230包括:若所述源通道与所述预设通道相同,则复制所述网络报文并缓存;按预设时间间隔,将缓存的网络报文发送至所述外设。
在一些实施例中,可预先设置将复制的网络报文发送至外设的时间间隔或频率,然后按照该时间间隔或频率将复制后的网络报文发送至外设,可避免复制的网络报文一起发送时出现报文仲裁的问题,也避免网关将网络报文发送至外设时出现拥堵的情况。
在另一些实施例中,还可预先设置一报文发送的周期函数,该周期函数会按照预设的时间间隔被触发以此实现将复制的网络报文发送至外设中。
在另一些实施例中,还可通过确定缓存的网络报文的数量来将网络报文发送至外设中,可选的,当缓存的网络报文的数量大于数量阈值时,将缓存的网络报文发送至外设中。例如,当数量阈值为0时,只要有缓存的网络报文,就立马将缓存的网络报文发送至外设。具体的,数量阈值可根据实际需要来设定,在次不进行具体限定。
在另一些实施例中,可预先定义一变量用于计算网关中缓存的网络报文的数量,网关中缓存的网络报文可以理解为还未发送的复制的网络报文。当将复制的网络报文进行缓存后,该变量累计+1,当报文发送的周期函数触发时,可判断该变量是否大于0,当该变量大于0时,将缓存的网络报文发送至外设,并且将该变量-1。
本申请一实施例提供的报文的处理方法,获取网络报文,并确定网络报文对应的源通道,当确定源通道与预设通道相同时,将该网络报文进行复制并发送至外设,其中,预设通道由网关基于连接的外设发送的目标指令确定,以此,能够实现对源通道的修改来选择需要进行复制的网络报文,以此避免需要修改寄存器以及重启对应的CAN模块,进而,保证了复制的网络报文中不会出现错误帧;同时,提高了发送至外设的网络报文稳定性。
请参阅图3,图3示出了本申请一实施例提供的报文的处理方法的流程示意图。该方法应用于网关,下面将针对图3所示的流程进行详细的阐述,所述文本处理方法具体可以包括以下步骤:
步骤S310,获取网络报文,并确定所述网络报文对应的源通道。
步骤S320,判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定。
其中,步骤S310和步骤S310的具体描述请参阅步骤S210和步骤S220,在此不再赘述。
步骤S330,若所述源通道与所述预设通道相同,则复制所述网络报文并缓存。
在一些实施例中,当源通道与预设通道相同时,可确定经过该源通道传输到网关的网络报文是当前需要进行复制的报文,此时对该网络报文进行复制,并且将复制的网络报文进行缓存,以便于网关将复制的网络报文发送至外设。
在一些实施例中,可将复制的网络报文临时缓存于非易失性存储器中,例如,将复制的网络报文缓存至可抹除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)或电子抹除式可复写只读存储器(Electrically Erasable ProgrammableRead Only Memory,EEPROM)中。在另一些实施例中,还可将复制的网络报文缓存至快闪存储器(flash memory)中,以此便于将发送成功的报文进行删除,便于下一次发送复制的其他的网络报文。
步骤S340,确定缓存的网络报文对应的中断函数被触发的顺序,按所述顺序依次将所述缓存的网络报文发送至所述外设。
目前,将复制的网络报文发送至外设时,发送复制的网络报文的顺序是按照网络报文在网关的缓存顺序进行发送的,而不是网关接收或发送网络报文的顺序。而实际上,网关发送网络报文时,可能会因为报文仲裁的原因,实际并未将网络报文成功发送,进而导致网关在对网络报文进行复制时,可能会出现复制的网络报文的顺序与网关发送网络报文的发送的顺序不同的问题,进而导致外设接收到的网络报文与网关中网络报文发送或接收的顺序不同。为了解决该问题,将按照网关中的源通道将网络报文发送至网关或网关发送网络报文时对应的中断函数被触发的顺序,将复制的网络报文发送至外设,以此避免出现网络报文的顺序不准的问题。
当网关每一次接收到网络报文时或发送网络报文时,其中断函数会被触发,并且中断函数被触发的顺序是网关接收到网络报文或发送网络报文的顺序,所以按照中断函数被触发的顺序来将缓存的复制的网络报文发送至外设,能够提高网络报文的顺序准确性。
在一些实施例中,可将中断函数每一次被触发时的时间戳也复制于对应的网络报文中并缓存,然后根据中断函数被触发时的时间戳来确定缓存的网络报文对应的中断函数被触发的顺序。
在另一些实施例中,可根据中断函数被触发的函数,将对应的网络报文中设置顺序标识信息,然后根据该顺序标识信息来确定缓存的网络报文对应的中断函数被触发的顺序。例如,第一次中断函数被触发时,对应的网络报文设置顺序标识信息为1st(first),第二次中断函数被触发时,对应的网络报文设置顺序标识信息为2nd(second)等,其中,具体的顺序标识可根据实际需要来设置,在此不进行限定。
本申请一实施例提供的报文的处理方法,获取网络报文,并确定网络报文对应的源通道,当确定源通道与预设通道相同时,将该网络报文进行复制并缓存,然后按照网关中的中断函数被触发的顺序将缓存的网络报文发送至外设中。相较于图2所示的报文的处理方法,本实施例还可以通过将网络报文发送至网关的顺序也进行复制用于将复制的网络报文发送至外设,提高训后基于网络报文进行分析的工作的准确性。
请参阅图4,图4示出了本申请一实施例提供的报文的处理方法的流程示意图。该方法应用于网关,下面将针对图4所示的流程进行详细的阐述,所述文本处理方法具体可以包括以下步骤:
步骤S410,获取网络报文,并确定所述网络报文对应的源通道。
步骤S420,判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定。
其中,步骤S410和步骤S410的具体描述请参阅步骤S210和步骤S220,在此不再赘述。
步骤S430,若所述源通道与所述预设通道相同,判断所述网络报文的类型是否为指定类型。
网络报文的类型分为CAN类型和CAN FD(CAN with Flexible Data-Rate)类型,其中,CAN类型的网络报文和CAN FD类型的网络报文最大的区别在于,数据长度代码(DateLength Code,DLC)不同,其中,DLC用于规定网络报文中数据场的字节数。CAN类型的网络报文的DLC最大为8(即最大字节数为8),而CAN FD类型的网络报文的数据长度代码DLC最大为64,其中DLC决定网络报文中的数据长度。
目前,在对网络报文进行复制时,当网络报文为CAN类型的网络报文时,其DLC位于0到8时,可复制对应数据长度的网络报文。但是对于CAN FD类型的网络报文来说,由于DLC大于8,只能复制该网络报文中DLC为8的数据内容,因此,为了保证CAN FD类型的网络报文也能完整的进行复制并发送至外设中,可先判断网络报文的类型,根据当前网络报文的类型来确定后续对网路报文进行复制的方法。
在一些实施例中,指定类型是指CAN FD类型,也可以是其他DLC大于8的类型。
在一些实施例中,可预先对指定类型的网络报文设置报文识别标识,可根据该报文识别标识来确定网络报文的类型是否为指定类型。
步骤S440,若所述类型不是指定类型,则复制所述网络报文并发送至所述外设。
当网络报文的类型不是指定类型时,可确定对网络进行复制不会发生数据内容有遗漏的情况,此时,直接将网络报文进行复制,并将复制的网络报文发送至外设。
步骤S450,若所述类型是所述指定类型,则确定所述网络报文的数据长度。
在一些实施例中,由于指定类型的网络报文的数据长度是0-64,所以需要再确定指定类型的网络报文的数据长度,若指定类型的网络报文的数据长度位于0-8之间,可按照步骤S440的方法来对网络报文进行复制。若指定类型的网络报文的数据长度大于8,则需要用其他方式来对网络报文进行复制。
步骤S460,确定所述数据长度和预设长度的长度关系,基于所述长度关系对所述网络报文进行复制并发送至所述外设。
指定类型的网络报文的数据长度与预设长度之间的长度关系可以是数据长度不大于预设长度还是大于预设长度。当数据长度和预设长度的长度关系表示指定类型的网络报文的数据长度不大于预设长度时,可按照步骤440的方法来对网络报文进行复制;当数据长度和预设长度的长度关系表示指定类型的网络报文的数据长度大于预设长度时,可将网络报文分为多个数据长度不大于预设长度的网络子报文,然后按照步骤S440的方法,分别对多个网络子报文进行复制,并将复制的网络报文发送外设。
在一些实施例中,可通过判断网络报文中预设长度后的字节是否有数据存在,若确定有数据存在,可确定该网络报文的数据长度与预设长度之间的长度关系是该网络报文的数据长度大于预设长度,反之,则确定该网络报文的数据长度不大于预设长度。
在一些实施例中,步骤S460包括:若所述数据长度大于所述长度阈值,则基于所述长度阈值对所述网络报文进行分段复制并发送至所述外设;若所述数据长度小于或等于所述长度阈值,则复制所述网络报文并发送至所述外设。
可选的,对网络报文进行分段复制可以是按照该网络报文的数据长度,将网络分为多个数据长度不大于长度阈值的网络子报文。例如,若一指定类型的网络报文的数据长度为24,则可以分为3个数据长度为8的网络子报文,再分别对数据长度为8的网络子报文分别进行复制;若一指定类型的网络报文的数据长度为26,则可以分为3个数据长度为8的网络子报文和1个数据长度为2的网络子报文,然后分别对着4个网络子报文进行复制并发送至外设中。
在一些实施例中,对网络报文进行分段复制可以是先复制网络报文中最开始的长度阈值的数据内容,并将该网络报文的报文ID进行复制,然后将对应的网络报文的数据长度减掉长度阈值,并将指向报文数据场的指针指向8个字节之后的内容,再复制长度阈值对应的数据内容和该网络报文的报文ID直到该网络报文的分段复制完成。可选的,对指定类型的网络报文进行分段复制后,各网络子报文的报文ID相同。
在一些实施例中,若一指定类型的网络报文的数据长度不大于长度阈值,则按照步骤S440的方法复制该网络报文并发送至外设。
本申请一实施例提供的报文的处理方法,获取网络报文,并确定网络报文对应的源通道,当确定源通道与预设通道相同时,根据网络报文的类型,分别对不同类型的网络报文进行复制。相较于图2所示的报文的处理方法,本实施例还可以通过将数据长度大于长度阈值的指定类型的网络报文进行分段复制,然后将分段复制的网络报文发送至外设,以此,避免了当网络报文的数据长度大于长度阈值时,对网络报文进行复制会发生数据内容遗漏的问题。
请参阅图5,图5出了本申请一实施例提供的报文的处理装置的模块框图。该报文的理装置500应用于上述电子设备,该报文的处理装置500包括:网络报文获取模块510、判断模块520和网络报文发送模块530,其中:
网络报文获取模块510,用于获取网络报文,并确定所述网络报文对应的源通道;判断模块520,用于判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定;网络报文发送模块530,用于若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设。
在一些实施例中,网络报文获取模块510包括:触发判断子模块,用于判断所述网关中的中断函数是否被触发,其中,所述中断函数在所述网关每一次接收到网络报文时或发送网络报文时被触发;网络报文获取子模块,用于若所述网关中的中断函数被触发,则获取所述网络报文。
在一些实施例中,网络报文发送模块530包括:网络报文复制子模块,用于若所述源通道与所述预设通道相同,则复制所述网络报文并缓存;网络报文第一发送子模块,用于确定缓存的网络报文对应的中断函数被触发的顺序,按所述顺序依次将所述缓存的网络报文发送至所述外设。
在一些实施例中,网络报文发送模块530还包括:类型判断子模块,用于若所述源通道与所述预设通道相同,判断所述网络报文的类型是否为指定类型;网络报文第二发送子模块,用于若所述类型不是指定类型,则复制所述网络报文并发送至所述外设。
在另一些实施例中,网络报文发送模块530还包括:数据长度确定子模块,用于若所述类型是所述指定类型,则确定所述网络报文的数据长度;网络报文第三发送子模块,用于确定所述数据长度和预设长度的长度关系,基于所述长度关系对所述网络报文进行复制并发送至所述外设。
在一些实施例中,网络报文第三发送子模块包括:网络报文分段复制单元,用于若所述数据长度大于所述长度阈值,则基于所述长度阈值对所述网络报文进行分段复制并发送至所述外设;网络报文发送单元,用于若所述数据长度小于或等于所述长度阈值,则复制所述网络报文并发送至所述外设。
在又一些实施例中,网络报文发送模块530还包括:网络报文复制子模块,用于若所述源通道与所述预设通道相同,则复制所述网络报文并缓存;网络报文第四发送子模块,用于按预设时间间隔,将缓存的网络报文发送至所述外设。
根据本申请实施例的一个方面,还提供了一种电子设备,如图6所示,该电子设备600包括处理器610以及一个或多个存储器620,一个或多个存储器620用于存储被处理器610执行的程序指令,处理器610执行程序指令时实施上述的对象识别方法。
进一步地,处理器610可以包括一个或者多个处理核。处理器610运行或执行存储在存储器620内的指令、程序、代码集或指令集,以及调用存储在存储器620内的数据。可选地,处理器610可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器610可集成中央处理器(CentralProcessing Unt,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作***、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器中,单独通过一块通信芯片进行实现。
根据本申请的一个方面,本申请还提供了一种计算机可读存储介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载计算机可读指令,当该计算机可读存储指令被处理器执行时,实现上述任一实施例中的方法。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (8)
1.一种报文的处理方法,其特征在于,所述方法包括:
获取网络报文,并确定所述网络报文对应的源通道;
判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定;
若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设,其中,所述若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设,包括:
若所述源通道与所述预设通道相同,判断所述网络报文的类型是否为指定类型;
若所述类型是所述指定类型,则确定所述网络报文的数据长度;
确定所述数据长度和预设长度的长度关系;
若所述数据长度大于长度阈值,则基于所述长度阈值对所述网络报文进行分段复制并发送至所述外设,其中,所述分段复制用于将所述网络报文复制拆分为多个网络子报文,以便于所述网络报文对应的多个网络子报文发送至所述外设;
若所述数据长度小于或等于所述长度阈值,则复制所述网络报文并发送至所述外设。
2.根据权利要求1所述方法,其特征在于,所述获取网络报文,包括:
判断所述网关中的中断函数是否被触发,其中,所述中断函数在所述网关每一次接收到网络报文时或发送网络报文时被触发;
若所述网关中的中断函数被触发,则获取所述网络报文。
3.根据权利要求1所述的方法,其特征在于,所述若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设,包括:
若所述源通道与所述预设通道相同,则复制所述网络报文并缓存;
确定缓存的网络报文对应的中断函数被触发的顺序,按所述顺序依次将所述缓存的网络报文发送至所述外设。
4.根据权利要求1所述的方法,其特征在于,在所述若所述源通道与所述预设通道相同,判断所述网络报文的类型是否为指定类型之后,所述方法还包括:
若所述类型不是指定类型,则复制所述网络报文并发送至所述外设。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设,包括:
若所述源通道与所述预设通道相同,则复制所述网络报文并缓存;
按预设时间间隔,将缓存的网络报文发送至所述外设。
6.一种报文的处理装置,其特征在于,所述装置包括:
网络报文获取模块,用于获取网络报文,并确定所述网络报文对应的源通道;
判断模块,用于判断所述源通道与预设通道是否相同,其中,所述预设通道由网关基于连接的外设发送的目标指令确定;
网络报文发送模块,用于若所述源通道与所述预设通道相同,则复制所述网络报文并发送至所述外设,其中,所述网络报文发送模块包括:
类型判断子模块,用于若所述源通道与所述预设通道相同,判断所述网络报文的类型是否为指定类型;
数据长度确定子模块,用于若所述类型是所述指定类型,则确定所述网络报文的数据长度;
长度关系确定子模块,用于确定所述数据长度和预设长度的长度关系;
网络报文分段复制单元,用于若所述数据长度大于长度阈值,则基于所述长度阈值对所述网络报文进行分段复制并发送至所述外设,其中,所述分段复制用于将所述网络报文复制拆分为多个网络子报文,以便于所述网络报文对应的多个网络子报文发送至所述外设;
网络报文发送单元,用于若所述数据长度小于或等于所述长度阈值,则复制所述网络报文并发送至所述外设。
7.一种电子设备,其特征在于,所述电子设备包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至5中任一项所述的方法。
8.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859082.XA CN115633044B (zh) | 2022-07-20 | 2022-07-20 | 报文的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210859082.XA CN115633044B (zh) | 2022-07-20 | 2022-07-20 | 报文的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115633044A CN115633044A (zh) | 2023-01-20 |
CN115633044B true CN115633044B (zh) | 2024-01-19 |
Family
ID=84903202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210859082.XA Active CN115633044B (zh) | 2022-07-20 | 2022-07-20 | 报文的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115633044B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103293008A (zh) * | 2013-06-27 | 2013-09-11 | 长城汽车股份有限公司 | 汽车诊断设备 |
CN104240334A (zh) * | 2014-09-30 | 2014-12-24 | 长城汽车股份有限公司 | 汽车脉冲信号记录仪及车辆检测设备 |
CN106992879A (zh) * | 2017-03-14 | 2017-07-28 | 中国第汽车股份有限公司 | 一种can总线负载率的计算方法 |
CN109660436A (zh) * | 2018-12-18 | 2019-04-19 | 广州亚美信息科技有限公司 | 一种双can通道数据处理方法、网关设备及*** |
CN111586210A (zh) * | 2020-04-22 | 2020-08-25 | 东风商用车有限公司 | 一种多路can总线obd诊断协议转换装置 |
WO2021184551A1 (zh) * | 2020-03-18 | 2021-09-23 | 平安科技(深圳)有限公司 | 基于多个网络的通信方法、装置、电子设备及存储介质 |
CN114189573A (zh) * | 2022-02-15 | 2022-03-15 | 中国汽车技术研究中心有限公司 | 一种can信号解析方法和*** |
WO2022116953A1 (zh) * | 2020-12-01 | 2022-06-09 | 阿里巴巴集团控股有限公司 | 报文处理方法、设备、***及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086368B2 (en) * | 2009-01-06 | 2011-12-27 | Bosch Security Systems Inc. | Variable function communication gateway for vehicles |
-
2022
- 2022-07-20 CN CN202210859082.XA patent/CN115633044B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103293008A (zh) * | 2013-06-27 | 2013-09-11 | 长城汽车股份有限公司 | 汽车诊断设备 |
CN104240334A (zh) * | 2014-09-30 | 2014-12-24 | 长城汽车股份有限公司 | 汽车脉冲信号记录仪及车辆检测设备 |
CN106992879A (zh) * | 2017-03-14 | 2017-07-28 | 中国第汽车股份有限公司 | 一种can总线负载率的计算方法 |
CN109660436A (zh) * | 2018-12-18 | 2019-04-19 | 广州亚美信息科技有限公司 | 一种双can通道数据处理方法、网关设备及*** |
WO2021184551A1 (zh) * | 2020-03-18 | 2021-09-23 | 平安科技(深圳)有限公司 | 基于多个网络的通信方法、装置、电子设备及存储介质 |
CN111586210A (zh) * | 2020-04-22 | 2020-08-25 | 东风商用车有限公司 | 一种多路can总线obd诊断协议转换装置 |
WO2022116953A1 (zh) * | 2020-12-01 | 2022-06-09 | 阿里巴巴集团控股有限公司 | 报文处理方法、设备、***及存储介质 |
CN114189573A (zh) * | 2022-02-15 | 2022-03-15 | 中国汽车技术研究中心有限公司 | 一种can信号解析方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN115633044A (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11546088B2 (en) | Check code processing method, electronic device and storage medium | |
CN108347476B (zh) | 跨机房数据同步方法、装置以及服务器 | |
CN112822260B (zh) | 文件传输方法及装置、电子设备、存储介质 | |
US11734077B2 (en) | Evaluation device, evaluation method and evaluation program | |
CN114710224A (zh) | 帧同步方法及装置、计算机可读介质、电子设备 | |
CN110554929B (zh) | 数据校验方法、装置、计算机设备及存储介质 | |
CN111787098B (zh) | 一种耳机升级方法、装置及一种耳机和存储介质 | |
US20140107863A1 (en) | Vehicle Control Device, Vehicle Control System | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
CN109743133B (zh) | 数据对账方法及装置 | |
CN107094085B (zh) | 一种信令传送方法及装置 | |
CN108038127B (zh) | 一种数据同步的方法、装置、终端设备及存储介质 | |
CN114612101A (zh) | 面向连接的可靠链间路由跨链方法及*** | |
CN112732560B (zh) | 文件描述符泄露风险的检测方法及装置 | |
CN115633044B (zh) | 报文的处理方法、装置、电子设备及存储介质 | |
CN104618474B (zh) | 设备信息保存方法以及装置 | |
CN108400901B (zh) | 应用的测试方法、终端设备及计算机可读存储介质 | |
CN112749142B (zh) | 句柄管理方法和*** | |
CN112055058A (zh) | 数据的存储方法、装置及计算机可读存储介质 | |
CN106788917B (zh) | 一种基于停车场业务数据的上传方法 | |
CN115002135B (zh) | 多端协同方法、装置、***及计算机可读存储介质 | |
CN107203559B (zh) | 一种划分数据条带的方法和装置 | |
CN103699666A (zh) | 数据切分的传输方法及装置 | |
CN113064869B (zh) | 日志处理方法、装置、发送端、接收端设备及存储介质 | |
CN111478755B (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 |