掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法、主设备、从设备及电子设备

文献发布时间:2024-04-18 20:01:23


数据传输方法、主设备、从设备及电子设备

技术领域

本公开涉及通信技术领域,尤其涉及一种数据传输方法、主设备、从设备及电子设备。

背景技术

相关技术中,一般采用AXI(Advanced eXtensible Interface,高级可扩展接口)进行主设备与从设备之间数据的传输。但是该接口中的互联协议和缓存会导致数据延时过长,比如,基本从主设备产生数据到从设备接收到需要2~3个时钟周期的延后。

发明内容

为克服相关技术中存在的问题,本公开提供一种数据传输方法、主设备、从设备及电子设备

根据本公开实施例的第一方面,提供了一种数据传输方法,应用于主设备,所述主设备包括第一接口和第二接口,所述数据传输方法包括:

检测当前时钟周期内,所述主设备是否存在请求信号;

若所述主设备存在请求信号,则对所述第一接口进行检测;

检测到所述第一接口的信号的电平值符合第一预设条件时,通过所述第二接口将所述请求信号发送给从设备。

在一些实施例中,所述主设备包括译码器,所述数据传输方法还包括:

根据所述请求信号确定所述从设备的设备编号;

通过所述第二接口将请求信号发送给从设备,包括:

根据所述设备编号和所述译码器,确定目标数据线;所述目标数据线为总线中所述主设备至所述从设备的一条数据线;

通过所述第二接口和所述目标数据线将所述请求信号发送给从设备。

在一些实施例中,所述主设备还包括第三接口,所述数据传输方法还包括:

当所述主设备存在请求信号时,提高所述第三接口的信号的电平值;

所述通过所述第二接口将所述请求信号发送给从设备,包括:

检测到所述第一接口的信号的电平值符合第一预设条件,以及所述第三接口的信号的电平值符合第二预设条件时,通过所述第二接口将所述请求信号发送给从设备。

根据本公开实施例的第二方面,提供了一种数据传输方法,应用于从设备,所述从设备包括第四接口,所述数据传输方法包括:

采用所述第四接口接收至少一个请求信号;所述请求信号中包括数据,且所述请求信号与主设备具有对应关系;

确定目标主设备,所述目标主设备是所述至少一个请求信号对应的至少一个主设备中的一个主设备;

接收所述目标主设备对应的数据。

在一些实施例中,所述确定目标主设备,包括:

确定所述至少一个请求信号对应的至少一个主设备;

确定所述至少一个主设备中优先级最高的主设备,并将所述优先级最高的主设备作为所述目标主设备。

在一些实施例中,所述数据传输方法还包括:

在当前时钟周期内,向总线发送目标指令;所述目标指令用于降低非目标主设备的第一接口的信号的电平值,所述非目标主设备是所述至少一个主设备中除所述目标主设备之外的主设备。

在一些实施例中,所述从设备还包括第六接口,所述数据传输方法还包括:

检测所述第六接口的信号的电平值;

所述第六接口的信号的电平值符合第三预设条件时,采用所述第四接口接收所述至少一个请求信号。

根据本公开实施例的第三方面,提供了一种主设备,所述主设备包括第一接口和第二接口,所述主设备包括:

第一检测模块,用于检测当前时钟周期内,所述主设备是否存在请求信号;

第二检测模块,用于若所述主设备存在请求信号,则对所述第一接口进行检测;

发送模块,用于检测到所述第一接口的信号的电平值符合第一预设条件时,通过所述第二接口将所述请求信号发送给从设备。

根据本公开实施例的第四方面,提供了一种从设备,所述从设备包括第四接口,所述从设备包括:

第一接收模块,用于采用所述第四接口接收至少一个请求信号;所述请求信号中包括数据,且所述请求信号与主设备具有对应关系;

确定模块,用于确定目标主设备,所述目标主设备是所述至少一个请求信号对应的至少一个主设备中的一个主设备;

第二接收模块,用于接收所述目标主设备对应的数据。

根据本公开实施例的第五方面,提供一种电子设备,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行如本公开第一方面或如本公开第二方面所述的数据传输方法。

根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如本公开第一方面或如本公开第二方面所述的数据传输方法。

采用本公开的上述方法,具有以下有益效果:本公开中的主设备中设有第一接口和第二接口,由于第一接口和第二接口的存在,主设备不需要将内部信号再转换成已有的标准总线信号接口,从一定程度上降低了接口上的冗余和设计复杂度;另外,本公开的接口设计简单,还可以有效降低主设备和从设备之间数据发送和接收的延时,实现零延时传输,确保了从设备的数据即时处理特性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性的实施例示出的一种主设备、从设备和总线的场景示意图。

图2是根据一示例性的实施例示出的一种数据传输方法的流程图。

图3是根据一示例性的实施例示出的一种数据传输方法的流程图。

图4是根据一示例性的实施例示出的一种数据传输方法的流程图。

图5是根据一示例性的实施例示出的一种数据传输方法的流程图。

图6是根据一示例性的实施例示出的一种数据传输方法的流程图。

图7是根据一示例性的实施例示出的一种数据传输方法的流程图。

图8是根据一示例性的实施例示出的一种主设备的接口示意图。

图9是根据一示例性的实施例示出的一种从设备的接口示意图。

图10是根据一示例性的实施例示出的一种单主设备访问从设备的时序示意图。

