SATA模块物理层OOB信号分析总结(三)

news2024/12/24 20:40:14

目录

    • 一、简介
    • 二、总体解析
      • 2.1 OOB作用
      • 2.2 OOB信号的组成
      • 2.3 总体phy link过程
      • 2.4 整体PHY LINK Trace
      • 2.5 PHY LINK状态查询
    • 三、其他相关链接
      • 1、SATA模块之HBA卡开发总结(一)
      • 2、SATA信息传输FIS结构总结(二)
      • 3、PCIe物理层总结-PCIE专题知识(一)
      • 4、PCIe数据链路层图文总结-PCIe专题知识(二)
      • 5、SSD硬盘SATA接口和M.2接口区别总结

一、简介

本文主要讲解SATA底层FW中HOST和DEVICE进行FHY LINK过程中OOB(Out-of-Band)信号的产生与检测。

二、总体解析

2.1 OOB作用

OOB主要的作用如下:
1、初始化(initialization);
2、传输速率的协商与对接(Speed negotiation);
透过OOB handshake,host与device可以决定要在Gen1,Gen2或Gen3做data传输。
3、重置(Reset);
4、从省电状态(Slumer/Partial)的唤醒。

2.2 OOB信号的组成

OOB信号实际上主要有COMRESET/COMINIT与COMWAKE三个PHY信号线。
COMRESET:Host对Device进行硬件重置以及SATA信号的重新建立。
COMINIT:由Device送往Host,要求信号初始化。
COMWAKE:Host或是Device装置可以激发该信号来将PHY从省电状态(Slumer/Partial)抽离。

COMRESET/COMINIT由两部分相互间隔构成,一部分是突发长度为160个UI (Unit Interval)约106.7ns的ALIGN,另一部分是长度为480UI约320ns的Idle。
在这里插入图片描述
COMWAKE同样是有两部分相互间隔组成,一部分是突发长度为160个UI (Unit Interval)约106.7ns的ALIGN,另一部分是长度为160个UI约106.7ns的Idle。
在这里插入图片描述

需要注意的是,虽然COMREST和COMINIT形式上是一样的,但COMREST只能从host到device,而COMINIT只能从device到host。
在这里插入图片描述

2.3 总体phy link过程

1、HOST重置,一直发送COMREST;
2、DEVICE检测到COMRESET后以COMINIT回应;
COMINIT为重新连接开始信号,设备可以在任意时间发送COMINIT重新建立连接。
注意:若没有COMINIT的通知,HOST就会重复步骤1,直到DEVICE回复为止,系统允许热插拔的关键。
3、主机Calibrate,发出COMWAKE;
4、设备接收到COMWAKE后,设备连续发送6个COMWAKE信号,接着连续发送ALIGN进行传送速度的协商;
5、主机锁存资料。主机接收到COMWAKE后,以支援的最低速率连续发送D10.2资料,同时锁存检测接收的资料,当检测到设备发送的ALIGN后,以接收的速率将ALIGN转发给设备;
注:D10.2是0101010101…这样0和1交替的波形, 可以让device端更容易做clock recovery的动作;
6、主机在发送了COMWAKE后至少要在880ps内接检测到ALIGN,否则主机重启上电序列重新检测设备,直到应用层将其终止;
7、设备锁存资料,检测到ALIGN后发送同步信号SYNC,通讯建立成功,进入到正常操作模式。如在54.6us内未检测到ALlGN,则进入错误处理,等待重新连接;
8、当主机接收到三个非ALIGN后,链结建立完成,进入正常操作。
在这里插入图片描述

在这里插入图片描述

2.4 整体PHY LINK Trace

通过SATA协议分析仪抓到整体的建链Trace如下:
在这里插入图片描述

2.5 PHY LINK状态查询

查询每个PORT对应的P#CTL,具体BIT状态内容如下:
在这里插入图片描述

