一种基于FPGA的SATA接口数据流控制器及控制方法与流程

文档序号:12747981阅读:1231来源:国知局
导航: X技术> 最新专利> 计算;推算;计数设备的制造及其应用技术
一种基于FPGA的SATA接口数据流控制器及控制方法与流程

本发明涉及SATA(Serial Advanced Technology Attachment,串行高级技术附件)接口控制技术领域,特别涉及一种基于FPGA(Field Programmable Gate Array,现场可编程门阵列)的SATA接口数据流控制器及控制方法。该控制器采用FPGA作为硬件平台,利用FPGA内部逻辑实现SATA接口的数据流控制。



背景技术:

SATA(Serial Advanced Technology Attachment)即串行高级技术附件。它是一种计算机总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。这是一种完全不同于并行PATA(Parallel Advanced Technology Attachment)的新型硬盘接口类型,由于采用串行方式传输数据而得名。SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,与以往相比其最大的区别在于能对传输指令(不仅仅是数据)进行检查,如果发现错误会自动矫正,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点,目前,SATA分别有SATA 1.0速率为1.5Gbit/s、SATA2.0速率为3Gbit/s和SATA3.0速率为6Gbit/s三种规格。未来将有更快速的SATA Express规格。

链路层和物理层的数据流控制是SATA协议的重要组成部分,目前公知的处理方式是根据协议进行状态跳转,通过基元的发送、应答和基元的插入、数据的加扰和解扰、CRC校验、以及8b/10b编码和收发器串化解串功能实现数据流的控制,但上述实现方式不够灵活,处理起来比较繁琐,基元的插入会引入大量的缓存处理,尤其是每隔256拍插入Align基元的要求,会降低应答基元的响应速率。另外,为了提高电路的EMI特性,SATA协议不但对传输的帧数据提出了加扰要求,还对重复基元提出了加扰要求,重复基元的加扰数据不会对数据流的控制产生作用,即不会被接口解扰恢复原始的数据,对于不同的重复基元的加扰,我们可以采用一定长度的同一个扰码序列异或基元代替。

速率匹配(rate matching)是指传输信道上的比特被重发或者打孔,以匹配物理信道的承载能力,信道映射时达到传输格式所要求的比特速率。重发就是当输出比特多于输入比特时在当前比特和后面的比特之间插入一次当前比特,打孔是当输入比特数多于输出比特数时,按照一定的规则把一些比特打掉,后面的比特前移。基于FPGA的SATA接口协议实现,FPGA作为主机,与从机(大部分为硬盘)存在时钟不同源,时钟频偏的时间积累会造成接口的FIFO溢出,需要做数据流的速率匹配处理。目前解决的方法是采用高端的FPGA,自带的收发器有速率匹配功能,或者是采用国外的SATA知识产权核,同样也带有速率匹配功能。但此类方法成本过高,对FPGA器件依赖度高,通用性不好。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种基于FPGA的SATA接口数据流控制器,简化了SATA协议链路层和物理层的数据流控制的实现,能简单有效的实现对SATA协议的基元控制和数据流的速率匹配,并且解决了由于时钟频偏的时间积累造成接口的FIFO溢出的问题。

本发明的第二目的为提供一种上述控制器实现的基于FPGA的SATA接口数据流控制方法。

本发明的第一目的通过下述技术方案实现:一种基于FPGA的SATA接口数据流控制器,包括基元检测和控制模块、速率匹配模块、ROM模块、CRC计算和校验模块、数据加扰和解扰模块、数据选通模块以及SATA物理层模块;

所述基元检测和控制模块发送基元信号至SATA物理层模块,用于SATA协议基元的检测以及基元的交互应答处理,并且针对进入SATA物理层的数据流每隔256个时钟周期插入2个时钟周期的AlignP基元;所述基元检测和控制模块分别发送控制信号至CRC计算和校验模块、数据加扰和解扰模块以及数据选通模块,用于对数据加扰和解扰模块、CRC计算和校验模块以及数据选通模块进行使能控制;

所述ROM模块存储一个一定长度的加扰多项式计算值,用于实现重复基元的加扰;对于进入SATA物理层模块需要加扰的重复基元,其扰码值是从ROM模块读出的加多项式计算值异或该基元后的结果;

所述CRC计算和校验模块,在发送帧数据时用于计算CRC值并且将CRC值置于数据最后;在接收帧数据时,用于针对解扰后的帧数据进行CRC校验;

所述数据加扰和解扰模块,在发送帧是时用于对包括CRC值在内的帧进行加扰,加扰后的数据发送给SATA物理层模块;在接收帧时,用于对接收到的帧进行解扰;