图11是根据一示例性的实施例示出的一种多主设备访问从设备的时序示意图。

图12是根据一示例性的实施例示出的一种主设备的框图。

图13是根据一示例性的实施例示出的一种从设备的框图。

图14是根据一示例性的实施例示出的一种电子设备的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

总线是计算机或其他电子设备中用于传输信息的一组电线路的集合。它是计算机中各种组件之间传输信息的一种方式,总线通常由地址总线、数据总线和控制总线组成。

通常,总线上连接有多个设备,这其中的多个设备可以进行通信及数据传输,然而,虽然,总线上连接有多个设备,但是对于总线的占用是比较受限的,也即,总线在同一时刻只能有一对设备进行使用。为了更好的区分连接在总线上的设备,相关技术中根据数据的流动方向和控制方式,可以将连接在总线上的多个设备分为主设备和从设备。

其中,主设备对总线有控制权,可以提出对总线的占用申请,并且在占用总线之后,主设备可以通过总线实现与另外一台设备之间的通讯过程。而从设备不能对总线进行控制,也不能对总线提出占用请求,只能接收主设备发出的数据或者请求。相应的,数据流只支持单向由主设备发往从设备,不支持从设备主动返回数据或者主设备发送读请求。

目前的芯片多使用FPGA(Field Programmable Gate Array,现场可编程门阵列)进行逻辑设计和数据的处理。FPGA内部设有多个模块,相应的,在实际应用过程中,使用FPGA进行逻辑设计和数据的处理产生的数据量很大,因此,需要及时处理生成或者获取到的数据,从而需要保证数据传输的低延时性。为了解决大量数据导致的延时或者其他问题,通常使用标准的总线协议进行数据传输,以减少延时的时间。其中,标准的总线协议可以包括AHB(Advanced High Performance Bus,先进高性能总线)、AXI、AXI Stream(指AXI协议中最简单的一个总线协议)等。以AXI Stream为例,其接口主要为:TVALID,TDATA,TSTRB,TKEEP,TLAST,TID,TDEST,TUSER,TREADY。在应用过程,为了使主设备和从设备可以正常通信,各厂商通常会基于AXI Stream的接口开发主设备和从设备,因此,设置在AXI Stream上的主设备和从设备也设有上述接口。

然而,虽然AXI Stream的标准接口可以快捷的使不同设备兼容互联,但是其也存在许多问题,比如,AXI Stream接口总线的逻辑多,但是很多逻辑功能在实际中用不到,过多无用的逻辑功能会导致芯片面积变大、运行频率受限;接口处产生的信号众多,导致主设备和从设备连接复杂,增加了芯片面积和芯片的功耗;互联协议和缓存导致数据延时过大,基本从主设备产生数据到从设备接收到数据需要2~3个时钟的延后,不利于数据发送和接收的及时性;并且,AXI Stream接口总线产生的信号和协议多,但是很多功能在单纯数据传输中是用不到的,并且,对这些无用信号和逻辑的检验保护,反而会造成额外的时间、人力、芯片面积的浪费。

为了解决上述问题,本公开提供了一种数据传输方法,本公开中的数据传输方法通过在主设备内设置第一接口和第二接口,并且检测当前时钟周期内,主设备是否存在请求信号,若主设备存在请求信号,则对第一接口进行检测,检测到第一接口的信号的电平值符合第一预设条件时,通过第二接口将请求信号发送给从设备。因此,本公开中的主设备中设有第一接口和第二接口,由于第一接口和第二接口的存在,主设备不需要将内部信号再转换成已有的标准总线信号接口,从一定程度上降低了接口上的冗余和设计复杂度;另外,本公开的接口设计简单,还可以有效降低主设备和从设备之间数据发送和接收的延时,实现零延时传输,确保了从设备的数据即时处理特性。同时,接口设计简单,也会使逻辑复杂度江都,从而减小芯片的面积和造价成本。

需要说明的是,本公开尤其适用于数据传输场景,并且,本公开还尤其适用于对数据发送和接收及时性要求很高的场景,比如,激光雷达场景。

为了方便理解,本公开中给出了一种主设备、从设备和总线的场景示意图,如图1所示,图1中包括有多个主设备(如主设备1、主设备2,……,主设备M),多个从设备(如从设备1、从设备2,……,从设备N),以及矩形框内的数据线(即总线)。通过图1可得,主设备和从设备之间设有数据线,并且,一个主设备可以通过多条数据线与多个从设备进行通信(但是需要注意的是,同一时刻,一个主设备只能和一个从设备进行通信),也即,主设备和从设备的对应关系为多对多。

通过图1所示的场景示意图,还可以得到,数据流向是主设备发出数据,经过总线后发送到对应的从设备。

本公开示例性的实施例提供了一种数据传输方法,应用于主设备,其中,主设备是可以对总线发出控制信号的设备,比如,在计算机中,主设备可以为处理器或者控制器。在激光雷达系统中,主设备可以是CSI-2(Camera Serial Interface-2,相机串行接口)摄像头、SERDES(串行解串器)、微码处理器、校准模块等。主设备上还可以设置有各种硬件资源,以及为各种硬件资源运行提供电能的储能装置。

本公开实施例提供了一种数据传输方法。图2是根据一示例性实施例示出的一种数据传输方法的流程图。如图2所示,本实施例示出的数据传输方法,包括:

S201、检测当前时钟周期内,主设备是否存在请求信号。

