一种高速SPI主模式控制器的制作方法

文档序号:19672955发布日期:2020-01-10 22:52阅读:270来源:国知局
一种高速SPI主模式控制器的制作方法

本发明涉及电子电路技术领域,尤其是涉及一种高速spi主模式控制器。



背景技术:

spi(serialperripheralinterface),串行外围设备接口,是motorola公司推出的一种同步串行接口技术。spi主要应用在eeprom,flash,实时时钟(rtc),数模转换器(adc),数字信号处理器(dsp)以及数字信号解码器之间。一般情况下,spi模块的最大时钟频率为系统时钟频率的1/2。虽然spi的传输速率主要受限于cpu处理spi数据的能力,但在同另一个非常高速率的spi设备通讯时,spi的最大时钟频率将有可能制约其传输速率。时钟越高,能支持的读写速度就越快。但是当spi时钟频率提高时,其控制器也需要工作在更高的时钟频率,对于整体芯片的功耗和面积代价过高,并且增加了高速io接口的设计难度。

对此,现有技术中往往采用别的方式进行spi的加速。例如授权公告号cn101382927b的发明专利《集成在芯片内的高速串行外围接口电路》中就公开了一种集成在芯片内的高速串行外围接口电路,该高速串行外围接口电路设有加速工作模式,在加速工作模式下,数据传输过程中cpu告知数据存取地址以长度,由加速控制单元控制读写,在完成加速操作时,通过ahbmaster接口单元发送中断,减少占用cpu资源、能够适应大量复杂高速数据传输,增大数据吞吐量。

这样的方案主要是从传输的数据入手,通过数据优化来提高数据传输的效率,但是对于spi接口自身的传输速率,尤其是低频时钟域的传输速率并没有显著提升。



技术实现要素:

本发明涉及一种高速spi主模式控制器,通过结构上的改良使得spi控制器工作在低频时钟域依然能提高spi接口工作频率,以达到spiflash器件本身所能支持速度的极限。

为了解决上述技术问题中的至少一个,本发明通过以下技术方案予以实现:

一种高速spi主模式控制器,由pll(phaselockedloop,锁相环)提供时钟信号,整个控制器分为:

慢速时钟域:包括dma(directmemoryaccess,直接内存存取)控制接口,负责控制器收发数据和内存之间的直通,并实现dma总线协议的转换;

以及高速时钟域;

高速时钟域包括:

软件交互接口:用于cpu读写控制器的控制和状态寄存器,

接口时钟生成单元:用于生成分频后的spi接口时钟信号,

回读数据校准单元:接收spiflash传来的数据,

接收控制单元和发送控制单元:处理收发spiflash数据信号,

以及管脚延时控制单元:用于实现spi的高速io的时序控制;

pll通过不同的时钟分频器,提供两个主时钟信号,其中给慢速时钟域提供慢速时钟信号,给高速时钟域提供高速源时钟信号。

优选的,接口时钟生成单元给管脚延时控制单元提供时钟信号,管脚延时控制单元连接回读数据校准单元并给回读数据校准单元提供补偿时钟,回读数据校准单元连接接收控制单元。

优选的,高速源时钟信号的频率固定为spi接口时钟信号频率的整数倍。

进一步的,高速源时钟信号的频率固定为spi接口时钟信号频率的2倍,此时接口时钟生成单元生成二分频后的spi接口时钟。

优选的,慢速时钟域和高速时钟域之间通过数据缓存单元进行隔离,用于进行隔离的数据缓存单元为接收数据缓存单元以及发送数据缓存单元。

优选的,接收数据缓存单元以及发送数据缓存单元均为异步fifo(firstinfirstout,先进先出)数据缓存单元。

优选的,所述回读数据校准单位包括相互连接的两级寄存器,其中第一级寄存器的输出端连接于第二级寄存器的输入端,第二级寄存器的输出端连接到移位寄存器;第一级寄存器的时钟信号来自于补偿时钟信号,第二级寄存器和移位寄存器的时钟信号均来自于高速源时钟信号。

优选的,第二级寄存器直接用高速源时钟信号的下降沿锁存第一级寄存器的输出数据,之后第二级寄存器的输出经过组合逻辑通路在高速源时钟信号的上升沿锁存到移位寄存器。

