文章目錄
- 系列文章目錄
- 前言
- 一、故事前傳
- 二、SATA Link Layer 加擾/解擾解析
- 二、SATA Link Layer CRC解析
- 總結
前言
一、故事前傳
我們之前說到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協定中資料處理流程如下 :
- 對于一個資料包,在SOF後的資料就必須計算其CRC值,同時這個資料必須和擾碼器的輸出進行XOR操作,操作結果送往8B/10B編碼器編碼;
- 反之,在接收方,資料先通過10B/8B解碼,再與擾碼器的輸出結果進行XOR操作,最後計算資料的CRC值。
三、CRC(Cyclic Redundancy Check)循環備援校驗碼
CRC的計算範圍包括SOF和EOF之間的所有資料(即不包括控制基元),以Dword(32-bit)為機關,如果資料的内容不是Dword的整數倍,需要在資料包的後面用‘0’來補充。
- 協定規定CRC的初始值為0x52325032,
- SOF和EOF之間的所有資料不能超過2064個Dwords。
總結
提示:這裡對文章進行總結:
例如:以上就是今天要講的内容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理資料的函數和方法。