一种基于串行Flash控制器接收数据的方法及装置与流程

文档序号:14389863阅读:315来源:国知局
一种基于串行Flash控制器接收数据的方法及装置与流程

本发明涉及通信领域,尤其涉及一种基于串行flash控制器接收数据的方法及装置。



背景技术:

目前,串行flash控制器存在串行输出时钟和串行输入时钟,其中,flash控制器以串行输出时钟信号将数据输出至flash芯片,flash控制器以串行输入时钟信号采样flash芯片输入的数据。对于flash控制器传输到flash芯片的数据和串行输出时钟,二者经过线路上的延时相同,几乎同时到达flash芯片;而对于flash芯片传输到串行flash控制器的数据和串行输入时钟,二者经过线路上的延时差异较大,串行输入时钟比输入数据的延时小。在flash芯片下降沿发送数据,flash控制器上升沿采样数据的情况下,半个周期的余量仅能满足低频条件下正确采样数据,对于更高频率的串行时钟来说,串行flash控制器数据采样会发生错误。可见,串行flash控制器从flash芯片接收数据时的串行时钟频率较低,难以满足更高速度的数据传输。

因此,亟需一种基于串行flash控制器接收数据的技术方案,以能够提高串行flash控制器和flash芯片之间的数据传输速度。



技术实现要素:

有鉴于此,本发明实施例希望提供一种基于串行flash控制器接收数据的方法及装置,能够提高串行flash控制器和flash芯片之间的数据传输速度。

本发明实施例的技术方案是这样实现的:

一方面,本发明实施例提供一种基于串行flash控制器接收数据的方法,所述方法包括:

当串行flash控制器接收到闪存flash芯片发送的输入数据时,获取采样选择寄存器的值,根据所述采样选择寄存器的值和第二工作时钟信号确定采样延时时间;所述第二工作时钟信号为串行flash控制器的工作时钟信号;

根据所述采样延时时间调整采样开始时刻进行采样以接收所述输入数据;其中,所述采样开始时刻为以第二工作时钟信号为采样信号开始对所述flash芯片发送的输入数据进行采样的时刻。

在上述方案中,所述方法还包括:

发送预设的第一工作时钟信号至闪存flash芯片;

其中,所述第一工作时钟信号的频率小于所述第二工作时钟信号的频率。

在上述方案中,所述方法还包括:

根据所述第二工作时钟信号和所述输入数据的延时大小确定采样延时周期系数;

根据所述采样延时周期系数调整采样选择寄存器的值。

在上述方案中,对于每一路输入数据,所述方法还包括:

根据输入数据的延时大小和时钟缓冲器的延时精度确定延时系数;

根据所述延时系数确定时钟缓冲选择寄存器的值和数据延时选择寄存器的值。

在上述方案中,当以多路传输模式从所述flash芯片接收输入数据时,获取采样选择寄存器的值之前,对于每一路输入数据,所述方法还包括:

获取时钟缓冲选择寄存器的值、数据延时选择寄存器的值;

根据所述时钟缓冲选择寄存器的值、所述数据延时选择寄存器的值和时钟缓冲器的延时精度确定输入数据的延时缓冲大小;

根据所述延时缓冲大小调整输入数据的达到时间。

一方面,本发明实施例还提供一种基于串行flash控制器接收数据的装置,所述装置包括:采样延时单元、采样选择单元和采样单元;其中,

所述采样延时单元,用于当串行flash控制器接收到闪存flash芯片发送的输入数据时,获取采样选择单元的值,根据所述采样选择单元的值和第二工作时钟信号确定采样延时时间;所述第二工作时钟信号为串行flash控制器的工作时钟信号;

所述采样单元,用于根据所述采样延时时间调整采样开始时刻进行采样以接收所述输入数据;其中,所述采样开始时刻为以所述第二工作时钟信号为采样信号开始对所述flash芯片发送的输入数据进行采样的时刻。

在上述方案中,所述装置还包括:发送单元,

用于发送预设的第一工作时钟信号至闪存flash芯片;其中,所述第二工作时钟信号的频率大于所述第一工作时钟信号的频率。

在上述方案中,所述装置还包括:延时采样参数配置单元,用于:

根据所述第二工作时钟信号和所述输入数据的延时大小确定采样延时周期系数;

根据所述采样延时周期系数调整所述采样选择单元的值。

在上述方案中,所述装置还包括:延时缓冲单元、时钟缓冲单元、时钟缓冲选择单元和数据延时选择单元;

