ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ORV3 48V 5.5kW PSU设计实战:从拓扑选型到Modbus监控

ORV3 48V 5.5kW PSU设计实战:从拓扑选型到Modbus监控 1. 从48V直流母线说起为什么AI数据中心开始抛弃12V如果你最近两年接触过服务器电源或者数据中心供电架构应该能明显感觉到一个趋势传统的12V母线正在被48V直流母线快速替代。这不是某个厂商拍脑袋的决定而是被AI算力需求硬生生推着走的。我最早接触48V供电是在做一款高密度GPU服务器的配套电源项目。当时客户给的规格书上写着输出48V单模块5.5kW我第一反应是这么大的功率为什么不做成12V后来算了一笔账就明白了。同样传输5.5kW功率12V母线需要458A的电流而48V只需要114A。电流降到四分之一意味着母线上的I²R损耗直接降到十六分之一。对于一台满载功耗动辄几十千瓦的AI机柜来说这个差异直接决定了配电铜排的截面积、连接器的规格甚至机柜内部能不能塞得下那么多线缆。Open Rack V3简称ORV3就是在这个背景下由OCPOpen Compute Project推动的机架级供电标准。它把48V直流母线、5.5kW电源模块PSU、机架级电源架Power Shelf这一整套东西标准化了。标准化的好处很直接不同厂商的PSU可以互换电源架可以按需扩展机柜厂商不用为每一家服务器品牌单独设计供电方案。这篇文章我想聊的不是标准文档的翻译而是从实际做一款符合ORV3规范的48V 5.5kW PSU出发把设计规范里那些关键指标、拓扑选择、采样方案、通信接口尤其是Modbus在电源监控里的角色以及实测中踩过的坑系统地梳理一遍。适合正在做数据中心电源的硬件工程师、做电源监控的嵌入式开发者以及想了解ORV3供电架构的运维和选型人员。2. ORV3规范里那些容易被忽略的硬性指标2.1 5.5kW这个数字是怎么来的很多人看到5.5kW会觉得奇怪为什么不是5kW或者6kW这个数字其实和ORV3电源架的机械结构强相关。标准电源架是1OU高度约44.45mm一个架子通常放6个PSU插槽。如果每个PSU输出5.5kW6个就是33kW再考虑N1冗余5个工作1个备用实际可用功率是27.5kW。这个功率级别刚好覆盖一台满载AI训练服务器8卡GPU的功耗需求同时留有一定余量。从电气角度5.5kW在48V输出下对应约114.6A的额定电流。这个电流级别对连接器和PCB铜箔的要求处于一个刚好能用常规方案解决的区间——再大就得用更贵的连接器再小则冗余度不够。所以5.5kW是一个机械、电气、成本三者平衡后的结果。2.2 输入电压范围与保持时间ORV3规范对输入的要求是200-277VAC相电压支持单相和三相输入。这里有个细节277VAC是北美480V三相系统里的相电压而国内常见的380V三相系统相电压是220V。所以一款合格的ORV3 PSU必须覆盖这个宽范围。保持时间Hold-up Time的要求通常是满载下至少10ms。这个10ms不是随便定的它对应的是交流侧一个工频周期的半周期左右目的是在输入掉电到UPS切换的间隙里让PSU输出不掉。对于5.5kW的电源要在10ms内维持输出需要的母线电容能量是E P × t 5500W × 0.01s 55J如果母线电压从400V掉到300V电容需要提供的能量是0.5×C×(400²-300²) 55J算下来C约为1571μF。实际设计中还要考虑效率、电容容差和老化通常会放2000μF以上的母线电容。这个体积在1OU的高度限制下是很紧张的所以很多设计会用多颗小容量电容并联或者提高母线电压来减小电容体积。2.3 效率曲线与钛金级门槛ORV3 PSU的效率要求参照80 PLUS Titanium标准但实际比Titanium更严。关键点位是50%负载下效率≥96%100%负载下≥94%。注意这是在整个输入电压范围内都要满足的不是只在额定220V下。我实测过一款早期样机在220V输入、50%负载下效率做到了96.3%但切到277V输入时掉到了95.8%。原因出在PFC级的开关损耗上——277V输入时母线电压更高PFC MOSFET的开关损耗增加。后来把PFC的开关频率从65kHz降到45kHz效率才拉回来。这说明效率指标不能只看一个工作点要做全电压、全负载的矩阵测试。负载比例效率要求实测常见值主要损耗来源20%≥94%94.5%开关损耗、驱动损耗50%≥96%96.2%导通损耗、磁芯损耗100%≥94%94.3%导通损耗、铜损2.4 均流精度与并联运行ORV3电源架里的6个PSU是并联工作的每个PSU通过48V母线并联输出。规范要求均流精度在±5%以内也就是说如果总负载是20kW每个PSU的输出电流偏差不能超过额定值的5%。这个指标看起来不难实际做起来很头疼。因为每个PSU的采样电路有误差DAC输出有偏差连接器的接触电阻也不一样。我见过最差的情况是某个PSU因为连接器氧化接触电阻大了0.5mΩ在114A电流下就产生了57mV的压降导致这个PSU输出电流比别的少了好几安培。后来在连接器上做了镀金处理并且把均流环路的积分时间加长才把精度稳定在±3%以内。3. 48V 5.5kW PSU的拓扑选择为什么是三相FOC加交错并联3.1 前级PFC三相Vienna还是三相FOC5.5kW这个功率级别单相PFC已经不够用了。单相Boost PFC在5.5kW下输入电流高达25A220V输入单个MOSFET和电感的压力太大。所以ORV3 PSU的前级基本都走三相PFC路线。常见方案有两种三相Vienna整流器和三相FOCField-Oriented ControlBoost PFC。Vienna的优势是结构简单、效率高但它是单向的而且输出母线电压固定为输入线电压的1.5倍左右不可调。三相FOC Boost PFC则是全控方案母线电压可以灵活设定而且天然支持双向功率流动虽然PSU通常不需要反向。我最终选了三相FOC方案原因有三个第一母线电压可以设到400V给后级DC-DC留出足够的调节余量第二FOC控制下输入电流THD可以做到3%以内比Vienna的5%更好第三FOC的软件控制更灵活可以在轻载时降频提高效率。3.2 三相电流采样为什么分流电阻比霍尔更合适三相FOC控制的核心是准确采样三相电流。常见方案有霍尔传感器、电流互感器和分流电阻三种。霍尔传感器隔离性好但精度受温度影响大电流互感器只能测交流分流电阻精度高但需要处理共模电压问题。在5.5kW这个级别我选了分流电阻方案。每相用一个0.5mΩ的精密分流电阻配合隔离放大器进行采样。为什么不用霍尔因为霍尔在25°C到85°C范围内的增益漂移可能达到2%而分流电阻的温度系数可以做到50ppm/°C配合软件温度补偿全温区精度能控制在0.5%以内。对于要做精确功率因数和THD控制的场合这个精度差异很关键。采样时机也很讲究。FOC控制需要在PWM周期的特定时刻采样通常是在下管导通、上管关断的中间时刻。这时候分流电阻上的电流就是电感电流没有开关噪声干扰。我用的是中心对齐PWM模式在计数器过零时触发ADC采样实测信噪比能到60dB以上。3.3 后级DC-DCLLC还是交错Buck48V输出从400V母线降压比压比是8.3:1。这个比压比用LLC谐振变换器很合适因为LLC在谐振点附近效率最高而且能实现原边开关管的ZVS零电压开关。但LLC有个问题输出电流114A如果单路LLC副边整流管的电流应力太大。所以实际设计用的是两路LLC交错并联每路承担57A。交错的好处是输出纹波频率翻倍输出电容可以减小。我用的是两路LLC相位差180度输出纹波从单路的200mV降到了80mV。也有人用交错Buck方案但Buck在8.3:1的比压比下占空比只有12%左右开关损耗大效率很难做到96%以上。所以ORV3 PSU的后级基本被LLC垄断了。3.4 同步整流与死区时间优化LLC副边用同步整流SR是提高效率的关键。48V输出下如果用肖特基二极管整流压降0.5V114A电流下损耗就是57W效率直接掉1个百分点。换成MOSFET同步整流导通电阻1mΩ的话损耗只有13W。但同步整流有个死区时间问题。死区太长体二极管导通损耗大死区太短可能直通炸管。我一开始设了100ns死区实测效率比预期低了0.3%。后来用示波器抓了SR MOSFET的Vds波形发现体二极管导通时间有60ns左右。把死区缩到50ns后效率提升了0.25%而且没有直通风险。这个优化需要根据具体MOSFET的体二极管特性和驱动电路延迟来调没有万能值。4. Modbus在PSU监控里的角色从寄存器映射到实际联调4.1 为什么数据中心电源偏爱ModbusPSU的监控接口有很多选择PMBus、I2C、CAN、Modbus。ORV3规范里推荐的是PMBus用于板级管理但机架级监控Rack Management ControllerRMC和上层DCIM数据中心基础设施管理系统之间Modbus RTU over RS-485是事实标准。原因很实际Modbus简单、成熟、成本低。RS-485差分信号抗干扰能力强适合机柜内几十米到上百米的布线。而且Modbus的寄存器模型很直观运维人员用Modbus Poll这类工具就能直接读数据不需要专门的驱动或SDK。我在项目里实现的Modbus从站把PSU的关键数据映射到了保持寄存器Holding Register和输入寄存器Input Register里。保持寄存器用于存储可读写的配置参数比如输出电压设定值、均流使能位输入寄存器用于存储只读的实时数据比如输入电压、输出电流、温度。4.2 寄存器映射表的设计细节寄存器映射不是随便排的要考虑上位机读取的效率和兼容性。我把映射分成了几个区块寄存器地址类型内容数据类型说明0x0000-0x000FInput输入电压/电流/频率UINT16单位0.1V/0.01A/0.01Hz0x0010-0x001FInput输出电压/电流/功率UINT16单位0.01V/0.01A/1W0x0020-0x002FInput温度/效率/状态UINT16温度单位0.1°C0x0100-0x010FHolding输出设定/均流配置UINT16可读写0x0200-0x020FHolding保护阈值设定UINT16可读写这里有个坑Modbus的寄存器是16位的但功率值可能超过65535W。5.5kW是5500W用UINT16够用但如果要读机架总功率33kW就得用两个寄存器拼成32位。我一开始没注意上位机读出来的功率值一直是错的后来发现是字节序问题——Modbus是大端但有些上位机默认小端需要在文档里明确标注。4.3 RS-485物理层与Modbus RTU帧格式RS-485布线有几个硬性要求双绞线、终端电阻120Ω、共模电压范围-7V到12V。我在机柜里实测过如果终端电阻不接通信距离超过10米就开始丢包。接了120Ω终端电阻后50米距离下误码率低于10^-6。Modbus RTU的帧格式是地址1字节 功能码1字节 数据N字节 CRC2字节。功能码03读保持寄存器04读输入寄存器06写单个寄存器16写多个寄存器。CRC是CRC-16/MODBUS多项式0x8005初始值0xFFFF。我遇到过一个典型问题上位机用功能码03读保持寄存器但我的从站只实现了04。结果上位机一直超时。后来查了Modbus Poll的配置发现它默认用03。所以在实现从站时最好把03和04都实现03映射到保持寄存器04映射到输入寄存器这样兼容性最好。4.4 通信超时与异常处理Modbus RTU是主从模式从站不能主动发数据。如果主站不发请求从站就一直等着。但PSU有告警的时候怎么让主站知道答案是主站轮询。主站需要周期性地读状态寄存器比如每100ms读一次。这里有个设计取舍轮询太快总线负载高轮询太慢告警响应不及时。我最后设的是200ms轮询周期每个PSU的告警响应时间在400ms以内两个轮询周期。对于数据中心来说这个响应速度足够了。异常处理方面Modbus定义了异常响应功能码最高位置1后面跟异常码。比如从站不支持某个功能码就返回0x830x03|0x80 异常码0x01非法功能。我在从站里实现了完整的异常处理包括非法地址、非法数据值、从站设备故障等。实测下来上位机我用的是Modbus Poll和LabWindows写的测试程序能正确识别异常响应不会卡死。5. 实测中踩过的坑与排查链路5.1 均流振荡从波形到根因的完整排查项目进入联调阶段后发现6个PSU并联时输出电流有低频振荡频率大约在200Hz左右幅度±8A。这个振荡导致母线电压波动GPU服务器频繁报欠压告警。排查过程是这样的第一步用示波器同时抓6个PSU的输出电流波形。发现振荡是整体性的6个PSU同步波动不是单个PSU的问题。这排除了单个PSU故障的可能。第二步检查均流环路的参数。均流环路是数字控制的采样周期1msPI参数是Kp0.5Ki0.01。我先把Ki降到0.001振荡频率降低了但幅度没变。说明积分环节不是根因。第三步检查采样同步性。发现6个PSU的电流采样不是同时进行的而是各自独立采样。由于Modbus轮询是顺序的每个PSU的采样时刻差了200μs左右。这个时间差导致均流环路之间产生了相位差形成了正反馈振荡。解决方案把均流环路改成主从模式一个PSU作为主模块其他PSU跟随主模块的电流指令。主模块的电流指令通过CAN总线广播周期100μs。这样所有PSU的电流指令是同步的振荡消失了。实测均流精度从±8%提升到了±2.5%。5.2 Modbus通信在高温下的误码问题机柜满载运行时PSU出风口温度能到65°C。这时候Modbus通信开始出现偶发误码大约每1000帧错1帧。虽然CRC能检测出错误并丢弃但频繁重传导致轮询周期从200ms延长到了350ms。排查发现RS-485收发器的温度漂移是主因。我用的收发器在25°C时共模抑制比是-20dB到65°C时降到了-12dB。机柜内变频器和风扇的共模噪声耦合到了总线上。解决措施有两个一是换用更高共模抑制比的收发器-18dB65°C二是在总线两端加共模扼流圈。改完之后65°C下连续跑24小时误码率低于10^-8轮询周期稳定在210ms以内。5.3 三相FOC启动时的电流冲击三相FOC PFC在启动瞬间如果母线电容还没充电直接给PWM会拉出很大的冲击电流。我一开始用软启动电阻预充电但电阻发热严重5.5kW下预充电时间要2秒电阻温度到了150°C。后来改成两级启动第一级用一个小功率辅助电源给母线电容充电到100V第二级再启动FOC把母线从100V升到400V。这样预充电时间缩短到0.5秒电阻发热也降到了可接受范围。辅助电源直接从输入整流后的高压取电用反激拓扑输出15V/2W。这个方案还有个好处辅助电源可以给控制电路供电不需要额外的待机电源。实测待机功耗从5W降到了2.5W对数据中心的PUE有微小但实在的贡献。5.4 同步整流MOSFET的体二极管反向恢复LLC副边同步整流MOSFET在死区期间体二极管导通。当另一个MOSFET开通时体二极管需要反向恢复。如果恢复电荷Qrr太大会产生尖峰电压和额外损耗。我选的MOSFET Qrr是80nC实测在100kHz开关频率下反向恢复损耗约1.2W。后来换了一款Qrr只有30nC的MOSFET损耗降到0.45W效率提升了0.15%。这个优化在5.5kW下就是8W的功耗差异对于1OU的散热空间来说很关键。选MOSFET的时候除了看Rds(on)一定要看Qrr和Coss。LLC拓扑里Coss的充放电损耗也很可观。我算过Coss500pF的MOSFET在400V母线、100kHz下Coss损耗约2W。换成Coss200pF的损耗降到0.8W。6. 从样机到量产那些规范文档不会写的事6.1 连接器的镀金厚度与插拔寿命ORV3 PSU是盲插设计连接器要支持热插拔。规范里写了插拔寿命≥100次但没写镀金厚度。我一开始用了0.5μm镀金插拔50次后接触电阻就从0.2mΩ升到了0.8mΩ。后来加到1.5μm插拔100次后接触电阻还在0.3mΩ以内。这个经验来自实际测试在盐雾环境5% NaCl35°C下放48小时0.5μm镀金的连接器出现了氧化斑点1.5μm的没有。数据中心虽然不会那么恶劣但机柜内的硫化物和湿度长期作用镀金厚度不够迟早出问题。6.2 风扇选型与噪音控制的平衡1OU的PSU散热空间极其有限5.5kW的损耗大约220W96%效率全部要靠风扇带走。我用了两个40mm×56mm的双转子风扇转速范围3000-15000RPM。噪音是个大问题。满载时两个风扇全速运转噪音达到72dBA在机柜里叠加6个PSU噪音超过85dBA。运维人员抱怨说进机房要戴耳塞。后来做了两件事一是把风扇曲线改成非线性60%负载以下转速控制在8000RPM以内二是把风扇的PWM频率从25kHz提到30kHz避开人耳最敏感的频段。改完之后50%负载下噪音降到58dBA满载下68dBA。虽然还是吵但至少能接受了。6.3 固件升级的可靠性设计PSU的固件需要支持在线升级但升级过程中如果掉电PSU就变砖了。我的方案是双Bank Flash一个Bank跑当前固件另一个Bank存新固件。升级时先写备用Bank写完校验CRC校验通过后再切换启动地址。如果升级过程中掉电下次上电还是从原Bank启动不会变砖。这个设计增加了一颗Flash芯片的成本大约0.8美元但避免了现场返修的风险。数据中心里换一个PSU的人工成本远不止0.8美元所以这个投入是值得的。6.4 电磁兼容测试的整改经验ORV3 PSU要过EN 55032 Class B的传导和辐射发射。我第一版样机在30MHz-100MHz的辐射发射超标了6dB。排查发现是LLC变压器的漏磁和副边整流回路的环路面积太大。整改措施一是把LLC变压器加屏蔽铜箔并接到原边地二是把副边整流MOSFET和输出电容的环路面积从15cm²缩到6cm²三是在48V输出线上加共模扼流圈。改完之后辐射发射余量有4dB顺利通过。传导发射方面主要问题是PFC开关频率的谐波。我在PFC输入端加了二级EMI滤波器把150kHz-500kHz的传导干扰压了10dB以上。注意EMI滤波器的电感要选饱和电流足够的否则大电流下磁芯饱和滤波效果就没了。7. 写在最后一些个人体会做这款ORV3 48V 5.5kW PSU前后花了将近一年时间从拓扑选型、磁性元件设计、控制算法调试到Modbus通信联调每一步都有坑。如果让我给后来者几条建议我会说第一效率指标不要只盯着额定点全电压全负载矩阵测试才能暴露问题第二均流环路的同步性比精度更重要不同步的均流环路一定会振荡第三Modbus寄存器映射要留扩展空间我一开始只留了16个寄存器给状态量后来发现不够用又重新排了地址。还有一个细节ORV3规范里对PSU的机械尺寸有严格定义但不同厂商的连接器位置有微小差异。我在做结构设计时用3D扫描仪把竞品的连接器位置扫了一遍发现偏差在0.3mm以内。这个偏差在盲插时可能导致接触不良所以结构公差要控制在±0.1mm以内。这个经验是规范文档里不会写的只有实际做过盲插设计的人才会注意。
返回列表