通信与接口协议面试十、PCIe

1.PCI

是一种高速串行计算机扩展总线标准。PCI 是总线的连接方式,PCle是点对点的连接方式。PCle总线使用了高速差分总线,采用端到端的连接方式,因此在每一条PCle链路中只能连接两个设备。因此PCle与PCl总线采用的拓扑结构有所不同。PCI是并行数据传输,PCle是串行数据传输。

2.PCIE概述

PCle总线是连接外部设备的线路。

PCle通道是 PCle 总线的组成部分,PCle总线包含一条或多条PCle通道。一条PCle通道就是X1。PCle卡是一种具有PCle接口的卡,在主板级连接中用作扩展端口。

3.特性

①点对点。PCle使用高速差分总线端到端的方式进行连接,差分信号可以匹配更高的时钟频率,且信号传输时的抗干扰。

②双向(双单工)。"单工"是指物理连接上的单向通信,而"双"是指两个。

③PCle总线最多具有32个通道,当不需要使用全部的数据吞吐量,可以使用部分通道。

④向后兼容之前的PCle版本。

⑤7种规格X1X2X4X8X12X16X32。

4.PCle拓扑结构

Root Complex:根桥设备,是PCle最重要的一个组成部件;是CPU与总线的直接接口。RootComplex主要负责PCle报文的解析和生成。RC接受来自CPU的IO指令,生成对应的PCle报文,或者接受来自设备的PCleTLP报文,解析数据传输给CPU或者内存。

Switch: PCle 的转接器设备,目的是扩展PCle线。挂载更多的PCle设备,那就需要用到 switch 转接器。扮演了数据包路由的功能。

PCle endponit:PCle终端设备,是 PCle 树形结构的叶子节点。比如网卡,NVME卡,显卡都是 PCleep设备。

Bridge 提供了一个转换接口用来连接其他的总线,如PCl/PCI-X。这样可以允许在 PCle的系统中接入一张旧的PCI设备。

内存很重要,CPU一般直接直连。

5.PCle速度

GT/s: Giga transation per second

通信协议的速率属性,描述的是链路上传输的原始数据(单Lane的峰值带宽)。

Gbps: Giga Bits Per Secondd(千兆位/秒)。描述的是链路上传输的有效数据。GT/s与Gbps之间不存在成比例的换算关系。

PCle总线带宽是按长度计算的,最短的是X1。

6.编码方式

吞吐量=传输速率*编码方案。

PCle 3.0协议支持 8.0GT/s,即每一条 Lane上支持每秒钟内传输 8G 个 Bit。而PCle 3.0的物理层协议中使用的是128b/130b的编码方案。即每传输128个Bit,需要发送130个Bit。

PCle 3.0协议的每一条Lane支持8*128/130=7.877Gbps=984.6MB/s的速率。

7.接口类型

①金手指GoldFinger(Add-in)。金手指最主要的作用是连接。

②PCle socket插槽。

8.管脚

电源:+12V5个;+.3.3V3个;3.3VAUX1个。

根据功耗的不同,三种电压的供电能力不同,PCle卡可以分为以下几种:10W,25W,75W,直接通过金手指提供;

+12V主要给PCle设备(如显卡)提供更大的供电能力。

Vcc 3.3V为主电源,PCle设备使用的主要逻辑模块均使用VCC供电。

电源管理相关的逻辑和寄存器使用Vaux供电。

PRSNT1#和PRSNT2#信号

PCle设备的热插拔。Add-in 卡中,PRSNT1#和 PRSNT2#信号直接相连。处理器主板,PRSNT1#信号接地,而PRSNT2#信号通过上拉电阻接为高。

原理:当Add-In卡插入时主板的PRSNT2#信号将与PRSNT1#信号通过Add-In卡连通,此时PRSNT2#信号为低。处理器主板的热插拔控制逻辑将捕获这个"低电平",得知Add-In卡已经插入。PRSNT1#和PRSNT2#信号使用的金手指长度是其他信号的一半。

PERST#信号全局复位信号,由处理器系统提供。TRST#测试复位/TRST。

REFCLK+和REFCLK-信号100Mhz的时钟,给PCle提供时钟。0.3-0.45V左右,PCle的差分时钟的电压。

WAKE#当 PCle设备进入休眠状态,该信号向处理器系统提交唤醒请求,使处理器系统重新为该PCle设备提供主电源。WAKE#信号是可选的。使用辅助电源Vaux供电。

SMCLK 和SMDAT信号与x86处理器的SMBus相关。PCle设备与处理器系统进行交互。可选。JTAG 信号由TCK、TDI、TDO和TMS信号组成。可选。

CLKREQ#信号是一个open-drain 管脚,用于关闭参考时钟。请求运行时钟。

9.电路布局

1.注意:金手指的槽和金手指这两个原理图是不一样的!

金手指(B对应的是RX)(A对应的是TX)PRSNT1、PRSNT2、PRSNT3等等,需要加---个0欧姆的电阻串在一起。

插槽(B对应的是TX)(A对应的是RX)插槽的PRSNT1接地,PRSNT2、PRSNT3及其他接fpga

2.PCle总线采用交流耦合的方式进行传输,耦合电容一般靠近 TX发送端放置。PCle1.0/ PCle2.0 100nF。

3.PCle接口的收发信号直接跟FPGA BANK115,BANK116的GTX收发器相连接。

相关推荐
不悔哥5 天前
开源OV-Watch:怎么做一个智能手表
单片机·开源·嵌入式
XiHongShi20165 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
晨米酱5 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
深圳老胡5 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
女神下凡5 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
彧azz5 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
梅梅9665 天前
一款mipi转lvds的lcd调试(LT8912B)
单片机·计算机外设·电脑·显示器·pd芯片
开发笔记-阿牛5 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频
从零开始的嵌入式之旅5 天前
day47
arm开发·经验分享·笔记·嵌入式硬件
CoderYanger5 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法