其中,所述延时缓冲单元用于:

当以多路传输模式从所述flash芯片接收输入数据时,获取采样选择寄存器的值之前,对于每一路输入数据,获取时钟缓冲选择单元的值、数据延时选择单元的值;

根据所述时钟缓冲选择单元的值、所述数据延时选择单元的值和时钟缓冲单元的延时精度确定输入数据的延时缓冲大小;根据所述延时缓冲大小调整输入数据的到达时间。

在上述方案中,所述装置还包括:延时缓冲参数配置单元,用于:

对于每一路输入数据,根据输入数据的延时大小和所述时钟缓冲单元的延时精度确定延时系数;

根据所述延时系数确定所述时钟缓冲选择单元的值和所述数据延时选择单元的值。

本发明实施例的基于串行flash控制器接收数据的方法及装置,当串行flash控制器接收到闪存flash芯片发送的输入数据时,获取采样选择寄存器的值,根据所述采样选择寄存器的值和第二工作时钟信号确定采样延时时间;所述第二工作时钟信号为串行flash控制器的工作时钟信号;根据所述采样延时时间调整采样开始时刻进行采样以接收所述输入数据;其中,所述采样开始时刻为以所述第二工作时钟信号为采样信号开始对所述flash芯片发送的输入数据进行采样的时刻。如此,取消串行输入时钟信号,通过串行flash控制器的工作时钟信号进行输入数据的采样,并在采样开始时,进行采样延时,在提高串行flash控制器采样输入数据的频率的同时,能够接收到稳定的输入数据,从而提高flash控制器接收flash芯片的输入数据的速率,加快串行flash控制器和flash芯片之间的数据传输速度。

附图说明

图1为本发明实施例一提供的一种基于串行flash控制器接收数据的方法的流程示意图;

图2为本发明实施例二提供的8级延时缓冲选择单元的结构示意图;

图3为本发明实施例二提供的包括32级延时缓冲选择单元的延时缓冲单元的结构示意图;

图4为本发明实施例三提供的一种基于串行flash控制器接收数据的装置的结构示意图;

图5为本发明实施例三提供的另一种基于串行flash控制器接收数据的装置的结构示意图;

图6为本发明实施例四qspi与flash连接结构示意图。

具体实施方式

下面结合附图对技术方案的实施作进一步的详细描述。

实施例一

本发明实施例一提供一种基于串行flash控制器接收数据的方法,如图1所示,所述方法包括:

s101、当串行flash控制器接收到闪存flash芯片发送的输入数据时,获取采样选择寄存器的值,根据所述采样选择寄存器的值和第二工作时钟信号确定采样延时时间;所述第二工作时钟信号为串行flash控制器的工作时钟信号;

这里,所述方法还包括:发送预设的第一工作时钟信号至闪存flash芯片;其中,所述第一工作时钟信号的频率小于所述第二工作时钟信号的频率。

当串行flash控制器从flash芯片接收flash芯片输出的输入数据之前,串行flash控制器向flash芯片发送第一工作时钟信号,当flash芯片向串行flash控制器发送数据时,以接收到的第一工作时钟信号为工作时钟信号向串行flash控制器输出数据。

这里,串行flash控制器设置第一工作时钟信号的周期或频率时,可参考其自身的工作时钟信号:第二工作时钟信号,第一工作时钟信号的周期大于第二工作时钟信号的周期,即第一工作时钟信号的频率小于第二工作时钟信号的频率,比如:第二工作时钟信号的频率为100mhz,第一工作时钟信号的频率为50mhz。

这里需要说明的是,本发明实施例中的第一工作时钟信号的频率大于现有技术中的flash芯片的工作时钟信号的频率,从而使得flash芯片输出数据的频率提高。

当串行flash控制器接收到flash芯片发送的输入数据时,以第二时钟信号对接收到的数据进行采样之前,需确定采样开始时刻,获取采样选择寄存器的值;根据所述采样选择寄存器的值和所述第二工作时钟信号确定采样延时时间;

这里,采样选择寄存器用于确定采样开始时刻需要延时的周期数,以采样选择寄存器的值作为采样延时的周期数,以第二工作时钟信号为延时时钟来确定采样延时时间,将采样开始时刻进行延时。