S202、若主设备存在请求信号,则对第一接口进行检测。

S203、检测到第一接口的信号的电平值符合第一预设条件时,通过第二接口将请求信号发送给从设备。

步骤S201中,时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU(Central Processing Unit,中央处理器)仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM(synchronous dynamic random-access memory,同步动态随机存取内存)所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。为了保证数据的零延时特性,数据的发送和接收过程需要在一个时钟周期内完成。

需要说明的是,由于总线上设有多个主设备,并且,在同一时刻,总线只允许一个主设备使用总线。因此,在确定主设备是否存在请求信号之前,还需要确定主设备此时是否已经占用总线。并且,只有在主设备已经占用总线后,才确定总线此时是可以被主设备使用的。

当主设备存在请求信号时,表示主设备希望某个从设备可以为其提供服务(此处的服务可以指数据传输服务或者其他指令服务)。也即,主设备有想要访问的从设备。参考上文中,主设备和从设备之间的交互过程,可以得到主设备和从设备之间设有总线,并且,总线是主设备和从设备之间的通信枢纽。因此,在主设备存在请求信号时,主设备会先向总线发送该请求信号,此时,接收到请求信号的总线会去判断主设备想要访问的从设备是否可以为主设备提供服务(即从设备是否可以与主设备进行数据传输服务或者响应于主设备发生的指令)。

为了使技术方案更加清晰,下面简单叙述下总线判断从设备是否可以为主设备提供服务的过程:

从设备上设有第五接口,第五接口的信号可以用于表征从设备的状态。在一个示例中,第五接口可以为full接口,当full接口的信号为高电平时,说明从设备已满,从设备已经无法接收数据。对应的,从设备也就无法为主设备提供服务。需要说明的是,信号的电平值指的是信号的高低电平,在数字电路中,信号电平的作用非常重要,它直接影响着数字电路的工作状态和数据传输的可靠性。信号电平的高低决定了数字电路的工作状态。在数字电路中,通常将高电平表示为1,低电平表示0。当信号为高电平时,数字电路会执行相应的操作,当信号为低电平时,数字电路则不执行任何操作。因此,当full接口的信号为高电平时,对应的full信号=1。相应的,当full接口的信号为低电平时,对应的full信号=0。

为了得到更加准确的从设备状态,总线会从两方面判断从设备是否可以为主设备提供服务,其中,第一方面就是检测从设备中第五接口的信号的电平值,若检测到第五接口的信号的电平值为高电平时,总线可以直接确定从设备已满,已经不能为主设备提供服务。若检测到第五接口的信号的电平值为低电平时,总线确定从设备未满,在此,总线还需要通过第二方面进一步确定从设备是否可以为主设备提供服务。第二方面就是判断从设备是否已被其他优先级更高的主设备占用,即,从设备是否在为其他主设备提供服务。

在一个示例中,只有满足第五接口的信号的电平值为低电平,并且,从设备没有为其他主设备提供服务两种条件,从设备才可以为主设备提供服务。

步骤S202中,再检测完从设备的状态后,总线会根据从设备的状态,向主设备返回一个反馈信号。而这个反馈信号,会发送给第一接口,可见,反馈信号就是第一接口所对应的信号。因此,对第一接口进行检测,实际是对第一接口对应的信号进行检测,以确定从设备是否可以为主设备提供服务。在一个示例中,第一接口可以表示为ready接口,并且,ready信号可以用于表征从设备的状态。也即,当ready=0时(即ready信号的电平值为低电平),说明从设备此时不能为主设备提供服务。当ready=1时(即ready信号的电平值为高电平),说明从设备此时可以为主设备提供服务。

另外,需要说明的是,通过ready信号与full信号结合,本实施例可以在从设备无法为主设备提供服务的情况下,对ready信号的电平值进行调整,从而控制主设备数据量的流量,减少对从设备发送请求信号的主设备的数量。

在一个示例中,假设在从设备可以为主设备提供服务时,总线才会向主设备发送反馈信号,对第一接口进行检测可以为对第一接口是否接收到反馈信号进行检测。比如,若检测第一接口接收到该反馈信号,说明从设备可以为主设备提供服务;若检测第一接口没有接收到该反馈信号,说明从设备不可以为主设备提供服务。

在另一个示例中,假设无论从设备处于何种状态,总线都会向主设备发送反馈信号,则可以对第一接口的信号进行检测。本实施例中并不限制对第一接口的信号进行检测的具体特征,比如,可以对第一接口的信号的特征(时域特征、频域特征)进行检测;又比如,可以对第一接口的信号的电平值进行检测。

步骤S203中,在一个示例中,第一预设条件可以为信号的电平值为高电平时所对应的条件,比如,信号的电平值大于预设阈值,或者,信号的电平值在某个预设范围内等等。比如,信号的电平值大于预设阈值,该预设阈值是高电平和低电平之间的界限值,说明第一接口的电平值为高电平,信号的电平值小于或等于预设阈值时,说明第一接口的电平值为低电平。

因此,当第一接口的信号的电平值符合第一预设条件时,可以理解为第一接口的信号的电平值为高电平(即ready=1),说明从设备可以为主设备提供服务。因此,主设备可以通过第二接口将请求信号发送给从设备。在一个示例中,第二接口可以为可进行数据/指令传输的接口,例如,第二接口可以为data1接口,通过第二接口,主设备可以将请求信号发送到总线,并通过总线发送给从设备,实现了主从设备之间的数据传输。当主设备在当前时钟周期内完成了与从设备的数据传输后,主设备可以进行下一次数据传输或者进入空闲状态,直到再次发起请求信号。

