UCPS協(xié)議與HDMI的驗證系統設計與實(shí)現
如圖3所示,在進(jìn)行設備認證的過(guò)程中,在發(fā)送端,所有的UCPS認證工作,加密的啟動(dòng),都是由SHC3201內部的MCU發(fā)起,固件直接固化到SHC3201內部ROM中。在接收系統中的FPGA板上也有一個(gè)MCU.在這兩個(gè)MCU將用來(lái)完成UCPS的認證消息交互工作,加解密的控制。另外在發(fā)送系統和接收系統也各有一個(gè)MCU,用來(lái)作為整個(gè)系統的主控,包括HDMI接收器和SHC3201的初始化,驅動(dòng)HDMI接收器和SHC3201正常工作。需要說(shuō)明的是,在此套方案中,發(fā)送端的SHC3201內部MCU通過(guò)DDC直接與接收端的FPGA板內的MCU通信。在接收端FPGA板上的RAM掛接在DDC總線(xiàn)上,發(fā)送端SHC3201內部MCU通過(guò)DDC訪(fǎng)問(wèn)它,而接收端FPGA中的MCU通過(guò)并行總線(xiàn)直接訪(fǎng)問(wèn)它。在此RAM中按照UCPS協(xié)議標準定如下寄存器。
在接收端FPGA板上增加兩個(gè)寄存器,可命名為:HDMI_TX_STATUS和HDMI_RX_STATUS.增加一個(gè)數據緩存器,緩存器大小為32字節。增加的寄存器和緩存器都要掛接在DDC總線(xiàn)上,讓發(fā)射端SHC3201可以通過(guò)DDC進(jìn)行讀寫(xiě)操作,同時(shí)接收端FPGA內部的MCU也可讀寫(xiě)即可。
圖4
Bit0:HDMI發(fā)射端通過(guò)DDC讀完數據標志
Bit1:HDMI發(fā)射端通過(guò)DDC寫(xiě)完數據標志
Bit2:HDMI忙/閑標識HDMI發(fā)射端是否正在寫(xiě)DDC總線(xiàn)
上圖在接收端定義寄存器和通信標志位,發(fā)射端可讀寫(xiě),接收端只能讀
圖5
Bit0:HDMI接收端通過(guò)DDC讀完數據標志
Bit1:HDMI接收端通過(guò)DDC寫(xiě)完數據標志
Bit2:HDMI忙/閑標識HDMI接收端是否正在寫(xiě)數據到緩存器
上圖在接收端定義寄存器和通信標志位,接收端可讀寫(xiě),發(fā)射端只能讀。
HDMI發(fā)射端SHC3201固件設計方法
1)發(fā)射端主控器通過(guò)DDC寫(xiě)接收端HDMI_TX_STATUS為0x1;
2)發(fā)射端主控器通過(guò)DDC輪詢(xún)接收端的兩個(gè)標志寄存器;
3)如果發(fā)射端要發(fā)送數據或消息到接收端,先查看HDMI_RX_STATUS為0x1,則開(kāi)始準備發(fā)送。否則到第八步;
4)發(fā)射端寫(xiě)HDMI_TX_STATUS為0x04;
5)發(fā)射端將數據或消息通過(guò)DDC寫(xiě)入接收端的緩存器中;
6)發(fā)射端寫(xiě)HDMI_TX_STATUS為0x02;
7)發(fā)射端通過(guò)DDC開(kāi)始輪詢(xún)HDMI_RX_STATUS值,如為0x1,則表示接收端已將數據取出,回到第1步;
8)發(fā)射端接收數據,當發(fā)現HDMI_RX_STATUS值為0x02時(shí),表示HDMI接收端已將數據準備好了,發(fā)射端寫(xiě)HDMI_TX_STATUS為0X04,并開(kāi)始通過(guò)DDC讀取接收端緩存器中的數據。返回第一步。
6 HDMI接收端軟件設計方法:
1)接收端寫(xiě)HDMI_RX_STATUS為0x1;
2)接收端主控器通過(guò)輪詢(xún)接收端的兩個(gè)標志寄存器;
3)如果接收端要發(fā)送數據或消息到發(fā)射端,先查看HDMI_TX_STATUS的值為0x1時(shí),則開(kāi)始準備發(fā)送;否則到第八步;
4)接收端寫(xiě)HDMI_RX_STATUS為0x04;
5)接收端將數據或消息寫(xiě)入接收端的緩存器中;
6)接收端寫(xiě)HDMI_RX_STATUS的值為0x02;
7)接收端開(kāi)始輪詢(xún)HDMI_TX_STATUS值,如為1,則表示發(fā)射端已將數據取出,回到第一步;
8)接收端接收數據,當發(fā)現HDMI_TX_STATUS值為0x2時(shí),表示HDMI發(fā)射端已經(jīng)通過(guò)DDC把數據寫(xiě)入了接收端的緩存器。接收端開(kāi)始讀取緩存器的數據,讀完后返回第一步。
本文小結
SHC3201是第一顆帶有UCPS功能的HDMI發(fā)送器,因為現沒(méi)有相應的帶有UCPS功能的HDMI接收器,為了驗證和測試UCPS完整功能,我們在實(shí)驗室采用了上述方法。通過(guò)這個(gè)方法,在沒(méi)有帶UCPS功能的HDMI接收器的環(huán)境下,我們成功地實(shí)現了UCPS協(xié)議驗證??梢詫?shí)現UCPS的設備認證,UCSP加密和解密的功能測試。并作為一個(gè)完成系統通過(guò)相關(guān)部門(mén)驗收。在此系統中,我們通過(guò)軟硬的方法,成功驗證了UCPS協(xié)議所需要的設備認證功能,發(fā)送與接收通信機制功能,UCPS實(shí)時(shí)加密和實(shí)時(shí)解密功能。同時(shí)因為現相關(guān)標準組織還沒(méi)有開(kāi)發(fā)出相應的IMU模塊,所以與IMU相關(guān)的認證功能暫時(shí)沒(méi)有驗證。
另外要說(shuō)明的是在這套驗證系統中,接收端用的是一個(gè)標準的HDMI接收器作為數據轉換,系統無(wú)法實(shí)時(shí)傳送UCPS加密信令(HDMI接收器不能識別此信令)。為了避免在加密狀態(tài)發(fā)生變化時(shí),HDMI發(fā)送端和HDMI接收端不同步,我們定義在消隱期間,不發(fā)送任何有效數據,包括音頻或者視頻。而音頻數據是穿插在消隱期間發(fā)送的,目前這種方法,不能傳音頻數據。發(fā)送端和接收端的加解密狀態(tài)同步,雙方是通過(guò)DDC通道,通過(guò)傳遞消息來(lái)完成的。
評論