一种数据通信方法、发起端、响应端及系统与流程

文档序号:17762501发布日期:2019-05-24 21:49阅读:207来源:国知局
一种数据通信方法、发起端、响应端及系统与流程

本发明涉及数据通信领域,特别是涉及一种数据通信方法、发起端、响应端及数据通信系统。



背景技术:

随着异构加速日益广泛的应用,基于fpga的加速卡也正处在迅猛的发展过程中。在具体应用中,fpga加速卡通过pcie接口与服务器主机连接,服务器主机作为通信的发起端通过pcie接口将需要加速的数据发送至fpga加速卡并向fpga加速卡发起响应的数据处理指令,加速卡fpga作为通信的响应端响应服务器主机的数据处理指令对需要加速的数据进行相应处理,处理完成后通过pcie接口返回相关的数据。

由于在fpga加速卡的实际开发中,fpga加速卡的新增功能模块往往是在fpga加速卡原有的功能中继承过来的,而原有功能所使用的pcie接口的信号线事先已经确定并且无法更改,但是在基于fpga加速卡原有功能开发新功能时,新功能需要占用一定数量的信号线才能够实现fpga加速卡而定服务器主机之间的通信传输。但是随着fpga加速卡功能模块的不断丰富,fpga加速卡中可供开发新功能模块的信号线数量相对有限,因此限制了fpga加速卡与服务器主机之间的通信功能的可扩展性。

由此可见,提供一种数据通信方法,以相对减少通信的发起端与响应端之间通信所占用的信号线数量,进而确保发起端与响应端之间的通信功能的可扩展性,是本领域技术人员亟待解决的问题。



技术实现要素:

本发明的目的是提供一种数据通信方法、发起端、响应端及系统,以相对减少通信的发起端与响应端之间通信所占用的信号线数量,进而确保发起端与响应端之间的通信功能的可扩展性。

为解决上述技术问题,本发明提供一种数据通信方法,应用于发起端,发起端通过单独的信号线建立与响应端之间的通信连接,并控制信号线的电信号保持在第一电平状态,包括:

当数据通信开始时,将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以告知响应端开始数据通信;其中,n为正整数;

在第n+1个时钟周期时通过信号线向响应端传输通信参数,以通过响应端根据通信参数对发起端进行通信响应。

优选的,在第n+1个时钟周期时通过信号线向响应端传输通信参数包括:

在第n+1个时钟周期时通过信号线向响应端传输读写指令;其中,对读写指令的传输持续m个时钟周期,m为正整数;

在第n+m+2个时钟周期时通过信号线向响应端传输读写地址,以通过响应端根据读写指令及读写地址对发起端进行通信响应;其中,对读写地址的传输持续k个时钟周期,k为正整数。

优选的,当读写指令为读指令,读写地址为读取地址时,在第n+m+2个时钟周期时通过信号线向响应端传输读写地址后,该方法进一步包括:

释放对信号线的电平状态控制权;

相应的,通过响应端根据读写指令及读写地址对发起端进行通信响应包括:

响应端获取信号线的电平状态控制权,根据读取地址读取预先保存的第一数据,将第一数据传输至发起端,并释放对信号线的电平状态控制权。

优选的,在响应端将第一数据传输至发起端,并释放对信号线的电平状态控制权后,该方法进一步包括:

重新获取对信号线的电平状态控制权,将信号线的第二电平状态变化为第一电平状态并持续p个时钟周期以告知响应端数据通信结束;其中,p为正整数。

优选的,当读写指令为写指令,读写地址为写入地址时,在第n+m+2个时钟周期时通过信号线向响应端传输读写地址后,该方法进一步包括:

向响应端传输第二数据;

相应的,通过响应端根据读写指令及读写地址对发起端进行通信响应包括:

响应端根据写入地址将第二数据写入本地。

优选的,发起端为服务器,响应端为fpga。

此外,本发明还提供一种数据通信方法,应用于响应端,响应端通过单独的信号线建立与发起端之间的通信连接,并由发起端控制信号线的电信号保持在第一电平状态,包括:

当信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期时,在第n+1个时钟周期时接收由发起端传入的通信参数;其中,n为正整数;

根据通信参数对发起端进行通信响应。

此外,本发明还提供一种发起端,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述应用于发起端的数据通信方法的步骤。