需要说明的是,请求信号和data1接口的信号的电平值是存在对应的关系的,即,主设备存在请求信号时,data1接口的信号的电平值也应当对应某个值。在一个示例中,这个值可以为某个可以用于表征主设备存在请求信号的设定值,比如,data1接口的信号的电平值=1。在另一个示例中,这个值也可以为与请求信号的大小相关的值,比如,请求信号的数据大小为a,对应的data1接口的信号的电平值=a*b,其中,b表示电平值和请求信号的数据大小的函数关系;又比如,这个值可以直接与请求信号的大小相同,假设请求信号大小为x,则data1接口的信号的电平值可以直接用x表示。其中,x表示数据位宽,x可以为任意宽度,并且x的大小可以根据实际需求进行设置,比如,32比特、64比特等。

另外,若第一接口的信号的电平值不符合第一预设条件时,说明从设备不可以为主设备提供服务,即,从设备此时可能处于已满的状态,或者,从设备可能在为其他主设备提供服务。也就是说,当前时钟周期内,从设备暂时不能为本主设备提供服务。因此,主设备可以继续保持请求信号和第二接口的信号的电平值,以使主设备处于待服务状态。若在当前时钟周期的下一个时钟周期或者其他时钟周期内,第一接口的信号的电平值符合第一预设条件后,主设备可以直接通过第二接口将请求信号发送给从设备,从而简化交互过程,减小芯片功耗。

参考图1,可见,图1中包括有多个主设备。上述步骤S201-S203为其中一个主设备所进行的过程,在实际的应用过程,其他的主设备可以参考步骤S201-S203进行相同的操作。

本实施例中的数据传输方法通过在主设备内设置第一接口和第二接口,并且检测当前时钟周期内,主设备是否存在请求信号,若主设备存在请求信号,则对第一接口进行检测,检测到第一接口的信号的电平值符合第一预设条件时,通过第二接口将请求信号发送给从设备。因此,本公开中的主设备中设有第一接口和第二接口,由于第一接口和第二接口的存在,主设备不需要将内部信号再转换成已有的标准总线信号接口,从一定程度上降低了接口上的冗余和设计复杂度;另外,本公开的接口设计简单,还可以有效降低主设备和从设备之间数据发送和接收的延时,实现零延时传输,确保了从设备的数据即时处理特性。

本公开实施例提供了一种数据传输方法。图3是根据一示例性实施例示出的一种数据传输方法的流程图。如图3所示,本实施例示出的数据传输方法,包括:

S301、检测当前时钟周期内,主设备是否存在请求信号。

S302、若主设备存在请求信号,则对第一接口进行检测。

S303、检测到第一接口的信号的电平值符合第一预设条件时,根据请求信号确定从设备的设备编号。

S304、根据设备编号和译码器,确定目标数据线。

S305、通过第二接口和目标数据线将请求信号发送给从设备。

其中,步骤S301-S302与上述实施例中的步骤S201-S202相同,在此不再赘述。

步骤S303中,由于总线在检测到请求信号后,会先判断主设备想要访问的从设备是否可以为主设备提供服务,因此,请求信号中包括从设备的设备编号,以便总线检测该从设备。因此,可以直接在请求信号内部查询得到从设备的设备编号。

步骤S304中,主设备还包括译码器。在确定了从设备的设备编号之后,参考图1所示的主设备和从设备之间的连接关系,可见,一个主设备连接有多个从设备。为了保证主设备可以与真正想要访问的从设备进行交互,还可以通过译码器选择主设备和从设备之间的目标数据线。其中,目标数据线为总线中主设备至从设备的一条数据线,也即,目标数据线为图1的矩形框中的一条数据线。

步骤S305中,基于上述步骤S303和步骤S304,确定了主设备想要访问的从设备的设备编号,以及主设备与想要访问的从设备之间的数据线。因此,数据交互过程中的发送端(主设备)、接收端(设备编号对应的从设备)和传输路径(目标数据线)都已得到明确的对象。因此,可以通过第二接口和目标数据线将请求信号发送给从设备。

本实施例中,可以从两方面验证确定出的从设备是否为同一从设备,避免设备编号对应从设备A,目标数据线对应从设备B这种情况的发生。另外,确定设备编号可以确定交互过程中的接收端,确定目标数据线可以确定出传输路径,从而保证数据传输过程的顺利进行。

本公开实施例提供了一种数据传输方法。图4是根据一示例性实施例示出的一种数据传输方法的流程图。如图4所示,本实施例示出的数据传输方法,包括:

S401、检测当前时钟周期内,主设备是否存在请求信号。

S402、若主设备存在请求信号,则提高第三接口的信号的电平值,并对第一接口进行检测。

S403、检测到第一接口的信号的电平值符合第一预设条件,以及第三接口的信号的电平值符合第二预设条件时,根据请求信号确定从设备的设备编号。

S404、根据设备编号和译码器,确定目标数据线。

S405、通过第二接口和目标数据线将请求信号发送给从设备。

其中,步骤S401、S404-S405与上述实施例中的步骤S301、S304-S305相同,在此不再赘述。