所述SATA物理层模块包括发送数据模块和接收数据模块,其中发送数据模块接收来自基元检测和控制模块、ROM模块以及数据加扰和解扰模块发送的信号,经过8B/10B编码、并串转换以及预加重控制后发送到从设备;接收数据模块接收从设备发送的数据,经过线性均衡器、恢复时钟、串并转换、逗点序列检测以及8B/10B解码后发送给速率匹配模块;

速率匹配模块接收SATA物理层模块发送的数据,速率匹配模块发送数据至基元检测和控制模块以及数据选通模块,通过基元检测和控制模块判断速率匹配后的数据是帧数据还是无用的扰码序列;所述速率匹配模块采用FIFO结构,接收数据时,速率匹配模块根据FIFO状态进行速率匹配的打孔或插入操作,其中在打孔操作时,写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时,在读出的FIFO数据中插入AlignP基元;

数据选通模块接收基元检测和控制模块发送的控制信号,当基元检测和控制模块判断速率匹配模块发送的数据是帧数据时,控制数据选通模块将帧数据发送给数据加扰和解扰模块进行解扰;当基元检测和控制模块判断速率匹配模块发送的数据是无用的扰码序列时,控制数据选通模块将无用的扰码序列丢弃。

优选的,所述速率匹配模块在收到数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出;

接收数据时,速率匹配模块根据FIFO状态进行速率匹配的打孔操作具体如下:所述速率匹配模块在检测到FIFO几乎满时,在检测到写入数据为AlignP基元或无用的扰码序列时,控制不写入FIFO中,即写入数据中去掉AlignP基元或无用的扰码序列;接收数据时,速率匹配模块根据FIFO状态进行速率匹配的插入操作具体如下:所述速率匹配模块在检测到FIFO几乎空时,在读出的FIFO数据中插入AlignP基元,控制不读取FIFO。

优选的,所述CRC计算和校验模块针对介于SOFP基元和EOFP基元的帧数据进行CRC计算和校验;

所述CRC计算和校验模块采用CRC32的多项式进行计算;

CRC多项式为:

G(X)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;

所述数据加扰和解扰模块针对介于SOFP基元和EOFP基元的帧数据和CRC计数值进行加扰和解扰;

所述数据加扰和解扰模块为32位并行模块,并行处理32位数据的加扰和解扰控制;

所述数据加扰和解扰模块的生成多项式为:

G(X)=X16+X15+X13+X4+1。

优选的,所述CRC计算值的初始值为0x52325032;CRC计算和校验模块具有同步置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前计算值;

所述数据加扰和解扰模块加扰的初始值为0xF0F6;所述数据加扰和解扰模块具有同步置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前加扰值。

优选的,所述ROM模块存储的加扰多项式计算值的长度为256个时钟周期。

优选的,还包括多路选择器模块,多路选择器模块接收基元检测和控制模块发送的控制信号,基元检测和控制模块、ROM模块以及数据加扰和解扰模块分别将输出的信号对应发送至多路选择器模块各输入通道中;多路选择器模块通过基元检测和控制模块的控制信号控制其中一个输入通道选通,将基元检测和控制模块、ROM模块或数据加扰和解扰模块输出的信号传送至给SATA物理层模块。

本发明的第二目的通过下述技术方案实现:一种基于上述控制器实现的基于FPGA的SATA接口数据流控制方法,包括发送帧时数据流控制过程和接收帧时数据流控制过程;

所述发送帧时数据流控制过程具体步骤如下:

S11、基元检测和控制模块发送两个时钟周期的X_RDYp基元至SATA物理层模块,由SATA物理层模块将两个时钟周期的X_RDYp基元发送至从设备,通知从设备准备接收帧数据;接着ROM模块输出对应扰码;

S12、基元检测和控制模块检测到从设备发送的R_RDYp基元后,表明从设备已经准备好接收帧数据,此时基元检测和控制模块发送一个时钟周期SOFP基元至SATA物理层模块,由SATA物理层模块将一个时钟周期的SOFP基元发送至从设备;随后需要发送的帧数据通过CRC计算和校验模块加入CRC计算值以及通过数据加扰和解扰模块加扰后发送至SATA物理层模块,由SATA物理层模块发送至从设备;

其中基元检测和控制模块针对于进入SATA物理层的数据流每隔256个时钟周期插入2个时钟周期的AlignP基元;ROM模块输出加扰多项式计算值针对于进入SATA物理层模块的CONTP基元之前的重复基元进行加扰得到基元对应的扰码;

