DMX512灯光控制信号无线传输方案

时间:22-12-09 网友

基于CC1100设计的DMX512灯光控制信号无线传输系统 (1)

引 言

随着数字化技术和计算机技术的广泛普及,舞台和演播厅等灯光控制系统由传统的模拟控制转变为数字控制。为了解决各厂家设备兼容性问题,美国剧场技术协会(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所示。

word/media/image1.jpeg

2 系统硬件设计

2.1 系统设计框图

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

word/media/image2.jpeg

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

2.2 微控制器单元

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

2.3 射频收发单元

CC1100是一款低功耗单片射频收发芯片,具有通信距离远、功耗低、接口灵活等优点。该芯片主要设定工作在315 MHz、433 MHz、868 MHz和915 MHz的工业、科学和医学波段;数据速率支持1.2~500 kbps的可编程控制;提供-30~10 dBm的输出功率;最大空地发射距离大于200 m,工作电压为1.8~3.6 V;最大支持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所示,发射模块与接收模块的结构基本一致,只是通信数据流方向相反。

word/media/image3.jpeg

485与75176通讯电路

DMX512协议是美国舞台灯光协会(USITT)于1990年发布的一种灯光控制器与灯具设备进行数据传输的标准。这包括电气特性、数据协议、数据格式等各方面的内容。

DMX512电气特性与RS-485完全兼容,包括驱动器/接收器的选择、线路负载和多站配置等方面的要求都是一致的。

DMX512数据协议规定使用250Kbps的波特率。

在进行正常数据传输之前,发送1个复位信号,声明数据传输的开始。随后的第1帧数据称

为起始代码,其中包含设备类型码,以指明后续数据的接收设备的类型。最后,按设备编号的顺序给每个设备发送1帧数据,依次为:1#设备数据帧、2#设备数据帧,直至最后一个设备。设备总数最多可达512个,数据帧间隔为高电平,最长不超过1s。DMX512数据格式规定,1帧数据长度为11位。按传送顺序说明如下: 字串1第1位——起始位,低电平(SPACE); 字串8第2~9位——数据位,从最低位到最高位(LSB~MSB),正逻辑; 字串8第10、11位——停止位,高电平(MARK); 字串8奇偶校验位——不传送。

一般来说具有RS-232接口的单片机都可以实现的。

word/media/image4.jpeg

RS-485自收发电路的参考设计

2011年01月20日 07:53 本站整理 作者:译名 用户评论(0)

关键字:RS-485,收发电路(1)

  RS-485标准在工业控制、电力通讯、智能仪表等领域中使用广泛。但是,在工业控制等现场环境中,情况复杂,常会有电气噪声干扰传输线路;在多系统互联时,不同系统的地之间会存在电位差,形成接地环路,会干扰整个系统,严重时会造成系统的灾难性损毁;还可能存在损坏设备或危害人员的潜在电流浪涌等高电压或大电流。因此,对RS-485接口的隔离是非常有必要的。

  ADM2483是一款集成了信号通道隔离和RS-485收发器的芯片。以单芯片实现了对RS-485接口的隔离,电路连接简单,设计方便,性能上远高于繁琐的光耦隔离485电路设计。在某些系统应用中,由于I/O口数量有限,因此我们希望半双工的RS-485收发器能够实现自收发功能,以节省用于控制RE与DE的两路I/O端口。目前,实现这一功能的主流方案是采用74HC14芯片。下面,我们采用74HC14与ADM2483实现RS-485接口的信号隔离自收发设计。

  硬件电路

  隔离RS-485接口电路

  之前我们经常采用的485接口隔离电路是利用三个光耦隔离收发及控制信号,加上485收发器共需要4片IC,且采用光耦隔离需要限流及输出上拉电阻,必要时还会使用三极管驱动。设计电路繁琐,耗费时间长,如果没有之前使用光耦的经验,那么在选用光耦限流及输出上拉电阻方面会耗费很多不必要的时间;且光耦的输出信号上升时间较长,在与数字I/O端口相接时,需另加施密特整形才能保证信号的波形符合标准,如在FPGA、DSP等系统中的应用。

  ADM2483是内部集成了磁隔离通道和485收发器的芯片,内部集成的磁隔离通道原理与光耦不同,在输入输出端分别有编码解码电路和施密特整形电路,确保了输出波形的质量。且磁隔离功耗仅为光耦的1/10,传输延时为ns级,从直流到高速信号的传输都具有超越光耦的性能优势。内部集成的低功耗485收发器,信号传输速率可达500Kbps,后端总线可支持挂载256个节点。具有真失效保护、电源监控以及热关断功能。

  要实现隔离RS-485接口的电路设计只需在ADM2483的电源与地之间接一个104的去耦电容即可。当然,DC-DC隔离电源是必不可少的。其电路连接如下图:

  

word/media/image5.jpeg

 

  RS-485标准在工业控制、电力通讯、智能仪表等领域中使用广泛。但是,在工业控制等现场环境中,情况复杂,常会有电气噪声干扰传输线路;在多系统互联时,不同系统的地之间会存在电位差,形成接地环路,会干扰整个系统,严重时会造成系统的灾难性损毁;还可能存在损坏设备或危害人员的潜在电流浪涌等高电压或大电流。因此,对RS-485接口的隔离是非常有必要的。

  ADM2483是一款集成了信号通道隔离和RS-485收发器的芯片。以单芯片实现了对RS-485接口的隔离,电路连接简单,设计方便,性能上远高于繁琐的光耦隔离485电路设计。在某些系统应用中,由于I/O口数量有限,因此我们希望半双工的RS-485收发器能够实现自收发功能,以节省用于控制RE与DE的两路I/O端口。目前,实现这一功能的主流方案是采用74HC14芯片。下面,我们采用74HC14与ADM2483实现RS-485接口的信号隔离自收发设计。

  硬件电路

  隔离RS-485接口电路

  之前我们经常采用的485接口隔离电路是利用三个光耦隔离收发及控制信号,加上485收发器共需要4片IC,且采用光耦隔离需要限流及输出上拉电阻,必要时还会使用三极管驱动。设计电路繁琐,耗费时间长,如果没有之前使用光耦的经验,那么在选用光耦限流及输出上拉电阻方面会耗费很多不必要的时间;且光耦的输出信号上升时间较长,在与数字I/O端口相接时,需另加施密特整形才能保证信号的波形符合标准,如在FPGA、DSP等系统中的应用。

  ADM2483是内部集成了磁隔离通道和485收发器的芯片,内部集成的磁隔离通道原理与光耦不同,在输入输出端分别有编码解码电路和施密特整形电路,确保了输出波形的质量。且磁隔离功耗仅为光耦的1/10,传输延时为ns级,从直流到高速信号的传输都具有超越光耦的性能优势。内部集成的低功耗485收发器,信号传输速率可达500Kbps,后端总线可支持挂载256个节点。具有真失效保护、电源监控以及热关断功能。

  要实现隔离RS-485接口的电路设计只需在ADM2483的电源与地之间接一个104的去耦电容即可。当然,DC-DC隔离电源是必不可少的。其电路连接如下图:

  

word/media/image5.jpeg

信号自收发电路

  信号自收发电路我们采用74HC14芯片,利用它的施密特波形翻转性能来控制RE、DE引脚,以实现信号的自收发。其电路连接如下图:

  

word/media/image6.jpeg

 

  如图所示,MCU的发送信号经过施密特触发器反向后输给DE和RE脚,发送数据引脚TxD接地。

  当有高电平信号发送时,经反向变为低电平信号,DE/RE引脚输入为低电平,使发送驱动器禁止,总线为高阻状态,此时由A、B总线上的上拉电阻产生高电平输出。

  当有低电平信号发送时,经反向变为高电平信号,DE/RE引脚输入为高电平,使发送驱动器工作,由于TxD引脚端接地,为低电平,这样就将低电平发送至总线。

  本参考设计仅为实现RS-485接口的自收发功能,在实际应用中,应根据使用情况作出相应的修改。此收发电路也有不足之处,当在连续发送高电平时,ADM2483的DE/RE引脚处于接收状态,所以,此时的发送端和接收端都处于接收状态,这时的总线是空闲状态,是允许各节点发送数据的,因此一般在主从式的网络结构中采用此方法。

  在网络上也有不同的几种实现RS-485收发器自收发的方案,分别有以下几种:

  利用三极管反向原理实现

  电路如下图:

  

word/media/image7.jpeg

 

  当不发送数据时,TxD信号为高电平,经V1反向后使ADM2483处于接收状态。

  当发送数据时,TxD为高时,经V1反向,使发送驱动器禁止,总线为高阻状态,此时由A、B总线上的上拉电阻产生高电平输出。TxD为低时,经V1反向,使发送驱动器工作,由于TxD引脚端接地,为低电平,这样就将低电平发送至总线。

  采用这种电路时,需要程序保证不同时进行接收和发送的操作。

  利用555定时器,其原理于以上电路类似,电路图如下:

  

word/media/image8.jpeg

 

  555定时器为边沿触发,当TxD发送高电平时,555定时器OUT引脚输出低电平,当TxD发送低电平时,555定时器OUT引脚输出高电平,当TxD转为高电平时,OUT引脚输出的高电平状态会延迟一会再转入低电平,以确保发送数据的正确性。

  采用74HC14和RC电路实现,此电路是对单纯使用74HC14实现自收发电路的改进,增加了RC充放电电路,减少总线处于空闲状态的时间,电路如下图:

  

word/media/image9.jpeg

 

  当TxD信号为高电平,则通过电阻为电容充电,其充电时间为T,该时间应设置为串口发送一个字节所需要的时间,由R,C参数来确定。当电容充满后,则DE/RE为低电平,使ADM2483处于接收状态。

  在发送数据时,TxD起始位产生第一个下降沿,使电容经过二极管进行快速放电,使DE/RE很快变为高电平,ADM2483处于发送状态。在发送过程中, 当TxD变成高电平时,电容通过电阻缓慢充电,使DE/RE仍然保持在发送状态,可有效吸收总线上的反射信号。当RC充电结束,使DE/RE转入接受状态时, 总线上的上拉、下拉电阻将维持TxD高电平的发送状态,直至整个bit发送结束。

  当数据发送完毕以后,TxD变为高电平,RC又开始充电,即经T时间后,ADM2483又转换为接收状态。

  声明

以上所有电路均为参考电路,为电路设计者提供思路,在实际使用中请再次验证,以确保电路的稳定及不会对系统造成破坏。对于电路损坏造成的损失,概不负责

二.DMX时代

随着舞台灯光技术的发展,调光回路数的增加,剧场中的灯光控制室位置移到观众厅的后部,以便于对舞台灯光的控制,而调光柜则宜安置于观众厅前方离舞台较近的地方,以便于供电。灯光回路数的增加(二百路以上),导致信号线的增加,前面所介绍的一路一线,传送模拟信号的方式,设备的安装和使用都不方便。尤其随着演出形式的多样化,需要控制台的位置也能动一下(如暂时移到观众厅中,甚至舞台上),更有流动演出或体育场式的演出场合,控制台安放在现场操作,流动式调光硅箱需分散安放,更需信号线的减少。上述传送模拟信号的多芯电缆方式显得很不方便了。

二十世纪八十年代随着微型计算机技术的发展,一种由一块芯片集成了CPU、片内RAM、片内ROM、并行I/O(输入/输出)接口、串行I/O接口的单片机出现了,用单片机制作的智能化接口电路,将并行输出的数据转换为在两根线上串行传送的信号变得容易实现;在接收端将串行传送的信号数据接收后再转换为并行的数据也同样简单。串行传送的总线也经过长期的改进,出现了传送速度高,距离远,可靠性高,抗干扰能力强的标准和相应的模块。当时国际上几个主要的灯光控制系统制造商推出了在计算机灯光控制台与可控硅调光柜之间只用两根线(或稍多几根线)串行数字传输(或数字加模拟都串行传输)的解决方案。如SMX,AMX192,CMX,PMX等在传输速度、数据格式等都互不兼容的传送方式。虽然串行传送方式具有信号线少而连接方便的问题,但是无法解决各制造商的设备之间不能互连的问题。

为此在计算机技术发达的美国一个并非正式的标准制定者——美国剧场技术协会(United State Institute for Theatre Technology,Inc)于1986年8月提出了一个能在一对线上传送512路可控硅调光亮度信息的DMX512标准,这是一个关于计算机控制台和调光器之间数据的数字传输标准(后又在1990年4月进行了局部的修订)。

提出DMX512方案的美国剧场技术协会虽然不是一个正式的标准制定机构,但是由于DMX512具有广泛的适用性,很快为全世界的制造商和用户采用,成为一个事实上的国际标准,十多年来,直至今天,几乎所有的灯光控制台和受控的设备都兼容了DMX512的协议标准。

因为有了这一个统一的标准,不同的制造商之间的设备,只要遵循这一协议,都能互连控制。两线制的时代真正的到来了。

单片机的原理如下图-2

word/media/image10.gif

单片机内部的ROM中储存将并行数据转换为规定格式的串行信号的程序编码。在灯光控制台中加入一块单片机的接口电路板,原灯光控制计算机将输往各调光回路的亮度数据送到单片机中,单片机将各路亮度数据转换为串行的符合DMX512协议的信号,送往各调光器。数字传输的计算机灯光控制台框图如图-3。

DMX-512标准在通讯的电气标准上采用了EIA-485标准。它采用平衡输出的发送器,差分输入的接收器。

发送器有一对输出线,当一根线上的信号为高电平时另一根线上的信号变为低电平,反之亦然,线之间的信号极性因此翻转过来。这两种状态分别代表“1”和“0”。一般情况下,传输线路只用两根线,不用公共地线,线路完全平衡。这使得通信双方由于地电位不同而对通信线路产生的干扰减至最少。再配以先进的专用接口电路,传输的稳定性也相当好。这在当时是比较先进的。

word/media/image11.gif

传送数据采用异步的串行格式。调光器的亮度数据被顺序地发送,从调光器1开始,到最后一个调光器结束,直到第512的最大值。

在第一个亮度发出以前,先送出一个复位信号(BREAK)。复位信号(图-4中的①)由持续至少88微秒的一个低电平(2帧时间)或再长的持续时间组成。并且在后面紧跟一个空的开始代码。接着开始顺序传送亮度信号数据。

有效的调光器亮度将是十进制0~255,代表调光器的亮度输入控制值由关闭到完全亮足的线性关系。

在复位(BREAK)和开始代码之间有一个标记,它的持续时间(参见图-4中的②)将不少于8微秒并且不大于1秒(所有的DMX512/1990发生器将在BREAK后产生一个不少于8微秒的标记)。

跟在复位后的空字符(所有位都为零)是一个特殊定义的字节。空字符开始表明随后的数据作为顺序的一路路8位的调光器的亮度信息。

  每个亮度数据的传输格式如下:
  第1位为开始位,低电平;
  第2到第9位为调光器的亮度数据位,由最低的位到最高的位,正逻辑。
  第10,11位为停止位,高电平。无奇偶位。
  数据率为每秒250千位(250 kHz)
  每位时间为4.0微秒
  每帧时间为44.0微秒
  512个调光器数的最小的更新时间为22.67毫秒
  512个调光器的最大的更改率为44.11次/秒

由此可见,DMX512发出的一串数据,除了开始的复位信号,大于8微秒的标记及一个“0”的数据外,都是一个个亮度数据,最多512个。

在图-4表示的DMX512数据格式中,⑨表示无信号时或两个数据包之间线路保持高电平的时间;①为复位(BREAK)信号;②为大于等于8微秒的标记;③为串行传送的一个字节的亮度数据;④为低电平的开始位;⑤为最低位;⑥为最高位;⑦为两个高电平的停止位;⑧为两个字节的亮度数据之间可允许的高电平的间隔时间。

word/media/image12.gif

图 - 4

DMX512所采用的EIA-485的电气标准是一个总线型的传输线,任何一个接收设备只要接在这两根传输线上,便可接收控制台发出的数据信号。
采用DMX512协议标准传送灯光亮度信号,在接收端,数字传输可控硅调光柜需附加一个解码器,解码器的框图如图-5:

word/media/image13.gif

接收 DMX512 信号并从中取出本身需要的亮度数据的设备称为解码器,解码器将在接收过程进行计数,取出本身需要的数据。例如对于 96 路的调光柜,第一个调光柜将接收第 1 至 96 个数据;第二个调光柜将接收第 97 至 192 个数据……。为了让每个调光柜的解码器知道本身的编号,每个解码器上都有一个编码开关,使用前必须拨到规定的数字,解码器中的 CPU 在每次开机时会读一次这个开关,便知道将从第几个数据开始取用。
  DMX512 不仅解决了一对双绞线传输所有可控硅调光回路亮度信息的问题,还使不同厂商生产的控制台与调光器得以互联。
  后来开发的许多效果灯具或灯具的附件如:电脑灯、换色器等等,都把控制逻辑凑合到 0 到 255 的范围,即可通过 DMX512 线路传输控制信号。一个计算机灯光控制台可同时控制调光器、电脑灯和换色器灯,减少了演出工作人员,提高了演出效果。

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

2009-08-17 12:34:07 作者: 【大 中 小】 浏览:9次 评论:0条

-

引 言
    随着数字化技术和计算机技术的广泛普及,舞台和演播厅等灯光控制系统由传统的模拟控制转变为数字控制。为了解决各厂家设备兼容性问题,美国剧场技术协会(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控制信号得到有效传输,并不需要为每个设备都安置一个无线接收模块。

本系统的微控制器采用了STC系列单片机STC12C5410。该单片机含有12 KB的Flash存储器、512字节RAM、异步串口(UART)和内部PLL单元等。内置的SPI总线控制器可以方便地与射频芯片CC1100通信,而内部的ISP(在线可编程)模块允许用户直接通过串口下载程序,给系统软件升级带来便捷条件。由于DMX512的数据波特率为250 kbps,所以选取16 MHz晶振作为时钟源,以便产生同频波特率。
2.3 射频收发单元
    CC1100是一款低功耗单片射频收发芯片,具有通信距离远、功耗低、接口灵活等优点。该芯片主要设定工作在315 MHz、433 MHz、868 MHz和915 MHz的工业、科学和医学波段;数据速率支持1.2~500 kbps的可编程控制;提供-30~10 dBm的输出功率;最大空地发射距离大于200 m,工作电压为1.8~3.6 V;最大支持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所示。

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

    DMX512的数据包中包含有512路调光数据,而CC1100发送一次数据包只包含32个有效数据,因此在发送时要在CC11OO的地址码段填入该次发送有效数据在总数据包中的序号,以保证接收端在接收的时候按顺序重组成功。
3.3 拆解和重组DMX512总线数据
    系统在对DMX512总线数据的拆解和重组过程中,都利用了单片机内部的串口单元。但DMX512总线数据时序与单片机UART串口不完全相同,因此在使用的时候需要做如下修正。
    主发射端对DMX512总线数据的拆解,需要先将串口端口(P3.1)配置为I/O口。当接收到DMX512的起始标志(即P3.1=0)时,开启定时器 0开始计数,88μs溢出中断后准备接收数据。单片机确认M.a.B(Mark afterBreak)信号出现后,配置串口端口为普通串口,开始缓存数据帧。
    从接收端在无数据传输时,要把串口端口配置为I/O口,并置为高电平。在接收完毕无线数据后,先将串口端口拉低,利用定时器延时超过88 μs,完成起始标志(Break)信号的发送。然后配置串口端口为普通串口,按缓存的顺序将数据发送到DMX512总线上。数据发送完成之后,还需要将串口端口还原为普通I/O,发送结束信号(小于1 s的高电平),完成DMX512时序要求。

4 总 结
    基于CC1100设计的DMX512灯光控制信号无线传输系统,具有成本低、外围器件少、电路结构简洁的特点。虽然CC11OO标称空旷地发射距离可以达到200 m,但在实际使用时,由于楼宇等建筑物的影响,有效的通信距离为30 m左右。因此利用该系统能实现小范围(如室内环境)将DMX512有线传输转变为无线传输。为了延长系统传输距离,可以考虑在射频收发单元增加功放模块,在保证灯光数据实时传输的条件下,降低通信速率,提高系统传输的稳定性。

《DMX512灯光控制信号无线传输方案》相关文档:

DMX512灯光控制信号无线传输方案12-09

Top