此外,本发明还提供一种响应端,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述应用于响应端的数据通信方法的步骤。

此外,本发明还提供一种数据通信系统,包括:

响应端;

通过单独的信号线与响应端建立通信连接,并控制信号线的电信号保持在第一电平状态的发起端;

发起端,用于当数据通信开始时,将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以告知响应端开始数据通信;其中,n为正整数;在第n+1个时钟周期时通过信号线向响应端传输通信参数,以通过响应端根据通信参数对发起端进行通信响应;

响应端,用于当信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期时,在第n+1个时钟周期时接收由发起端传入的通信参数;其中,n为正整数;根据通信参数对发起端进行通信响应。

本发明所提供的数据通信方法,通信过程的发起端通过单独的信号线建立与响应端之间的通信连接,发起端控制信号线的电信号保持在第一电平状态,当数据通信开始时,发起端将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以此告知响应端开始数据通信,n为正整数,进而在第n+1个时钟周期时通过信号线向响应端传输通信参数,响应端根据通信参数对发起端进行通信响应。本方法中的发起端基于单独的一根信号线,通过电平信号的变化及变化后特定的持续时钟周期告知响应端数据开始数据通信,进而响应端在持续时钟周期后接收发起端传输的通信参数,并根据通信参数对发起端进行相应的通信响应。本方法仅需要通过单独的一根信号线即可实现发起端与响应端之间的数据通信,减少了通信的发起端与响应端之间通信时所占用的信号线数量,进而确保了发起端与响应端之间的通信功能的可扩展性。此外,本发明还提供一种发起端、响应端及数据通信系统,有益效果同上所述。

附图说明

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

图1为本发明实施例提供的一种应用于发起端的数据通信方法的流程图;

图2为本发明实施例提供的一种应用于响应端的数据通信方法的流程图;

图3为场景实施例中master进行写操作时的时序图;

图4为场景实施例中master进行读操作时的时序图;

图5为本发明实施例提供的一种数据通信系统的结构图。

具体实施方式

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

本发明的核心是提供一种数据通信方法,以相对减少通信的发起端与响应端之间通信所占用的信号线数量,进而确保发起端与响应端之间的通信功能的可扩展性。本发明的另一核心是提供一种发起端、响应端及数据通信系统。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。

实施例一

图1为本发明实施例提供的一种应用于发起端的数据通信方法的流程图。发起端通过单独的信号线建立与响应端之间的通信连接,并控制信号线的电信号保持在第一电平状态。

请参考图1,数据通信方法的具体步骤包括:

步骤s10:当数据通信开始时,将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以告知响应端开始数据通信。

其中,n为正整数。

需要说明的是,在本方法中,数据通信的发起端与响应端之间是通过单独的一条信号线建立的通信连接,发起端在本方法步骤执行前具有对信号线中电信号的控制权,也就是说,发起端能够根据与响应端之间通信的需求改变信号线中的电信号状态。

当数据通信开始时,发起端将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,此处所指的第一电平状态与第二电平状态是相反的电信号,第一电平状态与第二电平状态在本质上均可以为高电平或低电平,仅需要确保第一电平状态与第二电平状态之间互为相反的电信号即可,例如当第一电平状态为高电平状态时,则第二电平状态为低电平状态;同理,当第一电平状态为低电平状态时,则第二电平状态为高电平状态。本方法是通过发起端控制信号线中电信号状态的变化,并基于变化后的电信号状态持续既定的(n个)时钟周期,以此告知响应端数据通信开始,进而响应端能够在获悉电信号状态发生变化并持续既定的时钟周期后(n+1个时钟周期时),对发起端后续传输的通信参数进行正确的响应。

步骤s11:在第n+1个时钟周期时通过信号线向响应端传输通信参数,以通过响应端根据通信参数对发起端进行通信响应。

可以理解的是,当发起端控制信号线中的电信号状态发生反向变化,并在变化后的电信号状态基础上持续特定的n个时钟周期后,响应端即可获悉发起端需要进行数据通信操作,因此发起端在n个时钟周期结束后,即n+1个时钟周期时,通过信号线向响应端传输通信参数,发起端能够根据通信参数告知响应端此次数据通信所具体进行操作内容,进而响应端能够根据通信参数对发起端进行通信响应,以此完成与发起端之间的数据通信。