DET Detection,表示接口设备检测和Phy状态。
0000b 未检测到设备且未建立Phy通信
0001b 检测到设备存在,但Phy通信未建立
0011b 检测到设备存在并建立Phy通信
0100b 由于接口被禁用或运行在BIST环回模式下,导致Phy处于离线模式

SPD Speed,表示协商建立的接口通信速率
0000b 未协商速度(设备不存在或通信未建立)
0001b 协商为Gen1通信速率(1.5 Gbps)
0010b 协商为Gen2通信速率(3 Gbps)
0011b 协商为Gen3通信速率 (6 Gbps)

IPM interface power management,显示当前接口电源管理状态
0000b 设备不存在或通信未建立
0001b 接口处于Active状态
0010b 接口处于Partial状态
0110b 接口处于Slumber状态

三、其他相关链接

1、SATA模块之HBA卡开发总结(一)

2、SATA信息传输FIS结构总结(二)

3、PCIe物理层总结-PCIE专题知识(一)

4、PCIe数据链路层图文总结-PCIe专题知识(二)

5、SSD硬盘SATA接口和M.2接口区别总结

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【前端】利用正则生成目录,附加解决a链接锚点偏移

前言 从html字符串中提取出来目录。 目标和源内容都很明确,源内容是html字符串,提取目标是html字符串中h1~h6元素和其闭合标签中间的内容。 思路 分析 获取html字符串 第一步要获取html字符串内容。 观察html字符串 第二步, 观察html字…

分享85个节日PPT,总有一款适合您

分享85个节日PPT,总有一款适合您 85个节日PPT下载链接:https://pan.baidu.com/s/1FTbSj2Baix-Cj6n42Cz26g?pwd6666 提取码:6666 Python采集代码下载链接:采集代码.zip - 蓝奏云 学习知识费力气,收集整理更不易。…

C语言-指针_01

指针基础 1. 概述 地址编号:计算机为了存储数据,每一个程序在 32位 机中 占4G,最小操作单位 是 一个字节,每一个字节都有其对应的地址,该地址就是 地址编号。 指针:地址编号这个数据 的 数据类型。 指针变…

职位招聘管理与推荐系统Python+Django网页界面+协同过滤推荐算法

一、介绍 职位招聘管理与推荐系统。本系统使用Python作为主要开发语言,以WEB网页平台的方式进行呈现。前端使用HTML、CSS、Ajax、BootStrap等技术,后端使用Django框架处理用户请求。 系统创新点:相对于传统的管理系统,本系统使用…

利用Python中的Manim进行数学绘画和创作

相信很多同学就算没听过3Blue1Brown,也一定曾看过他们出品的视频,其从独特的视觉角度解说各种数学概念,内容包括线性代数、微积分、神经网络、傅里叶变换以及四元数等晦涩难懂的知识点。例如最火的《线性代数本质》系列视频。 那么这些视频是…

01-使用Git操作本地库,如初始化本地库,提交工作区文件到暂存区和本地库,查看版本信息,版本切换命令等

Git的使用 概述 Git是一个分布式版本控制工具, 通常用来管理项目中的源代码文件(Java类、xml文件、html页面等)进行管理,在软件开发过程中被广泛使用 Git可以记录文件修改的历史记录并形成备份从而实现代码回溯, 版本切换, 多人协作, 远程备份的功能Git具有廉价的本地库,方便…

华为1+x网络系统建设与运维(中级)-练习题2

