pcie扰码的作用_物理层逻辑知识,关于扰码器需要遵循的规则
上一篇文章中提到了Mux会对来自数据链路层的数据(TLP&DLLP)插入一些控制字符,如下图所示。当然,这些控制字符只用于物理层之间的传输,接收端的设备的物理层接收到这些数据后,会将这些控制字符去除,在往上传到其数据链路层。
当然,除了STP、SDP和END之外,还有一些其他的控制字符,如EDB(前面的文章详细介绍过)、SKIP、COM等。如下图所示:
前面的文章中提到过OrderedSets,其主要用于链路训练等。每一个OrderedSet都是按照DW对齐的(即四个字节),且OrderedSet开头也是一个叫做Comma(COM)的K字符(控制字符),随后包含一些K字符或者D字符(数据字符)。
对于只有一个Lane的PCIe设备来说,ByteStriping并没有什么卵用,其主要用于多个Lane的数据流分配。x1(一个Lane)和x8(8个Lane)的例子分别如下两张图所示:
除此之外,还有一些其他的规则,主要是针对Mult-Lane的,对于一个Lane并没有什么影响:
x4(4个Lane)需要遵循以下的规则:
·STPandSDPcharactersarealwayssentonLane0.
·ENDandEDBcharactersarealwayssentonLane3.
·WhenanorderedsetsuchastheSKIPissent,itmustappearonalllanessimultaneously.
·WhenLogicalIdlesaretransmitted,theymustbesentonalllanessimultaneously.
·AnyviolationoftheserulesmaybereportedasaReceiverErrortotheDataLinkLayer.
如下图所示:
对于x8、x16、x32需要遵循以下的规则:
·STP/SDPcharactersarealwayssentonLane0whentransmissionstartsafteraperiodduringwhichLogicalIdlesaretransmitted.Afterthat,theymayonlybesentonLanenumbersdivisibleby4whensendingback‐to‐backpackets(Lane4,8,12,etc.).
·END/EDBcharactersaresentonLanenumbersdivisibleby4andthenminusone(Lane3,7,11,etc.).
·Ifapacketdoesn’tendonthelastLaneoftheLinkandtherearenomorepacketsreadytogo,PADSymbolsareusedasfillerontheremaininglanenumbers.LogicalIdlecan’tbeusedforthispurposebecauseitmustappearonallLanesatthesametime.
·Orderedsetsmustbesentonalllanessimultaneously.
·Similarly,logicalidlesmustbesentonalllaneswhentheyareused.
·AnyviolationoftheserulesmaybereportedasaReceiverErrortotheDataLinkLayer.
x8的例子如下图所示:
发送端的扰码器(Scrambler)有一个16-bit的线性反馈寄存器(LFSR,LinearFeedbackShiftRegister),其实现了以下这个多项式:
具体的功能框图如下图所示:
关于扰码器(Scrambler)还需要遵循以下这些规则:
·不同的Lane的扰码器必须是同步操作的;
·扰码器只对TLP和DLLP中的D字符(数据字符)以及逻辑空闲字符(00H,LogicalIdle)作用,并不作用于K字符(控制字符)和OrderedSet中的D字符(如TS1、TS2等);
·兼容性测试字符(CompliancePatternCharacters)并不被扰码;
·COM字符(一种控制字符,不会被扰码)可用于使发送端和接收端的扰码器中的LFSR同时被初始化为FFFFH;
·扰码器默认时被使能的,但是PCIeSpec允许将其临时禁止,以用于测试用途。
PCIe中用到的K字符(控制字符)如下表所示:
其对应的8b/10b编码如下表所示:
注:其中PAD字符主要用于Mult-Lane中,当一个包的长度比较短,有的Lane可能就没有数据可以发了,这时候可以用PAD字符来填充。如本文的x8的例子所示。
OrderedSets主要用于链路管理(LinkManagement)功能。对于Gen1和Gen2的PCIe来说,所有的OrderedSet都以COM作为开头。OrderedSets是在每个Lane上同步发送的,即每一个Lane都会同时的发送相同的OrderedSets,因此,OrderedSets也可以被用于LaneDe-skewing。除了链路训练之外,OrderedSets还被用于时钟容差补偿(ClockToleranceCompensation)以及更改链路功耗状态(ChangingLinkPowerStates)等。
对应的,主要有以下几种OrderedSets:TS1andTS2OrderedSet(TS1OS/TS2OS)、ElectricalIdleOrderedSet(EIOS)、FTSOrderedSet(FTSOS)、SKPOrderedSet(SOS)和ElectricalIdleExitOrderedSet(EIEOS)。
注:关于链路管理以及OrderedSets等详细内容,会在后续的博文中介绍。
pcie扰码的作用_物理层逻辑知识,关于扰码器需要遵循的规则相关推荐
- pcie扰码的作用_分享 扰码的作用
扰码 要分上行和下行链路来考虑: 扰码就是就是用一个伪随机码序列对扩频码进行相乘,对信号进行加密.上行链路物理信道加扰的作用是区分用户,下行链路加扰可以区分小区和信道. 在上行链路中,扰码区分用户,扩 ...
- pcie扰码的作用_CDMA中扰码的作用
Q:要分上行和下行链路来考虑: 扰码就是就是用一个伪随机码序列对扩频码进行相乘,对信号进行加密.上行链路物理信道加扰的作用是区分用户,下行链路加扰可以区分小区和信道. 在上行链路中,扰码区分用户,扩频 ...
- mimo-ofdm无线通信技术及matlab实现_智芯文库 | FPGA无线通信课程连载——扰码的原理及实现...
一.扰码的作用 对数字信号的比特进行随机处理,减少连0和连1的出现,从而减少码间干扰和抖动,方便接收端的时钟提取:同时又扩展了基带信号频谱,起到加密的效果.为了保证在任何情况下进入传输信道的数据码流中 ...
- java扰码_TD中下行同步码和扰码的区别和作用
1.下行同步码是用来标识小区和区分相邻小区的,UE搜索到下行同步码了才能确定是哪个小区.进行同步等. 2.关于扰码,作用比较多,上行链路物理信道加扰的作用是区分用户,下行链路加扰可以区分小区和信道,扰 ...
- Verilog数字系统基础设计-扰码与解扰
Verilog数字系统基础设计-扰码与解扰 扰码可以对原始的用户数据进行扰乱,得到随机化的用户数据.发送电路在发送数据前先对数据进行随机扰乱,接收电路使用相同的扰乱算法重新恢复出原始的数据. 什么是扰 ...
- 扰码原理以及matlab实现
一.扰码 扰码的作用:避免出现长连0或长连1,避免信号的功率谱密度集中在窄带内. 扰码的结构是一个带反馈的移位寄存器,通过输入与移位寄存器的某些寄存器进行模2加来得到输出. 特征多项式 扰码器结构 图 ...
- java 扰码工具_【Developer Log】ProGuard扰码可执行JAR包
在项目上线之前需要通过ProGuard来对java的class进行混淆,以避免反编译方式,来保护自己的代码.ProGuard网上有很多资料,可以参考:http://blog.csdn.net/zhan ...
- MIPI CSI-2笔记(12) -- Low Level Protocol(数据加扰,扰码,Data Scrambling)
数据加扰(Data Scrambling)的目的是减轻EMI和RF自干扰做造成的影响,加扰是通过将链路的信息传输能量扩展到一个尽可能大的频带上,使用了一种数据随机化技术(data randomizat ...
- 星星之火-30:什么是WCDMA的伪随机码与扰码?
1 扰码的动机 WCDMA的正交码真正的目的不是编解码,而是为了复用与解复用. 正交码的最重要的特性是:正交码不是孤立的存在,而是与其他正交码一起存在的,正交码之间的内积为0,正交码与自身的内积不为0 ...
最新文章
- Android主线程耗时动画卡顿,Android性能优化实战之界面卡顿
- java中异常处理机制
- PTA浙大版python程序设计题目集--第2章-1 计算 11+12+13+...+m (30 分)
- 经典C语言程序100例之四一
- php+linux+线程安全,PHP 线程安全与非线程安全版本的区别深入解析
- Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch
- UOJ #584. 天天去哪吃
- T-SQL编程基础之三:游标(Cursor)编程
- Vondrak滤波原理详解及Matlab实现
- mysql window下 安装udf_Windows下MySQL下载安装、配置与使用
- 政府部门和金融行业已成网络攻击的最大目标
- linux磁盘性能监视,Linux磁盘I/O性能监控之iostat详解
- 仪式与工具--团队管理之规范创立与流程固化过程中必要因素
- Seata分布式事务原理
- 安利几个好用的在线画图网站
- UberAir飞行汽车:一键乘坐飞机会变成现实吗
- 管理者如何做好团队规划
- Django学习笔记(3):使用模型类进行查询(查询函数、F对象、Q对象、聚合函数、查询集、模型类关系、关联查询、自关联、管理器)
- Python数据分析:异常值检验的两种方法 -- Z 分数 上下分位点(放入自写库,一行代码快速实现)
- LeetCode-1789. 员工的直属部门