本发明所提供的数据通信方法,通信过程的发起端通过单独的信号线建立与响应端之间的通信连接,发起端控制信号线的电信号保持在第一电平状态,当数据通信开始时,发起端将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以此告知响应端开始数据通信,n为正整数,进而在第n+1个时钟周期时通过信号线向响应端传输通信参数,响应端根据通信参数对发起端进行通信响应。本方法中的发起端基于单独的一根信号线,通过电平信号的变化及变化后特定的持续时钟周期告知响应端数据开始数据通信,进而响应端在持续时钟周期后接收发起端传输的通信参数,并根据通信参数对发起端进行相应的通信响应。本方法仅需要通过单独的一根信号线即可实现发起端与响应端之间的数据通信,减少了通信的发起端与响应端之间通信时所占用的信号线数量,进而确保了发起端与响应端之间的通信功能的可扩展性。

实施例二

在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。

作为一种优选的实施方式,在第n+1个时钟周期时通过信号线向响应端传输通信参数包括:

在第n+1个时钟周期时通过信号线向响应端传输读写指令;其中,对读写指令的传输持续m个时钟周期,m为正整数;

在第n+m+2个时钟周期时通过信号线向响应端传输读写地址,以通过响应端根据读写指令及读写地址对发起端进行通信响应;其中,对读写地址的传输持续k个时钟周期,k为正整数。

本实施方式中发起端与响应端之间的数据通信场景,具体为发起端对响应端的数据读写,进而通信参数中包括读写指令、读写地址。在第n+1个时钟周期时,发起端通过信号线向响应端传输读写指令,并且传输读写指令持续m个时钟周期,因此对于发起端而言,读写指令需要在m个时钟周期内传输完成,对于响应端而言,从n+1个时钟周期至n+m+1个时钟周期之间接收的数据为读写指令;在读写指令传输完成后,即在第n+m+2个时钟周期时,发起端通过信号线向响应端传输读写地址,同理,读写地址需要在k个时钟周期内传输完成,对于响应端而言,从n+m+2个时钟周期至n+m+k+2个时钟周期之间接收的数据为读写地址,进而响应端在获取到读写指令以及读写地址后,能够进行相应的通信响应,实现发起端对于响应端的读写操作。本实施方式相对确保了发起端对响应端进行数据读写操作的整体有序性以及可靠性。

在上述实施方式的基础上,作为一种优选的实施方式,当读写指令为读指令,读写地址为读取地址时,在第n+m+2个时钟周期时通过信号线向响应端传输读写地址后,该方法进一步包括:

释放对信号线的电平状态控制权;

相应的,通过响应端根据读写指令及读写地址对发起端进行通信响应包括:

响应端获取信号线的电平状态控制权,根据读取地址读取预先保存的第一数据,将第一数据传输至发起端,并释放对信号线的电平状态控制权。

需要说明的是,本实施方式是将发起端与响应端之间的数据通信场景进一步限定为发起端对响应端进行数据读取,由于发起端读取响应端中的数据,本质上需要响应端将该数据发送至发起端,因此需要响应端对信号线的电平状态进行控制,以此实现通过信号线将数据传输至发起端的目的,因此本实施方式中,发起端在第n+m+2个时钟周期时通过信号线向响应端传输读写地址后,需要释放对信号线的电平状态控制权,进而响应端获取信号线的电平状态控制权,根据读取地址读取响应端自身中预先保存的第一数据,并将第一数据传输至发起端,由于将第一数据传输至发起端后,响应端对于发起端的通信响应结束,因此释放对信号线的电平状态控制权。本实施方式进一步确保了在发起端读取响应端中数据的场景下,发起端与响应端之间通信的整体可靠性。

在上述实施方式的基础上,作为一种优选的实施方式,在响应端将第一数据传输至发起端,并释放对信号线的电平状态控制权后,该方法进一步包括:

重新获取对信号线的电平状态控制权,将信号线的第二电平状态变化为第一电平状态并持续p个时钟周期以告知响应端数据通信结束。

其中,p为正整数。

