发明内容
本公开的主要目的是提供一种网络传输方法及CAN总线网络、存储介质及电子设备,以解决上述相关技术中存在的问题。
为了实现上述目的,本公开实施例第一方面提供一种网络传输方法,所述方法应用于CAN总线网络,其中,所述方法扩展定义了CAN总线网络中的流控帧、首帧以及连续帧,其中,扩展后的流控帧、扩展后的首帧以及扩展后的连续帧中均包括逻辑链路字段,所述方法包括:
第一端向第二端发送扩展后的首帧,所述扩展后的首帧包括第一逻辑链路标识,所述第一端和所述第二端包括CAN总线网络中的任意两个节点;
在接收所述第二端发送的扩展后的流控帧时,若所述扩展后的流控帧包括所述第一逻辑链路标识,则根据所述扩展后的流控帧中的传输控制参数将所述首帧后续的连续帧传输给所述第二端。
可选地,所述扩展后的流控帧包括在ISO 15765-2:2016(E)协议定义的流控帧的基础上增加了逻辑链路标识字段的流控帧;
所述扩展后的首帧包括在ISO 15765-2:2016(E)协议定义的首帧的基础上增加了逻辑链路标识字段的首帧;
所述扩展后的连续帧包括在ISO 15765-2:2016(E)协议定义的连续帧的基础上增加了逻辑链路标识字段的连续帧。
可选地,所述扩展后的流控帧包括将ISO 15765-2:2016(E)协议定义的流控帧的第四个字节作为逻辑链路标识字段的流控帧;
可选地,所述扩展后的流控帧的逻辑链路标识字段的取值为预定值时,用于后向兼容ISO 15765-2:2016(E)协议定义的流控帧。该预定值例如可以为取值0。
本公开实施例第二方面提供一种网络传输方法,所述方法应用于CAN总线网络,其中,所述方法扩展定义了CAN总线网络中的流控帧、首帧以及连续帧,其中,扩展后的流控帧、扩展后的首帧以及扩展后的连续帧中均包括逻辑链路字段,所述方法包括:
第二端接收第一端发送的扩展后的首帧,所述扩展后的首帧包括第一逻辑链路标识;
若所述第一端不存在具有第二逻辑链路标识的多帧序列未传输完成,则向所述第一端发送携带所述第一逻辑链路标识的扩展后的流控帧,以控制所述第一端传输具有所述第一逻辑链路标识的连续帧。
可选地,所述方法还包括:
若所述第一端存在具有第二逻辑链路标识的多帧序列未传输完成,则向所述第一端发送携带所述第二逻辑链路标识的扩展后的第一流控帧,所述第一流控帧还包括用于指示所述第二端暂停发送具有第二逻辑链路标识的连续帧的第一指示信息;并且,
在具有所述第一逻辑链路标识的多帧序列传输完成后,向所述第一端发送携带所述第二逻辑链路标识的扩展后的第二流控帧,所述第二流控帧还包括用于指示所述第二端继续发送具有第二逻辑链路标识的连续帧的第二指示信息。
可选地,所述扩展后的流控帧包括在ISO 15765-2:2016(E)协议定义的流控帧的基础上增加了逻辑链路标识字段的流控帧;
所述扩展后的首帧包括在ISO 15765-2:2016(E)协议定义的首帧的基础上增加了逻辑链路标识字段的首帧;
所述扩展后的连续帧包括在ISO 15765-2:2016(E)协议定义的连续帧的基础上增加了逻辑链路标识字段的连续帧。
可选地,所述扩展后的流控帧包括将ISO 15765-2:2016(E)协议定义的流控帧的第四个字节作为逻辑链路标识字段的流控帧。
可选地,所述扩展后的流控帧的逻辑链路标识字段的取值为预定值时,用于后向兼容ISO 15765-2:2016(E)协议定义的流控帧。
本公开实施例第三方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
本公开实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面所述方法的步骤。
本公开实施例第五方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。
本公开实施例第六方面提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第二方面所述方法的步骤。
本公开实施例第七方面提供一种CAN总线网络,包括CAN总线,以及所述CAN总线连接的多个节点设备;
每一所述节点设备在传输数据时,作为第一端执行第一方面中中任一项所述的方法;
每一所述节点设备接收数据时,作为第二端执行第二方面中任一项所述的方法。
采用上述技术方案,至少能够包括如下技术效果:
通过对CAN总线网络中的首帧、流控帧以及连续帧进行扩展定义,将逻辑链路字段加入到了所述首帧、流控帧以及连续帧中。这样,在所述CAN总线网络中的任意两个节点进行通信时,发送端能够在其发送给接收端的首帧中设置所述逻辑链路字段,从而告知接收端己方需要发送的数据以及所述数据所属的逻辑链路。类似的,接收端也能够通过在其流控帧中设置相应的逻辑链路字段来对发送端将要发送的帧进行指示,从而实现在通信过程中对要发送数据的逻辑链路进行选择的效果,进而提升了数据传输的灵活性,也对多个逻辑链路的数据传输进行了支持。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
本公开实施例提供一种网络传输方法,所述方法应用于CAN总线网络,其中,所述方法扩展定义了CAN总线网络中的流控帧、首帧以及连续帧。并且,扩展后的流控帧、扩展后的首帧以及扩展后的连续帧中均包括逻辑链路字段,如图1所示,所述方法包括:
S11,第一端向第二端发送扩展后的首帧,所述扩展后的首帧包括第一逻辑链路标识,所述第一端和所述第二端包括CAN总线网络中的任意两个节点。
应当理解的是,在所述CAN总线网络中,不同节点之间可以相互传输数据进而实现相应的功能。这样,这种数据传输的过程也就形成了相应的数据链路。在具体实施时,可以根据这样的数据传输方式将所述CAN总线网络的物理链路虚拟划分为一个或多个逻辑链路,并通过相应的逻辑链路标识(LLID,Logical Link Identifier)来对这些逻辑链路进行区分。
示例地,在一种可能的实施方式中,可以对首帧进行拓展定义,将所述首帧的第二个字节作为逻辑链路标识。这样,在所述第一端和第二端进行通信时,所述第一端可以通过设置首帧中的所述逻辑链路标识来告知所述第二端己方将要发送的数据以及所述数据所属的逻辑链路。
上述只是对本公开实施例可能的应用场景进行的举例说明,在另一种可能的实现方式中,所述逻辑链路标识也可以通过其他方式进行拓展定义,例如可以将所述逻辑链路标识设置在所述首帧中的其他字节,本公开对此不作限定。
S12,在接收到所述第二端发送的扩展后的流控帧时,若所述扩展后的流控帧包括所述第一逻辑链路标识,则根据所述扩展后的流控帧中的传输控制参数将所述首帧后续的连续帧传输给所述第二端。
其中,扩展后的流控帧可以是第二端在确定第一端不存在具有第二逻辑链路标识的多帧序列未传输完成时发送给所述第一端的。
采用上述方法,通过对CAN总线网络中的首帧、流控帧以及连续帧进行扩展定义,将逻辑链路字段加入到了所述首帧、流控帧以及连续帧中。这样,在所述CAN总线网络中的任意两个节点进行通信时,发送端能够在其发送给接收端的首帧中设置所述逻辑链路字段,从而告知接收端己方将要发送的数据以及所述数据所属的逻辑链路。类似的,接收端也能够通过在其流控帧中设置相应的逻辑链路字段来对发送端将要发送的帧进行指示,从而实现在通信过程中对要发送数据的逻辑链路进行选择的效果,进而提升了数据传输的灵活性,也对多个逻辑链路的数据传输进行了支持。
为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面对本公开实施例提供的网络传输方法进行详细的说明。
首先,针对步骤S11中所述的逻辑链路标识进行说明。在扩展定义所述首帧、流控帧以及连续帧时,可以用所述首帧、流控帧或连续帧中的一个字节来表示所述逻辑链路标识(相应的,在定义相关长度时也应当包括所述逻辑链路标识)。示例地,可以将所述流控帧的第四字节、所述首帧的第二字节以及所述连续帧的第二字节作为所述逻辑链路标识。在这种情况下,所述逻辑链路标识(LLID,Logical Link Identifier)取值范围可以为0-255。其中,取值0和取值255可以作为CAN总线网络所保留的LLID,从而使得所述网络传输方法能够兼容目前的ISO 15765-2:2016(E)标准。也就是说,取值1-254可以静态或动态分配给不同的逻辑链路使用。这样,在所述第一端和第二端进行通信时,所述第一端可以通过设置首帧中的所述逻辑链路标识来告知所述第二端己方需要发送的数据以及所述数据所属的逻辑链路。
具体地,参照如图2所示的数据传输示意图,节点1(Node 1)和节点2(Node 2)是所述CAN总线网络中的任意两个节点。其中,假设节点1为发送端,节点2为接收端。在所述节点1需要向节点2发送指定的逻辑链路数据时(图中以LLID=254示例),其可以将扩展后的首帧(Extended First Frame,缩写EFF)中的LLID设置为相应的需要发送数据的逻辑链路ID,从而告知节点2己方将要发送的数据以及所述数据所属的逻辑链路。节点2在接收到所述首帧之后,可以根据所述首帧中所包括的数据信息以及节点2自身的接收能力来确定出包括对应逻辑链路ID的扩展后的流控帧(Extended Flow Control,缩写EFC),并将所述流控帧发送至节点1,从而使得所述节点1能够根据所述流控帧进行连续帧(ExtendedConsecutive Frame,缩写ECF)发送,实现针对指定LLID进行数据发送的效果。
在一种可能的实施方式中,所述扩展定义所述CAN总线网络中的流控帧、首帧以及连续帧包括:
所述扩展后的流控帧包括在ISO 15765-2:2016(E)协议定义的流控帧的基础上增加了逻辑链路标识字段的流控帧。
所述扩展后的首帧是包括在ISO 15765-2:2016(E)协议定义的首帧的基础上增加了逻辑链路标识字段的首帧。
示例地,可以在ISO 15765-2:2016(E)协议定义的首帧的基础上,将所述首帧的第2个字节或第3个字节作为所述逻辑链路标识字段,具体地,针对首帧数据长度(FF_DL,First Frame Data Length)小于等于4095的协议定义的首帧,可以将第2个字节作为逻辑链路标识字段,针对FF_DL大于4095的协议定义的首帧,可以将第3个字节作为逻辑链路标识字段。类似的,在一种可能的实施方式中,还可以将单帧的数据长度CAN_DL选择将第2个字节或第3个字节作为所述逻辑链路标识字段,从而得到如表1所示的扩展后的单帧和首帧。
表1
所述扩展后的连续帧包括在ISO 15765-2:2016(E)协议定义的连续帧的基础上增加了逻辑链路标识字段的连续帧。
示例地,可以将所述连续帧的第2个字节作为所述逻辑链路标识字段,得到扩展后的连续帧如表2所示。这样,通过在ISO 15765-2:2016(E)协议定义的基础上进行扩展定义的方式,保证了所述网络传输方法对ISO15765-2:2016(E)协议的兼容性。
表2
在另一种可能的实施方式中,所述扩展后的流控帧包括将ISO15765-2:2016(E)协议定义的流控帧的第四个字节作为逻辑链路标识字段的流控帧。扩展后的流控帧如表3所示。
表3
其中,上表中的STmin表征发送相邻连续帧的最短间隔时间。
此外,为了与现有ISO 15765-2:2016(E)协议定义的流控帧共同工作,本公开实施例还可以将逻辑链路标识字段的取值为预定值的所述扩展后的流控帧用于后向兼容ISO15765-2:2016(E)协议定义的流控帧。该预定值例如可以为0。也就是说,可以将取值0作为保留的逻辑链路标识,不将取值0分配给具体的逻辑链路,而当扩展后的流控帧的逻辑链路标识字段的取值为0时,将扩展后的流控帧按照ISO 15765-2:2016(E)协议定义的流控帧进行处理。
图3是本公开一示例性实施例所示出的另一种网络传输方法的流程示意图,所述方法应用于CAN总线网络,其中,所述方法扩展定义了CAN总线网络中的流控帧、首帧以及连续帧。并且,扩展后的流控帧、扩展后的首帧以及扩展后的连续帧中均包括逻辑链路字段。如图3所示,所述方法包括:
S31,第二端接收第一端发送的扩展后的首帧,所述扩展后的首帧包括第一逻辑链路标识。
S32,若所述第一端不存在具有第二逻辑链路标识的多帧序列未传输完成,则向所述第一端发送携带所述第一逻辑链路标识的扩展后的流控帧,以控制所述第一端传输具有所述第一逻辑链路标识的连续帧。
采用上述方法,通过对CAN总线网络中的首帧、流控帧以及连续帧进行扩展定义,将逻辑链路字段加入到了所述首帧、流控帧以及连续帧中。这样,在所述CAN总线网络中的任意两个节点进行通信时,发送端能够在其发送给接收端的首帧中设置所述逻辑链路字段,从而告知接收端己方需要发送的数据以及所述数据所属的逻辑链路。类似的,接收端也能够根据接收到的首帧来确定发送端将要发送的数据以及所述数据所属的逻辑链路,并通过在其流控帧中设置相应的逻辑链路字段来对发送端将要发送的帧进行指示,从而实现在通信过程中根据实际需求对要发送数据的逻辑链路进行选择的效果,进而提升了数据传输的灵活性,也对多个逻辑链路的数据传输进行了支持。
在一种可能的实施方式中,图3所示的网络传输方法还包括:
若所述第一端存在具有第二逻辑链路标识的多帧序列未传输完成,则向所述第一端发送携带所述第二逻辑链路标识的扩展后的第一流控帧,所述第一流控帧还包括用于指示所述第二端暂停发送具有第二逻辑链路标识的连续帧的第一指示信息;并且,
在具有所述第一逻辑链路标识的多帧序列传输完成后,向所述第一端发送携带所述第二逻辑链路标识的扩展后的第二流控帧,所述第二流控帧还包括用于指示所述第二端继续发送具有第二逻辑链路标识的连续帧的第二指示信息。
仍以图2进行示例,在节点2接收到节点1发送的逻辑链路标识为1的首帧时,其可以先对节点1与自身的通信状态进行检测,判断节点1是否存在还有其他逻辑链路标识的多帧序列正在传输。若节点1不存在正在传输的具有其他逻辑链路标识的多帧序列,所述节点2可以向所述节点1发送携带逻辑链路标识为1的扩展后的流控帧,从而指示所述节点1传输逻辑链路标识为1的连续帧。
在一实施例中,节点2接收到节点1发送的逻辑链路标识为1的首帧时,其通过对节点1与自身的通信状态进行检测,判断节点1存在逻辑链路标识为254的多帧序列还未传输完成。在这种情况下,所述节点2可以向所述节点1发送携带所述逻辑链路标识为254的扩展后的第一流控帧,从而指示所述节点2暂停发送逻辑链路标识为254的连续帧。
需要说明的是,在具体实施时,如图2所示,所述节点2也可以向节点1分别发送用于指示所述节点1暂停发送逻辑链路标识为254的连续帧的流控帧,以及指示所述节点1发送逻辑链路标识为1的连续帧的流控帧,从而对节点1将要发送的数据进行更改,本公开对此不作限定。
接上一实施例,如图2所示,在逻辑链路标识为1的多帧序列传输完成后,节点2还可以向所述节点1发送逻辑链路标识为254的扩展后的第二流控帧,用于指示所述节点1继续发送逻辑链路标识为254的连续帧。
也就是说,通过对CAN总线网络中的首帧、流控帧以及连续帧进行扩展定义,将逻辑链路字段加入到了所述首帧、流控帧以及连续帧中。在所述CAN总线网络中的任意两个节点进行通信时,发送端和接收端能够分别在其发送的首帧和流控帧中设置相应的逻辑链路字段,从而实现根据实际的需求来暂停和更改正在发送的数据的效果,提升了数据传输的灵活性。
在一实施例中,所述扩展后的流控帧包括在ISO 15765-2:2016(E)协议定义的流控帧的基础上增加了逻辑链路标识字段的流控帧;
所述扩展后的首帧是包括ISO 15765-2:2016(E)协议定义的首帧的基础上增加了逻辑链路标识字段的首帧;
所述扩展后的连续帧包括在ISO 15765-2:2016(E)协议定义的连续帧的基础上增加了逻辑链路标识字段的连续帧。
具体地,所述扩展后的流控帧包括将ISO 15765-2:2016(E)协议定义的流控帧的第四个字节作为逻辑链路标识字段的流控帧。此外,还可以将逻辑链路标识字段的取值为预定值的所述扩展后的流控帧用于后向兼容ISO15765-2:2016(E)协议定义的流控帧。
关于扩展后的首帧、流控帧以及连续帧的构成形式,其已在上述实施例中进行了详细说明,参照以上针对表1至表3的描述,此处将不做详细阐述。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图1所示的网络传输方法的步骤。
本公开实施例还提供另一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如图3所示的网络传输方法的步骤。
本公开实施例还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如图1所示的网络传输方法的步骤。
本公开实施例还提供另一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如图3所示的网络传输方法的步骤。
图4是根据一示例性实施例示出的一种电子设备400的框图。如图4所示,该电子设备400可以作为CAN总线网络中的发送端,所述电子设备400可以包括:处理器401,存储器402。该电子设备400还可以包括输入/输出(I/O)接口403,以及通信组件404中的一者或多者。
其中,处理器401用于控制该电子设备400的整体操作,以完成如图1所示的网络传输方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该电子设备400的操作,这些数据例如可以包括用于在该电子设备400上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如节点待发送的数据等等。该存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(StaticRandom Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。I/O接口403为处理器401和其他接口模块之间提供接口。通信组件404用于该电子设备400与其他设备之间进行有线或无线通信。
在一示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如图1所示的网络传输方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现如图1所示的网络传输方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器402,上述程序指令可由电子设备400的处理器401执行以完成如图1所示的网络传输方法。
图5是根据一示例性实施例示出的另一种电子设备500的框图。如图5所示,该电子设备500可以作为CAN总线网络中的接收端,所述电子设备500可以包括:处理器501,存储器502。该电子设备500还可以包括输入/输出(I/O)接口503,以及通信组件504中的一者或多者。
其中,处理器501用于控制该电子设备500的整体操作,以完成如图3所示的网络传输方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该电子设备500的操作,这些数据例如可以包括用于在该电子设备500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如节点所接收到的数据等。该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(StaticRandom Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。I/O接口503为处理器501和其他接口模块之间提供接口。通信组件504用于该电子设备500与其他设备之间进行有线或无线通信。
在一示例性实施例中,电子设备500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行如图3所示的网络传输方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现如图3所示的网络传输方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器502,上述程序指令可由电子设备500的处理器501执行以完成如图3所示的网络传输方法。
本公开实施例还提供一种CAN总线网络,参照图6所示的一种CAN总线网络示意图,包括CAN总线,以及所述CAN总线连接的多个节点设备(图中以节点设备1至节点设备5进行示意);
每一所述节点设备在传输数据时,作为第一端执行如图1所示的网络传输方法;
每一所述节点设备接收数据时,作为第二端执行如图3所示的网络传输方法。
通过对CAN总线网络中的首帧、流控帧以及连续帧进行扩展定义,将逻辑链路字段加入到了所述首帧、流控帧以及连续帧中。这样,在所述CAN总线网络中的任意两个节点(例如图2所示的节点1和节点2)进行通信时,发送端能够在其发送给接收端的首帧中设置所述逻辑链路字段,从而告知接收端己方需要发送的数据以及所述数据所属的逻辑链路。类似的,接收端也能够根据接收到的首帧来确定发送端需要发送的数据以及所述数据所属的逻辑链路,并通过在其流控帧中设置相应的逻辑链路字段来对发送端将要发送的帧进行指示,从而实现在通信过程中根据实际需求对要发送数据的逻辑链路进行选择的效果,进而提升了数据传输的灵活性,也对多个逻辑链路的数据传输进行了支持。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。