步骤S402中,第三接口可以指push1接口,第三接口的信号的电平值只与主设备自身是否有数据要进行传输有关。也即,第三接口的信号的电平值只与主设备是否存在请求信号有关。

在一个示例中,可以在主设备存在请求信号时,提高第三接口的信号的电平值,即,将第三接口的信号的电平值提高为高电平。

步骤S403中,第二预设条件可以表示与信号的电平值为高电平时所对应的条件,比如,比如,信号的电平值大于预设阈值,或者,信号的电平值在某个预设范围内等等。由于步骤S402中,第三接口的信号的电平值已被提高为高电平,因此,在主设备存在请求信号时,第三接口的信号的电平值是完全符合第二预设条件的。

相应的,只需要按照上述步骤S203中所示的内容,检测第一接口的信号的电平值是否符合第一预设条件,并在第一接口的信号的电平值满足第一预设条件,并且,第三接口的信号的电平值满足第二预设条件的情况下,确定从设备的设备编号。

本实施例中,给出了主设备可以将从设备发送请求信号的两个前提条件,只有同时满足这两个前提条件时,主设备才可以将请求信号发送给从设备。本实施例可以有效的控制向从设备发送请求信号的主设备的数量,从而有效控件主设备数据流的流量。

本公开实施例提供了一种数据传输方法。图5是根据一示例性实施例示出的一种数据传输方法的流程图。如图5所示,本实施例示出的数据传输方法,应用于从设备,包括:

S501、采用第四接口接收至少一个请求信号。

S502、确定目标主设备。

S503、接收目标主设备对应的数据。

其中,从设备则是指接收和处理主设备的信息,执行特定任务的设备,比如硬盘、打印机等。在激光雷达系统中,从设备可以是SERDES(串行解串器)、微码处理器、校准模块、网络MAC接口。

步骤S501中,在当前时钟周期内,从设备可以通过数据线接收到来自至少一个主设备的请求信号。其中,请求信号中包括有主设备想要传输的数据,并且,请求信号和主设备还有对应关系,该对应关系为一一对应关系,即一个请求信号对应着一个主设备。需要注意的是,主设备所发出的请求信号中包括从设备的设备编号,但是该设备编号的作用是使总线可以识别出主设备想要访问的从设备。可见,在请求信号中添加从设备的设备编号主要是供总线使用的,从设备不需要该设备编号信息。

在一个示例中,可以在总线向从设备发送请求信号前,丢弃主设备发送的请求信号中的从设备的设备编号信息,以减少系统冗余。也即,从设备接收到的请求信号与主设备发送的请求信号内容不同,不同于是否包括从设备的设备编号信息。

在另一个示例中,可以不丢弃主设备发送的请求信号中的从设备的设备编号信息,使从设备接收到的请求信号与主设备发出的请求信号相同,方便对请求信号的验证。

需要说明的是,确定请求信号和主设备存在对应关系的目的是可以通过请求信号,确定其对应的主设备,以方便后续步骤S502-S503的进行。

在一个示例中,第四接口为与第二接口性质相同的接口,两者的区别在于第二接口是为主设备向外部发送数据或者请求信号,而第四接口是为从设备从外部接收数据或者请求信号。因此,与第二接口类似,第四接口可以为data2接口。其中,data1接口和data2接口两个接口的性质类似,但是为了区别,将主设备中的data接口data1接口,将从设备中的data接口定义为data2接口。

另外,虽然从设备采用了第四接口接收了来自主设备的请求信号,但是从设备此时并未接收主设备的请求信号中的数据。可以理解为,第四接口接收到的请求信号可能会先被暂存在从设备中的某个位置,比如,从设备的存储模块,以便后续的选择。

步骤S502中,虽然从设备接收到了至少一个请求信号,但是一个时钟周期内,从设备只能和一个主设备进行数据传输过程。因此,可以确定至少一个请求信号对应的至少一个主设备,并在至少一个主设备中确定出一个主设备,即目标主设备。

在一个示例中,可以在从设备内设置仲裁器,并采用仲裁器确定出目标主设备。仲裁器在FPGA中的应用非常的广泛,其本质就是当存在两个或两个以上模块需要占用同一块资源时,对资源此时刻的最终归属权做出判决的角色。比如,在课堂上,老师提出了一个问题,底下多个同学举手,老师最终选择了其中一名同学来回答这个问题,在这个过程中,手的同学们就是前面提到的两个或两个以上的模块,回答问题的机会就是两个及以上模块同时希望占据的资源,举老师就扮演了一个仲裁器的角色。再比如,大家路过信号灯路口,四个方向的车都希望通过路口,只有通过红路灯的合理调度才能避免交通事故的发生,这个过程中,车就是两个及以上模块,道路就是两个及以上模块同时希望占据的资源,信号灯扮演了仲裁器的角色。

仲裁器最重要的特点就是只能让一个模块获得访问许可,以避免混乱的发生,例如课堂上老师一次只会选择一个同学来回答问题,不然谁也听不清别人讲的是什么。由此可见,仲裁器是一种可以避免资源随意访问,实现有序访问的模块。

应用到本实施例中,多个主设备就是两个及以上模块,从设备的服务就是两个及以上模块同时希望占据的资源。既然是仲裁,就应当存在对应的仲裁标准。其中,仲裁标准可以包括以下几方面:

在一个示例中,可以根据请求信号到达从设备的先后时间,确定目标主设备。同一时刻下,总线只能由一个主设备占用,因此,到达从设备的请求信号一定存在时间先后顺序。按照先来后到原则,从设备可以先为请求信号到达时间早的主设备提供服务。比如,主设备C对应的请求信号到达的时间为c,主设备D对应的请求信号到达的时间为d,并且,时间c早于时间d。因此,可以将到达时间早的请求信号对应的主设备确定为目标主设备。

在另一个示例中,可以根据请求信号对应的主设备的优先级,确定目标主设备。比如,主设备C和主设备D都对应有固定的优先级,并且主设备C的优先级高于主设备D的优先级,此时,优先级高的主设备C就是目标主设备。这种情况下,从设备会先为优先级高的主设备提供服务,如此下去,可能会导致很多主设备不能正常的与从设备进行数据交互。

优选的,本实施例中的优先级不采用固定优先级,而是采用轮询调度优先级,即,在当前时钟周期,从设备为某个主设备提供服务后,下个时钟周期内,将该主设备的优先级降为最低级。也就是说,主设备的优先级并不是固定的,而是会在优先级最高之后变为优先级最低,这样,当有至少一个主设备的请求信号时,从设备可以依次为每个主设备提供服务。从而避免在后续过程中,某个主设备为从设备的垄断,使从设备可以为除了该主设备之外的主设备提供服务,以提高仲裁器的公平性。

步骤S503中,主设备的请求信号中包括有主设备想要传输的数据,因此,在确定了目标主设备之后,可以接收请求信号中的数据,完成数据传输过程。并且,从设备会在当前时钟周期内完成对主设备对应的数据的接收。因此,主设备发送请求信号和从设备接收请求信号、接收数据是在同一个周期完成的,因此,主从设备之间可以实现零延时传输。这可以有效降低设备之间数据流程的延时,确保系统的即时处理特性,以及提高用户体验。

在一个示例中,从设备接收目标主设备对应的数据的具体过程可以包括:仲裁器在确定了目标主设备后,会对目标主设备的请求信号给出仲裁许可,从而进行数据的接收操作。具体的,数据的接收操作可以包括从设备查找请求信号内部的数据,根据该数据驱动从设备内部的驱动电路,从而实现对目标主设备对应的数据的接收。

本实施例中,可以采用第四接口接收主设备发送的请求信号,并接收确定出的目标主设备的请求信号中的数据。其中,第四接口和主设备的第二接口统一,并且接口协议简单,因此,本实施例中提供的从设备以及上述实施例中提供的主设备,便于集成和使用。另外,接口设计简单和接口协议简单,还可以使芯片的内部逻辑复杂度低,从而使逻辑功能更容易实现。

本公开实施例提供了一种数据传输方法。图6是根据一示例性实施例示出的一种数据传输方法的流程图。如图6所示,本实施例示出的数据传输方法,包括:

S601、采用第四接口接收至少一个请求信号。

S602、确定目标主设备。

S603、接收目标主设备对应的数据。

S604、在当前时钟周期内,向总线发送目标指令。

其中,步骤S601-S603与上述实施例中的步骤S501-S503相同,在此不再赘述。

步骤S604中,需要说明的是,步骤S604和步骤S603可以为同时进行,也可以在进行完步骤S603之后,再进行步骤S604。为了节省数据传输时间,本实施例优选将步骤S603和步骤S604同时进行。

参考上述步骤S502-S503中的内容,可得,在当前时钟周期内,从设备会接收到来自至少一个主设备的请求信号,但是从设备只会接收至少一个主设备中的目标主设备的数据。因此,对于非目标主设备发送的请求信号,从设备也需对该请求信号进行处理,以避免无用的请求信号冗余在从设备内。

在一个示例中,在当前时钟周期内,从设备可以向总线发送目标指令。其中,目标指令可以用于降低非目标主设备的第一接口的信号的电平值,非目标主设备是至少一个主设备中除目标主设备之外的主设备。此处,需要限定的是,非目标主设备的第一接口的信号的电平值应当降低到不符合第一预设条件的程度。

具体的,降低非目标主设备的第一接口的信号的电平值的过程可以包括:总线在接收到目标指令后,并基于目标指令生成第二反馈信号,并通过第一接口将第二反馈信号发送给主设备。此时,第二反馈信号表示着第一接口的信号的电平值。而在非目标主设备的第一接口的信号的电平值不符合第一预设条件时,请求信号也不会发送给从设备。

此时,当前时钟周期没有被接收数据的非目标主设备,可以在下一个时钟周期保持第二接口的信号的电平值和第三接口的信号的电平值,直到非目标主设备对应的数据被接收。另外,参考步骤S501中的内容,至少一个主设备的请求信号可能会暂存在从设备中的某个位置,因此,降低非目标主设备的第一接口的信号的电平值的过程中,还可以同时删除存储在从设备中的非主设备的请求信号,从而达到节省从设备的存储空间,以及减小从设备的冗余的技术效果。

本实施例中,给出了对非目标主设备所进行的操作,并通过降低非目标主设备的第一接口的信号的电平值,保持非目标主设备的第二接口和第三接口的信号的电平值,使非目标主设备有望在下一个时钟周期时,被从设备提供服务,从而实现非目标主设备到从设备的数据传输过程。

本公开实施例提供了一种数据传输方法。图7是根据一示例性实施例示出的一种数据传输方法的流程图。如图7所示,本实施例示出的数据传输方法,包括:

