王 濤,蔣其泓
(中國(guó)藝術(shù)科技研究所,北京 100061)
劇場(chǎng)中舞臺(tái)燈光網(wǎng)絡(luò)節(jié)點(diǎn)控制器的設(shè)計(jì)
王 濤,蔣其泓
(中國(guó)藝術(shù)科技研究所,北京 100061)
介紹一款舞臺(tái)燈光網(wǎng)絡(luò)節(jié)點(diǎn)控制器的設(shè)計(jì)特點(diǎn):多串口設(shè)計(jì)、對(duì)數(shù)據(jù)傳輸阻塞的自動(dòng)判別設(shè)計(jì)和網(wǎng)絡(luò)接口的設(shè)計(jì)。
舞臺(tái)燈光;網(wǎng)絡(luò)節(jié)點(diǎn);控制器;串口;劇場(chǎng)
在舞臺(tái)藝術(shù)效果呈現(xiàn)技術(shù)手段不斷提升的今天,各類智能燈具的應(yīng)用日趨成熟,規(guī)模數(shù)量也日趨龐大,以往的燈光控制系統(tǒng)已經(jīng)不能滿足于使用需求。燈光網(wǎng)絡(luò)控制系統(tǒng)因其超強(qiáng)的數(shù)據(jù)傳輸能力、糾錯(cuò)能力和設(shè)備加載擴(kuò)充能力,已被應(yīng)用在很多新建的大、中型劇場(chǎng)中(系統(tǒng)示意圖見(jiàn)圖1)。在舞臺(tái)燈光控制室、可控硅室、假臺(tái)口、天橋和柵頂?shù)汝P(guān)鍵部位都設(shè)計(jì)了網(wǎng)絡(luò)控制節(jié)點(diǎn),配置了強(qiáng)大功能的網(wǎng)絡(luò)交換機(jī)和各種網(wǎng)絡(luò)設(shè)備,但要使得這些劇場(chǎng)中的燈光設(shè)備能完全加入到這整套網(wǎng)絡(luò)系統(tǒng)中來(lái),有一樣關(guān)鍵性的設(shè)備是不可缺少的,那就是燈光網(wǎng)絡(luò)節(jié)點(diǎn)控制器。
圖1 典型的網(wǎng)絡(luò)燈光控制系統(tǒng)示意圖
筆者研發(fā)這款舞臺(tái)燈光網(wǎng)絡(luò)節(jié)點(diǎn)控制器,是通過(guò)專用燈光網(wǎng)絡(luò)協(xié)議(Art-Net與ACN),將以太網(wǎng)數(shù)據(jù)映射并最終轉(zhuǎn)換成普通的DMX燈光協(xié)議,把網(wǎng)絡(luò)燈光數(shù)據(jù)轉(zhuǎn)成多個(gè)串口數(shù)據(jù)并分送到各個(gè)設(shè)備上,使得終端的普通燈光設(shè)備也都能加入到整個(gè)網(wǎng)絡(luò)控制系統(tǒng)中。而在后期的型式實(shí)驗(yàn)和工程應(yīng)用的實(shí)踐中,我們又不斷地對(duì)其進(jìn)行改進(jìn),主要在三方面做了更深層次的研究和性能提升:
(1)提出了多串口的FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程邏輯門陣列)實(shí)現(xiàn)方法,由普通的軟件實(shí)現(xiàn)向用硬件可編程方式實(shí)現(xiàn),這種方式可以滿足每個(gè)串口都能夠隨時(shí)雙向發(fā)送接收頻率為250 kb/s的DMX512信號(hào),最終實(shí)現(xiàn)8個(gè)獨(dú)立的DMX512通道傳輸。
(2)由于燈光數(shù)據(jù)在網(wǎng)絡(luò)上非常多并且實(shí)時(shí)性要求很高,為了防止網(wǎng)絡(luò)阻塞,研究了FPGA上對(duì)串口信號(hào)變化及時(shí)反應(yīng),在燈光數(shù)據(jù)未發(fā)生變化時(shí),自動(dòng)降低網(wǎng)絡(luò)數(shù)據(jù)的傳輸間隔,節(jié)省網(wǎng)絡(luò)資源。
(3)選擇了更合適的網(wǎng)絡(luò)接口芯片,實(shí)現(xiàn)了10 M/100 M以太網(wǎng)絡(luò)自適應(yīng)和端口AutoMDI/MDIX自適應(yīng)功能。
由FPGA來(lái)實(shí)現(xiàn)多個(gè)串口。FPGA本身資源比較豐富,緩沖內(nèi)存可以做在FPGA內(nèi)部,簡(jiǎn)化了電路又便于維護(hù)。應(yīng)用FPGA就是將整個(gè)系統(tǒng)設(shè)計(jì)成各個(gè)模塊,8個(gè)雙口RAM模塊分別對(duì)應(yīng)8個(gè)串口,每個(gè)串口模塊都能夠根據(jù)設(shè)置狀態(tài)寄存器的值來(lái)實(shí)現(xiàn)發(fā)送串口或者接收串口。在將某個(gè)串口設(shè)成發(fā)送的模式下,串口模塊由FPGA的定時(shí)器部分來(lái)決定每隔30 ms發(fā)一幀。我們選擇信號(hào)幀的周期是30 ms是有原因的,一個(gè)DMX512信號(hào)幀,是由一個(gè)頭是88 μs的低電平,加上零號(hào)數(shù)據(jù),再加上512個(gè)燈光數(shù)據(jù)組成,而每一個(gè)數(shù)據(jù)又都是由11位組成,其中1個(gè)啟始位,8個(gè)數(shù)據(jù)位,最后2個(gè)結(jié)束位。保持250 kb/s的速率發(fā)送的話,算出一個(gè)數(shù)據(jù)的傳輸時(shí)間是44 μs,那么一般情況下大約23 ms就可以發(fā)完一幀數(shù)據(jù)。還要考慮數(shù)據(jù)的幀和幀之間再留一些時(shí)間的空余,那么串口模塊30 ms發(fā)一幀完全符合設(shè)計(jì)要求。而MCU(Microcontroller Unit,微控制單元,又稱單片機(jī))只需要燈光數(shù)據(jù)更新的時(shí)候才會(huì)把數(shù)據(jù)寫入每個(gè)串口所對(duì)應(yīng)的雙口RAM(Random Access Memory,隨機(jī)存儲(chǔ)器)中,由串口模塊定時(shí)將其中數(shù)據(jù)讀走并按照固定幀格式發(fā)送出去。因此,這種機(jī)制使得MCU不需要將大量寶貴的系統(tǒng)時(shí)間花費(fèi)在數(shù)據(jù)的搬運(yùn)上,使得系統(tǒng)的運(yùn)行更有效率、更加準(zhǔn)確,從而提高產(chǎn)品的可靠性和安全性。
在FPGA內(nèi)設(shè)計(jì)了幾個(gè)主要應(yīng)用模塊:雙口RAM模塊(見(jiàn)圖2),串口發(fā)送模塊,串口接收模塊。
因?yàn)榇司W(wǎng)絡(luò)節(jié)點(diǎn)控制器可以支持4到8個(gè)串口,具體每個(gè)串口是收還是發(fā)的狀態(tài),由串口模塊寄存器里的值所決定。這就會(huì)出現(xiàn)一個(gè)問(wèn)題,當(dāng)所有的串口都被設(shè)成是接收狀態(tài)時(shí),就會(huì)使得這些串口都幾乎同時(shí)向雙口RAM里寫數(shù)據(jù)。為了保持燈光數(shù)據(jù)的實(shí)時(shí)性要求,MCU這時(shí)的首要任務(wù)就是盡快將數(shù)據(jù)從雙口RAM中提取出來(lái),并打包成網(wǎng)絡(luò)數(shù)據(jù)包,再通過(guò)以太網(wǎng)發(fā)送出去。而每一個(gè)串口收到的數(shù)據(jù)幀和幀之間的間隔可能也就在25 ms到30 ms左右,這時(shí)候的數(shù)據(jù)流量將會(huì)變得異常大,MCU的整體數(shù)據(jù)處理能力畢竟有限,此時(shí)系統(tǒng)將會(huì)變得異常繁忙,這種情況對(duì)整個(gè)系統(tǒng)的穩(wěn)定性來(lái)說(shuō)是非常危險(xiǎn)的。一般說(shuō)來(lái),控制臺(tái)發(fā)過(guò)來(lái)的DMX512數(shù)據(jù),沒(méi)有辦法去減少或者限制,很可能就是一幀接著一幀連綿不斷。那么有可能避免MCU系統(tǒng)的過(guò)度疲勞嗎?筆者想從產(chǎn)品的實(shí)際工作情況中找辦法。
從一般舞臺(tái)燈光控制的經(jīng)驗(yàn)來(lái)看,一場(chǎng)晚會(huì)或一次表演每一路燈光數(shù)據(jù)并不是時(shí)時(shí)刻刻在變化的,雖然DMX512信號(hào)數(shù)據(jù)是一幀一幀連續(xù)不斷地發(fā)出的,但是大部分的時(shí)間里,其信號(hào)數(shù)據(jù)值是相同的。如果FPGA能夠自己判斷出前后兩幀數(shù)據(jù)是否相同,那么這個(gè)問(wèn)題也就迎刃而解了。這種方法的思路就是:如果前后兩幀數(shù)據(jù)值相同,MCU就可以不理會(huì),不向網(wǎng)絡(luò)發(fā)新的數(shù)據(jù)包;如果它們不同,MCU再更新數(shù)據(jù)包。這樣網(wǎng)絡(luò)數(shù)據(jù)流量將會(huì)大大減少,MCU為搬動(dòng)數(shù)據(jù)而花費(fèi)的系統(tǒng)處理時(shí)間也會(huì)大大減少。
怎么比較呢?因?yàn)榇藭r(shí)雙口RAM的切換操作控制權(quán)交給了MCU,F(xiàn)PGA本身并不能直接控制當(dāng)前提取的是哪一塊的內(nèi)容。但筆者分析發(fā)現(xiàn),可以通過(guò)合理的方法來(lái)設(shè)計(jì)雙口RAM模塊功能來(lái)解決。因?yàn)榇谥忻恳粋€(gè)接收進(jìn)來(lái)的字節(jié)數(shù)據(jù)是放在一個(gè)特定的變量里,而根據(jù)設(shè)計(jì)的雙口RAM的特性來(lái)看,前一幀的相同路徑的數(shù)據(jù)放入雙口RAM后將會(huì)出現(xiàn)在設(shè)計(jì)的UART_RAM1_b變量里(見(jiàn)圖3),通過(guò)此變量數(shù)據(jù)和當(dāng)前雙口RAM單元中數(shù)據(jù)比較,就可以判斷前后兩幀燈光數(shù)據(jù)是否相同了。
圖2 quartus環(huán)境里設(shè)計(jì)的雙口RAM模塊
本網(wǎng)絡(luò)節(jié)點(diǎn)控制器使用了W3150A加上RTL8201的組合(見(jiàn)圖4)。W3150A是一款硬件協(xié)議棧芯片,該芯片符合高速的數(shù)字化網(wǎng)絡(luò)連接方案,同時(shí)將TCP/IP等協(xié)議棧嵌入到硬件當(dāng)中。它的基本功能是將并行的8/16位數(shù)據(jù)或高速串行數(shù)據(jù)加以處理,將數(shù)據(jù)以TCP/IP或者以UDP/IP等協(xié)議傳給以太網(wǎng)控制芯片,從而實(shí)現(xiàn)數(shù)據(jù)在以太網(wǎng)上的傳輸。RTL8201是專門用于以太網(wǎng)對(duì)接的芯片,它是一個(gè)單端口的物理層收發(fā)器,實(shí)現(xiàn)了全部的10 M/100 M以太網(wǎng)物理層功能,提供全/半雙工操作、支持雙絞線和光纖的輸出。
網(wǎng)絡(luò)連接和燈光網(wǎng)絡(luò)協(xié)議(Art-Net)的實(shí)現(xiàn),我們使用了ARTNET網(wǎng)站上的ArtView軟件來(lái)測(cè)試,這個(gè)軟件是免費(fèi)提供的。在一臺(tái)PC機(jī)上安裝此軟件,打開(kāi)將會(huì)出現(xiàn)以下畫面(見(jiàn)圖5):
用一根交叉8芯普通五類網(wǎng)線將PC機(jī)和本以太網(wǎng)絡(luò)轉(zhuǎn)接器相連,將PC機(jī)網(wǎng)卡的IP地址設(shè)成:2.0.0.1,此軟件界面就會(huì)顯示出已經(jīng)連接上了網(wǎng)絡(luò)轉(zhuǎn)接器(見(jiàn)圖6)。其左下角的工具欄里就會(huì)出現(xiàn),有燈光網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備連在網(wǎng)絡(luò)上,IP地址是2開(kāi)頭的。
5.1 第一步
第一步:接收DMX512數(shù)據(jù)轉(zhuǎn)換成燈光網(wǎng)絡(luò)數(shù)據(jù)包發(fā)至以太網(wǎng)的測(cè)試。
用一個(gè)燈光控制臺(tái)發(fā)送DMX512信號(hào)給轉(zhuǎn)接器的任意一個(gè)RS-485串口端,和此控制臺(tái)相連的串口設(shè)置成接收狀態(tài),并且轉(zhuǎn)換成Universe1的網(wǎng)絡(luò)數(shù)據(jù)。轉(zhuǎn)接器通過(guò)網(wǎng)線和PC機(jī)是相連的。如果轉(zhuǎn)接器工作正常,在PC機(jī)的這個(gè)測(cè)試軟件上就可以看出512路信號(hào)的每一個(gè)值??刂婆_(tái)發(fā)出的512路燈光亮度信號(hào)是32%時(shí),軟件數(shù)據(jù)界面如下(見(jiàn)圖7)。
界面左下角可以看到,這512路數(shù)據(jù)是放在燈光網(wǎng)絡(luò)數(shù)據(jù)包的組Universe1里,每一路的值都收到并且顯示32%,接收到的數(shù)據(jù)完全正確了。
圖3 用Modemsim仿真軟件模擬出的UART_RAM1_b變量波形
圖4 網(wǎng)絡(luò)接口W3150A和FPGA EP1C6的連接系統(tǒng)圖
圖5 測(cè)試軟件主界面
圖6 測(cè)試軟件接收界面
圖7 測(cè)試軟件接收數(shù)據(jù)分析圖
圖9 示波器實(shí)際顯示1
5.2 第二步
第二步:由PC機(jī)發(fā)送燈光網(wǎng)絡(luò)數(shù)據(jù)包給節(jié)點(diǎn)控制器,并轉(zhuǎn)換成DMX512信號(hào)的測(cè)試。
還是使用一個(gè)專用測(cè)試軟件(見(jiàn)圖8),進(jìn)入發(fā)送菜單選擇Art-Net組Universe1。
接下來(lái)進(jìn)行DMX512信號(hào)的驗(yàn)證實(shí)驗(yàn)。將節(jié)點(diǎn)控制器的任意一個(gè)串口設(shè)為發(fā)送狀態(tài),接收的燈光網(wǎng)絡(luò)數(shù)據(jù)包是Universe1,那么串口就會(huì)自動(dòng)發(fā)送DMX512數(shù)據(jù),用專用級(jí)示波器可以查看串口的數(shù)據(jù)格式(見(jiàn)圖9)。
圖8 測(cè)試軟件發(fā)送界面
圖10 示波器實(shí)際顯示2
從圖9可以看出DMX512的復(fù)位信號(hào)。根據(jù)文化行業(yè)標(biāo)準(zhǔn)WH/T-2008《DMX512-A燈光控制數(shù)據(jù)傳輸協(xié)議》要求的復(fù)位信號(hào)最小值為92 μs,本產(chǎn)品是92 μs,符合標(biāo)準(zhǔn)要求。
從示波器顯示(見(jiàn)圖10)中,可以看到其中一路亮度數(shù)據(jù)單元,這個(gè)單元寬度是44 μs。
因?yàn)镈MX512的速率是250 kb/s,一個(gè)單元由包括起始位和停止位共11位,每一位是4 μs,完全符合DMX512數(shù)據(jù)標(biāo)準(zhǔn)。通過(guò)以上這些測(cè)試步驟,可以確定這款轉(zhuǎn)接器信號(hào)穩(wěn)定達(dá)到了設(shè)計(jì)要求。
本文提到的舞臺(tái)燈光網(wǎng)絡(luò)節(jié)點(diǎn)控制器,因其設(shè)計(jì)特性特別適合應(yīng)用在智能燈具數(shù)量大并對(duì)燈光藝術(shù)效果要求高的演出場(chǎng)館,并且可靠性和安全性符合相關(guān)規(guī)范,現(xiàn)已經(jīng)在國(guó)內(nèi)大、中型場(chǎng)館中推廣和應(yīng)用。筆者也會(huì)不斷關(guān)注其應(yīng)用表現(xiàn),持續(xù)升級(jí)改進(jìn),使得此款產(chǎn)品在各類演出中發(fā)揮出更大的作用。
(編輯 張冠華)
Design of Stage Lighting Network Node Controller in Theater
WANG Tao, JIANG Qi-hong
(Chinese Art Science & Technology Institute, Beijing 100061, China)
In this paper, the author introduced the design features of a stage lighting network node controller, including the design of multi serial port design, the automatic identification design of data transmission congestion and the design of the network interface.
stage lighting; network node; controller; serial port; theater
10.3969/j.issn.1674-8239.2015.12.002