朱学莉 董 博
(1:硅湖职业技术学院,昆山 215332; 2:博泽汽车技术企业管理(中国)有限公司,上海 201805)
DMX512通信协议是一种数字化娱乐灯光设备通用控制协议,被广泛应用于娱乐照明行业.该通信协议因其简单、实用和高效的特点,在包括电脑灯在内的各种舞台效果灯、调光控制器、控制台、换色器、电动吊杆等各种舞台灯光设备中得到了广泛的应用.但是,DMX512通信协议的帧结构中没有校验手段,因此在一些电磁环境复杂的场合下,会出现灯光意外闪烁或丢失控制信息等现象,严重影响整体视觉效果.
舞台灯光是舞台表演的重要组成部分之一,舞台灯光控制技术的高低直接影响着舞台表演最终效果.随着科技不断发展创新,也对舞台灯光的控制提出了更高的要求.近年来,对舞台灯光控制技术的研究是舞台照明行业的热点之一,文献[1]研究了DMX512协议的传输特性;文献[2]介绍了LED灯具的DMX512协议应用系统;文献[3]给出了基于DMX512协议的激光电脑灯设计设计方案;文献[4]和文献[5]则偏重于舞台灯光控制技术的研究.这些研究主要偏重于DMX512的实际应用效果及相关设备的控制技术,缺乏对DMX512协议本身的研究与改进.本文在DMX512应用系统的基础上,针对DMX512通信协议的不足,设计了一种能够抑制脉冲干扰的中继设备,可以大大改善DMX512通信协议的应用效果.
DMX512通信协议包括电气特性、数据协议、数据格式等方面的内容.该协议由美国剧场技术协会(United State Institute for Theatre Technology,USITT)于1986年8月提出.
协议给出了一个在EIA-485差分通道上传送单帧多达512字节控制信息的数据传输标准,后在1990年和2004年进行了进一步修改,目前最新版本为《DMX512-A Digital Data Transmission Standard for Lighting Control,ANSI E1.11-2004》.
协议的国内版本为《DMX512-A 灯光控制数据传输协议》,由中国演艺设备技术协会演出场馆设备专业委员会起草,并进行了注册信息管理.
DMX是Digital MultipleX的缩写,意为数字多路复用,协议名称中的512代表单帧的最长数据字节数,理论上单条DMX512总线上可以挂载多达512个最小控制单位(如单个光源的亮度,电机转动角度等).协议以符合EIA-485的串行方式发送和接受数据,标准波特率为250kbps,单个位发送时间为4μs,完整的单帧最长发送时间约为22ms,数据刷新率可达到40Hz以上.
DMX512采用异步通信格式,协议起始部分由复位段和数据段组成.复位段由BREAK(复位信号),MAB(复位后标)和START Code(起始码)组成.包括起始码在内,每个控制信息字节由11位构成,其中包括1个起始位,8位数据和2个停止位.每字节控制信息可以表示0~255之间不同的值.DMX512-A的帧结构如图1所示.
图1 DMX512-A的帧结构Fig.1 DMX512-A frame structure
通用异步收发传输器(Universal Asynchronous Receiver/Tran-smitter,UART)输出及接收器的时序图值见表1和表2.
表1 发送UART的输出时序图值Table 1 Timing Diagram Values-Output Tranmitting UART
表2 接收器的时序图值Table 2 Timing Diagram Values for Reseivers
DMX512通信协议的一个不足之处是帧结构中缺少校验手段,并且数据只能被单向由主机向所有从机发送,从机无法识别到通信过程中产生的错误,因此也无法对错误状态进行反馈.
这个设计上的不足导致在一些电磁环境复杂的场合下,主机发送的数据易受其他环境耦合至数据总线的差模干扰,主机发送的指令不能被正确执行.例如,当建筑立面/舞台灯光照明等可调光设备搭配用于调节灯具照射角度的电动机使用时,由于公用电源线路和布线方式等原因,电机启停时容易对通信线路造成干扰,这种脉冲干扰会导致灯光意外闪烁或丢失控制信息,影响整体视觉效果.
解决此种干扰有两种办法.一种是使用DMX512协议保留的EF扩展,可将备用通信线路作为冗余数据线路,或使用备用通信线路以更高的速率发送控制信息以实现数据的冗余发送和校验/反馈等功能,以此达到抑制通信干扰的目的.此种方法的优点是给开发设计者提供了灵活的扩展方式和优良的综合效果,但不足之处也很明显:系统和通信协议复杂程度高,开发周期长且方案通用程度差,设备的可复用性低,难以普及推广.此外,在成本方面,会带来线路材料及敷设成本大幅上升、需要采购配套的设备等问题.
另一种解决办法是在DMX512网络的局部或分支末端采用中继器进行自定协议扩展,这种方案同样有复杂、通用性差的问题,但相对以第一种解决办法,通信协议的复杂程度可以大大降低,可以采用低成本、结构简单的中继器进行协议中转,线路材料和敷设成本较普通方案并无明显增加.
本文即采用了后一种解决方案,对DMX512协议进行了简单的扩展,其中继设备可选择工作在普通DMX512模式或增强改进模式下,通过低成本、相对简单的方式提高了对线路干扰的抑制能力.
抑制干扰中继器是一种以MCU为核心的通信系统,其作用是对DMX512规范进行扩展,工作原理是利用MCU配以电平转换及隔离等电路来提升DMX512网络局部传输速率,从而实现了传输数据的冗余校验,提高了数据传输的可靠性[6].
本文所述协议相对DMX512规范的扩展主要在于提高子网内通信速率和冗余发送控制信息方面.
通信线路上的干扰会带来设备的运行异常,即便是添加了校验手段,接收端能判断出数据发生错误的情况下也仅能保证该错误控制信息不被执行.在某些特定的情况下,如出现灯光闪烁、方向跳动等情况时,丢弃错误的控制信息帧会导致短时动作不能被执行.采用纠错编码的方式受限于MCU的运算能力,且被干扰改变的控制位不可多于1~2位,否则亦不能正确还原控制信息.本文采用下述方式对信息帧结构做出扩展,即在原有的MDX512帧末尾加入CRC-16校验和及被重复转发的帧编号.
干扰抑制中继器(以下简称中继器)采用了一种简单的DMX512通信协议扩展,可以在子网或局部提升通信速率以冗余发送控制信息,从而使电机等设备随机产生的短时脉冲干扰的影响降低到最小.
中继器的基本工作原理为:在子网内或局部提升通信速率至500kbps,所有的子网设备需要支持加倍的通信速率,并可由DMX512规范所保留的ASC(Alternate START Code)对子网设备进行相应的调整和设置,设备可以工作在普通的DMX512协议模式下,也可在复杂的干扰情况下切换到抗干扰增强模式.
为了降低延时影响,中继器在接收到控制台单帧信息的一半时开始以双倍速率在信号输出端以扩展协议的方式开始转发,当接收到控制台数据帧的尾字节后,中继器按照扩展协议所定义的校验方式将校验段和转发编号放置在末尾发出,同时重新开始发送接收到的数据帧,当此数据帧第二次被发送后,新的控制台数据帧已有一半到达.脉冲干扰抑制器的具体信号时序如图2所示.
图2 脉冲干扰中继器的信号流程Fig.2 Signal flow of impusle interference repeater
接收设备按照如下方式工作.依次收到转发编号为A1和A2的两帧后,接收端根据下述逻辑选择是否刷新数据或指令:①当两帧的校验段都正确时,使用该数据或指令;②当两帧中校验段均错误时,延续使用上一帧的数据和指令;③当两帧中仅有一帧校验段正确时,使用正确帧数据,丢弃校验错误的数据.
中继器的信号输入端为控制台引出的RS485数据线,信号输出端为子网RS485数据线.在各种应用中,干扰通常是通过电源线耦合至通信线路,所以中继器应该尽量放置在靠近控制设备的信号输出端口附近,以降低原始控制信号被干扰的可能性.
本文设计的短时脉冲干扰抑制中继器是一种以MCU为核心的通信系统.采用PIC24FV32KA304作为主控MCU,按照DMX512协议的基本要求,使用6N137和DCV010505对电源和通信线路进行隔离,系统的原理框图如图3所示.
图3 中继器的原理框图Fig.3 Principle diagram of repeater
主控PIC24FV32KA304是MicroChip公司设计生产的一款低成本的16位RISC微控制器.此款MCU采用改进型的哈佛架构,带有32KB Flash和2KB RAM存储器,在系统时钟为32MHz时可以达到最高16MIPS的处理能力,该MCU具有丰富的外设资源,尤其是适用于本应用的CRC循环冗余校验发生器和带有4级深FIFO接收/发送缓冲区的UART模块.
UART1负责接收控制台发送的控制信息,通信速率为250kbps, UART2负责将数据以原始数据速率的两倍即500kbps转发到子网.在侦测到帧的起始部分后,MCU将收到的数据逐一保存在一个516字节的缓冲区内,并计算更新CRC-16数据校验和,当控制台信息发送到258字节时,MCU将保存的数据开始将之前收到的258字节以二倍速率按次序通过UART2发出,同时UART1继续接收控制台数据.当控制台数据帧发送到低512字节时,MCU将根据CRC-16计算出的校验和及转发编号放置在缓冲区末尾,继续UART2完成整个帧的发送.发送结束后,MCU再次将缓冲区数据由UART2重新发送一次,以此实现二次冗余发送.
软件包含中继器和接收设备两部分,其中,中继器转发功能部分的程序流程如图4所示.在通过外部中断和计时器侦测到的正确起始信号(BREAK)后,MCU进入UART1接收中断.流程图中的延时部分、发送长度及缓冲区长度可以由上位机界面使用保留ASC设置,存储在中继器的EEPROM中,以适应不同的应用环境.接收设备根据控制信息尾部的转发帧编号辅助判断,接收长度和缓冲区长度同样可以用上述方法设置并保存在EEPROM中.
图4 中继器的软件流程图Fig.4 Software diagram of repeater
图5 总线实际数据图Fig.5 Actual data diagram of bus
图5显示了中继器工作时通过差分探头测得的总线实际数据波形图.由图可见,上方通道为控制器发出的原始DMX512控制信息帧,信息为512满字节发送.下方通道为经过抑制器转发的控制信息帧.可见该中继器可以很好实现本文提出的设计要求,在不同数据长度的情况下中继器亦能按照要求转发数据.在实际的抗干扰测试中,使用了一台直流电机和灯具对设备进行测试,经统计,该方案可以有效减少95%以上特定通信干扰环境下的运行错误.
本文在DMX512应用系统的基础上,给出了一种短时脉冲干扰抑制的中继器的设计方案,采用该装置可以大大减少短时脉冲干扰,提高了系统的可靠性.该协议改进方案具有以下优点:
(1) 对DMX512原有协议改动较小,简单且容易实现.
(2) 实现了数据冗余接收,可以大大减少脉冲干扰时的丢帧现象.
(3) 通用性相对较强,厂商可以提供与设备配套的中继器,并可通过上位机界面来配置中继器和灯具工作在普通DMX512模式或协议扩展模式.
(4) 方案低成本、结构简单、易于推广,极具工程应用价值.
参 考 文 献
[1] 韩振雷,齐立森.DMX512灯光控制传输协议的传输特性及应用要点分析[J].灯与照明,2009,33(1):44-47.
[2] 黄以华,廖世文,刘燕林,蔡如海.基于DMX512协议的LED灯具控制系统[J].照明工程学报,2009,20(4):48-53.
[3] 于明.基于DMX512协议的激光电脑灯的设计与研究[D].长春:吉林大学,2012.
[4] 赵宏.舞台灯光控制技术及其发展探析[J].戏剧之家,2015(8):52.
[5] 许青.舞台灯光控制技术及其发展研究[J].戏剧之家,2015(1):104.
[6] 沈虎,吕绍和,王晓东,周兴铭.一种应用干扰消除进行冲突消解的分布式无线MAC协议[J].计算机科学,2014,41(12):60-66.