需要说明的是,本实施方式是在响应端将第一数据传输至发起端,并释放对信号线的电平状态控制权后,发起端重新获取对信号线的电平状态控制权,并将信号线的第二电平状态变化为第一电平状态,即恢复至数据通信前信号线中的电平状态,并在此基础上,持续第一电平状态达到p个时钟周期,以此告知响应端数据通信结束,进而响应端能够释放与发起端数据通信所需的资源。本实施方式在发起端与响应端之间的数据通信结束后,能够通过还原初始电平状态并持续特定时钟周期,告知响应端数据通信的结束,确保响应端能够相对及时的释放通信资源,保证了响应端的可用性。

此外,作为一种优选的实施方式,当读写指令为写指令,读写地址为写入地址时,在第n+m+2个时钟周期时通过信号线向响应端传输读写地址后,该方法进一步包括:

向响应端传输第二数据;

相应的,通过响应端根据读写指令及读写地址对发起端进行通信响应包括:

响应端根据写入地址将第二数据写入本地。

本实施方式是将发起端与响应端之间的数据通信场景进一步限定为发起端对响应端进行数据写入,当读写指令为写指令,读写地址为写入地址时,在第n+m+2个时钟周期时通过信号线向响应端传输读写地址后,向响应端传输第二数据,此处的第二数据即为发起端向响应端写入的数据内容,进而响应端根据写入地址将第二数据写入本地,以此完成对发起端向响应端的数据写入操作。本实施方式进一步确保了在发起端向响应端写入数据的场景下,发起端与响应端之间通信的整体可靠性。

在上述一系列实施方式的基础上,作为一种优选的实施方式,发起端为服务器,响应端为fpga。

需要说明的是,由于服务器在工作中往往需要涉及到对数据的处理,而fpga的功能以并行运算为主,因此通过fpga能够分担服务器的数据运算压力,进一步提高服务器的数据处理效率,并且由于在进行fpga功能开发时能够节省功能所占的信号线数量,因此能够提高fpga功能的可扩展性,从而提高了服务器进行数据处理时的功能多样性。

实施例三

图2为本发明实施例提供的一种应用于响应端的数据通信方法的流程图。响应端通过单独的信号线建立与发起端之间的通信连接,并由发起端控制信号线的电信号保持在第一电平状态。

请参考图2,数据通信方法的具体步骤包括:

步骤s20:当信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期时,在第n+1个时钟周期时接收由发起端传入的通信参数。

其中,n为正整数。

步骤s21:根据通信参数对发起端进行通信响应。

本发明所提供的数据通信方法,通信过程的发起端通过单独的信号线建立与响应端之间的通信连接,发起端控制信号线的电信号保持在第一电平状态,当数据通信开始时,发起端将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以此告知响应端开始数据通信,n为正整数,进而在第n+1个时钟周期时通过信号线向响应端传输通信参数,响应端根据通信参数对发起端进行通信响应。本方法中的发起端基于单独的一根信号线,通过电平信号的变化及变化后特定的持续时钟周期告知响应端数据开始数据通信,进而响应端在持续时钟周期后接收发起端传输的通信参数,并根据通信参数对发起端进行相应的通信响应。本方法仅需要通过单独的一根信号线即可实现发起端与响应端之间的数据通信,减少了通信的发起端与响应端之间通信时所占用的信号线数量,进而确保了发起端与响应端之间的通信功能的可扩展性。

实施例四

本发明还提供一种在真实使用场景下的实施例,显然本场景实施例是基于本发明核心思想的具体实施例之一,并不代表所有的实施例。

本实施例进行数据通信的两个设备分为master端和slave端。master端是数据通信的主动发起端,slave端是数据通信的被动响应端。master端通过发送指定的串行指令来实现读写访问slave的操作,slave接收并解析master的串行指令后返回相关的数据。默认情况下由master控制信号线,输出高电平。

本实施例的数据通信具体实现分为5个部分:传输启动,发送读写命令,发送读写地址,发送读写数据,传输结束。协议的总的规则是发送方在时钟上升沿发数,响应端在时钟下降沿采数。

下面分别阐述这五部分的具体实现。

1、传输启动。默认情况下由master控制总线,保持高电平。当要启动传输时,master将信号线拉低10个clk(时钟周期)。当slave发现信号线被拉低持续10个clk时,将其解析为传输开始。

