王 濤,蔣其泓
(中國藝術科技研究所,北京 100061)
劇場中舞臺燈光網(wǎng)絡節(jié)點控制器的設計
王 濤,蔣其泓
(中國藝術科技研究所,北京 100061)
介紹一款舞臺燈光網(wǎng)絡節(jié)點控制器的設計特點:多串口設計、對數(shù)據(jù)傳輸阻塞的自動判別設計和網(wǎng)絡接口的設計。
舞臺燈光;網(wǎng)絡節(jié)點;控制器;串口;劇場
在舞臺藝術效果呈現(xiàn)技術手段不斷提升的今天,各類智能燈具的應用日趨成熟,規(guī)模數(shù)量也日趨龐大,以往的燈光控制系統(tǒng)已經(jīng)不能滿足于使用需求。燈光網(wǎng)絡控制系統(tǒng)因其超強的數(shù)據(jù)傳輸能力、糾錯能力和設備加載擴充能力,已被應用在很多新建的大、中型劇場中(系統(tǒng)示意圖見圖1)。在舞臺燈光控制室、可控硅室、假臺口、天橋和柵頂?shù)汝P鍵部位都設計了網(wǎng)絡控制節(jié)點,配置了強大功能的網(wǎng)絡交換機和各種網(wǎng)絡設備,但要使得這些劇場中的燈光設備能完全加入到這整套網(wǎng)絡系統(tǒng)中來,有一樣關鍵性的設備是不可缺少的,那就是燈光網(wǎng)絡節(jié)點控制器。