这里,通过调整采样选择寄存器的值,将采样延时周期系数作为采样选择寄存器的值,通过采样选择存器的值来控制采样时间,使得采样开始的时刻相对延时了输入数据的延时大小,以接收稳定的输入数据。比如:当输入数据到达串行flash控制器时,获取的采样选择寄存器的值为2,第二工作时钟信号的周期为10ns,则确定采样延时时间为2*10ns,即20ns,将采样开始时刻延迟了20ns。

其中,采样选择寄存器的值根据输入数据的延时大小进行确定,具体细节为:根据所述第二工作时钟信号和所述输入数据的延时大小确定采样延时周期系数;根据所述采样延时周期系数调整采样选择寄存器的值。当确定输入数据的延时大小后,根据输入数据的延时大小和当前串行flash控制器接收输入数据时进行采样的周期即第二工作时钟信号的周期来调整开始采样的时刻,具体细节为:根据第二工作时钟信号的周期和输入数据的延时大小确定表征采样延时周期数的采样延时周期系数;通过采样延时周期系数控制采样选择寄存器的值来调整采样开始时刻。在实际应用中,用户可根据实际需要提前根据串行flash控制器接收的数据的延时大小对采样选择寄存器的值进行配置,从而在进行采样时,直接获取采样选择寄存器的值来调整采样开始时刻。

这里,当串行flash控制器以多路传输模式从所述flash芯片接收输入数据时,对于每一路输入数据,所述方法还包括:根据输入数据的延时大小和时钟缓冲器的延时精度确定延时系数;根据所述延时系数确定时钟缓冲选择寄存器的值和数据延时选择寄存器的值。

当接收输入数据时,获取采样选择寄存器的值之前,对于每一路输入数据,所述方法还包括:获取时钟缓冲选择寄存器的值、数据延时选择寄存器的值;根据所述时钟缓冲选择寄存器的值、所述数据延时选择寄存器的值和时钟缓冲器的延时精度确定输入数据的延时缓冲大小;根据所述延时缓冲大小调整输入数据的到达时间。

这里,当通过多路线路进行数据传输时,通过对每一路输入数据进行延时调整,使得flash芯片的多路输入数据能够同时到达串行flash控制器,每一路输入数据到达串行flash控制器的时间保持一致,得到避免了一路输入数据已经到达而其他路输入数据还未到达的情况。

这里,对于每一级数据延时选择寄存器的输入都设置有时钟缓冲选择寄存器和数据延时选择寄存器的值分别加1后相乘得到延时系数,该延时系数表征时钟缓冲器需要延时的周期数,将延时系数与时钟缓冲器的延时精度相乘后得到该路数据的延时缓冲大小,将该路传输数据到达串行flash控制器的时间进行了延时缓冲。

具体的,数据延时选择寄存器和时钟缓冲选择寄存器的取值范围根据寄存器的位数来确定,比如:数据延时选择寄存器为5位寄存器时,其取值范围为0-31,时钟缓冲选择寄存器为3位寄存器时,其取值范围为0-7。这里,延时系数可为数据延时选择寄存器的值和时钟缓冲选择寄存器的值分别加1后相乘得到的值,以数据延时选择寄存器为5位寄存器且时钟缓冲选择寄存器为3位寄存器为例,对于某一路输入数据,该路对应的时钟缓冲选择寄存器的值为6,数据延时选择寄存器为1,时钟缓冲器的延时精度为50ps时,则该路输入数据的延时缓冲大小为(6+1)*(1+1)*50ps为14*50ps。即对于该路接收的输入数据进行14*50ps的延时,将该路数据到达串行flash控制的时间延迟了14*50ps。

需要说明的是,对于时钟缓冲选择寄存器、数据延时选择寄存器等寄存器而言,寄存器的值从0开始,因此,实际上设置的寄存器的输出级数相对于寄存器的值大1,比如:对于位宽为3的寄存器,当寄存器的值为0时,表示该寄存器的输出级数为1。

这里,对于各寄存器的值的设置或调整,可由用户进行预先设置,具体的设置根据该路接收数据的延时大小和时钟缓冲器的延时精度来确定,根据数据的延时大小和时钟缓冲器的延时精度确定延时系数,进一步的确定时钟缓冲选择寄存器的值和数据延时选择寄存器的值,比如:当延时系数为14时,可设置时钟缓冲选择寄存器的值为6,数据延时选择寄存器为1,则延时系数为(6+1)*(1+1)。通过时钟缓冲选择寄存器和数据延时选择寄存器的值的修改来控制该路输入数据在到达串行flash控制器之前的延时缓冲大小。

