CN114338270A - 数据通信方法、装置、电子设备及存储介质 - Google Patents
数据通信方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114338270A CN114338270A CN202111603825.9A CN202111603825A CN114338270A CN 114338270 A CN114338270 A CN 114338270A CN 202111603825 A CN202111603825 A CN 202111603825A CN 114338270 A CN114338270 A CN 114338270A
- Authority
- CN
- China
- Prior art keywords
- data
- connector
- frame data
- transmission
- flow control
- 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
Links
Images
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/4013—Management of data rate on the bus
-
- 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/4013—Management of data rate on the bus
- H04L12/40136—Nodes adapting their rate to the physical link properties
-
- 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/40143—Bus networks involving priority mechanisms
- H04L12/4015—Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C2205/00—Indexing scheme relating to group G07C5/00
- G07C2205/02—Indexing scheme relating to group G07C5/00 using a vehicle scan tool
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C5/00—Registering or indicating the working of vehicles
- G07C5/08—Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
- G07C5/0808—Diagnosing performance data
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Communication Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请适用于通信技术领域,提供了数据通信方法、装置、电子设备及存储介质,包括:接收第一设备发送的CAN总线数据;若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据;在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器通过基于流控制的第二传输流程将所述多包数据传输至第二设备。本申请实施例能够高效准确地实现设备间数据的远程传输。
Description
技术领域
本申请属于通信技术领域,尤其涉及一种数据通信方法、装置、电子设备及存储介质。
背景技术
控制器局域网络(Controller Area Network,CAN),是ISO国际标准化的串行通信协议,CAN总线已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。
通常,两个近距离直接连接了CAN总线的设备之间能够直接进行CAN通信。而在一些应用场景中,需要相距较远的两个设备之间进行CAN总线数据的远程传输。这种应用场景中,可以将这两个设备分别连接具有网络通信功能的连接器,借助连接器间接地实现两个设备之间的CAN总线数据的远程传输。然而,现有的这种借助连接器实现远程传输的方式,存在着由于网络速度的影响而导致的CAN总线数据传输失败的问题。
发明内容
有鉴于此,本申请实施例提供了数据通信方法、装置、电子设备及存储介质,以解决现有技术中如何高效准确地实现设备间数据的远程传输的问题。
本申请实施例的第一方面提供了第一种数据通信方法,所述方法应用于第一连接器,包括:
接收第一设备发送的CAN总线数据;其中,所述第一连接器与所述第一设备建立了CAN通信连接;
若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据;
在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器通过基于流控制的第二传输流程将所述多包数据传输至第二设备;其中,所述第一连接器与所述第二连接器建立了网络通信连接;所述第二连接器与所述第二设备建立了CAN通信连接。
可选地,所述基于流控制的第一传输流程,包括:
向所述第一设备发送当前的第一流控制帧数据,所述第一流控制帧数据包含第一间隔时间的信息;
接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据。
可选地,所述第一流控制帧数据还包含第一数据块大小的信息,所述第一数据块大小用于表示当前能够连续接收的连续帧数据的帧数;对应地,在所述接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据之后,还包括:
记录发送当前的所述第一流控制帧数据之后累计收到的连续帧数据的帧数量;
若所述帧数量达到所述第一数据块大小,则重新确定新的流控制帧数据作为当前的第一流控制帧数据,并返回执行所述向所述第一设备发送当前的第一流控制帧数据的步骤及后续的步骤。
可选地,在所述接收第一设备发送的CAN总线数据之后,还包括:
若检测到所述CAN总线数据为单包数据,则直接将所述单包数据发送至所述第二连接器,以指示所述第二连接器将所述单包数据传输至第二设备。
本申请实施例的第二方面提供了第二种数据通信方法,所述方法应用于第二连接器,包括:
接收第一连接器发送的多包数据的首帧数据;其中,所述第二连接器与所述第一连接器建立了网络通信连接,所述第二连接器与第二设备建立了CAN 通信连接;
接收所述第一连接器发送的所述多包数据的各个连续帧数据;
将所述首帧数据发送至所述第二设备,并执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备。
可选地,在所述接收所述第一连接器发送的所述多包数据的各个连续帧数据之后,还包括:
将各个所述连续帧数据存储至缓存区;
对应地,所述执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备,包括:
若接收到所述第二设备根据所述首帧数据返回的第二流控制帧数据,则根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备。
可选地,所述第二流控制帧数据包含第二间隔时间和第二数据块大小的信息,对应地,所述根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备,包括:
根据所述第二流控制帧数据从所述缓存区获取所述第二数据块大小的连续帧数据,并按照所述第二间隔时间将所述第二数据块大小的连续帧数据依次发送至所述第二设备。
本申请实施例的第三方面提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,当所述处理器执行所述计算机程序时,使得电子设备实现如第一方面或者第二方面所述的数据通信方法的步骤。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得电子设备实现如第一方面或者第二方面所述的数据通信方法的步骤。
本申请实施例的第五方面提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述的数据通信方法。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例中,第一连接器接收第一设备发送的CAN总线数据后,若检测到该CAN总线数据为多包数据中的首帧数据,则执行第一连接器与第一设备之间的基于流控制的第一传输流程,以从该第一设备获取多包数据中的各个连续帧数据;在第一连接器执行与第一设备之间的基于流控制的第一传输流程的同时或者之后,第一连接器将首帧数据和各个连续帧数据发送至第二连接器,以指示该第二连接器通过基于流控制的第二传输流程将所述多包数据传输至第二设备。由于能够基于流控制实现数据传输,因此能够控制数据传输的进程,防止数据的丢失,避免由于数据在两个CAN接口之间传输出现通讯双方速率不匹配而导致丢失数据的现象。并且,由于第一连接器在接收到为首帧数据的CAN总线数据后,能够直接执行第一连接器与第一设备之间的基于流控制的第一传输流程,而无需等待该CAN总线数据传达至第二设备接收到应答后再启动基于流控制的第一传输流程,第一连接器在将首帧数据和各个连续帧数据发送至与其建立了远程的网络通信连接的第二连接器后,该第二连接器同样无需依赖第一连接器的应答,自主地实现第二连接器与第二设备之间的基于流控制的第二传输流程,因此能够使得第一设备和第二设备在间接地远程传输多包数据时,将传输流程解耦为相对独立的、不受网络传输速度影响的基于流控制的第一传输流程和基于流控制的第二传输流程,避免由于网络速度的影响导致多包数据传输失败,提高多包数据发送的成功率和效率,从而高效准确地实现设备间CAN总线数据的远程传输。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种数据通信系统的系统结构示意图;
图2是本申请实施例提供的第一种数据通信方法的实现流程示意图;
图3是本申请实施例提供的第二种数据通信方法的实现流程示意图;
图4是本申请实施例提供的数据通信方法的交互流程示意图;
图5是本申请实施例提供的一种第一数据通信装置的示意图;
图6是本申请实施例提供的一种第二数据通信装置的示意图;
图7是本申请实施例提供的电子设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
目前,当需要相距较远的两个设备之间进行CAN总线数据的远程传输时,可以将这两个设备分别连接具有网络通信功能的连接器,借助连接器间接地实现两个设备之间的CAN总线数据的远程传输。然而,现有的这种借助连接器实现远程传输的方式,存在着由于网络速度的影响而导致的CAN总线数据传输效率和准确率较低的问题。
为了解决上述的技术问题,本申请实施例提供了一种数据通信方法、装置、电子设备及存储介质,包括:接收第一设备发送的CAN总线数据;若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据;其中,所述第一连接器与所述第一设备建立了CAN 通信连接;在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器将所述首帧数据发送至第二设备,并通过基于流控制的第二传输流程将各个所述连续帧数据传输至所述第二设备;其中,所述第一连接器与所述第二连接器建立了网络通信连接;所述第二连接器与所述第二设备建立了CAN通信连接。
由于能够基于流控制实现数据传输,因此能够控制数据传输的进程,防止数据的丢失,避免由于数据在两个CAN接口之间传输出现通讯双方速率不匹配而导致丢失数据的现象。并且,由于第一连接器在接收到为首帧数据的CAN 总线数据后,能够直接执行第一连接器与第一设备之间的基于流控制的第一传输流程,而无需等待该CAN总线数据传达至第二设备接收到应答后再启动基于流控制的第一传输流程,第一连接器在将首帧数据和各个连续帧数据发送至与其建立了远程的网络通信连接的第二连接器后,该第二连接器同样无需依赖第一连接器的应答,自主地实现第二连接器与第二设备之间的基于流控制的第二传输流程,因此能够使得第一设备和第二设备在间接地远程传输多包数据时,将传输流程解耦为相对独立的、不受网络传输速度影响的基于流控制的第一传输流程和基于流控制的第二传输流程,避免由于网络速度的影响导致多包数据传输失败,提高多包数据发送的成功率和效率,从而高效准确地实现设备间 CAN总线数据的远程传输。
为了便于理解,首先本申请实施例的一些相关概念进行以下解释:
(一)流控制
流控制指的是对数据流传输进行控制的过程。数据在传输过程中容易出现数据丢失的现象,例如:两台计算机在通过串口传输数据时,可能由于两端计算机的处理速度不同,出现接收端的数据缓冲区已满,而发送端依然继续发送数据,则导致数据丢失。流控制能够控制数据的发送速度和进度,从而解决由于处理速度不均衡而导致额数据丢失问题。
(二)多包数据:即通过多个数据包(即多帧数据)的形式完成发送的数据。
(三)单包数据:即只需通过一个数据包(即一帧数据)的形式完成发送的数据。
(四)连接器
即具有CAN通信功能又有网络通信功能的通信装置,能够作为设备间进行远程CAN通信的传输媒介。在一些实际的应用场景中,连接器可以是具有 CAN通信接口和网络通信模块的电子设备如手持终端等。
(五)CAN总线相关协议
本申请实施例中,CAN总线在物理层和数据链路层主要遵循ISO11898协议;在网络层主要遵循ISO15765协议。
ISO15765是基于CAN网络的诊断协议,其中ISO15765-2描述的是网络层协议。在该网络层协议中,提供了两种数据传输方法:单包数据传输方法和多包数据传输方法。网络层具体可以根据底层依次可传输的最大数据包大小和当前所需传输的数据量,确定当前采用哪种数据传输方法。
基于ISO15765-2协议,网络层协议数据单元(Network_Protocol Data Unit, N_PDU)有四种类型,即单帧(Single Frame,SF)、首帧(First Frame,FF)、连续帧(Consecutive Frame,CF)、流控制帧(Flow Control,FC),用于建立对等实体间的通信。其中,单包数据传输方法中所采用的为单帧SF格式的数据帧;多包数据传输方法则存在首帧FF、连续帧CF、流控制帧FC这三种格式的数据帧,通过这三帧数据帧,可以基于流控制实现多包数据的传输。
在上述的多包数据传输方法中,对数据传输的实时性要求较高,例如首帧的发送与流控制帧的应答之间的时间间隔,需要严格控制在50毫秒以内。
示例性地,图1示出了本申请实施例提供的一种数据通信系统的结构示意图。该数据通信系统包括第一设备11、第一连接器12、第二连接器13和第二设备14。其中,该第一设备11与第一连接器12建立了近距离的CAN通信连接,能够直接传输CAN总线数据;类似地,第二设备14与第二连接器13也建立了CAN通信连接,能够直接传输CAN总线数据。而第一连接器12与第二连接器13建立了网络通信连接,能够实现远程的网络传输。因此,第一设备与第二设备之间,可以借助第一连接器和第二连接器间接地实现CAN总线数据的远程传输。
当图1所示的数据通信系统中需要在第一设备和第二设备之间实现多包数据传输时,通常是由第一设备将多包数据中的首帧数据通过CAN总线发送至第一连接器,第一连接器将该首帧数据通过网络传输至第二连接器,接着该第二连接器再通过CAN总线将该首帧数据送达第二设备;第二设备在接收到该首帧数据后,返回流控制帧数据至第二连接器,第二连接器将该流控制帧数据通过网络传输至第一连接器,第一连接器再将该流控制帧数据送达第一设备,以指示第一设备继续发送多包数据中的连续帧。然而,对于实时要求较高的多包数据传输来说,这种传输方式使得多包数据的发送受限于网络传输速度,当网络传输不稳定、速度较慢时,第一设备发送首帧数据后超过规定的50毫秒仍未接收到流控制帧的应答时,则会导致数据传输失败,最终影响多包数据传输的成功率和效率。
而本申请实施例的数据通信方法,第一连接器在接收到第一设备发送的首帧数据后,无需等待第二设备的应答,而是自动向第一设备返回第一流控制帧以执行第一连接器与第一设备之间基于流控制的第一传输流程,从而实时成功地将多包数据从第一设备传输至第一连接器。而对于通过网络实现数据传输的第一连接器和第二连接器之间,可以不进行流控制帧的传输和应答,以降低对网络传输的实时性要求;在第一连接器顺利接收到多包数据后,将该多包数据的各帧数据依次传输至第二连接器,第二连接器和第二设备之间同样在不依赖网络传输实时性的情况下,通过基于流控制的第二传输流程,成功地将第二连接器接收到的多包数据传输至第二设备。即,通过本申请实施例的数据通信方法,使得如图1所示的第一设备和第二设备在间接地远程传输多包数据时,将传输流程解耦为相对独立的、不受网络传输速度影响的基于流控制的第一传输流程和基于流控制的第二传输流程,避免由于网络速度的影响导致多包数据传输失败,提高多包数据发送的成功率和效率,从而高效准确地实现设备间CAN 总线数据的远程传输。
实施例一:
图2示出了本申请实施例提供的第一种数据通信方法的流程示意图,该数据通信方法应用于如图1所示的第一连接器,详述如下:
在S201中,接收第一设备发送的CAN总线数据;其中,所述第一连接器与所述第一设备建立了CAN通信连接。
本申请实施例中,第一设备如图1的数据通信系统中所示,与第一连接器建立了CAN通信连接。该第一设备可以为诊断仪或者车辆,当在进行车辆远程诊断时,第一设备可以基于ISO15765协议,将CAN总线数据发送至第一连接器。第一连接器基于ISO15765协议,接收该CAN总线数据。
在S202中,若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据。
在接收到CAN总线数据后,第一连接器解析该CAN总线数据,以判断该 CAN总线数据是否为多包数据中的首帧数据FF。在一个实施例中,该CAN总线数据具体为网络层协议数据单元N_PDU的格式,该网络层协议数据单元 N_PDU包含网络层地址信息(Networkaddress information,N_AI)、网络层协议控制信息(Network protocol controlinformation,N_PCI)和网络层数据 (Network data,N_Data)。由于单帧SF、首帧FF、连续帧CF和流控制帧这四种类型的数据帧是通过协议控制信息N_PCI进行区分的,因此,可以通过解析当前接收到的CAN总线数据,得到当前N_PDU中的协议控制信息N_PCI,根据该N_PCI确定当前的CAN总线数据是否为首帧数据。示例性地,当解析到当前的CAN总线数据的协议控制信息中,携带N_PCItype=1的信息,则判定当前接收到首帧数据。
当解析确定该CAN总线数据为多包数据中的首帧数据FF时,开始执行第一连接器与第一设备之间的基于流控制的第一传输流程。其中,基于流控制的第一传输流程指的是第一连接器在接收到首帧数据FF后,自身自动生成第一流控制帧数据FC1并及时反馈至第一设备,之后接收该第一设备按照该第一流控制帧数据FC1以预设的速度返回的多包数据中的连续帧数据CF的过程。通过该基于流控制的第一传输流程,第一连接器能够按照预设的速度成功地从第一设备获取多包数据中的各个连续帧数据CF。
在S203中,在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器通过基于流控制的第二传输流程将所述多包数据传输至所述第二设备;其中,所述第一连接器与所述第二连接器建立了网络通信连接;所述第二连接器与所述第二设备建立了CAN通信连接。
本申请实施例中,第二连接器如图1的数据通信系统所示,与第一连接器建立了网络通信连接,并且与第二设备建立了CAN通信连接。
在一个实施例中,在第一连接器执行上述的第一连接器与第一设备之间的基于流控制的第一传输流程的同时,即该第一连接器接收到一帧数据帧时,无论该数据帧是首帧数据还是连续帧数据,均立即通过网络传输,该首帧数据或者连续数据帧发送至第二连接器。在另一个实施例中,在第一连接器执行上述的第一连接器与第一设备之间的基于流控制的第一传输流程之后,即该第一连接器接收到完整的多数据包之后,再将该完整的多数据包中的首帧数据和各帧连续帧数据依次通过网络传输发送至第二连接器。
通过前述的方式,将多包数据中的首帧数据和连续帧数据发送至第二连接器,可以指示第二连接器将该首帧数据发送至第二设备,以启动第二连接器与第二设备间的基于流控制的第二传输流程,按照预设的速度将多包数据中的各帧连续帧发送至第二设备,以完成多包数据的传送。其中,该基于流控制的第二传输流程,指的是第二连接器接收第二设备反馈的第二流控制帧数据FC2,以及根据所述第二流控制帧数据FC2,将各帧连续帧数据CF按照预设的速度发送至所述第二设备的过程。
本申请实施例中,网络传输(也可以称为Internet通讯)的传输方式包括但不限于:基于服务器的网络数据中转传输、点对点传输、有线网络传输、移动通信网络传输如4G、5G、6G通信等方式。在一个实施例中,上述的首帧数据和连续帧数据具体通过Internet报文协议进行数据封装后,再发送至第二连接器。
本申请实施例中,由于能够基于流控制实现数据传输,因此能够控制数据传输的进程,防止数据的丢失,避免由于数据在两个CAN接口之间传输出现通讯双方速率不匹配而导致丢失数据的现象。并且,由于第一连接器在接收到为首帧数据的CAN总线数据后,能够直接执行第一连接器与第一设备之间的基于流控制的第一传输流程,而无需等待该CAN总线数据传达至第二设备接收到应答后再启动基于流控制的第一传输流程,第一连接器在将首帧数据和各个连续帧数据发送至与其建立了远程的网络通信连接的第二连接器后,该第二连接器同样无需依赖第一连接器的应答,自主地实现第二连接器与第二设备之间的基于流控制的第二传输流程,因此能够使得第一设备和第二设备在间接地远程传输多包数据时,将传输流程解耦为相对独立的、不受网络传输速度影响的基于流控制的第一传输流程和基于流控制的第二传输流程,避免由于网络速度的影响导致多包数据传输失败,提高多包数据发送的成功率和效率,从而高效准确地实现设备间CAN总线数据的远程传输。
可选地,所述基于流控制的第一传输流程,包括:
向所述第一设备发送当前的第一流控制帧数据,所述第一流控制帧数据包含第一间隔时间的信息;
接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据。
本申请实施例中,第一连接器在检测到当前接收到的CAN总线数据为多包数据中的首帧数据时,根据自身预置的配置表,生成当前的第一流控制帧数据FC1,并将该第一流控制帧数据FC1发送至第一设备。该第一流控制帧数据 FC1具体包含第一间隔时间的信息。
在一个实施例中,流控制帧数据具体依次包含以下的信息:
(1)数据帧类型信息N_PCItype;当N_PCItype=3时,表示当前的该帧数据为流控制帧数据;
(2)数据流传输状态(Flow Status,FS),用于标识多包数据接收方自身的状态。其中,当FS=0时,代表接收方已经准备好数据传输,发送方可以发送序列帧;当FS=1时,发送方继续等待流控制帧且复位超时定时器;当FS=2 时,代表接收方的内存不够接收当前多数据包长度的数据,发送方结束数据传输;
(3)数据块大小(Block Size,BS),用于标识当前可以连续接收多少帧数据帧;
(4)最小间隔时间(Separation Time minimum,STmin),用于指示发送方当前间隔发送连续帧的时间间隔。
本申请实施例中,第一连接器生成的第一流控制帧数据FC1可以包含上述 (1)~(4)四项信息,其中,第一流控制帧数据中的数据块大小称为第一数据块大小,第一流控制帧数据中的最小间隔时间称为第一间隔时间。
在一个实施例中,第一连接器接收到首帧数据FF之后,可以对该首帧数据FF进行解析,从中获取首帧数据长度(First Frame data length,FF_DL)。 FF_DL表示的为此次需传输的多包数据的总数据量。之后,根据FF_DL确定当前适于该多数据包传输的的第一数据块大小、第一间隔时间。之后,根据该第一数据块大小、第一间隔时间及预置的配置表中的其它信息,生成该第一流控制帧数据。在一些实施例中,该第一流控制帧数据还携带CAN标识号(CANID) 的信息,以标识当前的第一流控制帧数据与哪个多数据包相对应。
在向第一设备发送该第一流控制帧数据之后,可以接收到该第一设备根据该第一流控制帧数据的指示,按照第一间隔时间依次发送的多包数据的连续帧数据CF。
本申请实施例中,由于第一连接器能够向第一设备发送包含第一间隔时间的信息的第一流控制帧数据,使得第一设备能够按照该第一间隔时间发送多包数据的连续帧数据,从而能够在不受网络速度的影响,高效准确地实现第一连接器与第一设备间的基于流控制的第一传输流程,高效准确地实现多包数据的流控传输。
可选地,所述第一流控制帧数据还包含第一数据块大小的信息,所述第一数据块大小用于表示当前能够连续接收的连续帧数据的帧数;对应地,在所述接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据之后,还包括:
记录发送当前的所述第一流控制帧数据之后累计收到的连续帧数据的帧数量;
若所述帧数量达到所述第一数据块大小,则重新确定新的流控制帧数据作为当前的第一流控制帧数据,并返回执行所述向所述第一设备发送当前的第一流控制帧数据的步骤及后续的步骤。
本申请实施例中,第一流控制帧数据包含上述的第一数据块大小BS的信息。第一连接器在向第一设备发送该第一流控制帧数据后,每次接收到第一设备根据该第一流控制帧数据返回的连续帧数据CF后,记录从发送当前的该第一流控制帧数据之后当前累计接收到的连续帧数据的帧数量,还可以记录从接收到首帧数据后累计接收到的连续帧数据的总帧数量。
之后,当检测到该帧数量达到该第一数据块大小,并且总帧数量尚未达到多包数据的总数据量时,说明当前的多包数据尚未接收完毕。此时,第一连接器根据自身当前的内存资源和接口资源,重新确定当前的数据流传输状态FS、数据块大小BS和最小间隔时间STmin,并结合数据帧类型信息“N_PCItype=3”,生成新的流控制帧数据(即包含重新确定的FS、BS和STmin信息的流控制帧) 作为当前的第一流控制帧数据。之后,返回向第一设备发送当前的第一流控制帧数据的步骤,以使得第一设备能够根据新的流控制帧数据继续发送该多包数据剩余的连续帧数据。
本申请实施例中,由于能够第一连接器在发送第一流控制帧数据后,能够记录累计收到的连续帧数据的帧数量,并根据该帧数量继续发送新的流控制帧数据,从而准确地实现多包数据发送的流控制,成功高效地实现多包数据的传输。
可选地,在所述接收第一设备发送的CAN总线数据之后,还包括:
若检测到所述CAN总线数据为单包数据,则直接将所述单包数据发送至所述第二连接器,以指示所述第二连接器将所述单包数据传输至第二设备。
本申请实施例中,在接收到第一设备发送的CAN总线数据后,解析该CAN 总线数据,如果根据该CAN总线数据中的协议控制信息N_PCI,确定当前的 N_PCItype=0,则判定当前的CAN总数数据为一帧单帧数据,即当前需要接收的为单包数据。此时,无需进行流控制,直接通过网络传输将该单包数据(即单帧数据)发送至第二连接器,以指示第二连接器在接收到该单包数据后,将该单包数据通过CAN总线传输至第二设备。
本申请实施例中,第一连接器除了能够作为第一设备传输多包数据的媒介,还能够作为第一设备传输单包数据的媒介,灵活高效地实现第一设备与第二设备之间的数据传输。
实施例二:
图3示出了本申请实施例提供的第二种数据通信方法的流程示意图,该数据通信方法应用于如图1所示的第二连接器,详述如下:
在S301中,接收第一连接器发送的多包数据的首帧数据;其中,所述第二连接器与所述第一连接器建立了网络通信连接,所述第二连接器与第二设备建立了CAN通信连接。
本申请实施例中,如图1所示,第二连接器与第一连接器建立了网络通信连接,能够基于互联网进行数据传输;并且,该第二连接器还与第二设备建立了CAN通信连接,使得该第二连接器能够将基于CAN总线与第二设备进行数据传输。
第二连接器可以接收第一连接器通过互联网发送的多包数据的首帧数据。在一个实施例中,第二连接器接收到第一连接器通过网络传输发送过的网络数据后,若解析确定该数据为多包数据的首帧数据,则可以根据该首帧数据确定当前该多包数据的总数据量,并记录该总数据量。
在S302中,接收所述第一连接器发送的所述多包数据的各个连续帧数据。
本申请实施例中,在接收到多包数据的首帧数据后,可以继续接收该第一连接器通过网络传输的该多包数据的各个连续帧数据。
在S303中,将所述首帧数据发送至所述第二设备,并执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备。
本申请实施例中,接收连续帧数据的步骤以及发送首帧数据至第二设备的步骤的顺序可以任意排列。在一个实施例中,具体可以在接收到首帧数据之后,立即将该首帧数据通过CAN总线传输至第二设备(即在接收各帧连续帧数据之前即完成首帧数据的发送)。在另一个实施例中,可以在接收到首帧数据和各个连续帧数据,即完成一整个多包数据的接收后,再将该首帧数据发送至第二设备。
将首帧数据发送至第二设备之后,开始执行基于流控制的第二传输流程,从而通过流控制将各个连续帧按照预设的速度依次发送至第二设备。本申请实施例中,基于流控制的第二传输流程,具体指的是第二连接器接收第二设备根据该首帧数据返回的第二流控制帧数据,并根据该第二流控制帧数据将各帧连续帧数据按照预设的速度依次发送至第二设备的过程。在一个实施例中,第二设备每接收到一个连续帧,就立即按照预设的速度发送至第二设备,在另一个实施例中第二设备每接收到一个连续帧后先进行缓存,待所有连续帧接收完毕后,在按照预设的速度逐一发送至第二设备。
本申请实施例中,由于能够基于流控制实现数据传输,因此能够控制数据传输的进程,防止数据的丢失,避免由于数据在两个CAN接口之间传输出现通讯双方速率不匹配而导致丢失数据的现象。并且,由于基于流控制的第二传输流程不受网络传输速度影响,能够避免由于网络速度的影响导致多包数据传输失败,提高多包数据发送的成功率和效率,从而高效准确地实现设备间CAN 总线数据的远程传输。
可选地,在所述接收所述第一连接器发送的所述多包数据的各个连续帧数据之后,还包括:
将各个所述连续帧数据存储至缓存区;
对应地,所述执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备,包括:
若接收到所述第二设备根据所述首帧数据返回的第二流控制帧数据,则根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备。
本申请实施例中,第二连接器在接收到第一连接器通过网络传输的网络数据后,如果判断该网络数据属于连续帧数据,则将该连续帧数据加入缓存区的队列中。通过该方法,能够依次将各个连续帧数据存储至缓存区中。
之后,在将多包数据的首帧数据发送至第二设备后,如果接收到该第二设备根据该首帧数据返回的第二流控制帧数据,则从该缓存区中获取缓存的连续帧数据,将各帧连续帧数据按照一定的速度依次发送至第二设备。
本申请实施例中,由于在接收到连续帧数据后能够先缓存至缓存区,以等待接收到第二流控制帧数据后再进行发送,因此能够稳定地实现第二连接器与第二设备之间的流控制数据传输,提高多包数据发送的成功率和准确性。
可选地,所述第二流控制帧数据包含第二间隔时间和第二数据块大小的信息,对应地,所述根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备,包括:
根据所述第二流控制帧数据从所述缓存区获取所述第二数据块大小的连续帧数据,并按照所述第二间隔时间将所述第二数据块大小的连续帧数据依次发送至所述第二设备。
本申请实施例中,将第二设备返回的流控制帧数据称为第二流控制帧数据,将第二流控制帧数据对应的最小间隔时间(STmin)称为第二间隔时间,将该第二流控制帧数据对应的数据块大小(BS)称为第二数据块大小。
第二连接器在通过CAN总线接收到第二设备返回的第二流控制帧数据后,根据该第二流控制帧数据中的第二数据块大小的信息,从缓存区中获取与该第二数据块大小一致的目标数目个连续帧数据。之后,按照该第二间隔时间,将这目标数目个连续帧数据依次发送至第二设备。当第二连接器根据当前的第二流控制帧数据完成第二数据块大小的连续帧数据发送之后,如果接收到的新的第二流控制帧数据,则继续根据新的第二流控制帧数据中的新的第二数据块大小和新的第二间隔时间,继续从缓存区中获取剩余的连续帧数据进行发送。
本申请实施例中,由于能够根据第二流控制帧数据中包含的第二数据块大小和第二间隔时间,准确地控制每轮发送的连续帧数据的数量和速度,因此能够更准确地实现多包数据的流控制传输,提高多包数据发送的成功率。
可选地,所述数据通信方法还包括:
接收第二连接器发送的单包数据,并直接将所述单包数据发送至所述第二设备。
本申请实施例中,当第二连接器接收到第一连接器通过网络传输发送的单包数据时,可以无需进行缓存或者流控制,直接将该单包数据发送至第二设备,以灵活高效地实现第一设备和第二设备之间的单包数据传输。
可选地,所述数据通信方法还包括:
对从所述第一连接器接收到的网络数据进行验证,当验证通过后,再允许将该网络数据包含的帧数据传输至第二设备;其中该帧数据包括上述的首帧数据、连续帧数据和单包数据中的任意一项。
本申请实施例中,第一连接器无论是需要向第二连接器发送多包数据中的首帧数据、连续帧数据还是单包数据中的单帧数据,均需要为该数据增加预设的验证信息并封装为网络数据。第二连接器在接收到该网络数据后,需要对该网络数据进行解析验证,如果检测到该网络数据携带预先约定的验证信息,则判定该网络数据为合法数据。之后提取该网络数据中的帧数据,根据该帧数据的类型进行对应的传输操作。例如该帧数据为首帧数据或者单帧数据时则可以直接将该帧数据发送至第二设备;该帧数据为连续帧数据时,则可以将该连续帧数据存储至缓存区以等待发送。通过对网络数据进行验证,能够提高数据传输的安全性。
可选地,所述第一设备为车辆,所述第一连接器为车辆连接器,所述第二设备为诊断仪,所述第二连接器为诊断仪连接器;或者:所述第一设备为诊断仪,所述第一连接器为诊断仪连接器,所述第二设备为车辆,所述第二连接器为车辆连接器。
上述的实施例一和实施例二中所述的数据通信方法能够应用于车辆远程诊断应用场景中。在该应用场景中,当作为数据发送方的第一设备为车辆,作为数据接收方的第二设备为诊断仪时,该第一连接器可以为能够与该车辆进行 CAN通信的车辆连接器,该第二连接器为能够与该诊断仪进行CAN通信的诊断仪连接器。相反地,当作为数据发送方的第一设备为诊断仪,作为数据接收方的第二设备为车辆时,该第一连接器可以为诊断仪连接器,该第二连接器可以为车辆连接器。
在一个实施例中,本申请实施例中的CAN总线网络包括高速CAN、容错 CAN,单线CAN等各种CANBUS总线网络。
在一个实施例中诊断仪包括了手持诊断仪、电脑等各种能够扫描车辆的工具。
通过将本申请实施例的数据通信方法应用于包含车辆和诊断仪的车辆远程诊断应用场景中,能够高效准确地实现车辆的远程诊断。
示例性地,图4示出了车辆远程诊断应用场景中的数据交互流程的示意图。
对于单包数据的传输,如图4所示,当诊断仪需要发送单帧数据SF1时,可以直接通过CAN总线将该单帧数据SF1发送至诊断仪连接器,由诊断仪连接器直接通过网络传输将该单帧数据SF1发送至车辆连接器,之后车辆连接器再将该单帧数据SF1转发至车辆。同样地,当车辆需要发送单帧数据SF2时,直接通过CAN总线将该单帧数据SF2发送至车辆连接器,由车辆连接器直接通过网络传输将该单帧数据SF2发送至诊断仪连接器,之后诊断仪连接器再将该单帧数据SF2转发至诊断仪。
对于多包数据的传输,以诊断仪作为第一设备,以诊断仪连接器作为第一连接器,以车辆作为第二设备,以车辆连接器作为第二连接器进行示例描述,其多包数据传输流程如下:
(1)诊断仪通过CAN总线发送多包数据的首帧数据FF3至诊断仪连接器。
(2)诊断仪连接器接收该首帧数据FF3,并通过CAN总线返回流控制帧数据FC4至该诊断仪。
(3)诊断仪接收该流控制帧数据FC4,并根据该流控制帧数据FC4,依次发送连续帧数据CF-B1和连续帧数据CF-B2至诊断仪连接器。
(4)诊断仪接收连续帧数据CF-B1和连续帧数据CF-B2后,检测到当前接收的帧数2等于FF3记录的数据块大小,则生成新的流控制帧数据FC5,将该流控制帧数据FC5发送至诊断仪,以指示诊断仪继续发送剩余的连续帧数据 CF-B3和CF-B4。
(5)在诊断仪连接器接收各个连续帧数据的同时或者之后,诊断仪连接器通过网络传输将接收到的首帧数据FF3发送至车辆连接器,以使车辆连接器将该首帧数据FF3转发至车辆;以及,诊断仪连接器通过网络传输将接收到的连续帧数据发送至车辆连接器,以使车辆连接器对每次接收到的连续帧数据进行缓存。
(6)车辆连接器在将首帧数据FF3至车辆后,当接收到车辆返回的流控制帧数据FC10时,进行流控制帧数据处理,并记录当前需要发送的数据块大小和发送各帧数据的间隔时间。
(7)之后,车辆连接器根据该数据块大小获取缓存的连续帧数据,并按照该间隔时间将各个连续帧数据发送至车辆。
从车辆发送多包数据至诊断仪的多包数据传输流程与上述流程类似,此处不再赘述。
在一个实施例中,本申请实施例的数据通信方法可以应用于空调的远程技术指导场景中。在该场景中,第一设备可以为空调,第一连接器为能够与空调进行CAN通信的空调连接器,第二设备可以为空调检修设备,第二连接器为能够与空调检修设备进行CAN通信的检修设备连接器。或者,第一设备可以为空调检修设备,第一连接器为检修设备连接器,第二设备为空调,第二连接器为空调连接器。通过本申请实施例的数据通信方法,使得空调检修设备能够借助检修设备连接器和空调连接器间接地与空调进行远程通信,从而实现对空调的远程调试和检修。
在另一个实施例中,本申请实施例的数据通信方法可以应用于生产线中工业设备的远程技术指导场景。在该场景中,第一设备可以为生产线中的工业设备(例如螺丝机、贴膜设备、注塑机等),第一连接器可以为能够与工业设备进行CAN通信的工业设备连接器,第二设备可以为专业技术人员操控的调试设备,第二连接器为调试设备连接器。或者,第一设备可以为调试设备,第一连接器为调试设备连接器,第二设备为工业设备,第二连接器为工业设备连接器。通过本申请实施例的数据通信方法,使得专业技术人员无需到达生产线,即可使用自身的调试设备,并借助调试设备连接器和工业设备连接器,间接地与生产线中的工业设备进行远程通信,从而实现对工业设备的远程调试和检修。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例三:
图5示出了本申请实施例提供的一种第一数据通信装置的结构示意图,该第一数据通信装置应用于第一连接器,为了便于说明,仅示出了与本申请实施例相关的部分:
该第一数据通信装置包括:CAN总线数据接收单元51、第一传输流程执行单元52、第一发送单元53。其中:
CAN总线数据接收单元51,用于接收第一设备发送的CAN总线数据;其中,所述第一连接器与所述第一设备建立了CAN通信连接。
第一传输流程执行单元52,用于若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据。
第一发送单元53,用于在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器通过基于流控制的第二传输流程将所述多包数据传输至第二设备;其中,所述第一连接器与所述第二连接器建立了网络通信连接;所述第二连接器与所述第二设备建立了CAN通信连接。
可选地,所述第一传输流程执行单元52包括:
第一流控制帧数据发送模块,用于向所述第一设备发送当前的第一流控制帧数据,所述第一流控制帧数据包含第一间隔时间的信息;
第一连续帧数据接收模块,用于接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据。
可选地,所述第一流控制帧数据还包含第一数据块大小的信息,所述第一数据块大小用于表示当前能够连续接收的连续帧数据的帧数;对应地,所述第一数据通信装置还包括:
记录单元,用于记录发送当前的所述第一流控制帧数据之后累计收到的连续帧数据的帧数量;
数量比对单元,用于若所述帧数量达到所述第一数据块大小,则重新确定新的流控制帧数据作为当前的第一流控制帧数据,并返回执行所述向所述第一设备发送当前的第一流控制帧数据的步骤及后续的步骤。
可选地,所述数据通信装置还包括:
单包数据传输单元,用于若检测到所述CAN总线数据为单包数据,则直接将所述单包数据发送至所述第二连接器,以指示所述第二连接器将所述单包数据传输至第二设备。
图6示出了本申请实施例提供的一种第二数据通信装置的结构示意图,该第二数据通信装置应用于第二连接器,为了便于说明,仅示出了与本申请实施例相关的部分:
该第二数据通信装置包括:首帧数据接收单元61、连续帧数据接收单元62 和第二传输流程执行单元63。其中:
首帧数据接收单元61,用于接收第一连接器发送的多包数据的首帧数据;其中,所述第二连接器与所述第一连接器建立了网络通信连接,所述第二连接器与第二设备建立了CAN通信连接。
连续帧数据接收单元62,用于接收所述第一连接器发送的所述多包数据的各个连续帧数据。
第二传输流程执行单元63,用于将所述首帧数据发送至所述第二设备,并执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备。
可选地,所述第二数据通信装置还包括:
缓存单元,用于将各个所述连续帧数据存储至缓存区;
对应地,所述第二传输流程执行单元63中,所述执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备,包括:若接收到所述第二设备根据所述首帧数据返回的第二流控制帧数据,则根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备。
可选地,所述第二流控制帧数据包含第二间隔时间和第二数据块大小的信息,对应地,所述第二传输流程执行单元63中,,所述根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备,包括:根据所述第二流控制帧数据从所述缓存区获取所述第二数据块大小的目标数目个连续帧数据,并按照所述第二间隔时间将所述第二数据块大小的连续帧数据依次发送至所述第二设备。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
实施例四:
图7是本申请一实施例提供的电子设备的示意图。如图7所示,该实施例的电子设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如数据通信程序。
所述处理器70执行所述计算机程序72时实现上述各个数据通信方法实施例中的步骤,例如图2所示的步骤S201至S203或者图3所示的步骤S301至 S303。
在一个实施例中,当处理器70执行计算机程序72时,使得电子设备实现如下步骤:
接收第一设备发送的CAN总线数据;其中,所述第一连接器与所述第一设备建立了CAN通信连接;
若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据;
在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器通过基于流控制的第二传输流程将所述多包数据传输至第二设备;其中,所述第一连接器与所述第二连接器建立了网络通信连接;所述第二连接器与所述第二设备建立了CAN通信连接。
可选地,当所述处理器70执行所述计算机程序72时,所述基于流控制的第一传输流程,包括:
向所述第一设备发送当前的第一流控制帧数据,所述第一流控制帧数据包含第一间隔时间的信息;
接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据。
可选地,所述第一流控制帧数据还包含第一数据块大小的信息,所述第一数据块大小用于表示当前能够连续接收的连续帧数据的帧数;对应地,当所述处理器70执行所述计算机程序72时,还实现如下步骤:
记录发送当前的所述第一流控制帧数据之后累计收到的连续帧数据的帧数量;
若所述帧数量达到所述第一数据块大小,则重新确定新的流控制帧数据作为当前的第一流控制帧数据,并返回执行所述向所述第一设备发送当前的第一流控制帧数据的步骤及后续的步骤。
可选地,当所述处理器70执行所述计算机程序72时,还实现如下步骤:
若检测到所述CAN总线数据为单包数据,则直接将所述单包数据发送至所述第二连接器,以指示所述第二连接器将所述单包数据传输至第二设备。
在另一个实施例中,当处理器70执行计算机程序72时,使得电子设备实现如下步骤:
接收第一连接器发送的多包数据的首帧数据;其中,所述第二连接器与所述第一连接器建立了网络通信连接,所述第二连接器与第二设备建立了CAN 通信连接;
接收所述第一连接器发送的所述多包数据的各个连续帧数据;
将所述首帧数据发送至所述第二设备,并执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备。
可选地,当所述处理器70执行所述计算机程序72时,还实现如下步骤:
将各个所述连续帧数据存储至缓存区;
对应地,所述执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备,包括:
若接收到所述第二设备根据所述首帧数据返回的第二流控制帧数据,则根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备。
可选地,所述第二流控制帧数据包含第二间隔时间和第二数据块大小的信息,对应地,当所述处理器70执行所述计算机程序72时,所述根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备,包括:
根据所述第二流控制帧数据从所述缓存区获取所述第二数据块大小的连续帧数据,并按照所述第二间隔时间将所述第二数据块大小的连续帧数据依次发送至所述第二设备。
或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图5所示CAN总线数据接收单元51至第一发送单元 53的功能,或者例如图6所示首帧数据接收单元61至第二传输流程执行单元 63的功能。
示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述电子设备7中的执行过程。
所述电子设备7可以是连接器、桌上型计算机、笔记本、掌上电脑等计算设备。所述电子设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是电子设备7的示例,并不构成对电子设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述电子设备7的内部存储单元,例如电子设备7 的硬盘或内存。所述存储器71也可以是所述电子设备7的外部存储设备,例如所述电子设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述电子设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/电子设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据通信方法,其特征在于,所述方法应用于第一连接器,包括:
接收第一设备发送的CAN总线数据;其中,所述第一连接器与所述第一设备建立了CAN通信连接;
若检测到所述CAN总线数据为多包数据中的首帧数据,则执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程,以从所述第一设备获取所述多包数据中的各个连续帧数据;
在执行所述第一连接器与所述第一设备之间的基于流控制的第一传输流程的同时或者之后,将所述首帧数据和各个所述连续帧数据发送至第二连接器,以指示所述第二连接器通过基于流控制的第二传输流程将所述多包数据传输至第二设备;其中,所述第一连接器与所述第二连接器建立了网络通信连接;所述第二连接器与所述第二设备建立了CAN通信连接。
2.如权利要求1所述的数据通信方法,其特征在于,所述基于流控制的第一传输流程,包括:
向所述第一设备发送当前的第一流控制帧数据,所述第一流控制帧数据包含第一间隔时间的信息;
接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据。
3.如权利要求2所述的数据通信方法,其特征在于,所述第一流控制帧数据还包含第一数据块大小的信息,所述第一数据块大小用于表示当前能够连续接收的连续帧数据的帧数;对应地,在所述接收所述第一设备按照所述第一间隔时间发送的所述多包数据的连续帧数据之后,还包括:
记录发送当前的所述第一流控制帧数据之后累计收到的连续帧数据的帧数量;
若所述帧数量达到所述第一数据块大小,则重新确定新的流控制帧数据作为当前的第一流控制帧数据,并返回执行所述向所述第一设备发送当前的第一流控制帧数据的步骤及后续的步骤。
4.如权利要求1所述的数据通信方法,其特征在于,在所述接收第一设备发送的CAN总线数据之后,还包括:
若检测到所述CAN总线数据为单包数据,则直接将所述单包数据发送至所述第二连接器,以指示所述第二连接器将所述单包数据传输至第二设备。
5.一种数据通信方法,其特征在于,所述方法应用于第二连接器,包括:
接收第一连接器发送的多包数据的首帧数据;其中,所述第二连接器与所述第一连接器建立了网络通信连接,所述第二连接器与第二设备建立了CAN通信连接;
接收所述第一连接器发送的所述多包数据的各个连续帧数据;
将所述首帧数据发送至所述第二设备,并执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备。
6.如权利要求5所述的数据通信方法,其特征在于,在所述接收所述第一连接器发送的所述多包数据的各个连续帧数据之后,还包括:
将各个所述连续帧数据存储至缓存区;
对应地,所述执行基于流控制的第二传输流程,以将各个所述连续帧发送至所述第二设备,包括:
若接收到所述第二设备根据所述首帧数据返回的第二流控制帧数据,则根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备。
7.如权利要求6所述的数据通信方法,其特征在于,所述第二流控制帧数据包含第二间隔时间和第二数据块大小的信息,对应地,所述根据所述第二流控制帧数据从所述缓存区中获取所述连续帧数据,并将所述连续帧数据发送至所述第二设备,包括:
根据所述第二流控制帧数据从所述缓存区获取所述第二数据块大小的连续帧数据,并按照所述第二间隔时间将所述第二数据块大小的连续帧数据依次发送至所述第二设备。
8.如权利要求1至7任意一项所述的数据通信方法,其特征在于,所述第一设备为车辆,所述第一连接器为车辆连接器,所述第二设备为诊断仪,所述第二连接器为诊断仪连接器;或者:所述第一设备为诊断仪,所述第一连接器为诊断仪连接器,所述第二设备为车辆,所述第二连接器为车辆连接器。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,使得电子设备实现如权利要求1至4或5至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,当所述计算机程序被处理器执行时,使得电子设备实现如权利要求1至4或5至7任一项所述方法的步骤。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111603825.9A CN114338270B (zh) | 2021-12-24 | 2021-12-24 | 数据通信方法、装置、电子设备及存储介质 |
EP22722677.6A EP4224801A4 (en) | 2021-12-24 | 2022-01-25 | DATA COMMUNICATION METHODS AND APPARATUS, ELECTRONIC DEVICE AND STORAGE MEDIA |
PCT/CN2022/073726 WO2023115678A1 (zh) | 2021-12-24 | 2022-01-25 | 数据通信方法、装置、电子设备及存储介质 |
US17/746,163 US20230208676A1 (en) | 2021-12-24 | 2022-05-17 | Data communication method and apparatus, electronic device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111603825.9A CN114338270B (zh) | 2021-12-24 | 2021-12-24 | 数据通信方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114338270A true CN114338270A (zh) | 2022-04-12 |
CN114338270B CN114338270B (zh) | 2023-05-09 |
Family
ID=81013496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111603825.9A Active CN114338270B (zh) | 2021-12-24 | 2021-12-24 | 数据通信方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114338270B (zh) |
WO (1) | WO2023115678A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115032973A (zh) * | 2022-08-11 | 2022-09-09 | 深圳市星卡软件技术开发有限公司 | 一种数据传输系统、方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452667A (zh) * | 2016-08-30 | 2017-02-22 | 中国第汽车股份有限公司 | 一种商用车can通信传输方法 |
CN106549844A (zh) * | 2016-11-02 | 2017-03-29 | 中国第汽车股份有限公司 | 一种most‑can网关和基于该网关的诊断报文路由方法 |
CN106878124A (zh) * | 2015-12-10 | 2017-06-20 | 现代自动车株式会社 | 用于控制车辆内大容量诊断通信的方法和车辆控制器 |
WO2021042241A1 (zh) * | 2019-09-02 | 2021-03-11 | 深圳市元征科技股份有限公司 | 一种车辆远程诊断方法及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109672597A (zh) * | 2017-10-17 | 2019-04-23 | 株洲中车时代电气股份有限公司 | 一种用于列车控制系统的控制板 |
CN108377223B (zh) * | 2018-01-05 | 2019-12-06 | 网宿科技股份有限公司 | 一种多包识别方法、数据包识别方法及流量引导方法 |
CN111030905B (zh) * | 2019-12-05 | 2021-11-26 | 达闼机器人有限公司 | 网络传输方法及can总线网络、存储介质及电子设备 |
CN214704353U (zh) * | 2021-02-20 | 2021-11-12 | 北京公交智达科技有限公司 | 一种基于can总线的电子钥匙柜管控系统 |
CN113452591B (zh) * | 2021-06-21 | 2023-04-07 | 合安科技技术有限公司 | 基于can总线连续数据帧的回路控制方法及装置 |
-
2021
- 2021-12-24 CN CN202111603825.9A patent/CN114338270B/zh active Active
-
2022
- 2022-01-25 WO PCT/CN2022/073726 patent/WO2023115678A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878124A (zh) * | 2015-12-10 | 2017-06-20 | 现代自动车株式会社 | 用于控制车辆内大容量诊断通信的方法和车辆控制器 |
CN106452667A (zh) * | 2016-08-30 | 2017-02-22 | 中国第汽车股份有限公司 | 一种商用车can通信传输方法 |
CN106549844A (zh) * | 2016-11-02 | 2017-03-29 | 中国第汽车股份有限公司 | 一种most‑can网关和基于该网关的诊断报文路由方法 |
WO2021042241A1 (zh) * | 2019-09-02 | 2021-03-11 | 深圳市元征科技股份有限公司 | 一种车辆远程诊断方法及相关装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115032973A (zh) * | 2022-08-11 | 2022-09-09 | 深圳市星卡软件技术开发有限公司 | 一种数据传输系统、方法、装置、设备及介质 |
CN115032973B (zh) * | 2022-08-11 | 2022-11-15 | 深圳市星卡软件技术开发有限公司 | 一种数据传输系统、方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023115678A1 (zh) | 2023-06-29 |
CN114338270B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112445630B (zh) | 一种信息交互方法、装置及终端设备 | |
CN114338270B (zh) | 数据通信方法、装置、电子设备及存储介质 | |
CN113645097A (zh) | 车辆信号监测方法、终端设备及电子控制单元 | |
CN115604052B (zh) | 车辆通讯交互方法、系统及电子设备 | |
CN109800202B (zh) | 一种基于pcie的数据传输系统、方法及装置 | |
CN114978898B (zh) | 数据传输控制方法、装置、抬头显示器和存储介质 | |
CN111404842A (zh) | 数据传输方法、装置及计算机存储介质 | |
CN113490154B (zh) | 广播数据传输方法、装置、终端设备及存储介质 | |
US20230208676A1 (en) | Data communication method and apparatus, electronic device, and storage medium | |
CN103078720B (zh) | 报文处理方法及装置 | |
CN115514682A (zh) | 一种数据传输方法、装置、设备及存储介质 | |
CN109104581A (zh) | 一种无线传屏的方法、系统及接收终端 | |
CN112187536B (zh) | 基于tms配置数据的信息交互方法及装置、存储介质、电子装置 | |
CN114666289A (zh) | 一种基于电磁屏蔽体的数据传输方法及系统 | |
CN109918325B (zh) | 基于Avalon总线的接口转换桥、接口转换方法及系统 | |
US8904062B2 (en) | Network control model driver | |
CN112822087A (zh) | 数据区分方法、数据区分装置、路由器及网络中继设备 | |
CN114637275A (zh) | 车辆远程诊断方法、装置、电子设备及存储介质 | |
CN111083067A (zh) | 数据流拼接的方法、装置、存储介质和终端设备 | |
KR20200143881A (ko) | 제어기 통신 장치 및 그 방법 | |
US20090129355A1 (en) | Apparatus of transmitting packets of wireless local network and method for using the same | |
CN114650194B (zh) | 数据通信的方法、装置、电子设备及存储介质 | |
CN114201419A (zh) | 控制设备、控制设备的数据透传方法及数据透传系统 | |
CN115396529A (zh) | 多通道通信方法、装置、终端设备及存储介质 | |
CN114884768B (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 |