一种数据采样方法和芯片与流程

文档序号:14897193发布日期:2018-07-08 08:33阅读:589来源:国知局

本发明涉及电子技术,尤其涉及一种数据采样方法和芯片。



背景技术:

串行外设接口(serialperipheralinterface,spi)是一种高速的、全双工、同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为pcb的布局上节省空间,提供方便。由于spi具有简单易用的特性,越来越多的芯片集成了这种通信协议。随着spiflash越来越广泛的应用,速度越来越高,原有的芯片的设计已经无法满足高速采样数据的需求,需要增加对高速的支持,这是由于spiflash颗粒只有输入时钟,没有输出时钟,输出的数据送给控制器采样,控制器通过内部的时钟采样,因为不同的flash厂家输出延时不一样,pcb板级引入延时,可能还有桥接芯片引入更大延时,会降低芯片中控制器进行数据采样的稳定性。图1为芯片与spiflash颗粒的时钟、数据路径延时示意图,如图1所示,芯片与spiflash颗粒的数据路径延时主要包括:芯片时钟输出延时、pcb时钟走线延时、颗粒时钟输入延时、颗粒数据输出延时、pcb数据走线延时、芯片输入延时。现有的解决方案主要有以下两种:

(1)在芯片外部增加环路时钟输入,从而补偿芯片内部输出延时和输入延时。

(2)在芯片内部增加高频时钟去采样。

在实现本发明的过程中,发明人发现现有技术中至少存在如下问题:

(1)在芯片外部增加环路时钟仅仅能补偿芯片内部输出延时和输入延时,但是不能补偿pcb延时和外接电平转换芯片延时,另一方面,每个flash厂家颗粒延时范围都不一致,因此也无法进行准确补偿。

(2)在芯片内部增加高频时钟,通过高频时钟的不同周期去采样。但是,高频时钟给时钟树带来麻烦,使采样操作变得繁琐。



技术实现要素:

本发明实施例提供一种数据采样方法和芯片,可以根据当前时钟信号获取采样时钟信号,然后通过采样时钟信号对spi数据进行采样,从而获得采样数据。满足对不同速率的spi数据进行采样的需求,实现数据的稳定采样,具有兼容性强,软件可控的特点。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种数据采样方法和芯片,包括:

本发明实施例提供了一种芯片,所述芯片包括:控制器及与所述控制器连接的串行外设接口spi,所述控制器包括:时钟产生模块、输入输出模块、配置获取模块、时钟延时模块以及采样模块,所述输入输出模块与所述spi连接,其中,

所述时钟产生模块,用于获取当前时钟信号,根据所述当前时钟信号生成输出时钟信号,输出所述输出时钟信号至所述输入输出模块;

所述输入输出模块,用于将所述输出时钟信号通过所述spi输出至spiflash颗粒,以及将所述输出时钟信号输出至所述时钟延时模块;

所述配置获取模块,用于获取配置参数和延时使能信号,将所述配置参数和所述延时使能信号输出至所述时钟延时模块;

所述时钟延时模块,用于根据所述延时使能信号、所述输出时钟信号和所述配置参数,生成采样时钟信号,将所述采样时钟信号输出至所述采样模块;

所述采样模块,用于通过所述spi接收spi数据,根据所述采样时钟信号对所述spi数据进行采样。

进一步地,所述配置获取模块,具体用于配置延时线级数m、延时单元级数n和所述延时使能信号,将所述延时线级数m、所述延时单元级数n以及所述延时使能信号输出至所述时钟延时模块;其中,m和n均为大于等于1的自然数。

进一步地,所述时钟延时模块包括:第一选择模块、第二选择模块和延时模块;其中,

所述时钟延时模块,具体用于根据所述延时线级数m配置所述第二选择模块的级数,以及所述延时模块的级数;

所述第一选择模块的第一输入端与所述输入输出模块连接,所述第一选择模块的第二输入端与所述第二选择模块连接,所述第一选择模块的第三输入端与所述配置获取模块连接,所述第一选择模块的输出端与所述采样模块连接;

所述第二选择模块由m级第一选择子模块构成;其中,第k级中有2m-k个第一选择子模块;其中,k为大于等于1且小于等于m的自然数;