S13、帧数据完成发送后,基元检测和控制模块发送一个时钟周期的EOFp基元至SATA物理层模块,由SATA物理层模块发送至从设备,并在之后发送WTRMp基元至SATA物理层模块,通过SATA物理层模块发送WTRMp基元及其对应的扰码至从设备,等待CRC校验状态基元的返回,帧数据传输过程中若基元检测和控制模块检测到R_IPp基元,则表示从设备接收数据正常,若基元检测和控制模块检测到CRC校验状态基元为R_OKP基元,表明从设备接收的数据正确,若基元检测和控制模块检测到CRC校验状态基元为R_ERRP基元,表明从设备接收的数据错误;

S14、进入空闲状态,基元检测和控制模块发送SYNCP基元至SATA物理层模块,通过SATA物理层模块发送SYNCP基元及其对应的扰码至从设备;基元检测和控制模块在接收到SYNCP基元后,表明从设备也进入空闲状态;

所述接收帧时数据流控制过程具体步骤如下:

S21、SATA物理层模块接收从设备发送的数据,并且发送给速率匹配模块,当基元检测和控制模块通过速率匹配模块接收到从设备发送的X_RDYp基元时,发送R_RDYp基元至SATA物理层模块,通过SATA物理层模块发送R_RDYp基元及其对应的扰码至从设备,表明已经准备好接收帧数据;当基元检测和控制模块通过速率匹配模块接收到SOFP基元时,表明接下来将接收到帧数据,基元检测和控制模块控制数据选通模块将帧数据发送给数据加扰和解扰模块进行解扰,将无用的扰码序列进行丢弃,数据加扰和解扰模块解扰后的数据通过CRC计算和校验模块进行校验;接收帧数据的过程中基元检测和控制模块反馈从设备R_IPp基元响应从设备接收状态为正常;

S22、基元检测和控制模块接收到EOFp基元时,表示帧数据接收完成,基元检测和控制模块根据CRC校验状态,通过SATA物理层模块发送相应基元至从设备:当CRC校验状态为正确时,则通过SATA物理层模块发送R_IPp基元至从设备;当CRC校验状态为不正确时,则通过SATA物理层模块发送R_ERRP基元至从设备;

S23、基元检测和控制模块在接收到从设备发送的SYNCP基元后,表明从设备进入空闲状态,基元检测和控制模块发送SYNCP基元至SATA物理层模块,通过SATA物理层模块发送SYNCP基元及其对应的扰码至从设备;告知进入空闲状态,等待下一帧数据的发送或接收;

其中在步骤S21至S23中,速率匹配模块根据FIFO状态进行速率匹配的打孔或插入操作,其中在打孔操作时写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时在读出的FIFO数据中插入AlignP基元;速率匹配模块将发送的数据时分为两路,一路数据发送给基元检测和控制模块,另一路数据发送给数据选通模块,基元检测和控制模块判断速率匹配模块发送的数据是帧数据还是无用的扰码序列,并且根据数据状态发送控制信号至数据选通模块;数据选通模块接收基元检测和控制模块发送的控制信号,当基元检测和控制模块判断速率匹配模块发送的数据是帧数据时,控制数据选通模块将帧数据发送给数据加扰和解扰模块进行解扰;当基元检测和控制模块判断速率匹配模块发送的数据是无用的扰码序列时,控制数据选通模块将无用的扰码序列丢弃。

优选的,ROM模块输出加扰多项式计算值针对于进入SATA物理层模块的CONTP基元之前的重复基元进行加扰的具体过程如下:针对于CONTP基元之前的重复基元,从地址0开始读取ROM模块中的加扰多项式计算值,将各地址对应的加扰多项式计算值分别与CONTP基元之前的重复基元进行异或得到基元对应的扰码。

优选的,在接收帧时数据流控制过程还包括以下步骤:速率匹配模块在收到数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出;

接收数据时,速率匹配模块根据FIFO状态进行速率匹配的打孔操作具体如下:所述速率匹配模块在检测到FIFO几乎满时,在检测到写入数据为Align基元或无用的扰码序列时,控制不写入FIFO中;

接收数据时,速率匹配模块根据FIFO状态进行速率匹配的插入操作具体如下:所述速率匹配模块在检测到FIFO几乎空时,在读出的FIFO数据中插入AlignP基元,控制不读取FIFO。

优选的,发送数据流时,若AlignP基元插入前发送的是重复基元对应的扰码,则在插入2个时钟周期的AlignP基元之后,恢复发送插入AlignP基元之前要发送的基元,并在之后发送该基元对应的扰码。

本发明相对于现有技术具有如下的优点及效果:

(1)本发明通过基元检测和控制模块实现对基元的有效控制,在链路层发送数据时通过基元检测和控制模块针对数据流进行AlignP基元的插入,以满足SATA协议每隔256个时钟周期要插入两个时钟周期AlignP基元的要求,在链路层接收数据时速率匹配模块根据FIFO状态通过针去掉AlignP基元或无用的扰码序列实现打孔操作,通过插入AlignP基元实现插入操作,这种速率匹配方法简单有效的实现了SATA协议的数据流速率匹配,有效解决了由于主机和从设备时钟频偏的时间积累造成接收端的FIFO溢出的问题,并且能够有效消除因为打孔或插入操作对数据接收完整性产生的影响,降低实现SATA接口采用专用芯片或对专用IP的依赖,简单有效的实现对SATA协议的基元控制和数据流的速率匹配。

(2)本发明通过ROM模块输出加扰多项式计算值针对重复的基元进行加扰,简化了SATA协议链路层和物理层的数据流控制的实现,解决了现有技术中未对重复基元进行处理起来要考虑的状态繁多以及容易出错的技术问题。其中本发明通过ROM模块固定存储一个一定长度的加扰多项式计算值,仅通过该加扰多项式计算值异或需要加扰的对应基元实现各重复基元的加扰,能省掉基元加扰的计算和控制过程,简化设计。

(3)数据流中,根据SATA协议要求,发送端进入物理层的数据每隔256个时钟周期要插入两个时钟周期的AlignP基元,确保接收侧数据能对齐。同时,SATA协议建议重复基元的加扰在发送一段时间后要有恢复重发基元的过程,为了确保传输总线上的状态确定,避免发送端发送基元对应的扰码时间过长,接收侧长时间检测不到基元的问题。本发明两个需求,当发送基元对应的扰码遇到需要插入两个时钟周期的AlignP基元的情况时,固定在插入的AlignP基元后面恢复发送扰码加扰之前对应的基元,再发送基元对应的扰码,这样由于两个需求控制的长度都是256个时钟周期,可以同时控制,使得AlignP基元出现的位置和基元加扰恢复的控制位置即CONTP基元位置固定,能简化设计。

(4)本发明控制器以FPGA为硬件开发平台,利用FPGA内部逻辑实现SATA接口的数据流控制,其中FPGA能灵活修改和配置,FPGA的高速收发器能很好的支持SATA协议,实现SATA物理层。

附图说明

图1是本发明控制器结构框图。

图2是本发明控制器中速率匹配模块控制流程图。

图3a是现有技术中发送的数据流模型

图3b是本发明简化后的数据流模型。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例

本实施例公开了一种基于FPGA的SATA接口数据流控制器,本实施例控制器以FPGA为硬件开发平台,利用FPGA内部逻辑实现SATA接口的数据流控制,本实施例采用Altera公司的Arria V系列器件5AGXFB3H4F35C4作为FPGA硬件开发平台,器件提供362K的LE资源,1726个M10K的存储块,24个高达6.5536Gbps的收发器。

如图1所示,本实施例控制器包括基元检测和控制模块、速率匹配模块、ROM模块、CRC计算和校验模块、数据加扰和解扰模块、数据选通模块、SATA物理层模块以及多路选择器模块。

基元检测和控制模块发送基元信号至SATA物理层模块,用于SATA协议基元的检测以及基元的交互应答处理,并且针对进入SATA物理层的数据流每隔256个时钟周期插入2个时钟周期的AlignP基元;所述基元检测和控制模块分别发送控制信号至CRC计算和校验模块、数据加扰和解扰模块以及数据选通模块,用于对数据加扰和解扰模块、CRC计算和校验模块以及数据选通模块进行使能控制。

ROM模块存储一个一定长度的加扰多项式计算值,用于实现重复基元的加扰;对于进入SATA物理层模块需要加扰的重复基元,其扰码值是从ROM模块以0地址起始按递增方式读出的加多项式计算值异或该基元后的结果。在本实施例中ROM模块存储的加扰多项式计算值的长度为256个时钟周期。

CRC计算和校验模块,在发送帧时用于计算CRC值并且将CRC值置于数据最后;在接收帧时,用于针对解扰后的帧进行CRC校验;

本实施例中CRC计算和校验模块针对介于SOFP基元和EOFP基元的帧数据进行CRC计算和校验;

所述CRC计算和校验模块采用CRC32的多项式进行计算;

CRC多项式为:

G(X)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1。

其中本实施例中CRC计算值的初始值为0x52325032;CRC计算和校验模块具有同步置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前计算值。

数据加扰和解扰模块,在发送帧时用于对包括CRC值的帧进行加扰,加扰后的数据发送给SATA物理层模块;在接收帧时,用于对接收到的帧进行解扰。

