インターフェース・バス(有線)

HDMI / LVDS

映像出力インターフェース。

概要

HDMI(High-Definition Multimedia Interface)LVDS(Low Voltage Differential Signaling) は、どちらもデジタル映像・音声を伝送するインターフェースであるが、用途と普及場面が大きく異なる。

HDMI はリビングの AV 機器や PC モニターに広く使われる外部接続インターフェースであり、テレビ・プロジェクター・モニターへの映像出力を想定している。組み込み分野では Raspberry Pi やシングルボードコンピュータ(SBC)のディスプレイ出力として頻繁に登場する。

LVDS は液晶パネルやタッチスクリーンとマザーボードを直接接続するための基板間・機器内部向けインターフェースであり、産業用モニタ、車載ディスプレイ、医療機器の LCD 接続に広く採用されている。組み込み Linux 環境では SoC から直接 LVDS 信号を出力し、LCD パネルを駆動する構成が多い。

両者とも「どのように映像信号をエンコードして伝送するか」という点では TMDS(HDMI)や差動 LVDS 方式と技術的に異なるが、どちらも組み込み機器のヒューマンインターフェース(HMI)設計において重要な選択肢である。


歴史・背景

HDMI の歴史

HDMI は 2002 年に Hitachi、Matsushita(現 Panasonic)、Philips、Silicon Image、Sony、Thomson、Toshiba の 7 社によって策定された。DVI(Digital Visual Interface)をベースに、音声多重・著作権保護(HDCP)・Consumer Electronics Control(CEC)などの機能を追加したものである。

バージョン最大解像度・帯域
HDMI 1.020021080p、4.95 Gbps
HDMI 1.420094K@30Hz、10.2 Gbps、ARC 追加
HDMI 2.020134K@60Hz、18 Gbps
HDMI 2.120178K@60Hz / 4K@120Hz、48 Gbps、eARC

LVDS の歴史

LVDS(Low Voltage Differential Signaling)は 1994 年に ANSI/TIA-644 として標準化された汎用差動信号規格である。本来は汎用高速差動信号規格だが、液晶パネル接続用途に特化した FPD-Link(Flat Panel Display Link) として LVDS が広く使われるようになった。TI の「OpenLDI」規格や JEIDA/VESA のディスプレイパネル標準にも採用され、特に 2000〜2010 年代にノートPC・産業用モニタで主流となった。

その後、より高速な eDP(embedded DisplayPort)MIPI DSI の普及により、新設計での採用は減少しつつあるが、産業用・車載用の既存パネルを使い続けるシステムでは現在も現役である。


技術仕様

HDMI の信号構成

HDMI は TMDS(Transition Minimized Differential Signaling) という符号化方式を使用する。

HDMI コネクタ内訳(Type A / 19ピン):
  ・TMDS データ 0〜2(各差動ペア:3組)
  ・TMDS クロック(差動ペア:1組)
  ・DDC(I2C ベース:EDID 読み出し用)
  ・CEC(制御信号:1本)
  ・HPD(Hot Plug Detect:1本)
  ・電源(5V/50mA)
  ・GND

TMDS 符号化: 8 ビットデータを 10 ビットに変換(8b/10b 符号)し、DC バランスを保ちながら最小限の遷移で伝送する。

HDMI バージョンTMDS クロック帯域対応解像度
1.4340 MHz10.2 Gbps4K@24Hz、1080p@120Hz
2.0600 MHz18 Gbps4K@60Hz
2.11200 MHz48 Gbps8K@60Hz、4K@120Hz

LVDS の信号構成

LVDS は差動ペアで伝送する。ディスプレイ接続向けの FPD-Link では以下の構成が一般的である。

シングルチャネル LVDS(〜85MHz ピクセルクロック / WXGA 程度まで):

DATA0+/DATA0-  (LSBs of R,G,B + VSYNC,HSYNC,DE の一部)
DATA1+/DATA1-  (中位ビット)
DATA2+/DATA2-  (MSBs + 追加ビット)
CLK+/CLK-      (ピクセルクロック)

デュアルチャネル LVDS(〜170MHz / Full HD 対応):

偶数列 → チャネル A
奇数列 → チャネル B
(2本の LVDS チャネルで並列転送)

LVDS の各差動ペアは 100mV 程度の電圧振幅(LVCMOS の約 1/10)で動作するため、EMI が小さく低消費電力である。

eDP(embedded DisplayPort)

HDMI/LVDS の後継として近年普及しているのが eDP である。DisplayPort の内部接続向けサブセットであり、ノートPC のマザーボード〜液晶パネル間接続に広く使われる。組み込み SoC でも eDP を採用する製品が増えている。

規格帯域(合計)用途
eDP 1.217.28 Gbps(4レーン)FHD〜4K 対応
eDP 1.425.92 Gbps(4レーン)4K HDR 対応
eDP 1.577.4 Gbps(4レーン)8K 対応

動作原理

HDMI の認識フロー(Hot Plug Detection)

1. HDMI ケーブル接続 → HPD ピンが High に変化
2. ソース機器が DDC(I2C)経由でシンク機器の EDID を読み出す
   (EDID = Extended Display Identification Data:対応解像度・リフレッシュレート一覧)
3. ソースが EDID に基づいて最適な映像フォーマットを選択
4. TMDS で映像データの伝送開始
5. HDCP 認証(著作権保護が必要な場合)

LVDS の接続フロー