所述延时模块由2m级延时子模块构成。

进一步地,所述时钟延时模块具体包括:

如果m等于1,所述第二选择模块中的第一选择子模块的第一输入端与第1级延时子模块连接;所述第一选择子模块的第二输入端与第2级延时子模块连接;所述第一选择子模块的输出端与所述第一选择模块连接。

进一步地,所述时钟延时模块具体包括:

如果m大于1,对于所述第二选择模块中的第k级第一选择子模块:

当k等于1时,第一级中的第i个第一选择子模块的第一输入端与所述2m级延时子模块中的第2i-1级延时子模块连接;所述第i个第一选择子模块的第二输入端与所述2m级延时子模块中的第2i级延时子模块连接;当i为偶数时,所述第i个第一选择子模块的输出端与第2级的第i/2个第一选择子模块连接,或者当i为奇数时,所述第i个第一选择子模块的输出端与第2级的第(i+1)/2个第一选择子模块连接;其中,i为大于等于1且小于等于2m的自然数;

当k大于1且小于m时,第k级中的第j个第一选择子模块的第一输入端与第k-1级中的第2j-1个第一选择子模块连接;所述第j个第一选择子模块的第二输入端与第k-1级中的第2j个第一选择子模块连接;当j为偶数时,所述第j个第一选择子模块的输出端与第k+1级中的第j/2个第一选择子模块连接,或者当j为奇数时,所述第j个第一选择子模块的输出端与第k+1级的第(j+1)/2个第一选择子模块连接;其中j为大于等于1且小于等于2m-k的自然数;

当k等于m时,第m级中的第一选择子模块的第一输入端与第m-1级中的第一个第一选择子模块连接;所述第一选择子模块的第二输入端与第m-1级中的第二个第一选择子模块连接;所述第一选择子模块的输出端与所述第一选择模块连接。

进一步地,所述延时子模块包括:第三选择模块和寄存模块;其中,

所述时钟延时模块,具体用于根据所述延时单元级数n配置所述第三选择模块的级数,以及所述寄存模块的级数;

所述第三选择模块由n级第二选择子模块构成;其中,第h级中有2m-h个第二选择子模块;其中,h为大于等于1且小于等于n的自然数;

所述寄存模块由2n级寄存子模块构成。

进一步地,如果n等于1,所述第三选择模块中的第二选择子模块的第一输入端与第一级寄存子模块连接;所述第二选择子模块的第二输入端与第二级寄存子模块连接;所述第二选择子模块的输出端与所述第二选择模块连接;

进一步地,如果n大于1,对于所述第三选择模块中的第h级第二选择子模块:

当h等于1时,所述第一级中的第p个第二选择子模块的第一输入端与所述2n级寄存子模块中的第2p-1级寄存子模块连接;所述第p个第二选择子模块的第二输入端与所述2n级寄存子模块中的第2p级寄存子模块连接;当p为偶数时,所述第p个第二选择子模块的输出端与第二级的第p/2个第二选择模块,或者当p为奇数时,所述第p个第二选择子模块的输出端与第二级的第(p+1)/2个第二选择子模块连接;其中,p为大于等于1且小于等于2n的自然数;

当h大于1且小于n时,第h级中的第q个第二选择子模块的第一输入端与第h-1级中的第2q-1个第二选择子模块连接;所述第q个第二选择子模块的第二输入端与第h-1级中的第2q个第二选择子模块连接;当q为偶数时,所述第q个第二选择子模块的输出端与第h+1级中的第q/2个第二选择子模块,或者当q为奇数时,所述第q个第二选择子模块的输出端与第h+1级中的第(q+1)/2个第二选择子模块连接;其中,q为大于等于1且小于等于2n-h的自然数;

当h等于n时,第n级中的第二选择子模块的第一输入端与第n-1级中的第一个第二选择子模块连接;所述第二选择子模块的第二输入端与第n-1级中的第二个第二选择子模块连接;所述第二选择子模块的输出端与所述第二选择模块连接。

进一步地,所述第一选择子模块和第二选择子模块为选择器;

