一种基于MVB总线的通用安全通信方法与流程

文档序号:14267863阅读:476来源:国知局

本发明涉及tcn(列车通信网络)技术领域,尤其涉及一种基于mvb总线的通用安全通信方法。



背景技术:

tcn(列车通信网络)是铁路列车车辆之间和车辆内部设备传送控制、检测与诊断信息的数据通信网络。tcn采用分层结构,根据列车控制的特点分为上下两层,包括列车总线层(wtb)和多功能车辆总线层(mvb)。wtb负责不同车辆单元中的网络节点连接,mvb负责同一车辆单元内部各种终端装置的连接。

mvb是一种主要用于对有互操作性和互换性要求的互连设备之间的串行数据通信总线,它将位于同一车辆,或不同车辆中的标准设备连接到列车通信。其固定传输速率为1.5mbit/s。mvb总线模型定义了物理层和链路层。mvb链路层支持3种类型数据的传输:过程数据、消息数据和监控数据,其中,过程数据传输周期固定,而其它数据传输周期不固定。为保证安全,在实际列车安全控制系统中只使用过程数据。由于过程数据每个端口传输数据大小是固定的,最多仅支持32字节,而实际应用设备需要通信的数据长度是超过32个字节的,因此现有的仅依靠mvb总线链路层协议无法满足实际应用设备的通信需求。



技术实现要素:

本发明的目的是提供一种基于mvb总线的通用安全通信方法,可以支持可变长度的消息收发,同时能够保证过程数据的实时性与准确性。

本发明的目的是通过以下技术方案实现的:

一种基于mvb总线的通用安全通信方法,包括:

在通信双方均设置两种物理端口:用于写数据的源端口,以及用于读数据的宿端口;每一物理端口分为控制端口与数据端口两种类型,且通信一方的源端口在通信另一方具有对应的相同类型的宿端口,每一类型的端口采用预设的通信数据格式进行数据通信;

当通信双方建立通信会话后,能够进行数据传输;

发送方根据通信数据格式中允许的数据长度,以及需要发送的消息大小来确定发送策略:

如果需要发送的消息未超过允许的数据长度,则通过本地的源端口按照预设的通信数据格式将消息发送给接收方;接收方通过本地对应的宿端口接收到消息后,通过本地控制端口类型的源端口向发送方对应的宿端口发送确认消息;

如果要发送的消息超过允许的数据长度,则将需要发送的消息分成若干固定长度的子消息,并按照通信数据格式设定每一子消息的发送序号,再通过本地的源端口发送子消息,接收方通过本地对应的宿端口接收到子消息后,根据子消息的发送序号通过本地控制端口类型的源端口向发送方对应的宿端口发送确认;之后,发送方再通过本地的源端口发送下一个子消息;接收方接收到所有子消息后按照发送序号进行组装。

由上述本发明提供的技术方案可以看出,通过使用控制端口和数据端口,实现了可变长度的消息收发;通过使用定义的通信机制实现了信息的完整性和实时性;通过使用安全通信保持机制,实现了通信连接的安全性检查。

附图说明

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

图1为本发明实施例提供的控制端口的通信数据格式示意图;

图2为本发明实施例提供的数据端口的通信数据格式示意图;

图3为本发明实施例提供的通信会话的状态转换示意图;

图4为本发明实施例提供的基于mvb总线的通用安全通信方法的应用过程示意图。

具体实施方式

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

本发明实施例提供一种基于mvb总线的通用安全通信方法,该通信方法即为通信双方约定的通信协议,运行在mvb链路层之上。

在通信双方均设置两种物理端口:用于写数据的源端口,以及用于读数据的宿端口;每一物理端口分为控制端口与数据端口两种类型,且通信一方的源端口在通信另一方具有对应的相同类型的宿端口,每一类型的端口采用预设的通信数据格式进行数据通信;

当通信双方建立通信会话后,能够进行数据传输;

发送方根据通信数据格式中允许的数据长度,以及需要发送的消息大小来确定发送策略:

如果需要发送的消息未超过允许的数据长度,则通过本地的源端口按照预设的通信数据格式将消息发送给接收方;接收方通过本地对应的宿端口接收到消息后,通过本地控制端口类型的源端口向发送方对应的宿端口发送确认消息;

如果要发送的消息超过允许的数据长度,则将需要发送的消息分成若干固定长度的子消息,并按照通信数据格式设定每一子消息的发送序号,再通过本地的源端口发送子消息,接收方通过本地对应的宿端口接收到子消息后,根据子消息的发送序号通过本地控制端口类型的源端口向发送方对应的宿端口发送确认;之后,发送方再通过本地的源端口发送下一个子消息;接收方接收到所有子消息后按照发送序号进行组装。

下面从通信端口、通信状态、通信机制、安全通信保持机制这四个方面对本发明做详细说明。

一、通信端口。