本实施例中数据加扰和解扰模块针对介于SOFP基元和EOFP基元的帧数据进行加扰和解扰;数据加扰和解扰模块为32位并行模块,并行处理32位数据的加扰和解扰控制。

数据加扰和解扰模块的生成多项式为:

G(X)=X16+X15+X13+X4+1。

其中本实施例中数据加扰和解扰模块加扰的初始值为0xF0F6;数据加扰和解扰模块具有同步置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前加扰值。

SATA物理层模块包括发送数据模块和接收数据模块,用于8B/10B编码解码、串并和并串转换、逗点序列检测,预加重、线性均衡功能以及带外控制;其中发送数据模块接收来自基元检测和控制模块、ROM模块以及数据加扰和解扰模块发送的信号,经过8B/10B编码、并串转换以及预加重控制后发送到从设备;接收数据模块接收从设备发送的数据,经过线性均衡器、恢复时钟、串并转换、逗点序列检测以及8B/10B解码后发送给速率匹配模块。

速率匹配模块接收SATA物理层模块发送的数据,速率匹配模块发送数据至基元检测和控制模块以及数据选通模块,通过基元检测和控制模块判断速率匹配后的数据是帧数据(SOFP基元和EOFP基元之间帧的内容,以下帧数据均是此含义)还是无用的扰码序列;速率匹配模块采用FIFO结构,接收数据时,速率匹配模块根据FIFO状态进行速率匹配的打孔或插入操作,其中在打孔操作时,写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时,在读出的FIFO数据中插入AlignP基元;

本实施例中速率匹配模块在收到数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出。

如图2所示,接收数据时,本实施例速率匹配模块根据FIFO状态进行速率匹配的打孔操作具体如下:速率匹配模块在检测到FIFO几乎满时,说明不同源的两个时钟中的写入数据的时钟速率大于读出数据的时钟速率,即接收数据的恢复时钟大于发送数据的发送时钟,在检测到写入数据为AlignP基元或无用的扰码序列时,控制不写入FIFO中,即写入数据中去掉为AlignP基元或无用的扰码序列。

如图2所示,接收数据时,本实施例速率匹配模块根据FIFO状态进行速率匹配的插入操作具体如下:速率匹配模块在检测到FIFO几乎空时,说明不同源的两个时钟中的写入数据的时钟速率小于读出数据的时钟,即接收数据的恢复时钟小于发送数据的发送时钟,在读出的FIFO数据中插入AlignP基元,控制不读取FIFO。

数据选通模块接收基元检测和控制模块发送的控制信号,当基元检测和控制模块判断速率匹配模块发送的数据是帧数据时,控制数据选通模块将帧数据发送给数据加扰和解扰模块进行解扰;当基元检测和控制模块判断速率匹配模块发送的数据是无用的扰码序列时,控制数据选通模块将无用的扰码序列junk丢弃,其中无用的扰码序列指的是对基元加扰后的序列,这些序列不对控制产生影响。

多路选择器模块,多路选择器模块接收基元检测和控制模块发送的控制信号,基元检测和控制模块、ROM模块以及数据加扰和解扰模块分别将输出的信号对应发送至多路选择器模块各输入通道中,多路选择器模块通过基元检测和控制模块的控制信号控制其中一个输入通道选通,将基元检测和控制模块、ROM模块或数据加扰和解扰模块输出的信号传送至给SATA物理层模块。

本实施例中多路选择器模块包括两个2选1多路选择器模块,分别为第一多路选择器模块和第二多路选择器模块,其中基元检测和控制模块以及ROM模块输出的信号分别发送至第一多路选择器模块的两个输入通道,第一多路选择器模块输出通道输出的信号以及基元检测和控制模块输出的信号分别发送至第二多路选择器模块的两个输入通道,第二多路选择器模块输出通道输出的信号发送至SATA物理层模块。基元检测和控制模块发送控制信号至第一多路选择器模块和第二多路选择器模块,控制第一多路选择器模块和第二多路选择器模块的工作状态,以实现将基元检测和控制模块、ROM模块或数据加扰和解扰模块输出的信号传送SATA物理层模块。

本实施例还公开了一种基于上述流控制器实现的基于FPGA的SATA接口数据流控制方法,包括发送帧时数据流控制过程和接收帧时数据流控制过程;在本实施例中SATA接口直接连接硬盘,硬盘作为从设备;而本实施例中控制器作为主机。

其中发送帧时数据流控制过程具体步骤如下:

S11、基元检测和控制模块发送两个时钟周期的X_RDYp基元至SATA物理层模块,由SATA物理层模块将两个时钟周期的X_RDYp基元发送至从设备,通知从设备准备接收帧数据;接着ROM模块输出对应加扰多项式计算值;

S12、基元检测和控制模块检测到从设备发送的R_RDYp基元后,表明从设备已经准备好接收帧数据,此时基元检测和控制模块发送一个时钟周期SOFP基元至SATA物理层模块,由SATA物理层模块将一个时钟周期的SOFP基元发送至从设备;随后需要发送的帧数据通过CRC计算和校验模块加入CRC值以及通过数据加扰和解扰模块加扰后发送至SATA物理层模块,由SATA物理层模块发送至从设备;

其中基元检测和控制模块针对于进入SATA物理层的数据流每隔256个时钟周期插入2个时钟周期的AlignP基元;ROM模块输出加扰多项式计算值针对于进入SATA物理层模块的CONTP基元之前的重复基元进行加扰,具体加扰过程如下:针对于每个CONTP基元之前的重复基元,从地址0开始读取ROM模块中的加扰多项式计算值,将各地址对应的加扰多项式计算值分别与CONTP基元之前的重复基元进行异或得到基元对应的扰码。

S13、帧数据和CRC值完成发送后,基元检测和控制模块发送一个时钟周期的EOFp基元至SATA物理层模块,由SATA物理层模块发送至从设备,并在之后发送WTRMp基元至SATA物理层模块,通过ROM模块输出加扰多项式计算值异或WTRMp基元得到WTRMp基元对应的扰码,然后SATA物理层模块发送WTRMp基元以及WTRMp基元对应的扰码至从设备,等待CRC校验状态基元的返回,数据传输过程中若基元检测和控制模块检测到R_IPp基元,则表示从设备接收数据正常,若基元检测和控制模块检测到CRC校验状态基元为R_OKP基元,表明从设备接收的数据正确,若基元检测和控制模块检测到CRC校验状态基元为R_ERRP基元,表明从设备接收的数据错误。

S14、进入空闲状态,基元检测和控制模块发送SYNCP基元至SATA物理层模块,通过ROM模块输出加扰多项式计算值异或SYNCP基元得到SYNCP基元对应的扰码,然后SATA物理层模块发送SYNCP基元以及SYNCP基元对应的扰码至从设备;基元检测和控制模块在接收到SYNCP基元后,表明从设备也进入空闲状态。

本实施例中,发送的数据流中,若AlignP基元插入前发送的是重复基元对应的扰码,则在插入2个时钟周期的AlignP基元之后,恢复发送插入AlignP基元之前要发送的基元,并在之后发送该基元对应的扰码。

其中接收帧时数据流控制过程具体步骤如下:

S21、SATA物理层模块接收从设备发送的数据,并且发送给速率匹配模块,当基元检测和控制模块通过速率匹配模块接收到从设备发送的X_RDYp基元时,发送R_RDYp基元至SATA物理层模块,通过ROM模块输出加扰多项式计算值异或R_RDYp基元得到R_RDYp基元对应的扰码,然后通过SATA物理层模块发送R_RDYp基元及R_RDYp基元对应的扰码至从设备,表明已经准备好接收帧数据;当基元检测和控制模块通过速率匹配模块接收到SOFP基元时,表明接下来将接收到帧数据,基元检测和控制模块控制数据选通模块将帧数据发送给数据加扰和解扰模块进行解扰,将无用的扰码序列进行丢弃,数据加扰和解扰模块解扰后的数据通过CRC计算和校验模块进行校验;传输过程中基元检测和控制模块反馈从设备R_IPp基元响应从设备接收状态为正常。

S22、基元检测和控制模块接收到EOFp基元时,表示帧数据接收完成,基元检测和控制模块根据CRC校验状态,通过SATA物理层模块发送相应基元至从设备,当CRC校验状态为正确时,则通过SATA物理层模块发送R_IPp基元至从设备,当CRC校验状态为不正确时,则通过SATA物理层模块发送R_ERRP基元至从设备。

S23、基元检测和控制模块在接收到从设备发送的SYNCP基元后,表明从设备进入空闲状态,基元检测和控制模块发送SYNCP基元至SATA物理层模块,通过ROM模块输出加扰多项式计算值异或SYNCP基元得到SYNCP基元对应的扰码,然后通过SATA物理层模块发送SYNCP基元及其对应的扰码至从设备;告知进入空闲状态,等待下一帧数据的发送或接收。