所述寄存子模块为寄存器。

本发明实施例提供了一种数据采样方法,所述方法包括:

获取当前时钟信号,根据所述当前时钟信号生成输出时钟信号;

获取配置参数和延时使能信号,根据所述延时使能信号、所述输出时钟信号和所述配置参数,生成采样时钟信号;

接收spi数据,通过所述采样时钟信号对所述spi数据进行采样。

进一步地,所述配置参数包括延时线级数m、延时单元级数n;其中,m和n均为大于等于1的自然数。

进一步地,所述接收spi数据之前,所述方法还包括:

获取预设校验数据,通过所述采样时钟信号对所述预设校验数据进行采样,获得校验采样数据;

根据所述采样数据和所述校验采样数据判断所述配置参数是否满足预设规则,如果所述配置参数满足所述预设规则,则对所述spi数据进行采样。

进一步地,所述根据所述采样数据和所述校验采样数据判断所述配置参数是否满足预设规则,还包括:

如果所述配置参数不满足所述预设规则,则对所述配置参数进行调整,直到调整后的配置参数满足所述预设规则。

进一步地,所述对所述配置参数进行调整,包括:

根据预设方法对所述延时线级数m和所述延时单元级数n进行调整。

进一步地,所述获得采样数据之后,所述方法还包括:

将所述采样数据输出至寄存器;

当获取读取请求时,将所述采样数据按照预设时钟域进行读取,获得更新的采样数据;

使用所述更新的采样数据。

由此可见,在本发明实施例的技术方案中,获取当前时钟信号,根据当前时钟信号生成输出时钟信号;获取配置参数和延时使能信号,根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号;接收spi数据,通过采样时钟信号对spi数据进行采样,获得采样数据。也就是说,在本发明提出的技术方案中,可以根据当前时钟信号获取采样时钟信号,然后通过采样时钟信号对spi数据进行采样,从而获得采样数据。显然,和现有技术相比,本发明实施例提出的一种数据采样方法和芯片,能够满足对不同速率的spi数据进行采样的需求,实现数据的稳定采样,具有兼容性强,软件可控的特点。

附图说明

图1为芯片与spiflash颗粒的时钟、数据路径延时示意图;

图2为本发明实施例中本发明实施例中芯片的第一组成结构示意图;

图3为本发明实施例中芯片时钟信号传输示意图;

图4为本发明实施例中芯片的第二组成结构示意图;

图5为本发明实施例中时钟延时模块的第一连接结构示意图

图6为本发明实施例中时钟延时模块的第二连接结构示意图;

图7为本发明实施例中芯片的第三组成结构示意图;

图8为本发明实施例中延时子模块的第一连接结构示意图;

图9为本发明实施例中数据采样方法的实现流程示意图;

图10为本发明实施例中校验配置参数方法的实现流程示意图;

图11为本发明实施例中采样时钟信号延时示意图。

具体实施方式

下面结合附图对本发明实施例提供的一种数据采样方法和芯片进行详细地描述。

实施例一

本发明实施例公开了一种芯片1,图2为本发明实施例中芯片的第一组成结构示意图,如图2所示,芯片1包括:控制器10及与控制器10连接的spi11,其中,上述控制器10可以通过单根数据线、双根数据线以及四根数据线中的任意一种产生输出时钟。

在本发明的具体实施例中,控制器10包括:时钟产生模块100、输入输出模块101、配置获取模块102、时钟延时模块103以及采样模块104,其中,输入输出模块101与spi11连接。

时钟产生模块100,用于获取当前时钟信号,根据当前时钟信号生成输出时钟信号,输出上述输出时钟信号至输入输出模块101。

在本发明的具体实施例中,时钟产生模块100可以获取当前工作时钟域的当前时钟信号,然后根据当前时钟信号生成输出时钟信号,将上述输出时钟信号至输入输出模块101。

进一步地,在本发明的具体实施例中,由于当前工作时钟域的频率为输出时钟信号的两倍,时钟产生模块100需要对获取的当前时钟信号进行转换,获得输出时钟信号。

