1. PCIe与USB概述:从历史到SI设计的核心价值
大家好,我是老张。做信号完整性这行十几年了,每次带新人时,我总喜欢先聊聊PCIe和USB的发展史。为什么?因为你不了解它们的「前世今生」,就很难理解今天SI设计的那些「坑」是怎么来的。
说白了,PCIe和USB是两种完全不同「性格」的接口。一个追求极致性能,一个追求通用便捷。但有意思的是,它们都在朝着更高速度、更复杂SI挑战的方向狂奔。
1.1 PCIe的发展历程:从并行到串行的革命
我记得2003年刚入行那会儿,PCI总线还是主流。33MHz、32位宽,理论带宽才133MB/s。那时候做硬件设计,走线对齐是最头疼的事——32根数据线必须等长,差一点都不行。
后来PCIe 1.0出来了,彻底颠覆了这一切。它把并行总线改成了串行差分对,用2.5GT/s的速率,单通道就达到250MB/s。我当时的第一反应是:「这玩意儿能稳定吗?」
嗯,事实证明我多虑了。PCIe的发展速度远超想象:
| 版本 | 单通道速率 | 编码方式 | 发布年份 |
|---|---|---|---|
| PCIe 1.0 | 2.5 GT/s | 8b/10b | 2003 |
| PCIe 2.0 | 5.0 GT/s | 8b/10b | 2007 |
| PCIe 3.0 | 8.0 GT/s | 128b/130b | 2010 |
| PCIe 4.0 | 16.0 GT/s | 128b/130b | 2017 |
| PCIe 5.0 | 32.0 GT/s | 128b/130b | 2019 |
| PCIe 6.0 | 64.0 GT/s | PAM4 + FLIT | 2022 |
你想想看,从2.5GT/s到64GT/s,翻了25倍多。但PCB板材的介电常数变化可没这么快。这就是为什么SI设计越来越难——速率在涨,材料却没跟上。
核心要点:PCIe从3.0开始改用128b/130b编码,效率从80%提升到98.4%。但代价是时钟恢复更难了。我在项目中遇到过,有些老工程师还按8b/10b的裕量去设计3.0的链路,结果眼图根本睁不开。
1.2 USB的发展历程:从「通用」到「全能」
USB的故事更有意思。1996年USB 1.0出来时,只有1.5Mbps,说白了就是用来替代串口和并口的。我当时觉得这玩意儿速度太慢,没什么用。
结果USB 2.0在2000年直接飙到480Mbps,一下子成了外设接口的标准。我个人习惯用「三阶段」来理解USB的发展:
- 第一阶段(USB 1.x/2.0):解决「能不能用」的问题。SI设计相对简单,差分阻抗90Ω±15%就够。
- 第二阶段(USB 3.x):解决「快不快」的问题。5Gbps起步,SI设计开始头疼。我记得第一次做USB 3.0的板子,因为过孔stub没处理好,眼图直接闭合了。
- 第三阶段(USB4):解决「通不通吃」的问题。40Gbps,基于Thunderbolt协议,SI设计难度和PCIe 4.0相当。
| 版本 | 速率 | 信号类型 | SI挑战等级 |
|---|---|---|---|
| USB 1.1 | 12 Mbps | 单端 | 低 |
| USB 2.0 | 480 Mbps | 差分 | 中 |
| USB 3.0 | 5 Gbps | 差分 | 高 |
| USB 3.1 | 10 Gbps | 差分 | 很高 |
| USB 3.2 | 20 Gbps | 差分×2 | 极高 |
| USB4 | 40 Gbps | 差分×4 | 挑战级 |
个人经验:USB 2.0的D+和D-走线,很多人觉得简单就不重视。我曾经在一个项目中,就因为USB 2.0的差分对没做包地处理,导致EMI超标了6dB。记住:低速接口的SI问题往往更隐蔽。
1.3 PCIe与USB的应用场景对比
这两种接口的应用场景,说白了就是「内用」和「外用」的区别。
PCIe的场景:
- 芯片间互联(CPU到GPU、SSD、网卡)
- 服务器内部高速通道
- 需要确定性延迟的场景(比如NVMe存储)
- 板级走线长度通常< 15英寸
USB的场景:
- 外设连接(键盘、鼠标、U盘、摄像头)
- 支持热插拔,线缆长度可达3米
- 供电和数据一体化
- 兼容性要求极高
你想想看,PCIe的链路是固定的,走线长度可控。而USB的线缆可能被用户随意弯折、延长。这就是为什么USB的SI设计要考虑更多「非理想情况」。
关键区别:PCIe更关注通道内的损耗和串扰,USB更关注连接器处的阻抗不连续和线缆的衰减。我在做混合设计时,经常需要在这两种思维之间切换。
1.4 SI设计的重要性:为什么不能忽视?
嗯,这里我要说点实在的。很多硬件工程师觉得SI是「玄学」,或者认为「只要走线短就没问题」。这种想法在低速时代或许还行,但在今天——
一个真实的案例:我曾经帮一个团队debug PCIe 4.0的链路问题。他们的板子layout看起来没问题,走线长度也符合规范。但就是跑不稳,经常掉链路。我拿VNA一测,发现过孔的阻抗从85Ω跳到了110Ω。原因是什么?过孔的反焊盘挖得太大了。
这就是SI设计的价值——它帮你找到那些「看不见」的问题。
SI设计的重要性体现在三个层面:
- 信号质量层面:眼图、抖动、串扰、损耗。这些参数直接决定链路能不能正常工作。
- 系统可靠性层面:误码率(BER)必须低于1e-12。PCIe 5.0的要求更严,BER要低于1e-15。
- 成本控制层面:好的SI设计可以用普通FR4板材跑高速,省下的材料成本可不是小数目。
避坑指南:我曾经见过一个项目,为了省成本,把PCIe 4.0的走线从内层换到了表层。结果因为表层参考平面不连续,导致回波损耗超标。最后不得不重新改板,浪费了两周时间。记住:SI设计不是「锦上添花」,而是「雪中送炭」。
1.5 本章小结
PCIe和USB,一个向内,一个向外。一个追求极致带宽,一个追求通用便捷。但它们都面临同一个挑战——如何在越来越高的速率下保证信号完整性。
我个人习惯把SI设计比作「在钢丝上跳舞」。你既要满足电气规范,又要兼顾成本、可制造性。没有捷径,只有理解原理、积累经验。
下一章,我会详细讲PCIe的物理层SI设计要点。包括差分阻抗控制、AC耦合电容的选型、以及我最头疼的——参考平面跨分割问题。到时候见。
课后思考:如果你现在要设计一个同时支持PCIe 4.0和USB 3.2的板子,你会优先考虑哪些SI问题?欢迎在评论区和我交流。