1、物理端口。

本发明实施例中,将mvb端口分为两种类型的物理端口:用于写数据的源端口,以及用于读数据的宿端口。对于通信的双方来说,发送方在其源端口写数据,在其宿端口读数据,即,对于任意通信方来说,其源端口必然在对端节点有宿端口对应,反之亦然。

示例性的,传输实体a具有源端口a1与宿端口a2,传输实体b具有源端口b1与宿端口b2;当传输实体a作为发送方,传输实体b作为接收方时,传输实体a将需要发送的数据通过源端口a1发送与传输实体b对应的宿端口b2;当传输实体b作为发送方,传输实体a作为接收方时,传输实体b将需要发送的数据通过源端口b1发送与传输实体a对应的宿端口a2;即源端口a1与宿端口b2、源端口b1与宿端口a2是对应的。

2、逻辑端口及相关的通信数据格式。

每一种物理端口均分为控制端口与数据端口两种类型,也就是说,源端口与宿端口从逻辑上来说,可以是控制端口也可以是数据端口;但是,通信双方相对应的源端口与宿端口均有相同的逻辑类型。

示例性的,以前文的示例来说,源端口a1与宿端口b2相对应,二者可以均为控制端口,源端口b1与宿端口a2相对应,二者可以均为数据端口。

1)控制端口的通信数据格式。

本发明实施例中,通信一方接收到消息后,需通过控制端口类型的源端口来回复确认,因此控制端口在通信的双方向上都是强制要求的,即任一通信方的物理端口中至少有一个源端口与一个宿端口为控制端口类型。

示例性的,通信实体a有三个宿端口a1~a3,一个源端口a4,与之对应的通信实体b则有三个源端口b1~b3,一个宿端口b4。其中的,a1~a4、b1~b4按照序号一一对应。按照设定,通信实体a的源端口a4必须为控制端口,相应的通信实体b宿端口b4的也为控制端口;而通信实体a的宿端口a1~a3,以及通信实体b源端口b1~b3中有一组对应的宿端口与源端口为控制端口即可,例如,可以设置宿端口a3和源端口b3为控制端口。

如图1所示,控制端口的通信数据格式(32字节)中主要包括:22个字节的应用数据、4个字节的控制信息和6个字节的端口安全信息;其中:

22个字节的应用数据,用于传输需要发送的消息;

4个字节的控制信息包括:2个字节消息长度、1个字节子包号、3个比特发送序号、3个比特确认序号和2个比特连接状态组成;其中的消息长度表示正在传输的完整消息长度,范围为0到65535个字节;子包号表示发送序号代表的被传输子消息在整个消息流中的位置;发送序号的范围为0到7,接收方用于根据该序号将所有端口的数据组装成完整的子包数据,每更新一次发送序号加1,当到达8时,重新从0开始,所有端口的序号必须一致才能认为接收到完整消息,否则忽略;确认发送序号的范围为0到7,表示最后收到的完整子包数据;连接状态:表示通信状态;

端口安全信息包括:2个字节时间戳和4个字节crc;其中的时间戳为32位系统时间戳中的低16位,高16位为隐藏信息不实际传输;crc的校验范围包含完整的32位时间戳及端口号。

2)数据端口的通信数据格式

本发明实施例中,数据端口不是强制要求的。

如图2所示,数据端口的通信数据格式(32字节)中包括:25个字节的应用数据、1个字节的发送序号和6个字节的端口安全信息;其中:

25个字节的应用数据,用于传输需要发送的消息;

发送序号:范围0到7,接收方用于根据该序号将所有端口的数据组装成完整的子包数据,每更新一次发送序号加1,当到达8时,重新从0开始,所有端口的序号必须一致才能认为接收到完整消息,否则忽略;

端口安全信息包括:2个字节时间戳和4个字节crc;其中的时间戳为32系统位时间戳中的低16位,高16位为隐藏信息不实际传输;crc的校验范围包含完整的32位时间戳及端口号。

在上述两种通信数据格式中,发送序号为0是指当前处于未发送状态,所以第一个发送的子消息的发送序号为1,如果发送的子消息数量较多,在达到发送序号7之后,下一个子消息的发送序号又从1开始。

二、通信状态。

本发明实施例中,通信双方之间建立通信会话后,才允许进行数据传输。

为了建立和维持通信会话,通信双方之间的连接状态包括如下四种:getready、ready、start和running,通信双方根据当前自身的连接状态和远端的连接状态来确定自身新的连接状态,其中的running表示通信会话已经建立,其他三种状态均表示通信会话未建立(通信断开),通信会话的状态转换如图3所示。

三、通信机制。

当通信双方建立通信会话后,通信双方可以进行数据传输。发送方根据需要发送的消息大小与通信数据格式中允许的数据长度来确定发送策略,如前文定义的控制端口的通信数据格式中可以包含22个字节的应用数据,数据端口的通信数据格式中可以包含25个字节的应用数据,发送方根据本地源端口的逻辑类型来确定相应的通信数据格式中允许的数据长度。

