您好、欢迎来到现金彩票网!
当前位置:打鱼棋牌游戏平台 > 物理层 >

基于FPGA的SATAll协议结构层中的物理层设计与实现

发布时间:2019-06-19 22:09 来源:未知 编辑:admin

  :SATA作为一种高速串行, 点对点传输的硬盘接口, 已取代了IDE 硬盘接口。 目前在硬盘中使用较为普遍的是 SATAII 和SATAIII, 其线Gbits -1和6 Gbits-1。文中对 SATAII 协议进行了全面的分析,并利用 Xilinx公司的ISE开发工具和 ML507干估板完成了协议的软 IP核编写与调试。 所用 FPGA 型号为XC5VFX70T, 利用其中硬核Rocket IO GTX 实现了高速链路的功能,并使用多级流水线技术进行并行设计以提高整体速度。

  SATA作为一种高速串行链路已取代了 IDE作为 硬盘的标准接口。该高速差分链路使用吉比特传输和8B/10B 编码技术, 其相比于IDE、 PATA 接口具有传输 速度更高、 设备升级更简单和配置使用更便捷等优 势[1] 。 首先, 作为一种高速点对点的传输方式, SATA解决了直流偏置、 信号偏移、 码间干扰等问题, 并提高 了传输的带宽。 同时具备了更完善的查错和纠错能 力, 传输质量和传输可靠性得到了大幅提升。 其次,SATA接口相比于传统的并行接口具有更少的引脚数 目, 更利于PCB板级的设计、 装配和散热。 最终,SATA 总线还支持热捅拔并具有更低的功耗。SATA接口协 议具有层次化的结构[2-3] , 如图1 所示, 从下到上分别 是物理层、 数据链路层、 传输层和应用层。 其中物理层 负责低压差分信号的发送和接收, 并实现接口的初始 化过程和速率的自动协商。

  在发送过程中, 物理层从链路层接收并行的数据将其转为串行数据, 然后以3Gbits -1 的线速度向硬盘侧发送LVDS NRZ高速比特流。在接收过程中, 将串 行数据转化成并行数据, 在串行数据流中检测其中的K28.5字符, 使得输出的并行数据对齐[4] 。 物理层提供 的具体功能如下: ( 1) 发送侧和接收侧提供100 电阻 进行内部端接, 以此来消除反射, 保证信号的完整性。

  ( 5) 发送和检测OOB( Out-Of-Band) 信号, 进行硬盘和FPGA的同步 和协商。

  SATA 协议使用OOB信号来完成初始化过程和速 率协商过程。OOB信号不属于数据信号, 所以称之为 带外信号。OOB是一种低频信号, 具体含有3 种模 式: COMRESET、COMINIT和COMWAKE。 COMRESET, 如图2所示, 由主机端发送, 用来设备复位和链 路的初始化, 其由突发长度为106.7ns 的Align 原语 和 320ns 的空闲共模电平分隔。COMINI, 如图 2所 示, 格式与COMRESET相同, 与后者的区别在于, 其是 由设备侧向主侧发送的。COMWAKE, 如图3 所示, 与 前两者的区别在于其的空闲间隔为106.7ns, 且设备 侧和主侧均可以发送。

  在上电和硬件复位期间, 主机通过OOB信号来建 立通行链路, 其中包括速度协商、时钟恢复、阻抗校准和 自我诊断等。 具体上电过程如图4所示, 由以下10个步骤组成:

  ( 4) 当 上电复位结束后, 主设备侧停止发送COMRESET 信号 并将 串 行 总 线 置 于 空 闲 状 态。

  ( 5 ) 当硬盘检测到COMRESET信号,其开始发送 COMINIT信号作为响应。 硬盘可在任何时间点通过发送COMINIT 信号来建立新 的 通 信 连 接。

  ( 7) 当硬盘在其的接收线上检测到COMWAKE信号后, 其开始校准发送器。 完成校准后, 硬盘发送突发长度为6的COMWAKE信号然后连续发 送Align原语。 当连续发送 54.6s的Align 原语后还 未收到来自主设备侧的回应, 而硬盘侧则进入错误状 态。

  ( 8) 当主设备侧检测到COMWAKE信号后便以所 支持的最低速率开始发送D10.2字符。 于此同时, 主 设备侧开始锁定Align原语, 当准备好便以与接收到相 同的速度向硬盘侧发送Align原语。 若在880s内主 设备未接收到Align原语, 主设备便重新开始复位。

  ( 9) 硬盘锁存到 Align原语序列, 并在准备就绪后, 发送SYNC原语表明可正常运行。

  ( 10) 当主机侧接收到非Align原语, 链路建立完成, 则可进行正常的数据传输。

  SATA 协议物理层的实现由 3 部分组成, 分别是整体流程图的设计、 时钟部分和速率协商状态转移设计。

  初始化的过程严格按照SATA 协议的规定。 整个过程流程如图5所示。 主机端上电后首先发送持续时间为1s 的 COMRESET 信号, 然后等待 COMINIT信号, 当SRxstatus等于100时, 再发送持续时间为1s的COMWAKE信号。 在接收到COMWAKE信号后且线路处于 空闲的状态, 接着发送 D10.2字符。 若在 880s 内接收 到了Align原语, 则发送Align原语且开始等待SYNC原语, 否则将重新开始发送COMRESET 信号[ 4-7] 。

  SATA 协 议 物 理 层 的 实 现 是 基 于Xilinx公 司 的FPGA, 利用FPGA内部提供的高速Serdes接口实现高 速比特流的发送、 接收和串并转换。 其中一个高速串 行收发器GTX由两个TILE组成, 为节省功耗, 两个TILE由一个锁相环, 如图6 所示提供时钟。 由外部提 供给GTX 中锁相环的参考时钟频率为 150MHz, 其中 锁 相 环 的PLL_DIVSEL_FB参 数 设 置 为2,PLL_DIVSEL_REF参数设置为1,INTDATAWIDTH参数设 置为 1, 在 这 种 设 置 条 件 下 锁 相 环 输 出 的 倍 频 时 钟PLLCLK为1.5GHz, 如图7所示。 该倍频时钟分别提 供给发送器和接收器。 提供给发送器的参考时钟由参 数PLL_TXDIVSEL_OUT设定, 接收器则由参数PLL_RXDIVSEL_OUT 决定。 参 数PL_TXDIVSEL_OUT、

  PLL_RXDIVSEL_OUT的可能取值为1和 2。 参数取值 由协商的速率决定, 可在协商的过程中通过DRP接口 动态地改变。 提供给 FPGA逻辑部分的时钟由GTX提供给链路层的数据位宽决定[8-11] 。 锁相环模块对 外提供的接口信号如下:

  ( 2 ) INTDATAWIDTH信号用来决定GTX串行收发器内部的数据宽度。

  ( 3 ) PLLDET信号 用来表示锁相环内部的VCO压控振荡器的输出范围 是否在可接受的有效范围内。

  ( 5 ) REFCLKOUT频率等于CLKIN,其可为上层的逻辑电路提供参考时钟。

  整个SATA物理的时钟网络结构, 如图8 所示, 由4部分组成[8] , 分别是高速串行收发器部分OOB信号 控制部分、DCM 数字时钟控制部分和 SNC 同步控制部 分, 其中高速串行收发器向逻辑控制部分提供 DRP动 态控制接口。GTPRESET 信号用来对整个收发器进行 全局的复位。TXDATA接口用来接收将要发送的并行 数据。 RXDATA接口用来将串并转化后的并行数据提 供给上层。TXCOMSTART 用来指示收发器何时开始 发送 OOB信号, 并将其置 1 时开始发送OOB信号, 置0不发送OOB信号。TXCOMTYPE用来指示发送OOB信号的种类。TXCHARISK信号用来指示所发送的数据是否是K字符。 RXSTATUS 用来表示串行收发器的状态。

  REFCLKOUT时钟信号由串行收发器模块输出, 经全局时钟缓冲器BUFG进入FPGA的全局时钟专用 网络, 最 后 进 入DCM和SNC模 块。 从 DCM输 出CLK0时钟和CLK2X时钟, 分别通过BUFG后向收发 器提供并行的收发时钟。SNC模块可通过动态地改变 收发器的状态达到速率自动协商的功能。OOB模块 用来控制带外信号的发送和接收。

  速率协商的状态转移过程如图9所示。 该设计方 案可根据设备硬盘侧挂载的硬盘型号, 自动的改变主FPGA这一侧的线速率。 若硬盘支持I代接口, 则FPGA自动调整GTX线Gbits-1 , 若硬盘支持II代接口, 则FPGA自动调整线Gbits-1 。

  ( 1) 设备复位后, 改变接收器的线Gbits-1, 通过DRP动态接口读取并修改地址为0X46寄存器的 值为 1。 ( 2) 等待 16 个时钟周期。 ( 3 ) 改变发送器的 线Gbits-1, 通过DRP动态接口读取并修改 地址为0X45 寄存器的值为1。 ( 4) 复位 OOB信号控 制模块, 此时FPGA和硬盘进行速率协商。 ( 5) 等待链 接建立, 若在3.5ms时间内链接建立完成, 则物理层 准备好, 此时给上层一个PHYRDY的信号。 ( 6 ) 若未 建立好, 则改变接收器的线Gbits-1 。 通过DRP动态接口读取并修改地址为0X46寄存器的值 为 0。 ( 7) 等待 16个时钟周期。 ( 8 ) 改变发送器的线Gbits-1 。 通过 DRP动态接口读取并修 改地址为0X45寄存器的值为 0。 ( 9 ) 等待链接建立, 若3.5ms内链接建立, 则硬盘和主FPGA协商的速率 为1.5Gbits-1, 向上层报告链路建立可进行正常的 数据传输, 若未建立, 则从过程(1) 开始重新循环, 直 至速率协商好为止。

  代码调试完成后下载到Xilinx提供的ML507评 估板中, 利用 Chipscope工具抓取的波形如图10和图 11所示。 图10中 speed信号为低, 表示速率协商到1.5Gbits-1 。 在图11 中,SOF信号带来一个高脉冲 后,RXDATA信号线上的数据是硬盘与FPGA建立连 接后由硬盘发送的一帧报告硬盘状态信息的寄存器类 型帧。 帧的有效长度介于SOF的高脉冲和EOF的高 脉冲之间。 帧的长度是6个双字, 最后4Byte为CRC校验值, 其中所有的数据均经扰码加扰。 从图中可看 出,物理层完成了速率协商和链接建立的过程。

  Achronix推出高端FPGA器件 采用了多种先进设计思想和半导体工艺

  随着FPGA设计逐渐发展到SoC方法 器件和嵌入式硬件设计成为了关键要素

http://lotusyogacenter.com/wuliceng/216.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有