圖1 典型的網(wǎng)絡燈光控制系統(tǒng)示意圖
筆者研發(fā)這款舞臺燈光網(wǎng)絡節(jié)點控制器,是通過專用燈光網(wǎng)絡協(xié)議(Art-Net與ACN),將以太網(wǎng)數(shù)據(jù)映射并最終轉(zhuǎn)換成普通的DMX燈光協(xié)議,把網(wǎng)絡燈光數(shù)據(jù)轉(zhuǎn)成多個串口數(shù)據(jù)并分送到各個設備上,使得終端的普通燈光設備也都能加入到整個網(wǎng)絡控制系統(tǒng)中。而在后期的型式實驗和工程應用的實踐中,我們又不斷地對其進行改進,主要在三方面做了更深層次的研究和性能提升:
(1)提出了多串口的FPGA(Field-Programmable Gate Array,現(xiàn)場可編程邏輯門陣列)實現(xiàn)方法,由普通的軟件實現(xiàn)向用硬件可編程方式實現(xiàn),這種方式可以滿足每個串口都能夠隨時雙向發(fā)送接收頻率為250 kb/s的DMX512信號,最終實現(xiàn)8個獨立的DMX512通道傳輸。
(2)由于燈光數(shù)據(jù)在網(wǎng)絡上非常多并且實時性要求很高,為了防止網(wǎng)絡阻塞,研究了FPGA上對串口信號變化及時反應,在燈光數(shù)據(jù)未發(fā)生變化時,自動降低網(wǎng)絡數(shù)據(jù)的傳輸間隔,節(jié)省網(wǎng)絡資源。
(3)選擇了更合適的網(wǎng)絡接口芯片,實現(xiàn)了10 M/100 M以太網(wǎng)絡自適應和端口AutoMDI/MDIX自適應功能。
由FPGA來實現(xiàn)多個串口。FPGA本身資源比較豐富,緩沖內(nèi)存可以做在FPGA內(nèi)部,簡化了電路又便于維護。應用FPGA就是將整個系統(tǒng)設計成各個模塊,8個雙口RAM模塊分別對應8個串口,每個串口模塊都能夠根據(jù)設置狀態(tài)寄存器的值來實現(xiàn)發(fā)送串口或者接收串口。在將某個串口設成發(fā)送的模式下,串口模塊由FPGA的定時器部分來決定每隔30 ms發(fā)一幀。我們選擇信號幀的周期是30 ms是有原因的,一個DMX512信號幀,是由一個頭是88 μs的低電平,加上零號數(shù)據(jù),再加上512個燈光數(shù)據(jù)組成,而每一個數(shù)據(jù)又都是由11位組成,其中1個啟始位,8個數(shù)據(jù)位,最后2個結(jié)束位。保持250 kb/s的速率發(fā)送的話,算出一個數(shù)據(jù)的傳輸時間是44 μs,那么一般情況下大約23 ms就可以發(fā)完一幀數(shù)據(jù)。還要考慮數(shù)據(jù)的幀和幀之間再留一些時間的空余,那么串口模塊30 ms發(fā)一幀完全符合設計要求。而MCU(Microcontroller Unit,微控制單元,又稱單片機)只需要燈光數(shù)據(jù)更新的時候才會把數(shù)據(jù)寫入每個串口所對應的雙口RAM(Random Access Memory,隨機存儲器)中,由串口模塊定時將其中數(shù)據(jù)讀走并按照固定幀格式發(fā)送出去。因此,這種機制使得MCU不需要將大量寶貴的系統(tǒng)時間花費在數(shù)據(jù)的搬運上,使得系統(tǒng)的運行更有效率、更加準確,從而提高產(chǎn)品的可靠性和安全性。
在FPGA內(nèi)設計了幾個主要應用模塊:雙口RAM模塊(見圖2),串口發(fā)送模塊,串口接收模塊。
因為此網(wǎng)絡節(jié)點控制器可以支持4到8個串口,具體每個串口是收還是發(fā)的狀態(tài),由串口模塊寄存器里的值所決定。這就會出現(xiàn)一個問題,當所有的串口都被設成是接收狀態(tài)時,就會使得這些串口都幾乎同時向雙口RAM里寫數(shù)據(jù)。為了保持燈光數(shù)據(jù)的實時性要求,MCU這時的首要任務就是盡快將數(shù)據(jù)從雙口RAM中提取出來,并打包成網(wǎng)絡數(shù)據(jù)包,再通過以太網(wǎng)發(fā)送出去。而每一個串口收到的數(shù)據(jù)幀和幀之間的間隔可能也就在25 ms到30 ms左右,這時候的數(shù)據(jù)流量將會變得異常大,MCU的整體數(shù)據(jù)處理能力畢竟有限,此時系統(tǒng)將會變得異常繁忙,這種情況對整個系統(tǒng)的穩(wěn)定性來說是非常危險的。一般說來,控制臺發(fā)過來的DMX512數(shù)據(jù),沒有辦法去減少或者限制,很可能就是一幀接著一幀連綿不斷。那么有可能避免MCU系統(tǒng)的過度疲勞嗎?筆者想從產(chǎn)品的實際工作情況中找辦法。
從一般舞臺燈光控制的經(jīng)驗來看,一場晚會或一次表演每一路燈光數(shù)據(jù)并不是時時刻刻在變化的,雖然DMX512信號數(shù)據(jù)是一幀一幀連續(xù)不斷地發(fā)出的,但是大部分的時間里,其信號數(shù)據(jù)值是相同的。如果FPGA能夠自己判斷出前后兩幀數(shù)據(jù)是否相同,那么這個問題也就迎刃而解了。這種方法的思路就是:如果前后兩幀數(shù)據(jù)值相同,MCU就可以不理會,不向網(wǎng)絡發(fā)新的數(shù)據(jù)包;如果它們不同,MCU再更新數(shù)據(jù)包。這樣網(wǎng)絡數(shù)據(jù)流量將會大大減少,MCU為搬動數(shù)據(jù)而花費的系統(tǒng)處理時間也會大大減少。
怎么比較呢?因為此時雙口RAM的切換操作控制權(quán)交給了MCU,F(xiàn)PGA本身并不能直接控制當前提取的是哪一塊的內(nèi)容。但筆者分析發(fā)現(xiàn),可以通過合理的方法來設計雙口RAM模塊功能來解決。因為串口中每一個接收進來的字節(jié)數(shù)據(jù)是放在一個特定的變量里,而根據(jù)設計的雙口RAM的特性來看,前一幀的相同路徑的數(shù)據(jù)放入雙口RAM后將會出現(xiàn)在設計的UART_RAM1_b變量里(見圖3),通過此變量數(shù)據(jù)和當前雙口RAM單元中數(shù)據(jù)比較,就可以判斷前后兩幀燈光數(shù)據(jù)是否相同了。

