首页 > 其他分享 >SATA系列专题之二《2.3 Link layer链路层 Frame结构以及Primitive基元解析》

SATA系列专题之二《2.3 Link layer链路层 Frame结构以及Primitive基元解析》

时间:2024-11-05 15:43:36浏览次数:2  
标签:Primitive 接收 主机 Frame layer 发送 资料 解析

文章目录

 


前言

 

 

一、故事前传

我们之前说到Link layer的结构,link layer的作用大致可以包括以下几点:

  • Frame flow control

  • CRC的生成与检测(已解析,详细见历史文章)

  • 对数据与控制字符的Scrmable/Descramble(已解析,详细见历史文章)

  • 8b/10b编解码(已解析,详细见历史文章)

  • 将传输层进来的数据转为Frame

 

二、Frame结构解析

SATA协议中所有Frame的结构均是包含四个部分:SOFPayload DataCRCEOF。(如下图所示)

三、Primitive基元解析

Primitive基元是用于控制和提供串行线状态的Dword实体。比如ALIGNp, SOFp, EOFp, HOLDp, PMREQ_Pp, PMREQ_Sp, SYNCp, WTRMp, R_RDYp, X_RDYp等。其对应的含义以及DW解析如下表:

 

理论再多不如实践呐,现以设备接收一个资料包的传输过程来说明基元的作用。首先主机、设备都处于空闲状态(SYNC)

(1) 主机有资料需要发送,发送X_RDY,通知设备准备接收资料;

(2)设备检查自己的状态,准备好后发送R_RDY告诉主机可以发送数据;

(3)主机开始发送资料, SOF为资料开始标志;

(4)接收方在接收到资料时,以R_IP告诉主机正在接收资料;

(5)主机的资料包没有发送完,可是还有些资料没有准备好,以HOLD告诉设备暂停资料发送;

(6) 设备接收到HOLD后,以HOLDA回应;

(7) 主机准备好了资料可以继续发送,以HOLD结束等待状态;

(8)主机继续传输资料;

(9)设备接收资料,以R_IP告诉主机正在接收资料;

(10) 主机发送完了整个资料包,发送WTRM告诉设备:主机正在等待传输结果;

(11) 设备接收完整个资料包并检验正确,以R_OK告诉主机接收正确;

(12)主机进入空闲状态,发送同步信号SYNC;

(13)设备进入空闲状态,发送同步信号SYNC;

标签:Primitive,接收,主机,Frame,layer,发送,资料,解析
From: https://www.cnblogs.com/FireLife-Cheng/p/18528137

相关文章

  • SATA系列专题之三《3.0 Transport Layer传输层概述》
    系列文章目录文章目录前言一、故事前传二、SATATransportLayer传输层概述总结 前言 一、故事前传在之前的文章中,我们有提到SATA主要包括:应用层(ApplicationLayer),传输层(TransportLayer),链路层(LinkLayer)以及物理层(PhysicalLayer),SATA结构如下图:......
  • SATA系列专题之三:3.3 Transport Layer传输层Flow Control机制解析
    一、故事前传在之前的文章中,已经解析了SATA协议的部分相关内容。较为详细解释请见之前的文章:1,浅析SATAPhysicalLayer物理层OOB信号;2,SATALinklayer链路层解析2.0-2.3;3,SATATransportlayer链路层解析3.0-3.2;我们这里主要解析TransportlayerFlowControl机制相关内容......
  • SATA系列专题之一《1.0 Physical Layer物理层OOB信号》
    文章目录前言一、SATA物理层概述二、OOB(OutofBand)信号解析三、实例解析总结前言一、SATA物理层概述说OOB之前,首先得了解一下SATA结构以及物理层的含义。SATA主要包括:应用层(ApplicationLayer), 传输层(TransportLayer),链路层(LinkLayer)、物理层(P......
  • EasyQBlog .NET 8 + Q-Blog 2.0博客模板 + easyweb iframe后台模板 开发的个人博客
    EasyAdmin介绍.NET8+Q-Blog2.0博客模板+easywebiframe后台模板开发的个人博客演示地址:https://www.baocaige.top暂不开源,需要滴滴!!!项目截图 ......
  • spring-framework的StopWatch类详解,每个方法带有具体的例子
    目录简介:StopWatch类的应用场景:StopWatch类提供了以下一些主要方法:start():stop():reset():split():unsplit():getTime():getStartTime():toString():isStarted():isStopped():示例代码:以下是一个使用StopWatch测量代码执行时间的简单示例:以下是一个使用StopWatch类的复杂示例,该示例演......
  • Cannot resolve plugin org.springframework.boot:spring-boot-maven-plugin 报错
    1、检查maven镜像,使用阿里云的;http://maven.aliyun.com/nexus/content/groups/public/如果你的maven能下载其他依赖,下载不了这个,说明不是镜像问题;2、给插件加上版本号;比如<plugin><groupId>org.springframework.boot</groupId>......
  • Change speed of request animation frame
    题意:"改变请求动画帧的速度"问题背景:Ihavethiscodetomoveanimageinacanvasfromapositiontoanotherone:"我有这段代码,可以在画布中将图像从一个位置移动到另一个位置:"classTarget{constructor(img,x_init,y_init,img_width=100,img_heigh......
  • VectorDraw Developer Framework 11.2.1
    VectorDrawDeveloperFramework(VDF)suiteisacombinationofcomponentsdesignedtocovertheneedsofyourapplication.It'smaincomponentisagraphicsengine-librarythatcanbeusedfromdevelopersinordertovisualizetheirapplications.With......
  • .NET 8 中 Entity Framework Core 的使用
    本文代码:https://download.csdn.net/download/hefeng_aspnet/89935738 概述        EntityFrameworkCore(EFCore)已成为.NET开发中数据访问的基石工具,为开发人员提供了强大而多功能的解决方案。随着.NET8和C#10中引入的改进,开发人员现在可以使用更丰......