CN107066418A - 一种基于fpga的sata协议上电初始化控制方法及控制器 - Google Patents
一种基于fpga的sata协议上电初始化控制方法及控制器 Download PDFInfo
- Publication number
- CN107066418A CN107066418A CN201710130286.9A CN201710130286A CN107066418A CN 107066418 A CN107066418 A CN 107066418A CN 201710130286 A CN201710130286 A CN 201710130286A CN 107066418 A CN107066418 A CN 107066418A
- Authority
- CN
- China
- Prior art keywords
- main frame
- signals
- equipment
- data
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种基于FPGA的SATA协议上电初始化控制方法及控制器,控制方法包括以下步骤:初始断开情况下将设备与主机对接时,主机主动发出COMRESET信号用于主机对设备的硬件复位;主机停止释放COMRESET信号,并把总线保持静止状态,等待设备的COMINIT信号的响应;主机端收到来自设备端的COMINIT信号的响应,则主机与设备重新建立连接;之后主机发出COMWAKE信号;设备响应和速率匹配;设备接收到主机返还的ALIGN基元之后发送SYNC基元表明上电初始化操作完成。本发明能够简单有效地实现OOB控制和速率自协商,避免了SATA协议实现对特殊芯片和IP的依赖。
Description
技术领域
本发明属于SATA接口控制技术领域,特别涉及一种基于FPGA的SATA协议上电初始化控制方法及控制器。
背景技术
SATA(Serial Advanced Technology Attachment)即串行高级技术附件。它是一种计算机总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。这是一种完全不同于并行PATA(Parallel Advanced Technology Attachment)的新型硬盘接口类型,由于采用串行方式传输数据而得名。SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。目前,SATA分别有SATA 1.0、SATA2.0和SATA3.0三种规格,速率分别为1.5Gbit/s、3Gbit/s和6Gbit/s,未来将有更快速的SATA Express规格。
SATA协议的上电初始化,是SATA协议物理层的重要组成部分,目前公知的实现方法是利用第三方专用芯片或具有SATA知识产权核的高端FPGA器件实现。虽然高端的FPGA(Field Programmable Gate Array,现场可编程门阵列)的高速收发器中有SATA协议的支持,但这种实现方式对器件依赖高,可移值性低,成本昂贵。中低端的FPGA芯片有高速收发器的支持,但其既没有带外信号OOB(Out of band)控制和检测的功能,也没有速率自协商的功能,这大大制约了中低端FPGA芯片实现SATA协议。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于FPGA的SATA协议上电初始化控制方法,能够简单有效地实现OOB控制和速率自协商,避免了SATA协议实现对特殊芯片和IP的依赖。
本发明的另一目的在于克服现有技术的缺点与不足,提供一种基于FPGA的SATA协议上电初始化控制器,能够简单有效地实现OOB控制和速率自协商,避免了SATA协议实现对特殊芯片和IP的依赖。
本发明的目的通过以下的技术方案实现:
一种基于FPGA的SATA协议上电初始化控制方法,包括以下步骤:
S1、初始主机与设备处于断开情况下,将设备与主机对接时,主机会主动发出COMRESET信号用于主机对设备的硬件复位;
S2、主机对设备的硬件复位状态解除,主机停止释放COMRESET信号,并把总线保持静止状态,等待设备的COMINIT信号的响应;
如果在一定间隔时间内,主机端没有收到来自设备端的COMINIT信号的响应,则主机重新发送COMRESET信号;如果在一定间隔时间内,主机端收到来自设备端的COMINIT信号的响应,则主机与设备重新建立连接;
S3、主机与设备重新建立连接后,主机发出COMWAKE信号;
S4、设备响应和速率匹配:
设备检测到主机发出的COMWAKE信号后进行校准,然后发出若干个突发的COMWAKE信号,接着以设备支持的最高传输速率连续发出ALIGN基元数据流;
如果主机从检测到若干个突发的COMWAKE信号到接收到第一个ALIGN基元的时间超过第一时间范围,则主机重新启动上电握手过程,直到应用层将其终止;
如果主机从检测到若干个突发的COMWAKE信号到接收到第一个ALIGN基元的时间没有超过第一时间范围,则主机锁存接收到的ALIGN基元,然后以同样的速率将该ALIGN基元返还给设备;
如果在第二时间范围内设备没有收到主机的数据返还有效响应,设备将尝试在较低一级的传输速率上发送ALIGN基元数据流;如果在第二时间范围内设备依然没有收到主机的数据返还有效响应,设备将一直重复尝试,直到设备支持的最低传输速率都不能被响应,这时设备将进入错误状态;
如果在第二时间范围内设备收到主机的数据返还有效响应,主机能在这个传输速率上进行通信,并进入下一阶段;
S5、设备接收到主机返还的ALIGN基元数据之后发送SYNC基元表明通链路已经建立;
当主机接收到若干个非ALIGN基元后,通信握手链接建立完成,上电初始化操作完成,进入正常工作模式。
优选的,任何时候当设备检测到COMRESET信号,则发出COMINIT信号响应反馈主机。
优选的,设备可以在任何时间主动发送COMINIT信号请求重新连接。
优选的,步骤S3中,主机与设备重新建立连接后,主机进行校准操作。
优选的,步骤S3中,主机发送COMWAKE信号完成后,在此次握手过程中主机侧不再发送OOB信号,并将发送部分的模拟复位和数字复位按时序要求进行复位操作;步骤S4中,主机在收到COMWAKE信号结束后,在此次握手过程中主机不再接收到OOB信号,并将接收部分的模拟复位和数字复位按时序要求进行复位操作。
优选的,主机在任何传输速率上都可以在54.6μs内锁存数据。
优选的,步骤S4中主机接收到若干个突发的COMWAKE信号后等待ALIGN基元的出现,期间以所支持的最低速率连续发送D10.2数据。
优选的,步骤S4中,第一时间范围为873.8μs;第二时间范围为2048个UI。
一种基于FPGA的SATA协议上电初始化控制器,包括:
上电握手状态控制模块、OOB带外信号检测和发送模块、速率自协商模块、收发器复位控制模块、速率匹配模块和物理层收发器模块;
上电握手状态控制模块,是整个上电初始化的控制中心,实现上电握手的状态机控制、发送和接收数据的处理、基元信号的检测和发送、收发器复位的控制管理;
OOB带外信号检测和发送模块,在FPGA高速收发器的基础上实现,利用高速收发器PMA层的状态和控制信号,根据需要发送控制信号产生COMRESET和COMWAKE信号,根据状态信号使用检测时间窗检测COMINIT、COMWAKE两种不同信号,具体分为发送和检测两部分实现;
速率自协商模块,利用FPGA的高速收发器的动态重配置功能,直接作用于高速收发器的锁相环,实现不同速率的传输通信;
收发器复位控制模块,控制模拟复位和数字复位按时序要求进行复位操作;
速率匹配模块,采用FIFO结构,速率匹配模块在接收数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出;
物理层收发器模块,采用FPGA的高速收发器实现,实现8b/10编码和解码功能、串并和并串转换功能、逗点序列检测功能、预加重功能、线性均衡功能和带外控制功能。
优选的,OOB信号发送部分包括:上电初始化过程中,上电握手状态控制模块根据状态机需要发送相应的COMRESET和COMWAKE控制使能信号,并将相应的控制使能信号发送给OOB带外信号发送模块,OOB带外信号发送模块根据控制使能信号控制高速收发器的tx_elecidle信号产生相应的OOB信号,相应的OOB信号通过高速收发器发送出去;具体的,当tx_elecidle为高电平时,发送的是静噪,当tx_elecidle为低电平时,发送的是ALIGN基元或者D24.3数据;
OOB信号检测部分包括:上电初始化过程中,OOB带外信号检测和发送模块监控高速收发器rx_signaldetect状态指示信号,当信号为高电平时说明接收端上接收到了连续的有效数据,当信号为低电平时,说明接收到的是静噪;分别统计rx_signaldetect状态高电平的时间和低电平的时间,根据OOB信号检测窗的时间要求判断为何种OOB信号。
优选的,所述速率匹配模块在检测到FIFO几乎满时,若检测到写入数据为ALIGN基元或无用的扰码序列时,控制写入数据中去掉ALIGN基元或无用的扰码序列;所述速率匹配模块在检测到FIFO几乎空时,在FIFO数据输出口中***ALIGN基元,同时控制不读取FIFO。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明利高速收发器PMA模块的控制和检测信号实现OOB信号的检测和发送,避免了SATA协议实现对特殊芯片和IP的依赖。
2、本发明在链路层接收数据时速率匹配模块根据FIFO状态通过去掉ALIGN基元实现打孔操作,通过***ALIGN基元实现***操作,这种速率匹配方法简单有效的实现了SATA协议的数据流速率匹配,有效解决了由于主机和从设备时钟频偏的时间积累造成接收端的FIFO溢出的问题,并且能够有效消除因为打孔或***操作对数据接收完整性产生的影响,降低实现SATA接口对专用芯片或专用IP的依赖。
3、本发明利用高速收发器的动态重配置实现速率自协商功能,能自动识别兼容不同的SATA接口,最高能支持到SATA3.0。
4、本发明在SATA上电初始化的不同阶段加入了高速收发器的复位控制,能有效的解决由于OOB信号中的静噪引起高速收发器工作异常导致握手失败的问题,提高控制器的稳定性和可靠性。
5、本发明控制器以FPGA为硬件开发平台,利用FPGA内部逻辑实现SATA接口的数据流控制,基于单片FPGA实现,能够简化设计、减少PCB面积、提高可靠性和稳定性,FPGA的高速收发器能较好的支持SATA协议,实现SATA物理层。
附图说明
图1是实施例1中SATA上电初始化控制流程图。
图2是实施例2中控制器结构原理图。
图3是实施例2中OOB信号结构框图。
图4是实施例2中控制器中速率匹配模块控制流程图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
一种基于FPGA的SATA协议上电初始化控制方法,如图1,在本实施例中SATA接口直接连接硬盘,硬盘作为从设备,而FPGA控制器作为主机。
实现上电初始化的控制方法如下:
S1、初始主机与设备处于断开情况下,将设备与主机对接时,主机会主动发出COMRESET信号用于主机对设备的硬件复位;
S2、主机对设备的硬件复位状态解除,主机停止释放COMRESET信号,并把总线保持静止状态,等待设备的COMINIT信号的响应;
如果在一定重试间隔时间内,主机端没有收到来自设备端的COMINIT信号的响应,则主机重新发送COMRESET信号;如果在一定重试间隔时间内,主机端收到来自设备端的COMINIT信号的响应,则主机与设备重新建立连接。
任何时候当设备检测到COMRESET信号,则发出COMINIT信号响应反馈主机。
设备也可以在任何时间(当设备状态出现异常的情况下)主动发送COMINIT信号请求重新连接。
S3、主机与设备重新建立连接后,主机进行校准操作(如果不需要校准可以不执行),然后发出COMWAKE信号,激活设备。
发送COMWAKE信号完成后,在此次握手过程中主机侧不再发送OOB信号,为了防止高速收发器发送端出现异常,将发送部分的模拟复位和数字复位按时序要求进行复位操作。
S4、设备响应和速率匹配阶段。
设备在它的RX差分对上检测到COMWAKE信号后校准,然后发出6个突发的COMWAKE信号,接着以设备最高支持的传输速率连续发出ALIGN基元数据流。
如果主机从检测到6个突发的COMWAKE信号到接收到第一个ALIGN基元的响应时间超过873.8μs,则主机重新启动上电握手过程,直到应用层将其终止。
如果主机从检测到6个突发的COMWAKE信号到接收到第一个ALIGN基元的响应时间没有超过873.8μs,则主机锁存接收到的ALIGN基元,然后以同样的速率将该ALIGN数据返还给设备。主机设计应当保证在任何支持传输速率上都可以在54.6μs内锁存数据。主机接收到6个突发的COMWAKE信号后等待ALIGN基元的出现,这段时间都以所支持的最低速率连续发送D10.2数据,等待锁存ALIGN基元。
如果在2048个UI(约54.6μs)内设备没有收到主机的有效响应,设备推断主机不能在这个传输速率上进行通信。如果设备支持其它传输速率,设备将尝试在较低一级的传输速率上发送ALIGN基元数据流,同样持续2048个UI。一直重复尝试,直到设备支持的最低传输速率都不能被响应,这时设备将进入错误状态。
如果在2048个UI(约54.6μs)内收到主机的有效响应,设备推断主机能在这个传输速率上进行通信,并进入下一阶段。
在收到COMWAKE信号结束后,在此次握手过程中主机不再接收到OOB信号,为了防止高速收发器接收端出现异常,将接收部分的模拟复位和数字复位按时序要求进行复位操作。
S5、设备接收到ALIGN基元数据之后(需要相同速率才能检测到),此时表明通链路已经建立,设备端发送SYNC基元表明连接建立。
当主机接收到三个非ALIGN基元后,通信握手链接建立完成,上电初始化操作完成,进入正常工作模式。
实施例2
一种基于实施例1中SATA协议上电初始化控制方法的控制器,控制器以FPGA为硬件开发平台,利用FPGA内部逻辑实现SATA接口的上电初始化控制。本实施例采用Altera公司的Arria V系列器件5AGXFB3H4F35C4作为FPGA硬件开发平台,器件提供362K的LE资源,1726个M10K的存储块,24个高达6.5536Gbps的高速收发器,满足设计要求。
如图2所示,本实施例控制器包括上电握手状态控制模块1、OOB带外信号检测和发送模块2、速率自协商模块3、收发器复位控制模块4、速率匹配模块5和物理层收发器模块6。
上电握手状态控制模块1,是整个上电初始化的控制中心,主要功能包括:上电握手的状态机控制、发送和接收数据的处理、基元信号的检测和发送、收发器复位的控制管理。上电握手的状态机控制按协议的状态机跳转实现,并在状态机中***对速率自协商的控制。发送数据时根据不同的状态机发送对应的基元信号和数据,接收数据时接收来自于速率匹配模块的数据。进行基元信号的检测,用于判断设备端所处的状态。高速收发器发送和检测带外信号的过程会引起收发器状态的异常,使用独立的复位模块,在不同的状态机阶段加入收发器的复位功能,使得OOB带外信号不影响收发器的正常工作。
OOB带外信号包括三种信号:COMRESET、COMINIT和COMWAKE;各个信号的组成见表1和图3。
表1 OOB信号的组成结构
时间要求 | 正常值 | gap正常检测窗 | gap允许检测窗 |
T1(ns) | 106.7 | 101.3<T<112 | 35<T<175 |
T2(ns) | 320 | 304<T<336 | 175<T<525 |
OOB带外信号检测和发送模块2在FPGA高速收发器的基础上实现,利用高速收发器PMA层(物理媒介适配层)的状态和控制信号,根据需要发送控制信号产生COMRESET和COMWAKE信号,根据状态信号使用检测时间窗检测COMINIT、COMWAKE两种不同信号,具体分为发送和检测两部分实现:
OOB信号发送部分,上电初始化过程,上电握手状态控制模块1根据状态机需要发送相应的COMRESET和COMWAKE控制使能信号,并将相应的控制使能信号发送给OOB带外信号发送模块,OOB带外信号发送模块根据控制使能信号控制高速收发器的tx_elecidle信号产生相应的OOB信号,相应的OOB信号通过高速收发器发送出去。具体的,当tx_elecidle为高电平时,发送的是静噪,当tx_elecidle为低电平时,发送的是ALIGN基元或者D24.3数据。发送的OOB信号按T1和T2的正常值组成,连续发送多个OOB信号,以确保设备能收到。
OOB信号检测部分,上电初始化过程中OOB带外信号检测和发送模块2监控高速收发器rx_signaldetect状态指示信号,当信号为高电平时说明接收端上接收到了连续的有效数据,当信号为低电平时,说明接收到的是静噪。分别统计rx_signaldetect状态高电平的时间和低电平的时间,如果满足图3中三个中OOB信号T1和T2允许检测窗的时间要求,则为该OOB信号,连续收到6个后确定为该OOB信号并发送该OOB检测信号到上电握手状态控制模块1。
速率自协商模块3,速率自协商的控制过程处在SATA上电初始过程中的设备响应阶段,当设备响应主机的COMWAKE唤醒信号后,会以设备所能支持的最大速率发出ALIGN基元数据流,由于ALIGN基元数据流携带有时钟速率信息,主机必需在相同的速率下才能识别并响应设备,设备如果在约54.6μs内没有收到主机的有效响应,设备推断主机不能在这个速率上进行通信。如果支持其它传输速率,设备将尝试在较低的传输速率上发送ALIGN基元数据流,同样持续约54.6μs。这种尝试将一直重复直到最低的支持速率都不能被响应,这时设备将进入错误状态,重新进行握手初始化操作。本发明的速率自协商模块,利用FPGA的高速收发器的动态重配置功能实现,直接作用于高速收发器的PLL(锁相环,Phase LockedLoop),实现不同速率的传输通信。
收发器复位控制模块4,高速收发器的复位包括RX部分的模拟和数字复位、TX部分的模拟和数字复位。高速收发器的复位控制发生在FPGA上电过程和SATA上电初始化的不同阶段。FPGA上电过程的高速收发器复位按照器件手册的要求完成;在SATA上电初始化过程中发出COMWAKE后,在当次的握手过程中主机侧不再发送OOB信号,为了避免发送端的PMA和PCS(物理编码子层)模块出现异常,将发送部分的模拟复位和数字复位都按时序要求进行复位操作;在SATA上电初始化过程中在收到COMWAKE信号结束后,在当次握手过程中主机侧不再接收到OOB信号,为了防止接收端PMA和PCS模块出现异常,将接收部分的模拟复位和数字复位都按时序要求进行复位操作。
基于FPGA的SATA协议实现,FPGA作为主机,与从机(大部分为硬盘)存在时钟不同源,时钟频偏的时间积累会造成接口的FIFO溢出,需要做数据流的速率匹配处理。速率匹配(rate matching)是指传输信道上的比特被重发或者打孔,以匹配物理信道的承载能力,信道映射时达到传输格式所要求的比特速率。重发就是当输出比特多于输入比特时在当前比特和后面的比特之间***一次当前比特,打孔是当输入比特数多于输出比特数时,按照一定的规则把一些比特打掉,后面的比特前移。
速率匹配模块5,采用FIFO结构,接收数据帧时,速率匹配模块根据FIFO状态进行速率匹配的打孔或***操作,其中在打孔操作时,写入数据中去掉ALIGN基元或无用的扰码序列;在***操作时,在读出的FIFO数据中***ALIGN基元。
速率匹配模块在接收数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出;
如图4所示,接收数据时,本实施例速率匹配模块根据FIFO状态进行速率匹配的打孔操作具体如下:所述速率匹配模块在检测到FIFO几乎满时,说明不同源的两个时钟中的写入数据的时钟速率大于读出数据的时钟速率,即接收数据时恢复时钟大于发送数据时的发送时钟,在检测到写入数据为ALIGN基元或无用的扰码序列时,控制不写入FIFO中,即写入数据中去掉为ALIGN基元或无用的扰码序列;
如图4所示,接收数据时,本实施例速率匹配模块根据FIFO状态进行速率匹配的***操作具体如下:所述速率匹配模块在检测到FIFO几乎空时,说明不同源的两个时钟中的写入数据的时钟速率小于读出数据的时钟,即接收数据恢复时钟小于发送数据时的发送时钟,在FIFO数据输出口中***ALIGN基元,同时控制不读取FIFO(即禁止读出,禁止读出过程的数据不能为之前FIFO保留的值,需要在FIFO数据输出口***ALIGN基元,因为ALIGN基元会被解扰过程丢弃,如果不***ALIGN基元禁止读出后FIFO上保留下来的数据会被当作数据进行解扰)。
物理层收发器模块6:采用FPGA的高速收发器实现,主要实现的功能有:8b/10编码和解码功能,串并和并串转换功能,逗点序列检测功能,预加重功能,线性均衡功能和带外控制功能。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (10)
1.一种基于FPGA的SATA协议上电初始化控制方法,包括以下步骤:
S1、初始主机与设备处于断开情况下,将设备与主机对接时,主机会主动发出COMRESET信号用于主机对设备的硬件复位;
S2、主机对设备的硬件复位状态解除,主机停止释放COMRESET信号,并把总线保持静止状态,等待设备的COMINIT信号的响应;
如果在一定间隔时间内,主机端没有收到来自设备端的COMINIT信号的响应,则主机重新发送COMRESET信号;如果在一定间隔时间内,主机端收到来自设备端的COMINIT信号的响应,则主机与设备重新建立连接;
S3、主机与设备重新建立连接后,主机发出COMWAKE信号;
S4、设备响应和速率匹配:
设备检测到主机发出的COMWAKE信号后进行校准,然后发出若干个突发的COMWAKE信号,接着以设备支持的最高传输速率连续发出ALIGN基元数据流;
如果主机从检测到若干个突发的COMWAKE信号到接收到第一个ALIGN基元的时间超过第一时间范围,则主机重新启动上电握手过程,直到应用层将其终止;
如果主机从检测到若干个突发的COMWAKE信号到接收到第一个ALIGN基元的时间没有超过第一时间范围,则主机锁存接收到的ALIGN基元,然后以同样的速率将该ALIGN基元返还给设备;
如果在第二时间范围内设备没有收到主机的数据返还有效响应,设备将尝试在较低一级的传输速率上发送ALIGN基元数据流;如果在第二时间范围内设备依然没有收到主机的数据返还有效响应,设备将一直重复尝试,直到设备支持的最低传输速率都不能被响应,这时设备将进入错误状态;
如果在第二时间范围内设备收到主机的数据返还有效响应,主机能在这个传输速率上进行通信,并进入下一阶段;
S5、设备接收到主机返还的ALIGN基元数据之后发送SYNC基元表明通链路已经建立;
当主机接收到若干个非ALIGN基元后,通信握手链接建立完成,上电初始化操作完成,进入正常工作模式。
2.根据权利要求1所述的控制方法,其特征在于,任何时候当设备检测到COMRESET信号,则发出COMINIT信号响应反馈主机;设备也可以在任何时间主动发送COMINIT信号请求重新连接。
3.根据权利要求1所述的控制方法,其特征在于,步骤S3中,主机与设备重新建立连接后,主机进行校准操作。
4.根据权利要求1所述的控制方法,其特征在于,步骤S3中,主机发送COMWAKE信号完成后,在此次握手过程中主机侧不再发送OOB信号,并将发送部分的模拟复位和数字复位按时序要求进行复位操作;步骤S4中,主机在收到COMWAKE信号结束后,在此次握手过程中主机不再接收到OOB信号,并将接收部分的模拟复位和数字复位按时序要求进行复位操作。
5.根据权利要求1所述的控制方法,其特征在于,主机在任何传输速率上都可以在54.6μs内锁存数据。
6.根据权利要求1所述的控制方法,其特征在于,步骤S4中主机接收到若干个突发的COMWAKE信号后等待ALIGN基元的出现,期间以所支持的最低速率连续发送D10.2数据。
7.根据权利要求1所述的控制方法,其特征在于,步骤S4中,第一时间范围为873.8μs;第二时间范围为2048个UI。
8.一种基于权利要求1所述的控制方法的控制器,其特征在于,包括:
上电握手状态控制模块、OOB带外信号检测和发送模块、速率自协商模块、收发器复位控制模块、速率匹配模块和物理层收发器模块;
上电握手状态控制模块,是整个上电初始化的控制中心,实现上电握手的状态机控制、发送和接收数据的处理、基元信号的检测和发送、收发器复位的控制管理;
OOB带外信号检测和发送模块,在FPGA高速收发器的基础上实现,利用高速收发器PMA层的状态和控制信号,根据需要发送控制信号产生COMRESET和COMWAKE信号,根据状态信号使用检测时间窗检测COMINIT、COMWAKE两种不同信号,具体分为发送和检测两部分实现;
速率自协商模块,利用FPGA的高速收发器的动态重配置功能,直接作用于高速收发器的锁相环,实现不同速率的传输通信;
收发器复位控制模块,控制模拟复位和数字复位按时序要求进行复位操作;
速率匹配模块,采用FIFO结构,速率匹配模块在接收数据时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出;
物理层收发器模块,采用FPGA的高速收发器实现,实现8b/10编码和解码功能、串并和并串转换功能、逗点序列检测功能、预加重功能、线性均衡功能和带外控制功能。
9.根据权利要求8所述的控制器,其特征在于,OOB信号发送部分包括:上电初始化过程中,上电握手状态控制模块根据状态机需要发送相应的COMRESET和COMWAKE控制使能信号,并将相应的控制使能信号发送给OOB带外信号发送模块,OOB带外信号发送模块根据控制使能信号控制高速收发器的tx_elecidle信号产生相应的OOB信号,相应的OOB信号通过高速收发器发送出去;具体的,当tx_elecidle为高电平时,发送的是静噪,当tx_elecidle为低电平时,发送的是ALIGN基元或者D24.3数据;
OOB信号检测部分包括:上电初始化过程中,OOB带外信号检测和发送模块监控高速收发器rx_signaldetect状态指示信号,当信号为高电平时说明接收端上接收到了连续的有效数据,当信号为低电平时,说明接收到的是静噪;分别统计rx_signaldetect状态高电平的时间和低电平的时间,根据OOB信号检测窗的时间要求判断为何种OOB信号。
10.根据权利要求8所述的控制器,其特征在于,所述速率匹配模块在检测到FIFO几乎满时,若检测到写入数据为ALIGN基元或无用的扰码序列时,控制写入数据中去掉ALIGN基元或无用的扰码序列;所述速率匹配模块在检测到FIFO几乎空时,在FIFO数据输出口中***ALIGN基元,同时控制不读取FIFO。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710130286.9A CN107066418A (zh) | 2017-03-07 | 2017-03-07 | 一种基于fpga的sata协议上电初始化控制方法及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710130286.9A CN107066418A (zh) | 2017-03-07 | 2017-03-07 | 一种基于fpga的sata协议上电初始化控制方法及控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107066418A true CN107066418A (zh) | 2017-08-18 |
Family
ID=59622227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710130286.9A Pending CN107066418A (zh) | 2017-03-07 | 2017-03-07 | 一种基于fpga的sata协议上电初始化控制方法及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066418A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880728A (zh) * | 2020-07-14 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 机械硬盘***启动控制方法以及装置、存储设备 |
CN111881077A (zh) * | 2020-07-29 | 2020-11-03 | 北京计算机技术及应用研究所 | 一种提高sata协议接口稳定性的参数自适应调整方法 |
CN112230752A (zh) * | 2020-10-14 | 2021-01-15 | 天津津航计算技术研究所 | 一种使用带外信号对硬盘阵列上电进行控制的方法 |
CN114564432A (zh) * | 2022-03-04 | 2022-05-31 | 中电科申泰信息科技有限公司 | 一种基于fpga的高速数据sata接口新型验证模组及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101411124A (zh) * | 2006-02-14 | 2009-04-15 | 菲尼萨公司 | 内嵌设备中的诊断功能 |
CN102761396A (zh) * | 2012-07-30 | 2012-10-31 | 哈尔滨工业大学 | 基于fpga的高速串行接口 |
CN102890622A (zh) * | 2012-09-29 | 2013-01-23 | 无锡众志和达存储技术股份有限公司 | 一种基于协处理器的sata控制器 |
CN106354686A (zh) * | 2016-08-22 | 2017-01-25 | 广州慧睿思通信息科技有限公司 | 一种基于fpga的sata接口数据流控制器及控制方法 |
-
2017
- 2017-03-07 CN CN201710130286.9A patent/CN107066418A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101411124A (zh) * | 2006-02-14 | 2009-04-15 | 菲尼萨公司 | 内嵌设备中的诊断功能 |
CN102761396A (zh) * | 2012-07-30 | 2012-10-31 | 哈尔滨工业大学 | 基于fpga的高速串行接口 |
CN102890622A (zh) * | 2012-09-29 | 2013-01-23 | 无锡众志和达存储技术股份有限公司 | 一种基于协处理器的sata控制器 |
CN106354686A (zh) * | 2016-08-22 | 2017-01-25 | 广州慧睿思通信息科技有限公司 | 一种基于fpga的sata接口数据流控制器及控制方法 |
Non-Patent Citations (1)
Title |
---|
刘赞: "基于FPGA的SATA3_0主机端控制器的设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111880728A (zh) * | 2020-07-14 | 2020-11-03 | 苏州浪潮智能科技有限公司 | 机械硬盘***启动控制方法以及装置、存储设备 |
CN111880728B (zh) * | 2020-07-14 | 2022-11-11 | 苏州浪潮智能科技有限公司 | 机械硬盘***启动控制方法以及装置、存储设备 |
US11907554B2 (en) | 2020-07-14 | 2024-02-20 | Inspur Suzhou Intelligent Technology Co., Ltd. | Controlling startup of hard disk drive (HDD) by locking initialization of small computer system interface (SCSI) state(s) using an out-of-band (OOB) negotiation process |
CN111881077A (zh) * | 2020-07-29 | 2020-11-03 | 北京计算机技术及应用研究所 | 一种提高sata协议接口稳定性的参数自适应调整方法 |
CN111881077B (zh) * | 2020-07-29 | 2024-04-19 | 北京计算机技术及应用研究所 | 一种提高sata协议接口稳定性的参数自适应调整方法 |
CN112230752A (zh) * | 2020-10-14 | 2021-01-15 | 天津津航计算技术研究所 | 一种使用带外信号对硬盘阵列上电进行控制的方法 |
CN114564432A (zh) * | 2022-03-04 | 2022-05-31 | 中电科申泰信息科技有限公司 | 一种基于fpga的高速数据sata接口新型验证模组及方法 |
CN114564432B (zh) * | 2022-03-04 | 2023-05-09 | 中电科申泰信息科技有限公司 | 一种基于fpga的高速数据sata接口新型验证模组及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066418A (zh) | 一种基于fpga的sata协议上电初始化控制方法及控制器 | |
US9129066B2 (en) | Device disconnect detection | |
EP2619956B1 (en) | Method and system of adapting communication links to link conditions on a platform | |
US8719475B2 (en) | Method and system for utilizing low power superspeed inter-chip (LP-SSIC) communications | |
CN106095334B (zh) | 一种基于fpga的高速数据采集存储*** | |
US10341020B2 (en) | Flexible ethernet logical lane aggregation | |
US7720075B2 (en) | Network idle protocol with reduced channels | |
US8548011B2 (en) | Dynamic host clock compensation | |
DE112013001661T5 (de) | Bereitstellung eines konsolidierten Seitenband Kommunikationskanal zwischen Geräten | |
US20180359796A1 (en) | Multi-gigabit wireless tunneling system | |
CN115391262A (zh) | 高速***组件互连接口装置及其操作方法 | |
US8924611B2 (en) | Providing a serial protocol for a bidirectional serial interconnect | |
US20120120967A1 (en) | Universal Serial Interface | |
AU751233B2 (en) | Parallel backplane physical layer interface with scalable data bandwidth | |
DE102019128383A1 (de) | Verfahren und vorrichtung zum synchronen signalisierenzwischen link-partnern in einer hochgeschwindigkeitsverbindung | |
CN102377505A (zh) | 一种基于串口的ipmi数据包传输方法 | |
CN105807886A (zh) | 一种芯片唤醒***及方法以及移动终端 | |
US8503474B2 (en) | System and method for enhanced physical layer device interface capability for backward support of fast retrain | |
CN103558907A (zh) | 电子装置及降低电子装置功耗的方法 | |
CN103901831A (zh) | 多控制器之间的通信*** | |
US20240104046A1 (en) | Spread spectrum clock negotiation method, and peripheral component interconnect express device and system | |
US8954623B2 (en) | Universal Serial Bus devices supporting super speed and non-super speed connections for communication with a host device and methods using the same | |
KR102428450B1 (ko) | 호스트 컨트롤러, 보안 요소 및 직렬 주변기기 인터페이스 통신 시스템 | |
KR20090009512A (ko) | Sata 전자 장치 및 상기 sata 전자 장치의 테스트방법 | |
CN107357756A (zh) | 多设备在主模式下进行iic通信的*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170818 |