【摘要】 我國首部具有自主知識產權的數字接口內容保護行業標準——《數字接口內容保護系統技術規范》(Unified Content Protection System,簡稱UCPS標準),已由國家工業和信息化部頒布,并于2010年3月1日正式實施。UCPS標準是中國消費電子行業第一個自主知識產權的內容保護標準,也是第一個以企業為主導的自主技術標準。上海華虹集成電路有限責任公司(簡稱華虹設計)是UCPS論壇聯盟成員和聯盟指定的芯片設計單位,華虹設計通過自身的刻苦研究,開發了全球首款支持UCPS標準、符合HDMI 1.3標準的發送器SHC3201。
由于目前還沒有帶UCPS功能的HDMI接收器,為了驗證UCPS標準的可行性,同時驗證SHC3201的UCPS功能,我們通過一種特殊的方法來完成這個實驗。在發送端采用SHC3201作為UCPS 發送器。而在接收端,采用一個標準的不帶UCPS功能的HDMI接收器和一塊FPGA板和一塊SHC3201發送器共同完成。其中標準的HDMI接收器用來接收HDMI線上的數據,將HDMI線上高速的TMDS差分信號轉換為普通視頻數據;FPGA板主要實現UCPS 實時解密,同時在FPGA內部有一個MCU, 用來完成與UCPS設備認證和消息交互;SHC3201用來發送視頻數據到DTV顯示。同時在發送端和接收端都有一個MCU作為主控,用來控制整個系統的正常工作。
1 UCPS工作原理

圖一:UCPS內容流向示意圖

圖二:UCPS HDMI通信架構示意圖
識別管理單元(簡稱為IMU)為一個獨立的軟件或者是硬件模塊,承擔內部認證、IMU間雙向認證、信息收集以及系統完整性維護的功能。IMU與HDMI硬件接口通過I2C通道連接。發送端IMU與接收端IMU通過HDMI接口的DDC通道進行數據交互。IMU模塊由UCPS組織統一開發后提供給接口芯片廠商。
圖一所示,系統上電后,IMU首先與設備接口進行認證,之后是設備接口間的認證,最后是IMU的之間的認證。以上三種認證通過后,發送端開始對被保護的內容進行加密并發送,而接收端則開始接收并解密還原被保護內容。
圖二 是UCPS 在HDMI 系統中的具體通信示意圖。IMU與設備間的通信認證是通過I2C 接口,設備間的通信認證是通過HDMI 接口上DDC總線完成,兩個IMU的通信認證則需要通過 I2C 和DDC 兩個接口完成。
UCPS協議主要包括以下內容:
1) 設備認證:包括IMU與設備接口間的認證,設備接口間的認證和IMU之間的認證。
2) 協議消息交互機制:整個設備的認證,通過一套完整的消息機制完成。
3) 密鑰機制和安全傳輸: 包括密鑰激活和對受保護內容加密傳輸。
4) 系統信息收集和完整性維護:包括公鑰吊銷,IMU 有效性驗證與更新。
2 SHC3201芯片功能介紹:
SHC3201 是上海華虹設計公司開發的全球首款支持UCPS標準、符合HDMI 1.3標準的發送器。SHC3201 HDMI發送器主要功能特征包括
1) 支持UCPS1.0和HDCP1.2。
2) 225 MHz HDMI v1.3支持36bits深色(Deep Color)應用。
3) 在80MHz時功耗僅100mW左右,非常適用便攜式多媒體終端;
4) 待機功耗極低(小于30μA)。
5) 顯示數據通道(DDC)支持。
6) 支持S/PDIF和8通道I2S音頻記錄格式并且以192kHz速率發送立體聲或7.1通道環繞聲。
3 UCPS驗證具體實現方法:

圖三:UCSP 驗證系統
圖三所示,發送端系統工作方法:DVD 的視頻數據經HDMI線到達HDMI 接收器(無UCPS 功能的HDMI 接收器),之后經數據線到達SHC3201。SHC3201 在通過UCPS驗證后,將加密視頻數據,并將加密后的數據經過HDMI 線發送出去。
接收端系統工作方法:由于現還沒有UCPS的接收器,所以采用一種組合方式來實現UCPS接收功能。首先由一個HDMI接收器(無UCPS功能的HDMI接收器)接收SHC3201發送過來的加密視頻數據,再將視頻數據送入FPGA中,FPGA板只做UCPS解密操作,FPGA解密后將視頻數據送入SHC3201(此處shc3201只是一個HDMI 發送器,無UCPS功能)。SHC3201再將數據通過HDMI 線送到DTV。整個系統工作結束。
4 UCPS 認證實現方法:
如圖三所示,在進行設備認證的過程中,在發送端,所有的UCPS認證工作,加密的啟動,都是由SHC3201內部的MCU發起,固件直接固化到SHC3201內部ROM中。在接收系統中的FPGA板上也有一個MCU。在這兩個MCU將用來完成UCPS的認證消息交互工作,加解密的控制。另外在發送系統和接收系統也各有一個MCU,用來作為整個系統的主控,包括HDMI 接收器和SHC3201的初始化,驅動HDMI接收器和SHC3201正常工作。需要說明的是,在此套方案中,發送端的SHC3201內部MCU 通過DDC直接與接收端的FPGA 板內的MCU通信。在接收端FPGA板上的RAM掛接在DDC總線上,發送端SHC3201內部MCU通過DDC訪問它,而接收端FPGA中的MCU通過并行總線直接訪問它。在此RAM中按照UCPS協議標準定如下寄存器。
在接收端FPGA板上增加兩個寄存器,可命名為:HDMI_TX_STATUS和HDMI_RX_STATUS 。增加一個數據緩存器,緩存器大小為32字節。增加的寄存器和緩存器都要掛接在DDC 總線上,讓發射端SHC3201可以通過DDC進行讀寫操作,同時接收端FPGA內部的MCU也可讀寫即可。