2、发送读写命令。master将信号线拉低10个clk后,从第11个clk开始,master开始发送读写命令。读命令和写命令都是8位串行数据,读命令为0x55,写命令为0xaa读命令或写命令用8个clk发送完毕,slave接收完成后,就准备开始接收读写地址。

3、发送读写地址。master发送完读写命令后,接下来继续发送读写地址,读写地址也是8位的。master根据具体要访问的slave内部寄存器或其他的地址,向其发送8位的串行地址,slave收到8位地址后,就根据上一步收到的是读命令还是写命令,准备下一步的操作。

4、发送读写数据。根据第2步master发送的命令,分为读操作和写操作。如果master第2步发送的是0xaa,表示master要执行写slave的操作,slave在第3步接收完8位地址后,第4步继续接收8位数据。如果master第2步发送的是0x55,表示master要执行读slave的操作,master在第3步发送完8位地址后,释放总线控制权,slave在第3步接收完8位地址后,获得总线控制权,然后salve向master发送8位其需要读取的数据。slave发送完8位数据后放弃总线控制权,master重新获得总线控制权。

5、在前4步的读写操作完成后,master获得总线控制权,将总线拉高保持至少10个clk,表示本次传输结束,10个clk后可以开始下一次的传输。

图3为本场景实施例中master进行写操作时的时序图,图3中的时钟周期clk是master遵照的时钟周期,整个时序是master向slave的0xc5的寄存器写1,为了理解方便,图中引入计数器,计数器是根据时钟计数。从计数器计数1-10是master写操作的第一步启动传输,master将信号线拉低10个clk。从计数器11-18是发送写命令0xaa,计数器19-26是发送写地址0xc5,计数器27-34是写的值1,从计数器35以后是传输结束,master将信号线拉高至少10个clk,然后可以开始下一次传输。

图4为本场景实施例中master进行读操作时的时序图,图4中的时钟周期clk是master遵照的时钟周期,为了理解方便,图中引入计数器,计数器是根据时钟计数。从计数器计数1-10是master写操作的第一步启动传输,master将信号线拉低10个clk。从计数器11-18是发送读命令0x55,计数器19-26是发送读地址0xc5,计数器27是总线控制权的交接,这一个clk完成了master释放总线,slave获取总线。从计数器28-35是slave向master发送其读取的值1,从计数器36开始表示传输结束,master将信号线拉高至少10个clk,然后可以开始下一次传输。

实施例五

在上文中对于数据通信方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的一种发起端,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述应用于发起端的数据通信方法的步骤。

本发明还提供一种与该方法对应的一种响应端,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序时实现如上述应用于响应端的数据通信方法的步骤。

本申请还提供一种数据通信系统。

图5为本发明实施例提供的一种数据通信系统的结构图,本发明实施例提供的数据通信系统,包括:

响应端10;

通过单独的信号线与响应端10建立通信连接,并控制信号线的电信号保持在第一电平状态的发起端11;

发起端11,用于当数据通信开始时,将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以告知响应端10开始数据通信;其中,n为正整数;在第n+1个时钟周期时通过信号线向响应端10传输通信参数,以通过响应端10根据通信参数对发起端11进行通信响应;

响应端10,用于当信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期时,在第n+1个时钟周期时接收由发起端11传入的通信参数;其中,n为正整数;根据通信参数对发起端11进行通信响应。

本发明所提供的数据通信系统,通信过程的发起端通过单独的信号线建立与响应端之间的通信连接,发起端控制信号线的电信号保持在第一电平状态,当数据通信开始时,发起端将信号线的第一电平状态变化为与第一电平状态反向的第二电平状态,并持续n个时钟周期,以此告知响应端开始数据通信,n为正整数,进而在第n+1个时钟周期时通过信号线向响应端传输通信参数,响应端根据通信参数对发起端进行通信响应。本系统中的发起端基于单独的一根信号线,通过电平信号的变化及变化后特定的持续时钟周期告知响应端数据开始数据通信,进而响应端在持续时钟周期后接收发起端传输的通信参数,并根据通信参数对发起端进行相应的通信响应。本系统仅需要通过单独的一根信号线即可实现发起端与响应端之间的数据通信,减少了通信的发起端与响应端之间通信时所占用的信号线数量,进而确保了发起端与响应端之间的通信功能的可扩展性。

以上对本发明所提供的一种数据通信方法、发起端、响应端及系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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