SATA学习笔记——Link Layer 加扰/解扰/CRC
一、故事前传

我们之前说到Link layer的结构,link layer的作用大致可以包括以下几点:
二、加扰(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。
SATA学习笔记——Link Layer 加扰/解扰/CRC的更多相关文章
- thinkphp学习笔记9—自动加载
原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\ ...
- node 学习笔记 - Modules 模块加载系统 (1)
本文同步自我的个人博客:http://www.52cik.com/2015/12/11/learn-node-modules-path.html 用了这么久的 require,但却没有系统的学习过 n ...
- HTML&CSS基础学习笔记1.5-添加常用标签
代码如下: <!DOCTYPE html><html lang="en"><head> <meta charset="UT ...
- Openstack本学习笔记——Neutron-server服务加载和启动源代码分析(三)
本文是在学习Openstack过程中整理和总结.因为时间和个人能力有限.错误之处在所难免,欢迎指正! 在Neutron-server服务载入与启动源代码分析(二)中搞定模块功能的扩展和载入.我们就回到 ...
- angular学习笔记04 理论加实践
scope: 布尔型或对象(默认为false) ,为true时继承父作用域并创建一个新的作用域隔离作用域具有隔离作用域的指令最主要的使用场景是创建可复用的组件, 组件可以在未知上下文中使用,并且可以避 ...
- webpack学习笔记--按需加载
为什么需要按需加载 随着互联网的发展,一个网页需要承载的功能越来越多. 对于采用单页应用作为前端架构的网站来说,会面临着一个网页需要加载的代码量很大的问题,因为许多功能都集中的做到了一个 HTML 里 ...
- easyui学习笔记5—panel加载其他的页面
上一篇中我们看到了panel的基本实现,没有什么难度,最重要的是data-options和class两个标签属性的定义.这里我们将看一下在panel中如何加载其他的页面. 1.先看看引用的资源文件和h ...
- Spring学习笔记(1)——资源加载
<!-- 占坑,迟点补充底层原理 --> Spring支持4种资源的地址前缀 (1)从类路径中加载资源——classpath: classpath:和classpath:/是等价的,都是相 ...
- node 学习笔记 - Modules 模块加载系统 (2)
本文同步自我的个人博客:http://www.52cik.com/2015/12/14/learn-node-modules-module.html 上一篇讲了模块是如何被寻找到然后加载进来的,这篇则 ...
- 【EF学习笔记08】----------加载关联表的数据 显式加载
显式加载 讲解之前,先来看一下我们的数据库结构:班级表 学生表 加载从表集合类型 //显示加载 Console.WriteLine("=========查询集合===========&quo ...
随机推荐
- SD协议-状态机
1.SD卡状态回顾 2.SD卡数据传输模式 SD卡在接收到CMD3之后就会进入data transfer state,初始状态时standby state,表示空闲状态 SD卡在standby sta ...
- AI伴侣下载
总结 现在网页上很多下载的AI伴侣下载下来都会有些问题或者不能用,如下链接下载的AI伴侣亲测可以使用! (连接后会提示更新,博主没有选择更新,如有需要也可以更新) https://mit-ai2-co ...
- Linux-运行级别-init
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.2)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- 3 分钟了解 NVIDIA 新出的 H200
英伟达在 2023 年全球超算大会上发布了备受瞩目的新一代 AI 芯片--H200 Tensor Core GPU.相较于上一代产品 H100,H200 在性能上实现了近一倍的提升,内存容量翻倍,带宽 ...
- [转帖]PD 配置文件描述
https://docs.pingcap.com/zh/tidb/stable/pd-configuration-file PD 配置文件比命令行参数支持更多的选项.你可以在 conf/config. ...
- [转帖]通过 TiUP 部署 TiDB 集群的拓扑文件配置
https://docs.pingcap.com/zh/tidb/stable/tiup-cluster-topology-reference 通过 TiUP 部署或扩容 TiDB 集群时,需要提供一 ...
- [转帖]PostgreSQL 慢查询SQL跟踪
https://www.cnblogs.com/VicLiu/p/12017704.html PostgreSQL 开启慢SQL捕获在排查问题时是个很有效的手段.根据慢SQL让我在工作中真正解决了实际 ...
- [转帖]Jmeter接口测试:${__UUID()}函数
UUID函数返回一个伪随机类型的通用唯一标识符ID. UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写.UUID是基于当前时间戳.随机数和硬件标识(例如 ...
- [转帖]PostgreSQL 日志参数解释 常用环境日志参数配置
1.常用日志参数 logging_collector = on/off 是否将日志重定向至文件中,默认是off(该配置修改后,需要重启DB服务),启动之后查看进程ps -ef|grep postgr ...
