通信能力重组方法、系统及电子设备转让专利

申请号 : CN202310538744.8

文献号 : CN116320095B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘勇朱桂平李明

申请人 : 北京融为科技有限公司

摘要 :

本发明提供一种通信能力重组方法、系统及电子设备,属于通信传输技术领域,方法包括接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;确定与通信方式相对应的目标通信组合,目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用目标通信组合将原始数据推送至应用层、表示层和会话层,由于本发明中的目标通信组合为多条通信组合中的一条,从而使得针对不同的通信方式仅需在多条通信组合中选择对应的目标通信组合即可,无需每次都重新开发,能够有效地提升开发效率。

权利要求 :

1.一种通信能力重组方法,其特征在于,包括:

接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;

确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;

若所述目标通信组合包括通信组件、分帧器和帧处理器,则通过通信组件推送所述原始数据至所述分帧器,识别所述原始数据中的帧头标识、帧长、帧数据域和帧尾标识;基于所述帧头标识、所述帧长、所述帧数据域和所述帧尾标识,将所述原始数据拆分为一个一个的完整数据帧;

推送所述完整数据帧至所述帧处理器,通过所述帧处理器对所述完整数据帧进行解帧和验证处理;

将进行所述解帧和所述验证处理之后的数据推送至应用层、表示层和会话层。

2.根据权利要求1所述的通信能力重组方法,其特征在于,若所述目标通信组合包括通信组件,则利用所述目标通信组合将所述原始数据传输至应用层、表示层和会话层,包括:通过所述通信组件推送所述原始数据至应用层、表示层和会话层。

3.根据权利要求1所述的通信能力重组方法,其特征在于,所述通信组件包括:TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B中的至少一种;

当所述通信组件包括TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B时,所述接收数据链路层和物理层的原始数据之前,还包括:基于预设规则,分别为所述TCP客户端、所述TCP服务端、所述UDP单播、所述UDP组播、所述UDP广播、所述串口通信、所述总线通信、所述PCIe通信和所述1553B创建对应的分帧器和帧处理器;

对所述TCP客户端、所述TCP服务端、所述UDP单播、所述UDP组播、所述UDP广播、所述串口通信、所述总线通信、所述PCIe通信、所述1553B、不同的所述分帧器和不同的所述帧处理器进行重组,构建不同的通信组合。

4.根据权利要求1‑3任一项所述的通信能力重组方法,其特征在于,所述接收数据链路层和物理层的原始数据之后,还包括:若所述多条通信组合中不包括所述通信方式对应的目标通信组合,则扩展与所述通信方式相对应的通信组合;

其中,所述扩展与所述通信方式相对应的通信组合,包括:扩展与所述通信方式对应的通信组件、分帧器和帧处理器中的至少一种。

5.根据权利要求1‑3任一项所述的通信能力重组方法,其特征在于,还包括:接收应用层、表示层和会话层的待发送数据;

传输所述待发送数据至对应的帧处理器,通过所述帧处理器对所述待发送数据进行组帧和数据帧验证码创建;

发送所述组帧和所述数据帧验证码创建完成之后的待发送数据至数据链路层和物理层。

6.根据权利要求1‑3任一项所述的通信能力重组方法,其特征在于,还包括:在运行过程中,检查和维护所述目标通信组合的状态;

在运行结束后,关闭所述目标通信组合并回收资源。

7.一种通信能力重组系统,其特征在于,包括:

接收模块,用于接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;

确定模块,用于确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;

推送模块,用于若所述目标通信组合包括通信组件、分帧器和帧处理器,则通过通信组件推送所述原始数据至所述分帧器,识别所述原始数据中的帧头标识、帧长、帧数据域和帧尾标识;基于所述帧头标识、所述帧长、所述帧数据域和所述帧尾标识,将所述原始数据拆分为一个一个的完整数据帧;推送所述完整数据帧至所述帧处理器,通过所述帧处理器对所述完整数据帧进行解帧和验证处理;将进行所述解帧和所述验证处理之后的数据推送至应用层、表示层和会话层。

8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述通信能力重组方法。

说明书 :

通信能力重组方法、系统及电子设备

技术领域

[0001] 本发明涉及通信传输技术领域,尤其涉及一种通信能力重组方法、系统及电子设备。