S701、检测第六接口的信号的电平值。

S702、第六接口的信号的电平值符合第三预设条件时,采用第四接口接收至少一个请求信号。

S703、确定目标主设备。

S704、接收目标主设备对应的数据。

其中,步骤S703-S704与上述实施例中的步骤S502-S503相同,在此不再赘述。

步骤S701中,在一个示例中,与第三接口的性质相同,第六接口可以指push2接口,第六接口的信号的电平值与从设备是否可以接收请求信号有关,并且,当push2接口所对应的push信号为高电平时,表示从设备可以接收请求信号;而当push2接口所对应的push信号为低电平时,表示从设备不可以接收请求信号。

步骤S702中,第三预设条件可以为信号的电平值为高电平时所对应的条件,比如,信号的电平值大于预设阈值,或者,信号的电平值在某个预设范围内等等。若第六接口的信号的电平值符合第三预设条件,说明从设备可以接收请求信号,这种情况下,可以采用第四接口接收至少一个请求信号。反之,若第六接口的信号的电平值不符合第三预设条件,则说明从设备不可以接收请求信号。

本实施例中,给出了从设备是否可以接收请求信号的前提条件,并且在第六接口的信号的电平值符合第三预设条件时,一定可以采用第四接口接收至少一个请求信号。

综上,如图8所示的主设备的接口示意图和如图9所示的从设备的接口示意图,可见,主设备上设有push1接口(第三接口)、data1接口(第二接口)和ready(第一接口)。相应的,从设备上设有push2接口(第六接口)、data2接口(第四接口)和full接口(第五接口)。其中,图8和图9中还给出了各自的接口与总线的输入输出关系,图8中,push1接口的输入端连接主设备,push1接口的输出端连接总线;data1接口的输入端连接主设备,data1接口的输出端连接总线;ready接口的输出端连接主设备,ready接口的输入端连接总线。由此可见,与上文对应,ready信号是总线反馈给主设备的。图9中,push2接口的输出端连接从设备,push2接口的输入端连接总线;data2接口的输出端连接从设备,data2接口的输入端连接总线;full接口的输入端连接从设备,full接口的输出端连接总线。由此可见,与上文对应,full信号是从设备反馈给总线的。

另外,通过图8和图9,还可以得到,主设备和总线互联的接口,以及从设备和总线互联的接口设计十分简单,这极大程度长简化了总线的面积和设计复杂度。并且,主设备和从设备都使用统一接口,而且接口协议简单,有利于后续的集成和使用。

另外,需要说明的是,上述实施例中提到的第一接口、第二接口、第三接口、第四接口、第五接口和第六接口都为先进先出数据存储接口。采用先进先出数据存储接口作为主、从设备上的接口,可以支持灵活的同步时钟或者异步时钟设计,从而可以提高主设备和从设备的可靠性和稳定,延长设备的使用寿命;另外,灵活的同步时钟或者异步时钟设计还可以提高数据传输效率,减少管理成本和维护成本。

图10示出了一种单主设备访问从设备的时序图,图11给出了一种多主设备访问从设备的时序图。时序图,又名序列图、循序图,是一种UML(Unified Modeling Language,统一建模语言)交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。图中,clk表示时钟周期、rstn表示电源开关,i_mstM_data表示主设备M的data接口的信号的电平值,i_mstM_push表示主设备M的push接口的信号的电平值,i_mstM_rdy表示主设备M的rdy接口的信号的电平值,i_slvN_data表示从设备N的data接口的信号的电平值,i_slvN_push表示从设备N的push接口的信号的电平值,i_slvN_full表示从设备N的full接口的信号的电平值。

由图10和图11可见,对于单主设备访问,可以看到在同一时钟周期,若主设备想要访问的从设备的full接口对应的full信号为低电平,则在同一个时钟周期内,数据传输即可完成。若主设备想要访问的从设备full接口对应的full信号为高电平,则不会进行数据传输,并且会继续等待,在full信号为低电平的时钟周期内完成数据传输。

对于多主设备访问,可以看到在同一个时钟周期,若多个主设备想要同时访问同一个从设备,则从设备只允许其中一个主设备进行数据传输,并将另一个主设备的ready接口对应的ready信号降低为低电平,并在下一个时钟周期再处理另一个主设备。

为了更加方便理解本公开的技术方案,下面以一个具体的实施例讲述主设备、总线和从设备的数据传输过程:

S1201、当前时钟周期内,主设备发起请求信号,主设备在此时提高push1接口对应的push信号的电平值,以使push信号的电平值为高电平,即push=1。

S1202、主设备将请求信号发送给data1接口,并通过data1接口将请求信号发送给总线。

S1203、总线在接收到请求信号后,检测主设备想要访问的从设备的full接口对应的full信号的电平值,若full信号的电平值为高电平,则从设备不可提供服务;若full信号的电平值为低电平,检测从设备是否也被其他主设备占用,若没有被其他主设备占用,则从设备可以提供服务;若已被其他主设备占用,则从设备不可以提供服务。若从设备可以提供服务,则跳转到S1204;若从设备不可以提供服务,则跳转到S1205。

S1204、主设备的ready接口对应的ready信号的电平值为高电平,即ready=1。说明当前周期,从设备可以为主设备提供服务,跳转到步骤S1206。