一.设备命令 LSW1 [Huawei]sys LSW1 同理可得,给所有设备改名 二.VLAN LSW1 [LSW1]vlan ba 10 20 [LSW1]int g0/0/1 [LSW1-GigabitEthernet0/0/1]port link-type trunk [LSW1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 [LSW1-GigabitEthernet0/0/1]in…

.Net core 6.0 升8.0

1 Update Visual Studio 2 3 用Nutget 更新不同套件版本 更新后结果如下:

logistic回归详解

为什么不直接统计标签数和预测结果数,计算精度? 因为 存在梯度为0的情况梯度不连续 为什么叫logistic回归 logistic是因为加了一个sigmoid函数,将输出预测值映射到【0,1】 有时候使用MSE损失函数,拟合 有时候使用c…

java学习part27线程死锁

基本就是操作系统的内容 138-多线程-线程安全的懒汉式_死锁_ReentrantLock的使用_哔哩哔哩_bilibili

QT消息机制和事件 - 鼠标事件、键盘按下事件、绘图事件、定时器事件处理

事件 事件(event)是由系统或者Qt本身在不同时刻发出的。当用户按下鼠标、敲下键盘,或者是窗口需要重新绘制的时候,都会发出一个相应的事件。一些事件在对用户操作做出响应时发出,如键盘事件等。另一些事件则由系统自动发出,如定时…

大学里学编程,为什么这么难?

在大学学习计算机专业,为何很多同学觉得编程学得不顺心呢?许多同学会有这种感觉,在上大学里的计算机专业课程时,听得头都大了,但是真正要写代码,却不知道从哪里开始,或是觉得,大学里…

redis------在java中操作redis

Redis(非关系型数据库)简介 redis下载 点击即可进入redis中文网进行下载 百度网盘windows版本 提取码 DMH6 redis主要特点 基于内存存储,读写性能高 适合存储热点数据(热点商品、资讯、新闻) 企业应用广泛 redis不同…

[计算机网络] 高手常用的几个抓包工具(下)

文章目录 高手常用的抓包工具一览什么是抓包工具优秀抓包工具HTTP Debugger ProFree Network AnalyzerKismetEtherApeNetworkMiner 结尾 高手常用的抓包工具一览 什么是抓包工具 抓包工具是一种可以捕获、分析和修改网络流量的软件。它可以帮助您进行网络调试、性能测试、安全…

VSCode 开发C/C++实用插件分享——codegeex

VSCode 开发C/C实用插件分享——codegeex 一、codegeex 一、codegeex CodeGeeX 智能编程助手是一款编程插件,CodeGeeX支持多种主流IDE,如VS Code、IntelliJ IDEA、PyCharm、Vim等,同时,支持Python、Java、C/C、JavaScript、Go等多…

内存管理+模板初阶

内存管理模板初阶 一,内存管理1.1new和delete1.2语法规范补充重点(malloc/free和new/delete的区别和联系) 二,模板初阶2.1泛型编程2.2模板函数2.3函数模板格式2.4类模板 一,内存管理 我们在c语言学习了动态开辟内存&a…

群晖Video Station 添加海报墙-新方法

海报墙 一般我们找到的都是mp4、mkv等格式的视频资源,而没有像上图这样的海报资源,那要怎样实现海报墙呢? 按照以前的方法,是可以通过The Movie Database的API Key来搜刮电影海报信息,但是现在这个方法不行了 现在介绍…

134. 加油站(贪心算法)

根据题解 这道题使用贪心算法,找到当前可解决问题的状态即可 「贪心算法」的问题需要满足的条件: 最优子结构:规模较大的问题的解由规模较小的子问题的解组成,规模较大的问题的解只由其中一个规模较小的子问题的解决定&#xff…

Linux基础项目开发1:量产工具——UI系统(四)

前言: 前面我们已经把显示系统、输入系统、文字系统搭建好了,现在我们就要给它实现按钮操作了,也就是搭建UI系统,下面让我们一起实现UI系统的搭建吧 目录 一、按钮数据结构抽象 ui.h 二、按键编程 1.button.c 2.disp_manager…

C++作业4

代码整理&#xff0c; 将学过的三种运算符重载&#xff0c;每个至少实现一个运算符的重载 代码&#xff1a; #include <iostream>using namespace std;class Stu {friend const Stu operator*(const Stu &L,const Stu &R);friend bool operator<(const Stu …