SLVS-EC接口学习

SLVS summarize

一、概述

       SLVS-EC高速串行接口技术,在CIS和DSP(数字信号处理器)之间实现了高帧率的宽带像素数据传输。

        SLVS-EC引入了一个优化的数据包格式和控制协议,几乎没有冗余,而且结构简单,仅由两层组成:

  1. LINK,利用并行结构实现宽带数据的格式处理;
  2. PHY,能够以低功耗提供高速数据传输。

        同时SLVS-EC也引入了一个可扩展的FEC(前向纠错)功能,作为数据传输错误的控制协议,而数据传输错误是高速串行接口的主要影响因素。这实现了高度可靠的数据传输,并根据应用将冗余度降至最低,且延迟较低。

        此外,发射器和接收器的推荐电气特性被指定为CIS和DSP之间的接口。这样就能以高速、低功耗、小面积的PHY电路实现高性能。

二、定义与缩写

Lane

一个单向的点对点差分串行连接,包括一个TX-PHY和一个RX-PHY,以及一个与差分传输线的互连。

Symbol

8B/10B编码产生的一个10位数据

Comma Symbol

用于symbol之间对齐的特殊symbol

Control Code

控制PHY协议序列的控制码

三、架构

1、系统拓扑

       SLVS-EC提供可扩展的配置,以支持CIS和DSP之间的各种系统拓扑结构。

       像素数据通过一对SLVS-EC的发射器(TX)和接收器(RX)从一个CIS传输到一个DSP。SLVS-EC只提供从CIS到DSP的单向数据传输。每个SLVS-EC的TX和RX所支持的Lane的最大数量应是8个Lane

       如果需要超过8个Lanes的带宽,那么可以使用多个SLVS-EC接口。

       此外,SLVS-EC也支持多个CIS传输到一个DSP的情形。

2、层次结构

四、应用层

       应用层(CIS和DSP)括从CIS输入或输出到DSP的数据格式,以指定应用层的定义和约束,还包括SLVS-EC接口使用的帧格式和LINK/PHY协议的必要规范。

       SLVS-EC接口支持RAW8、RAW10、RAW12、RAW14、RAW16。每一行的长度需要为4的整数倍。

       帧格式也是在是由应用层(CIS)功能配置的。通过使用包头和该接口的其他功能嵌入帧和行信息,帧格式可以在DSP侧正确传输和重新配置。

         应用层可以传输嵌入在RAW像素数据流中的辅助信息,如CIS配置的寄存器值,这里称为嵌入数据。为了便于区分嵌入式数据线和DSP(RX)端的其他线,SLVS-EC接口支持通过包头传输功能为包含嵌入式数据的线传输一个指示位。

       此外,在应用层可以设置寄存器参数

五、LINK Layer

       LINK层的主要作用是将帧和行信息添加到从应用层(CIS)输入的像素数据中,将数据组装成数据包,并将其输出到各Lane的PHY层;在RX侧收集各lane的PHY输入的接收数据,从数据包中提取像素数据、帧信息和其他信息,并输出到应用层(DSP),进行纠错编码和解码等处理。

1、Pixel to Byte

2、有效载荷数据

有效载荷数据指的是使用数据包发送的数据内容,是不包括帧头和帧尾等的数据。有效载荷数据由转换后的字节数据和有效载荷填充物组成。

       有效载荷填充物的值为8’b0。长度如下:

3、有效载荷数据纠错

        因为随机数据错误的发生取决于PHY层的比特错误特性,提供有效载荷数据纠错的功能是为了纠正这种像素数据的损坏,并提高所有SLVS-EC接口的有效比特错误性能。此外,SLVS-EC的纠错性能可以被配置,称为可扩展的FEC功能。该功能可通过配置寄存器(ECC选项)进行配置。

        有效载荷数据纠错的规范定义如下:

 

        信息长度被定义为部分有效载荷数据中经奇偶校验后的字节数。配置选项为

        其中,Block Length = Info Length + Parity [byte]

4、数据包Header的生成

       Header信息时发生错误,错误被CRC检测到,重复传输的其他头信息(其中没有检测到错误)可以用来在RX端重现正确的信息。

        此数据包header 的CRC采用CRC16:

5、数据包Footer的生成

        存储在数据包页脚中的信息是32阶CRC码(CRC32),用于检测数据包中有效载荷数据的传输错误。通过将配置寄存器中的CRC选项设置为 "ON",数据包Footer被添加并在有效载荷数据之后传输。这个选项功能的主要应用被认为是在传输有效载荷数据是嵌入式数据时,对嵌入式数据传输错误的一种对策。CRC32的实现成本相对较小,所以使用CRC选项代替有效载荷数据ECC功能可以帮助减少传输少量嵌入式数据的应用的电路实现成本。

 

6、状态机

 

 

1. Blanking:该状态对应于图像信息的H- Blanking。在这种状态下,LINK层要么在传输一行图像数据之前生成数据包Header,要么在数据包输出后等待PHY控制代码传输的完成。