进一步地,在本发明的具体实施例中,时钟产生模块100可以通过单根数据线、双根数据线以及四根数据线中的任意一种将上述输出时钟信号输出至输入输出模块101。

进一步地,在本发明的具体实施例中,时钟产生模块100在将上述输出时钟信号至输入输出模块101的同时,还向输入输出模块101输出预设使能信号,该预设使能信号用于控制输入输出模块101是否对上述输出时钟信号进行输出。

输入输出模块101,用于将输出时钟信号通过spi11输出至spiflash颗粒,以及将输出时钟信号输出至时钟延时模块103。

在本发明的具体实施例中,输入输出模块101接收到时钟产生模块100发送的输出时钟信号后,可以将该输出时钟信号同时输出至spiflash颗粒以及时钟延时模块103。其中,输入输出模块101通过spi11将输出时钟信号进行输出。

进一步地,在本发明的具体实施例中,输入输出模块101接收到时钟产生模块100发送的输出时钟信号的同时,输入输出模块101还接收到时钟产生模块100发送的预设使能信号,该预设使能信号用于控制输入输出模块101是否对上述输出时钟信号进行输出。

进一步地,在本发明的具体实施例中,当预设使能信号对应的为预设的开启信号时,输入输出模块101将该输出时钟信号同时输出至spiflash颗粒以及时钟延时模块103;当预设使能信号对应的为预设的关闭信号时,输入输出模块101将不对该输出时钟信号进行输出。

配置获取模块102,用于获取配置参数和延时使能信号,将配置参数和延时使能信号输出至时钟延时模块103。

在本发明的具体实施例中,配置获取模块102获取配置参数和延时使能信号之后,将配置参数和延时使能信号输出至时钟延时模块103。其中,配置参数和延时使能信号可以预先存储在芯片中的寄存器中,然后由寄存器发送给配置获取模块102。

进一步地,在本发明的具体实施例中,配置获取模块102具体用于配置配置参数和延时使能信号,将配置参数和延时使能信号输出至时钟延时模块103。其中,配置参数包括:延时线级数m、延时单元级数n;其中,m和n均为大于等于1的自然数。

进一步地,在本发明的具体实施例中,配置参数用于配置时钟延时模块103的组成结构,延时使能信号用于控制时钟延时模块103是否输出采样时钟信号。

时钟延时模块103,用于根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号,将采样时钟信号输出至采样模块104。

在本发明的具体实施例中,时钟延时模块103在接收到由输入输出模块101发送的输出时钟信号、由配置获取模块102发送的配置参数和延时使能信号之后,根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号,将采样时钟信号输出至采样模块104。

采样模块104,用于通过spi11接收spi数据,根据采样时钟信号对spi数据进行采样。

在本发明的具体实施例中,采样模块104在获取由时钟延时模块103发送的采样时钟信号以后,可以通过spi11接收spi数据,然后根据采样时钟信号对spi数据进行采样,最终得到采样数据。

图3为本发明实施例中芯片时钟信号传输示意图,如图3所示,时钟产生模块100获取当前时钟信号wclk,生成输出时钟信号spi_clk_o以及预设使能信号spi_clk_oe,输出上述输出时钟信号以及预设使能信号至输入输出模块101;输入输出模块101将输出时钟信号spi_clk_o作为通讯同步时钟信号spi_clk通过spi11输出至spiflash颗粒,以及将输出时钟信号spi_clk_o作为输入时钟信号clk_in输出至时钟延时模块103;时钟延时模块103在接收到由输入输出模块101发送的输出时钟信号、由配置获取模块102发送的配置参数m、n和延时使能信号tapdly_en之后,根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号clk_sample,将采样时钟信号输出至采样模块104;采样模块104可以通过spi11接收spi数据spi_dat,然后根据采样时钟信号对spi数据进行采样,最终得到采样数据,将采样数据输出至先入先出队列fifo。

实施例二

图4为本发明实施例中芯片的第二组成结构示意图,如图4所示,时钟延时模块103包括第一选择模块1030、第二选择模块1031以及延时模块1032,其中,第二选择模块1031包括第一选择子模块10310,延时模块1032包括延时子模块10320。

