【总线协议】LVDS

425 阅读3分钟

LVDS简述

LVDS的标准定义是Low-Voltage Diffferential Signaling低电压差分信号,为了克服以TTL电平方式传输宽带高码率数据时功耗大,电磁干扰大等缺点出现了LVDS技术,它具有低功耗、低误码率、低串扰和低辐射等特点。

LVDS接口使用1.2V 偏置电压作为基准(共模直流电压),其正负端的摆幅大约为350mV,即所谓的差模电压。

从电气标准的角度,LVDS是一种电平标准,其他常见的电平标准还有TTL、LVTTL、SSTL、LVCMOS、RS232、RS485等,不同电平标准有不同的场景应用。在Xilinx的FPGA中,支持这个电平标准,并且有LVDS_25\LVDS\LVDS33等。

从接口的角度看,LVDS可以称作接口,关于LVDS技术,这个说法主要是指LVDS接收器和收发器的硬件上的组成部分,大多数低速数字逻辑电平(如TTL、CMOS)是以电压对参考地的幅值来判断是高电平还是低电平, LVDS却完全不一样,它是通过数据接收器同相端与反相端的电压相对大小判断高低电平的,而不是通过同相端或反相端对公共地(GND)。通过恒流源和全桥开关电路不同晶体管的通断形成电压摆幅。

关于LVDS接口通信的其他概念结合下图阐释,可以看到其包含1路时钟Lane和5路数据Lane。

  1. 随路时钟采用的是并行时钟,一共有5个LVDS传输线同步于此时钟。图中随路时钟的占空比并不均匀,在一个传输线高电平期间传输3bit,在低电平期间传输4bit,Clock Pattern为“1100011”。

  2. 一个并行时钟周期单个传输线上传输的bit个数称为串化因子,图中串化因子是7。因此,一个并行周期将传输 7bit*5lines=35bit数据。

LVDS接口标准

LVDS信号格式有两种,一种JEIDA的标准,一种是VESA的标准

  1. 6 bits

    • VESA/JEIDA:

      0:G0,R5,R4,R3,R2,R1,R0

      1:B1,B0,G5,G4,G3,G2,G1

      2:DE,VS,HS,B5,B4,B3,B2

  2. 8 bits

    • VESA:

      0:G0,R5,R4,R3,R2,R1,R0

      1:B1,B0,G5,G4,G3,G2,G1

      2:DE,VS,HS,B5,B4,B3,B2

      3: 0,B7,B6,G7,G6,R7,R6

    • JEIDA:

      0:G2,R7,R6,R5,R4,R3,R2

      1:B3,B2,G7,G6,G5,G4,G3

      2:DE,VS,HS,B7,B6,B5,B4

      3: 0, B1,B0,G1,G0,R1,R0

  3. 10bits

    • VESA:

      0:G0,R5,R4,R3,R2,R1,G0

      1:B1,B0,G5,G4,G3,G2,G1

      2:DE,VS,HS,B5,B4,B3,B2

      3: 0,B7,B6,G7,G6,R7,R6

      4: 0,B9,B8,G9,G8,R9,R8

    • JEIDA:  

      0:G4,R9,R8,R7,R6,R5,R4

      1:B5,B4,G9,G8,G7,G6,G5

      2:DE,VS,HS,B9,B8,B7,B6

      3: 0,B3,B2,G3,G2,R3,R2

      4: 0,B1,B0,G1,G0,R1,R0

如何通过LVDS发送图像数据至屏幕?(基于Xilinx系列FPGA)

  1. 以 LVDS1:7-RX 为例,Xilinx官方文档给出如下方案(LVDS7:1-TX与之类似):

    其中涉及单端/差分转换、串/并转换、DDR(Double Data Rate)等。

  2. 实现要点:

    • 注意图像数据、HSYNC、VSYNC、DE的相对映射关系,两种数据格式的映射方式不同;

    • 根据不同屏幕选择正确的 CLK_PATTERN (Transmit clock bit pattern);

    • 使用 generate,实现对多个数据Lane的例化;

    • 参考官方设计文档,使用4:1 ODDR Mode 的 SelectIO IP核和 Distributed RAM(RAM32XID)来 位拼接调整和对齐数据流。