MIPI、LVDS、RGB、HDMI等接口对比

关注、星标公众号,精彩内容每日送达
来源:网络素材

液晶屏有RGB TTL、LVDS、MIPI、HDMI接口,这些接口区别于信号的类型(种类),也区别于信号内容。
具体RGB TTL接口信号类型是TTL电平,信号的内容是RGB666或者RGB888还有行场同步和时钟;
LVDS接口信号类型是LVDS信号(低电压差分对),信号的内容是RGB数据还有行场同步和时钟;
MIPI DSI接口信号类型是LVDS信号,信号的内容是视频流数据和控制指令。

简单理解,LVDS 和MIPI的物理接线是一样的,都是5组差分对,但是传输的内容是不一样的,即软件的报文格式不一样。

各种接口对比如下图所示:

接口类型信号线极限速率最大速率抗干扰能力适用摄像头像素
PCB laypuit
MIPI CSI-2

串口

CLKP/N、DATAP/N

最大支持4-lane

一般2-lane可以搞定


Gbps低压差分信号,产生的干扰小,抗干扰能力也强支持800W以上
lvds接口耦合,走线必须差分等长
DVP

并口

PCLK、VSYNC、HSYNC

D[0:11]

支持8/10/12bit数据

PCLK极限96M左右PCLK最好控制在72M以下
最大500W
阻抗要求低
FPD-Link III LVDS    串口




阻抗要求高
GMSL串口

Gbps




阻抗要求高

DVP接口

DVP分为三个部分:输出总线;输入总线;电源总线;

41254e02e554efe705afa08bce65e3fd.png

>>输入总线介绍

    a>PWDN是camera的使能管脚,有两种配置方式,一种为standby,一种是normal work,设置为standby的时候,一切对camera的操作都是无效的,包括复位。所以在RESET之前,一定要将PWDN管脚设置为normal模式,否则RESET无效。

    b>RESET是camera的复位管脚,此方式为硬复位模式,camera的各个IO口恢复到出厂默认状态。只有在XCLK开启后,将RESET置为低,硬复位才有效,否则复位无效。

    c>XCLK是camera的工作时钟管脚,此管脚为BB提供camera的工作时钟。

    d>IIC是camera和BB通信的总线通道。

>>输出总线介绍

    a>data为camera的数据管脚。此数据脚可以输出的格式有YUV、RGB、JPEG等。

    b>VSYNC为camera的帧同步信号管脚。一个VYSNC信号结束表示一帧(即一个画面)的数据已经输出完毕。

    c>HSYNC为camera行同步信号管脚。一个HSYNC信号结束表示一行的数据已经输出完毕。

    d>PCLK为像素同步信号管脚。一个PCLK信号结束表示一个像素点的数据已经输出完毕。   

>>Power线介绍

    a>AVDD为camera的模拟电压。

    b>DOVDD为camera的GPIO口数字电压。

    c>DVDD为camera的核工作电压。

        DVP接口在信号完整性方面受限制,速率也受限制。500W还可以勉强用DVP,800W及以上都采用MIPI接口。

MIPI接口    

  MIPI(Mobile Industry Processor Interface)移动产业处理器接口是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,目的是把手机内部的接口如摄像头、显示屏接口、射频/基带接口等标准化,从而减少手机设计的复杂程度和增加设计灵活性。

        其优点是;更低功耗、更高数据传输率和更小的PCB占位空间,并且专门为移动设备进行的优化,因而更适合手机和智能平板的连接。

        MIPI CSI和DPI是MIPI标准的一种,因为MIPI在移动领域应用范围太广了,各种外围设备都可以用它来传输信息,所以,MIPI联盟给不同的外设接口定义了版本名,CSI是for Camera的,DPI是for Display的。而且这些标准不单包括物理层的时序定义,还包括上层的传输协议/数据处理协议和应用层协议。

        C-PHY:C-PHY主要时为了提高传输的带宽,C-PHY没有同步时钟,时钟时嵌套在数据中。其中物理层和D-PHY完全不同,线路上采用A/B/C三线系统等等。
        D-PHY:提供了对DSI (串行显示接口)和CSI(串行摄像头接口)在物理层上的定义,采用一个差分时钟和1-4对差分数据线来传输数据。D-PHY的物理层支持HS(High Speed)和LP(Low Power)两种工作模式。HS模式下采用低压差分信号,用于传输图像信号,数据传输采用DDR方式,即在时钟的上下边沿都有数据传输,数据传输速率为80M~2.5Gbps,功耗较高。LP模式下采用单端信号(LVCMOS信号),用于传输初始化控制信号,数据速率小于10Mbps,功耗较低。目前MIPI中运用的最多。

         lane:MIPI里面的基本信息传输单元。两块使用MIPI连接的芯片,中间使用差分信号对进行连接,收发端各有一个Lane模块,完成数据收发。有时我们经常说的几个lane传输数据,可理解成几对差分对传输数据。注意:lane并不是差分对,它是收发器里面的一个模块,它包括低功耗发射器(LP-TX),低功耗接收器(LP-RX),高速发射器(HS-TX),高速接收器(HS-RX),低功耗竞争检测器(LP-CD)。

