TI SN65LV1023A/1224B LVDS SerDes芯片组:原理、设计与调试全解析
1. 项目概述与芯片组定位在嵌入式系统、通信设备乃至一些高性能的工业控制领域我们常常会遇到一个经典难题如何在有限的物理空间和布线成本下实现板卡之间、甚至板内不同模块之间高速、可靠的数据传输。十年前大家可能还在用几十根甚至上百根并行的数据线和地址线不仅PCB走线复杂信号完整性也让人头疼。随着系统时钟频率的提升这种并行总线架构的瓶颈越来越明显——信号间的时序偏移Skew、电磁干扰EMI以及庞大的连接器体积都成了拦路虎。正是在这种背景下串行器/解串器Serializer/Deserializer 简称SerDes技术成为了主流解决方案。它的核心思想非常直观在发送端将多路并行的低速数据“打包”成一路高速的串行数据流发送出去在接收端再将这路高速串行流“拆包”恢复成原始的多路并行数据。这样做最直接的好处就是极大地减少了传输通道的数量从几十根线变成一对差分线PCB布局瞬间清爽连接器成本也大幅下降同时差分传输本身又带来了更强的抗干扰能力。德州仪器TI的SN65LV1023A和SN65LV1224B芯片组就是一款非常经典且历经市场考验的10位LVDS SerDes解决方案。我手头不少老项目的背板通信、图像传感器数据汇聚都用过它。这套芯片组的工作时钟范围是10MHz到66MHz听起来可能不如现在动辄上GHz的SerDes那么“高速”但在很多对成本敏感、对可靠性要求严苛的工业与通信场景中这个速率区间恰恰是“甜点区”。它能在660Mbps的有效数据带宽下将芯片组功耗典型值控制在450mW以内并且自带锁相环PLL无需外部元件还提供了快速同步模式对于需要快速建立链路的系统比如热插拔非常友好。简单来说如果你正在设计一个需要将10位并行数据比如来自一个ADC或FPGA的IO口可靠传输到几米外另一块板子的系统又希望布线简单、抗干扰强、功耗可控那么仔细研究一下SN65LV1023A/1224B这个组合很可能就是你要找的答案。它尤其适合无线基站中的射频数据分发、机架设备背板互连、DSL接入复用设备DSLAM以及各种工业控制总线。2. 芯片组核心架构与工作模式解析要玩转这套芯片不能只把它当黑盒子理解其内部状态机和工作流程是关键。根据数据手册芯片组共有五种工作状态初始化模式、同步模式、数据传输模式、断电模式和高压抗模式。这五种状态构成了芯片完整的工作生命周期。2.1 初始化模式上电第一课当给串行器SN65LV1023A和解串器SN65LV1224B上电后两者都会进入初始化模式。此时所有输出引脚都会进入高阻态内部的上电复位电路会暂时禁用大部分内部功能。当电源电压VCC上升到约2.45V的阈值后两个芯片内部最核心的部件——锁相环PLL开始启动并尝试锁定各自的本地参考时钟。这里有个关键点串行器的参考时钟是外部提供的发送时钟TCLK而解串器的参考时钟是外部提供给其REFCLK引脚的信号。这两个时钟的频率必须严格一致范围在10MHz到66MHz之间这是后续一切数据同步的基础。在PLL锁定期间串行器的LVDS输出DO和DO-会保持高阻态。你必须确保在初始化完成前不要试图发送有效数据。2.2 同步模式建立通信的“握手”初始化完成后两个芯片的PLL各自锁定了本地时钟但它们彼此之间还是“陌生人”。解串器必须与串行器发送过来的数据流同步才能正确解析数据。芯片提供了两种同步策略适用于不同场景。第一种是快速同步模式。这是最常用、也是确定性最高的方式。串行器可以通过SYNC1或SYNC2引脚发送特定的同步图案。当这两个引脚中的任何一个被置高超过6个TCLK周期后串行器会忽略DIN0-DIN9上的输入数据转而连续发送1026个周期的特殊SYNC图案。这个图案由连续的6个‘1’和6个‘0’交替组成其切换速率就是TCLK的频率。解串器在LVDS输入端检测到这个有规律的跳变信号后其内部的时钟恢复电路会尝试锁定其中嵌入的时钟信息。当锁定时解串器的LOCK引脚会从高电平变为低电平宣告同步完成。一个非常实用的设计技巧是可以将解串器的LOCK输出直接连接到串行器的SYNC输入。这样一旦链路失锁LOCK变高系统能自动触发串行器重新发送同步图案实现链路的自我恢复。第二种是随机锁定同步模式。在这种模式下串行器发送的就是普通的用户数据解串器需要从看似随机的数据流中提取出时钟信息并完成同步。这种模式支持“热插拔”或开环应用即解串器可以在串行器已经工作的情况下插入系统并尝试锁定。但它的缺点也很明显锁定时间是不确定的严重依赖于数据流的特性。这里存在一个“重复多跳变”陷阱。如果数据流中长时间存在某种重复的、每个周期都有多次跳变的模式解串器可能会产生“假锁”——错误地把数据图案的边沿当作帧头/帧尾Start/Stop比特。数据手册中给出了例子比如DIN0保持低、DIN1保持高就会产生这种风险。芯片内部有检测电路一旦发现可能假锁会阻止LOCK信号变低直到数据模式改变。因此在无法控制数据源内容的随机锁定场景下需要评估最坏情况下的锁定时间。2.3 数据传输模式稳定运行期同步建立LOCK变低后系统就进入了稳定的数据传输模式。此时串行器在每一个TCLK的边沿具体是上升沿还是下降沿由TCLK_R/F引脚决定锁存DIN0-DIN9上的10位并行数据。芯片内部会为这10位数据帧添加一个固定的高电平起始位和一个固定的低电平停止位形成一个12位的串行帧。正是这一对固定的边沿为解串器提供了恢复时钟所必需的跳变信息。串行数据最终通过DO和DO-这对LVDS差分线发送出去。串行比特率是TCLK频率的12倍。例如当TCLK66MHz时串行线上的实际比特率是792Mbps。但由于只有10位是有效数据所以有效数据吞吐率是TCLK频率的10倍即660Mbps。解串器端恢复出的并行数据在ROUT0-ROUT9上输出并由恢复出的时钟RCLK进行锁存RCLK的边沿极性由RCLK_R/F选择。2.4 电源管理与高阻态控制当系统不需要传输数据时可以通过PWRDN引脚将芯片组置于断电模式。此时PLL停止工作所有输出进入高阻态电源电流会降至毫安级别显著节省功耗。需要注意的是从断电模式唤醒后必须重新经历完整的初始化和同步过程。除了断电芯片还提供了单独的输出使能控制。串行器通过DEN引脚、解串器通过REN引脚可以独立地将各自的输出置于高阻态而不影响PLL的锁定状态。这个功能在多主机共享总线或测试时非常有用。3. 关键引脚功能与硬件设计要点只看框图不够落实到PCB上每个引脚怎么接周围电路怎么设计直接决定了系统的成败。下面我结合数据手册和实际调试经验把关键引脚和外围电路的设计要点捋一遍。3.1 电源与地分离与去耦的艺术SN65LV1023A和SN65LV1224B的电源引脚都分为模拟电源和数字电源。以串行器为例AVCC (引脚17, 26) 为内部的PLL和模拟电路供电。PLL对噪声极其敏感这里的电源纯净度直接影响到输出时钟的抖动性能。DVCC (引脚27, 28) 为数字核心逻辑和LVDS驱动电路供电。AGND (引脚18, 20, 23, 25)和DGND (引脚15, 16) 对应的模拟地和数字地。强烈建议即使芯片内部AVCC和DVCC已经做了隔离在PCB布局时仍应使用独立的电源网络或磁珠/0欧电阻将它们分开。AVCC的退耦电容要格外讲究通常需要在靠近芯片引脚处放置一个10uF的钽电容或陶瓷电容进行低频退耦再并联一个0.1uF和一个0.01uF的陶瓷电容分别应对中频和高频噪声。所有退耦电容的接地端必须直接连接到对应的AGND或DGND引脚并通过过孔连接到完整的地平面。3.2 控制引脚逻辑与上拉/下拉芯片的控制引脚如SYNC1/2, DEN, PWRDN, TCLK_R/F, REN, RCLK_R/F都是LVTTL/LVCMOS电平。需要特别注意那些内部有上拉或下拉电阻的引脚。例如数据手册的电气特性表脚注提到某些输入引脚的高输入电流IIN正是由于内部的上/下拉电阻造成的。在设计驱动电路时要确保MCU或FPGA的IO口有足够的驱动能力来克服这个电阻以建立稳定的高/低电平。对于未使用的控制引脚绝不能悬空。例如如果不使用同步功能应将SYNC1和SYNC2引脚通过一个下拉电阻如10kΩ可靠地连接到DGND防止因噪声导致误触发。TCLK_R/F和RCLK_R/F则根据你的系统时序需求固定接高或接低。3.3 LVDS接口差分走线与端接设计这是信号完整性的核心。串行器的输出DO/DO-和解串器的输入RI/RI-是LVDS差分对。差分阻抗控制LVDS的标准差分阻抗是100Ω。这意味着你的PCB差分走线通常使用微带线或带状线应设计成100Ω的差分阻抗。这需要和PCB板厂沟通根据叠层、线宽、线距和介质厚度来计算。端接电阻必须在接收端解串器的RI/RI-之间放置一个100Ω的端接电阻位置要尽可能靠近接收芯片的引脚以消除信号反射。这是点对点拓扑的标准做法。走线要求差分对的两根线必须等长、等宽、等间距并紧密耦合间距最好小于线宽。避免在差分线上使用过孔如果不可避免两个信号过孔要对称放置。走线应远离噪声源如开关电源、晶振。共模滤波在噪声较大的环境中可以在差分线上串联共模扼流圈并在端接电阻两端并联一个小电容如几pF到地构成一个低通滤波器进一步抑制高频共模噪声。3.4 时钟信号纯净度的保障TCLK和REFCLK是系统的心脏。它们的质量决定了整个SerDes链路的稳定性。时钟源选择推荐使用低抖动的晶体振荡器而不是普通的晶振反相器方案。时钟的抖动Jitter会直接转化为输出数据的抖动。走线处理时钟线应作为传输线处理如果长度较长可能需要源端串联一个小电阻如22Ω-33Ω来匹配驱动器的输出阻抗减少过冲和振铃。同样时钟线要远离高速数据线和电源线。REFCLK的重要性务必保证解串器的REFCLK和串行器的TCLK同源且同频。最理想的情况是使用同一个时钟源通过缓冲器驱动两者。任何频率偏差都会导致解串器无法长期保持锁定即使初始能锁住也会随着时间积累相位误差最终失锁。4. 典型应用电路设计与PCB布局实战理论懂了接下来就是“抄作业”环节。这里我给出一个最经典的点对点应用电路并附上PCB布局的“血泪教训”。4.1 单端接点对点连接原理图这是最常用也是最可靠的拓扑如图22所示。发送端SN65LV1023A 10位并行数据DIN[9:0]连接至数据源如FPGATCLK连接时钟源。SYNC1/2根据需要连接可连接至解串器LOCK以实现自动重同步。DEN和PWRDN由控制器管理。DO和DO-输出。传输线 一对100Ω差分阻抗的PCB走线或电缆。接收端SN65LV1224B RI和RI-之间直接连接一个精度1%、封装0603或更小的100Ω贴片电阻进行端接。REFCLK连接与TCLK同源的时钟。ROUT[9:0]输出至数据接收端。LOCK信号输出用于状态指示。电源 两个芯片的AVCC和DVCC都接入3.3V电源并按照前述要求进行退耦。4.2 PCB布局的黄金法则电源分割与地平面 使用完整的、无分割的地平面通常是PCB的中间层或底层作为所有信号的参考平面。模拟电源和数字电源在入口处用磁珠隔离后各自在芯片周围形成局部电源平面或较宽的走线。退耦电容的摆放 那个0.1uF的退耦电容必须放在芯片电源引脚和地引脚形成的环路中心并且优先使用0402或0201封装以减少寄生电感。电源引脚先经过电容再进入芯片。差分对布线等长 使用PCB设计软件的“差分对”和“等长”功能。长度差异要控制在5mil约0.127mm以内。通常通过蛇形线补偿较短的哪一根。远离干扰 绝对不要跨过电源分割缝隙。与其它信号线尤其是单端信号的间距至少保持3倍线宽。参考平面连续 差分线正下方的参考平面地或电源必须是完整的不能被其它走线割裂。时钟信号布线 TCLK和REFCLK走线要短、直两边最好有地线包裹Guard Trace进行屏蔽。同样不能跨分割。芯片下方的热焊盘与过孔 对于QFN封装的芯片底部的裸露焊盘Thermal Pad必须可靠接地。要在焊盘上打多个过孔通常9个阵列排列连接到内部地平面这既是散热通道也是提供良好的电气接地。4.3 上电与复位序列数据手册图21给出了建议的上电时序在电源电压达到3.0V之前应保持PWRDN引脚为低电平。这可以通过一个简单的RC电路或由电源监控芯片来控制实现。正确的上电序列可以避免芯片在电源不稳定时进入异常状态。在实际设计中我通常用一个带延时的复位芯片来管理PWRDN信号。5. 调试技巧与常见问题排查实录焊好板子程序写完一上电没数据别慌这套流程我走过很多遍。5.1 上电无输出先查“三板斧”电源与使能 用万用表量所有VCC引脚确认是稳定的3.3V范围3.0V-3.6V。用示波器查看PWRDN、DEN串行器、REN解串器是否为高电平这是芯片工作的前提。时钟有没有 用示波器探头最好用低电容的有源探头点测TCLK和REFCLK引脚。确认时钟频率是否在10-66MHz范围内幅度是否达到LVTTL标准0-VCC波形是否干净无严重过冲。特别注意两个时钟必须都有且频率一致。同步触发了吗 如果使用快速同步模式用示波器触发SYNC1或SYNC2引脚看是否有超过6个TCLK周期的高电平脉冲同时监测串行器的DO或DO-输出在SYNC有效期间应该能看到规律的0101...跳变SYNC图案而不是静止或杂乱波形。5.2 LOCK指示灯常高未锁定这是最常见的问题说明解串器没有成功从输入数据流中恢复出时钟。检差分信号 用示波器的差分探头测量RI和RI-之间的波形。信号幅度是否足够差分电压VOD是否在350-450mV范围内波形是否眼开如果幅度太小检查发送端电源、端接电阻值是否正确传输线是否过长损耗过大。检查REFCLK REFCLK的频率和TCLK的差异必须小于100ppm。如果使用两个独立的晶振很难保证。务必同源。检查数据模式 如果使用随机锁定模式尝试给DIN[9:0]输入一个全0、全1或0xAA/0x55这类有丰富跳变的数据模式避免长时间是静态数据或RMT模式。测量电源噪声 用示波器交流耦合档测量AVCC引脚上的噪声。如果噪声过大超过100mVpp会扰乱PLL工作。加强退耦检查电源芯片的负载能力。5.3 LOCK闪烁或不稳定间歇性失锁锁定后偶尔丢失问题通常更隐蔽。时钟抖动超标 TCLK的抖动Jitter过大会导致解串器采样窗口偏移最终失锁。用示波器的抖动分析功能测量TCLK的周期抖动应远小于数据手册规定的150ps RMS。更换更高质量的时钟源。差分信号质量差 用示波器的高级触发或眼图功能观察RI±上的信号。是否存在严重的过冲、振铃或码间干扰这通常源于阻抗不匹配或端接不当。检查PCB差分线阻抗确保端接电阻靠近接收端且阻值准确。电源完整性 在芯片工作时用近场探头扫描芯片周围看是否有同步开关噪声SSN。或者在DVCC上使用交流耦合测量动态负载下的电压跌落。增加电源层电容或使用性能更好的LDO。温漂 在工业温度范围-40°C到85°C内测试。某些元件参数如晶体频率、端接电阻值可能随温度变化导致边际设计在高温或低温下失效。5.4 数据错误BER高LOCK正常但接收到的数据位偶尔出错。时序违例 这是最可能的原因。检查发送端FPGA/ASIC是否满足串行器DIN的建立时间tsu(DI) ≥ 0.5ns和保持时间th(DI) ≥ 4ns要求。用示波器同时测量TCLK边沿和DIN数据线确认数据在时钟边沿前后是稳定的。解串器输出时序 同样检查接收端FPGA/ASIC是否满足解串器ROUT数据相对于RCLK的建立和保持时间t(ROS)和t(ROH)。根据RCLK_R/F的配置在正确的时钟边沿采样数据。共模噪声 强大的共模噪声如电机、继电器干扰可能超过LVDS接收器的共模抑制比。检查电缆屏蔽层是否单点接地良好考虑在差分线上增加共模扼流圈。参考平面不完整 高速差分信号的回流路径依赖于参考平面。如果差分线下方参考平面有裂缝或分割会导致阻抗突变和信号失真。复查PCB布局。5.5 快速问题排查速查表现象可能原因排查步骤无任何输出1. 电源未接通或电压不对2. PWRDN/DEN/REN为低3. 芯片损坏1. 测量所有电源引脚电压2. 检查控制引脚电平3. 触摸芯片是否异常发热LOCK始终为高1. 无差分输入信号2. REFCLK缺失或频率错误3. 差分信号幅度不足4. 数据为全0/全1等无跳变模式1. 测量RI±差分波形2. 测量REFCLK并与TCLK对比3. 检查端接电阻及发送端电源4. 更改输入测试图案LOCK不稳定 闪烁1. 时钟抖动过大2. 差分信号质量差过冲、振铃3. 电源噪声大4. 温度影响1. 测量TCLK抖动2. 观察差分信号眼图3. 测量AVCC/DVCC噪声4. 做高低温测试偶发性数据错误1. 发送端建立/保持时间违例2. 接收端建立/保持时间违例3. 严重共模干扰4. PCB布局缺陷1. 测量DIN相对TCLK的时序2. 测量ROUT相对RCLK的时序3. 检查屏蔽与接地4. 审查差分线参考平面最后一点个人心得调试高速SerDes链路一台带宽足够的示波器至少是信号带宽的3-5倍和差分探头是必不可少的。在前期PCB设计时多花一天时间仔细检查布局和仿真远比后期在废板堆里找问题要划算得多。SN65LV1023A/1224B这套芯片组虽然不算最前沿但其稳定性和文档的完备性在工业领域口碑很好吃透它很多高速数字传输的基本功也就掌握了。