圖四
Bit0: HDMI發射端通過DDC讀完數據標志
Bit1: HDMI 發射端通過DDC寫完數據標志
Bit2: HDMI忙/閑標識 HDMI 發射端是否正在寫DDC總線
圖四在接收端定義寄存器和通信標志位,發射端可讀寫,接收端只能讀

圖五
Bit0: HDMI接收端通過DDC讀完數據標志
Bit1: HDMI 接收端通過DDC寫完數據標志
Bit2: HDMI忙/閑標識 HDMI 接收端是否正在寫數據到緩存器
圖五在接收端定義寄存器和通信標志位,接收端可讀寫,發射端只能讀。
5 HDMI發射端SHC3201固件設計方法:
1):發射端主控器通過DDC 寫接收端HDMI_TX_STATUS 為0x1。
2):發射端主控器通過DDC 輪詢接收端的兩個標志寄存器。
3):如果發射端要發送數據或消息到接收端,先查看HDMI_RX_STATUS為0x1,則開
始準備發送。否則到第八步。
4):發射端寫HDMI_TX_STATUS 為0x04。
5):發射端將數據或消息通過DDC 寫入接收端的緩存器中。
6):發射端寫 HDMI_TX_STATUS為0x02。
7):發射端通過DDC 開始輪詢HDMI_RX_STATUS值,如為0x1,則表示接收端
已將數據取出,回到第1步。
8):發射端接收數據,當發現HDMI_RX_STATUS值為0x02時,表示HDMI 接收端已將數據準備好了,發射端寫HDMI_TX_STATUS 為0X04, 并開始通過DDC 讀取接收端緩存器中的數據。返回第一步。
6 HDMI接收端軟件設計方法:
1): 接收端寫HDMI_RX_STATUS 為0x1。
2): 接收端主控器通過輪詢接收端的兩個標志寄存器。
3): 如果接收端要發送數據或消息到發射端,先查看HDMI_TX_STATUS的值為0x1時,則開始準備發送。否則到第八步。
4): 接收端寫HDMI_RX_STATUS 為0x04。
5): 接收端將數據或消息寫入接收端的緩存器中。
6): 接收端寫 HDMI_RX_STATUS 的值為0x02。
7): 接收端開始輪詢HDMI_TX_STATUS值,如為1,則表示發射端已將數據取出,回到第一步。
8):接收端接收數據,當發現HDMI_TX_STATUS值為0x2時,表示HDMI 發射端已經通過DDC把數據寫入了接收端的緩存器。接收端開始讀取緩存器的數據, 讀完后返回第一步。
7 討論
上海華虹的SHC3201,是第一顆帶有UCPS功能的HDMI發送器,因為現沒有相應的帶有UCPS功能的HDMI接收器,為了驗證和測試UCPS完整功能,我們在實驗室采用了上述方法。通過這個方法,在沒有帶UCPS功能的HDMI接收器的環境下,我們成功地實現了UCPS協議驗證。可以實現UCPS的設備認證,UCSP加密和解密的功能測試。并作為一個完成系統通過相關部門驗收。在此系統中,我們通過軟硬的方法,成功驗證了UCPS協議所需要的設備認證功能,發送與接收通信機制功能,UCPS實時加密和實時解密功能。 同時因為現相關標準組織還沒有開發出相應的IMU模塊,所以與IMU相關的認證功能暫時沒有驗證。
另外要說明的是在這套驗證系統中,接收端用的是一個標準的HDMI接收器作為數據轉換,系統無法實時傳送UCPS加密信令(HDMI接收器不能識別此信令)。為了避免在加密狀態發生變化時,HDMI發送端和HDMI接收端不同步,我們定義在消隱期間,不發送任何有效數據,包括音頻或者視頻。而音頻數據是穿插在消隱期間發送的,目前這種方法,不能傳音頻數據。發送端和接收端的加解密狀態同步,雙方是通過DDC通道,通過傳遞消息來完成的。 |