工作模式

D- PHY的物理层支持HS(High Speed)和LP(Low Power)两种工作模式。全部数据通道都可以用于单向的高速传输,但只有第一个数据通道才可用于低速双向传输,

HS模式下采用低压差分信号,电平范围为100mv-300mv,功耗较大,但是可以传输很高的数据速率(数据速率为80M~1Gbps);在该模式下传输时,当差分线正端收到 1.2V 信号,负端收到 0V信号时,这时接收端识别为 1。反之为0。


LP 低功耗模式,用于传输控制指令,异步传输,信号线为单端,电平范围是0-1.2v,没有用时钟线,时钟是通过两个数据线异或而来的,速度只有10Mbps。在该模式下传输时,当正端接收到300m V,负端接收到100m V 时接收端识别为1,反之则识别为0.
89beb4a49481e2462286f35d71ccf72e.png

MIPI接口比DVP的接口信号线少,由于是低压差分信号,产生的干扰小,抗干扰能力也强。

两种模式的结合保证了MIPI总线在需要传输大量数据(如图像) 时可以高速传输,而在不需要大数据量传输时又能够减少功耗。

 MIPI CSI2的物理连接

  除地线外,MIPI CSI2一般会有1对I2C通信引脚,1对MIPI差分时钟引脚和1~4对MIPI差分数据信号引脚,如图所示。

cfede1645abcb27c3388083a8dfb0bac.png

       CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准。单线传输速度高达1Gb/s。

        MIPI CSI2的分层方法有好几种,根据MIPI联盟的规范,CSI2可分为5层,分别为:应用层、组包/解包层、底层协议层(Low Level Protocol)、通道管理层和物理层。

eb4bb01ca6db98ddcefa35cd5e4e6a07.png

详细的来说,链路的工作顺序如下:
        首先原始的图像数据会在应用层做相应的图像处理,包括白平衡、噪声去除、色彩还原等。
处理过后的数据进入组包层做数据分割和重组,再传给协议层。

        协议层根据数据类型产生包头,根据数据内容产生构成包尾的 校验序列,之后将包头、数据本身、包尾组合起来发送给通道管理模块。
        通道管理模块按照通道的选通情况,合理分配数据到每个通道,之后数据经过数模转换进入物理层传输,接收端在收到物理层的数据后,再按照之前的逆序解包出原始的图像数据。

MIPI-DSI接口

e3519030df1bdb98dccf091ae98e3765.png

LVDS接口

        LVDS(Low Voltage Differential Signaling):低电压差分信号,属于平衡传输信号。
这种技术的核心是采用极低的电压摆幅高速差动传输数据,LVDS的传输距离推荐的最高数据传输速率是655Mbps,而理论上可以达到1.923Gbps。

        由于电压信号幅度较低,而且采用恒流源模式驱动,故只产生极低的噪声,消耗非常小的功率,甚至不论频率高低功耗都几乎不变。此外,由于LVDS以差分方式传送数据,所以不易受共模噪音影响,属于平衡传输信号。

    LVDS传输原理:

569c1b1417ee3feebfdd17de16dfbb99.png

        LVDS的基本工作原理如上图所示。其源端驱动器由一个3.5mA的恒流源驱动一对差分信号线组成。接收端的接收器为高输入阻抗,所以几乎全部的驱动电流都流经100Ω的终端匹配电阻,并在接收器输入端产生约350mV的电压。当源端驱动状态反转变化时,流经匹配电阻的电流方向改变,于是在接收端产生高低逻辑状态的变化。即输出直流偏置为1.2V,输出差分摆幅为-350mV—+350mV。

