LTPI协议的理解——2、LTPI实现的底层架构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

LTPI协议的理解------2、LTPI实现的底层架构


前言

前面讲了LTPI的定义和大概结构,接下来继续理解LTPI硬件实现的底层架构

一、体系结构

1、External Interface Controllers (也称为I/O中继器 I/O Relay)负责捕获(SCM)和重建(HPM)LPTI通道上的物理接口:

  • GPIO
  • I2C/SMBus
  • UART
  • OEM
  • DATA
    CSR--配置和状态寄存器为BMC或其他设备提供了访问和控制SCM和HPM内部逻辑的方法
    2、Channel Controller
    这个模块负责:
  • 链路状态机控制(链路训练和接口配置)
  • 生成传出LTPI帧
  • 解析传入LTPI帧
  • CRC校验和生成和验证
  • 逗号符号追逐和锁定
  • 8b/10b编码和解码
    3、SerDes
    LVDS链路上数据的串行化和反串行化

从高级体系结构的角度来看,SCM CPLD和HPM CPLD LTPI体系结构构建块在SCM和HPM之间被认为是对称的,即两个CPLD上的TX路径和RX路径通常遵循相同的操作理论。SCM和HPM之间存在特定差异,例如,HPM和SCM训练要求的差异,或特定通道(如SMBus)的不同配置,其中一个CPLD将连接到SMBus Controller,而另一个连接到SMBus target。HPM和SCM的源代码在LTPI部分大部分是相同的。

三、实现细节

LTPI框图如下图所示:

SCM和HPM中的TX路径的工作方式如下:

1.物理接口上的信号由相应的控制器/中继器捕获:

a.I2C中继器--I2C/SMBus接口

b.GPIO控制器-GPIO接口

c.UART控制器-UART接口

d.OEM控制器-OEM接口

e.数据总线控制器-数据通道桥接至外部接口

2.LTPI信道控制器生成LTPI帧和CRC校验和

a.每个LTPI信道都在LTPI帧内的专用位字段 上编码

3.然后使用8b/10b编码对帧进行编码

a.帧标志用帧逗点符号扩展(K码)

4.10b编码帧在LVDS TX链路上串行化

SCM和HPM中的RX路径的工作方式如下:

1、LVDS流量被捕获并反序列化到10b编码的FIFO缓冲器中

2、在10b数据流中,帧K码被捕获为LTPI帧的开始

a.该帧被解码为8b编码

3、再次检查帧的CRC校验和,并将其分解为LTPI信道

4、使用信道控制器/中继器在各个信道上重建信道状态

a.I2C中继器--I2C/SMBus接口

b.GPIO控制器-GPIO接口

c.UART控制器-UART接口

d.OEM控制器-OEM接口

e.数据总线控制器-数据通道桥接至外部接口

四、物理接口信号传输方法

LTPI使用以下通用方法来采集和隧道传输各种LTPI通道:

  • 采样--I/O状态由LTPI进行采样,采样在LTPI帧中进行隧道传输
  • 事件/状态检测-根据接口状态,为通道定义一组事件/状态,并在LTPI帧中进行隧道传输和隧道传输
  • 随机存取读/写请求--外部接口触发随机存取内存映射通道

LTPI支持的接口也可以根据给定接口的RX和TX方向的同步来分类,即接口的隧道传输是否需要TX和RX方向在彼此之间同步:

  • 异步-对于给定的信道和接口/链路,LTPI TX和RX路径是独立的
  • 同步-对于给定的信道和接口/链路,LTPI TX和RX路径需要同步,以允许接口在隧道传输后正确工作
    根据这些定义,LTPI通道可以如下面的表所示进行表征。

总结

1、类似于高速收发器中需要字节对齐,K码检测,这个协议也涉及到这些

2、用到了8B/10B编码,那么帧内容应该都是以字节为单位进行组帧,同时在帧的头部设置为K comma用于判断是什么类型的帧,尾巴加上CRC校验,CRC校验的内容是不包含K Comma的其他内容

2、GPIO UART这些因为是直通的,因此可以直接进行采样

3、而I2C和DATA BUS这些是需要交互的,不能像GPIO UART那么简单的操作。例如I2C Master发起写操作的时候,写入7bit地址需要等待I2C Slave的ACK。这些都无法只通过一根线来进行传输。同时在等待ACK的时候,必须暂停I2C Master的工作,那么这里又使用了I2C的时钟扩展特性。

相关推荐
fei_sun1 小时前
【Verilog】第一章作业
fpga开发·verilog
深圳市雷龙发展有限公司longsto2 小时前
基于FPGA(现场可编程门阵列)的SD NAND图片显示系统是一个复杂的项目,它涉及硬件设计、FPGA编程、SD卡接口、NAND闪存控制以及图像显示等多个方面
fpga开发
9527华安7 小时前
FPGA实现PCIE3.0视频采集转10G万兆UDP网络输出,基于XDMA+GTH架构,提供工程源码和技术支持
网络·fpga开发·udp·音视频·xdma·pcie3.0·万兆网
able陈7 小时前
为什么verilog中递归函数需要定义为automatic?
fpga开发
fei_sun7 小时前
【Verilog】第二章作业
fpga开发·verilog
碎碎思8 小时前
如何使用 Vivado 从源码构建 Infinite-ISP FPGA 项目
fpga开发·接口隔离原则
江山如画,佳人北望10 小时前
fpga-状态机的设计及应用
fpga开发
晓晓暮雨潇潇12 小时前
Xilinx IP核(3)XADC IP核
fpga开发·vivado·xadc·ip核
CWNULT12 小时前
AMD(Xilinx) FPGA配置Flash大小选择
fpga开发
碎碎思1 天前
很能体现FPGA硬件思维的一道面试题
fpga开发