论文部分内容阅读
【摘 要】 介绍一款舞台燈光网络节点控制器的设计特点:多串口设计、对数据传输阻塞的自动判别设计和网络接口的设计。
【关键词】 舞台灯光;网络节点;控制器;串口;剧场
文章编号: 10.3969/j.issn.1674-8239.2015.12.002
【Abstract】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.
【Key Words】stage lighting; network node; controller; serial port; theater
1 网络节点控制器的总体介绍
在舞台艺术效果呈现技术手段不断提升的今天,各类智能灯具的应用日趋成熟,规模数量也日趋庞大,以往的灯光控制系统已经不能满足于使用需求。灯光网络控制系统因其超强的数据传输能力、纠错能力和设备加载扩充能力,已被应用在很多新建的大、中型剧场中(系统示意图见图1)。在舞台灯光控制室、可控硅室、假台口、天桥和栅顶等关键部位都设计了网络控制节点,配置了强大功能的网络交换机和各种网络设备,但要使得这些剧场中的灯光设备能完全加入到这整套网络系统中来,有一样关键性的设备是不可缺少的,那就是灯光网络节点控制器。
笔者研发这款舞台灯光网络节点控制器,是通过专用灯光网络协议(Art-Net与ACN),将以太网数据映射并最终转换成普通的DMX灯光协议,把网络灯光数据转成多个串口数据并分送到各个设备上,使得终端的普通灯光设备也都能加入到整个网络控制系统中。而在后期的型式实验和工程应用的实践中,我们又不断地对其进行改进,主要在三方面做了更深层次的研究和性能提升:
(1)提出了多串口的FPGA(Field-Programmable Gate Array,现场可编程逻辑门阵列)实现方法,由普通的软件实现向用硬件可编程方式实现,这种方式可以满足每个串口都能够随时双向发送接收频率为250 kb/s的DMX512信号,最终实现8个独立的DMX512通道传输。
(2)由于灯光数据在网络上非常多并且实时性要求很高,为了防止网络阻塞,研究了FPGA上对串口信号变化及时反应,在灯光数据未发生变化时,自动降低网络数据的传输间隔,节省网络资源。
(3)选择了更合适的网络接口芯片,实现了10 M/100 M以太网络自适应和端口AutoMDI/MDIX自适应功能。
2 网络节点控制器的多串口设计
由FPGA来实现多个串口。FPGA本身资源比较丰富,缓冲内存可以做在FPGA内部,简化了电路又便于维护。应用FPGA就是将整个系统设计成各个模块,8个双口RAM模块分别对应8个串口,每个串口模块都能够根据设置状态寄存器的值来实现发送串口或者接收串口。在将某个串口设成发送的模式下,串口模块由FPGA的定时器部分来决定每隔30 ms发一帧。我们选择信号帧的周期是30 ms是有原因的,一个DMX512信号帧,是由一个头是88 μs的低电平,加上零号数据,再加上512个灯光数据组成,而每一个数据又都是由11位组成,其中1个启始位,8个数据位,最后2个结束位。保持250 kb/s的速率发送的话,算出一个数据的传输时间是44 μs,那么一般情况下大约23 ms就可以发完一帧数据。还要考虑数据的帧和帧之间再留一些时间的空余,那么串口模块30 ms发一帧完全符合设计要求。而MCU(Microcontroller Unit,微控制单元,又称单片机)只需要灯光数据更新的时候才会把数据写入每个串口所对应的双口RAM(Random Access Memory,随机存储器)中,由串口模块定时将其中数据读走并按照固定帧格式发送出去。因此,这种机制使得MCU不需要将大量宝贵的系统时间花费在数据的搬运上,使得系统的运行更有效率、更加准确,从而提高产品的可靠性和安全性。
在FPGA内设计了几个主要应用模块:双口RAM模块(见图2),串口发送模块,串口接收模块。
3 对数据传输阻塞的自动判别设计
因为此网络节点控制器可以支持4到8个串口,具体每个串口是收还是发的状态,由串口模块寄存器里的值所决定。这就会出现一个问题,当所有的串口都被设成是接收状态时,就会使得这些串口都几乎同时向双口RAM里写数据。为了保持灯光数据的实时性要求,MCU这时的首要任务就是尽快将数据从双口RAM中提取出来,并打包成网络数据包,再通过以太网发送出去。而每一个串口收到的数据帧和帧之间的间隔可能也就在25 ms到30 ms左右,这时候的数据流量将会变得异常大,MCU的整体数据处理能力毕竟有限,此时系统将会变得异常繁忙,这种情况对整个系统的稳定性来说是非常危险的。一般说来,控制台发过来的DMX512数据,没有办法去减少或者限制,很可能就是一帧接着一帧连绵不断。那么有可能避免MCU系统的过度疲劳吗?笔者想从产品的实际工作情况中找办法。
从一般舞台灯光控制的经验来看,一场晚会或一次表演每一路灯光数据并不是时时刻刻在变化的,虽然DMX512信号数据是一帧一帧连续不断地发出的,但是大部分的时间里,其信号数据值是相同的。如果FPGA能够自己判断出前后两帧数据是否相同,那么这个问题也就迎刃而解了。这种方法的思路就是:如果前后两帧数据值相同,MCU就可以不理会,不向网络发新的数据包;如果它们不同,MCU再更新数据包。这样网络数据流量将会大大减少,MCU为搬动数据而花费的系统处理时间也会大大减少。 怎么比较呢?因为此时双口RAM的切换操作控制权交给了MCU,FPGA本身并不能直接控制当前提取的是哪一块的内容。但笔者分析发现,可以通过合理的方法来设计双口RAM模块功能来解决。因为串口中每一个接收进来的字节数据是放在一个特定的变量里,而根据设计的双口RAM的特性来看,前一帧的相同路径的数据放入双口RAM后将会出现在设计的UART_RAM1_b变量里(见图3),通过此变量数据和当前双口RAM单元中数据比较,就可以判断前后两帧灯光数据是否相同了。
4 有关接口的设计
本网络节点控制器使用了W3150A加上RTL8201的组合(见图4)。W3150A是一款硬件协议栈芯片,该芯片符合高速的数字化网络连接方案,同时将TCP/IP等协议栈嵌入到硬件当中。它的基本功能是将并行的8/16位数据或高速串行数据加以处理,将数据以TCP/IP或者以UDP/IP等协议传给以太网控制芯片,从而实现数据在以太网上的传输。RTL8201是专门用于以太网对接的芯片,它是一个单端口的物理层收发器,实现了全部的10 M/100 M以太网物理层功能,提供全/半双工操作、支持双绞线和光纤的输出。
5 产品测试和系统分析
网络连接和灯光网络协议(Art-Net)的实现,我们使用了ARTNET网站上的ArtView软件来测试,这个软件是免费提供的。在一台PC机上安装此软件,打开将会出现以下画面(见图5):
用一根交叉8芯普通五類网线将PC机和本以太网络转接器相连,将PC机网卡的IP地址设成:2.0.0.1,此软件界面就会显示出已经连接上了网络转接器(见图6)。其左下角的工具栏里就会出现,有灯光网络节点设备连在网络上,IP地址是2开头的。
5.1 第一步
第一步:接收DMX512数据转换成灯光网络数据包发至以太网的测试。
用一个灯光控制台发送DMX512信号给转接器的任意一个RS-485串口端,和此控制台相连的串口设置成接收状态,并且转换成Universe1的网络数据。转接器通过网线和PC机是相连的。如果转接器工作正常,在PC机的这个测试软件上就可以看出512路信号的每一个值。控制台发出的512路灯光亮度信号是32%时,软件数据界面如下(见图7)。
界面左下角可以看到,这512路数据是放在灯光网络数据包的组Universe1里,每一路的值都收到并且显示32%,接收到的数据完全正确了。
5.2 第二步
第二步:由PC机发送灯光网络数据包给节点控制器,并转换成DMX512信号的测试。
还是使用一个专用测试软件(见图8),进入发送菜单选择Art-Net组Universe1。
接下来进行DMX512信号的验证实验。将节点控制器的任意一个串口设为发送状态,接收的灯光网络数据包是Universe1,那么串口就会自动发送DMX512数据,用专用级示波器可以查看串口的数据格式(见图9)。
从图9可以看出DMX512的复位信号。根据文化行业标准WH/T-2008《DMX512-A灯光控制数据传输协议》要求的复位信号最小值为92 μs,本产品是92 μs,符合标准要求。
从示波器显示(见图10)中,可以看到其中一路亮度数据单元,这个单元宽度是44 μs。
因为DMX512的速率是250 kb/s,一个单元由包括起始位和停止位共11位,每一位是4 μs,完全符合DMX512数据标准。通过以上这些测试步骤,可以确定这款转接器信号稳定达到了设计要求。
6 结束语
本文提到的舞台灯光网络节点控制器,因其设计特性特别适合应用在智能灯具数量大并对灯光艺术效果要求高的演出场馆,并且可靠性和安全性符合相关规范,现已经在国内大、中型场馆中推广和应用。笔者也会不断关注其应用表现,持续升级改进,使得此款产品在各类演出中发挥出更大的作用。
(编辑 张冠华)
【关键词】 舞台灯光;网络节点;控制器;串口;剧场
文章编号: 10.3969/j.issn.1674-8239.2015.12.002
【Abstract】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.
【Key Words】stage lighting; network node; controller; serial port; theater
1 网络节点控制器的总体介绍
在舞台艺术效果呈现技术手段不断提升的今天,各类智能灯具的应用日趋成熟,规模数量也日趋庞大,以往的灯光控制系统已经不能满足于使用需求。灯光网络控制系统因其超强的数据传输能力、纠错能力和设备加载扩充能力,已被应用在很多新建的大、中型剧场中(系统示意图见图1)。在舞台灯光控制室、可控硅室、假台口、天桥和栅顶等关键部位都设计了网络控制节点,配置了强大功能的网络交换机和各种网络设备,但要使得这些剧场中的灯光设备能完全加入到这整套网络系统中来,有一样关键性的设备是不可缺少的,那就是灯光网络节点控制器。
笔者研发这款舞台灯光网络节点控制器,是通过专用灯光网络协议(Art-Net与ACN),将以太网数据映射并最终转换成普通的DMX灯光协议,把网络灯光数据转成多个串口数据并分送到各个设备上,使得终端的普通灯光设备也都能加入到整个网络控制系统中。而在后期的型式实验和工程应用的实践中,我们又不断地对其进行改进,主要在三方面做了更深层次的研究和性能提升:
(1)提出了多串口的FPGA(Field-Programmable Gate Array,现场可编程逻辑门阵列)实现方法,由普通的软件实现向用硬件可编程方式实现,这种方式可以满足每个串口都能够随时双向发送接收频率为250 kb/s的DMX512信号,最终实现8个独立的DMX512通道传输。
(2)由于灯光数据在网络上非常多并且实时性要求很高,为了防止网络阻塞,研究了FPGA上对串口信号变化及时反应,在灯光数据未发生变化时,自动降低网络数据的传输间隔,节省网络资源。
(3)选择了更合适的网络接口芯片,实现了10 M/100 M以太网络自适应和端口AutoMDI/MDIX自适应功能。
2 网络节点控制器的多串口设计
由FPGA来实现多个串口。FPGA本身资源比较丰富,缓冲内存可以做在FPGA内部,简化了电路又便于维护。应用FPGA就是将整个系统设计成各个模块,8个双口RAM模块分别对应8个串口,每个串口模块都能够根据设置状态寄存器的值来实现发送串口或者接收串口。在将某个串口设成发送的模式下,串口模块由FPGA的定时器部分来决定每隔30 ms发一帧。我们选择信号帧的周期是30 ms是有原因的,一个DMX512信号帧,是由一个头是88 μs的低电平,加上零号数据,再加上512个灯光数据组成,而每一个数据又都是由11位组成,其中1个启始位,8个数据位,最后2个结束位。保持250 kb/s的速率发送的话,算出一个数据的传输时间是44 μs,那么一般情况下大约23 ms就可以发完一帧数据。还要考虑数据的帧和帧之间再留一些时间的空余,那么串口模块30 ms发一帧完全符合设计要求。而MCU(Microcontroller Unit,微控制单元,又称单片机)只需要灯光数据更新的时候才会把数据写入每个串口所对应的双口RAM(Random Access Memory,随机存储器)中,由串口模块定时将其中数据读走并按照固定帧格式发送出去。因此,这种机制使得MCU不需要将大量宝贵的系统时间花费在数据的搬运上,使得系统的运行更有效率、更加准确,从而提高产品的可靠性和安全性。
在FPGA内设计了几个主要应用模块:双口RAM模块(见图2),串口发送模块,串口接收模块。
3 对数据传输阻塞的自动判别设计
因为此网络节点控制器可以支持4到8个串口,具体每个串口是收还是发的状态,由串口模块寄存器里的值所决定。这就会出现一个问题,当所有的串口都被设成是接收状态时,就会使得这些串口都几乎同时向双口RAM里写数据。为了保持灯光数据的实时性要求,MCU这时的首要任务就是尽快将数据从双口RAM中提取出来,并打包成网络数据包,再通过以太网发送出去。而每一个串口收到的数据帧和帧之间的间隔可能也就在25 ms到30 ms左右,这时候的数据流量将会变得异常大,MCU的整体数据处理能力毕竟有限,此时系统将会变得异常繁忙,这种情况对整个系统的稳定性来说是非常危险的。一般说来,控制台发过来的DMX512数据,没有办法去减少或者限制,很可能就是一帧接着一帧连绵不断。那么有可能避免MCU系统的过度疲劳吗?笔者想从产品的实际工作情况中找办法。
从一般舞台灯光控制的经验来看,一场晚会或一次表演每一路灯光数据并不是时时刻刻在变化的,虽然DMX512信号数据是一帧一帧连续不断地发出的,但是大部分的时间里,其信号数据值是相同的。如果FPGA能够自己判断出前后两帧数据是否相同,那么这个问题也就迎刃而解了。这种方法的思路就是:如果前后两帧数据值相同,MCU就可以不理会,不向网络发新的数据包;如果它们不同,MCU再更新数据包。这样网络数据流量将会大大减少,MCU为搬动数据而花费的系统处理时间也会大大减少。 怎么比较呢?因为此时双口RAM的切换操作控制权交给了MCU,FPGA本身并不能直接控制当前提取的是哪一块的内容。但笔者分析发现,可以通过合理的方法来设计双口RAM模块功能来解决。因为串口中每一个接收进来的字节数据是放在一个特定的变量里,而根据设计的双口RAM的特性来看,前一帧的相同路径的数据放入双口RAM后将会出现在设计的UART_RAM1_b变量里(见图3),通过此变量数据和当前双口RAM单元中数据比较,就可以判断前后两帧灯光数据是否相同了。
4 有关接口的设计
本网络节点控制器使用了W3150A加上RTL8201的组合(见图4)。W3150A是一款硬件协议栈芯片,该芯片符合高速的数字化网络连接方案,同时将TCP/IP等协议栈嵌入到硬件当中。它的基本功能是将并行的8/16位数据或高速串行数据加以处理,将数据以TCP/IP或者以UDP/IP等协议传给以太网控制芯片,从而实现数据在以太网上的传输。RTL8201是专门用于以太网对接的芯片,它是一个单端口的物理层收发器,实现了全部的10 M/100 M以太网物理层功能,提供全/半双工操作、支持双绞线和光纤的输出。
5 产品测试和系统分析
网络连接和灯光网络协议(Art-Net)的实现,我们使用了ARTNET网站上的ArtView软件来测试,这个软件是免费提供的。在一台PC机上安装此软件,打开将会出现以下画面(见图5):
用一根交叉8芯普通五類网线将PC机和本以太网络转接器相连,将PC机网卡的IP地址设成:2.0.0.1,此软件界面就会显示出已经连接上了网络转接器(见图6)。其左下角的工具栏里就会出现,有灯光网络节点设备连在网络上,IP地址是2开头的。
5.1 第一步
第一步:接收DMX512数据转换成灯光网络数据包发至以太网的测试。
用一个灯光控制台发送DMX512信号给转接器的任意一个RS-485串口端,和此控制台相连的串口设置成接收状态,并且转换成Universe1的网络数据。转接器通过网线和PC机是相连的。如果转接器工作正常,在PC机的这个测试软件上就可以看出512路信号的每一个值。控制台发出的512路灯光亮度信号是32%时,软件数据界面如下(见图7)。
界面左下角可以看到,这512路数据是放在灯光网络数据包的组Universe1里,每一路的值都收到并且显示32%,接收到的数据完全正确了。
5.2 第二步
第二步:由PC机发送灯光网络数据包给节点控制器,并转换成DMX512信号的测试。
还是使用一个专用测试软件(见图8),进入发送菜单选择Art-Net组Universe1。
接下来进行DMX512信号的验证实验。将节点控制器的任意一个串口设为发送状态,接收的灯光网络数据包是Universe1,那么串口就会自动发送DMX512数据,用专用级示波器可以查看串口的数据格式(见图9)。
从图9可以看出DMX512的复位信号。根据文化行业标准WH/T-2008《DMX512-A灯光控制数据传输协议》要求的复位信号最小值为92 μs,本产品是92 μs,符合标准要求。
从示波器显示(见图10)中,可以看到其中一路亮度数据单元,这个单元宽度是44 μs。
因为DMX512的速率是250 kb/s,一个单元由包括起始位和停止位共11位,每一位是4 μs,完全符合DMX512数据标准。通过以上这些测试步骤,可以确定这款转接器信号稳定达到了设计要求。
6 结束语
本文提到的舞台灯光网络节点控制器,因其设计特性特别适合应用在智能灯具数量大并对灯光艺术效果要求高的演出场馆,并且可靠性和安全性符合相关规范,现已经在国内大、中型场馆中推广和应用。笔者也会不断关注其应用表现,持续升级改进,使得此款产品在各类演出中发挥出更大的作用。
(编辑 张冠华)