S1205、主设备的ready接口对应的ready信号的电平值为低电平,即ready=0。说明当前时钟周期,从设备不能为主设备提供服务,主设备保持data1接口的信号的电平值以及push1接口的信号的电平值。

S1206、主设备中的译码器通过请求信号确定目标数据线,主设备通过data1接口和目标数据线将请求信号发送给从设备。

S1207、当push2接口对应的push信号为高电平时,从设备通过data2接口接收请求信号,并且,当前时钟周期内,从设备已接收到至少一个请求信号。

S1208、确定每个请求信号对应的主设备,从设备中的仲裁器从至少一个主设备中确定出一个目标主设备。

S1209、从设备接收目标主设备的数据。

S1209、从设备向总线发送目标指令,总线在接收到目标指令后,降低非目标主设备的ready接口对应的ready信号的电平值。

本公开示例性的实施例提供了一种主设备,如图12所示,本公开示出的一种主设备的框图。并且,主设备包括第一接口和第二接口。

该框图包括第一检测模块1301、第二检测模块1302和发送模块1303。第一检测模块1301,用于检测当前时钟周期内,主设备是否存在请求信号。第二检测模块1302,用于若主设备存在请求信号,则对第一接口进行检测。发送模块1303,用于检测到第一接口的信号的电平值符合第一预设条件时,通过第二接口将请求信号发送给从设备。

在一些实施例中,主设备包括译码器,主设备还包括:第二确定模块;

第二确定模块,用于根据请求信号确定从设备的设备编号;

发送模块1303,具体用于:

根据设备编号和译码器,确定目标数据线;目标数据线为总线中主设备至从设备的一条数据线;

通过第二接口和目标数据线将请求信号发送给从设备。

在一些实施例中,主设备还包括第三接口,主设备还包括:第一处理模块;

第一处理模块,用于当主设备存在请求信号时,提高第三接口的信号的电平值;

发送模块1303,具体用于:

检测到第一接口的信号的电平值符合第一预设条件,以及第三接口的信号的电平值符合第二预设条件时,通过第二接口将请求信号发送给从设备。

本公开示例性的实施例提供了一种主设备,如图13所示,本公开示出的一种从设备的框图。并且,从设备包括第四接口。

该框图包括第一接收模块1401、确定模块1402和第二接收模块1403。第一接收模块1401,用于采用第四接口接收至少一个请求信号;请求信号中包括数据,且请求信号与主设备具有对应关系。确定模块1402,用于确定目标主设备,目标主设备是至少一个请求信号对应的至少一个主设备中的一个主设备。第二接收模块1403,用于接收目标主设备对应的数据。

在一些实施例中,确定模块1402具体用于:

确定至少一个请求信号对应的至少一个主设备;

确定至少一个主设备中优先级最高的主设备,并将优先级最高的主设备作为目标主设备。

在一些实施例中,从设备还包括第三处理模块;

第三处理模块,用于在当前时钟周期内,向总线发送目标指令;目标指令用于降低非目标主设备的第一接口的信号的电平值,非目标主设备是至少一个主设备中除目标主设备之外的主设备。

在一些实施例中,从设备还包括第六接口,从设备还包括第四处理模块:

第四处理模块,用于检测第六接口的信号的电平值;

第六接口的信号的电平值符合第三预设条件时,采用第四接口接收至少一个请求信号。

关于上述实施例中的主设备和从设备,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图14是根据一示例性的实施例示出的一种电子设备1500的框图。

参照图14,电子设备1500可以包括以下一个或多个组件:处理组件1502,存储器1504,电源组件1506,多媒体组件1508,音频组件1510,输入/输出(I/O)的接口1512,传感器组件1514,以及通信组件1516。

处理组件1502通常控制电子设备1500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1502可以包括一个或多个处理器1520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1502可以包括一个或多个模块,便于处理组件1502和其他组件之间的交互。例如,处理组件1502可以包括多媒体模块,以方便多媒体组件1508和处理组件1502之间的交互。

存储器1504被配置为存储各种类型的数据以支持在电子设备1500的操作。这些数据的示例包括用于在电子设备1500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件1506为电子设备1500的各种组件提供电源。电源组件1506可以包括电源管理系统,一个或多个电源,及其他与为电子设备1500生成、管理和分配电力相关联的组件。

多媒体组件1508包括在所述电子设备1500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1508包括一个前置摄像头和/或后置摄像头。当电子设备1500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件1510被配置为输出和/或输入音频信号。例如,音频组件1510包括一个麦克风(MIC),当电子设备1500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1504或经由通信组件1516发送。在一些实施例中,音频组件1510还包括一个扬声器,用于输出音频信号。

I/O接口1512为处理组件1502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件1514包括一个或多个传感器,用于为电子设备1500提供各个方面的状态评估。例如,传感器组件1514可以检测到电子设备1500的打开/关闭状态,组件的相对定位,例如所述组件为电子设备1500的显示器和小键盘,传感器组件1514还可以检测电子设备1500或电子设备1500一个组件的位置改变,用户与电子设备1500接触的存在或不存在,电子设备1500方位或加速/减速和电子设备1500的温度变化。传感器组件1514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件1516被配置为便于电子设备1500和其他设备之间有线或无线方式的通信。电子设备1500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,电子设备1500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1504,上述指令可由电子设备1500的处理器1520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开示例性的实施例所提供的数据传输方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术分类

06120116546489