摘要:演播室及轉播車視音頻系統的監看和制作,離不開信號源名和Tally燈的顯示,不同廠商監看設備對于源名和Tally燈的顯示支持有不同的協議,目前演播室及轉播車上主流管理和控制Tally及源名的設備為TSL公司的TallyMan控制系統。本文主要目的在于,通過自主研發、制作相關轉換設備,實現TallyMan控制系統對BMD多畫面的Tally顯示及源名跟隨。
關鍵詞:TSL UMD協議,Blackmagic VideoHub協議,SDI Tally,3G-SDI Shield for Arduino
一、引言
Blackmagic Design(簡稱BMD)公司生產的視音頻設備具有功能豐富,安裝方便及價格便宜的優勢,因此在廣電內視音頻系統的集成和制作中具有廣泛的應用。蘇州廣電8訊道高清轉播車升級為10訊道的項目中,使用了一批BMD的矩陣和多畫面,作為對于原轉播車系統視頻監看上的擴充;為了方便節目制作對于畫面監看的要求,需要通過轉播車現有的TallyMan系統,去控制BMD多畫面和矩陣,實現BMD多畫面內信號動態源名和Tally燈的顯示。但是由于BMD多畫面的控制和顯示只支持自己內部的協議,因此需要設計相關設備的轉換,將TallyMan相關控制協議,轉換成BMD能夠識別的協議。
二、設計原理及需求
2.1、TallyMan源名及Tally顯示原理
TallyMan控制系統支持目前大部分廣電設備的接入,如視頻切換臺、矩陣、多畫面、串行和并行Tally輸入輸出等。TallyMany控制系統對視頻多畫面的控制主要使用的是TSL UMD協議,此次項目中對BMD多畫面的Tally和源名顯示主要解析的是TSL UMD V3.1協議。TallyMan服務器內包含有矩陣源名信息和視頻信號切點狀態,TallyMany與多畫面建立連接并單向發送UMD數據到多畫面服務器,UMD數據內包含對多畫面內每個窗口的源名、Tally信息記錄,當多畫面服務器接收并解析UMD數據包以后,獲取源名和Tally信息,并記錄到多畫面的輸出。
2.1.1、TallyMan系統內部配置方法如下
1)添加“UMD Display Interface”設備并命名,選擇UMD類型為“MultiView(TSL Protocol)”,即UMD V3.1協議,一臺多畫面對應一臺“UMD Display Interface”設備。

圖2.1 協議選擇界面
2)點擊“Edit Comms Parameters”配置通信端口,通信類型為“Network UDP”,端口號為8900,IP地址對應多畫面服務器地址(此次項目中IP地址對應UMD轉換設備的地址)。
3)選中新添加的“UMD Display Interface”設備,添加多畫面輸出配置“Add/Delete displays in Layout”,確認在多畫面中需要顯示的畫面數,此次項目為4畫面輸出,如圖2.2所示,多畫面內部地址從0~3自動分配。

圖2.2 多畫面數量配置
4)雙擊多畫面內每個Display,進入顯示配置界面,配置界面內,選擇源名顯示為“Follow Matrix Destination”(此次項目中多畫面的輸入信號均由矩陣提供),之后在“Matrix Assignment”配置項,設定矩陣的目的端口,對應為實際矩陣輸出到多畫面的端口,最后再“Tally Channel”中打開需要對應的Tally通道,一般為PGM和PVW的Tally顯示。

圖2.3 多畫面顯示配置
5)配置完多畫面內每個通道對應為跟隨矩陣源名后,保存TallyMan配置信息,發送到TallyMan主機并重啟。
2.1.2、TSL UMD協議分析
TSL UMD協議也稱作動態源名顯示協議,該協議支持RS422/485、UDP、TCP等多種傳輸方式,TSL UMD協議每隔200ms發送一個數據包,每個數據包內包含有18字節數據,數據以16進制方式傳輸,數據包的格式如下圖所示。

