首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCIe系列第七讲、PCIe的物理层

PCIe系列第七讲、PCIe的物理层

作者头像
根究FPGA
发布2020-07-14 16:37:00
2.2K0
发布2020-07-14 16:37:00
举报
文章被收录于专栏:根究FPGA根究FPGA

本章将着重讲述PCIe物理层组成与操作,物理层位于数据链路层之下,可产生PLP包(Physical Layer Packet)进行管理。

————————————————————

从作用方面考虑:物理层位于数据链路层和PCIe链路之间,其主要作用是:

1、 发送来自数据链路层的TLP和DLLP。

2、 发送和接收在物理层产生的PLP报文

3、 从PCIe链路接收数据报文并发送到数据链路层

————————————————————

从组成结构方面考虑,物理层主要由物理逻辑子层和物理电气子层构成,侧重于物理电气子层,PCIe链路通过LTSSM状态机对PCIe链路进行控制和管理,逻辑子层主要完成与数据链路层的数据交换,由发送逻辑接收逻辑组成。

发送逻辑 :

1、物理层从数据链路层中获取TLP或DLLP,将其存放到TX Buffer中

2、物理层将TX buffer中的数据添加物理层的前缀(Start Code)和后缀(End Code),之后通过多路选择器MUX,进入Byte Strpping模块。(因为物理层也定义了一系列PLP,这些PLP也可以通过MUX,进入Byte Stripping部件)

3、PCIe链路由多个Lane构成,Byte Stripping部件将报文发送到不同的Lane中,由于PCIe不同的Lane中传递的数据可能存在漂移,即Skew,Byte Stripping的一个重要功能就是消除这个漂移,即De-Skew。

4、数据进入到各自Lane的加扰(Scramber模块),“加扰”后进行8b/10b编码,最后通过并串转换模块发送到PCIe链路中。

————————————————————

接收逻辑 :

1、 物理层从PCIe链路的各个Lane中获得串行数据,串并转换之后经过8b/10b解码和De-Scramber解扰之后,发送到“Byte Unstripping”部件。

2、 “Byte Unstripping”部件将来自不同Lane的的数据进行合并,进行De-Skew操作,然后取出物理层前缀后缀并进行边界检查后,将数据放入RX buffer中。

3、 物理层将Rx Buffer中的数据发送到数据链路层。

————————————————————

从信号处理的角度来看(Scramber加扰),在串行链路上进行传输时,如果字符流存在一些规律,这些“规律”将会叠加,并产生较大的EMI(Electromagnetic Interference,电磁噪声)。

Scramber的主要作用是通过“加扰”的方式削减EMI,所谓“加扰”就是将数据流与一个随机序列进行异或操作后,再发送出去。此时被发送的数据流也基本是伪随机序列,从而降低了发送数据时的EMI PCIe总线通过一个16位的线性反馈移位寄存器生成伪随机序列,核心是m序列,在m序列中,“0”和“1”的数量基本相等,但是“1”多一点,因为全0不可以作为初始值。

来自Byte Stripping部件的数据链与这个伪随机序列中的字符流进行异或操作,从而生成一个较为随机的随机数,从而降低EMI。

De-Scramber进行去扰操作,其随机多项式与Scramber完全相同且完全同步,即使用相同的初始值(0xffff),PCIe链路两端设备每次加扰一个8b数据后,LFSR进行8次移位操作。

————————————————————

最后,以一个事务层包发送实例对物理层进行说明:

一个TLP在通过物理层时,首先要添加Start Code和End Code,分别为STD和END,STD的控制字符为K27.7和K29.7。STD和END字符在通过物理层时,不需要进行加扰解扰操作。数据链路层前缀、TLP、数据链路层后缀都属于数据字符,这些字符在通过物理层时需要进行加扰解扰操作,之后进行8b/10b转换,并串转换后发向PCIe链路。控制字符和数据自读都需要根据物理层CRD的状态,决定使用CRD-还是CRD+。PCIe链路的两端进行加扰解扰操作时,需要保证使用的LFSR寄存器同步,LFSR寄存器的同步由控制字符COM控制,在初始复位时LFSR寄存器的int value为0xffff,当接收到控制字符COM后,物理层将LFSR寄存器的值置为0xffff,此外物理层在接收到SKP控制字符后,不会对LFSR进行移位操作。

资料整理不易,欢迎关注~~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 根究FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档