作者:劉玉兵,官志勇,湯曉嵐,趙懿海,葉宏偉 上海華虹集成電路有限責(zé)任公司 中國首部具有自主知識(shí)產(chǎn)權(quán)的數(shù)字接口內(nèi)容保護(hù)行業(yè)標(biāo)準(zhǔn)——《數(shù)字接口內(nèi)容保護(hù)系統(tǒng)技術(shù)規(guī)范》(簡稱UCPS標(biāo)準(zhǔn)),已由國家工業(yè)和信息化部頒布,并于2010年3月1日正式實(shí)施。UCPS標(biāo)準(zhǔn)是中國消費(fèi)電子行業(yè)第一個(gè)自主知識(shí)產(chǎn)權(quán)的內(nèi)容保護(hù)標(biāo)準(zhǔn),也是第一個(gè)以企業(yè)為主導(dǎo)的自主技術(shù)標(biāo)準(zhǔn)。上海華虹集成電路有限公司(簡稱華虹設(shè)計(jì))是UCPS論壇聯(lián)盟成員和聯(lián)盟指定的芯片設(shè)計(jì)單位,本文介紹該公司開發(fā)的全球首款支持UCPS標(biāo)準(zhǔn)、符合HDMI1.3標(biāo)準(zhǔn)的發(fā)送器SHC3201,并探討UCPS協(xié)議與HDMI的驗(yàn)證系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。 由于目前還沒有帶UCPS功能的HDMI接收器,為了驗(yàn)證UCPS標(biāo)準(zhǔn)的可行性,同時(shí)驗(yàn)證SHC3201的UCPS功能,我們通過一種特殊的方法來完成這個(gè)實(shí)驗(yàn)。在發(fā)送端采用SHC3201作為UCPS發(fā)送器。而在接收端,采用一個(gè)標(biāo)準(zhǔn)的不帶UCPS功能的HDMI接收器和一塊FPGA板和一塊SHC3201發(fā)送器共同完成。其中標(biāo)準(zhǔn)的HDMI接收器用來接收HDMI線上的數(shù)據(jù),將HDMI線上高速的TMDS差分信號(hào)轉(zhuǎn)換為普通視頻數(shù)據(jù);FPGA板主要實(shí)現(xiàn)UCPS實(shí)時(shí)解密,同時(shí)在FPGA內(nèi)部有一個(gè)MCU,用來完成與UCPS設(shè)備認(rèn)證和消息交互;SHC3201用來發(fā)送視頻數(shù)據(jù)到DTV顯示。同時(shí)在發(fā)送端和接收端都有一個(gè)MCU作為主控,用來控制整個(gè)系統(tǒng)的正常工作。 UCPS工作原理 識(shí)別管理單元(簡稱為IMU)為一個(gè)獨(dú)立的軟件或者是硬件模塊,承擔(dān)內(nèi)部認(rèn)證、IMU間雙向認(rèn)證、信息收集以及系統(tǒng)完整性維護(hù)的功能。IMU與HDMI硬件接口通過I2C通道連接。發(fā)送端IMU與接收端IMU通過HDMI接口的DDC通道進(jìn)行數(shù)據(jù)交互。IMU模塊由UCPS組織統(tǒng)一開發(fā)后提供給接口芯片廠商。 圖1所示,系統(tǒng)上電后,IMU首先與設(shè)備接口進(jìn)行認(rèn)證,之后是設(shè)備接口間的認(rèn)證,最后是IMU的之間的認(rèn)證。以上三種認(rèn)證通過后,發(fā)送端開始對(duì)被保護(hù)的內(nèi)容進(jìn)行加密并發(fā)送,而接收端則開始接收并解密還原被保護(hù)內(nèi)容。 圖1:UCPS內(nèi)容流向示意圖。 圖2是UCPS在HDMI系統(tǒng)中的具體通信示意圖。IMU與設(shè)備間的通信認(rèn)證是通過I2C接口,設(shè)備間的通信認(rèn)證是通過HDMI接口上DDC總線完成,兩個(gè)IMU的通信認(rèn)證則需要通過I2C和DDC兩個(gè)接口完成。 圖2:UCPS HDMI通信架構(gòu)示意圖。 UCPS協(xié)議主要包括以下內(nèi)容: 1) 設(shè)備認(rèn)證:包括IMU與設(shè)備接口間的認(rèn)證,設(shè)備接口間的認(rèn)證和IMU之間的認(rèn)證。 2) 協(xié)議消息交互機(jī)制:整個(gè)設(shè)備的認(rèn)證,通過一套完整的消息機(jī)制完成。 3) 密鑰機(jī)制和安全傳輸:包括密鑰激活和對(duì)受保護(hù)內(nèi)容加密傳輸。 4) 系統(tǒng)信息收集和完整性維護(hù):包括公鑰吊銷,IMU有效性驗(yàn)證與更新。 2SHC3201芯片功能介紹: SHC3201是上海華虹設(shè)計(jì)公司開發(fā)的全球首款支持UCPS標(biāo)準(zhǔn)、符合HDMI1.3標(biāo)準(zhǔn)的發(fā)送器。SHC3201HDMI發(fā)送器主要功能特征包括 1) 支持UCPS1.0和HDCP1.2; 2) 225MHzHDMIv1.3支持36bits深色(DeepColor)應(yīng)用; 3) 在80MHz時(shí)功耗僅100mW左右,非常適用便攜式多媒體終端; 4) 待機(jī)功耗極低(小于30μA); 5) 顯示數(shù)據(jù)通道(DDC)支持; 6) 支持S/PDIF和8通道I2S音頻記錄格式并且以192kHz速率發(fā)送立體聲或7.1通道環(huán)繞聲。 UCPS驗(yàn)證具體實(shí)現(xiàn)方法 圖3所示,發(fā)送端系統(tǒng)工作方法:DVD的視頻數(shù)據(jù)經(jīng)HDMI線到達(dá)HDMI接收器(無UCPS功能的HDMI接收器),之后經(jīng)數(shù)據(jù)線到達(dá)SHC3201。SHC3201在通過UCPS驗(yàn)證后,將加密視頻數(shù)據(jù),并將加密后的數(shù)據(jù)經(jīng)過HDMI線發(fā)送出去。 圖3:UCSP驗(yàn)證系統(tǒng)。 接收端系統(tǒng)工作方法:由于現(xiàn)還沒有UCPS的接收器,所以采用一種組合方式來實(shí)現(xiàn)UCPS接收功能。首先由一個(gè)HDMI接收器(無UCPS功能的HDMI接收器)接收SHC3201發(fā)送過來的加密視頻數(shù)據(jù),再將視頻數(shù)據(jù)送入FPGA中,F(xiàn)PGA板只做UCPS解密操作,F(xiàn)PGA解密后將視頻數(shù)據(jù)送入SHC3201(此處shc3201只是一個(gè)HDMI發(fā)送器,無UCPS功能)。SHC3201再將數(shù)據(jù)通過HDMI線送到DTV。整個(gè)系統(tǒng)工作結(jié)束。 如圖3所示,在進(jìn)行設(shè)備認(rèn)證的過程中,在發(fā)送端,所有的UCPS認(rèn)證工作,加密的啟動(dòng),都是由SHC3201內(nèi)部的MCU發(fā)起,固件直接固化到SHC3201內(nèi)部ROM中。在接收系統(tǒng)中的FPGA板上也有一個(gè)MCU。在這兩個(gè)MCU將用來完成UCPS的認(rèn)證消息交互工作,加解密的控制。另外在發(fā)送系統(tǒng)和接收系統(tǒng)也各有一個(gè)MCU,用來作為整個(gè)系統(tǒng)的主控,包括HDMI接收器和SHC3201的初始化,驅(qū)動(dòng)HDMI接收器和SHC3201正常工作。需要說明的是,在此套方案中,發(fā)送端的SHC3201內(nèi)部MCU通過DDC直接與接收端的FPGA板內(nèi)的MCU通信。在接收端FPGA板上的RAM掛接在DDC總線上,發(fā)送端SHC3201內(nèi)部MCU通過DDC訪問它,而接收端FPGA中的MCU通過并行總線直接訪問它。在此RAM中按照UCPS協(xié)議標(biāo)準(zhǔn)定如下寄存器。 在接收端FPGA板上增加兩個(gè)寄存器,可命名為:HDMI_TX_STATUS和HDMI_RX_STATUS。增加一個(gè)數(shù)據(jù)緩存器,緩存器大小為32字節(jié)。增加的寄存器和緩存器都要掛接在DDC總線上,讓發(fā)射端SHC3201可以通過DDC進(jìn)行讀寫操作,同時(shí)接收端FPGA內(nèi)部的MCU也可讀寫即可。 圖4 Bit0:HDMI發(fā)射端通過DDC讀完數(shù)據(jù)標(biāo)志 Bit1:HDMI發(fā)射端通過DDC寫完數(shù)據(jù)標(biāo)志 Bit2:HDMI忙/閑標(biāo)識(shí)HDMI發(fā)射端是否正在寫DDC總線 上圖在接收端定義寄存器和通信標(biāo)志位,發(fā)射端可讀寫,接收端只能讀 圖5 Bit0:HDMI接收端通過DDC讀完數(shù)據(jù)標(biāo)志 Bit1:HDMI接收端通過DDC寫完數(shù)據(jù)標(biāo)志 Bit2:HDMI忙/閑標(biāo)識(shí)HDMI接收端是否正在寫數(shù)據(jù)到緩存器 上圖在接收端定義寄存器和通信標(biāo)志位,接收端可讀寫,發(fā)射端只能讀。 HDMI發(fā)射端SHC3201固件設(shè)計(jì)方法 1)發(fā)射端主控器通過DDC寫接收端HDMI_TX_STATUS為0x1; 2)發(fā)射端主控器通過DDC輪詢接收端的兩個(gè)標(biāo)志寄存器; 3)如果發(fā)射端要發(fā)送數(shù)據(jù)或消息到接收端,先查看HDMI_RX_STATUS為0x1,則開始準(zhǔn)備發(fā)送。否則到第八步; 4)發(fā)射端寫HDMI_TX_STATUS為0x04; 5)發(fā)射端將數(shù)據(jù)或消息通過DDC寫入接收端的緩存器中; 6)發(fā)射端寫HDMI_TX_STATUS為0x02; 7)發(fā)射端通過DDC開始輪詢HDMI_RX_STATUS值,如為0x1,則表示接收端已將數(shù)據(jù)取出,回到第1步; 8)發(fā)射端接收數(shù)據(jù),當(dāng)發(fā)現(xiàn)HDMI_RX_STATUS值為0x02時(shí),表示HDMI接收端已將數(shù)據(jù)準(zhǔn)備好了,發(fā)射端寫HDMI_TX_STATUS為0X04,并開始通過DDC讀取接收端緩存器中的數(shù)據(jù)。返回第一步。 6HDMI接收端軟件設(shè)計(jì)方法: 1)接收端寫HDMI_RX_STATUS為0x1; 2)接收端主控器通過輪詢接收端的兩個(gè)標(biāo)志寄存器; 3)如果接收端要發(fā)送數(shù)據(jù)或消息到發(fā)射端,先查看HDMI_TX_STATUS的值為0x1時(shí),則開始準(zhǔn)備發(fā)送;否則到第八步; 4)接收端寫HDMI_RX_STATUS為0x04; 5)接收端將數(shù)據(jù)或消息寫入接收端的緩存器中; 6)接收端寫HDMI_RX_STATUS的值為0x02; 7)接收端開始輪詢HDMI_TX_STATUS值,如為1,則表示發(fā)射端已將數(shù)據(jù)取出,回到第一步; 8)接收端接收數(shù)據(jù),當(dāng)發(fā)現(xiàn)HDMI_TX_STATUS值為0x2時(shí),表示HDMI發(fā)射端已經(jīng)通過DDC把數(shù)據(jù)寫入了接收端的緩存器。接收端開始讀取緩存器的數(shù)據(jù),讀完后返回第一步。 本文小結(jié) SHC3201是第一顆帶有UCPS功能的HDMI發(fā)送器,因?yàn)楝F(xiàn)沒有相應(yīng)的帶有UCPS功能的HDMI接收器,為了驗(yàn)證和測試UCPS完整功能,我們?cè)趯?shí)驗(yàn)室采用了上述方法。通過這個(gè)方法,在沒有帶UCPS功能的HDMI接收器的環(huán)境下,我們成功地實(shí)現(xiàn)了UCPS協(xié)議驗(yàn)證?梢詫(shí)現(xiàn)UCPS的設(shè)備認(rèn)證,UCSP加密和解密的功能測試。并作為一個(gè)完成系統(tǒng)通過相關(guān)部門驗(yàn)收。在此系統(tǒng)中,我們通過軟硬的方法,成功驗(yàn)證了UCPS協(xié)議所需要的設(shè)備認(rèn)證功能,發(fā)送與接收通信機(jī)制功能,UCPS實(shí)時(shí)加密和實(shí)時(shí)解密功能。同時(shí)因?yàn)楝F(xiàn)相關(guān)標(biāo)準(zhǔn)組織還沒有開發(fā)出相應(yīng)的IMU模塊,所以與IMU相關(guān)的認(rèn)證功能暫時(shí)沒有驗(yàn)證。 另外要說明的是在這套驗(yàn)證系統(tǒng)中,接收端用的是一個(gè)標(biāo)準(zhǔn)的HDMI接收器作為數(shù)據(jù)轉(zhuǎn)換,系統(tǒng)無法實(shí)時(shí)傳送UCPS加密信令(HDMI接收器不能識(shí)別此信令)。為了避免在加密狀態(tài)發(fā)生變化時(shí),HDMI發(fā)送端和HDMI接收端不同步,我們定義在消隱期間,不發(fā)送任何有效數(shù)據(jù),包括音頻或者視頻。而音頻數(shù)據(jù)是穿插在消隱期間發(fā)送的,目前這種方法,不能傳音頻數(shù)據(jù)。發(fā)送端和接收端的加解密狀態(tài)同步,雙方是通過DDC通道,通過傳遞消息來完成的! |