圖2.4 TSL UMD V3.1Protocol
第1個字節“Header”和“0x80”相減,對應多畫面內部顯示地址,第2個字節“Control”對應Tally狀態以及顯示的亮暗信息,第3~18個字節“Display Data”表示多畫面內顯示源名的內容,顯示的內容由16進制數據對應的ASCII碼表示。
例如多畫面內以16進制接收到18個字符為“81 21 43 41 4D 20 31 20 20 20 20 20 20 20 20 20 20 20”,“81”表示在多畫面內顯示地址是“1”,“21”表示PGM Tally點亮,PST Tally熄滅,后面3~16個字節通過ASCII碼表轉換成相應的字符是“CAM 1”。
2.1.3、動態UMD協議工作方式
1)當沒有Tally及源名變化時,每隔200毫秒,會從地址“0x80“遞增發送到地址”0xfd“,也就是循環發送126個數據包,每隔25秒所有Tally及源名信息發生一次更新。
2)如果沒有對動態源名進行設定,默認多畫面內字符串顯示內容為“LOCAL1“~”LOCAL126。
3)當PGM信號切換引起Tally變換時,多畫面會收到一個長數據包,共36字節數據,其中前18個字節說明需要熄滅Tally燈的多畫面地址和源名信息,后18個字節說明需要點亮Tally燈的多畫面地址和源名信息。
4)當矩陣輸出到多畫面內的視頻源發生變換時,多畫面會馬上接收到1個數據包,共18字節數據,指定該矩陣到多畫面內對應的信號源名發生了改變。
2.2、BMD矩陣源名及Tally顯示原理
2.2.1、BMD多畫面和矩陣控制協議
BMD矩陣和多畫面支持相同的控制協議,協議全稱為“Blcakmagic Videohub Enthernet Protocol V2.3”,該協議支持外部TCP控制,端口號為9990,協議目前只適用于BMD內矩陣和多畫面的控制(可以把BMD多畫面理解為帶內部信號分配、并只有一個多畫面輸出口的矩陣),控制方式包括內部輸入和輸出信號路由分配、名稱修改。如圖2.5所示,為修改輸入和輸出口0和1標簽的命令方式。

圖2.5 Videohub協議命令方式
目前在TallyMan系統軟件V1.85版本以上,能夠支持對BMD矩陣控制的接入,但是還不包括對BMD多畫面控制,尤其是動態源名和Tally燈顯示那一塊,因此我們還是要通過第三方硬件加以轉換,以便滿足系統上對動態源名和Tally顯示的需求。
2.2.2、BMD多畫面Tally顯示協議
BMD多畫面只支持SDI Tally協議,即通過在單根SDI信號中嵌入Tally信息,發送到多畫面最后一個輸入口,并在多畫面配置中打開Tally顯示功能。SDI Tally是BMD內部Tally顯示協議,目前只有ATEM系列切換臺的Program端口支持SDI Tally輸出。
2.3、系統設計需求
綜合上述TallyMan和BMD控制協議,我們在系統設計時,首先需要確保BMD矩陣、BMD多畫面、TallyMan控制系統、協議轉換設備在同一局域網內,TallyMan能夠連接并控制BMD矩陣;其次協議轉換設備通過UDP方式讀取并解析TallyMan輸出的UMD控制協議,將UMD控制協議的Tally信息轉換成SDI Tally,輸出到BMD多畫面最后一路輸入,將UMD控制協議的多畫面源名信息,轉換成Videohub協議,輸出給BMD多畫面;最后BMD多畫面讀取SDI Tally,確認多畫面內Tally顯示地址,同時通過TCP方式接收Videohub控制數據,修改對應多畫面內信號顯示的源名信息。
系統連接框圖圖下圖2.6所示。BMD矩陣8路輸出分別給兩個BMD多畫面的輸入,其中矩陣送給多畫面的最后一路SDI信號經過“BMD Shield for Arduino”,嵌入SDI Tally信號后,再輸送給多畫面,同時“BMD Shield for Arduino“與系統內其他設備處于一個局域網內,負責解析TSL UMD數據并發送動態源名數據給BMD多畫面。其中“BMD Shield for Arduino”就是此次項目中研發的協議轉換設備,該協議轉換設備由BMD官方提供的相關SDI Tally嵌入設備“3G-SDI Shield for Arduino”(簡稱Shield板),配合網絡收發模塊和單片機組合而成,Arduino Uno單片機開發板通過燒錄自制程序循環運行,通過I2C總線與Shield板內部通信,完成對SDI信號內Tally信息的嵌入;同時Arduino Uno單片機TTL串口輸出給網絡模塊,將TTL串口數據轉換成網口數據,完成與TallyMan和BMD多畫面之間的各項通信工作。