在本发明的具体实施例中,时钟延时模块103具体用于根据上述延时线级数m配置第二选择模块1031的级数,同时根据上述延时线级数m配置延时模块1032的级数。例如,当延时线级数m为3时,时钟延时模块103配置第二选择模块1031的级数为3,同时配置延时模块1032的级数也为3。

进一步地,在本发明的具体实施例中,第二选择模块1031由m级第一选择子模块10310构成;其中,第k级中有2m-k个第一选择子模块10310;其中,k为大于等于1且小于等于m的自然数;延时模块1032由2m级延时子模块10320构成。

图5为本发明实施例中时钟延时模块的第一连接结构示意图,如图5所示,第一选择模块1030的第一输入端与输入输出模块101连接,第一选择模块1030的第二输入端与第二选择模块1031连接,第一选择模块1030的第三输入端与配置获取模块102连接,第一选择模块1030的输出端与采样模块连接104。

在本发明的具体实施例中,第一选择模块1030获取由输入输出模块101发送的输出时钟信号,且第一选择模块1030获取由第二选择模块1031发送的采样时钟信号,同时,第一选择模块1030获取由配置获取模块102发送的延时使能信号,第一选择模块1030根据延时使能信号选择输出上述输出时钟信号,或者,输出上述采样时钟信号。

进一步地,在本发明的具体实时例中,配置获取模块102发送的延时使能信号用于控制第一选择模块1030的输出,较佳地,延时使能信号是根据输出时钟信号的速率配置的。

进一步地,在本发明的具体实施例中,当输出时钟信号的速率大于预设阈值时,可以将延时使能信号置为1,表示控制第一选择模块1030输出采样时钟信号;当输出时钟信号的速率小于预设阈值时,可以将延时使能信号置为0,表示控制第一选择模块1030输出时钟信号。

图6为本发明实施例中时钟延时模块的第二连接结构示意图。

如图6所示,当m等于1,即第二选择模块1031由1级第一选择子模块10310构成,延时模块1032由2级延时子模块10320构成。第二选择模块1031中的第一选择子模块10310的第一输入端与第一级延时子模块10320连接;第一选择子模块10310的第二输入端与第二级延时子模块10320连接;第一选择子模块10310的输出端与第一选择模块1030连接。

如上述图6所示,当m大于1,即第二选择模块1031由m级第一选择子模块10310构成,延时模块1032由2m级延时子模块10320构成。

在本发明的具体实施例中,对于第二选择模块1031中的第k级第一选择子模块10310:

当k等于1时,第1级中的第i个第一选择子模块10310的第一输入端与2m级延时子模块10320中的第2i-1级延时子模块10320连接;第i个第一选择子模块10310的第二输入端与2m级延时子模块10320中的第2i级延时子模块10320连接;当i为偶数时,第i个第一选择子模块10310的输出端与第2级的第i/2个第一选择子模块10310连接,或者当i为奇数时,第i个第一选择子模块10310的输出端与第2级的第(i+1)/2个第一选择子模块10310连接;其中,i为大于等于1且小于等于2m的自然数;当k大于1且小于m时,第k级中的第j个第一选择子模块10310的第一输入端与第k-1级中的第2j-1个第一选择子模块10310连接;第j个第一选择子模块10310的第二输入端与第k-1级中的第2j个第一选择子模块10310连接;当j为偶数时,第j个第一选择子模块10310的输出端与第k+1级中的第j/2个第一选择子模块10310连接,或者当j为奇数时,第j个第一选择子模块10310的输出端与第k+1级的第(j+1)/2个第一选择子模块10310连接;其中j为大于等于1且小于等于2m-k的自然数;当k等于m时,第m级中的第一选择子模块10310的第一输入端与第m-1级中的第一个第一选择子模块10310连接;第一选择子模块10310的第二输入端与第m-1级中的第二个第一选择子模块10310连接;第一选择子模块10310的输出端与第一选择模块1030连接。

