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

技术领域

本申请涉及电子技术领域,具体涉及一种调整采样相位的方法及串行闪存控制器。

背景技术

在利用串行闪存控制器通过串行外设接口(SPI,Serial Peripheral Interface)总线实现对外部串行闪存芯片的访问时,由于环境温度及工作电压的变化,微控制单元(MCU,Microcontroller Unit)芯片内部及串行闪存芯片内部的路径延迟变化明显。此外,SPI总线中不同信号线的印刷线路板(PCB,Printed Circuit Board)走线延迟也可能不一致。

SPI总线中的总线主输出/从输入(MOSI,Master Output/Slave Input)信号到达外部串行闪存芯片时,由于信号延迟的存在,难以在最佳采样位置被随路时钟采样,此外,总线主输入/从输出(MISO,Master Input/Slave Output)MISO信号在随路时钟的驱动下由外部串行闪存芯片发送回控制器时,也可能出现采样点错误的问题。

本申请的发明人在长期研发中发现,利用串行闪存控制器实现外部串行闪存芯片访问时,如果由于环境温度、工作电压变化或者PCB总线延迟不一致而出现SPI总线时序不满足的情况,常用做法是通过降低SPI总线的频率,以性能下降为条件换取功能的正确。通过降低SPI总线频率,即降低串行闪存的访问速度,虽然正常功能可以实现,但是牺牲了性能,可能不能满足一些应用的速度需求。

发明内容

本申请主要解决的问题是提供一种调整采样相位的方法及串行闪存控制器,能够调整随路时钟信号与第一数据信号的相位差,实现对第一数据信号的准确采样,实现数据信号的稳定传输。

为解决上述技术问题,本申请采用的另一技术方案是提供:一种串行闪存控制器,该串行闪存控制器包括处理通路,处理通路包括延迟电路,延迟电路包括:寄存器和调整延迟电路,寄存器用于接收相位差调整信号;调整延迟电路与寄存器连接,用于根据相位差调整信号对随路时钟信号或第一数据信号进行延迟,以使得随路时钟信号与第一数据信号的相位差在第一预设范围以内;其中,调整延迟电路包括多个串联的子延迟电路,每个子延迟电路对应的延迟时间为第一时间,随路时钟信号与第一数据信号之间的初始相位差为第二时间,相位差调整信号用于指示随路时钟信号或第一数据信号经过预设数量个子延迟电路,预设数量与第一时间以及第二时间相关联。

为解决上述技术问题,本申请采用的技术方案是提供:一种调整采样相位的方法,该方法应用于串行闪存控制器,串行闪存控制器包括处理通路,处理通路包括延迟电路,延迟电路包括寄存器以及与寄存器连接的调整延迟电路,该方法包括:寄存器接收相位差调整信号;调整延迟电路根据相位差调整信号对随路时钟信号或第一数据信号进行延迟,以使得经过延迟的随路时钟信号与第一数据信号的相位差在第一预设范围以内;其中,调整延迟电路包括多个串联的子延迟电路,每个子延迟电路对应的延迟时间为第一时间,随路时钟信号与第一数据信号之间的初始相位差为第二时间,相位差调整信号用于指示随路时钟信号或第一数据信号经过预设数量个子延迟电路,预设数量与第一时间以及第二时间相关联。

通过上述方案,本申请的有益效果是:利用寄存器接收相位差调整信号,调整延迟电路根据该相位差调整信号调整随路时钟信号或第一数据信号的延迟时间,从而使得随路时钟信号与第一数据信号的相位差在第一预设范围以内;能够调整随路时钟信号与第一数据信号的相位差,实现在随路时钟信号的有效边沿对第一数据信号进行准确地采样,从而实现数据信号的稳定传输。

附图说明

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

图1是本申请提供的串行闪存控制器一实施例的结构示意图;

图2是本申请提供的串行闪存控制器另一实施例的结构示意图;

图3是本申请提供的串行闪存控制器另一实施例中延迟电路的结构示意图;

图4是本申请提供的串行闪存控制器又一实施例的结构示意图;

图5是本申请提供的随路时钟信号与MOSI信号的时序示意图;

图6是本申请提供的第二时钟信号与MISO信号的时序示意图;

图7是本申请提供的调整采样相位的方法一实施例的流程示意图;

图8是本申请提供的调整采样相位的方法另一实施例的流程示意图。

具体实施方式

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

参阅图1,图1是本申请提供的串行闪存控制器一实施例的结构示意图,该串行闪存控制器包括处理通路10,处理通路10包括延迟电路11,延迟电路11包括:寄存器111与调整延迟电路112。