圖2.6 BMD Tally顯示系統框圖
三、協議轉化的設計與實現
3.1、轉換設備電路圖
轉換設備電路圖如圖3.1所示,設備供電方面,轉換設備整體采用12V穩壓電源供電,電源經過BMD Shield板內部轉換成5V電壓,再分別供電給Arduino Uno單片機開發板和USR-TCP232網絡模塊;內部通信方面,Arduino Uno開發板和Shield板之間,通過SDA數據線和SCL時鐘線連接,采用I2C總線通信協議,將Tally信息嵌入SDI信號,Arduino Uno開發板串口接收(RX)連接網絡模塊發送端口0(TX0),接收TSL UMD數據包,串口發送(TX)連接網絡模塊接收端口1(RX1),發送BMD Videohub數據包;信號收發狀態監看,可從網絡模塊的
Work端口連接數據線到LED燈,收發數據時會對應LED燈的閃爍。

圖3.1 協議轉換設備電路圖
網絡模塊USR-TCP232能實現雙TTL串口轉網口,雙TTL串口通信互不干擾,TTL0轉網口工作在UDP Server模式,網絡地址和TallyMan對應,端口號為8900,負責專門接收TallyMan發送的TSL UMD數據包;TTL1轉網口工作在TCP Client模式,網絡地址和BMD多畫面對應,端口號9990,負責專門發送Videohub數據包到多畫面服務器。如圖3.2為網絡模塊內部配置。

圖3.2 網絡模塊內部配置
TTL串口轉網口網絡模塊具體配置原理和方法如下:
1)模塊和TallyMan控制系統進行通信時,使用TTL0接收數據,在配置頁面左側選擇“RS232”,設定Socket A工作方式為UDP Server模式,本地端口設定為8900,遠程端口設定為0,Socket B工作方式None,TallyMan作為UDP Client,只負責向模塊發送UMD協議的數據,不負責接收,此時模塊內部端口0(端口號8900)接收到TallyMan數據后,轉成串口TX0,發送給Arduino開發板的串口RX接收。
2)模塊和BMD多畫面進行通信時,使用TTL1發送數據,在配置界面左側選擇“RS485”,設定Socket A工作方式為TCP Client模式,本地端口設定為0,遠程端口設定為9990,Socket B工作方式None,BMD多畫面作為TCP Server,只負責接收模塊發送過來的VideoHub協議數據,不負責發送,此時Arduino開發板的串口TX發送到模塊的串口RX1,轉成網絡端口1(端口號9990),發送給BMD多畫面。
3)由于Arduino Uno開發板的串口不會同時處于發送和接收狀態,此種連接方法很好地利用了串口資源,節省了網口數量,方便了內部系統的接入。
3.2、Arduino Uno開發板實現程序編譯及上載
3.2.1、程序設計流程
BMD Shield板的開發套件中,包含有SDI Tally的SDK開發包,并支持C語言,具體程序設計流程如下,如圖3.3所示:

圖3.3 程序安裝及設計流程說明
1)安裝Arduino開發IDE工具,使用USB并連接Arduino Uno開發板,安裝PC驅動程序。
2)打開Arduino IDE開發工具,加載BMD SDK開發包內“BMDSDIControl.h”頭文件。
3)通過調用內部程序“BMD_SDITallyControl_I2C sdiTallyControl(0x6E)”,設定I2C總線通訊地址,默認Shield開發板I3C通訊地址是“0x6E”,也可以通過BMD官網下載Shield驅動程序,修改I2C通訊地址。
4)初始化單片機,設定串口通信波特率,打開SDI Tally控制和寫入功能。
5)進入單片機循環程序,通過串口讀取TSL UMD協議數據包,數據包每隔200毫秒自動往單片機串口發送一次,每個數據包內包含18位或者36位數據。
當接收到18位數據時,從第1位、2位、3~18位中分別提取多畫面顯示地址碼,Tally顯示狀態,多畫面內字符名稱,將顯示地址碼和Tally狀態,通過sdiTallyControl.setCameraTally()函數,嵌入到Shield板的SDI輸出信號中,將地址碼和字符名稱,轉換成VideoHub協議,通過串口轉網口,發送給對應BMD多畫面。
當接收到36位數據時,說明Tally信號發生了變化,分別提取前18位和后18位,處理方式跟處理標準18位數據時一樣。
3.2.2、程序編譯以及上載
Arduino Uno開發板通過USB數據線連接電腦并安裝驅動后,可以直接通過IDE工具,將程序編譯并燒寫到Arduino Uno開發板上,由于燒錄程序采用的原理是USB轉串口方式,會占用單片機內串口資源,因此燒錄開始前,需要斷開單片機串口和外部設備的連接,并在燒錄程序成功后,斷開USB線,重新將單片機串口和外部設備連接。
3.3、設備加工及安裝
3.3.1、功能模塊安裝
BMD Shield板、Arduino Uno開發板、TTL轉網口網絡模塊,是構成協議轉換設備的3大模塊,Shield板和Arduino Uno開發板在針腳定義及孔位上一致,可通過排針插口直接將Shied板安放在Arduino Uno開發板上面;網絡模塊需要另外固定安裝,為了方便后期固定,先將網絡模塊固定在洞洞板上,然后通過飛線和開發板進行供電和通信。

圖3.4 Shield板與開發板安裝
3.3.2、設備外殼加工
BMD官方在提供Shield板和開發包時,并未提供相關的設備安裝和外殼信息,因此所有的設備安裝調試完都是裸露在外,如果要安裝到轉播車或者考慮戶外使用,需要固定安裝在保護殼內。Shield板和Arduino Uno開發板疊加的厚度為35mm,深度為70mm,加上網絡模塊后寬度為82mm,因此綜合考慮,能夠放入82mm*44mm*100mm的鋁合金外殼,并固定到標準1U機架內。
鋁殼開孔方式通過雕刻機設計刀路路徑精確進行,鋁殼底部打M3螺絲孔位,用于固定電路板;鋁殼側面開槽,預留出轉換設備網口、USB口、12V供電口,SDI IN和SDI OUT口;鋁殼內部用5mm銅柱將電路板進行墊高并進行絕緣隔離。雕刻機雕刻后的實際樣式及最終效果如圖3.4所示

圖3.5 安裝效果圖
四、總結
綜上,這次轉換設備的研發和制作,解決了TallyMan系統對BMD矩陣和多畫面互聯互通問題,通過TallyMan實現了在BMD多畫面內顯示動態源名和Tally的功能,轉換設備在項目安裝應用中,配置簡單,對系統改動要求少,方便接入和安裝,有效滿足了我臺8訊道轉播車系統項目擴展對于多畫面制作監看上的需求,節省了設備成本開支。
同時,此次研發制作也是對SDI信號內嵌入控制信息的一次有效探索,BMD公司提供的Shield板,除了提供控制SDI Tally功能外,還包含了對攝像機、鏡頭、音頻、云臺等各類參數的控制,如果能夠有效的將這些控制信息嵌入到單根SDI線,并在末端進行解析分發,能夠極大簡化視音頻系統內控制信號的傳輸和接入,給廣播電視節目的制作帶來更多的可操作性和便捷性。