SATA系列专题之一《1.0 Physical Layer物理层OOB信号》

文章目录

  • 前言

  • 一、SATA物理层概述

  • 二、OOB(Out of Band)信号解析

  • 三、实例解析

  • 总结

前言

一、SATA物理层概述

说OOB之前,首先得了解一下SATA结构以及物理层的含义。

SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层(Link Layer)、物理层(Physical Layer)。

 SATA结构如下图:

这四个主要部分的作用是什么呢?

Application Layer/Command Layer(可解读为同一层) :

1. 最高层级的Layer,进行ATA或ATAPI command的执行,

2. implementation上很多是用软件处理.

Transport Layer (传输层):

1. 将Application Layer要做的Command转化成FIS的handshake,

2. 对FIS的组成和解开.

Link Layer (数据链路层): 

1. 将要打出去的data做编码, 将收进来的data做解码,

2. 维持Link Layer的handshake机制.

Physical Layer (物理层):

1. Tx和Rx串行流(serial stream),

2. 上电时序,

3. 支持SATA电源管理选项,

4. OOB(Out-of-Band)信号的产生与检测.

从上面的介绍中,我们看到物理层中有一个关键的功能就是OOB(Out-of-Band)信号的产生与检测, 这就是我们今天的主角~

二、OOB(Out of Band)信号 

SATA信号链接的建立主要是靠OOB(Out Of Band)的检测实现的,并且向上层Link Layer提供了物理层的链接情况。

OOB主要的作用包括以下几点: 

  1. 初始化(initialization)

  2. 传输速率的协商与对接(Speed negotiation) --- 通过OOB handshake,host与device可以决定要在Gen1,Gen2,Gen3做data传输

  3. 重置(Reset)

  4. 从省电状态(Slumer/Partial)的唤醒

OOB信号实际上主要有COMRESET/COMINIT与COMWAKE。 

  1. COMRESET:Host对Device进行硬件重置以及SATA信号的重新建立。 

  2. COMINIT:由Device送往Host,要求信号初始化。 

  3. COMWAKE:Host或是Device装置可以激发该信号来将PHY从省电状态(Slumer/Partial)抽离。

COMRESET/COMINIT由两部分相互间隔构成,一部分是突发长度为160个UI (Unit Interval)约106.7ns的ALIGN,另一部分是长度为480UI约320ns的Idle。

需要注意的是,虽然COMREST和COMINIT形式上是一样的,但COMREST只能从host到device而COMINIT只能从device到host

COMWAKE同样是有两部分相互间隔组成,一部分是突发长度为160个UI (Unit Interval)约106.7ns的ALIGN,另一部分是长度为160个UI约106.7ns的Idle。

SATA信号通迅链结建立过程是什么?

我们一步步的来解析一下详细的过程:

  1. 首先,主机重置,发出COMREST。

  2. 设备检测到COMRESET后以COMINIT回应。

    ---COMINIT为重新连接开始信号,设备可以在任意时间发送COMINIT重新建立连接

  3. 若没有COMINIT的通知,HOST就会重复步骤1,直到DEVICE回复为止,这也是系统允许热插拔的关键。

  4. 主机calibrate(校准/标定),发出COMWAKE。

  5. 设备接收到COMWAKE后,设备连续发送6个COMWAKE信号,接着连续发送ALIGN进行传送速度的协商

  6. 主机锁存资料。主机接收到COMWAKE后,以支援的最低速率连续发送D10.2资料,同时锁存检测接收的资料,当检测到设备发送的ALIGN后,以接收的速率将ALIGN转发给设备。

    注:D10.2是0101010101...这样0和1交替的波形, 可以让device端更容易做clock recovery的动作.

  7. 主机在发送了COMWAKE后至少要在880ps内接检测到ALIGN,否则主机重启上电序列重新检测设备,直到应用层将其终止。

  8. 设备锁存资料,检测到ALIGN后发送同步信号SYNC,通讯建立成功,进入到正常操作模式。如在54.6us内未检测到ALlGN,则进入错误处理,等待重新连接。

  9. 当主机接收到三个非ALIGN后,链结建立完成,进入正常操作

Device与Host连接是首先从Device支持的最高速开始的,如果最高速不满足则用较低速率再次匹配,直到最低速率也不能匹配后Device将进入error状态; 换速等待时间为54.6us(2048个ALIGN DWORD传输时间); 

三、实例分享

我们来看个小编工作中遇到的一个实例--fail现象是正常上电之后SATA SSD无法被识别

抓取正常上电之后fail sample SATA trace如下:

从上面的SATA trace结合前面SATA通讯链路建立的9个步骤,我们可以发现第六步之后就出问题了:

Device传送最高速度(6.0G)的Align无法顺利被SATA analyzer解析出来,再降速送Align(3.0G, 1.5G)依然无法被SATA analyzer解析, host也没有回应, speed negotiation失败。最终,Host再次发送COMRESET,进入死循环。

正是由于SATA信号通讯链路无法建立,导致SATA SSD在上电之后始终无法被识别到。

最后附上SSD可以被正确识别的SATA trace供各位看官参考:  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827176.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易基因:多组学分析揭示围产期IL-6动物模型肾脏发育过程中的DNA甲基化+基因表达调控网络|Cells

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因, 慢性肾脏病(Chronic kidney disease,CKD)是全球发病率和死亡率的主要原因之一。母体肥胖与系统性炎症和促炎细胞因子白细胞介素-6(Interleukin-6,IL-6)水平升高有关。此前研究证明妊娠期间母体 IL-6 增加…

利用射线检测实现光束照射激活功能——2024TapTap聚光灯GameJam(一)

利用射线检测实现光束照射激活功能——2024TapTap聚光灯GameJam记录日期 2024-11-05                          记录时间 13:35 项目完成 2024-10-28                         历经时长 21 天 简介 项目主题:Light 项…

【救急手册】API挂了如何应对...淘宝...京东...1688...诸如此类

电商API在跑任务的路上可能会跌个大跟头。诸如淘宝、京东、1688等可能是它自己的问题(服务器错误),也可能是我们给的指令不对(客户端错误),又或者是网络在作怪。不管是哪种,我们的目标都是一样的:尽快解决问题,恢复正常。今天,我们来聊聊那些在数字世界中默默工作的英…

html属性

HTML 属性属性是 HTML 元素提供的附加信息。 属性总是以 name="value" 的形式写在标签内,name 是属性的名称,value 是属性的值。HTML 属性HTML 元素可以设置属性 属性可以在元素中添加附加信息 属性一般描述于开始标签 属性总是以名称/值对的形式出现,比如:name=…

实验8:适配器模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解适配器模式的动机,掌握该模式的结构; 2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器 实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。 实验要求: 1.画出对应的类图; 2.提交…

实验7:单例模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解单例模式的动机,掌握该模式的结构; 2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一 仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。 实验要求: 1.画出对应的类图; 2.提交源…

黑马PM-电商项目-售后管理

售后场景构建售后流程分析交易纠纷处理

基于surging 的木舟平台如何通过HTTP网络组件接入设备

一、概述上篇文章介绍了木舟如何上传模块热部署,那么此篇文章将介绍如何利用HTTP网络组件接入设备,那么有些人会问木舟又是什么,是什么架构为基础,能做什么呢?木舟 (Kayak) 是什么?木舟(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和…