7419e0d59e78b7af39e47175d1ecf6f4.png

        LVDS发送器将驱动板主控芯片输出的TTL电平并行RGB数据信号和控制信号转换成低电压串行LVDS信号,然后通过驱动板与液晶面板之间的柔性电缆(排线)将信号传送到液晶面板侧的LVDS接收器,LVDS接收器再将串行信号转换为TTL电平的并行信号,送往液晶屏时序控制与行列驱动电路。

        本质:并/串转换(SerDes),电平转换(RGB TTL / LVDS);以RGB666为例,采用并行接口往往需要22根线,而采用FPD-Link却只需要四对差分线(一对时钟,三对数据)

 LVDS接口分类

单路6位LVDS:采用单路方式传输,每个基色采用6位数据,共18位RGB数据;

双路6位LVDS:采用双路方式传输,每个基色采用6位数据,奇路数据为18位,偶路

                              数据为18位,共36位RGB数据;

单路8位LVDS:采用单路方式传输,每个基色采用8位数据,共24位RGB数据;

双路8位LVDS:采用双路方式传输,每个基色采用8位数据,奇路数据为24位,偶路

                              数据为24位,共48位RGB数据;
 

LVDS发送芯片介绍

典型之LVDS发送芯片分为四通道、五通道和十通道几种。

四通道LVDS发送芯片

下图所示为四通道LVDS发送芯片内部框图。包含了三个数据信号(其中包括RGB、数据使能DE、行同步信号HS、场同步信号VS)通道和一个时钟信号发送通道。

df88d9d9ada0eb478e84c60477c7bd0c.png

4通道LVDS发送芯片主要用于驱动6bit液晶面板。使用四通道LVDS发送芯片可以构成单路6bit LVDS接自电路和奇/偶双路6bit LVDS接口电路。

五通道LVDS发送芯片

   下图所示为五通道LVDS发送芯片(DS90C385)内部框图。包含了四个数据信号(其中包括RGB、数据使能DE、行同步信号HS、场同步信号VS)通道和一个时钟信号发送通道。

五通道LVDS发送芯片主要用于驱动8bit液晶面板。使用五通道LVDS发送芯片主要用来构成单路8bit LVDS接口电路和奇/偶双路8bitLVDS接口电路。

十通道LVDS发送芯片

   图4所示为十通道LVDS发送芯片(DS90C387)内部框图。包含了八个数据信号(其中包括RGB、数据使能DE、行同步信号HS、场同步信号VS)通道和两个时钟信号发送通道。

        十通道LVDS发送芯片主要用于驱动8bit液晶面板。使用十通道LVDS发送芯片主要用来构成奇/偶双路8bit LVDS位接口电路。

        在十通道LVDS发送芯片中,设置了两个时钟脉冲输出通道,这样做目的是可以更加灵活之适应不同类型之LVDS接收芯片。

 LVDS发送芯片的输入信号

        LVDS发送芯片的输入信号来自主控芯片,输入信号包含RGB数据信号、时钟信号和控制信号三大类。为了说明方便,将RGB信号以及数据选通DE和行场同步信号都算作数据信号。

输入数据信号

在供6bit液晶面板使用之四通道LVDS发送芯片中,共有十八个RGB信号输入引脚;一个显示数据使能信号DE(数据有效信号)输入引脚;一个行同步信号HS输入引脚;一个场同步信号VS输入引脚。也就是说,在四通道LYDS发送芯片中,共有二十一个数据信号输入引脚。

在供8bit液晶面板使用之五通道LVDS发送芯片中,共有二十四个RGB信号输入引脚;一个显示数据使能信号DE(数据有效信号)输入引脚;一个行同步信号HS输入引脚;一个场同步信号VS输入引脚;也就是说,在五通道LVDS发送芯片中,共有二十八个数据信号输入引脚。

应该注意的是,液晶面板的输入信号中都必须要有DE信号,但有的液晶面板只使用单一的DE信号而不使用行场同步信号。因此,应用于不同的液晶面板时,有的LVDS发送芯片可能只需输入DE信号,而有的需要同时输入DE和行场同步信号。

输入时钟信号

        即像素时钟信号,也称为数据移位时钟(在LVDS发送芯片中,将输入之并行RGB数据转换成串行数据时要使用移位寄存器)。像素时钟信号是传输数据和对数据信号进行读取之基准。