在本发明的具体实施例中,基于上述图6的钟延时模块的第三连接结构示意图,例如,当m=3,i=1,j=2时,第一级中的第一个第一选择子模块10310的第一输入端与8级延时子模块10320中的第一级延时子模块10320连接;第一个第一选择子模块10310的第二输入端与8级延时子模块10320中的第二级延时子模块10320连接;第一个第一选择子模块10310的输出端与第2级的第二个第一选择子模块10310连接;第二级中的第二个第一选择子模块10310的第一输入端与第一级中的第三个第一选择子模块10310连接;第二个第一选择子模块10310的第二输入端与第一级中的第四个第一选择子模块10310连接;第二个第一选择子模块10310的输出端与第三级的第一个第一选择子模块10310连接;第三级中的第一选择子模块10310的第一输入端与第二级中的第一个第一选择子模块10310连接;第一选择子模块10310的第二输入端与第二级中的第二个第一选择子模块10310连接;第一选择子模块10310的输出端与第一选择模块1030连接。

实施例三

图7为本发明实施例中芯片的第三组成结构示意图,如图7所示,延时子模块10320包括第三选择模块103200和寄存模块103201,其中,第三选择模块103200包括第二选择子模块1032000,寄存模块103201包括寄存子模块1032010。

在本发明的具体实施例中,时钟延时模块103具体用于根据上述延时单元级数n配置第三选择模块103200的级数,同时根据上述延时单元级数n配置寄存模块103201的级数。例如,当延时单元级数n为3时,时钟延时模块103配置第三选择模块103200的级数为3,同时配置寄存模块103201的级数也为3。

进一步地,在本发明的具体实施例中,第三选择模块103200由n级第二选择子模块1032000构成;其中,第k级中有2n-k个第二选择子模块1032000;其中,k为大于等于1且小于等于m的自然数;寄存模块103201由2n级寄存子模块1032010构成。

图8为本发明实施例中延时子模块的第一连接结构示意图。

如图8所示,当n等于1,即第三选择模块103200由1级第二选择子模块1032000构成,寄存模块103201由2级寄存子模块1032010构成。第三选择模块103200中的第二选择子模块1032000的第一输入端与第一级寄存子模块1032010连接;第二选择子模块1032000的第二输入端与第二级寄存子模块1032010连接;第二选择子模块1032000的输出端与第二选择模块1031连接;

如上述图8所示,当n大于1,即第三选择模块103200由n级第二选择子模块1032000构成,寄存模块103201由2n级寄存子模块1032010构成。

在本发明的具体实施例中,对于第三选择模块103200中的第h级第二选择子模块1032000:

当h等于1时,第一级中的第p个第二选择子模块1032000的第一输入端与2n级寄存子模块1032010中的第2p-1级寄存子模块1032010连接;第p个第二选择子模块1032000的第二输入端与2n级寄存子模块1032010中的第2p级寄存子模块1032010连接;当p为偶数时,第p个第二选择子模块1032000的输出端与第2级的第p/2个第二选择模块1032000连接,或者当p为奇数时,第p个第二选择子模块1032000的输出端与第2级的第(p+1)/2个第二选择子模块1032000连接;其中,p为大于等于1且小于等于2n的自然数;当h大于1且小于n时,第h级中的第q个第二选择子模块1032000的第一输入端与第h-1级中的第2q-1个第二选择子模块1032000连接;第q个第二选择子模块1032000的第二输入端与第h-1级中的第2q个第二选择子模块1032000连接;当q为偶数时,所述第q个第二选择子模块1032000的输出端与第h+1级中的第q/2个第二选择子模块1032000连接,或者当q为奇数时,所述第q个第二选择子模块1032000的输出端与第h+1级中的第(q+1)/2个第二选择子模块1032000连接;其中,q为大于等于1且小于等于2n-h的自然数;当h等于n时,第n级中的第二选择子模块1032000的第一输入端与第n-1级中的第一个第二选择子模块1032000连接;第二选择子模块1032000的第二输入端与第n-1级中的第二个第二选择子模块1032000连接;第二选择子模块1032000的输出端与第二选择模块1031连接。

