天天看點

#SATA# SATA系列專題之二《2.2 Link layer鍊路層加擾/解擾/CRC解析》文章目錄前言一、故事前傳二、加擾(Scramble)/解擾(Descramble)總結

文章目錄

  • 系列文章目錄
  • 前言
  • 一、故事前傳
  • 二、SATA Link Layer 加擾/解擾解析
  • 二、SATA Link Layer CRC解析
  • 總結

前言

一、故事前傳

#SATA# SATA系列專題之二《2.2 Link layer鍊路層加擾/解擾/CRC解析》文章目錄前言一、故事前傳二、加擾(Scramble)/解擾(Descramble)總結

我們之前說到Link layer的結構,link layer的作用大緻可以包括以下幾點:

  • Frame flow control
  • CRC的生成與檢測
  • 對資料與控制字元的Scrmable/Descramble
  • 8b/10b編解碼(已解析,詳細見曆史文章)
  • 将傳輸層進來的資料轉為Frame

二、加擾(Scramble)/解擾(Descramble)

資料在進行8b/10b 編碼之前,必須先行資料加擾(Scramble)的處理,目的是為了降低EMI(Electromagnetic Interference,電磁幹擾)。 

實作方式是由LFSR(Linear Feedback Shift Register)的方式來實踐;

基本原理是将資料的8 位元與LFSR 寄存器的16 位元輸出做XOR 的處理。

  • 規定LFSR的初始值為0xFFFF,
  • LFSR必須在SOF标志前就要被初始化,
  • 在SOF與EOF之間的資料,包括CRC值都需要加擾。
  • 對于控制基元Primitive是不需要加擾的 。

SATA協定中資料處理流程如下 :

  1. 對于一個資料包,在SOF後的資料就必須計算其CRC值,同時這個資料必須和擾碼器的輸出進行XOR操作,操作結果送往8B/10B編碼器編碼;
  2. 反之,在接收方,資料先通過10B/8B解碼,再與擾碼器的輸出結果進行XOR操作,最後計算資料的CRC值。

三、CRC(Cyclic Redundancy Check)循環備援校驗碼

CRC的計算範圍包括SOF和EOF之間的所有資料(即不包括控制基元),以Dword(32-bit)為機關,如果資料的内容不是Dword的整數倍,需要在資料包的後面用‘0’來補充。

  • 協定規定CRC的初始值為0x52325032,
  • SOF和EOF之間的所有資料不能超過2064個Dwords。
    #SATA# SATA系列專題之二《2.2 Link layer鍊路層加擾/解擾/CRC解析》文章目錄前言一、故事前傳二、加擾(Scramble)/解擾(Descramble)總結

總結

提示:這裡對文章進行總結:

例如:以上就是今天要講的内容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理資料的函數和方法。

繼續閱讀