LVDS は認証や EDID のような仕組みを持たず、単純に差動信号を受け続ける設計である。パネルの解像度・タイミングはドライバソフトウェア(Linux の場合はデバイスツリーや DRM ドライバ)で設定する必要がある。

/* Linux DRM ドライバでのパネルタイミング設定例(概略) */
static const struct drm_display_mode panel_mode = {
    .clock      = 148500,   /* ピクセルクロック [kHz] */
    .hdisplay   = 1920,
    .hsync_start = 2008,
    .hsync_end   = 2052,
    .htotal      = 2200,
    .vdisplay   = 1080,
    .vsync_start = 1084,
    .vsync_end   = 1089,
    .vtotal      = 1125,
    .flags      = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
};

用途・ユースケース

Raspberry Pi の HDMI 出力

Raspberry Pi は HDMI ポート(Pi 4 はマイクロ HDMI × 2)を持ち、デスクトップ環境や映像プレーヤーの出力に使用される。組み込み用途では、デジタルサイネージや HMI パネルとして HDMI 接続のモニターを駆動するケースが多い。

# Raspberry Pi OS での解像度設定(/boot/config.txt)
hdmi_group=2      # CEA=1, DMT=2
hdmi_mode=82      # 1920x1080 60Hz
hdmi_force_hotplug=1  # HPD がなくても出力強制

産業用 HMI の LVDS ディスプレイ

産業用タッチパネル(7〜21 インチ LCD)の多くは LVDS インターフェースを採用している。i.MX6/8 系 SoC や Rockchip RK3568 など産業向け SoC は LVDS 出力ポートを内蔵しており、デバイスツリーで直接接続設定できる。

/* i.MX6 LVDS 設定例(デバイスツリー抜粋) */
&ldb {
    status = "okay";
    lvds-channel@0 {
        fsl,data-mapping = "spwg";
        fsl,data-width = <24>;
        status = "okay";
        display-timings {
            native-mode = <&timing0>;
            timing0: timing0 {
                clock-frequency = <65000000>;
                hactive = <1024>;
                vactive = <768>;
                hback-porch = <220>;
                hfront-porch = <40>;
                vback-porch = <21>;
                vfront-porch = <7>;
                hsync-len = <60>;
                vsync-len = <10>;
            };
        };
    };
};

車載インフォテインメント(IVI)システムでは、SoC から長距離(最大 15m)にわたって映像を伝送するために FPD-Link III(TI のシリアライザ規格、LVDS 拡張版)が使われる。CSI-2 と組み合わせてカメラ・ディスプレイ両方を 1 本のケーブルで双方向伝送する構成も可能である。

ヘッドレス組み込みシステムでの HDMI ダミー

ヘッドレス(モニターなし)で動作する組み込み Linux マシンでも、VNC やリモートデスクトップを正常に機能させるために HDMI ダミープラグを挿すことで GPU が有効化される場合がある。


実装・開発のポイント

Linux DRM/KMS フレームワーク

Linux における映像出力は DRM(Direct Rendering Manager)/KMS(Kernel Mode Setting) フレームワークで管理される。HDMI も LVDS も DRM サブシステム経由で制御され、アプリケーションは /dev/dri/card0 などを通じてアクセスする。

# 接続中のディスプレイ情報確認
modetest -M rockchip  # SoC 固有のドライバ名を指定

# コネクタ・エンコーダ・CRTC のリスト表示
drm_info

EDID のカスタム設定

外部モニターに EDID がない場合(LVDS パネルや HDMI → アダプタ変換)、ソフトウェアで EDID を提供する必要がある。

# カスタム EDID バイナリを指定(Raspberry Pi)
dtparam=edid_file=/boot/edid.dat

または Linux カーネルの drm.edid_firmware カーネルパラメータで EDID ファイルを指定する。

HDMI 音声出力(ALSA / PulseAudio)

組み込み Linux で HDMI 音声を使う場合は ALSA のデバイスを確認して設定する。

# HDMI 音声デバイスの確認
aplay -l
# card 1: vc4hdmi [vc4-hdmi], device 0: MAI PCM vc4-hdmi-hifi-0 [MAI PCM vc4-hdmi-hifi-0]

# 再生テスト
aplay -D plughw:1,0 /usr/share/sounds/alsa/Front_Left.wav

他技術との比較

項目HDMI 2.0LVDS(シングル)MIPI DSI(4レーン)eDP 1.4DisplayPort 1.4
最大帯域18 Gbps〜1 Gbps〜10 Gbps25.9 Gbps25.9 Gbps
接続距離〜5m〜30cm〜30cm〜1m〜2m
主用途外部モニター出力産業用 LCD 内蔵携帯・IoT 組み込みノートPC 内蔵PC モニター
音声多重対応非対応非対応非対応対応
著作権保護(HDCP)対応非対応非対応HDCP 2.2HDCP 2.2
SoC 直接出力対応(多くの SoC)対応(産業用 SoC)対応(ほぼすべての SoC)対応(増加中)一部対応
ホットプラグ検出対応非対応非対応対応対応

HDMI は外部モニター接続という点で抜群の互換性を持つが、長距離伝送や小型フォームファクタには不向きである。LVDS は低コストで信頼性が高く産業用途で根強い人気があるが、帯域に限界がある。新しい組み込みシステムの内部ディスプレイ接続には MIPI DSI または eDP が主流となりつつある。NVIDIA Jetson のような高性能組み込みプラットフォームでは HDMI・eDP・MIPI DSI を同時にサポートするものも多い。

関連用語

参考リンク