張來勝
(鄭州市人力資源和社會保障數(shù)據(jù)管理中心,河南鄭州 450000)
隨著電子技術(shù)的發(fā)展,顯示屏的分辨率越來越高,高分辨顯示屏越來越普及。同時,人民生活水平的提高使得高清視頻普及,同時對高清視頻切換的需求量就增大,視頻切換速度要求提高。而目前市面上存在的視頻矩陣魚龍混雜,價格普遍比較昂貴[1]。因此,開發(fā)一種經(jīng)濟實用的HDMI(High Definition Multimedia Interface,高清晰度多媒體接口)矩陣是非常有必要的。HDMI矩陣完成的功能是接收端接收信號源信號,經(jīng)過芯片的通道選擇,從發(fā)送端將信號送給顯示設(shè)備[2]。
視頻矩陣系統(tǒng)分為上位機和下位機兩部分。下位機部分主要由電源模塊、STM32控制模塊、切換模塊、存儲模塊以及HDMI接口模塊構(gòu)成,上位機部分主要實現(xiàn)對下位機的控制。電源模塊為整個系統(tǒng)供電,上位機為一個客戶端軟件,通過點擊界面操作向下位機發(fā)送命令,STM32接收上位機命令,然后向切換模塊發(fā)送對應(yīng)的數(shù)據(jù),切換模塊根據(jù)命令內(nèi)容做出相應(yīng)操作。系統(tǒng)設(shè)計框圖如圖1所示。
圖1 視頻矩陣系統(tǒng)總體模塊圖Fig.1 Overall module diagram of video matrix system
HDMI是目前應(yīng)用廣泛的音視頻傳輸協(xié)議[3]。HDMI接口有5種類型,其中Type A類型使用最為廣泛。本系統(tǒng)采用的是Type A類型,目的是為了讓大多數(shù)設(shè)備直接使用。HDMI接口電路分為接收端和發(fā)送端兩部分。接收端從信號源接收信號,經(jīng)過切換芯片轉(zhuǎn)換,從發(fā)送端發(fā)送給顯示設(shè)備。
接收端應(yīng)該為信號源提供顯示器的EDID,告知信號源所發(fā)送的信號類型。DDC通道連接了一個存儲有EDID的EEPROM芯片,EEPROM有掉電不丟失數(shù)據(jù),可擦除可讀寫的特點,可以用來存儲顯示器的EDID信息。EDID由128個或者256個字節(jié)組成,包含顯示屏的性能參數(shù),供應(yīng)商以及支持的顯示分辨率等信息。系統(tǒng)采用的EEPROM為AT24C02,最多可以存儲256個字節(jié)的數(shù)據(jù),EDID最多為256個字節(jié),保證夠用。只有當信號源讀取到EDID,才會將TMDS信號送出。信號源與切換芯片的接收端連接。另外,為了防止靜電,以防瞬間電壓過高擊穿電路板,在HDMI端口處增加了ESD器件[4]。將每一路TMDS信號的正負極分別接在ULC0524P引腳上,一個ESD器件可以接兩路TMDS。接收端HDMI電路圖如圖2所示。
圖2 接收端HDMI電路設(shè)計圖Fig.2 Design of HDMI circuit of receiver
發(fā)送端HDMI電路連接與接收端HDMI電路類似,只是不需要存儲EDID,電路去掉了AT24C02。
矩陣系統(tǒng)的MCU控制著整個系統(tǒng)邏輯[5],讀入按鍵輸入,控制LCD1602顯示屏輸出,控制芯片切換TMDS信號,控制著顯示屏EDID的讀取與EEPROM中EDID的寫入。控制RS232與NET通信與上位機通信。框圖如圖3所示。
圖3 主控芯片連接框圖Fig.3 Main control chip connection block diagram
切換模塊主要是由兩個LT8644芯片完成。LT8644是一種16*16的數(shù)字交叉開關(guān),具有16個TMDS輸入通道和16個TMDS輸出通道。本系統(tǒng)采用了兩個LT8644芯片,一共可以傳輸32路TMDS信號,而一路HDMI信號包含4路TMDS信號,所以本系統(tǒng)是個8*8的視頻矩陣。
LT8644支持串口控制接口進行獨立的通道切換,訪問和控制只需要用一個IIC接口。芯片通過UPDATE和RESET引腳與STM32連接,完成芯片的復位功能和更新寄存器功能,復位功能是上電之后芯片需要復位才能開始工作。更新功能作用是在寄存器值發(fā)生改變以后完成更新操作。通過IIC總線與STM32通信,作為STM32的從機,通過SCL時鐘線和SDA數(shù)據(jù)線通信,從STM32接收數(shù)據(jù)并寫入切換芯片寄存器,寄存器的值改變了以后,執(zhí)行UPDATE操作,芯片就會完成切換動作,如圖4所示。STM32也可以從切換芯片寄存器讀取數(shù)據(jù)來查看芯片狀態(tài)。
圖4 切換模塊框圖Fig.4 Block diagram of switching module
電源模塊使用的是TPS54302芯片,可利用不同的反饋電阻得到不同的電壓輸出。視頻矩陣的輸入電壓為5V直流電,LT8644芯片工作電壓需要3.3V和1.8V,STM32工作所需電壓為3.3V。轉(zhuǎn)換電路如圖5所示。TPS54302將5V直流轉(zhuǎn)換為3.3V直流,轉(zhuǎn)換為1.8V的電路圖與之類似,不過是將R502的22.1kΩ換成49.9kΩ。另外,STM32的3.3V工作電壓通過L T 8 6 4 4的3.3 V經(jīng)過磁珠隔離后得到,20MHz帶寬紋波不大于30mV。
圖5 電源模塊電路圖Fig.5 Power module circuit diagram
3.1.1 下位機軟件總流程
系統(tǒng)上電后,首先需要設(shè)置時鐘、串口、以及各個芯片的初始化狀態(tài)并進行初始化。然后將FreeRTOS系統(tǒng)也初始化。待初始化完畢,在系統(tǒng)中創(chuàng)建兩個任務(wù)并進入任務(wù)調(diào)度函數(shù)。一個任務(wù)用來從串口1接收數(shù)據(jù)并且分析數(shù)據(jù)的有效性,若無效則丟棄,有效則存為命令結(jié)構(gòu)。另一個任務(wù)用來解析命令,執(zhí)行所需要的操作。系統(tǒng)就在這兩個任務(wù)中來回切換,實現(xiàn)對視頻矩陣的控制。系統(tǒng)總體流程圖如圖6所示。
圖6 系統(tǒng)軟件總流程圖Fig.6 General flow chart of system software
3.1.2 通信協(xié)議的設(shè)計
通信協(xié)議的設(shè)計是完成上位機與下位機交互的重要步驟。協(xié)議數(shù)據(jù)包格式如表1所示。其中,前三個字節(jié)為協(xié)議頭“$XG”,表示數(shù)據(jù)的開始,同時起著分隔命令的作用;接下來的一個字節(jié)數(shù)據(jù)為長度,代表內(nèi)容的長度,假設(shè)長度字節(jié)數(shù)據(jù)的值為N,那么再接下來的N個字節(jié)數(shù)據(jù)即為數(shù)據(jù)內(nèi)容,數(shù)據(jù)內(nèi)容中的第一個字節(jié)代表控制命令號,其余的內(nèi)容為自定義內(nèi)容;最后兩個字節(jié),為數(shù)據(jù)校驗和,采用小端序,校驗和應(yīng)該等于長度和內(nèi)容按字節(jié)相加所得出的和。
表1 協(xié)議數(shù)據(jù)包格式表Tab.1 Protocol packet format
上位機部分用Delphi做了一個客戶端軟件,軟件有兩個界面,一個主頁,一個功能頁。主頁中有切換類型,輸入通道,輸出通道和TCP/IP連接。首先,上位機要跟下位機輸入相同的IP號和端口號建立TCP連接,然后選擇切換類型,是音視頻同步切換還是只切換視頻或音頻。接下來選擇輸入通道,一次只能選擇一個輸入,但是可以同時選擇多個輸出,然后點擊切換按鈕,這樣可以完成一切多的操作。此外,主頁還有一個開啟或關(guān)閉指定輸出通道的功能。
第二個頁面是功能頁面,已完成的功能是讀取某一路輸出端口所接顯示設(shè)備的EDID,然后通過IIC總線寫入輸入接口的EEPROM中。輸出只可以選一個,輸入可以多選。
本系統(tǒng)可以實現(xiàn)RS232串口控制切換,上位機軟件通過網(wǎng)口控制切換。測試環(huán)境如下,所接輸入1為筆記本電腦輸入,輸入2為臺式機輸入,一個HDMI顯示屏接輸出1。
切換前屏幕選擇的輸入端口為輸入2,切換后的屏幕顯示畫面從輸入2變?yōu)檩斎?,如圖7所示。
圖7 串口測試切換前后顯示器顯示圖Fig.7 Display before and after serial port test switching
通過以上多次測試,得出結(jié)論,視頻矩陣可以準確快速地完成切換,還可以完成關(guān)閉開啟輸出通道,讀取顯示器EDID功能。
本文設(shè)計的視頻矩陣實現(xiàn)了視頻快速切換的目標,可以完成視頻切換,視頻通道開啟關(guān)閉,顯示器EDID讀寫功能,并且在調(diào)好以后,即使斷電,下次開機時也能還原上一次的輸入輸出對應(yīng)狀態(tài)。另外,本視頻矩陣控制方式多樣化,不但能通過RS232串口控制,還可以通過TCP/IP控制,且上位機軟件界面友好,人性化設(shè)計及布局,操作簡便易上手,具有較強的應(yīng)用價值。