其中在步骤S21至S23中,速率匹配模块根据FIFO状态进行速率匹配的打孔或插入操作,其中在打孔操作时写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时在读出的FIFO数据中插入AlignP基元;速率匹配模块将发送的数据时分为两路,一路数据发送给基元检测和控制模块,另一路数据发送给数据选通模块,基元检测和控制模块判断速率匹配模块发送的数据是帧数据还是无用的扰码序列,并且根据数据状态发送控制信号至数据选通模块;数据选通模块接收基元检测和控制模块发送的控制信号,当基元检测和控制模块判断速率匹配模块发送的数据是帧数据时,控制数据选通模块将帧数据发送给数据加扰和解扰模块进行解扰;当基元检测和控制模块判断速率匹配模块发送的数据是无用的扰码序列时,控制数据选通模块将无用的扰码序列丢弃。

在接收数据时数据流控制过程还包括以下步骤:速率匹配模块在收到数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出。

接收数据时,速率匹配模块根据FIFO状态进行速率匹配的打孔操作具体如下:所述速率匹配模块在检测到FIFO几乎满时,在检测到写入数据为AlignP基元时,控制不写入FIFO中。

接收数据时,速率匹配模块根据FIFO状态进行速率匹配的插入操作具体如下:速率匹配模块在检测到FIFO几乎空时,在读出FIFO的数据中插入AlignP基元,控制不读取FIFO。

本实施例基元检测和控制模块实现对基元的有效控制,在发送数据时通过基元检测和控制模块针对数据流进行AlignP基元的插入,在接收数据时速率匹配模块根据FIFO状态针去掉AlignP基元或插入AlignP基元以对应实现打孔或插入操作,相比现有技术中依赖于FPGA实现速率匹配打孔和插入操作,本实施例速率匹配方法简单有效的实现对SATA协议的数据流速率匹配,有效解决了由于主机和从设备时钟频偏的时间积累造成接口的FIFO溢出的问题。由于本实施例在速率匹配时针对AlignP基元进行插入和去掉的处理不会对接收到的原数据产生任何影响,因此能够有效消除因为打孔或插入操作对数据接收完整性产生的影响,降低实现SATA接口采用专用芯片或对专用IP的依赖。

本实施例通过ROM模块输出加扰多项式计算针对重复的基元进行加扰,简化了SATA协议链路层和物理层的数据流控制的实现,解决了现有技术中对重复基元进行处理起来要考虑的状态繁多以及容易出错的技术问题。其中本实施例通过ROM模块固定存储一个256个时钟周期的加扰多项式计算值,仅通过该加扰多项式计算值实现各重复基于的加扰,能省掉基元加扰的计算和控制过程,简化设计。

根据SATA协议要求,发送端进入物理层的数据每隔256个时钟周期要插入两个时钟周期的AlignP基元,确保接收端数据能对齐。同时,SATA协议建议重复基元的加扰在发送一段时间后要有恢复重发基元的过程,为了确保传输总线上的状态确定,避免发送端发送基元对应的扰码时间过长,接收侧长时间检测不到基元的问题。本实施例结合两个需求,规定ROM存储多项式计算值的长度也为256个时钟周期,当发送基元对应的扰码遇到需要插入两个时钟周期的AlignP基元的情况时,固定在插入的AlignP基元后面恢复发送扰码加扰之前对应的基元,再发送基元对应的扰码,这样由于两个需求控制的长度都是256个时钟周期,可以同时控制,使得AlignP基元出现的位置和基元加扰恢复的控制位置即CONTP基元位置固定,实现了数据流的简化。如图3a所示,是现有技术中现有技术中发送的数据流模型,如图3b所示,是进行本实施例简化后的数据流模型,如图3b所示为当基元检测和控制模块发送大于2个时钟周期的PRIM1基元时,在输出PRIM1基元2个时钟周期后加CONTP基元,表示基元检测和控制模块重复发送CONTP之前的PRIM1基元,ROM模块输出加扰多项式计算值和CONTP之前的重复基元PRIM1基元进行异或运算,具体为从地址0开始读取ROM模块中的加扰多项式计算值,将各地址对应的加扰多项式计算值分别与CONTP基元之前的重复基元PRIM1基元进行异或得到对应基元的加扰数据,即如图3b所示的XXXX表示,其中图3b所示的CONT即为CONTP基元,PRIM2基元表示的是另一发送的基元。当基元对应的扰码序列中要插入AlignP时,本实施例简化后的数据流会在插入AlignP基元后接着恢复发送两个时钟周期PRIM1基元和CONTP基元,再从地址0开始读取ROM模块中的加扰多项式计算值,异或对应基元后输出。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