控制信号(POWER DOWN)

        当此信号有效时(一般为低电平时),将关闭LVDS发送芯片中时钟PLL锁相环电路之供电,停止IC之输出。

LVDS与MIPI的区别主要有两点:

1、LVDS接口只用于传输视频数据,MIPI DSI不仅能够传输视频数据,还能传输控制指令;

2、LVDS接口主要是将RGB TTL信号按照SPWG/JEIDA格式转换成LVDS信号进行传输,

MIPI DSI接口则按照特定的握手顺序和指令规则传输屏幕控制所需的视频数据和控制数据。

HDMI接口

(1)接口定义

  • a. High-Definition Multimedia Interface

  • b. 数字接口,同时传输视频和音频

  • c. 传输非压缩视频数据和压缩/非压缩的数字音频数据

(2)发展历史

  • a. 2002年4月,日立、松下、飞利浦、Silicon Image、sony、汤姆逊、东芝共7家公司成立了HDMI组织,开始制定新的专用于数字视频/音频传输标准。

  • b. 2002年12月,发布HDMI 1.0

  • c. 2005年8月,发布HDMI 1.2

  • d. 2006年6月,发布HDMI 1.3

  • e. 2009年11月,发布HDMI 1.4

  • f. 2013年9月,发布HDMI 2.0

HDMI Version1.01.11.21.31.42.0
Max TMDS Throughput1.65Gbps1.65Gbps1.65Gbps3.4Gbps3.4Gbps6Gbps
Max Audio Throughput36.86Mbps36.86Mbps36.86Mbps36.86Mbps36.86Mbps49.152Mbps
Max Color Depth24bit24bit24bit48bit48bit48bit
Max Resolution1920x1200@p601920x1200@p601920x1200@p602560x1600@p754096x2160@p304096x2160@p60

(3)HDMI特点

  • a. TMDS

    • Transition Minimized Differential Signal

    • 8bit~10bit直流平衡编码

    • 每个时钟周期传输10bit数据

  • b. EDID and DDC

    • 实现设备间只能连接

  • c. Transfer Video and Audio

    • 更低成本、连接更方便

  • d. HDCP

    • High-Bandwidth Digital Content Protection

2624662205af14a5301fdd1a7d578fbb.jpeg

(4)HDMI接口类型

66fec8f9d14b19220bc2aa728e463e90.jpeg

ff1445b7d884ce94929ba5d942cbfaf8.jpeg

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