优选的,管脚延时控制单元内设有补偿电路用于补偿spi控制器内部用于采样接收数据时钟和管脚的spiclock信号的延时。

优选的,软件交互接口支持选择接口模式dualspi、qualspi或标准的spi接口。

本发明通过这样的技术方案,通过高速spi控制器的异步对不同时钟域的功能进行分割;并且设定高速源时钟固定为接口时钟的整数倍关系,控制器的高速逻辑部分用高速源时钟,从而起到提高传输速率的功能。对回读数据校准单元进行设计,包括:采用补偿后的接收时钟的下降沿来锁存管脚过来的spiflash读数据;两级寄存器隔离和优化时序路径;并通过管脚延时控制单元的约束以补偿电路的功能,尽可能减少了延时。综上所述实现高速spiflash访问的功能,节省了读写时间。特别是用spiflashboot的应用场景,该控制器可以大幅度优化启动时间。

附图说明

附图示出了本发明的示例性实施方式,并与其说明一起用于解释本发明的原理,其中包括了这些附图以提供对本发明的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分。

图1是本发明一种高速spi主模式控制器所在soc芯片结构示意图。

图2是本发明一种高速spi主模式控制器中回读数据校准单元的结构示意图。

图3是常规的spiflash读写时序图。

图4是本发明一种高速spi主模式控制器接收电路时序图。

图中延时1为:spiflash管脚处的时钟和spi控制器内部的接收采样时钟之间有路径延时差距。

延时2为:外部spiflash本身的读数据延时。

延时3为:flash的数据线在芯片内部的延时。

具体实施方式

下面结合附图和实施方式对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分。

需要说明的是,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明本发明。

如图1所示,本发明的一种高速spi主模式控制器,由pll提供时钟信号,整个控制器分为:慢速时钟域:包括dma控制接口,负责控制器收发数据和内存之间的直通,并实现dma总线协议的转换;以及高速时钟域:包括软件交互接口:用于cpu读写控制器的控制和状态寄存器;接口时钟生成单元:用于生成分频后的spi接口时钟信号;回读数据校准单元:接收spiflash传来的数据;接收控制单元和发送控制单元:处理收发spiflash数据信号;以及管脚延时控制单元:用于实现spi的高速io的时序控制;pll通过不同的时钟分频器,提供两个主时钟信号,其中给慢速时钟域提供慢速时钟信号,给高速时钟域提供高速源时钟信号。本发明需要pll提供两个主时钟,其中慢速时钟可以用于控制器数据交互部分,而高速时钟用于spi接口的协议实现与外部spiflash数据的收发。通过这种时钟域的分割,可以让控制器的大部分可以工作在低频时钟域;而只让spi接口部分处于高频电路,在确保稳定性的前提下,有效提高了传输的速率。

接口时钟生成单元给管脚延时控制单元提供时钟信号,管脚延时控制单元连接回读数据校准单元并给回读数据校准单元提供补偿时钟,回读数据校准单元连接接收控制单元。高速源时钟信号的频率固定为spi接口时钟信号频率的整数倍。

在本实施例中,高速源时钟信号的频率固定为spi接口时钟信号频率的2倍,此时接口时钟生成单元生成二分频后的spi接口时钟。2倍的频率便于后期的控制,且能减少后期工作时的误差的可能,使用起来最为可靠。慢速时钟域和高速时钟域之间通过数据缓存单元进行隔离,用于进行隔离的数据缓存单元为接收数据缓存单元以及发送数据缓存单元。接收数据缓存单元以及发送数据缓存单元均为异步fifo数据缓存单元。如图2所示,所述回读数据校准单位包括相互连接的两级寄存器,其中第一级寄存器的输出端连接于第二级寄存器的输入端,第二级寄存器的输出端连接到移位寄存器;第一级寄存器的时钟信号来自于补偿时钟信号,第二级寄存器和移位寄存器的时钟信号均来自于高速源时钟信号。第二级寄存器直接用高速源时钟信号的下降沿锁存第一级寄存器的输出数据,之后第二级寄存器的输出经过组合逻辑通路在高速源时钟信号的上升沿锁存到移位寄存器。管脚延时控制单元内设有补偿电路用于补偿spi控制器内部用于采样接收数据时钟和管脚的spiclock信号的延时。所述补偿电路为现有技术中常见的延时电路,但是在设置完毕后需要进行测试确保延时补偿的准确性。

