首页 > 其他分享 >V-By-One 详解

V-By-One 详解

时间:2025-01-15 20:33:08浏览次数:3  
标签:training CDR 信号 像素 详解 模块 发送器

文章目录

V-BY-ONE 概述

V-BY-ONE,即“Video by one”,意思是通过一根线来传输 LVDS 或 TTL 信号,它是由日本 THine 公司开发的一种替代 LVDS 的接口技术标准,专门面向图像传输。1.4 标准中,每个差分对信号的传输频率可以达到 4GHz,它具有以下优点:

  • 相对其他内部互联协议(PCIE,SATA)等,V-BY-ONE 具有低功耗和易用性等特点;
  • 单通道的传输速度达到 4Gbps,有效数据率为 3.2Gbps;
  • 它通过数据加扰和数据时钟恢复电路(CDR)方式,减少了 EMI;
  • 接收端通过 CDR 电路方式恢复时钟,而不用发送端发送时钟,所以解决了传统传输系统中时钟和数据之间的偏移问题。

因为采用了专门的编码方式和 CDR 结构,V-BY-ONE 技术可以通过一些差分对信号线在最少的外部元件基础上传多达 40bit 的视频信号和多达 24bit 的控制信号,同时传输 HSYNC,VSYNC,以及 DE。V-BY-ONE 收发器之间通过 HTPDN 和 LOCKN 两个信号进行交互。收发器之间的传输介质是微带线或电缆,其差分特性阻抗为 100Ω,另外 TX 端的电容是必须有的,而 RX 端则是可选。

HTPDN,LOCKN 信号

HTPDN,LOCKN 都是低电平有效。HTPDN 信号指示了发送器和接收器之间的连接关系。当接收器没有活动或者说两者没有连接时,发送器这边收到的 HTPDN 为高电平,此时发送器则可以进入下电模式。当接收器开始工作且和发送器连接时,HTPDN 将会置为低电平,从而发送器会马上启动并开始发送 CDR 测试向量来做通路测试。接收器的 HTPDN 信号是漏极开路状态,而发送器端的 HTPDN 则是连接一个上拉电阻。HTPDN 信号也可以忽略使用,这个时候发送器端的 HPTDN 信号一直拉低状态。

LOCKN 信号指示了接收器端是否通过 CDR PLL 锁频,即是否已经恢复出时钟信号。如果接收器没有工作或者处于 CDR PLL 测试模式状态,则发送器端的 LOCKN 信号通过一个上拉电阻拉高。当接收器完成 CDR 测试,即已经锁住时钟频点,则发送器端的 LOCKN 信号拉低,发送器进入正常工作模式。接收器端的 LOCKN 信号处于漏极开路状态,而发送器端则需要一个上拉电阻和 LOCKN 信号连接。

实测的HTPDN和LOCKN信号波形:
在这里插入图片描述

V-BY-ONE HS Link系统图

在这里插入图片描述

V-BY-ONE 传输速率计算

总比特率计算

在这里插入图片描述
其中 byte mode 指的是 V-BY-ONE 协议中根据色彩深度进行不同方式打包,有 3/4/5byte 三种模式。6/8bit 对应 3byte mode,10bit 对应 4byte mode,12bit 对应 5byte mode。

举例:3840*2160(60Hz)Pixel clock = 533.25MHz 10bit。
Encoded total bit-rates = 4 * 8 * 10 / 8 * 533.25 = 21.333 Gbps。

每通道编码比特率计算