完整全部详细技术资料下载
当前第1页 1  2  3 
相关技术
  • 一种PSU和ME通信I2C总...
  • 基于PX2芯片的USB OT...
  • 微控制装置及应用于微控制装置...
  • 一种数字信号与USB信号混合...
  • 一种用于变送器调理芯片的通信...
  • 快速识别移动存储设备的方法和...
  • 用于高速通信的接口电路和包括...
  • 测试工装的数字输入输出口扩容...
  • 一种USB HUB的制作方法...
  • 通信方法和装置、控制器芯片与...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1
java接口返回数据流相关技术
  • 具有多接口、高速数据流的通讯移动硬盘的制作方法
  • Mpeg-2编码器数据流输出接口的制作方法
  • 采用数据流的数据发送/接收系统的接口方法
  • 应用于rs485接口的数据流换向控制电路的制作方法
  • 一种通过单个总线接口传输多路数据流的电路系统的制作方法
数据流图相关技术
  • 执行基于图的程序规范的制造方法与工艺
  • 支持上下文数据过滤的血糖仪的制造方法与工艺
  • 一种“夹心糖”式分层自适应软硬的功能枕头的制造方法与工艺
  • 一种处理灵活以太网客户端数据流的方法及装置与制造工艺
  • 一种粮食银行储蓄系统的制作方法
  • 一种患者生命质量监护预警系统的制作方法
  • 一种心脏监护患者专用服的制作方法
  • 一种企业智能物流数据管理系统的制作方法
  • 基于大数据信息设备状态检修的支持系统的制作方法
  • 一种流式处理装置及流式处理系统的制作方法
数据流图和程序流程图相关技术
  • 一种监控系统的数据流合并方法及服务端与流程
  • 一种日志数据流处理方法与流程
  • 数据流调度方法及装置与流程
  • 传输灵活以太网的数据流的方法、发射机和接收机与流程
  • 一种全网络异常数据流分类方法与流程
  • 直播方法和装置、直播数据流展示方法和装置与流程
  • 一种网络设备及其对数据流进行管控的方法与流程
  • 一种减少候选项集的数据流高效用项集挖掘算法的制作方法与工艺
  • 基于数据流聚类的癌症亚型精准发现与演化分析方法与流程
  • 面向运营商骨干网的HTTPS数据流审计方法和系统与流程
数据流相关技术
  • 一种通信网络数据流量测量方法与流程
  • 一种节省基站基带资源和功率资源的方法及装置与流程
  • 用于混合云的控制方法、系统和装置与流程
  • 针对BitTorrent协议中基于矩阵编码的Bitfield消息隐蔽通信检测方法与流程
  • 显示屏组件及具有其的显示屏装置的制造方法
  • 一种基于商品数据的电子商务数据筛选系统的制造方法与工艺
  • 一种电动汽车远程监控通信服务系统及方法与流程
  • 一种基于聚类的多维流数据可视分析方法与流程
  • 语言的变量检测方法和装置与流程
  • 一种可重构系统配置控制器及其流水调度方法与流程
数据流小说相关技术
  • 构造可靠数据流的制作方法
  • 用于低延迟数据存取的数据流分割的制作方法
  • 提供立体视频广播服务的数据流的发送方法和接收方法
  • 密钥流与未对齐的数据流的流式对齐的制作方法
  • 用于检测、校正并验证数据流中的不良数据的系统和方法
  • 一种传送较高层数据流的方法和wtru及一种演进型节点b的制作方法
  • 用于包括修改的视频数据流的监视的方法和系统的制作方法
  • 使用解构和延迟的数据流提供空间可选的通信的方法和设备的制作方法
  • 用于群呼叫的组合数据流的制作方法
  • 促进通信网络中的数据分组的快速数据流的方法,通信网络和数据处理单元的制作方法

深圳SEO优化公司新乡网站改版哪家好安庆百度竞价公司漯河网站推广系统报价延安网站优化按天扣费公司盐城网站建设设计哪家好潮州模板网站建设报价徐州网站搭建价格陇南网站优化推广推荐南充百姓网标王推广报价中山网页设计报价德州网站优化按天收费价格黔西南模板推广价格丽江高端网站设计报价中山百搜标王多少钱石家庄百度网站优化哪家好宣城网站搭建报价张掖外贸网站建设多少钱思茅企业网站制作景德镇建设网站多少钱思茅百搜标王哪家好永湖高端网站设计报价抚顺网站优化按天收费多少钱遂宁网站设计模板哪家好六安网站搭建推荐北京网站设计模板报价衢州百度网站优化排名多少钱临汾关键词排名报价西安建网站多少钱厦门百度网站优化推荐宝鸡SEO按天收费价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化