• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 17
    • 下载费用:30 金币  

    重庆时时彩开店: 一种基于FPGA的SATA接口数据流控制器及控制方法.pdf

    关 键 词:
    一种 基于 FPGA SATA 接口 数据流 控制器 控制 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201610700006.9

    申请日:

    2016.08.22

    公开号:

    CN106354686A

    公开日:

    2017.01.25

    当前法律状态:

    实审

    有效性:

    审中

    法律详情: 实质审查的生效IPC(主分类):G06F 13/42申请日:20160822|||公开
    IPC分类号: G06F13/42; G06F5/14 主分类号: G06F13/42
    申请人: 广州慧睿思通信息科技有限公司
    发明人: 王将; 符永逸
    地址: 511442 广东省广州市番禺区南村镇南村北大街2号
    优先权:
    专利代理机构: 广州市华学知识产权代理有限公司 44245 代理人: 黄磊;郑浦娟
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201610700006.9

    授权公告号:

    |||

    法律状态公告日:

    2017.03.01|||2017.01.25

    法律状态类型:

    实质审查的生效|||公开

    摘要

    本发明公开了一种基于FPGA的SATA接口数据流控制器及控制方法,包括基元检测和控制???、速率匹配???、ROM???、CRC计算和校验???、数据加扰和解扰???、数据选通??橐约癝ATA物理层???;通过基元检测和控制??槭迪侄曰挠行Э刂?,在发送数据时通过基元检测和控制??槎允萘鹘蠥lignP基元的插入,在接收数据时速率匹配??楦軫IFO状态通过针去掉AlignP基元或无用的扰码序列实现打孔操作,通过插入AlignP基元实现插入操作,简化了SATA协议链路层和物理层的数据流控制的实现,简单有效实现对SATA协议基元控制和数据流速率匹配,解决了由于时钟频偏时间积累造成FIFO溢出的问题。

    权利要求书

    1.一种基于FPGA的SATA接口数据流控制器,其特征在于,包括基元检测和控制???、速
    率匹配???、ROM???、CRC计算和校验???、数据加扰和解扰???、数据选通??橐约癝ATA
    物理层???;
    所述基元检测和控制??榉⑺突藕胖罶ATA物理层???,用于SATA协议基元的检测
    以及基元的交互应答处理,并且针对进入SATA物理层的数据流每隔256个时钟周期插入2个
    时钟周期的AlignP基元;所述基元检测和控制??榉直鸱⑺涂刂菩藕胖罜RC计算和校验模
    块、数据加扰和解扰??橐约笆菅⊥??,用于对数据加扰和解扰???、CRC计算和校验
    ??橐约笆菅⊥?榻惺鼓芸刂?;
    所述ROM??榇娲⒁桓鲆欢ǔざ鹊募尤哦嘞钍郊扑阒?,用于实现重复基元的加扰;对于
    进入SATA物理层??樾枰尤诺闹馗椿?,其扰码值是从ROM??槎脸龅募佣嘞钍郊扑阒?br />异或该基元后的结果;
    所述CRC计算和校验???,在发送帧数据时用于计算CRC值并且将CRC值置于数据最后;
    在接收帧数据时,用于针对解扰后的帧数据进行CRC校验;
    所述数据加扰和解扰???,在发送帧是时用于对包括CRC值在内的帧进行加扰,加扰后
    的数据发送给SATA物理层???;在接收帧时,用于对接收到的帧进行解扰;
    所述SATA物理层??榘ǚ⑺褪菽?楹徒邮帐菽??,其中发送数据??榻邮绽醋?br />基元检测和控制???、ROM??橐约笆菁尤藕徒馊拍?榉⑺偷男藕?,经过8B/10B编码、并
    串转换以及预加重控制后发送到从设备;接收数据??榻邮沾由璞阜⑺偷氖?,经过线性
    均衡器、恢复时钟、串并转换、逗点序列检测以及8B/10B解码后发送给速率匹配???;
    速率匹配??榻邮誗ATA物理层??榉⑺偷氖?,速率匹配??榉⑺褪葜粱觳夂?br />控制??橐约笆菅⊥??,通过基元检测和控制??榕卸纤俾势ヅ浜蟮氖菔侵∈莼?br />是无用的扰码序列;所述速率匹配??椴捎肍IFO结构,接收数据时,速率匹配??楦軫IFO
    状态进行速率匹配的打孔或插入操作,其中在打孔操作时,写入数据中去掉AlignP基元或
    无用的扰码序列,在插入操作时,在读出的FIFO数据中插入AlignP基元;
    数据选通??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,当基元检测和控制??榕卸?br />速率匹配??榉⑺偷氖菔侵∈菔?,控制数据选通??榻∈莘⑺透菁尤藕徒馊?br />??榻薪馊?;当基元检测和控制??榕卸纤俾势ヅ淠?榉⑺偷氖菔俏抻玫娜怕胄蛄?br />时,控制数据选通??榻抻玫娜怕胄蛄卸?。
    2.根据权利要求1所述的基于FPGA的SATA接口数据流控制器,其特征在于,所述速率匹
    配??樵谑盏绞菔奔觳釬IFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当
    FIFO的状态为非空时,控制数据直接从FIFO读出;
    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的打孔操作具体如下:所述速
    率匹配??樵诩觳獾紽IFO几乎满时,在检测到写入数据为AlignP基元或无用的扰码序列
    时,控制不写入FIFO中,即写入数据中去掉AlignP基元或无用的扰码序列;接收数据时,速
    率匹配??楦軫IFO状态进行速率匹配的插入操作具体如下:所述速率匹配??樵诩觳獾?br />FIFO几乎空时,在读出的FIFO数据中插入AlignP基元,控制不读取FIFO。
    3.根据权利要求1所述的基于FPGA的SATA接口数据流控制器,其特征在于,所述CRC计
    算和校验??檎攵越橛赟OFP基元和EOFP基元的帧数据进行CRC计算和校验;
    所述CRC计算和校验??椴捎肅RC32的多项式进行计算;
    CRC多项式为:
    G(X)=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1;
    所述数据加扰和解扰??檎攵越橛赟OFP基元和EOFP基元的帧数据和CRC计数值进行加
    扰和解扰;
    所述数据加扰和解扰??槲?2位并行???,并行处理32位数据的加扰和解扰控制;
    所述数据加扰和解扰??榈纳啥嘞钍轿?br />G(X)=X16+X15+X13+X4+1。
    4.根据权利要求3所述的基于FPGA的SATA接口数据流控制器,其特征在于,所述CRC计
    算值的初始值为0x52325032;CRC计算和校验??榫哂型街梦缓褪鼓芸刂乒δ?,置位时输
    出为0x0,使能拉低时输出为当前计算值;
    所述数据加扰和解扰??榧尤诺某跏贾滴?xF0F6;所述数据加扰和解扰??榫哂型?br />置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前加扰值。
    5.根据权利要求1所述的基于FPGA的SATA接口数据流控制器,其特征在于,所述ROM模
    块存储的加扰多项式计算值的长度为256个时钟周期。
    6.根据权利要求1所述的基于FPGA的SATA接口数据流控制器,其特征在于,还包括多路
    选择器???,多路选择器??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,基元检测和控制
    ???、ROM??橐约笆菁尤藕徒馊拍?榉直鸾涑龅男藕哦杂Ψ⑺椭炼嗦费≡衿髂?楦?br />输入通道中;多路选择器??橥ü觳夂涂刂颇?榈目刂菩藕趴刂破渲幸桓鍪淙胪ǖ?br />选通,将基元检测和控制???、ROM??榛蚴菁尤藕徒馊拍?槭涑龅男藕糯椭粮鳶ATA物
    理层???。
    7.一种基于权利要求1所述的基于FPGA的SATA接口数据流控制器实现的基于FPGA的
    SATA接口数据流控制方法,其特征在于,包括发送帧时数据流控制过程和接收帧时数据流
    控制过程;
    所述发送帧时数据流控制过程具体步骤如下:
    S11、基元检测和控制??榉⑺土礁鍪敝又芷诘腦_RDYp基元至SATA物理层???,由SATA
    物理层??榻礁鍪敝又芷诘腦_RDYp基元发送至从设备,通知从设备准备接收帧数据;接
    着ROM??槭涑龆杂θ怕?;
    S12、基元检测和控制??榧觳獾酱由璞阜⑺偷腞_RDYp基元后,表明从设备已经准备好
    接收帧数据,此时基元检测和控制??榉⑺鸵桓鍪敝又芷赟OFP基元至SATA物理层???,由
    SATA物理层??榻桓鍪敝又芷诘腟OFP基元发送至从设备;随后需要发送的帧数据通过
    CRC计算和校验??榧尤隒RC计算值以及通过数据加扰和解扰??榧尤藕蠓⑺椭罶ATA物理
    层???,由SATA物理层??榉⑺椭链由璞?;
    其中基元检测和控制??檎攵杂诮隨ATA物理层的数据流每隔256个时钟周期插入2
    个时钟周期的AlignP基元;ROM??槭涑黾尤哦嘞钍郊扑阒嫡攵杂诮隨ATA物理层??榈?br />CONTP基元之前的重复基元进行加扰得到基元对应的扰码;
    S13、帧数据完成发送后,基元检测和控制??榉⑺鸵桓鍪敝又芷诘腅OFp基元至SATA物
    理层???,由SATA物理层??榉⑺椭链由璞?,并在之后发送WTRMp基元至SATA物理层???,
    通过SATA物理层??榉⑺蚖TRMp基元及其对应的扰码至从设备,等待CRC校验状态基元的返
    回,帧数据传输过程中若基元检测和控制??榧觳獾絉_IPp基元,则表示从设备接收数据正
    常,若基元检测和控制??榧觳獾紺RC校验状态基元为R_OKP基元,表明从设备接收的数据
    正确,若基元检测和控制??榧觳獾紺RC校验状态基元为R_ERRP基元,表明从设备接收的数
    据错误;
    S14、进入空闲状态,基元检测和控制??榉⑺蚐YNCP基元至SATA物理层???,通过SATA
    物理层??榉⑺蚐YNCP基元及其对应的扰码至从设备;基元检测和控制??樵诮邮盏絊YNCP
    基元后,表明从设备也进入空闲状态;
    所述接收帧时数据流控制过程具体步骤如下:
    S21、SATA物理层??榻邮沾由璞阜⑺偷氖?,并且发送给速率匹配???,当基元检测
    和控制??橥ü俾势ヅ淠?榻邮盏酱由璞阜⑺偷腦_RDYp基元时,发送R_RDYp基元至SATA
    物理层???,通过SATA物理层??榉⑺蚏_RDYp基元及其对应的扰码至从设备,表明已经准
    备好接收帧数据;当基元检测和控制??橥ü俾势ヅ淠?榻邮盏絊OFP基元时,表明接下
    来将接收到帧数据,基元检测和控制??榭刂剖菅⊥?榻∈莘⑺透菁尤藕徒?br />扰??榻薪馊?,将无用的扰码序列进行丢弃,数据加扰和解扰??榻馊藕蟮氖萃ü鼵RC
    计算和校验??榻行Q?;接收帧数据的过程中基元检测和控制??榉蠢〈由璞窻_IPp基
    元响应从设备接收状态为正常;
    S22、基元检测和控制??榻邮盏紼OFp基元时,表示帧数据接收完成,基元检测和控制模
    块根据CRC校验状态,通过SATA物理层??榉⑺拖嘤链由璞福旱盋RC校验状态为正确
    时,则通过SATA物理层??榉⑺蚏_IPp基元至从设备;当CRC校验状态为不正确时,则通过
    SATA物理层??榉⑺蚏_ERRP基元至从设备;
    S23、基元检测和控制??樵诮邮盏酱由璞阜⑺偷腟YNCP基元后,表明从设备进入空闲状
    态,基元检测和控制??榉⑺蚐YNCP基元至SATA物理层???,通过SATA物理层??榉⑺蚐YNCP
    基元及其对应的扰码至从设备;告知进入空闲状态,等待下一帧数据的发送或接收;
    其中在步骤S21至S23中,速率匹配??楦軫IFO状态进行速率匹配的打孔或插入操
    作,其中在打孔操作时写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时在读
    出的FIFO数据中插入AlignP基元;速率匹配??榻⑺偷氖菔狈治铰?,一路数据发送
    给基元检测和控制???,另一路数据发送给数据选通???,基元检测和控制??榕卸纤俾?br />匹配??榉⑺偷氖菔侵∈莼故俏抻玫娜怕胄蛄?,并且根据数据状态发送控制信号至数
    据选通???;数据选通??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,当基元检测和控制
    ??榕卸纤俾势ヅ淠?榉⑺偷氖菔侵∈菔?,控制数据选通??榻∈莘⑺透菁?br />扰和解扰??榻薪馊?;当基元检测和控制??榕卸纤俾势ヅ淠?榉⑺偷氖菔俏抻玫娜?br />码序列时,控制数据选通??榻抻玫娜怕胄蛄卸?。
    8.根据权利要求7所述的基于FPGA的SATA接口数据流控制方法,其特征在于,ROM???br />输出加扰多项式计算值针对于进入SATA物理层??榈腃ONTP基元之前的重复基元进行加扰
    的具体过程如下:针对于CONTP基元之前的重复基元,从地址0开始读取ROM??橹械募尤哦?br />项式计算值,将各地址对应的加扰多项式计算值分别与CONTP基元之前的重复基元进行异
    或得到基元对应的扰码。
    9.根据权利要求7所述的基于FPGA的SATA接口数据流控制方法,其特征在于,在接收帧
    时数据流控制过程还包括以下步骤:速率匹配??樵谑盏绞菔奔觳釬IFO的状态,当FIFO
    的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读
    出;
    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的打孔操作具体如下:所述速
    率匹配??樵诩觳獾紽IFO几乎满时,在检测到写入数据为Align基元或无用的扰码序列时,
    控制不写入FIFO中;
    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的插入操作具体如下:所述速
    率匹配??樵诩觳獾紽IFO几乎空时,在读出的FIFO数据中插入AlignP基元,控制不读取
    FIFO。
    10.根据权利要求7所述的基于FPGA的SATA接口数据流控制方法,其特征在于,发送数
    据流时,若AlignP基元插入前发送的是重复基元对应的扰码,则在插入2个时钟周期的
    AlignP基元之后,恢复发送插入AlignP基元之前要发送的基元,并在之后发送该基元对应的
    扰码。

    说明书

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

    发明内容

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

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

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

    所述基元检测和控制??榉⑺突藕胖罶ATA物理层???,用于SATA协议基元的
    检测以及基元的交互应答处理,并且针对进入SATA物理层的数据流每隔256个时钟周期插
    入2个时钟周期的AlignP基元;所述基元检测和控制??榉直鸱⑺涂刂菩藕胖罜RC计算和校
    验???、数据加扰和解扰??橐约笆菅⊥??,用于对数据加扰和解扰???、CRC计算和
    校验??橐约笆菅⊥?榻惺鼓芸刂?;

    所述ROM??榇娲⒁桓鲆欢ǔざ鹊募尤哦嘞钍郊扑阒?,用于实现重复基元的加扰;
    对于进入SATA物理层??樾枰尤诺闹馗椿?,其扰码值是从ROM??槎脸龅募佣嘞钍郊?br />算值异或该基元后的结果;

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

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

    所述SATA物理层??榘ǚ⑺褪菽?楹徒邮帐菽??,其中发送数据??榻邮?br />来自基元检测和控制???、ROM??橐约笆菁尤藕徒馊拍?榉⑺偷男藕?,经过8B/10B编
    码、并串转换以及预加重控制后发送到从设备;接收数据??榻邮沾由璞阜⑺偷氖?,经过
    线性均衡器、恢复时钟、串并转换、逗点序列检测以及8B/10B解码后发送给速率匹配???;

    速率匹配??榻邮誗ATA物理层??榉⑺偷氖?,速率匹配??榉⑺褪葜粱?br />测和控制??橐约笆菅⊥??,通过基元检测和控制??榕卸纤俾势ヅ浜蟮氖菔侵∈?br />据还是无用的扰码序列;所述速率匹配??椴捎肍IFO结构,接收数据时,速率匹配??楦?br />FIFO状态进行速率匹配的打孔或插入操作,其中在打孔操作时,写入数据中去掉AlignP基
    元或无用的扰码序列,在插入操作时,在读出的FIFO数据中插入AlignP基元;

    数据选通??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,当基元检测和控制???br />判断速率匹配??榉⑺偷氖菔侵∈菔?,控制数据选通??榻∈莘⑺透菁尤藕?br />解扰??榻薪馊?;当基元检测和控制??榕卸纤俾势ヅ淠?榉⑺偷氖菔俏抻玫娜怕胄?br />列时,控制数据选通??榻抻玫娜怕胄蛄卸?。

    优选的,所述速率匹配??樵谑盏绞菔奔觳釬IFO的状态,当FIFO的状态为非满
    时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出;

    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的打孔操作具体如下:所
    述速率匹配??樵诩觳獾紽IFO几乎满时,在检测到写入数据为AlignP基元或无用的扰码序
    列时,控制不写入FIFO中,即写入数据中去掉AlignP基元或无用的扰码序列;接收数据时,
    速率匹配??楦軫IFO状态进行速率匹配的插入操作具体如下:所述速率匹配??樵诩觳?br />到FIFO几乎空时,在读出的FIFO数据中插入AlignP基元,控制不读取FIFO。

    优选的,所述CRC计算和校验??檎攵越橛赟OFP基元和EOFP基元的帧数据进行CRC
    计算和校验;

    所述CRC计算和校验??椴捎肅RC32的多项式进行计算;

    CRC多项式为:

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

    所述数据加扰和解扰??檎攵越橛赟OFP基元和EOFP基元的帧数据和CRC计数值进
    行加扰和解扰;

    所述数据加扰和解扰??槲?2位并行???,并行处理32位数据的加扰和解扰控
    制;

    所述数据加扰和解扰??榈纳啥嘞钍轿?br />

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

    优选的,所述CRC计算值的初始值为0x52325032;CRC计算和校验??榫哂型街?br />位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前计算值;

    所述数据加扰和解扰??榧尤诺某跏贾滴?xF0F6;所述数据加扰和解扰??榫哂?br />同步置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前加扰值。

    优选的,所述ROM??榇娲⒌募尤哦嘞钍郊扑阒档某ざ任?56个时钟周期。

    优选的,还包括多路选择器???,多路选择器??榻邮栈觳夂涂刂颇?榉⑺?br />的控制信号,基元检测和控制???、ROM??橐约笆菁尤藕徒馊拍?榉直鸾涑龅男藕哦?br />应发送至多路选择器??楦魇淙胪ǖ乐?;多路选择器??橥ü觳夂涂刂颇?榈目刂?br />信号控制其中一个输入通道选通,将基元检测和控制???、ROM??榛蚴菁尤藕徒馊拍??br />输出的信号传送至给SATA物理层???。

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

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

    S11、基元检测和控制??榉⑺土礁鍪敝又芷诘腦_RDYp基元至SATA物理层???,由
    SATA物理层??榻礁鍪敝又芷诘腦_RDYp基元发送至从设备,通知从设备准备接收帧数
    据;接着ROM??槭涑龆杂θ怕?;

    S12、基元检测和控制??榧觳獾酱由璞阜⑺偷腞_RDYp基元后,表明从设备已经准
    备好接收帧数据,此时基元检测和控制??榉⑺鸵桓鍪敝又芷赟OFP基元至SATA物理层模
    块,由SATA物理层??榻桓鍪敝又芷诘腟OFP基元发送至从设备;随后需要发送的帧数据
    通过CRC计算和校验??榧尤隒RC计算值以及通过数据加扰和解扰??榧尤藕蠓⑺椭罶ATA
    物理层???,由SATA物理层??榉⑺椭链由璞?;

    其中基元检测和控制??檎攵杂诮隨ATA物理层的数据流每隔256个时钟周期插
    入2个时钟周期的AlignP基元;ROM??槭涑黾尤哦嘞钍郊扑阒嫡攵杂诮隨ATA物理层???br />的CONTP基元之前的重复基元进行加扰得到基元对应的扰码;

    S13、帧数据完成发送后,基元检测和控制??榉⑺鸵桓鍪敝又芷诘腅OFp基元至
    SATA物理层???,由SATA物理层??榉⑺椭链由璞?,并在之后发送WTRMp基元至SATA物理层
    ???,通过SATA物理层??榉⑺蚖TRMp基元及其对应的扰码至从设备,等待CRC校验状态基
    元的返回,帧数据传输过程中若基元检测和控制??榧觳獾絉_IPp基元,则表示从设备接收
    数据正常,若基元检测和控制??榧觳獾紺RC校验状态基元为R_OKP基元,表明从设备接收
    的数据正确,若基元检测和控制??榧觳獾紺RC校验状态基元为R_ERRP基元,表明从设备接
    收的数据错误;

    S14、进入空闲状态,基元检测和控制??榉⑺蚐YNCP基元至SATA物理层???,通过
    SATA物理层??榉⑺蚐YNCP基元及其对应的扰码至从设备;基元检测和控制??樵诮邮盏?br />SYNCP基元后,表明从设备也进入空闲状态;

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

    S21、SATA物理层??榻邮沾由璞阜⑺偷氖?,并且发送给速率匹配???,当基元
    检测和控制??橥ü俾势ヅ淠?榻邮盏酱由璞阜⑺偷腦_RDYp基元时,发送R_RDYp基元至
    SATA物理层???,通过SATA物理层??榉⑺蚏_RDYp基元及其对应的扰码至从设备,表明已
    经准备好接收帧数据;当基元检测和控制??橥ü俾势ヅ淠?榻邮盏絊OFP基元时,表明
    接下来将接收到帧数据,基元检测和控制??榭刂剖菅⊥?榻∈莘⑺透菁尤?br />和解扰??榻薪馊?,将无用的扰码序列进行丢弃,数据加扰和解扰??榻馊藕蟮氖萃?br />过CRC计算和校验??榻行Q?;接收帧数据的过程中基元检测和控制??榉蠢〈由璞窻_
    IPp基元响应从设备接收状态为正常;

    S22、基元检测和控制??榻邮盏紼OFp基元时,表示帧数据接收完成,基元检测和
    控制??楦軨RC校验状态,通过SATA物理层??榉⑺拖嘤链由璞福旱盋RC校验状态
    为正确时,则通过SATA物理层??榉⑺蚏_IPp基元至从设备;当CRC校验状态为不正确时,则
    通过SATA物理层??榉⑺蚏_ERRP基元至从设备;

    S23、基元检测和控制??樵诮邮盏酱由璞阜⑺偷腟YNCP基元后,表明从设备进入
    空闲状态,基元检测和控制??榉⑺蚐YNCP基元至SATA物理层???,通过SATA物理层??榉?br />送SYNCP基元及其对应的扰码至从设备;告知进入空闲状态,等待下一帧数据的发送或接
    收;

    其中在步骤S21至S23中,速率匹配??楦軫IFO状态进行速率匹配的打孔或插入
    操作,其中在打孔操作时写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时在
    读出的FIFO数据中插入AlignP基元;速率匹配??榻⑺偷氖菔狈治铰?,一路数据发
    送给基元检测和控制???,另一路数据发送给数据选通???,基元检测和控制??榕卸纤?br />率匹配??榉⑺偷氖菔侵∈莼故俏抻玫娜怕胄蛄?,并且根据数据状态发送控制信号至
    数据选通???;数据选通??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,当基元检测和控
    制??榕卸纤俾势ヅ淠?榉⑺偷氖菔侵∈菔?,控制数据选通??榻∈莘⑺透?br />加扰和解扰??榻薪馊?;当基元检测和控制??榕卸纤俾势ヅ淠?榉⑺偷氖菔俏抻玫?br />扰码序列时,控制数据选通??榻抻玫娜怕胄蛄卸?。

    优选的,ROM??槭涑黾尤哦嘞钍郊扑阒嫡攵杂诮隨ATA物理层??榈腃ONTP基元
    之前的重复基元进行加扰的具体过程如下:针对于CONTP基元之前的重复基元,从地址0开
    始读取ROM??橹械募尤哦嘞钍郊扑阒?,将各地址对应的加扰多项式计算值分别与CONTP基
    元之前的重复基元进行异或得到基元对应的扰码。

    优选的,在接收帧时数据流控制过程还包括以下步骤:速率匹配??樵谑盏绞?br />时检测FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空
    时,控制数据直接从FIFO读出;

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

    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的插入操作具体如下:所
    述速率匹配??樵诩觳獾紽IFO几乎空时,在读出的FIFO数据中插入AlignP基元,控制不读
    取FIFO。

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

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

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

    (2)本发明通过ROM??槭涑黾尤哦嘞钍郊扑阒嫡攵灾馗吹幕屑尤?,简化了
    SATA协议链路层和物理层的数据流控制的实现,解决了现有技术中未对重复基元进行处理
    起来要考虑的状态繁多以及容易出错的技术问题。其中本发明通过ROM??楣潭ù娲⒁桓?br />一定长度的加扰多项式计算值,仅通过该加扰多项式计算值异或需要加扰的对应基元实现
    各重复基元的加扰,能省掉基元加扰的计算和控制过程,简化设计。

    (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物理层??橐约岸嗦费≡?br />器???。

    基元检测和控制??榉⑺突藕胖罶ATA物理层???,用于SATA协议基元的检测
    以及基元的交互应答处理,并且针对进入SATA物理层的数据流每隔256个时钟周期插入2个
    时钟周期的AlignP基元;所述基元检测和控制??榉直鸱⑺涂刂菩藕胖罜RC计算和校验模
    块、数据加扰和解扰??橐约笆菅⊥??,用于对数据加扰和解扰???、CRC计算和校验
    ??橐约笆菅⊥?榻惺鼓芸刂?。

    ROM??榇娲⒁桓鲆欢ǔざ鹊募尤哦嘞钍郊扑阒?,用于实现重复基元的加扰;对于
    进入SATA物理层??樾枰尤诺闹馗椿?,其扰码值是从ROM??橐?地址起始按递增方式
    读出的加多项式计算值异或该基元后的结果。在本实施例中ROM??榇娲⒌募尤哦嘞钍郊?br />算值的长度为256个时钟周期。

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

    本实施例中CRC计算和校验??檎攵越橛赟OFP基元和EOFP基元的帧数据进行CRC计
    算和校验;

    所述CRC计算和校验??椴捎肅RC32的多项式进行计算;

    CRC多项式为:

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

    其中本实施例中CRC计算值的初始值为0x52325032;CRC计算和校验??榫哂型?br />置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前计算值。

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

    本实施例中数据加扰和解扰??檎攵越橛赟OFP基元和EOFP基元的帧数据进行加扰
    和解扰;数据加扰和解扰??槲?2位并行???,并行处理32位数据的加扰和解扰控制。

    数据加扰和解扰??榈纳啥嘞钍轿?br />

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

    其中本实施例中数据加扰和解扰??榧尤诺某跏贾滴?xF0F6;数据加扰和解扰模
    块具有同步置位和使能控制功能,置位时输出为0x0,使能拉低时输出为当前加扰值。

    SATA物理层??榘ǚ⑺褪菽?楹徒邮帐菽??,用于8B/10B编码解码、串并
    和并串转换、逗点序列检测,预加重、线性均衡功能以及带外控制;其中发送数据??榻邮?br />来自基元检测和控制???、ROM??橐约笆菁尤藕徒馊拍?榉⑺偷男藕?,经过8B/10B编
    码、并串转换以及预加重控制后发送到从设备;接收数据??榻邮沾由璞阜⑺偷氖?,经过
    线性均衡器、恢复时钟、串并转换、逗点序列检测以及8B/10B解码后发送给速率匹配???。

    速率匹配??榻邮誗ATA物理层??榉⑺偷氖?,速率匹配??榉⑺褪葜粱?br />测和控制??橐约笆菅⊥??,通过基元检测和控制??榕卸纤俾势ヅ浜蟮氖菔侵∈?br />据(SOFP基元和EOFP基元之间帧的内容,以下帧数据均是此含义)还是无用的扰码序列;速率
    匹配??椴捎肍IFO结构,接收数据时,速率匹配??楦軫IFO状态进行速率匹配的打孔或
    插入操作,其中在打孔操作时,写入数据中去掉AlignP基元或无用的扰码序列,在插入操作
    时,在读出的FIFO数据中插入AlignP基元;

    本实施例中速率匹配??樵谑盏绞菔奔觳釬IFO的状态,当FIFO的状态为非满
    时,控制数据直接写入FIFO,当FIFO的状态为非空时,控制数据直接从FIFO读出。

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

    如图2所示,接收数据时,本实施例速率匹配??楦軫IFO状态进行速率匹配的插
    入操作具体如下:速率匹配??樵诩觳獾紽IFO几乎空时,说明不同源的两个时钟中的写入
    数据的时钟速率小于读出数据的时钟,即接收数据的恢复时钟小于发送数据的发送时钟,
    在读出的FIFO数据中插入AlignP基元,控制不读取FIFO。

    数据选通??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,当基元检测和控制???br />判断速率匹配??榉⑺偷氖菔侵∈菔?,控制数据选通??榻∈莘⑺透菁尤藕?br />解扰??榻薪馊?;当基元检测和控制??榕卸纤俾势ヅ淠?榉⑺偷氖菔俏抻玫娜怕胄?br />列时,控制数据选通??榻抻玫娜怕胄蛄衘unk丢弃,其中无用的扰码序列指的是对基元
    加扰后的序列,这些序列不对控制产生影响。

    多路选择器???,多路选择器??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,基
    元检测和控制???、ROM??橐约笆菁尤藕徒馊拍?榉直鸾涑龅男藕哦杂Ψ⑺椭炼嗦?br />选择器??楦魇淙胪ǖ乐?,多路选择器??橥ü觳夂涂刂颇?榈目刂菩藕趴刂破渲?br />一个输入通道选通,将基元检测和控制???、ROM??榛蚴菁尤藕徒馊拍?槭涑龅男藕糯?br />送至给SATA物理层???。

    本实施例中多路选择器??榘礁?选1多路选择器???,分别为第一多路选择
    器??楹偷诙嗦费≡衿髂??,其中基元检测和控制??橐约癛OM??槭涑龅男藕欧直鸱?br />送至第一多路选择器??榈牧礁鍪淙胪ǖ?,第一多路选择器??槭涑鐾ǖ朗涑龅男藕乓约?br />基元检测和控制??槭涑龅男藕欧直鸱⑺椭恋诙嗦费≡衿髂?榈牧礁鍪淙胪ǖ?,第二多
    路选择器??槭涑鐾ǖ朗涑龅男藕欧⑺椭罶ATA物理层????;觳夂涂刂颇?榉⑺涂刂?br />信号至第一多路选择器??楹偷诙嗦费≡衿髂??,控制第一多路选择器??楹偷诙嗦?br />选择器??榈墓ぷ髯刺?,以实现将基元检测和控制???、ROM??榛蚴菁尤藕徒馊拍?槭?br />出的信号传送SATA物理层???。

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

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

    S11、基元检测和控制??榉⑺土礁鍪敝又芷诘腦_RDYp基元至SATA物理层???,由
    SATA物理层??榻礁鍪敝又芷诘腦_RDYp基元发送至从设备,通知从设备准备接收帧数
    据;接着ROM??槭涑龆杂尤哦嘞钍郊扑阒?;

    S12、基元检测和控制??榧觳獾酱由璞阜⑺偷腞_RDYp基元后,表明从设备已经准
    备好接收帧数据,此时基元检测和控制??榉⑺鸵桓鍪敝又芷赟OFP基元至SATA物理层模
    块,由SATA物理层??榻桓鍪敝又芷诘腟OFP基元发送至从设备;随后需要发送的帧数据
    通过CRC计算和校验??榧尤隒RC值以及通过数据加扰和解扰??榧尤藕蠓⑺椭罶ATA物理
    层???,由SATA物理层??榉⑺椭链由璞?;

    其中基元检测和控制??檎攵杂诮隨ATA物理层的数据流每隔256个时钟周期插
    入2个时钟周期的AlignP基元;ROM??槭涑黾尤哦嘞钍郊扑阒嫡攵杂诮隨ATA物理层???br />的CONTP基元之前的重复基元进行加扰,具体加扰过程如下:针对于每个CONTP基元之前的重
    复基元,从地址0开始读取ROM??橹械募尤哦嘞钍郊扑阒?,将各地址对应的加扰多项式计
    算值分别与CONTP基元之前的重复基元进行异或得到基元对应的扰码。

    S13、帧数据和CRC值完成发送后,基元检测和控制??榉⑺鸵桓鍪敝又芷诘腅OFp
    基元至SATA物理层???,由SATA物理层??榉⑺椭链由璞?,并在之后发送WTRMp基元至SATA
    物理层???,通过ROM??槭涑黾尤哦嘞钍郊扑阒狄旎騑TRMp基元得到WTRMp基元对应的扰
    码,然后SATA物理层??榉⑺蚖TRMp基元以及WTRMp基元对应的扰码至从设备,等待CRC校验
    状态基元的返回,数据传输过程中若基元检测和控制??榧觳獾絉_IPp基元,则表示从设备
    接收数据正常,若基元检测和控制??榧觳獾紺RC校验状态基元为R_OKP基元,表明从设备
    接收的数据正确,若基元检测和控制??榧觳獾紺RC校验状态基元为R_ERRP基元,表明从设
    备接收的数据错误。

    S14、进入空闲状态,基元检测和控制??榉⑺蚐YNCP基元至SATA物理层???,通过
    ROM??槭涑黾尤哦嘞钍郊扑阒狄旎騍YNCP基元得到SYNCP基元对应的扰码,然后SATA物理层
    ??榉⑺蚐YNCP基元以及SYNCP基元对应的扰码至从设备;基元检测和控制??樵诮邮盏?br />SYNCP基元后,表明从设备也进入空闲状态。

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

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

    S21、SATA物理层??榻邮沾由璞阜⑺偷氖?,并且发送给速率匹配???,当基元
    检测和控制??橥ü俾势ヅ淠?榻邮盏酱由璞阜⑺偷腦_RDYp基元时,发送R_RDYp基元至
    SATA物理层???,通过ROM??槭涑黾尤哦嘞钍郊扑阒狄旎騌_RDYp基元得到R_RDYp基元对应
    的扰码,然后通过SATA物理层??榉⑺蚏_RDYp基元及R_RDYp基元对应的扰码至从设备,表明
    已经准备好接收帧数据;当基元检测和控制??橥ü俾势ヅ淠?榻邮盏絊OFP基元时,表
    明接下来将接收到帧数据,基元检测和控制??榭刂剖菅⊥?榻∈莘⑺透菁?br />扰和解扰??榻薪馊?,将无用的扰码序列进行丢弃,数据加扰和解扰??榻馊藕蟮氖?br />通过CRC计算和校验??榻行Q?;传输过程中基元检测和控制??榉蠢〈由璞窻_IPp基元
    响应从设备接收状态为正常。

    S22、基元检测和控制??榻邮盏紼OFp基元时,表示帧数据接收完成,基元检测和
    控制??楦軨RC校验状态,通过SATA物理层??榉⑺拖嘤链由璞?,当CRC校验状态
    为正确时,则通过SATA物理层??榉⑺蚏_IPp基元至从设备,当CRC校验状态为不正确时,则
    通过SATA物理层??榉⑺蚏_ERRP基元至从设备。

    S23、基元检测和控制??樵诮邮盏酱由璞阜⑺偷腟YNCP基元后,表明从设备进入
    空闲状态,基元检测和控制??榉⑺蚐YNCP基元至SATA物理层???,通过ROM??槭涑黾尤?br />多项式计算值异或SYNCP基元得到SYNCP基元对应的扰码,然后通过SATA物理层??榉⑺?br />SYNCP基元及其对应的扰码至从设备;告知进入空闲状态,等待下一帧数据的发送或接收。

    其中在步骤S21至S23中,速率匹配??楦軫IFO状态进行速率匹配的打孔或插入
    操作,其中在打孔操作时写入数据中去掉AlignP基元或无用的扰码序列,在插入操作时在
    读出的FIFO数据中插入AlignP基元;速率匹配??榻⑺偷氖菔狈治铰?,一路数据发
    送给基元检测和控制???,另一路数据发送给数据选通???,基元检测和控制??榕卸纤?br />率匹配??榉⑺偷氖菔侵∈莼故俏抻玫娜怕胄蛄?,并且根据数据状态发送控制信号至
    数据选通???;数据选通??榻邮栈觳夂涂刂颇?榉⑺偷目刂菩藕?,当基元检测和控
    制??榕卸纤俾势ヅ淠?榉⑺偷氖菔侵∈菔?,控制数据选通??榻∈莘⑺透?br />加扰和解扰??榻薪馊?;当基元检测和控制??榕卸纤俾势ヅ淠?榉⑺偷氖菔俏抻玫?br />扰码序列时,控制数据选通??榻抻玫娜怕胄蛄卸?。

    在接收数据时数据流控制过程还包括以下步骤:速率匹配??樵谑盏绞菔奔觳?br />FIFO的状态,当FIFO的状态为非满时,控制数据直接写入FIFO,当FIFO的状态为非空时,控
    制数据直接从FIFO读出。

    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的打孔操作具体如下:所
    述速率匹配??樵诩觳獾紽IFO几乎满时,在检测到写入数据为AlignP基元时,控制不写入
    FIFO中。

    接收数据时,速率匹配??楦軫IFO状态进行速率匹配的插入操作具体如下:速
    率匹配??樵诩觳獾紽IFO几乎空时,在读出FIFO的数据中插入AlignP基元,控制不读取
    FIFO。

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

    本实施例通过ROM??槭涑黾尤哦嘞钍郊扑阏攵灾馗吹幕屑尤?,简化了
    SATA协议链路层和物理层的数据流控制的实现,解决了现有技术中对重复基元进行处理起
    来要考虑的状态繁多以及容易出错的技术问题。其中本实施例通过ROM??楣潭ù娲⒁桓?br />256个时钟周期的加扰多项式计算值,仅通过该加扰多项式计算值实现各重复基于的加扰,
    能省掉基元加扰的计算和控制过程,简化设计。

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

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

    关于本文
    本文标题:一种基于FPGA的SATA接口数据流控制器及控制方法.pdf
    链接地址://www.4mum.com.cn/p-6027152.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
  • 黄金时时彩免费软件 11选5计划软件破解版 旺彩双色球 pk10精准计划网站 双色球匡吉预测 7星彩开奖结果走势图 骰子猜大小赌博软件 北京pk拾赛车开奖记录 财神计划软件 二星直选7码稳赚技巧,好的方法分享 时时彩有稳赚方法吗 大乐透基本带表走势图 双色球走势图带连线图1000期 重庆时时彩稳赚公式 双色球最迟几点可以买 彩票双面盘骗局