2. Header transfer:该状态将数据包头从LINK层传输到PHY层。

3. payload data transfer。该状态从LINK层输出有效载荷数据(包括ECC)。

4. Footer transfer。该状态从LINK层传输数据包的Footer。

5. Finalize:该状态命令将表示数据包结束的控制代码从LINK层传输到PHY层。6. Mode change:该状态根据配置寄存器的设置,改变LINK层和PHY层的设置

7. Power save:该状态可以通过停止LINK层和PHY层的时钟和偏置电流等来降低功耗。在此状态下,TX和RX不能进行通信。(此状态也可用于改变LINK层和PHY层的设置)。)

8. Initialize:该状态指示PHY层开始Training sequence以从power save状态返回,并等待系统准备好进行通信。

 五、PHY Layer

1、状态机

 

1. Idle code: 该状态表示除数据包传输外的空闲,并持续发送Idle code。

2.start code。该状态下传输表示数据包传输开始的start code。

3.data symbol:该状态从LINK层向互连网传输有效的包数据。

4.pad code。当没有收到来自LINK层的有效数据包时,该状态会传输假数据。

5.end code。该状态下传输的控制代码表示数据包传输的结束。

6.deskew code。该状态传输控制码,在数据包传输结束后调整通道间的偏移。

7.Standby Sequence: 该状态按照属性寄存器的设置传输待机序列。

8.High-Z : 该状态可以通过驱动互连到高阻抗状态,并在必要时停止时钟和其他操作来降低功耗。

9. fixed low。该状态在属性寄存器中设定的周期内持续驱动互连到差分低电平状态。

10. training sequence。该状态按照属性寄存器的设置传输training sequence。

2、控制码

显示了PHY控制码的定义和分配的8B/10B符号配置。

 

3、Symbol Encoding

采用8b/10b编码,控制码采用到的编表如下:

4、数据比特序

 

       字节数据的第0位被输入到8b/10b端口A,10位符号数据作为串行数据从a开始传输。

5、波特率

       SLVS-EC接口采用波特率。每个Lane的 PHY 比特率定义为下表中的波特率。

        PHY总带宽一般由配置寄存器中的Lane Num设置控制,而不是波特率等级设置。因此,波特率应固定为波特率等级2(默认设置),而不是改变为波特率等级1,这是一个可选的设置。

六、小结

  1. 纠错码

整个SLVS使用了三类纠错码:RS码、CRC16、CRC32

纠错码

使用说明

RS码

用于有效载荷数据的纠错

CRC16

对数据包的纠错,存放在数据包Header

CRC32

在有效载荷数据为嵌入式数据时进行纠错,存放在数据包的Footer。

  1. PHY control code

IDLE code 可以通过寄存器进行配置。默认值为D.00.0 x 4

 

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Unity中NGUI的Pivot和锚点

Pivot 1.创建一个Sprite类型的Sprite1节点,关联一个图集和一张贴图,用图中的六个按钮调整这个贴图的Pivot点,一共有八个点可以选择 2.再创建一个Sprite类型的Sprite2节点,作为Sprite1节点的子节点,关联一个图集和一张贴…

PrimeTime指南——概述和基本流程

PrimeTime(PT)是Synopsys的sign-off quality的静态时序分析工具。PrimeTime可以集成于逻辑综合和物理综合的流程,让设计者分析并解决复杂的时序问题,并提高时序收敛的速度。 一、概述 PT最大的两个特点是: 基于时序路…

yuv和yCbCr的差异

yuv和yCbCr的差异 一、和rgb之间换算公式的差异 yuv<-->rgb Y 0.299*R 0.587*G 0.114*B U -0.147*R - 0.289*G 0.436*B 0.492*(B- Y) V 0.615*R - 0.515*G - 0.100*B 0.877*(R- Y) R Y 1.140*V G Y - 0.394*U - 0.581*V B Y 2.032*U yCbCr<-->rgb Y’ 0…

配置zentaophp

原理&#xff1a; 首先&#xff0c;我们要明白为什么访问localhost就可以访问到我们的apache主页。 解析域名的时候&#xff0c;首先是从本地的hosts文件开始的。 如果查不到&#xff0c;才会去DNS服务器查询。 如果你在这里面写一行&#xff1a;127.0.0.1 www.baidu.com 百…

Android开发——RecyclerView特性以及基本使用方法(二)

0. 前言随着Android的发展&#xff0c;虽然ListView依旧重要&#xff0c;但RecyclerView确实越来越多的被大家使用。但显然并不能说RecyclerView就一定优于ListView&#xff0c;而是应该根据不同的需求选择最合适的进行使用。本篇将介绍我们为什么要使用RecyclerView&#xff…

pycharm中使用scrapy命命

2019独角兽企业重金招聘Python工程师标准>>> 这篇博客写的不错&#xff0c;亲测 https://blog.csdn.net/MAOZEXIJR/article/details/80678133 转载于:https://my.oschina.net/u/2511906/blog/1934993

PrimeTime指南——合理设置约束

