基于RocketIO的SATA物理层高速串行传输实现_第1页
基于RocketIO的SATA物理层高速串行传输实现_第2页
基于RocketIO的SATA物理层高速串行传输实现_第3页
基于RocketIO的SATA物理层高速串行传输实现_第4页
基于RocketIO的SATA物理层高速串行传输实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文章编号:1671-4598(2009)05-0937-03中图分类号:TP333文献标识码:A基于RocketIO的SATA物理层高速串行传输实现欧阳科文,黎福海,唐纯杰(湖南大学电气与信息工程学院,湖南长沙410082)高速数据传输是硬盘存储系统设计的一个重点和难点,针对Virtex-4系列FPGA内嵌的RocketIO收发器模块,设计应用于SATA物摘要:理层的高速串行数据传输电路。对SATA物理层功能要求进行分析,描述RocketIO收发器的内部结构特点和工作原理,详细讨论基于RocketIO收发器的SATA物理层电路逻辑设计,重点介绍RocketIO收发器的时钟控制和复位的配置。实验结果表明:采用RocketIO收发器进行高速串行传输设计,符合SATA物理层设计要求,并提高系统的集成度和可靠性,为SATA接口的固态硬盘开发奠定基础。RocketIO;SATA物理层;高速串行传输关键词:ImplementationofHigh-speedSerialTransmissionbyRocketIOUsedonSATAPhysicalLayerOuyangKewen,LiFuhai,TangChunjie(CollegeofElectricalandInformationEngineering,HunanUniversity,Changsha410082,China)Abstract:Thispaperistodesignahigh-speedserialtransmissionmechanisminSATAphysicallayerbasedontheRocketIOtranceivermoduleofVirtex-4FPGA.Furthermore,thethesisprimarilyanalyzesthefunctionrequirmentofSATAphysicallayeranddescribestheinternalstructureandoperatingprincipleofRocketIOMGTindetail.Besides,thedesignofSATAphysicallayerlogiccircuitisdiscussed,andtheconfigurationaboutclockcontrolandresetareintroduced.TheexperimentalresultsshowthatthismechanismaccomplishesthedesignrequirmentsofSATAphysicallayerandimprovesthesystemintergrationdegreeandreliability.It’salsothefoundationtodevelopSolidStateDiskwithSATAinterface.Keywords:RocketIO;SATAphysicallayer;high-speedserialtransmission0引言硬盘接口技术SATA全称:SerialAdvancedTechnologyAttachment,是一种串行数据传输协议,主要应用于存储系统的数据传输。随着硬盘容量的增加,海量数据传输要求越来越高,传统的PATA接口的不足日益突出,PATA采用40针的并行接口,传输数据的速度提高,并行信号之间的相互串扰严重,同步设计难度加大,目前PATA的最高速度为133MB/s(UDMA/133)。且PATA占用电路板面积大,不利于嵌入式系统集成。当前在系统级互连设计中,高速串行互连技术迅速取代传统的并行传输技术正成为业界趋势。由于改用线路相互之间干扰较小的串行线路进行信号传输,SATA总线具有更快的传输速度,数据校验措施更为完善,初步传输速率已达到150MB/s[1]。串行接口还具有结构简单、支持热插拔等优点。Xilinx公司在其Virtex-4FX系列FPGA中推出的Rock-etIOMulti-GigabitTransceiver(MGT)硬核,使得高速串行能够带来更高的性能、更低的成本和更简化的设计。本文根据SATA物理层串行数据传输要求,详细讨论基于RocketIOMGT的SATA物理层电路设计过程,并对设计中的关键技术——RocketIOMGT的使用进行重点介绍。1RocketIOMGT简介及工作原理1.1RocketIOMGT简介RocketIOMGT是一种嵌入式多速率串行收发器,能够以6.25G~622Mb/s的速度运行,支持包括SATA在内的多种串行协议。RocketIOMGT由物理介质附属子层(PMA)和物理编码子层(PCS)组成。内部主要功能框图如图1所示,PMA包含串行器/解串器(SERDES)、TX与RX输入/输出缓冲器、时钟发生器和时钟恢复电路。PCS包含8B/10B编码器/解码器、64B/66B编码器/解码器/扰码器/解扰器以及支持通道绑定和时钟校正的弹性缓冲器[2]。RocketIOMGT的可编程特点使得在Virtex-4FX平台上可方便地集成上吉比特的串行传输,它还具有如下特点:5级可调的差分输出摆幅(800~1600串行收发自回路和并行收mV峰峰值),4级可编程预加重[3];2008-09-23;2008-10-20。收稿日期:修回日期:欧阳科文(1983-)男,湖南长沙人,硕士研究生,主要从作者简介:事嵌入式系统设计、SATA固态硬盘开发等方向的研究。黎福海(1964-)男,广西人,教授,主要从事信号处理和嵌入式系统方向的研究。图1RocketIOMGT内部功能框图中华测控网·938·计算机测量与控制第17卷发自回路以方便调试;8B/10B编解码,可编程的逗号检测,以便于实现10bit字符的各种通信协议和检测;支持CRC循环冗余校验,提高数据传输正确率。1.2RocketIOMGT工作原理RocketIOMGT在发送端按照一定的算法产生的CRC校验码插入到欲发送的并行数据之中,数据经过8B/10B编码,被写入发送端FIFO,转换成串行差分数据发送出去。接收端接收到的串行差分信号被写入接收端缓冲,恢复出接收时钟,经过串行数据到并行数据转换成并行数据,然后经过8B/10B解码,被写入弹性缓冲区,并做CRC检验后并行输出[4]。8B/10B编解码模块为可选项,用户可根据功能要求是否采用。CLK1作为发送数据时钟,RXRECCLK1作为接收数据恢复时钟,两个时钟信号经全局时钟缓冲输出到SATAIPCore,并作为TXUSRCLK2和RXUSRCLK2的时钟源。2系统设计本设计基于RocketIO的千兆位级收发器特性,设计并实现SATA物理层的高速串行数据传输。SATA1.0协议规定物理层的发送和接收串行数据线上速率为1.5Gbps,并行数据位宽可依据链路层特性设置为10、20、40或其他数据宽度。支持K28.5comma字符检测,负责检测段外控制信号(OOB信号)和实现复位及电源管理[5]。本设计的物理层并行数据宽度为20bit,串行数据传输速率1.5Gbps,系统结构框图如图2所示,本设计着重介绍RocketIOMGT时钟控制和复位的配置。图3时钟分布图图2系统结构框图2.1时钟控制时钟分布框图如图3所示。在Virtex-4FXFPGA中每个RocketIOMGT的参考时钟有3种,GREFCLK适用单个RocketIOMGT组且数据传输率低于1Gbps的情况。REFCLK1和REFCLK2用于数据传输率介于1Gbps~6.5Gbps之间的情况。时钟精度和时钟抖动是评价时钟质量的两个重要指标。RocketIOMGT模块内部倍频达3GHz,要求高精度的参考时钟,时钟精度小于±350ppm,可容忍的参考时钟抖动公差最大为40ps,所以从DCM中出来的时钟(大于±100ps)不能作为MGT的参考时钟输入。RocketIOMGT的时钟采用以下解决方案:参考时钟必须经过RocketIOMGT模块指定的差分时钟引脚接入,然后经内部时钟管理模块GT11CLK_MGT转化成单端时钟,送到REFCLK1或REFCLK2作为MGT的参考时钟。参考时钟的频率由串行传输速率和时钟参数设置来决定。本设计选用了EpsonEG-2121CA高精度差分时钟,时钟精度为±100ppm,时钟抖动公差最大为25ps,完全符合RocketIOMGT要求。时钟频率选用150MHz。RocketIOMGT模块的输出时钟TXOUTCLK1、TXOUT-CLK2、RXRECCLK1、RXRECCLK2,能作为4个用户时钟TXUSRCLK、TXUSRCLK2、RXUSRCLK、RXUSRCLK2的时钟源,也可以作为DCM模块的输入,生成用户所需的特定频率的时钟,提供给系统其他模块使用。本设计采用TXOUT-中华测控网TX_DATA和RX_DATA为并行数据输出和输入通道,根据用户需要设置为20bit的数据位度。SATA规定使用段外(OOB)信号进行复位和电源管理。RocketIOMGT为支持OOB提供两个端口:(1)TXENOOB-若置位,差分输出(TXP/TXN)被强制为共模形式(额定125mV);(2)RXSIGDET-低有效,表明检测到大于共模阈值的有效信号,该阈值由属性RXCDRLOS设置。OOB信号包括COMRESET/COMINIT和COMWAKE,利用TXENOOB和RXSIGDET发送和检测到这两类OOB信号,供SATAIPCore使用。RX的时钟信号必须从接受数据中恢复并锁定,即RXLOCKED必须在接收到数据时才能有效。本设计的时钟参数设置如表1所示。表1RocketIO时钟参数设置TX属性TXPLLNDIVSELTXOUTDIV2SELTXASYNCDIVIDETXCLKMODETXOUTCLK1_USE_SYNC设置2042'b014'b0100"FALSE"RX属性RXPLLNDIVSELRXOUTDIV2SELRXUSRDIVISORRXCLKMODETXOUTCLK1_USE_SYNC设置20416'b000011"FALSE"TXCLK0_FORCE_PMACLK"FALSE"TX_CLOCK_DIVIDER2'b01TXCLK0_FORCE_PMACLK"FALSE"RX_CLOCK_DIVIDER2'b012.2复位RocketIOMGT模块中的复位分为发送子模块复位和接收子模块复位。发送子模块复位包括TXPMARESET和TXPCSRESET;接收子模块复位包括RXPMARESET和RXPCSRESET。以接收子模块为例,介绍RocketIOMGT复位过程。RXPMARESET复位用于复位PMA和重新初始化PMA功能。其引脚电平为高时,复位PLL控制逻辑和内部的PMA分频器,同时也使发送器PLLLOCK信号为低,同时RXPLL进行校验。RXPMARESET引脚电平为高至少持续3个USRCLK第5期欧阳科文,等:基于RocketIO的SATA物理层高速串行传输实现·939·时钟周期。当接收数据恢复时钟锁定正常,RX_SYNC置高持续64个同步周期后,RXRSET被置高,RXPCS模块被复位。RXPCSRESET复位与RXPMARESET复位是相互独立,互不影响的,RXPCSRESET复位的要求如下:(1)在RXPCSRESET复位时,RXUSRCLK和PCS的RXCLK时钟必须已经保持稳定。(2)RXPCSRESET引脚电平为高,至少要持续3个RXUSRCLK时钟周期。(3)在RXPCSRESET复位结束后,RXPCS模块至少需要5个RXUSRCLK时钟周期来完成各个子模块的复位。本设计为满足SATA要求,缩短基元的响应延时,RocketIOMGT设置为缩短延迟模式(RLM),该模式绕过发送端和接收端的缓冲器,从而缩短发射端和接收端之间的整体延迟。在RXPCSRESET时,需要在64个RXUSRCLK时钟周期内接收数据无误且恢复时钟锁定正常,RX_READY置高,整个复位过程才算结束。接收子模块的复位时序图如图4所示。图6SATA物理层验证实验硬件框图其中init_tx模块产生tx_pmareset、tx_pcsreset复位信号;frame_gen模块产生带有K28.5字符的数据流,每次发送的数据位宽为20位;init_rx模块产生rx_pmareset、rx_pcsreset复位信号;frame_check模块将发送的数据与实际接收到的并行输出端口的数据进行比较,如果检测到不一致,则err_count计数器就自加一次,通过读取该计数器的值和记录MGT工作的时间就可以计算出该系统中MGT的错误率。经多次实际测试,RocketIO的误码率在3.0×10-11以下,满足SATA协议要求。4结束语图4接收子模块的复位时序图3系统测试本测试实验选用Xinlix的Virtex-4FX20,使用两个RocketIOMGT。首先测试RocketIOMGT工作性能,测试工具选用ChipScope分析工具,通过内置在收发器里的误码率测试器(IBERT),设置RocketIOMGT为串行闭环,发送端发送1.1×1011个数据,能正常接收。测试结果如图5所示。高速数据传输是硬盘存储系统设计的一个重点和难点,高速串行互连技术由于将时钟与数据合并进行传输,从而解决高速并行数据传输过程中时钟和数据的抖动问题,提高数据传输速率,降低设计复杂性和成本。本文基于Virtex-4FXFPGA器件内嵌的RocketIOMGT核,设计实现高速串行互连,具有使用方便、配置灵活、集成度高等优点,将它用于解决SATA物理层高速串行数据传输问题,既简化设计,又提高系统的集成度和可靠性,有很好的应用前景。参考文献:[1]SerialATA:HighSpeedSerializedATAttachmentRev.1.0a[S].2002.[2]Virtex-4RocketIOMulti-GigabitTransceiverUserGuide[Z].2007.[3]李江涛.RocketIO高速串行传输原理和实现[J].雷达与对抗,2004,(3):48-50.[4]吴志勇.基于RocketIO的光纤旋转连接系统的实现[J].计算机测量与控制,2008,16(3):387-388.[5]ATAPhysicalInterfaceSpecification(SAPIS)rev0.90[S].2002.(上接第936HYPERLINK"/retype/zoom/ca3adb42336c1eb91a375d4c?pn=3&x=0&y=1245&raww=367&rawh=16&o=png_6_0_0_0_0_0_0_8

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论