一种基于FPGA的SATA协议上电初始化控制方法及控制器技术

技术编号:16038084 阅读:98 留言:0更新日期:2017-08-19 19:54
本发明专利技术公开了一种基于FPGA的SATA协议上电初始化控制方法及控制器,控制方法包括以下步骤:初始断开情况下将设备与主机对接时,主机主动发出COMRESET信号用于主机对设备的硬件复位;主机停止释放COMRESET信号,并把总线保持静止状态,等待设备的COMINIT信号的响应;主机端收到来自设备端的COMINIT信号的响应,则主机与设备重新建立连接;之后主机发出COMWAKE信号;设备响应和速率匹配;设备接收到主机返还的ALIGN基元之后发送SYNC基元表明上电初始化操作完成。本发明专利技术能够简单有效地实现OOB控制和速率自协商,避免了SATA协议实现对特殊芯片和IP的依赖。

【技术实现步骤摘要】
一种基于FPGA的SATA协议上电初始化控制方法及控制器
本专利技术属于SATA接口控制
,特别涉及一种基于FPGA的SATA协议上电初始化控制方法及控制器。
技术介绍
SATA(SerialAdvancedTechnologyAttachment)即串行高级技术附件。它是一种计算机总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输之用。这是一种完全不同于并行PATA(ParallelAdvancedTechnologyAttachment)的新型硬盘接口类型,由于采用串行方式传输数据而得名。SATA总线使用嵌入式时钟信号,具备了更强的纠错能力,这在很大程度上提高了数据传输的可靠性。串行接口还具有结构简单、支持热插拔的优点。目前,SATA分别有SATA1.0、SATA2.0和SATA3.0三种规格,速率分别为1.5Gbit/s、3Gbit/s和6Gbit/s,未来将有更快速的SATAExpress规格。SATA协议的上电初始化,是SATA协议物理层的重要组成部分,目前公知的实现方法是利用第三方专用芯片或具有SATA知识产权核的高端FPGA器件实现。虽然高端的FPGA(FieldProgrammableGateArray,现场可编程门阵列)的高速收发器中有SATA协议的支持,但这种实现方式对器件依赖高,可移值性低,成本昂贵。中低端的FPGA芯片有高速收发器的支持,但其既没有带外信号OOB(Outofband)控制和检测的功能,也没有速率自协商的功能,这大大制约了中低端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状态本文档来自技高网...
一种基于FPGA的SATA协议上电初始化控制方法及控制器

【技术保护点】
一种基于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基元后,通信握手链接建立完成,上电初始化操作完成,进入正常工作模式。...

【技术特征摘要】
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信号后等...

【专利技术属性】
技术研发人员:王将符永逸
申请(专利权)人:广州慧睿思通信息科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1