寄存器111用于接收相位差调整信号,该相位差调整信号用于指示随路时钟信号或第一数据信号经过预设数量个子延迟电路1121;该相位差调整信号可由操作人员输入的调整指令产生,操作人员经过测量获取随路时钟信号与第一数据信号之间的相位差,根据随路时钟信号和第一数据信号之间的相位差进行相关操作,使得寄存器111接收到相位差调整信号。

调整延迟电路112与寄存器111连接,其用于根据相位差调整信号对随路时钟信号或第一数据信号进行延迟,以使得随路时钟信号与第一数据信号的相位差在第一预设范围以内,该第一预设范围越小越好,可以为包括0°的相位差范围,比如0°~10°;具体地,当随路时钟信号滞后第一数据信号时,调整延迟电路112根据相位差调整信号对第一数据信号进行延迟,使得随路时钟信号与经过延迟的第一数据信号的相位差在第一预设范围以内;当第一数据信号滞后随路时钟信号时,调整延迟电路112根据相位差调整信号对随路时钟信号进行延迟,使得经过延迟的随路时钟信号与第一数据信号的相位差在第一预设范围以内。

调整延迟电路112包括多个串联的子延迟电路1121,每个子延迟电路1121对应的延迟时间为第一时间,随路时钟信号与第一数据信号之间的初始相位差为第二时间,预设数量与第一时间以及第二时间相关联;具体地,预设数量可为第二时间与第一时间的比值。

区别于现有技术,本实施例提供了一种串行闪存控制器,调整延迟电路112根据寄存器111获取到的相位差调整信号调整随路时钟信号或第一数据信号的延迟时间,将随路时钟信号与第一数据信号的相位差控制在第一预设范围以内;能够调整随路时钟信号与第一数据信号的相位差,实现在随路时钟信号的有效边沿对第一数据信号进行准确地采样,从而实现数据信号的稳定传输。

参阅图2,图2是本申请提供的串行闪存控制器另一实施例的结构示意图,该串行闪存控制器还包括:时钟源21,处理通路包括:第一通路22以及第二通路23,延迟电路包括第一延迟电路221和第二延迟电路231。

时钟源21用于产生标准时钟信号,此外,还可以利用高速时钟产生不同相位的时钟信号。

第一通路22与时钟源21连接,用于根据标准时钟信号生成随路时钟信号,并将随路时钟信号传输至外部设备(图中未示出),随路时钟信号为时钟信号被延迟第一预设延迟时间后的信号,第一预设延迟时间包括标准时钟信号传输至外部设备的时间。

进一步地,第一通路22包括:第一延迟电路221,第一延迟电路221与时钟源21连接,用于接收第一相位差调整信号,并根据第一相位差调整信号将随路时钟信号延迟第三预设延迟时间,其中,第三预设延迟时间为第二预设延迟时间与第一预设延迟时间的差值,第二预设延迟时间包括待发送数据信号传输至外部设备的时间。

第二通路23与时钟源21连接,用于根据待发送数据信号生成第一数据信号,并将第一数据信号发送至外部设备;第一数据信号与待发送数据信号包含的信息相同,第一数据信号为待发送数据信号被延迟第二预设延迟时间后的信号。

进一步地,第二通路23包括:第二延迟电路231和第一触发器232,第二延迟电路231用于接收第二相位差调整信号,并根据第二相位差调整信号将第一数据信号延迟第四预设延迟时间,第四预设延迟时间为第一预设延迟时间与第二预设延迟时间的差值。

第一触发器232分别与时钟源21以及第二延迟电路231连接,其用于根据第一时钟信号与待发送数据信号生成第一数据信号,其中,第一时钟信号为标准时钟信号被延迟第五预设延迟时间后的信号。

寄存器包括第一寄存器2211和第二寄存器2311,调整延迟电路包括第一调整延迟电路2212和第二调整延迟电路2312;第一延迟电路221包括第一寄存器2211和第一调整延迟电路2212,第一调整延迟电路2212包括多个串联的第一子延迟电路22121;第二延迟电路231包括第二寄存器2311和第二调整延迟电路2312,第二调整延迟电路2312包括多个串联的第二子延迟电路23121。

第一相位差调整信号用于指示随路时钟信号经过预设数量个第一子延迟电路22121,其中,预设数量为第三预设延迟时间与第一时间的比值;第二相位差调整信号用于指示第一数据信号经过预设数量个第二子延迟电路23121,其中,预设数量为第四预设延迟时间与第一时间的比值。

