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