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的时钟扩展特性。

相关推荐
DS小龙哥2 小时前
基于Zynq FPGA的雷龙SD NAND存储芯片性能测试
fpga开发·sd nand·雷龙·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
上理考研周导师11 小时前
第二章 虚拟仪器及其构成原理
fpga开发
FPGA技术实战12 小时前
《探索Zynq MPSoC》学习笔记(二)
fpga开发·mpsoc
bigbig猩猩1 天前
FPGA(现场可编程门阵列)的时序分析
fpga开发
Terasic友晶科技1 天前
第2篇 使用Intel FPGA Monitor Program创建基于ARM处理器的汇编或C语言工程<二>
fpga开发·汇编语言和c语言
码农阿豪1 天前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发·sd nand·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
江山如画,佳人北望1 天前
EDA技术简介
fpga开发
淘晶驰AK1 天前
电子设计竞赛准备经历分享
嵌入式硬件·fpga开发
最好有梦想~1 天前
FPGA时序分析和约束学习笔记(4、IO传输模型)
笔记·学习·fpga开发