请继续参阅图2,串行闪存控制器还包括第三通路24,第三通路24与时钟源21连接,第三通路24包括互相连接的第三延迟电路241和第二触发器242。

第三延迟电路241分别与第二触发器242以及时钟源21连接,其包括互相连接的第三寄存器2411和第三调整延迟电路2412;第三寄存器2411用于接收第三相位差调整信号,第三调整延迟电路2412用于根据第三相位差调整信号对第二时钟信号进行延迟,以使得经过延迟的待接收数据信号与延迟后的第二时钟信号的相位差在第二预设范围以内;其中,第二预设范围可以与第一预设范围相同,第二时钟信号为将标准时钟信号延迟第六预设延迟时间后的信号。

第二触发器242用于接收外部设备发送的待接收数据信号,并根据延迟后的第二时钟信号和待接收数据信号生成第二数据信号。

进一步地,第三调整延迟电路2412包括多个串联的第三子延迟电路24121,第三相位差调整信号用于指示待接收数据信号经过预设数量个第三子延迟电路24121。

在一具体的实施例中,如图3所示,每个延迟电路还包括选择器,每个子延迟电路的输出端与选择器连接,选择器与寄存器连接,寄存器可接收相位差调整信号,选择器用于根据寄存器的输出,确定所连接的子延迟电路的数量。

每个子延迟电路的延迟值在同一种条件下(温度或电压相同情况下)基本相同,子延迟电路是由一定数量及类型的电路单元组成的,如反相器或缓冲器(图中未示出)等。通过配置相应的寄存器,可以选择信号经过的子延迟电路的个数,从而实现不同的延迟值设定。当寄存器配置值为0时,表示不经过任何子延迟电路,延迟电路(包括第一延迟电路221至第三延迟电路241)具有最小延迟值,寄存器配置值越大,信号经过的子延迟电路个数越多,相应的延迟电路的延迟值也越大。

对于每个子延迟电路来说,温度越高,延迟值越大,电压越高,延迟值越小。当温度最高,电压最低时,子延迟电路具有最大的延迟值;当温度最低,电压最高时,子延迟电路具有最小的延迟值。

基于各个子延迟电路对于温度和电压的敏感性,通常会使用STA(Static TimingAnalysis,静态时序分析)分析得到最大延迟值、典型延迟值和最小延迟值。

本实施例通过第一延迟电路221和第二延迟电路231调整随路时钟信号与第一数据信号之间的相位差,从而使得在随路时钟信号的上升沿对第一数据信号进行采样,并利用第三延迟电路241根据随路时钟信号来调整第二时钟信号的延迟时间,使得能够在延迟后的第二时钟信号的上升沿对待接收数据信号进行采样,从而实现数据信号的稳定传输。

在一具体的实施例中,如图4所示,时钟源21用于产生标准时钟信号CLK,其还可用于生成所需要的其他时钟信号,随路时钟信号SCK比标准时钟信号CLK的延迟时间为T1_A+T2_A+T3_A+T4_A,其中,第一延迟电路221产生的延迟时间为T2_A。MOSI信号是由串行闪存控制器20发送至串行闪存芯片25的数据信号,该MOSI信号是由第一时钟信号CLK1驱动的D触发器232产生的,在不考虑延迟因素情况下,第一时钟信号CLK1与标准时钟信号CLK的相位关系固定。

第一延迟电路221和第二延迟电路231的延迟时间T2_A和T2_B的选择原则是在随路时钟信号SCK和MOSI信号之间的延迟差值最小的情况下尽可能选择T2_A的值较小的延迟值。

外部的串行闪存芯片25利用随路时钟信号时钟的上升沿采样MOSI信号线,为了达到最佳的抗干扰性以及最快的传输速度,随路时钟信号的上升沿应处于MOSI信号线数据的中间位置,如图5所示。

为了实现最优采样,不同延迟之间的关系需要满足下列公式:

T1_A+T2_A+T3_A+T4_A=T1_B+T2_B+T3_B+T4_B+Tdq

其中,Tdq是D触发器232的延迟,Tdq通常很小,可以选择性忽略。PCB延迟时间T4_A和T4_B为在PCB设计完成后,可以根据PCB的走线长度以及介电常数估算得到,T1_A、T3_A、T1_B及T3_B的值可以通过STA分析得到。

当外部串行闪存芯片25收到随路时钟信号时钟SCK后,经过一定的处理延迟,将MISO信号发送至串行闪存控制器20,串行闪存控制器20利用由标准时钟信号CLK生成的采样时钟第二时钟信号对MISO信号进行采样。

与MOSI信号类似,为了达到最佳的抗干扰性以及最快的传输速度,第二时钟信号的上升沿应处于MISO信号线的中间位置,如图6所示。