<think>嗯,用户想了解如何在代码层提高WS2812 LED的传输速率。首先,我需要回忆一下WS2812的基本工作原理。WS2812是一种智能控制LED,每个灯珠都有一个控制芯片,通过单线归零码协议通信。数据传输速率通常是800kbps,对应0.8MHz,每个比特周期大约是1.25微秒。 用户提到的是在代码层面提升传输速率,所以可能需要优化微控制器的代码,比如缩短数据发送的时间间隔。但要注意,WS2812对时序要求严格,过快可能导致数据错误。需要确认硬件是否支持更高的速率,比如有些克隆芯片可能支持更高的频率,但原厂的可能不行。 接下来,考虑可能的优化方法。首先,直接调整时序参数,比如缩短高低电平的时间。例如,将0码和1码的脉冲宽度缩短,但必须保持在数据手册规定的范围内。这可能需要对微控制器的定时器或PWM模块进行精确配置。 然后是使用硬件加速。比如,利用SPI或DMA来发送数据,避免CPU的干预,提高效率。例如,将数据转换为SPI的MOSI信号,通过调整SPI时钟频率来提高传输速率。但需要计算SPI的速率是否匹配WS2812的时序要求,可能需要插入特定的间隔。 另外,考虑使用汇编语言或高度优化的代码来减少指令周期。比如,直接操作GPIO寄存器,使用位带操作或内联汇编,确保每个比特的切换尽可能快。这需要深入了解微控制器的架构和指令集。 还要注意数据传输的正确性。提高速率后,必须测试LED的反应,是否存在颜色错误或闪烁,可能需要调整时序容差或增加复位码的持续时间。此外,级联多个LED时,高速率可能导致信号衰减,可能需要硬件上的调整,如增加缓冲器。 用户可能的实际应用场景是什么?比如LED数量多,需要快速刷新,比如可穿戴设备或大型屏幕。这时候硬件和代码的双重优化都很重要。同时,需要确认使用的微控制器是否有足够的处理能力,比如STM32或ESP32这类高性能芯片更适合高速操作。 最后,总结可能的步骤:检查芯片是否支持更高速率,优化代码使用硬件外设,调整时序参数,测试稳定性。同时,提醒用户注意硬件限制和信号完整性问题。</think>在代码层面提高WS2812 LED的传输速率,需结合硬件特性与协议优化。以下是分步骤解析: --- ### 1. **理解WS2812基础时序** WS2812采用单线归零码协议,标准速率约800kbps(每位1.25μs): - **逻辑0**:高电平约0.4μs + 低电平约0.85μs - **逻辑1**:高电平约0.8μs + 低电平约0.45μs 若超出容差范围(±150ns),可能导致数据错位。 --- ### 2. **硬件加速方案** #### (a) 使用SPI+DMA模拟时序 - **原理**:将WS2812的0/1编码映射为SPI的8bit数据(如0xF8表示逻辑1,0xC0表示逻辑0),通过调整SPI时钟匹配目标速率。 - **步骤**: 1. 计算SPI频率:若目标速率为2Mbps(每位0.5μs),则SPI时钟需为 $f_{SPI} = \frac{8}{0.5μs} = 16\text{MHz}$。 2. 配置DMA自动传输数据,减少CPU占用。 - **示例代码(STM32)**: ```c // 设置SPI为16MHz, 8bit模式 hspi.Instance->CR1 = SPI_BAUDRATEPRESCALER_2; // 逻辑1: 0xF8 (11111000), 逻辑0: 0xC0 (11000000) uint8_t spi_data[24] = {0xF8, 0xC0, ...}; // 根据RGB值填充 HAL_SPI_Transmit_DMA(&hspi, spi_data, sizeof(spi_data)); ``` #### (b) 使用PWM+DMA - **原理**:通过PWM占空比生成高低电平,利用DMA自动切换占空比。 - **优化点**:使用更高分辨率定时器(如72MHz定时器),将时间精度提升至约14ns。 --- ### 3. **代码级优化技巧** #### (a) 汇编级位操作 - **适用场景**:无硬件外设时,通过GPIO直接翻转实现时序。 - **关键点**: - 使用寄存器级操作(如STM32的BSRR寄存器)代替HAL库函数。 - 内联汇编或编译器优化(`-O3`)减少指令周期。 - **示例代码**: ```c #define WS2812_PIN (GPIO_PIN_0) void send_bit(bool bit_val) { GPIOA->BSRR = WS2812_PIN; // 拉高 __asm__("nop; nop; nop;"); // 调整延时 if (!bit_val) GPIOA->BRR = WS2812_PIN; // 逻辑0提前拉低 __asm__("nop; nop; nop;"); GPIOA->BRR = WS2812_PIN; // 拉低 } ``` #### (b) 数据预编码 - **原理**:提前将RGB数据转换为时序缓冲,避免实时计算。 - **优化代码**: ```c uint8_t buffer[24*3]; // 每个LED 24bit void encode_byte(uint8_t data) { for (int i=7; i>=0; i--) { *buffer++ = (data & (1<<i)) ? 0xF8 : 0xC0; // SPI预编码 } } ``` --- ### 4. **极限速率测试与调优** - **步骤**: 1. 逐步缩短高低电平时间,测试LED能否稳定显示。 2. 使用示波器验证信号边沿是否陡峭,避免因硬件延迟导致畸变。 3. 插入复位码(RESET)时,确保低电平时间≥50μs(可压缩至30μs测试)。 --- ### 5. **注意事项** - **信号完整性**:速率超过1.6Mbps时,需增加终端电阻(如100Ω)或缩短LED间距。 - **供电稳定**:高速切换可能引起电源噪声,建议并联100nF电容。 - **芯片兼容性**:部分克隆芯片(如SK6812)支持更高速率,原厂WS2812B可能受限。 --- ### 总结 通过硬件外设(SPI/PWM+DMA)和代码优化(预编码、汇编加速),可将WS2812传输速率提升至1.6-2.4Mbps。最终速率取决于MCU性能、信号质量及LED芯片兼容性。建议结合示波器调试,逐步验证稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值