背景技术

[0002] 在多个计算机设备之间或计算机与其他设备之间的通信,通常采用七层模型的方式实现。而关于七层模型中数据链路层以上、会话层以下的计算机通信问题,目前大多数的开发者只关注与当前业务要求相关的通信方式,几乎所有的开发模式都是根据当前业务要求完成通信模块的实现即可。
[0003] 但是,该种方式不具备可复用性,每次都需要重新开发,导致开发效率相对较低。

发明内容

[0004] 本发明提供一种通信能力重组方法、系统及电子设备,用以解决现有技术通信方式可复用性低的缺陷。
[0005] 本发明提供一种通信能力重组方法,包括:
[0006] 接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;
[0007] 确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;
[0008] 利用所述目标通信组合将所述原始数据推送至应用层、表示层和会话层。
[0009] 根据本发明提供的一种通信能力重组方法,若所述目标通信组合包括通信组件,则所述利用所述目标通信组合将所述原始数据传输至应用层、表示层和会话层,包括:
[0010] 通过所述通信组件推送所述原始数据至应用层、表示层和会话层。
[0011] 根据本发明提供的一种通信能力重组方法,若所述目标通信组合包括通信组件、分帧器和帧处理器,则所述利用所述目标通信组合将所述原始数据传输至应用层、表示层和会话层,包括:
[0012] 通过通信组件推送所述原始数据至所述分帧器,通过所述分帧器将所述原始数据拆分为一个一个的完整数据帧;
[0013] 推送所述完整数据帧至所述帧处理器,通过所述帧处理器对所述完整数据帧进行解帧和验证处理;
[0014] 将进行所述解帧和所述验证处理之后的数据推送至应用层、表示层和会话层。
[0015] 根据本发明提供的一种通信能力重组方法,所述通过所述分帧器将所述原始数据拆分为一个一个的完整数据帧,包括:
[0016] 识别所述原始数据中的帧头标识、帧长、帧数据域和帧尾标识;
[0017] 基于所述帧头标识、所述帧长、所述帧数据域和所述帧尾标识,将所述原始数据拆分为一个一个的完整数据帧。
[0018] 根据本发明提供的一种通信能力重组方法,所述通信组件包括:TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B中的至少一种;
[0019] 当所述通信组件包括TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B时,所述接收数据链路层和物理层的原始数据之前,还包括:
[0020] 基于预设规则,分别为所述TCP客户端、所述TCP服务端、所述UDP单播、所述UDP组播、所述UDP广播、所述串口通信、所述总线通信、所述PCIe通信和所述1553B创建对应的分帧器和帧处理器;
[0021] 对所述TCP客户端、所述TCP服务端、所述UDP单播、所述UDP组播、所述UDP广播、所述串口通信、所述总线通信、所述PCIe通信、所述1553B、不同的所述分帧器和不同的所述帧处理器进行重组,构建不同的通信组合。
[0022] 根据本发明提供的一种通信能力重组方法,所述接收数据链路层和物理层的原始数据之后,还包括:
[0023] 若所述多条通信组合中不包括所述通信方式对应的目标通信组合,则扩展与所述通信方式相对应的通信组合;
[0024] 其中,所述扩展与所述通信方式相对应的通信组合,包括:扩展与所述通信方式对应的通信组件、分帧器和帧处理器中的至少一种。
[0025] 根据本发明提供的一种通信能力重组方法,还包括:
[0026] 接收应用层、表示层和会话层的待发送数据;
[0027] 传输所述待发送数据至对应的帧处理器,通过所述帧处理器对所述待发送数据进行组帧和数据帧验证码创建;
[0028] 发送所述组帧和所述数据帧验证码创建完成之后的待发送数据至数据链路层和物理层。
[0029] 根据本发明提供的一种通信能力重组方法,还包括:
[0030] 在运行过程中,检查和维护所述目标通信组合的状态;
[0031] 在运行结束后,关闭所述目标通信组合并回收资源。
[0032] 本发明还提供一种通信能力重组系统,包括:
[0033] 接收模块,用于接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;
[0034] 确定模块,用于确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;
[0035] 推送模块,用于利用所述目标通信组合将所述原始数据推送至应用层、表示层和会话层。
[0036] 本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述通信能力重组方法。
[0037] 本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述通信能力重组方法。
[0038] 本发明提供的一种通信能力重组方法、系统及电子设备,方法包括接收数据链路层和物理层的原始数据,并确定原始数据对应的业务场景需求的通信方式;确定与通信方式相对应的目标通信组合,目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用目标通信组合将原始数据推送至应用层、表示层和会话层,由于本发明中的目标通信组合为多条通信组合中的一条,从而使得针对不同的通信方式仅需在多条通信组合中选择对应的目标通信组合即可,无需每次都重新开发,能够有效地提升开发效率。