在本发明的具体实施例中,基于上述图8的延时子模块的第一连接结构示意图,例如,当n=3,p=1,q=2时,第一级中的第一个第二选择子模块1032000的第一输入端与8级寄存子模块1032010中的第一级寄存子模块1032010连接;第一个第二选择子模块1032000的第二输入端与8级寄存子模块1032010中的第二级寄存子模块1032010连接;第一个第二选择子模块1032000的输出端与第二级的第一个第二选择子模块1032000连接;第二级中的第二个第二选择子模块1032000的第一输入端与第一级中的第三个第二选择子模块1032000连接;第二个第二选择子模块1032000的第二输入端与第一级中的第四个第二选择子模块1032000连接;第二个第二选择子模块1032000的输出端与第三级中的第一个第二选择子模块1032000连接;第三级中的第二选择子模块1032000的第一输入端与第二级中的第一个第二选择子模块1032000连接;第二选择子模块1032000的第二输入端与第二级中的第二个第二选择子模块1032000连接;第二选择子模块1032000的输出端与第二选择模块1031连接。

在本发明的具体实施例中,进一步地,第一选择子模块10310和第二选择子模块1032000可以为选择器,寄存子模块1032010可以为寄存器。

本发明实施例提出的芯片,上述芯片包括:控制器及与控制器连接的spi,其中,所述控制器包括:时钟产生模块、输入输出模块、配置获取模块、时钟延时模块以及采样模块,输入输出模块与spi连接。其中,时钟产生模块用于获取当前时钟信号,根据当前时钟信号生成输出时钟信号,输出上述输出时钟信号至输入输出模块;输入输出模块将输出时钟信号通过spi输出至spiflash颗粒,以及将输出时钟信号输出至时钟延时模块;配置获取模块获取配置参数和延时使能信号,将配置参数和延时使能信号输出至时钟延时模块;时钟延时模块根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号,将采样时钟信号输出至采样模块;采样模块通过spi接收spi数据,根据采样时钟信号对spi数据进行采样。在本发明提出的技术方案中,可以根据当前时钟信号获取采样时钟信号,然后通过采样时钟信号对spi数据进行采样,从而获得采样数据。显然,和现有技术相比,本发明实施例提出的一种数据采样方法和芯片,能够满足对不同速率的spi数据进行采样的需求,实现数据的稳定采样,具有兼容性强,软件可控的特点;并且,实现起来简单方便,便于普及,适用范围更广。

实施例四

图9为本发明实施例中数据采样方法的实现流程示意图,如图9所示,本发明具体实施例中,数据采样的方法具体包括以下步骤:

步骤101、获取当前时钟信号,根据所述当前时钟信号生成输出时钟信号。

在本发明的具体实施例中,控制器可以获取当前工作时钟域的当前时钟信号,然后根据当前时钟信号生成输出时钟信号。

进一步地,在本发明的具体实施例中,由于当前工作时钟域的频率为输出时钟信号的两倍,控制器需要对获取的当前时钟信号进行转换,获得输出时钟信号。

进一步地,在本发明的具体实施例中,控制器可以通过单根数据线、双根数据线以及四根数据线中的任意一种将上述输出时钟信号输出。

进一步地,在本发明的具体实施例中,控制器生成上述输出时钟信号的同时,还生产预设使能信号,该预设使能信号用于控制是否对上述输出时钟信号进行输出。

进一步地,在本发明的具体实施例中,当预设使能信号对应的为预设的开启信号时,控制器输出该输出时钟信号;当预设使能信号对应的为预设的关闭信号时,控制器将不对该输出时钟信号进行输出。

步骤102、获取配置参数和延时使能信号,根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号。

在本发明的具体实施例中,控制器可以获取配置参数和延时使能信号,根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号。其中,配置参数和延时使能信号可以预先存储在芯片中的寄存器中,然后由寄存器发送给控制器。

进一步地,在本发明的具体实施例中,配置参数包括:延时线级数m、延时单元级数n;其中,m和n均为大于等于1的自然数。

进一步地,在本发明的具体实施例中,配置参数用于配置采样时钟信号的生成,延时使能信号用于控制采样时钟信号的输出。

步骤103、接收spi数据,通过采样时钟信号对spi数据进行采样,获得采样数据。