[encoded bit-rate per lane] 可以计算为 [[total bit rate] 除以 [number of lanes],[number of lanes] 的选择应合理,使 [encoded bit-rate per lane] 在 600Mbps 以上,在 4Gbps 以下。
在这里插入图片描述
[number of lanes] 需要根据图像分辨率和刷新率做出适当选择:
在这里插入图片描述

V-BY-ONE 收发器功能划分

V-BY-ONE 收发器包括发送器和接收器。

发送器 TX 内部模块主要是 packer,scrambler,encoder,serializer 以及发送器链路监测模块。发送器一直检测 LOCKN 和 HTPDN 信号。如果 LOCKN 信号为高电平,发送器将会执行 CDR 测试,并发送 CDR 测试向量。当 CDR 锁住,即接收器端锁住时钟,发送器将会从 CDR 测试模式跳转到正常工作模式,即此时开始传输用户逻辑的数据。

接收器 RX 的内部模块分为:unpacker,de-scrambler,decoder,de-serializer 及接收端链路监测模块。接收器在接收到 CDR 测试向量时首先进行时钟的同步,即恢复出时钟。在从 CDR 测试模式进入正常工作状态后,接收端将会通过 ALN 测试来同步有效像素和 byte 位置。

一个 Link 的 V-BY-ONE 结构:
在这里插入图片描述
发送器 TX 端各模块之间配合关系是:首先,经过 CDR 测试后,TX 才开始发送编码后的像素数据:其中 packer 模块将多 bit 的像素数据(最高为 40bit,最小为 24bit)打包为 8bit 的数据;scrambler 模块采用伪随机序列方式对 8bit 的数据进行加扰处理;encoder 模块采用 8B/10B 编码方式,将加扰后的 8bit 数据编码为 10bit;最后编码后的数据通过 serializer 并串转换模块,转为 1bit 的差分信号输出。

V-BY-ONE TX 模块分析

V-BY-ONE fsm 模块

V-BY-ONE TX 状态机

V-BY-ONE TX 控制器的状态机一共有 6 种状态,分别是:Shut down,Stand-by,Acquisition,CDR training,ALN training,Normal 状态。

状态机转移过程及条件:
在这里插入图片描述
下表显示每个状态的详细信息:

StateCommentTx Output
Tx#0:Shut DownPower off*
Tx#1:Stand byPower on**
Tx#2:AcquisitionAcquisition of the input pixel clock from user logic**
Tx#3:Transmit CDR TrainingOutput CDR training patternCDR Training Pattern
Tx#4:Transmit ALN TrainingOutput Alignment training patternALN Training Pattern
Tx#5:Transmit NormalOutput Normal PatternNormal Pattern

*发送器在 Tx#0 状态下的输出根据具体情况而定。
**为了避免在发送器锁相环不稳定的情况下产生不期望的输出,应将发送器在 Tx#1,2 状态下的输出固定到某个电压水平。

Shut down 状态是发送器初始状态,此时发送器处于掉电状态;

Stand-by 状态是发送器从下电到上电后的状态,即准备状态,此时开始检测 HTPDN 信号,若 HTPDN 为低则跳转到下一状态;

Acquisition 状态时发送器确认链接好接收端后,开始检测发送端 PHY 的像素时钟是否锁定,若锁定则跳转到下一状态;

CDR training 状态时进行 CDR training 来使接收端的 CDR PLL 锁定链路时钟,随时检测接收端反馈的 LOCKN 信号是否为低,若为低说明 CDR PLL 锁定链路时钟,则跳转到下一状态;

ALN training 状态是为了接收端的像素和字节对齐,这个状态下发送端通过产生指定序列来实现,该序列包括时序信号 DE,VSYNC,HSYNC 以及像素数据,指定序列发送完成后,跳转到下一状态;

Normal 状态是正常传送视频数据的状态,数据经过整个链路处理后传给接收器。

V-BY-ONE RX 状态机

V-BY-ONE RX 控制器的状态机一共有 4 种状态,分别是:Shut down,CDR training,ALN training,Normal 状态。

状态机转移过程及条件:
在这里插入图片描述
下表显示每个状态的详细信息:

StateCommentRx OutputHTPDNLOCKN
Rx#0:Shut DownShut downinvalidHighHigh
Rx#1:CDR trainingCDR locking processinvalidLowHigh
Rx#2: ALN TrainingTraining by alignment LogicinvalidLowLow
Rx#3 :NormalNormal operationvalidLowLow

链路启动流程

在这里插入图片描述

链路失败流程

在这里插入图片描述

V-BY-ONE CDR training 模块

CDR training 的主要作用是让接收端恢复出像素时钟。为此,在 CDR training 期间,发送端须持续发送指定的测试序列直到 CDR PLL 获取到像素时钟频率。CDR training 进行的条件如下:

  1. 当检测到 HTPDN = 0,LOCK = 1 时,CDR training 开始执行。
  2. 重复发送序列 D10.2(0101010101),直到 CDR PLL 频率锁定,锁定后 LOCKN 置 0。
  3. 测试序列 D10.2 的频率是 V-BY-ONE 链路比特率的一半。
  4. 测试序列 D10.2 不用加扰处理。
  5. RX 通过将 LOCKN 置 1,标记 CDR PLL 失锁,LOCKN 置 0,标记 CDR PLL 锁定链路频率。

V-BY-ONE ALN training 模块

ALN training 测试的目的是将有效像素和字节对齐,因此,ALN 测试码流必须包含 BS,BE 等标记。ALN 测试条件如下:

  1. 当检测到 HTPDN = 0,LOCK = 0 时,ALN training 开始执行。
  2. 在进行 ALN training 期间,产生的 1 个 DE 周期包含 64 个像素周期,其中 32 个像素周期为高,32 个像素周期为低。
  3. DE 周期重复 16 次。
  4. DE 信号在第 16 个周期的最后个时钟置 1。
  5. VSYNC 信号除了倒数第四个时钟置 1 外,其余为 0。
  6. ALN 测试序列需要经过加扰模块的处理。

ALN training 产生数据如下图所示:
在这里插入图片描述
最后一个 ALN 训练周期有不同的模式,其中包括 BE_SR 字符用加扰器重置。总 ALN 训练周期是 64*16 像素每 lane。下图显示了 Packer 在 3byte 模式下输出的训练示例。
在这里插入图片描述
重新进入训练模式
当发送端改变数据速率时,发送端应首先停止输出信号,使接收端进入训练模式。接收端进入训练模式(LOCKN 变为高)后,发送端开始发送训练信号。当接收方由于某种原因(CDR 故障等)失去链路连接时,接收方通过将 LOCKN 设置为 High 向发送方表明情况。

V-BY-ONE map 模块

V-BY-ONE 协议可以适用于各种类型颜色空间和色彩深度的视频格式,包括 RGB,YCbCr444,YCbCr422,RGBW,RGBY 等颜色格式及 6/8/10/12bit 的色彩深度。本文设计的发送器支持 36bpp RGB/YCbCr444,30bpp RGB/YCbCr444,24bpp RGB/YCbCr444,18bpp RGB/YCbCr444,24bpp YCbCr422,20bpp YCbCr422,16bpp YCbCr422 等 7 种常见配置模式。关于颜色数据的映射关系可以参考 V-BY-ONE 协议具体规定。

V-BY-ONE协议颜色数据映射关系:
在这里插入图片描述

V-BY-ONE packer 模块

packer 模块的功能是将输入的 40bit 像素数据,24bit 控制数据及 3bit 时序数据按照 8bit 打包。每个包映射关系由输入像素像素数据字节数决定,一般有 3/4/5byte 三种。打包处理时通过 5 类数据标记来分隔不同类型数据:FSACTIVE,FSBS(blanking start),FSBP(blanking payload,如VBI等),FSBE(blanking end),FSBE_SR(blanking end and scrambler reset)。根据协议可知数据标记主要参考 DE 和 VSYNC 信号而产生,在 DE 信号上升之前的一个像素周期,也即 DE 信号低电平区间内的最后一个像素周期,对应的数据标记为 FSBE 标记信号,这个标记对应的传送数据是 K 码。DE 信号处于高电平期间时,对应的数据标记为 FSACTIVE 标记信号,在此期间,有效像素数据被传送,此标记对应的传送数据是 D 码。在 DE 信号下降沿后的第一个像素周期,也即 DE 信号低电平区间内的第一个像素周期,对应的数据标记为 FSBS 标记信号,这个标记对应的传送数据是 K 码。DE 为低电平区间,除了第一个和最后一个像素周期,其他时刻对应的是 FSBP 数据标记信号,在此期间时序信号 HSYNC,VSYNC 和 CTL 数据将会被传送,此标记对应的传送数据是 D 码。FSBE_SR 是一个比较特别的数据标记信号,用来复位加扰模块。将第 1 个 FSBE 和每个 512 个 FSBE 数据标记直接替换为 FSBE_SR。

FSACTIVE

像素数据在 DE 有效(DE = high)期间被打包。这段时间内的所有字节都是 D 码。“DE high active” 由极性定义。

FSBS(Blanking Start)

插入在最后一个有效像素之后。Vsync 和 Hsync 数据被打包成 Byte0 和 Byte1。这个 FSBS 中的所有字节都是 K 码。”

FSBP(Blanking Payload)

插入在 BS 和 BE 之间。Vsync 和 Hsync 数据被打包成 Byte0 和 Byte1,允许将 CTL 数据打包成 Byte2-4。这段时间内的所有字节都是 D 码。FSBP 持续时间计算公式为:[FSBP 持续时间] = [消隐周期持续时间] - 2 像素。

FSBE(Blanking End)

插入在第一个有效像素之前。Vsync, Hsync 数据和 BE 码被打包成 Byte0 和 Byte1。这个 FSBE 中的所有字节都是 K 码。

FSBE_SR(Blanking End and Scrambler Reset)

在 Vsync 有效周期之后的第一个 FSBE 和每个 512个 FSBE 被替换为 FSBE_SR,用于复位加扰器和解扰器的线性反馈移位寄存器(LFSR)。每次发送 FSBE_SR 时,FSBE 的计数都会被重置(见图5)。FSBE_SR 中的数据包含 K 码的 Vsync、Hsync 和 BE_SR 码。
在这里插入图片描述

发送数据和数据标记关系

在这里插入图片描述
在这里插入图片描述

localparam	BE		=	8'b01011100;	//K28.2
localparam	BE_SR	=	8'b00011100;	//K28.0
localparam	BS		=	8'b00111100;	//K28.1
localparam	SYNH	=	8'b10111100;	//K28.5
localparam	SYNL	=	8'b00111100;	//K28.1

V-BY-ONE scrambler 模块

V-BY_ONE 通过对传输数据进行加扰处理,避免通道上相邻两个打包后码字相同,可以减少 EMI,每个数据通道通过一个 16bit 的线性反馈移位寄存器(LFSR)加扰,每加扰一个通道数据,LFSR 就移位 8 次。LFSR 处理对象是 packer 打包后的数据,其处理分为两个分支:对 BS,BE,BE_SR,SYNH,SYNL 等 K 码标记数据不进行加扰,但遇到 BE_SR 标记时,LFSR 复位到 16’hFFFF;对 FSBP 标记和 FSACTIVE 数据等 D 码数据进行加扰;另外,在 CDR 测试时,加扰模块需要旁路。V-BY-ONE 协议采用的 16bit LFSR 的生产表达式为:

G(x) = X^16 + X^5 + X^4 + X^3 + 1

加扰时,将 LFSR 生成的伪随机序列高 8bit 与输入的 8bit 打包数据进行异或运算,其结果就是加扰后数据。

注意:使用多 lane V-BY-ONE 传输数据时,需要将加扰模块级联处理。

V-BY-ONE encoder 模块

V-BY-ONE 采用 8B/10B 编码方式,该模块是将加扰后的 8bit 数据编码为 10bit,它的主要作用是保证一段时间内编码产生数据 1 和 0 的个数相当。这样可以达到直流平衡,另外编码后的数据流方便接收端通过 CDR 技术恢复链路时钟。对于 BS,BE,BE_SR,SYNH,SYNL 等组成的 K 码在 8B/10B 编码成特殊码字来标记数据边界,而 BP 和像素数据组成的 D 码按正常的码表进行编码。

V-BY-ONE 眼图规格

TX 端眼图

在这里插入图片描述

X[UI]Y[mV]
A0.150
B0.355140
C0.5175
D0.645175
E0.850
F0.645-175
G0.5-175
H0.355-140

RX 端眼图

在这里插入图片描述

X[UI]Y[mV]
A0.250
B0.350
C0.750
D0.750
E0.7-50
F0.3-50

标签:training,CDR,信号,像素,详解,模块,发送器
From: https://blog.csdn.net/s1_mple/article/details/145137013

相关文章

  • ipify.org:免费IP查询服务详解
    ​https://www.ipify.org/​是一个免费的公共服务网站,专门用于获取用户的公网IP地址。它提供了一个简单易用的API,开发者可以通过HTTP请求获取客户端的IP地址。主要功能获取用户的公网IP地址:用户或开发者可以通过访问ipify​的API,获取当前设备的公网IP地......
  • Java多进程多线程处理详解
    在Java编程中,多进程和多线程是两种常见的并发编程技术,用于提高程序的执行效率和响应速度。本文将详细介绍Java中的多进程和多线程处理,包括理论概述和代码示例。通过本文,你将了解如何在Java中实现多进程和多线程,以及它们在实际应用中的价值和意义。一、理论概述1.多进程与多线程......
  • Google开发者账号注册步骤详解
    注册Google开发者账号的步骤如下:访问GoogleDevelopers网站:打开浏览器,访问GoogleDevelopers网站。登录Google账号:如果你已经有Google账号(如Gmail账号),点击页面右上角的“登录”按钮,使用你的Google账号登录。如果你没有Google账号,点击“创建账号”......
  • 迷宫问题详解(DFS)(谁都能学会版)
    迷宫问题迷宫问题详解(DFS)前言:具体过程1.定义方向数组并使用嵌套结构体定义栈中元素2.实现栈的基本功能(基本功)3.逆序输出栈中元素(难点之一)4.拼凑函数与具体实现5.笔记6.main函数结语迷宫问题详解(DFS)前言:希望在观看此片之前先去观看懒猫老师的视频,此篇是完全基于......
  • JMeter 命令行利器:-J 参数详解
    JMeter命令行利器:-J参数详解在进行JMeter性能测试时,命令行模式提供了更大的灵活性和自动化能力。其中,-J参数是JMeter命令行选项中一个非常重要的组成部分,它允许我们设置Java系统属性,从而影响JMeter的各种行为,包括配置、日志、插件以及其他各种设置。我们深入探讨-J......
  • 详解MySQL数据库和部署
    部署一个基本的数据库系统通常包括以下几个步骤:规划、安装、配置、安全设置、测试以及日常工作。下面以部署MySQL数据库维护为例进行详细讲解:1.规划在部署数据库前需要明确以下内容:用途:明确数据库的使用场景(例如Web应用、数据分析)。环境:选择操作系统(如CentOS7)、硬件资源(C......
  • MySQL 权限详解
    All/AllPrivileges权限代表全局或者全数据库对象级别的所有权限Alter权限代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果是rename表名,则要求有alter和drop原表,create和insert新表的权限Alterroutine权限代表允许修改或者删除存储过程、函数的权限......
  • Java 语法糖详解
    什么是语法糖?语法糖(SyntacticSugar) 也称糖衣语法,是英国计算机学家Peter.J.Landin发明的一个术语,指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。简而言之,语法糖让程序更加简洁,有更高的可读性。 有意思的是,在编程领域,除了语法糖......
  • 智能合约中的多个函数重入攻击(Reentrancy Attack)详解
    简介在区块链智能合约开发中,重入攻击(ReentrancyAttack)是一种非常危险的漏洞类型。攻击者通过利用合约内函数之间的调用漏洞,可能会重复调用某个函数或多个函数,从而导致不正常的行为,甚至损失资金。通常,重入攻击依赖于合约执行过程中状态更新与外部合约交互的顺序错误。在这篇......
  • JavaScript详解 ——函数
    1、函数的概念在JS里面,可能会定义非常多的相同代码或者功能相似的代码,这些代码需要大量重复使用函数:就是封装一段可被重复调用执行的代码块。通过代码块可以实现在需要的的重复使用,使用typeof检查一个函数对象时,会返回function函数的封装是把一个或者多个功能通过函数的方式......