附图说明

[0039] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1是本发明实施例提供的通信能力重组方法的流程示意图;
[0041] 图2是本发明实施例提供的通信组合协作示意图;
[0042] 图3是本发明实施例提供的通信能力重组系统的结构示意图;
[0043] 图4是本发明实施例提供的电子设备的结构示意图。

具体实施方式

[0044] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045] 图1是本发明实施例提供的通信能力重组方法的流程示意图。
[0046] 如图1所示,本发明实施例提供的一种通信能力重组方法,执行主体可以是服务器,服务器通过七层模型实现数据传输,方法主要包括以下步骤:
[0047] 101、接收数据链路层和物理层的原始数据,并确定原始数据对应的业务场景需求的通信方式。
[0048] 七层模型(Open System Interconnection,OSI)主要包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,本发明主要应用于七层模型的网络层和传输层,用于解决数据链路层以上会话层以下的计算机通信问题。
[0049] 在一个具体的实现过程中,接收来自于数据链路层和物理层的原始数据,同时需要确定出原始数据对应的业务场景需求的通信方式,针对不同的业务场景需求,可能采用不同的通信方式,因此在确定出当前业务场景之后,再确定出对应的通信方式,便能够保证原始数据完整、高效地传输至应用层、表示层和会话层。
[0050] 102、确定与通信方式相对应的目标通信组合,目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条。
[0051] 本发明的方法同时支持多个通信链路,每条通信链路都是一条逻辑通信总线,每条通信链路必须指定通信组件类型,每个通信链路具有多种通信组合,并在运行时按照通信组件类型建立并完成绑定,同时根据配置可以在通信链路上按需绑定帧处理器和分帧器,通信链路独立负责自身的所有数据收发。也就是指,本实施例中的通信能力重组方法,可以首先在多条通信链路中选择一条通信链路,然后由于通信链路中包括多种不同的通信重组方式,因此便能够满足多种不同的业务场景需求,并且还可以多条通信链路同时进行数据传输。即当业务场景需求有多种时,确定与通信方式相对应的目标通信组合之前还包括,分别为每种业务场景需求同时配置对应的通信链路,每条通信链路均包括由不同的通信组件、不同的分帧器和不同的帧处理器相互重组构建的多条通信组合,再确定与每条通信链路对应的业务场景需求下的通信方式相匹配的目标通信组合,从而实现多条通信链路的数据同时传输,满足不同业务场景需求的数据同时传输。
[0052] 在确定出原始数据对应的通信方式之后,便可以选择与当前的业务场景下的通信方式相对应的目标通信组合,也就是在多种通信组合中选择与通信方式相匹配的目标通信组合。通信组合为预先构建的,通信组合是基于不同的通信组件、不同的分帧器和不同的帧处理器重组得到的,其中,分帧器和帧处理器的配置可以为空。例如,通信组件有10种通信方式,分帧器有10个,帧处理器有10个,由于分帧器和帧处理器可以配置为空,则通信组合的重组方式采用排列组合的方式便有10*11*11种。
[0053] 通信组合即原始数据的传输路径,由于通信组件有多种,使得可以满足多种采用不同通信方式的业务场景需求。而当不同的业务场景需求的通信方式不同时,仅需要切换至对应的目标通信组合即可,无需进行重新开发,有效地提升了数据传输效率和开发效率,仅一次开发便可以重复利用。每条通信组合绑定有不同的通信组件、不同的分帧器和不同的帧处理器,从而便可以实现不同场景下的通信能力重组。每条通信组合可以绑定通信组件、分帧器和帧处理器的一个或多个,即通信组合主要分为四种情况,一种是只有通信组件,分帧器和帧处理器配置为空,一种是包括通信组件和分帧器,帧处理器配置为空,一种是包括通信组件和帧处理器,分帧器配置为空,一种是包括通信组件、分帧器和帧处理器。各个通信组合之间相互独立,还可以为每条通信组合指定一个组合ID,用于唯一标识一组通信组合。
[0054] 通信组件包括:TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B等中的至少一种,通信组件支持各种不同类型的通信方式,并且每种通信方式都有唯一的标识,便于其他模块的访问使用。由于通信组件支持多种不同类型的通信方式,从而使得本发明的重组方法能够适用于多种业务场景的需求。
[0055] 分帧器主要是完成数据分帧的实现,只在接收数据时分帧,每个通信组件对应一个分帧器,分帧器在创建通信组件时同步创建,并且在创建分帧器时须指定分帧规则,分帧规则可以为空,并且可以为每个分帧器申请一个处理线程。
[0056] 帧处理器用于处理数据帧,也就是处理来自分帧器的数据帧,包括组帧和解帧等操作,每个通信组件对应一个帧处理器,如果有需要,还可以在发送数据帧之前或收到数据帧之后做一些其他处理,比如数据校验等等。
[0057] 在通信组合都包括通信组件、分帧器和帧处理器的情况下,数据流向为由通信组件到分帧器,再到帧处理器,最后输出至应用层、表示层和会话层。
[0058] 103、利用目标通信组合将原始数据推送至应用层、表示层和会话层。
[0059] 在确定出目标通信组合之后,便可以直接通过对应的目标通信组合将原始数据推送至应用层、表示层和会话层即可。
[0060] 本实施例提供的一种通信能力重组方法,包括接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;确定与通信方式相对应的目标通信组合,目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用目标通信组合将原始数据推送至应用层、表示层和会话层,由于本发明中的目标通信组合为多条通信组合中的一条,从而使得针对不同的通信方式仅需在多条通信组合中选择对应的目标通信组合即可,无需每次都重新开发,能够有效地提升开发效率。
[0061] 进一步的,在上述实施例的基础上,若目标通信组合包括通信组件,则利用目标通信组合将原始数据传输至应用层、表示层和会话层,包括:通过通信组件推送原始数据至应用层、表示层和会话层。若目标通信组合包括通信组件、分帧器和帧处理器,则利用目标通信组合将原始数据传输至应用层、表示层和会话层,包括:通过通信组件推送原始数据至分帧器,通过分帧器将原始数据拆分为一个一个的完整数据帧;推送完整数据帧至帧处理器,通过帧处理器对完整数据帧进行解帧和验证处理;将进行解帧和验证处理之后的数据推送至应用层、表示层和会话层。
[0062] 具体的,若是通信组合仅包括通信组件,即分帧器和帧处理器配置为空,则通信组合的数据传输方式便是通过通信组件直接将来自数据链路层和物理层的原始数据传输至应用层、表示层和会话层即可。
[0063] 而若是通信组合包括通信组件、分帧器和帧处理器时,即分帧器和帧处理器不配置为空,则数据传输的方式便是,通信组件采用支持当前原始数据的通信方式接收原始数据,首先通过通信组件将原始数据推送至分帧器,由于部分通信方式有数据粘包问题(如TCP/IP、串口通信等),会导致收到的原始数据并非是一个完整和独立的有效帧,因此便可以通过分帧器对接收到的数据进行分帧,如果当前通信组合无须执行分帧,则可以不为此通信组件创建分帧器。通常情况下,每个有分帧需求的通信组件都需要配置一个分帧器,分帧器在创建通信组件时同步创建,为了提高数据接收和分帧效率,可为每个分帧器指定一个单独的分帧线程。原始数据在经过分帧器的分帧处理之后,便得到了一个一个的完整数据帧。
[0064] 然后再将一个一个的完整数据帧推送至帧处理器,帧处理器便可以对一个一个的完整数据帧作任何定制化处理,如按帧格式解帧、验证数据帧正确性以及其他一些因业务要求需要在此模块执行的工作等等。
[0065] 最后,将依次经过通信组件、分帧器和帧处理器的原始数据推送至应用层、表示层和会话层即可。
[0066] 进一步的,在上述实施例的基础上,本实施例中的通过分帧器将原始数据拆分为一个一个的完整数据帧,包括:识别原始数据中的帧头标识、帧长、帧数据域和帧尾标识;基于帧头标识、帧长、帧数据域和帧尾标识,将原始数据拆分为一个一个的完整数据帧。
[0067] 具体的,可以按照TLV规则进行分帧处理,T(Tag)表示帧头标识,L(length)表示帧长,V(value)表示帧数据域,而为了保证分帧的正确性,通常会选择在数据域之后增加一个帧尾标识,然后便可以将原始数据拆分为一个一个的完整数据帧。也就是通过准确的识别帧头和帧尾,能够将每一个完整数据帧进行识别分割,以便于更加高效地完成数据传输。
[0068] 进一步的,在上述实施例的基础上,由于通信组件包括:TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B中的至少一种;因此,当通信组件包括TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B时,接收数据链路层和物理层的原始数据之前,还包括:基于预设规则,分别为TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B创建对应的分帧器和帧处理器;对TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信、1553B、不同的分帧器和不同的帧处理器进行重组,构建不同的通信组合。
[0069] 针对不同的业务场景,需要采用不同的通信组合进行数据传输,因此,便需要配置不同的通信组合,采用本发明的方法,在同一时刻还可以同时与多个其他设备进行通信。在创建通信组合时,每个通信组合分别绑定一个通信组件、一个分帧器和一个帧处理器。例如,在程序编写的过程中,可以利用“Communicator”节点表示一个独立的通信组合,同时可以支持多路通信;“Type”属性表示通信组件类型;“FrameSplitter”属性表示当前的通信组合绑定的分帧器,可以配置为预设的任何分帧器,配置为空则表示当前的通信组合不启用分帧器;“FrameHandler”属性表示当前的通信组合绑定的帧处理器,可以配置为预设的任何帧处理器,配置为空表示当前的通信组合不启用帧处理器;“Id”属性用于唯一标识一条链路,所有通信组合的Id不可重复,其他模块可通过此Id访问任意通信组合;“Name”属性用于描述通信组合名称;“Communicator”节点的子节点用于配置通信组合的链接信息,根据通信组件类型的不同每种通信组合对应的子节点配置也会不同。可以在任意时候按照不同的通信要求将不同的通信组件、不同的分帧器和不同的帧处理器进行任意组合,实现通信能力重组,可满足不同的通信业务场景。
[0070] 进一步的,在上述实施例的基础上,本实施例中在接收数据链路层和物理层的原始数据之后,还包括:若多条通信组合中不包括通信方式对应的目标通信组合,则扩展与通信方式相对应的通信组合;其中,扩展与通信方式相对应的通信组合,包括:扩展与通信方式对应的通信组件、分帧器和帧处理器中的至少一种。
[0071] 具体的,通信组件可以建立统一的通信组件接口模板,将不同的通信方式按照接口模板要求予以实现,若是通信方式中不包括当前的业务场景需求下的通信方式,则可以对通信组件进行扩展,得到新的通信组件对应的通信组合,可以持续实现和集成其他方式的通信组件,由于通信组件的可扩展性,使得本发明更能够适用于多种不同的业务场景需求。
[0072] 同理,可以建立统一的分帧器接口模板和帧处理器接口模板,可以按照任意的制定分帧规则创建对应的分帧器,也可以按照任意帧处理器要求创建帧处理器,从而使得在构建通信组合时,选择配置哪种分帧器或不启用分帧器,配置那种帧处理器或不启用帧处理器。
[0073] 由于采用统一的通信组件接口模板、统一的分帧器接口模板和统一的帧处理器接口模板,每个模板均具有可扩展性,因此,按照统一的通信组件接口模板可以实现常用通信组件,并为每个通信组件命名,按照统一的分帧器接口模板可以实现常用分帧器,并为每个分帧器命名,按照统一的帧处理器接口模板实现常用帧处理器,并为每个帧处理器命名。更好的提升本发明的适用范围,提高本发明的重复利用率。
[0074] 进一步的,在上述实施例的基础上,本实施例中的通信能力重组方法,还包括:接收应用层、表示层和会话层的待发送数据;传输待发送数据至对应的帧处理器,通过帧处理器对待发送数据进行组帧和数据帧验证码创建;发送组帧和数据帧验证码创建完成之后的待发送数据至数据链路层和物理层。
[0075] 具体的,从数据发送方向的处理流程上还可以包括,接收应用层、表示层和会话层的待发送数据,然后将待发送数据推送至对应的帧处理器,帧处理器完成组帧、数据帧验证码或一系列其它需要在帧处理器完成的工作,帧处理器完成处理后,直接将帧数据推送到通信组件,通信组件按照组件类型定义的通信方式将数据帧发送到数据链路层和物理层,以完成数据发送操作。
[0076] 进一步的,在上述实施例的基础上,本实施例中的通信能力重组方法,还包括:在运行过程中,检查和维护目标通信组合的状态;在运行结束后,关闭目标通信组合并回收资源。
[0077] 具体的,对于所有的通信组合,在启动时需要按照配置方式打开对应的通信组合,确保通信组件、分帧器和帧处理器的对应方式准确无误,并且为了保证通信组合能够正常运行,需要在运行过程中实时检查和维护通信组合状态,在运行结束时关闭通信组合并回收资源,建立数据收发次序,从而能够确保正确地进行数据的收发和处理。
[0078] 图2是本发明实施例提供的通信组合协作示意图。
[0079] 如图2所示,预先构建多条不同的通信组合(包括通信组合1、通信组合2、通信组合3、…、通信组合N),每条通信组合绑定不同的通信组件(包括TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信、…)、分帧器(包括分帧器1、分帧器2、分帧器3、分帧器4、分帧器5、…、分帧器N)和帧处理器(包括帧处理器1、帧处理器2、帧处理器3、帧处理器4、帧处理器5、帧处理器6、帧处理器7、…、帧处理器N),而分帧器和帧处理器可以配置为空,例如,通信组合1绑定的通信组件为TCP客户端、分帧器1和帧处理器1,则输出传输的流程便是依次通过TCP客户端、分帧器1和帧处理器1,进而将来自数据链路层和物理层的原始数据传输至应用层、表示层和会话层。同理,针对不同的通信组件、不同的分帧器和不同的帧处理器可以重组得到多种通信组合,不再进行一一举例说明。而通信管理器主要用于管理所有通信组合,通信配置则主要用于针对不同的业务场景配置不同的通信组合。
[0080] 采用本发明的方案,可以提供集中的通信管理机制,规范通信接口,建立多种通信模板,支持多路通信,可实现快速建立通信模块,并可按照业务要求通过配置完成通信能力重组。并且本发明的通信能力重组方法还可以建立成一个独立的模块,以进程或线程的方式存在,也可以作为库文件或源码文件供其他模块调用。还具有以下优点:
[0081] 1、通信组合可自由绑定通信组件、分帧器、帧处理器,再结合通信配置的规则,可以任意重组通信能力。
[0082] 2、通信组件、分帧器、帧处理器按照统一模板设计,可按照模板预先开发任意已知的模块,也可以在后续持续接入新增的模块,提供强大的可扩展性。
[0083] 3、同时支持多路通信,且每路通信方式可以不同。
[0084] 4、在业务场景不变,通信方式发生改变的情况下,可直接通过更新配置文件调整通信能力以适配新的通信要求,无须再次开发。
[0085] 5、本发明可使用现有的任何开发语言实现,如C/C++、Java、python、go等。
[0086] 6、一次开发多次复用,后续开发无须再关注通信实现问题,提高开发和实施效率,降低开发实施成本。
[0087] 7、本发明实现简单,也可以在使用过程中持续改善,保障通信模块的健壮性,降低实施错误率。
[0088] 基于同一总的发明构思,本发明还保护一种通信能力重组系统,下面对本发明提供的通信能力重组系统进行描述,下文描述的通信能力重组系统与上文描述的通信能力重组方法可相互对应参照。
[0089] 图3是本发明实施例提供的通信能力重组系统的结构示意图。
[0090] 如图3所示,本发明提供的一种通信能力重组系统,包括:
[0091] 接收模块301,用于接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;
[0092] 确定模块302,用于确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;
[0093] 推送模块303,用于利用所述目标通信组合将所述原始数据推送至应用层、表示层和会话层。
[0094] 本实施例提供的一种通信能力重组系统,包括接收数据链路层和物理层的原始数据,并确定原始数据对应的业务场景需求的通信方式;确定与通信方式相对应的目标通信组合,目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用目标通信组合将原始数据推送至应用层、表示层和会话层,由于本发明中的目标通信组合为多条通信组合中的一条,从而使得针对不同的通信方式仅需在多条通信组合中选择对应的目标通信组合即可,无需每次都重新开发,能够有效地提升开发效率。
[0095] 进一步的,若所述目标通信组合包括通信组件,则推送模块303具体用于:
[0096] 通过所述通信组件推送所述原始数据至应用层、表示层和会话层。
[0097] 进一步的,若所述目标通信组合包括通信组件、分帧器和帧处理器,则推送模块303具体用于:
[0098] 通过通信组件推送所述原始数据至所述分帧器,通过所述分帧器将所述原始数据拆分为一个一个的完整数据帧;
[0099] 推送所述完整数据帧至所述帧处理器,通过所述帧处理器对所述完整数据帧进行解帧和验证处理;
[0100] 将进行所述解帧和所述验证处理之后的数据推送至应用层、表示层和会话层。
[0101] 进一步的,本实施例中的推送模块303,具体还用于:
[0102] 识别所述原始数据中的帧头标识、帧长、帧数据域和帧尾标识;
[0103] 基于所述帧头标识、所述帧长、所述帧数据域和所述帧尾标识,将所述原始数据拆分为一个一个的完整数据帧。
[0104] 进一步的,本实施例中的所述通信组件包括:TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B中的至少一种;
[0105] 当所述通信组件包括TCP客户端、TCP服务端、UDP单播、UDP组播、UDP广播、串口通信、总线通信、PCIe通信和1553B时,还包括构建模块,用于:
[0106] 基于预设规则,分别为所述TCP客户端、所述TCP服务端、所述UDP单播、所述UDP组播、所述UDP广播、所述串口通信、所述总线通信、所述PCIe通信和所述1553B创建对应的分帧器和帧处理器;
[0107] 对所述TCP客户端、所述TCP服务端、所述UDP单播、所述UDP组播、所述UDP广播、所述串口通信、所述总线通信、所述PCIe通信、所述1553B、不同的所述分帧器和不同的所述帧处理器进行重组,构建不同的通信组合。
[0108] 进一步的,本实施例中还包括扩展模块,用于:
[0109] 若所述多条通信组合中不包括所述通信方式对应的目标通信组合,则扩展与所述通信方式相对应的通信组合;
[0110] 其中,所述扩展与所述通信方式相对应的通信组合,包括:扩展与所述通信方式对应的通信组件、分帧器和帧处理器中的至少一种。
[0111] 进一步的,本实施例中还包括数据发送模块,用于:
[0112] 接收应用层、表示层和会话层的待发送数据;
[0113] 传输所述待发送数据至对应的帧处理器,通过所述帧处理器对所述待发送数据进行组帧和数据帧验证码创建;
[0114] 发送所述组帧和所述数据帧验证码创建完成之后的待发送数据至数据链路层和物理层。
[0115] 进一步的,本实施例中还包括管理模块,用于:
[0116] 在运行过程中,检查和维护所述目标通信组合的状态;
[0117] 在运行结束后,关闭所述目标通信组合并回收资源。
[0118] 图4是本发明实施例提供的电子设备的结构示意图。
[0119] 如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器
430中的逻辑指令,以执行通信能力重组方法,该方法包括:接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用所述目标通信组合将所述原始数据推送至应用层、表示层和会话层。
[0120] 此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0121] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的通信能力重组方法,该方法包括:接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用所述目标通信组合将所述原始数据推送至应用层、表示层和会话层。
[0122] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的通信能力重组方法,该方法包括:接收数据链路层和物理层的原始数据,并确定所述原始数据对应的业务场景需求的通信方式;确定与所述通信方式相对应的目标通信组合,所述目标通信组合为基于不同的通信组件、不同的分帧器和不同的帧处理器进行重组所预先构建的多条通信组合中的其中一条;利用所述目标通信组合将所述原始数据推送至应用层、表示层和会话层。
[0123] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0124] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0125] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。