当前位置:文档之家› 基于DMX512协议的灯光控制信号无线传输设计

基于DMX512协议的灯光控制信号无线传输设计

基于DMX512协议的灯光控制信号无线传输设计引言

随着数字化技术和计算机技术的广泛普及,舞台和演播厅等灯光控制系统由传统的模拟控制转变为数字控制。为了解决各厂家设备兼容性问题,美国剧场技术协会(USITT)制定了DMX512协议标准。由于该协议简单实用,目前几乎所有的灯光及舞台设备生产厂商都支持该控制协议,使之成为灯光控制的国际标准。由于协议规定DMX512信号通过EIA-485有线线缆进行传输,这就造成在条件不利于有线布线的环境下设备安装困难。因此,设计一种短距离无线通信系统来代替有线线缆完成信号的传输就显得十分必要。

1.DMX512协议简介

DMX512协议适用于一点对多点的主从式灯光控制系统,主控制器往总线发送控制时序,总线上的其他从灯光设备接收总线数据,提取其对应通道的数据,完成控制信号的接收。

协议规定控制信号数据包的传输通过异步通信的方式进行。一个DMX512数据包包含起始码和512个数据帧。数据帧内包含1个起始位(低电平)、8个位数据和2个停止位(高电平),没有奇偶校验。DMX512的信号数据传输率为250 kbps,数据帧每位宽度为4μs,发送一帧需要44μs。一个数据帧代表了一路控制通道,因此该协议支持512路控制通道。一般舞台灯光设备可以同时接受多路通道控制。接受的通道数越多,接收的控制数据量也越大,灯光的表现能力也就越强。譬如,某些舞台激光灯可以根据需要投射出不同图案、颜色甚至字符。DMX512数据包的传输要符合一定的格式和时序要求。主要包含1个至少88μs 的低电平输出起始标志(Break)、起始码帧、512个数据帧和最后的数据包结束标志(高电平)。控制器和接收器只有满足DMX512数据包的时序要求,才能正常完成主从机之间的通信。具体的信号时序如图1所示。

2系统硬件设计

2.1系统设计框图

系统设计的目的是利用无线传输代替有线电缆,解决有线布线困难的问题,因此在设计上必须满足轻便易安置的条件,以保证与原有线系统无缝结合。如图2所示,整个系统的硬件结构由微控制器单元(MCU)、射频收发单元和电源管理单元3部分组成。

在工作方式上,一方面发射模块的MCU单元接收DMX512控制端的总线数据,分析并拆解总线数据,然后将数据经过适当处理之后通过射频发送单元发送出去;另一方面接收模块在接收无线数据之后,由MCU单元将数据整合重组,在接收端总线恢复DMX512控制信号。这样设计的好处是可以将有线和无线传输相结合。在接收端架设一个无线接收模块就可以保证该区域DMX512控制信号得到有效传输,并不需要为每个设备都安置一个无线接收模块。

2.2微控制器单元

本系统的微控制器采用了STC系列单片机STC12C5410。该单片机含有12KB 的Flash存储器、512字节RAM、异步串口(UART)和内部PLL单元等。内置的SPI总线控制器可以方便地与射频芯片CC1100通信,而内部的ISP(在线可编程)模块允许用户直接通过串口下载程序,给系统软件升级带来便捷条件。由于DMX512的数据波特率为250kbps,所以选取16MHz晶振作为时钟源,以便产生同频波特率。

2.3射频收发单元

CC1100是一款低功耗单片射频收发芯片,具有通信距离远、功耗低、接口灵活等优点。该芯片主要设定工作在315MHz、433MHz、868MHz和915MHz 的工业、科学和医学波段;数据速率支持1.2~500kbps的可编程控制;提供-30~10dBm的输出功率;最大空地发射距离大于200m,工作电压为1.8~

3.6V;最大支持64字节的接收和发送FIFO。设计人员可以通过SPI接口完成内部寄存器配置,读写接收/发送FIFO等内部控制。

2.4接口电路设计

接口电路的设计主要包括2部分:DMX512总线与单片机之间的通信,以及单片机控制CC1100射频模块收发数据。由于DMX512总线数据帧格式与通用异步串口(UART)格式基本兼容,因此系统与DMX512总线的通信利用串口通信接口。但DMX512信号的电气接口标准是EIA-485,与单片机的TTL电平接口不兼容,要实现相互通信,需要采用电平转换芯片作为桥接电路。在分解和还原DMX512总线数据上,分别采用MC3486和MC3487。在系统发送端,通过MC3486将DMX512总线的差分数据转换为TTL电平数据,由单片机的串口接收数据;另外,串口的该引脚还同时连接到单片机的P3.2/INTO口,用于识别DMX512总线的起始标志(Break),提前通知单片机准备接收总线数据。在系统接收端,通过MC3487将单片机串口TTL电平数据转换为DMX512差分数据。

对CC1100的内部寄存器配置和FIFO单元读写都通过单片机4线SPI总线接口来完成。MISO和MOSI分别是数据发送、接收端口,SCLK是同步时钟,SS用作器件的片选信号。CC1100的GD02信号用作内部FIFO的状态信号,用于提示单片机FIFO空间已满。发射和接收模块接口示意图如图3所示,发射模块与接收模块的结构基本一致,只是通信数据流方向相反。

3系统软件实现

3.1主要程序流程

系统上电后首先进行初始化配置,包括I/O端口输入/输出状态配置、串口配置、SPI接口设置、CC1100寄存器配置,以及无线传输数据格式的配置,

使系统处于正常工作状态。此时主发射模块等待DMX512总线数据的到来。一旦DMX512数据包起始标志出现,即打开单片机串口,等待串口接收中断产生。中断产生之后单片机缓存总线数据,激活CC1100,并向其发送FIFO中写入发送数据,然后无线发送出去。

接收模块的工作流程和发送模块相反。在初始化完成之后,单片机设置好CC1100的FIFO寄存器,等待FIFO产生外部中断。这里外部中断被用作无线数据接收成功的标志。FIFO中断产生后,单片机通过SPI总线缓存FIFO中的数据,并立刻通过串口模拟DMX512时序,恢复总线信号,完成信号的无线传输。发送和接收数据流程如图4所示。

3.2自定义通信数据格式

虽然CC1100的传输数率比DMX512的时序速率要高,但毕竟CC1100的FIFO有限,不可能把一个DMX512数据包一次性全部发送出去,因此在主从端之问必须协商一种合适的数据通信格式。CC1100支持4种格式的数据包,分别是:定长(小于255字节)、变长(小于255字节)、无限长和有限长。完整的数据包包括前导码、同步字、数据长度、地址、有效数据和CRC校验。本系统采用有效数据为32字节的有限长格式,具体的数据格式如下:

相关主题