如果需要发送的消息未超过允许的数据长度,则需要发送的消息一次性全部发送,消息长度填写为实际消息长度,空闲数据字节填0。

如果要发送的消息超过允许的数据长度,则将需要发送的消息分成若干固定长度的子消息,最后一个子消息的消息长度填写为实际消息长度,空闲数据字节填0。在启动时,直到第一子消息发送前,消息长度直为0。

发送方发送的第一个消息或者子消息的发送序号置为1。对于划分的子消息,接收端方收到一个完整的子消息后,应根据子消息的发送序号向发送方确认,发送方收到确认后才可以继续发送下一个子包。之后的子消息的发送序号按顺序加1,若接收方发现子消息的发送序号并非按顺序加1,则断定通信故障。

若通信状态重新进入断开状态,则发送序号置0。

四、安全通信保持机制。

本发明实施例中,两个透明传输实体在基于上述方案进行通信时,支持应用消息的发送是非周期的,在大部分时间里,可能是不需要发送任何消息的。但是对于安全通信,必须能够检测通信是否异常,因此,通信双方建立通信会话后,即使没有实际消息需要发送,周期更新所有端口的安全信息,即定期更新时间戳及crc,以保证通信双方能够检测通信是否正常。

源端口与宿端口安全保持机制分别如下:

1、源端口安全保持机制。

对于源端口,如果没有任何消息发送,也需要在t2时刻前通过发送安全信息;

定义:t2=t1+stt–2*t0

其中,t2为需要重新更新源端口的安全信息的参考时间,t1为最近一次写数据的时间,stt为安全容忍时间,t0为执行周期与总线轮询周期的最大值。

2、宿端口安全保持机制。

对于宿端口,如果是非周期的通信方式,也需要在t4时刻前读取一次宿端口的数据;

定义:t4=t3+stt–2*t0

其中,t4为需要重新读取数据的参考时间,t3为最近一次读取数据的时间。

本发明实施例上述方案,通过使用控制端口和数据端口,实现了可变长度的消息收发;通过使用定义的通信机制实现了信息的完整性和实时性;通过使用安全通信保持机制,实现了通信连接的安全性检查。

下面结合一具体示例来介绍本发明实施例提供的基于mvb总线的通用安全通信方法的应用过程。

如图4所述,通信双方为通信实体a与通信实体b,各使用四个物理端口(mvb端口)进行通信,在通信实体a上设置为3个宿端口和1个源端口:宿端口a1、宿端口a2、宿端口a3和源端口a4;与之对应的在通信实体b上设置为3个源端口和1个宿端口:源端口a1、源端口a2、源端口a3和宿端口a4。这些端口的对应关系为:a1-b1、a2-b2、a3-b3、a4-b4。

同时定义:宿端口a1和源端口b1为数据端口,两端口间使用数据端口数据进行通信;宿端口a2和源端口b2为数据端口,两端口间使用数据端口数据进行通信;宿端口a3和源端口b3为控制端口,两端口间使用控制端口数据进行通信;源端口a4和宿端口a4为控制端口,两端口间使用控制端口数据进行通信。为了实现基于mvb总线的双向通信,在通信双方的两个通信实体a和b上都开启读和写两个任务。

通信过程

1)通信实体a作为发送方,通信实体b作为接收方。

通信实体a将待发送的消息(m个字节)分成若干固定长度的子消息,一次性将子消息通过源端口a4发送出去,通信实体b在其相应的宿端口b4接收到完整的子消息后,通过源端口b3向通信实体a确认收到子消息的发送序号,通信实体a通过宿端口a3收到接收方b的确认后,会发送下一个子消息。通信实体a每发送一次子消息,发送序号加1;当通信实体b接收到所有子消息后,按照发送序号将所有子消息组装成一个完整的消息。

2)通信实体b作为发送方,通信实体a作为接收方。

通信实体b将待发送的消息(n个字节)分成若干固定长度的子消息,一次性将子消息通过源端口b1/b2/b3发送出去,通信实体a在其相应的宿端口a1/a2/a3接收到完整的子消息后(所有端口的发送序号必须一致才能认为接收到完整消息,否则忽略),通过源端口a4向发送方b确认收到子消息的发送序号,通信实体b通过宿端口b4收到通信实体a的确认后,会发送下一个子消息;通信实体b每发送一次子消息,发送序列号加1;当通信实体a接收到所有子消息后,按照发送序号将所有子消息组装成一个完整的消息。

本实施例中的通用安全通信协议应用,每个发送方向保证有一个控制端口,并根据传输数据的大小和传输速度的要求,兼顾cpu负载能力,对数据端口的数量进行了定义,实现了通信双方的有效通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

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