3、物理层基础:物理层子层划分、差分信号对、通道与链路的概念
好,咱们正式开始聊物理层。很多同学学PCIe,一上来就被各种分层模型搞晕了。我个人习惯是,先别管事务层、数据链路层那些花里胡哨的,先把物理层吃透。为什么?因为物理层是PCIe通信的“地基”,地基不稳,上层再牛也白搭。
今天这一讲,咱们就掰开揉碎了,把物理层的几个核心概念讲清楚:物理层内部怎么划分的?差分信号对是啥?通道(Lane)和链路(Link)到底有什么区别?
3.1 物理层子层划分:逻辑子层与电气子层
PCIe的物理层,其实不是铁板一块。它内部又分成了两个子层:逻辑子层和电气子层。你想想看,一个信号从发送端到接收端,既要处理“0和1”这些数字逻辑,又要处理电压、电流这些模拟特性。这两件事性质完全不同,所以分开处理更合理。
3.1.1 逻辑子层(Logical Sub-block)
逻辑子层,说白了就是负责“数字部分”的活儿。它主要干这几件事:
- 编码与解码:比如8b/10b编码(Gen1/Gen2)或者128b/130b编码(Gen3及以上)。把数据流变成适合在高速链路上传输的格式。
- 加扰与解扰:为了防止数据中出现连续的“0”或“1”,导致时钟恢复困难,逻辑子层会对数据进行加扰。
- 链路训练状态机(LTSSM):这是物理层的“大脑”,负责管理链路的初始化、训练、电源状态切换等。这部分后面我们会专门用一节课来讲。
- Ordered Set的生成与解析:比如TS1、TS2这些训练序列,都是逻辑子层负责的。
嗯,这里要注意:逻辑子层虽然叫“逻辑”,但它并不完全独立于硬件。它通常是用数字逻辑电路(比如Verilog代码)实现的,但它的行为完全由协议定义。
3.1.2 电气子层(Electrical Sub-block)
电气子层,就是处理“模拟部分”的。它直接和物理介质(比如PCB走线、连接器)打交道。主要职责包括:
- 发送器(Tx):把数字信号转换成差分电压信号,驱动到链路上。
- 接收器(Rx):从链路上接收微弱的差分信号,放大、均衡,再转换成数字信号。
- 时钟恢复(CDR):从接收到的数据流中提取出时钟信号。
- 阻抗匹配与去加重:保证信号完整性,减少反射和损耗。
电气子层是芯片里最“硬核”的部分,通常由模拟电路工程师设计。我们做验证的,虽然不用去设计晶体管级别的电路,但必须理解它的行为特性,比如信号眼图、抖动、电压摆幅这些参数。
3.2 差分信号对(Tx/Rx)
PCIe用的是差分信号传输,而不是传统的单端信号。为什么?因为差分信号抗干扰能力强,而且能提供更高的数据传输速率。
一个差分信号对,由两根线组成:一根叫P(Positive),一根叫N(Negative)。发送端在P和N上分别发送幅度相等、极性相反的信号。接收端通过比较P和N的电压差来判断是“1”还是“0”。
举个例子:假设发送端要发一个“1”,它会在P线上输出+500mV,在N线上输出-500mV。那么接收端看到的差分电压就是(+500mV) - (-500mV) = 1000mV。如果要发“0”,则反过来,P线输出-500mV,N线输出+500mV,差分电压就是-1000mV。
你想想看,如果外界有共模噪声(比如电源噪声),它会同时耦合到P和N两根线上。假设噪声是+100mV,那么P线变成+600mV,N线变成-400mV,差分电压仍然是(+600mV) - (-400mV) = 1000mV。噪声被抵消了!这就是差分信号抗干扰的秘诀。
3.3 通道(Lane)与链路(Link)的概念
这两个概念,很多初学者容易搞混。我刚开始学的时候也迷糊过。咱们用一个比喻来理解:
- 通道(Lane):就像一条“单车道”。它由一组发送差分对和一组接收差分对组成。一个Lane可以同时发送和接收数据。
- 链路(Link):就像一条“高速公路”。它由多个Lane(车道)并在一起组成。比如x1链路就是一条单车道,x4链路就是四条车道并排跑。
更准确地说:
| 概念 | 组成 | 带宽 | 举例 |
|---|---|---|---|
| Lane(通道) | 1组Tx差分对 + 1组Rx差分对 | 每个方向一个通道的速率(如Gen3 x1为8 GT/s) | 一个Lane就像一根水管 |
| Link(链路) | 多个Lane的集合(x1, x2, x4, x8, x16) | 所有Lane的带宽之和 | 一个Link就像多根水管并在一起 |
举个例子:一个PCIe Gen3 x4的链路,意味着它有4个Lane。每个Lane的速率是8 GT/s(Giga Transfers per second,每秒十亿次传输)。那么整个链路的单向带宽就是 4 × 8 = 32 GT/s。注意,这里说的是“传输速率”,不是“数据速率”,因为还有编码开销(128b/130b编码,效率约98.5%)。
3.4 小结
好了,这一讲的内容就这些。咱们总结一下:
- 物理层分为逻辑子层(处理数字逻辑、编码、训练状态机)和电气子层(处理模拟信号、时钟恢复、均衡)。
- PCIe使用差分信号对(Tx+/Tx- 和 Rx+/Rx-)来传输数据,抗干扰能力强,支持全双工。
- Lane是基本的数据通道,由一对Tx和一对Rx组成。Link是多个Lane的集合,决定了总带宽。
下一讲,我们会深入链路训练状态机(LTSSM),看看PCIe设备从上电到稳定通信,到底经历了哪些状态。那才是真正烧脑的地方,做好准备!