
1. 从一次信号联调失败说起为什么电平标准不是“能通就行”前两年帮一个做数据采集的朋友调一块板子FPGA和一颗高速ADC之间用LVDS对接原理图看着没问题线也等长了结果眼图一测眼高只剩不到80mV误码率怎么都下不去。折腾了两天最后发现问题出在FPGA侧bank的VCCO供电给的是3.3V而LVDS的共模电平要求大约1.2V接收端根本没法正常判决。把bank电压改成2.5V、重新配置IO标准之后眼图立刻张开。这件事让我印象很深——高速接口电平标准从来不是“接上就能通”的事它是一整套关于电压、阻抗、参考、端接和时序的约定。所谓高速接口电平标准说白了就是两句话发送端用什么电压摆幅和共模去表达0和1接收端用什么门限和端接去正确识别它。低速时代我们不太在意这些3.3V的CMOS推挽输出几MHz的信号随便连都能跑。可一旦速率上到几百Mbps甚至Gbps上升沿变成几百皮秒走线变成传输线这时候电平标准选错、端接做错、参考电平给错任何一个环节都能让链路直接趴窝。这篇文章想聊的就是围绕高速接口电平标准这一主题把常见标准LVDS、LVPECL、CML、HSTL、SSTL、TMDS等的电气本质、选型逻辑、端接计算、实测踩坑完整地梳理一遍。适合正在做高速数字设计、FPGA互联、SerDes外围电路、或者单纯被眼图和误码率折磨过的硬件工程师和逻辑工程师看。不管你是刚接触差分信号的新手还是已经画过几版高速板的老手我都尽量把“为什么这么设计”讲透而不是只丢一张参数表给你。我个人的习惯是先看速率和拓扑再定标准最后算端接。顺序反了后面全是返工。下面就从最容易被忽略的电气本质开始拆。2. 差分电平标准的电气本质共模、差模与门限判决2.1 差模摆幅决定抗噪共模决定能否被“看见”任何差分标准都可以用两个参数描述清楚差模电压Vod也叫差分摆幅和共模电压Vocm。差模是两根线之间的电压差接收端真正关心的是它共模是两根线相对地的平均电压决定了这个差分对“浮”在多高的电位上。接收端的输入级通常是一个差分放大器它有一个共模输入范围。只要Vocm落在这个范围内放大器就能正常工作把差模放大并判决成逻辑电平。一旦Vocm超出范围哪怕差模摆幅再大输出也是错的。前面那个案例就是典型LVDS的Vocm典型值1.2V而3.3V bank的输入级共模范围根本覆盖不到直接失效。这里有个很实用的类比差模像两个人说话的音量差共模像他们站在多高的舞台上。舞台太高或太低台下的人接收器根本听不清谁声音大。2.2 常见标准的电气参数横向对比把主流标准的关键参数摆在一起看选型时心里就有数了。下面这张表是我自己整理后常用的速查版参数取的是典型值具体设计一定要以器件手册为准。标准典型差模摆幅典型共模端接方式典型速率典型场景LVDS350mV1.2V100Ω差分数百Mbps~3GbpsFPGA互联、ADC接口LVPECL800mVVCC-1.3V50Ω到VCC-2V数百Mbps~数Gbps时钟分配、高速背板CML400~800mVVCC-0.2V50Ω到VCC数Gbps~数十GbpsSerDes、光模块TMDS约500mV3.3V/2.5V50Ω到3.3V数百Mbps~数GbpsHDMI类视频接口HSTL可配置0.75V/1.5V50Ω到VTT数百Mbps高速存储器接口SSTL可配置随VDDQ50Ω到VTT数百MbpsDDR类存储器接口看这张表要抓住一个规律速率越高摆幅越小、共模越靠近电源轨、端接越趋向于50Ω到某个固定电位。原因是高速下功耗和边沿速率是矛盾体摆幅小才能快而端接是为了吸收反射、维持阻抗连续。2.3 为什么端接电阻不是随便选的很多人知道差分对要接100Ω但不知道为什么。差分走线的差分阻抗通常设计成100ΩUSB、LVDS、以太网都是这个值如果接收端不端接信号到达末端会发生反射反射波叠加在原信号上眼图就糊了。端接电阻等于差分阻抗时能量被完全吸收反射最小。LVPECL和CML则不同它们是电流型输出输出级本质是一个恒流源加开关。LVPECL需要把电流“拉”到某个电位所以端接是50Ω到VCC-2V等效于戴维南端接CML是50Ω到VCC因为它的输出电流方向是往电源灌的。这些端接方式如果搞反要么没有摆幅要么烧输出级。提示端接电阻的功耗一定要算。LVPECL的50Ω到VCC-2V端接单端电流约14mA一个差分对就是28mA多路时钟分配时功耗很可观PCB上要留足散热。3. 选型决策链从速率、拓扑到供电约束的完整推演3.1 第一步永远是速率和距离选电平标准第一个要问的是信号速率多高走线多长。这两点直接决定了你是在“普通互连”还是“传输线互连”的范畴。经验上当信号上升时间小于走线往返延迟的1/6时就必须按传输线处理。举个具体例子FR4上信号传播速度约6英寸/ns如果上升时间是200ps那么临界长度大约是 200ps × 6in/ns / 6 ≈ 0.2英寸也就是5mm左右。也就是说只要你的走线超过5mm200ps边沿的信号就已经是传输线问题了。这时候电平标准必须选差分、必须端接。速率和标准的对应关系大致是低于100MbpsCMOS/LVTTL还能凑合100Mbps到1GbpsLVDS是性价比之王1Gbps以上CML和SerDes是主流时钟分配场景LVPECL因为抖动低而常被选用。3.2 第二步看收发两端的供电和IO bank约束FPGA的IO bank是分组的每个bank有自己的VCCO。一个bank里所有IO标准必须兼容同一个VCCO这是硬约束。比如你想在同一个bank里混用LVDS要2.5V和3.3V的LVCMOS基本是做不到的只能分bank。选标准时要先翻器件手册的IO标准支持表确认目标bank在目标VCCO下支持哪些标准。很多新手栽在这里原理图画完才发现某个bank不支持想要的差分标准只能改板或者换bank代价很大。另外要注意参考电压VREF。HSTL、SSTL这类单端标准需要外部提供VREF通常是VDDQ的一半。VREF的噪声直接决定接收门限的稳定性所以VREF走线要加去耦、要远离开关噪声源。3.3 第三步才是端接和匹配的具体计算确定标准之后端接计算才有意义。以LVDS为例接收端并一个100Ω电阻是最常见的做法但要注意这个电阻要尽量靠近接收端否则端接点之前的走线仍会产生反射。如果是点到多点一个发送端驱动多个接收端的LVDS就不能简单并100Ω了因为多个端接并联会拉低等效阻抗。这时候要么用菊花链加末端端接要么用专门的差分分配器。我见过有人在一个LVDS时钟上挂了4个接收端每个都并100Ω结果等效25Ω摆幅直接掉到100mV以下完全没法用。LVPECL的端接计算稍微复杂一点。假设VCC3.3V要端接到VCC-2V1.3V用两个电阻分压实现上电阻R1接VCC下电阻R2接GND并联等效50Ω分压得到1.3V。解方程R1∥R250R2/(R1R2)×3.31.3。算下来R1≈127ΩR2≈82Ω。这两个值就是经典的LVPECL戴维南端接参数。3.4 一个真实的选型推演案例假设有个场景FPGA要驱动一颗高速ADC采样率200MSPS数据用DDR输出等效数据率400Mbps走线长度约3cm。怎么选第一步400Mbps、3cm明显是传输线范畴必须差分端接。第二步看FPGA bank假设该bank VCCO可配2.5V支持LVDS。第三步ADC的LVDS接收端共模要求1.2V和FPGA的LVDS输出匹配。结论选LVDS接收端并100Ω走线做100Ω差分阻抗控制。如果ADC要求的是CML呢那就得在FPGA和ADC之间加AC耦合电容因为CML共模和LVDS共模不一致AC耦合可以隔离共模让两端各自工作在舒适的共模点上。这个细节后面还会展开。4. 端接与匹配的实操细节从原理图到PCB的落地4.1 AC耦合电容什么时候必须加加多大AC耦合是高速接口里非常常用的手段作用是隔离两端的共模电压让发送端和接收端各自设定自己的共模工作点。什么时候必须加当两端标准的共模不匹配时比如LVDS驱动CML、CML驱动LVDS、或者两端供电域不同时。电容值怎么选它和走线的等效阻抗构成一个高通滤波器截止频率 f 1/(2πRC)。要保证信号的最低频率成分能通过。对于8b/10b编码的信号最低频率成分大约在数据率的1/1000量级。假设数据率1Gbps最低频率约1MHzR50Ω则 C ≥ 1/(2π×1e6×50) ≈ 3.2nF。工程上常用0.1μF留足余量。注意AC耦合电容要放在发送端还是接收端一般放在发送端附近这样电容到接收端的走线是纯差分、共模稳定的有利于阻抗连续。电容封装用0402或0201减小寄生电感。4.2 差分对的PCB走线规则差分对的走线质量直接决定眼图。几条我踩过坑之后总结的硬规则等长优先于等距。差分对内部两根线的长度差要控制在5mil以内否则差模会转化成共模产生EMI。等距是次要的因为间距变化对阻抗影响相对小。差分阻抗要连续。换层、过孔、连接器处阻抗最容易突变。过孔要做阻抗匹配必要时加回流地孔。远离单端信号和电源。差分对旁边如果有高速单端线会通过容性耦合注入共模噪声。间距至少3倍线宽。参考平面要完整。差分对下方的地平面不能有裂缝否则回流路径被切断阻抗突变。我见过一个案例差分对跨过了地平面的分割缝结果眼图完全闭合。把缝补上之后立刻恢复。这个坑非常隐蔽因为原理图上看不出任何问题。4.3 端接电阻的布局与选型端接电阻的位置比阻值更容易出错。LVDS的100Ω端接必须放在接收端最近处最好紧贴接收芯片引脚。如果放在发送端那接收端就是开路反射照样发生。电阻选型上高速差分端接要用薄膜电阻寄生电感小温度系数好。0402封装是主流0201用于更高速率。不要用厚膜电阻它的寄生电感和噪声都偏大。对于LVPECL的戴维南端接两个分压电阻要靠近接收端且要保证两个电阻的走线对称否则共模会偏。我一般会把这两个电阻和去耦电容放在同一片小区域内形成一个紧凑的端接网络。4.4 共模偏置与失效保护有些接收器在输入悬空时会振荡因为差分输入没有确定的共模。这时候需要加失效保护偏置在差分对的一端通过大电阻如1kΩ拉到VCC另一端拉到GND给一个微弱的共模偏置。这样即使发送端不工作接收端输出也是确定的。这个技巧在热插拔场景特别有用。板卡没插好时接收端不会因为悬空而产生误触发。偏置电阻要大避免影响正常信号的端接阻抗。5. 实测中的典型故障眼图闭合、误码与共模漂移的排查链路5.1 眼图闭合的第一反应先看端接再看共模眼图是高速接口最直观的体检报告。眼高小、眼宽窄先别急着怀疑芯片按这个顺序查端接电阻在不在、对不对。用万用表量接收端差分阻抗应该是100Ω左右断电测。如果量出来是50Ω或200Ω端接肯定有问题。共模电压对不对。用示波器差分探头量Vocm对照手册。偏了就先查供电和偏置。走线阻抗连不连续。用TDR时域反射测看有没有明显的阻抗突变点。参考平面完不完整。检查差分对下方地平面有没有被分割。这个顺序是从“最容易查”到“最难查”排的。端接和共模用万用表和示波器几分钟就能确认走线和平面问题往往要动板子。5.2 误码率的间歇性问题往往是共模漂移有一种故障特别折磨人链路大部分时间正常偶尔误码重启又好。这种间歇性问题十有八九是共模漂移。原因可能是相邻高速信号通过电源或地耦合抬高了局部共模。温度变化导致器件共模输出漂移。电源纹波通过输出级调制到共模上。排查方法是长时间监测Vocm看它是否随某个信号或温度变化。我遇到过一次是旁边一组DDR的开关噪声通过共享电源耦合过来把LVDS共模抬高了200mV刚好超出接收范围。后来给LVDS的供电加了独立的LDO和去耦问题消失。5.3 一个完整的排查实例复盘回到开头那个FPGA-ADC的案例完整排查链路是这样的现象眼图眼高80mV误码率1e-6远高于要求的1e-12。第一步量端接接收端100Ω正常。第二步量共模Vocm约1.2V看似正常但用高带宽探头细看发现共模上有约150mV的开关噪声。第三步查噪声来源发现FPGA的3.3V bank和ADC的模拟供电共用了一段电源平面。第四步验证临时给LVDS供电飞线独立LDO共模噪声降到30mV眼图张开误码率达标。最终方案改板时把LVDS供电独立出来加π型滤波。这个案例说明共模噪声是高速差分链路最隐蔽的杀手。差模抗噪能力强但共模一旦被污染接收器直接失效。5.4 测试测量本身的坑测高速差分信号探头和夹具本身就会引入误差。几个经验用差分探头不要用两个单端探头相减后者共模抑制比差测出来的眼图是假的。探头带宽要至少是信号带宽的3倍。1Gbps信号基频500MHz三次谐波1.5GHz探头带宽至少4.5GHz。焊接式探头前端比插座式好寄生参数小。测试点要靠近接收端测发送端没意义因为接收端才是判决的地方。我见过有人用200MHz带宽的探头测1Gbps信号测出来眼图一塌糊涂然后拼命改板其实问题在探头。先确认测量系统本身可信再怀疑设计。6. 进阶话题从电平标准到SerDes均衡的演进逻辑6.1 为什么高速SerDes不再“裸奔”电平标准当速率上到5Gbps、10Gbps以上信道损耗变得不可忽略。FR4在5GHz处的损耗可能达到1dB/inch走10英寸就是10dB信号到达接收端时高频成分被严重衰减眼图完全闭合。这时候光靠电平标准已经救不了了必须引入均衡。均衡的本质是发送端预加重Pre-emphasis提升高频接收端均衡CTLE/DFE补偿信道损耗。这时候电平标准退化成“物理层电气接口”真正决定链路能否工作的是均衡算法和信道特性。CML之所以在SerDes里通用就是因为它摆幅适中、端接简单、适合做电流型驱动方便叠加预加重。6.2 电平标准与协议层的关系很多人把电平标准和协议混为一谈。其实电平标准只定义物理层的电气特性协议层如8b/10b编码、时钟恢复、链路训练是另一回事。同一个电平标准可以承载不同协议比如LVDS可以传自定义数据也可以传Camera LinkCML可以传以太网也可以传PCIe。理解这个分层很重要电平标准解决“电信号能不能被正确识别”协议解决“数据怎么组织、怎么纠错、怎么同步”。调链路时先确认物理层眼图OK再去查协议层否则会在错误的方向上浪费时间。6.3 未来趋势更低摆幅、更高密度从趋势看电平标准在往两个方向走摆幅越来越低降低功耗和边沿时间通道密度越来越高更多差分对挤在更小面积里。这对PCB设计提出更高要求更严格的阻抗控制、更低的串扰、更好的电源完整性。一个具体的挑战是串扰。当差分对间距缩小相邻对之间的耦合增强远端串扰FEXT会直接恶化眼图。对策包括增加对间间距、使用带状线上下都有参考平面、在敏感对之间加地线隔离。这些手段都要在布板早期规划后期补救代价很大。6.4 给不同阶段工程师的建议如果你刚入门建议先把LVDS吃透它的参数清晰、应用广泛、端接简单是最好的学习样本。把LVDS的眼图调好再去看LVPECL和CML会发现很多概念是相通的。如果你已经做过几版板子建议深入研究共模和电源完整性。高速链路的很多疑难杂症根子都在共模和电源上而不是差分信号本身。学会用差分探头看共模、用TDR看阻抗、用频谱看噪声来源这三样技能能解决大部分问题。如果你在做SerDes建议把信道建模和均衡作为重点。电平标准只是起点信道才是决定性的。学会用S参数看信道、用IBIS-AMI做仿真能大幅减少试错成本。最后分享一个我自己的小习惯每次画高速差分对之前先在纸上把发送端标准、接收端标准、共模、端接方式、是否AC耦合这五项写清楚确认无误再动手。这五分钟的纸面推演帮我省下了无数次改板。高速接口电平标准这件事说到底就是把这些电气约定一个个对齐对齐了链路自然就通了。