在本发明的具体实施例中,控制器在获取由时钟延时模块103发送的采样时钟信号以后,可以通过spi接收spi数据,然后根据采样时钟信号对spi数据进行采样,最终得到采样数据。

如上述图9所示,在获得采样数据之后,本发明具体实施例提出的数据采样方法还包括以下步骤:

步骤104、将所述采样数据输出至寄存器;

步骤105、当获取读取请求时,将采样数据按照预设时钟域进行读取,获得更新的采样数据;

步骤106、使用更新的采样数据。

在本发明的具体实施例中,控制器可以将对spi数据采样后得到的采样数据同步到预设时钟域中进行读取,从而获得更新的采样数据,最终可以对更新的采样数据进行下一级的处理和使用。

实施例五

图10为本发明实施例中校验配置参数方法的实现流程示意图,如图10所示,本发明具体实施例中,校验配置参数的方法具体包括以下步骤:

步骤201、获取预设校验数据,通过采样时钟信号对预设校验数据进行采样,获得校验采样数据。

在本发明的具体实施例中,控制器在接收spi数据之前,获取预设校验数据,通过采样时钟信号对预设校验数据进行采样,获得校验采样数据。

进一步地,在本发明的具体实施例中,控制器在对spi数据进行采样之前,需要对配置参数进行校验,从而确定上述配置参数是否可以配置满足采样需求的采样信号。其中,控制器对配置参数进行校验的方法可以为获取预设校验数据,通过采样时钟信号对预设校验数据进行采样,获得校验采样数据。

步骤202、根据采样数据和校验采样数据判断配置参数是否满足预设规则,如果配置参数满足预设规则,则对spi数据进行采样。

在本发明的具体实施例中,控制器在根据配置参数获得校验采样数据之后,可以根据采样数据和校验采样数据判断配置参数是否满足预设规则,如果配置参数满足预设规则,则对spi数据进行采样。

进一步地,在本发明的具体实施例中,控制器获取校验采样数据后,将校验采样数据与校验数据进行比对获取比对结果,控制器可以根据比对判断是否满足预设规则,如果满足,则可以认为上述配置参数符合数据采样的预设要求,便可以根据上述配置参数配置采样信号。

如上述图10所示,校验配置参数的方法还包括:

步骤203、如果配置参数不满足预设规则,则对配置参数进行调整,直到调整后的配置参数满足预设规则。

在本发明的具体实施例中,如果配置参数不满足预设规则,控制器则对配置参数进行调整,根据调整后的配置参数生成采样信号,然后重新对采样数据进行采样,直到调整后的配置参数满足预设规则。

进一步地,在本发明的具体实施例中,当校验采样数据与校验数据的比对结果不满足预设规则,控制器可以根据预设方法对配置参数进行调整,即控制器可以根据预设方法对延时线级数m和延时单元级数n进行调整。

图11为本发明实施例中采样时钟信号延时示意图,如图11所示,(a)中在不对采样时钟信号进行延时的情况下,采样时钟信号能满足采样的时序关系,在clk_sample上升沿时,刚好能采样到spi_datx(x可以为1,2或4比特)。由于(b)中的spi_datx比(a)的相位往后移动了,此时如果不对clk_in延时,clk_sample上升沿不可能对spi_datx有效采样,因此需要配置延时使能信号tapdly_en和配置参数m、n。(c)中的spi_datx比(b)的相位更往后移动,因此需要对clk_in延时更大。

本发明实施例提出的数据采样方法,获取当前时钟信号,根据当前时钟信号生成输出时钟信号;获取配置参数和延时使能信号,根据延时使能信号、输出时钟信号和配置参数,生成采样时钟信号;接收spi数据,通过采样时钟信号对spi数据进行采样,获得采样数据。也就是说,在本发明提出的技术方案中,可以根据当前时钟信号获取采样时钟信号,然后通过采样时钟信号对spi数据进行采样,从而获得采样数据。显然,和现有技术相比,本发明实施例提出的一种数据采样方法和芯片,能够满足对不同速率的spi数据进行采样的需求,实现数据的稳定采样,具有兼容性强,软件可控的特点;并且,实现起来简单方便,便于普及,适用范围更广。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

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

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

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

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

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