Display Serial Interface
最近のSoCにはDSI (Display Serial Interface)が外部LCD表示用に普通についています。また、FPGAでも作動出力を利用したIPが利用可能となっています。今回はこのDSIについて調べてみます。
物理特性
物理特性については、MIPI (Mobile Industry Processor Interface)のD-PHYで規格化されています。ハードウェアとしては、信号振幅が+/-0.2Vの差動出力となります。信号線には、クロック、レーンが存在します。したがって、信号本数はクロックx2, レーン(4x2)の10本ということになります。クロックはDDR(Double Data Rate)動作となります。従って、ビットレートの計算は次のようになります。
ビットレート=クロック周波数 * 2 * レーン数
伝送方法
転送方法はクロックに合わせてレーン上にデータを出力します。レーンは、最大4レーンまで増やすことができます。プロトコルには高速で通信するHSモード、低速で通信するLPモードの2つが用意されています。
HS (High Speed) モード
主にビデオ信号を出力するための高速転送モード。全てパケット化されて信号は出力されます。
LP (Low Power)モード
コマンドをやりとりするための低消費転送モード。レーン1でこの信号を送信します。
本ページでは、DSIを用いてどのようにディスプレイへ出力するのを主眼に置き、説明をしていきます。
Videoタイミング
DSIはその名称の通り、表示器へデータをシリアルで送信するためのインターフェースです。そのためにはビデオタイミングを理解する必要があります。ビデオタイミングで必要なパラメータは次のようになります。
水平領域:
Htotal
水平領域のトータル長です。1ラインのピクセル数を示します。
Hsync
水平領域の同期信号数、1ラインの同期信号数となります。
Hback
水平領域のバックポーチ(Horizontal Back Porch)のピクセル数を示します。
Hact
水平領域のアクティブピクセル数を示します。
Hfront
水平領域のフロントポーチ(Horizontal Front Porch)のピクセル数を示します。
垂直領域:
Vtotal
垂直領域のトータル長です。1フレームのライン数を示します。
Vsync
垂直領域の同期信号数、1フレームの同期信号ライン数となります。
Vback
垂直領域のバックポーチ(Vertical Back Porch)のライン数を示します。
Vact
垂直領域のアクティブライン数を示します。
Vfront
垂直領域のフロントポーチ(Vertical Front Porch)のライン数を示します。
1920x1080p, 60Hzの場合の各値:
水平領域:
Htotal: 2200, Hsync: 44, Hback: 148, Hact: 1920, Hfront: 88
垂直領域:
Vtotal: 1125, Vsync: 5, Vback: 36, Vact: 1080, Vfront: 4
リフレッシュレート: 60Hz
ピクセル周波数: 148.5MHz
ピクセル周波数の計算方法: Htotal * Vtotal * リフレッシュレート = 2200 * 1125 * 60 = 148.5M
DSIで必要になる情報
実際にDSIでビデオを出力する際に必要となる情報は次の通りです。
ピクセルクロック周波数:
前述したように、Htotal * Vtoal * リフレッシュレートとなります。1920 * 1080 , 60Hzの場合は、148.5MHzとなります。
ピクセルクロック周波数 = 2200 * 1125 * 60 = 148.5MHz
トータルデータレート:
必要な帯域幅を知るためにトータルデータレートを求めます。これは、ピクセルクロック周波数 * ピクセルサイズということになります。1920 * 1080, 60Hz, 24bppの場合は次のようになります。
トータルデータレート=148.5MHz * 24 = 3564M bit / Sec
レーン毎のデータレート:
レーン毎のデータレートは上記、トータルデータレートをレーン数で除したものとなります。
2レーンだった場合の値は次のようになります。
レーン毎のデータレート:3565M bit / 2 = 1782 M bit /Sec
ビットクロック:
ビットクロックの計算は上記レーン毎のデータレートを2で除したものとなります。これは、DSIのクロックがDDR(Dobule Data Rate)、データの取り込みを立ち上がりエッジ、立ち下がりエッジの両方でサンプルすることからです。
ビットクロック: 1782 M bit / 2 = 891 M bit / Sec