HDMI インテル® Arria 10 FPGA IPデザイン例のユーザーガイド

ID 683156
日付 5/12/2021
Public
ドキュメント目次

4.2. HDMIを介したHDCPのデザイン例のアーキテクチャー

HDCPの機能は、HDMIまたは他のHDCPで保護されているデジタル・インターフェイスを介して接続されるデバイス間でのデータの転送時に、データを保護します。
HDCPで保護されるシステムには、3つのタイプのデバイスが含まれます。
  • ソース (TX)
  • シンク (RX)
  • リピーター

このデザイン例は、リピーターデバイス内のHDCPシステムを示しており、データを受け入れ複合化し、その後再度データを暗号化して、最後にデータを再送します。リピーターには、HDMIの入力と出力があります。FIFOバッファーをインスタンス化し、HDMIのシンクとソース間で直接HDMIビデオストリームのパススルーを行います。また、いくつかの信号処理を行うことができます。それには、FIFOバッファーをVideo and Image Processing (VIP) Suite IPコアに置き換えることで、ビデオをより解像度の高い形式に変換することなどが含まれます。

図 29. HDMIを介したHDCPのデザイン例のブロック図

次のデザイン例のアーキテクチャーに関する説明は、HDMIを介したHDCPのデザイン例のブロック図に対応するものです。SUPPORT FRL = 1またはSUPPORT HDCP KEY MANAGEMENT = 1の場合、デザイン例の階層は 図 29 とはわずかに異なりますが、基礎となるHDCPの機能は同じです。

  1. HDCP1xおよびHDCP2xはIPであり、HDMI Intel® FPGA IPのパラメーター・エディターを介して利用することができます。HDMI IPをパラメーター・エディターでコンフィグレーションすると、HDCP1xまたはHDCP2xの一方、もしくは両方のIPをサブシステムの一部として有効にして含めることができます。両方のHDCP IPが有効になっている場合、HDMI IPはカスケードトポロジーでコンフィグレーションされ、HDCP2x IPとHDCP1x IPは連続して接続されます。
    • HDMI TXのHDCP出力インターフェイスは、暗号化されていないオーディオ・ビデオ・データを送信します。
    • 暗号化されていないデータはアクティブなHDCPブロックによって暗号化され、HDCP入力インターフェイスを介してHDMI TXに戻され、リンクを介して送信されます。
    • 認証マスター・コントローラーとしてのCPUサブシステムは、いかなる場合でもHDCP TX IPの一方のみがアクティブであり、別のIPはパッシブであることを保証します。
    • 同様に、HDCP RXもまた、外部HDCP TXからリンクを介して受信したデータを複合化します。
  2. Digital Content Protection (DCP) 発行のプロダクション・キーを使用して、HDCP IPをプログラミングする必要があります。次のキーをロードします。
    表 52.  DCP発行のプロダクション・キー
    HDCP TX/RX キー
    HDCP2x TX 16バイト: グローバル定数 (lc128)
    RX
    • 16バイト (TXと同じ): グローバル定数 (lc128)
    • 320バイト: RSA秘密鍵 (kprivrx)
    • 522バイト: RSA公開鍵証明書 (certrx)
    HDCP1x TX
    • 5バイト: TX鍵選択ベクトル (Aksv)
    • 280バイト: TX秘密デバイス鍵 (Akeys)
    RX
    • 5バイト: RX鍵選択ベクトル (Bksv)
    • 280バイト: RX秘密デバイス鍵 (Bkeys)

    デザイン例では、シンプル・デュアルポート、デュアルクロック同期RAMとしてキーメモリーを実装します。HDCP2x TXなどの小さな鍵長の場合、IPは通常のロジックのレジスターを使用してキーメモリーを実装します。

    注: インテルでは、いかなる場合においても、デザイン例でHDCPのプロダクション・キーまたはインテル FPGA IPを提供することはありません。HDCP IPまたはデザイン例を使用するには、HDCPの利用者となり、Digital Content Protection LLC (DCP) から直接プロダクション・キーを取得する必要があります。

    デザイン例を実行するには、キー・メモリー・ファイルをコンパイル時に編集してプロダクション・キーを含める、もしくはロジックブロックを実装してランタイムに外部ストレージデバイスからプロダクション・キーを安全に読み出し、それらをキーメモリーに書き込む必要があります。

  3. HDCP2x IPに実装されている暗号化機能では、最大200MHzの周波数のクロックを使用することができます。このクロックの周波数により、HDCP2xの認証動作の速度が決まります。Nios IIプロセッサーに使用される100MHzのクロックを共有することもできますが、認証のレイテンシーは200MHzのクロックを使用している場合に比べて2倍になります。
  4. HDCP TXとHDCP RX間でやり取りする必要がある値は、HDCPで保護されているインターフェイスのHDMI DDCインターフェイス (I2Cシリアル・インターフェイス) を介して通信されます。HDCP RXでは、サポートするリンクごとにI2Cバスのロジカルデバイスを提供する必要があります。I2Cスレーブは、デバイスアドレス0x74でHDCPポートに複製されます。これは、HDCP2x RX IPとHDCP1x RX IPのHDCPレジスターポート (Avalon-MM) を駆動します。
  5. HDMI TXは、I2Cマスターを使用してEDIDをRXから読み出し、HDMI 2.0の動作に必要なSCDCデータをRXに転送します。また、Nios IIプロセッサーによって駆動される同じI2Cマスターを使用し、HDCPメッセージをTXとRX間で転送します。I2Cマスターは、CPUサブシステムに組み込まれています。
  6. Nios IIプロセッサーは認証プロトコルでマスターとして機能し、HDCP2xおよびHDCP1xの両方のTX IPのコントロールおよびステータスレジスター (Avalon-MM) を駆動します。 ソフトウェア・ドライバーは、認証プロトコルのステートマシンを実装します。これには証明書の署名検証、マスター鍵の交換、位置の確認、セッション鍵の交換、ペアリング、リンクの整合性チェック (HDCP1x)、リピーターでの認証 (トポロジー情報の伝播、ストリーム管理情報の伝播など) が含まれます。ソフトウェア・ドライバーは、認証プロトコルで必要な暗号化機能を実装しません。代わりに、HDCP IPハードウェアですべての暗号化機能を実装し、機密値にアクセスできないようにします。
  7. 真のリピーターのデモンストレーションでは、トポロジー情報をアップストリームに伝播する必要があります。その際に、Nios IIプロセッサーは、HDCP2xおよびHDCP1xの両方のRX IPのリピーター・メッセージ・ポート (Avalon-MM) を駆動します。Nios IIプロセッサーは、接続しているダウンストリームがHDCP対応ではないことを検出した場合、またはダウンストリームの接続がない場合に、RXのREPEATERビットを0にクリアします。ダウンストリームの接続がない場合は、RXシステムはリピーターではなくエンドポイントのレシーバーになります。逆に、ダウンストリームがHDCPに対応していることを検出すると、Nios IIプロセッサーはRXのREPEATERビットを1に設定します。