圖2 quartus環(huán)境里設計的雙口RAM模塊
本網(wǎng)絡節(jié)點控制器使用了W3150A加上RTL8201的組合(見圖4)。W3150A是一款硬件協(xié)議棧芯片,該芯片符合高速的數(shù)字化網(wǎng)絡連接方案,同時將TCP/IP等協(xié)議棧嵌入到硬件當中。它的基本功能是將并行的8/16位數(shù)據(jù)或高速串行數(shù)據(jù)加以處理,將數(shù)據(jù)以TCP/IP或者以UDP/IP等協(xié)議傳給以太網(wǎng)控制芯片,從而實現(xiàn)數(shù)據(jù)在以太網(wǎng)上的傳輸。RTL8201是專門用于以太網(wǎng)對接的芯片,它是一個單端口的物理層收發(fā)器,實現(xiàn)了全部的10 M/100 M以太網(wǎng)物理層功能,提供全/半雙工操作、支持雙絞線和光纖的輸出。
網(wǎng)絡連接和燈光網(wǎng)絡協(xié)議(Art-Net)的實現(xiàn),我們使用了ARTNET網(wǎng)站上的ArtView軟件來測試,這個軟件是免費提供的。在一臺PC機上安裝此軟件,打開將會出現(xiàn)以下畫面(見圖5):
用一根交叉8芯普通五類網(wǎng)線將PC機和本以太網(wǎng)絡轉(zhuǎn)接器相連,將PC機網(wǎng)卡的IP地址設成:2.0.0.1,此軟件界面就會顯示出已經(jīng)連接上了網(wǎng)絡轉(zhuǎn)接器(見圖6)。其左下角的工具欄里就會出現(xiàn),有燈光網(wǎng)絡節(jié)點設備連在網(wǎng)絡上,IP地址是2開頭的。
5.1 第一步
第一步:接收DMX512數(shù)據(jù)轉(zhuǎn)換成燈光網(wǎng)絡數(shù)據(jù)包發(fā)至以太網(wǎng)的測試。
用一個燈光控制臺發(fā)送DMX512信號給轉(zhuǎn)接器的任意一個RS-485串口端,和此控制臺相連的串口設置成接收狀態(tài),并且轉(zhuǎn)換成Universe1的網(wǎng)絡數(shù)據(jù)。轉(zhuǎn)接器通過網(wǎng)線和PC機是相連的。如果轉(zhuǎn)接器工作正常,在PC機的這個測試軟件上就可以看出512路信號的每一個值。控制臺發(fā)出的512路燈光亮度信號是32%時,軟件數(shù)據(jù)界面如下(見圖7)。
界面左下角可以看到,這512路數(shù)據(jù)是放在燈光網(wǎng)絡數(shù)據(jù)包的組Universe1里,每一路的值都收到并且顯示32%,接收到的數(shù)據(jù)完全正確了。

圖3 用Modemsim仿真軟件模擬出的UART_RAM1_b變量波形

圖4 網(wǎng)絡接口W3150A和FPGA EP1C6的連接系統(tǒng)圖

圖5 測試軟件主界面

圖6 測試軟件接收界面

圖7 測試軟件接收數(shù)據(jù)分析圖

圖9 示波器實際顯示1
5.2 第二步
第二步:由PC機發(fā)送燈光網(wǎng)絡數(shù)據(jù)包給節(jié)點控制器,并轉(zhuǎn)換成DMX512信號的測試。
還是使用一個專用測試軟件(見圖8),進入發(fā)送菜單選擇Art-Net組Universe1。
接下來進行DMX512信號的驗證實驗。將節(jié)點控制器的任意一個串口設為發(fā)送狀態(tài),接收的燈光網(wǎng)絡數(shù)據(jù)包是Universe1,那么串口就會自動發(fā)送DMX512數(shù)據(jù),用專用級示波器可以查看串口的數(shù)據(jù)格式(見圖9)。

圖8 測試軟件發(fā)送界面

圖10 示波器實際顯示2
從圖9可以看出DMX512的復位信號。根據(jù)文化行業(yè)標準WH/T-2008《DMX512-A燈光控制數(shù)據(jù)傳輸協(xié)議》要求的復位信號最小值為92 μs,本產(chǎn)品是92 μs,符合標準要求。
從示波器顯示(見圖10)中,可以看到其中一路亮度數(shù)據(jù)單元,這個單元寬度是44 μs。
因為DMX512的速率是250 kb/s,一個單元由包括起始位和停止位共11位,每一位是4 μs,完全符合DMX512數(shù)據(jù)標準。通過以上這些測試步驟,可以確定這款轉(zhuǎn)接器信號穩(wěn)定達到了設計要求。
本文提到的舞臺燈光網(wǎng)絡節(jié)點控制器,因其設計特性特別適合應用在智能燈具數(shù)量大并對燈光藝術效果要求高的演出場館,并且可靠性和安全性符合相關規(guī)范,現(xiàn)已經(jīng)在國內(nèi)大、中型場館中推廣和應用。筆者也會不斷關注其應用表現(xiàn),持續(xù)升級改進,使得此款產(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