SATA系列专题之二:2.0 Link layer链路层概述

简介: link layer的作用大致可以包括以下几点:• Frame flow control• CRC的生成与检测• 对数据与控制字符的Scrmable/Descramble• 8b/10b编解码• 将传输层进来的数据转为Frame

一、故事前传

在之前的文章中,我们有提到SATA主要包括:应用层(Application Layer), 传输层(Transport Layer),链路层(Link Layer)以及物理层(Physical Layer), SATA结构如下图:

较为详细解释请见之前的文章"浅析SATA Physical Layer物理层OOB信号",我们这里主要解析Link layer相关内容。


二、SATA Link Layer解析

我们先来看看link layer的结构

从上面Link layer的结构,我们可以看到link layer的作用大致可以包括以下几点:

  • Frame flow control
  • CRC的生成与检测
  • 对数据与控制字符的Scrmable/Descramble
  • 8b/10b编解码
  • 将传输层进来的数据转为Frame


Link  layer在SATA通讯中参与的过程可以这样理解:

  1. 通过插入各种primitive基元(详细解析请见本篇后面内容)进行流量控制,在成功传递完有效资料后,链结层(Linker layer)等待对方的应答,并把结果传给上层;
  2. 传输层(transport layer)传送进来FIS,链结层(Linker layer)计算CRC值,加扰(Scramble)和8B/10B编码后,加上SOF和EOF封装成frame ,传递给物理层(Physical layer)。注:SOF=Start of Frame, EOF=End of Frame。
  3. 从物理层接收到有效资料时,进行8B/10B解码、解扰(Descramble)以及CRC效验,然后将资料提交到传输层。


后续文章对几个关键的部分展开解析,敬请关注!

相关文章
|
4天前
|
存储
System Generator学习——使用 AXI 接口和 IP 集成器(二)
System Generator学习——使用 AXI 接口和 IP 集成器
21 2
|
4天前
|
算法 数据安全/隐私保护 异构计算
System Generator学习——使用 AXI 接口和 IP 集成器(一)
System Generator学习——使用 AXI 接口和 IP 集成器
27 3
|
4天前
|
存储 异构计算
System Generator学习——使用 AXI 接口和 IP 集成器(三)
System Generator学习——使用 AXI 接口和 IP 集成器
21 3
|
6月前
|
自然语言处理 Linux 芯片
实践经验分享:以太网MAC和PHY层问题的解决方案
实践经验分享:以太网MAC和PHY层问题的解决方案
|
编解码 数据安全/隐私保护
SATA系列专题之二: 2.1 Link layer链路层8b/10b编码解析
8b/10b编码是目前高速串行通信中经常用到的一种编码方式,直观的理解就是把8bit数据编码成10bit来传输。
|
编解码
SATA系列专题之二: 2.2 Link layer链路层加扰/解扰/CRC解析
资料在进行8b/10b 编码之前,必须先行资料加扰(Scramble)的处理,目的是為了降低EMI(Electromagnetic Interference,电磁干扰)。
|
算法
【计算机网络】MAC层(二)和Collision相关的协议
在争用期,冲突带来的影响也会很巨大。本文将讨论以下三部分的协议:无冲突协议(collision-free protocol)、有限争用协议(limited-contention protocol)以及无线局域网协议。
445 0
|
算法 数据安全/隐私保护
【计算机网络】MAC层(三)经典以太网的MAC子层协议
前言 本文将会围绕下图来展开描述: 背景 上图为经典以太网的MAC子层协议的前后两个版本。 为什么要有这样一个协议? ————因为直接通过线路发送二进制编码,站点无法将0与空闲线路区分开。
559 0
【UCIe】关于 UCIe Sideband Flow Control 的讨论
【UCIe】关于 UCIe Sideband Flow Control 的讨论
453 0
|
Linux 测试技术 芯片
Linux以太网卡架构解析-MAC层和PHY层
最近,在调试基于Freescale IMX6UL板子的以太网口时,遇到了一个奇怪的问题:网口插拔时,系统检测不到Link Down、Link UP事件。并且,在使用ifconfig eth0 up,然后再ifconfig eth0 down时,会提示
1332 0