为了实现最优采样,不同延迟之间的关系需要满足下列公式:

T1_A+T2_A+T3_A+T4_A+Tproc+T4_C+T3_C=T1_C+T2_C-T

式中,Tproc是外部串行闪存芯片25的处理时间,通常可从数据手册中得到;PCB延迟时钟T4_C可以根据PCB板的走线长度以及介电常数估算得到,T1_C、T2_C及T3_C的值可以通过STA分析得到。

基于随路时钟信号SCK和MOSI信号的关系,已经得到了第一延迟电路221的延迟值T2_A,那么再根据上式,则可以计算得到第三延迟电路241的延迟值T2_C。

由上述分析可知,通过引入3个延迟电路,可以保证MOSI信号和MISO信号始终在最优采样点被采样,本实施例提供的串行闪存控制器20可应用于利用SPI总线实现串行闪存访问的集成电路中。

在不同环境温度及工作电压情况下,为了保证串行闪存访问的速度不受影响,在串行闪存控制器20中的随路时钟信号SCK和MOSI信号的通路上插入延迟电路,从而改变随路时钟信号SCK和MOSI信号达到外部串行闪存芯片25相应端口的延迟差。此外,还通过插入第三延迟电路241以调整MISO信号的采样时钟相位,保证MISO信号一定可以被正确采样。此外每一个延迟电路的延迟值都可以通过独立的寄存器选择,可以综合考虑当前的SPI总线速度、环境温度、工作电压和PCB走线,从而选择最合适的延迟值。

参阅图1和图7,图7是本申请提供的调整采样相位的方法一实施例的流程示意图,该方法应用于串行闪存控制器,该串行闪存控制器包括处理通路10,处理通路10包括延迟电路11,延迟电路11包括寄存器111以及与寄存器连接的调整延迟电路112,该方法包括:

步骤71:寄存器接收相位差调整信号。

调整延迟电路112包括多个串联的子延迟电路1121,每个子延迟电路1121对应的延迟时间为第一时间;相位差调整信号用于指示随路时钟信号或第一数据信号经过预设数量个子延迟电路1121。

步骤72:调整延迟电路根据相位差调整信号对随路时钟信号或第一数据信号进行延迟,以使得经过延迟的随路时钟信号与第一数据信号的相位差在第一预设范围以内。

随路时钟信号为串行闪存控制器产生的时钟信号,将该时钟信号发送至SPI从设备,第一数据信号可以为MOSI信号,在不同环境温度及工作电压情况下,为了保证串行闪存访问的速度不受影响,根据随路时钟信号实现对第一数据信号的准确采样,可以通过调整随路时钟信号与第一数据信号之间的相位差来实现;随路时钟信号与第一数据信号之间的初始相位差为第二时间,预设数量与第一时间以及第二时间相关联。

操作人员可以通过测量,获取随路时钟信号与第一数据信号之间的相位差,在一具体的实施例中,可以利用静态时序分析来分析电路中各节点的延迟,从而得到相位差。操作人员在获取到随路时钟信号与第一数据信号之间的相位差之后,根据相位差向寄存器111发送调整指令,以调整随路时钟信号或第一数据信号的延迟时间,使得在随路时钟信号的有效边沿能够对第一数据信号进行采样,即随路时钟信号与第一数据信号的相位差在第一预设范围以内;通过设置随路时钟信号或第一数据信号的延迟时间,从而改变随路时钟信号和第一数据信号达到外部从设备相应端口的延迟差。

本实施例根据相位差调整信号调整随路时钟信号或第一数据信号的延迟时间,从而使得随路时钟信号与第一数据信号的相位差在第一预设范围以内;能够调整随路时钟信号与第一数据信号的相位差,实现在随路时钟信号的有效边沿对第一数据信号进行准确地采样,从而实现数据信号的稳定传输。

参阅图2和8,图8是本申请提供的调整采样相位的方法另一实施例的流程示意图,寄存器包括第一寄存器2211、第二寄存器2311和第三寄存器2411,调整延迟电路包括第一调整延迟电路2212、第二调整延迟电路2312以及第三调整延迟电路2412,第一调整延迟电路2212包括多个串联的第一子延迟电路22121,第二调整延迟电路2312包括多个串联的第二子延迟电路23121,第三调整延迟电路2412包括多个串联的第三子延迟电路24121;该方法包括:

步骤81:串行闪存控制器中的第一触发器根据第一时钟信号与待发送数据信号生成第一数据信号。