完整的STA需要满足以下两点&#xff1a; 完整的设计约束&#xff08;完整并不意味着正确&#xff09;运行所有需要的时序检查可以用以下两条命令来进行完整性的检查&#xff1a; check_timing // 检查是否缺少了约束条件 report_analysis_cove…

Matlab增加块注释

1&#xff09;方法一选中你要加注释的内容&#xff0c;然后选择工具菜单“text|comment”就可以了&#xff0c;如果要把注释变为语句&#xff0c;同样选中要转变的语句&#xff0c;然后用鼠标选择“text|uncomment”就可以了。用键盘的快捷键是"CtrlR".或者选中你要加…

理解正向代理和反向代理

首先&#xff0c;大家可以看一下这里https://www.zhihu.com/question/24723688 其实答复的非常清楚了。 知乎网友阿笠硕士图画的很形象&#xff0c;地址为https://www.zhihu.com/question/24723688/answer/48369770 其次&#xff0c;我自己根据专家的解释&#xff0c;总结如下…

tablayout支持改变选中文字大小,支持左右滑动,支持viewpager,支持三角可移动指示器...

TabLayout [简书地址] (https://www.jianshu.com/p/2c3f868266e8) 基于大神的FlycoTabLayout [传送地址和基本用法](https://github.com/H07000223/FlycoTabLayout) 用法和属性和这个库一样 效果图如下 主要添加一个属性 tl_text_select_size 控制选中文字大小 看代码截图 然后…

Design Compiler指南——概述和基本流程

综合是前端模块设计中的重要步骤之一&#xff0c;综合的过程是将行为描述的电路、RTL级的电路转换到门级的过程&#xff1b;Design Compiler是Synopsys公司用于做电路综合的核心工具&#xff0c;它可以方便地将HDL语言描述的电路转换到基于工艺库的门级网表。本文将简单介绍综合…

linux常用网络命令

关键词&#xff1a;linux网络命令、ifconfig、route、ip、netstat、socket flag 引言&#xff1a; 想成为真正的高手&#xff0c;必须要熟练掌握linux系统的命令行操作&#xff0c;今天就回顾一下linux在网络上的常用命令相关知识&#xff0c; 另外&#xff0c;实践才是最终的方…

图像增强汇总

1、 图像增强技术包括 1&#xff09; 图像灰度变换方法 2&#xff09; 直方图修正方法 3&#xff09; 图像平滑处理 4&#xff09; 图像尖锐化处理 5&#xff09; 彩色处理技术 2、 图像增强技术基本上分为两大类&#xff1a;频域处理法和时域处理法。 3、 频…

javaweb(三十八)——mysql事务和锁InnoDB(扩展)

MySQL/InnoDB的加锁分析&#xff0c;一直是一个比较困难的话题。我在工作过程中&#xff0c;经常会有同事咨询这方面的问题。同时&#xff0c;微博上也经常会收到MySQL锁相关的私信&#xff0c;让我帮助解决一些死锁的问题。本文&#xff0c;准备就MySQL/InnoDB的加锁问题&…

Design Compiler指南——预综合过程

预综合过程是指在综合过程之前的一些为综合作准备的步骤&#xff0c;包括Design Compiler的启动、设置各种库文件、创建启动脚本文件、读入设计文件、DC中的设计对象、各种模块的划分以及Verilog的编码等等。 一、Design Compiler的启动 目前&#xff0c;DC的启动方式有三种&a…

KAFKA介绍(分布式架构)

2019独角兽企业重金招聘Python工程师标准>>> 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能&#xff0c;但具有自己独特的设计。这个独特的设计是什么样的呢&#xff1f; 首先让我们看几个基本的消息系统术语&#xff1a; Kaf…

jquery 回车事件

简单地记下jquery实现回车事件&#xff0c;代码如下&#xff1a;全局&#xff1a; $(document).keydown(function(e){if(e.keyCode13){$(".login-li input[typebutton]").trigger("click");} });某个控件&#xff1a; $("body").keydown(functio…

Three.js 详细解析(持续更新)

1、简介&#xff1b; Three.js依赖一些要素&#xff0c;第一是scene&#xff0c;第二是render&#xff0c;第三是carmea npm install --save three import * as THREE from "three"; import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader.js&quo…

[js高手之路]构造函数的基本特性与优缺点

上文,通过基本的对象创建问题了解了构造函数&#xff0c;本文&#xff0c;我们接着上文继续了解构造函数的基本特性&#xff0c;以及优缺点. 每个对象上面都有一个constructor属性( 严格意义上来说&#xff0c;是原型上的&#xff0c;对象是通过查找到原型找到 constructor属性…

Design Compiler指南——施加设计约束

Design Compiler是一个约束驱动(constrain-driven)的综合工具&#xff0c;它的结果是与设计者施加的约束条件密切相关的。在本文里&#xff0c;我们主要讨论怎样给电路施加约束条件&#xff0c;这些约束主要包括——时序和面积约束、电路的环境属性、时序和负载在不同模块之间的…