软件交互接口支持选择接口模式dualspi、qualspi或标准的spi接口。qualspi一个时钟周期可以收发4bit数据,效率最高;dualspi一个时钟周期可以收发2bit数据;标准的spi接口则一个时钟周期只能收发1bit数据。spi协议是基于字节的收发,在发送控制单元内部有一个位计数器和移位寄存器,每个spi时钟周期的位计数器自加,同时移位寄存器进行移位操作,将要发送的数据映射到spi接口的数据线上,当位计数器为8时,则表示一个字节发送完成,此时如果需要继续发送,则立即从缓冲区中把下一个字节的数据读出来,从而实现连续的发送。

这样的设置满足了现场实施的不同关注点,对于注重效率的现场使用,使用者会选择采用qualspi接口。对于尽可能减少管脚数量的使用场景,选择标准spi更为合适。

如图3所示为常规的spiflash读写时序图。由图中所示一个spiflash读写中时序最紧张的情况主要是读操作,对于写操作,spiflash的所有信号都来自于spi控制器,只要控制器输出的时钟和写数据的时序路径的偏移基本保持一致,就能保证高速写操作。难点是在读操作的时序路径的收敛工作上。现有技术无法解决的问题有:

1、spiflash管脚处的时钟和spi控制器内部的接收采样时钟之间有路径延时差距,即图3中的延时1,这个差距的主要原因是时钟输出穿过pad管脚的延时和时钟信号从接口时钟生成单元到pad管脚之间的路径延时。

2、外部spiflash本身的读数据延时,即图3中的延时2,这个延时通常较大,也很大程度上决定了这个flash最快可以运行的速度。

3、flash的数据线在芯片内部的延时,即图3中的延时3这个差距的主要原因是数据线输入穿过pad管脚的延时和pad管脚到回读数据校准单元中的采样寄存器的路径延时。

对于spiflash控制器,延时1、延时2以及延时3的总时长就决定了所能支持的最高速度。其中延时1和延时3越短,那么spi控制器能运行的速度越高。对此,本发明采用了如下的技术方案:

如图4所示,首先,高速源时钟的频率固定为spi接口时钟频率的2倍,该频率关系让控制器支持不同的接口时序模式和spiflash时钟边沿的检测,通过边沿的判断通知接收控制单元和发送控制单元处理收发spiflash数据信号,即在数据收发和spi协议实现部分用同步设计。接口时钟生成单元负责生成二分频后的spi接口时钟,这个时钟只在数据有效期间才会翻转,实现了spi协议的多种时序关系的时钟信号。2倍的频率关系是兼具高速spi接口和简单的同步设计方案实现架构的最优比例。

其次,管脚延时控制单元负责实现spi的高速io时序的严格控制。保证io输出路径的走线延时尽量短,这个走线需要根据实际电路进行调整。缩短延时1。而且要求输出路径之间的走线偏移基本一致,从而保证写操作正确。保证输入路径的延时尽量短,缩短延时3。设计补偿电路,补偿spi控制器内部用于采样接收数据时钟和管脚的spiclock信号的延时。该补偿电路针对的延时1,通过延时单元,让内部接收时钟边沿尽量对齐spiclock。控制io输入路径的走线延时尽量短,缩短延时3。整个管脚延时控制单元是一个后端实现方案,与工艺和后端布局布线有较大关联。总体而言遵循spi控制器尽可能靠近芯片管脚以及io设计输入输出延时尽可能短的原则。

通过本发明提供的技术方案,普通soc芯片在40nm工艺下,spi控制器可以实现稳定的以120mhz的接口速度读写spiflash,已经是主流spiflash所能达到的最高速度。而且使用的稳定性和使用寿命能得以保证。

在本说明书的描述中,参考术语“一个实施例/方式”、“一些实施例/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例/方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例/方式或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例/方式或示例以及不同实施例/方式或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本发明,而并非是对本发明的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本发明的范围内。

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