在实际应用中,当串行flash控制器为单线传输模式时,则可不进行延时缓冲的调整。

s102、根据所述采样延时时间调整采样开始时刻进行采样以接收所述输入数据;其中,所述采样开始时刻为以所述第二工作时钟信号为采样信号开始对所述flash芯片发送的输入数据进行采样的时刻。

当确定了延时时间后,对串行flash控制器的对输入数据开始进行采样的时刻进行调整,从采样开始时刻对输入数据进行采样,从而接收flash芯片发送的数据。

其中,确定的延时时间包括flash芯片在输出数据时存在的延时,还包括在通过flash芯片与串行flash控制器之间的连线传输数据时存在的延时;输入数据的延时大小也可包括flash芯片输出延时、连线、pad和延时缓冲。

在本发明实施例中,对串行flash控制器接收数据的采样开始时刻进行了调整。flash芯片的输入数据在到达串行flash控制器时,存在一定的延时大小,通过对采样开始时刻的调整,使得串行flash控制器在接收输入数据时,将延时考虑进去,得到稳定的输入数据,避免了开始采样数据时所采样的目标数据还未达到串行flash控制器的情况发生。并且由于第二工作时钟信号的频率大于第一工作时钟信号的频率,使得每一路输入数据的时序发生变化时,通过对采样开始时刻的调整,使得在采样的时候采样得到的数据为有效的输入数据。

在本发明实施例中,(1)取消串行flash控制器串行输入时钟信号,使用工作时钟采样输入数据;(2)对于多线模式,对于每一路输入数据,在串行flash控制器的串行数据输入端口和flash芯片数据输出端口之间增加延时缓冲;(3)设置延时时钟周期数,控制串行flash控制器采样输入数据的时刻。

通过以上技术手段的采用,相对于现有的串行flash控制器接收数据的技术方案,不仅提高了传输数据的速率,加快了串行flash控制器和flash芯片之间的数据传输速度,还解决数据经过pad和连线等延迟到达flash控制器而过早采样数据的问题,从而正确采样flash芯片输出的数据,并能够分别设置每一路输入数据的延时大小,使得flash芯片输出的数据同时到达串行flash控制器。

实施例二

在本发明实施例中,以qspi为例对本发明实施例提供的基于串行flash控制器接收数据的方法进行说明,qspi是spi接口的扩展,作为一种串行flash控制器,其支持norflash操作和nandflash操作。在本实施例中,进行说明的时钟缓冲选择寄存器的位宽为3位,可以表示为clkbufsel[2:0],数据延时选择寄存器的位宽为5位,可以表示为datdlysel[4:0],采样选择寄存器的位宽为3位,可以表示为samplesel[2:0]。

如图2所示,由8个时钟缓冲器clkbuf串联成一个clkbuf链,设置clkbufsel寄存器,选择从8级延时缓冲选择寄存器的哪一级输出,延时范围为1-8个时钟缓冲。

如图3所示,由32个qspi_clkbuf单元串联成一个链路,设置datdlysel寄存器,选择从32级qspi_clkbuf选择单元的哪一级qspi_clkbuf输出,范围为1-32级。这里,对于每一级qspi_clkbuf单元的值由clkbufsel寄存器决定,其取值范围为0-7。

延时系数的计算公式为(datdlysel+1)*(clkbufsel+1),通过配置clkbufsel寄存器和datdlysel寄存器,每一路输入数据的延时范围为1-256个时钟缓冲。当每个时钟缓冲器clkbuf的延时精度为50ps,qspi_clkbuf的延时最大值为8*50ps,qspi_rxdatdly的延时最大值为8*50*32=12800ps。

通过设置clkbufsel寄存器和datdlysel寄存器,调整qspi每一路输入数据的延时大小,克服flash芯片输出数据不能同时到达qspi的问题。假设clkbufsel的值为3`b001,datdlysel的值为5`b00111,其中,3`b001表示位宽为3值为1的二进制数值,5`b00111表示位宽为5值为7的二进制数值。根据延时数值计算公式,则qspi的某一路输入数据会增加(1+1)*(7+1)*50ps即16*50ps的延时。

这里,对于单线传输模式,不需要配置clkbufsel寄存器和datdlysel寄存器。