该待发送数据信号为串行闪存控制器准备发送至SPI从设备的数据信号,第一时钟信号为标准时钟信号被延迟第五预设延迟时间后的信号,标准时钟信号为串行闪存控制器中的时钟源21产生的信号。

第一时钟信号和待发送数据信号输入至第一触发器232中,第一触发器232在第一时钟信号的上升沿对待发送数据信号进行采样,从而得到第一数据信号,该第一数据信号为MOSI信号,第一数据信号为待发送数据信号被延迟第二预设延迟时间后的信号,第二预设延迟时间包括待发送数据信号传输至外部设备的时间。

步骤82:寄存器接收相位差调整信号。

步骤83:第一寄存器接收第一相位差调整信号,第一调整延迟电路根据第一相位差调整信号将随路时钟信号延迟第三预设延迟时间。

随路时钟信号为将标准时钟信号延迟第一预设延迟时间后的信号,标准时钟信号为时钟源21产生的信号,第一预设延迟时间包括标准时钟信号传输至外部设备的时间。

第一相位差调整信号用于指示随路时钟信号经过预设数量个第一子延迟电路22121,第三预设延迟时间为第二预设延迟时间与第一预设延迟时间的差值,预设数量为第三预设延迟时间与第一时间的比值。

步骤84:第二寄存器接收第二相位差调整信号,第二调整延迟电路根据第二相位差调整信号将第一数据信号延迟第四预设延迟时间。

第四预设延迟时间为第一预设延迟时间与第二预设延迟时间的差值,第二相位差调整信号用于指示第一数据信号经过预设数量个第二子延迟电路23121,预设数量为第四预设延迟时间与第一时间的比值。

步骤85:串行闪存控制器将延迟后的随路时钟信号与第一数据信号发送至外部设备,或者将随路时钟信号与延迟后的第一数据信号发送至外部设备。

如果第二预设延迟时间大于第一预设延迟时间,则表明随路时钟信号相比第一数据信号超前,为了能在随路时钟信号的上升沿对第一数据信号进行准确地采样,将随路时钟信号延迟第三预设延迟时间。

如果第二预设延迟时间小于或等于第一预设延迟时间,则表明随路时钟信号相比第一数据信号滞后,为了能在随路时钟信号的上升沿对第一数据信号进行准确地采样,将第一数据信号延迟第四预设延迟时间。

在一具体的实施例中,随路时钟信号的上升沿可以对应于第一数据信号的中间位置,即随路时钟信号与第一数据信号的相位差为0,如图5所示。

在将随路时钟信号或第一数据信号延迟后,将随路时钟信号与第一数据信号发送至外部设备,该外部设备可以为外部从设备。

步骤86:第二触发器接收外部设备发送的待接收数据信号。

串行闪存控制器在随路时钟信号的上升沿对第一数据信号进行采样,同时还接收外部设备发送的待接收数据信号,该待接收数据信号可以为MISO信号。

步骤87:第三寄存器接收第三相位差调整信号。

第三相位差调整信号用于指示待接收数据信号经过预设数量个第三子延迟电路24121。

步骤88:第三调整延迟电路根据第三相位差调整信号对第二时钟信号进行延迟,以使得经过延迟的待接收数据信号与延迟后的第二时钟信号的相位差在第二预设范围以内。

步骤89:串行闪存控制器根据延迟后的第二时钟信号和待接收数据信号生成第二数据信号。

第二时钟信号为将标准时钟信号延迟第六预设延迟时间后的信号,为了使得在第二时钟信号的上升沿对待接收信号进行准确采样,根据随路时钟信号来调整第二时钟信号的延迟时间,以便使得待接收数据信号与延迟后的第二时钟信号的相位差在第二预设范围以内。

在一具体的实施例中,第二时钟信号的上升沿可以对应于待接收数据信号的中间位置,即第二时钟信号与待接收数据信号的相位差为0,如图6所示。

在调整了第二时钟信号与待接收数据信号之间的相位差后,将待接收数据信号和延迟后的第二时钟信号输入第二触发器242中,以生成第二数据信号,该第二数据信号为待接收信号延迟后的信号,它们包含的数据信息相同。

本实施例通过调整随路时钟信号与第一数据信号之间的相位差,来使得在随路时钟信号的上升沿对第一数据信号进行采样,并根据随路时钟信号来调整第二时钟信号的延迟时间,使得能够在延迟后的第二时钟信号的上升沿对待接收数据信号进行采样,从而实现数据信号的稳定传输。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 一种调整采样相位的方法及串行闪存控制器
  • 串行闪存控制器、串行闪存控制方法及串行闪存控制系统
技术分类

06120112228236