当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/269695.html

相关文章:

  • CentOS 8.2 安装 Mysql 5.7.26(单机)
  • Vue Tinymce富文本组件自定义带下拉框的操作按钮
  • YOLOv5算法进阶改进(10)— 更换主干网络之MobileViTv3 | 轻量化Backbone
  • Java UDP
  • Halcon阈值处理的几种分割方法threshold/auto_threshold/binary_threshold/dyn_threshold
  • FB混合C语言编译
  • 【机器学习】深度学习概论(二)
  • 词法语法语义分析程序设计及实现,包含出错提示和错误恢复
  • Linux的capability深入分析
  • 【自然语言处理】类似GPT的模型
  • 【Unity】【FBX】如何将FBX模型导入Unity
  • 腾讯云标准型S5服务器4核8G配置优惠价格表
  • 学习笔记:R语言基础
  • 初识智慧城市
  • Zookeeper之手写一个分布式锁
  • 【音视频 ffmpeg 学习】 RTMP推流 mp4文件
  • 跨进程通信 macOS XPC 创建实例
  • Python圣诞树代码
  • flask之文件管理系统-项目 JRP上线啦!!! ---修订版,兼容Windows和Linux系统
  • 希尔排序:排序算法中的调优大师
  • LeetCode 1185. 一周中的第几天
  • 大数据学习(30)-Spark Shuffle
  • Linux部署ELK
  • Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)
  • 【MYSQL】MYSQL 的学习教程(七)之 慢 SQL 优化思路
  • unity学习笔记----游戏练习0
  • ai概念:强人工智能介绍、迁移学习
  • go语言设计模式-单例模式
  • 超维空间S2无人机使用说明书——51、基础版——使用yolov8进行目标跟踪
  • Transformer(seq2seq、self-attention)学习笔记