当前位置:网站首页>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
边栏推荐
- Build your own web page on the Raspberry Pi (2)
- 获取Ip工具类
- mysql 存储过程 动态参数 查询执行结果
- Talking about GIS Data (6) - Projected Coordinate System
- 建造者模式(Builder Pattern)
- Ali cloud object storage oss private barrels to generate links
- Talking about GIS Data (5) - Geographic Coordinate System
- 2017-06-11 Padavan 完美适配newifi mini【adbyby+SS+KP ...】youku L1 /小米mini
- 在树莓派上搭建属于自己的网页(1)
- 【Flask】Flask-SQLAlchemy的增删改查(CRUD)操作
猜你喜欢

Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface

idea uses @Autowired annotation to explain the reasons and solutions

flask 面试题 问题

深度学习入门之GRU

GIS数据漫谈(五)— 地理坐标系统

高可用 两地三中心

Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)

接口和抽象

快速上手 Mockito 单元测试框架

VR全景展打造专属元宇宙观展空间
随机推荐
安装IIS服务(Internet信息服务(Internet Information Services,简写IIS,互联网信息服务)
Install IIS services (Internet Information Services (Internet Information Services, abbreviated IIS, Internet Information Services)
typescript42-readonly修饰符
初步认识ZK
Unity2D horizontal board game tutorial 6 - enemy AI and attack animation
《录取通知》 观后感
Common fluorescent dyes to modify a variety of groups and its excitation and emission wavelength data in the data
1058 选择题 (20 分)(C语言)
1059 C语言竞赛 (20 分)(C语言)
typescript47-函数之间的类型兼容性
用户密码验证
Response 重写设置返回值
1060 爱丁顿数 (25 分)
1054 求平均值 (20 分)
Two ways to simulate multi-user login in Jmeter
typescript44-对象之间的类兼容器
typescript41-class类的私有修饰符
3. 无重复字符的最长子串
Business table analysis - balance system
Lambda表达式案例