
一个朋友看了文章 2026春节快乐------国产BMC芯片厂商 ,和我聊了聊国产BMC,提到有的BMC芯片好像没有LTPI接口。正好利用这个周末学习一下。记录如下,如有不对之处,请专家指正,谢谢。
一、 来龙去脉:为什么我们需要 LTPI?
要理解 LTPI,我们得先知道 DC-SCM 是什么,这个之前介绍过 服务器BMC芯片之DC-SCM 而LTPI就是基于DC-SCM协议的。都知道为了和主板解耦,出来了DC-SCM协议,独立成一个SCM子卡。但是随着服务器系统越来越复杂,主机处理器模块(HPM)和SCM卡之间要互联的信号接口越来越多,硬件资源有限无法增加了。那怎么办呢?专家们就想出来一个办法,把低速接口信号打包在一起用高速接口来节省硬件资源。这就是 LTPI 诞生的核心原因:用极少的物理连线,替代原本庞大的低速信号线束。
二、 协议浅析:LTPI 到底是个啥?
LTPI(LVDS Tunneling Protocol & Interface) ,中文全称叫"低压差分信号隧道协议和接口"。名字虽然又长又拗口,但它的工作原理其实很像我们日常生活中的**"高速公路隧道"**。
我们可以把它拆解为两个核心部分来理解:
-
LVDS(低压差分信号)
这是一种非常抗干扰的物理传输技术,就像在 HPM 和 SCM 之间搭建了一条专属的封闭式管道。因为抗干扰能力极强,所以虽然服务器内部电磁环境比较恶劣,数据也不易丢失。
-
Tunneling(隧道技术/时分复用)
在 DC-SCM 1.0 时代,大家用的方法是 SGPIO,就像是单车道,一次只能过一种车,效率低且容易堵车。而 LTPI 采用的是**时分复用(TDM)**技术。它把不同类型的低速信号(比如 GPIO、I2C、UART 等)切碎,打上时间戳,塞进一个个固定的数据包(帧)里。这就相当于把货车、轿车、摩托车全部拆解成标准大小的集装箱,按照时间表依次送入隧道。到了隧道的另一端,再根据时间表把集装箱拼装回原来的车辆。
因此原本需要几十根物理连线才能传输的多种低速信号,现在只需要 4 对差分线(总共 8 个引脚) 就OK了。差分线以25Mhz为基础进行倍增能达到较高速率,而上层应用对此变化是"无感"的。

在最新的DC-SCM 2.2规范中,LTPI已经升级到1.2版本,性能和稳定性进一步提升,实现了通道的概念,其中每个通道都映射到 DC-SCM 和 HPM 上的特定类型的物理接口。 LTPI 接口定义了以下传输通道:
-
GPIO(通用输入输出):
GPIO通道用于通过LTPI接口传输低速HPM和SCM GPIO。分LL GPIO和NL GPIO。GPIO是一个通用术语,它可以是软件(HPM上的CPU 或SCM上的BMC)控制的输入/输出,也可以是行为类似于物理直接连接的纯硬件数字信号。
-
低延迟 GPIO (LL GPIO):这类 GPIO 拥有最高的优先级和最低的传输延迟。专门用于对时间要求极高的控制信号。
-
普通延迟 G PIO (NL GPIO):这类 GPIO 共享带宽,延迟相对略高,但胜在数量多。
-
-
UART(串口):UART通道用于通过LTPI在SCM和HPM之间传输物理UART接口。UART通道支持使用流量控制信号对多个全双工UART接口进行隧道传输。
-
I2C / SMBus:用于通过LTPI接口对I2C/SMBus总线进行隧道传输。
-
OEM 通道(厂商自定义):OEM通道允许通过LTPI进行OEM特定接口隧道传输。供服务器厂商传输自定义的私有信号或协议。OEM通道仅被定义为使用DC-SCM LTPI实现OEM扩展和专有接口的占位符。
-
数据通道(Data Channel):通常提供可选的存储器映射数据通道,主要用于 HPM(主机处理器模块)和 SCM(安全控制模块)之间的复杂数据交互。
作为DC-SCM标准内容,BMC都会增加此接口。同时因为主板上大多都是FPGA/CPLD对接BMC的LTPI接口,所以FPGA/CPLD的厂商也推出了自己LTPI的IP,如Intel/Altera,AMD/Xilinx,安路、高云等公司。下面提供Intel的开源代码,供各位参考:
https://github.com/opencomputeproject/HWMgmt-Module-DCSCM-LTPI
协议详情可自己下载spec:
https://www.opencompute.org/documents/ocp-dc-scm-2-2-ltpi-ver1-0-pdf
https://www.amd.com/zh-cn/products/adaptive-socs-and-fpgas/intellectual-property/ef-di-ltpi.html