flash芯片输出的数据送入qspi经过延时调整后,qspi使用工作时钟采样数据,samplesel寄存器控制延时采样开始的时刻,延时范围为0-7工作时钟周期。假设qspi的工作时钟频率为100mhz,时钟周期为10ns,串行输出时钟频率为50mhz,flash芯片输出数据大约需要8ns,数据经过连线等传输到qspi大约需要5ns,延迟总共约为13ns,则samplesel设置为3`b010才能采样到稳定的输入数据。

这里,输入数据的延时大小为13ns,qspi的工作时钟的时钟周期为10ns,则在第一个周期10ns内未接收到输入数据,在第二个周期的第3ns时接收到数据,因此,将samplesel设置为2,进行2个采样周期的延时,在第三个采样周期的开始时刻开始进行采样。

实施例三

为实现上述,本发明实施例还提供一种基于串行flash控制器接收数据的装置,如图4所示,所述装置包括:采样延时单元401、采样选择单元402和采样单元403,其中,

采样延时单元401,用于当串行flash控制器接收到闪存flash芯片发送的输入数据时,获取采样选择单元402的值,根据所述采样选择单元的值和第二工作时钟信号确定采样延时时间;所述第二工作时钟信号为串行flash控制器的工作时钟信号;

采样单元403,用于根据所述采样延时时间调整采样开始时刻进行采样以接收所述输入数据;其中,所述采样开始时刻为以所述第二工作时钟信号为采样信号开始对所述flash芯片发送的输入数据进行采样的时刻。

如图5所示,所述装置还包括:发送单元404,用于发送预设的第一工作时钟信号至闪存flash芯片;其中,所述第二工作时钟信号的频率大于所述第一工作时钟信号的频率。

在本发明实施例中,如图5所示,所述装置还包括:延时采样参数配置单元405,用于:

根据所述第二工作时钟信号和所述输入数据的延时大小确定采样延时周期系数;根据所述采样延时周期系数调整所述采样选择单元402的值。

如图5所示,所述装置还包括:延时缓冲单元406、时钟缓冲单元407、时钟缓冲选择单元408和数据延时选择单元409;延时缓冲单元406用于:当以多路传输模式从所述flash芯片接收输入数据时,获取采样选择寄存器的值之前,对于每一路输入数据,获取时钟缓冲选择单元408的值、数据延时选择单元409的值;根据时钟缓冲选择单元408的值、数据延时选择单元409的值和时钟缓冲单元407的延时精度确定输入数据的延时缓冲大小;根据所述延时缓冲大小调整输入数据的达到时间。

在本实施例中,如图5所示,所述装置还包括:延时缓冲参数配置单元410,用于:

对于每一路数据,根据输入数据的延时大小和时钟缓冲单元407的延时精度确定延时系数;根据所述延时系数确定所述时钟缓冲选择单元408的值和数据延时单元409的值。

在实际应用中,时钟缓冲单元407可由时钟缓冲器实现,采样选择单元402、时钟缓冲选择单元408和数据延时选择单元409可分别通过一寄存器实现,分别对应为实施例一中的采样选择寄存器、时钟缓冲选择寄存器和数据延时选择寄存器,这里,可将采样选择寄存器、时钟缓冲选择寄存器和数据延时选择寄存器组成一寄存器单元,在该寄存器单元中设置采样选择寄存器、时钟缓冲选择寄存器和数据延时选择寄存器。延时采样参数配置单元405和延时缓冲参数配置单元406可为通过处理器实现配置的同一功能单元。

实施例四

在本发明实施例中,以四线传输模式的qspi为例,说明增加延时缓冲单元的基于串行flash控制器接收数据的装置。

如图6所示,qspi和flash芯片之间的四路数据输入传输线,分别为dat_in1、dat_in2、dat_in3、dat_in4,这四路输入数据传输线分别通过对应的数据接收延时选择单元进行延时缓冲,即qspi_rxdatdly1、qspi_rxdatdly2、qspi_rxdatdly3、qspi_rxdatdly4,其中,由qspi_rxdatdly1、qspi_rxdatdly2、qspi_rxdatdly3、qspi_rxdatdly4构成了qspi延时缓冲选择单元qspi_rxdatdly。

如图6所示,flash芯片输出的数据经过qspi_rxdatdly延时缓冲单元输入qspi的控制逻辑单元controllogic,时钟缓冲选择寄存器clkbufsel、数据延时选择寄存器datdlysel和采样选择寄存器samplesel位于寄存器单元regunit,软件可通过apb接口实现寄存器的配置。寄存器单元regunit和控制逻辑单元controllogic的时钟不同,寄存器值经过同步单元syncunit后传入控制逻辑单元中。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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