当前位置:网站首页>C-PHY速率
C-PHY速率
2022-08-03 05:10:00 【El mundo】
C-PHY 简单介绍
三线为一lane,没有时钟线;
最多3lane(即9线);
三线彼此差分。
C-PHY的物理电压图
记每一lane 的三根线为CSI_A,CSI_B,CSI_C.
每一根线有三种电平:3/4V,2/4V 和 1/4V
这三个线的电平彼此不同,因此可以有6种排列组合(A_3^2 = 6),即6种状态,
记为:+x, -x, +y, -y, +z, -z. 。
电压图如下图:
或者这样表达更直观:
CSI_A | CSI_B | CSI_C | |
---|---|---|---|
+x | 3/4V | 2/4V | 1/4V |
-x | 1/4V | 2/4V | 3/4V |
+y | 2/4V | 1/4V | 3/4V |
-y | 2/4V | 3/4V | 1/4V |
+z | 1/4V | 3/4V | 2/4V |
-z | 3/4V | 1/4V | 2/4V |
对这6种状态,我们对这三个线的电压,两两做差,就可以得到下面的眼图。
这三根线的电压差所形成的形状如同“眼睛”,顾名思义:眼图。
C-PHY的数据表达
那么对于C-PHY,是如何表达出二进制数据的呢?
答案就是这6个状态的切换。
对于任意时刻的任意状态,可以切换成与该时刻不同的状态;
每一次的状态切换,代表了3bit的数据。
结合最一开始所画的电压图来说:
对任意状态(+x,-x,+y,-y,+z,-z),
三根线任意两个的电平交换,即可以变成另一种状态,
每一个状态是一个symbol,每一个symbol的切换代表了3bit 数据。
网上有这么个图:
上面的图很简单,就是在说每个状态切换的时候所代表的数据是什么。
我喜欢用如下表格表示:
+x | -x | +y | -y | +z | -z | |
---|---|---|---|---|---|---|
000 | +z | -z | +x | -x | +y | -y |
001 | -z | +z | -x | +x | -y | +y |
010 | +y | -y | +z | -z | +x | -x |
011 | -y | +y | -z | +z | -x | +x |
1xx | -x | +x | -y | +y | -z | +z |
例如说:
假设当前时刻,状态是 +x. 要表示数据 000 010 011
那么状态的变化是:
+x => +z => +x => -y
C-PHY 的速率
对于D-PHY而言,以Byte为单位进行数据传输。一个UI是1 bit。
而对于C-PHY 来说,是以 16 bit 为单位进行数据传输,一个UI 是16/7 bit。
16/7 是怎么来的,看下图:
这里就会有疑问了,16 bit 的有效数据用 21 bit 来传,那还有5 bit 呢?
当然是用于数据校验或者其他功能。
深一层思考:
这里进行更深的思考,为什么是以16 bit 为单位,并分配成了 7个symbols呢?
为什么不是 以 8 bit 为单位,分配成5个symbols 呢?
以下是个人的思考,谨代表个人的想法,不一定是官方回答。
首先是第一个问题:
为什么16 bit 的有效数据要分配成7 个 symbols?
对于16 bit 的数据来说,有2^(16) = 65536 种不同;
对于 7 个symbol 来说,一个symbol 代表了5 种状态,因此有5^(7) = 78125种不同;
若是6个symbol,5^(6)=15625 ,小于2^(16),无法正常且正确地表达出 16 bit 的所有数据。
第二个问题:
为什么为什么不是 以 8 bit 为单位,分配成5个symbols ,或者其他呢?
下表列出了5-8 个symbol 分别能承载的最大bit 数。
2^9 | 5^4 | 2^11 | 5^5 | 2^13 | 5^6 | 2^16 | 5^7 | 2^18 | 5^8 |
---|---|---|---|---|---|---|---|---|---|
512 | 625 | 2048 | 3125 | 8192 | 15625 | 65536 | 78125 | 262144 | 390625 |
若是11bit,至少要5个symbol 才能承载。
大家可以计算一下比例,用7 个symbol 去承载16 bit 的数据时,效率最高,即16/7 = 2.28。
最后我们可以知道,
C-PHY的传输速率:
每一lane 最大传输速率是 2.5G UI/s;
每一个UI 是 16/7 = 2.28 bit;
最大有3lane;
因此:
2.5G * 16/7 bit * 3 = 17.14G bit/s
边栏推荐
猜你喜欢
Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface
数据分析 第一篇
Secondary development of WinForm controls
Common fluorescent dyes to modify a variety of groups and its excitation and emission wavelength data in the data
Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)
tag单调栈-单调栈预备知识-lt.739. 每日温度
第四次培训
集合框架知识
web安全-PHP反序列化漏洞
VSO Downloader Ultimate 5.0.1.45 中文多语免费版 在线视频下载工具
随机推荐
typescript46-函数之间的类型兼容性
Alienware上线首个数字时装AR试穿体验
《录取通知》 观后感
Talking about GIS Data (5) - Geographic Coordinate System
Create a tree structure
Interface testing framework combat (3) | JSON request and response assertion
vim命令
数据分析 第一篇
1058 选择题 (20 分)(C语言)
Shell conditional statement judgment
在树莓派上搭建属于自己的网页(1)
【 Harmony OS 】 【 ano UI 】 lightweight data storage
Kaggle(四)Scikit-learn
1089 狼人杀-简单版 (20 分)
PotPlayer实现上班摸鱼电视自由
信息编码、存储压缩与密码学
Interface Test Framework Practice (4) | Get Schema Assertion
曲线特征----曲线弯曲程度的探究
Junit
集合框架知识