利用51单片机实现DMX512协议控制LED灯
DMX512协议 1.协议简介 DMX是Digital MultipleX的缩写 ,意为多路数字传输。DMX512 控制协议是美国舞台灯光协会(USITT)于1990年发布的灯光控制器与灯具设备进行数据传输的工业标准 ,全称是 USITT DMX512(1990) ,包括电气特性、 数据协议、 数据格式等方面的内容。 2.电气特性和物理层 2.1.电气特性 DMX512采用EIA-485标准。 发送端:逻辑“1”以两线间压差+(2~6)V表示; 逻辑“0”以两线间压差为-(2~6)V表示; 接收端:A比B高200mv以上即认为是逻辑“1”; A比B低200mv以上即认为是逻辑“0”。 2.2.拓扑结构 如图1所示为EIA-485电路拓扑结构,一条EIA-485数据链路包括一个差分线驱动设备(D)和多个差分接收终端(R)。图1基于485的 DMX512拓扑结构2.3.DMX512 端口及数据链路 因为是采用485差分信号传输,因此DMX512端口一般采用3针或5针接口,相对应的导线则为1对或2对双绞线,导线同时应采用箔片或编织筛包裹。XLR针口分配如下表1所示,其中辅助数据链路可以不用。 基于EIA-485传输距离理论上可以达到1200m,建议控制在800m以内,若要加长传输距离,则需考虑中继器。DMX512数据链路的终接方式应消除信号环路和信号反射,否则可能导致正确设计的系统出现误操作。采用结终端电阻的方式可以消除信号反射,DMX512标准要求,终端电阻应放置在数据+和数据-信号针之间,阻抗范围120Ω+5%~120Ω-10%。 3.数据协议格式及传输 DMX512 协议规定数据以数据包的形式通过异步通讯的方式进行传输。每个数据包由若干数据帧组成, 每帧数据包括1 位低电平起始位、8 位数据位和2 位高电平停止位。DMX512协议要求数据传输的波特率为250kbps, 亦即每位的传输时间为4us, 每帧数据的传输时间为44us, 它支持多达512 帧数据传输, 每帧数据与相应的控制支路相对应。数据包的传送要符合一定的格式和时序要求,每个包需要发送2~513个字节数据(由总线设备来确定)。为了使接收器能够分辨出第一帧数据, 每一个数据包以一个不短于88us 的低电平信号为起始信号, 即所谓的BREAK信号, 接收器接收到BREAK信号就准备接受随后而来的数据帧; 紧接着BREAK信号之后是不短于8us 的高电平信号MAB (Mark after Break) ; 之后就是数据帧。在DMX512协议中, MAB之后的第一帧数据被称为SC(Start code), 即起始字节,在协议中规定其为零, 但在实际应用中可以由生产厂家自己确定其具体的值, 以传递特殊消息。SC标明其后面的数据是8位控制信号数据帧。一个数据包发送完成后,可以发送MT BP。MT BP (Mark Time Between Packets)标志着一个完整的信息包发送完毕 ,是下一个信息包即将开始的 “空闲位”,高电平有效数据帧之间可以有时间间隔, 也可以没有; 同样, 数据包之间可以有时间间隔, 也可以没有。DMX512协议规定BREAK信号、MAB信号的最短时间, 并规定BREAK信号、MAB信号、数据帧之间及数据包之间的时间间隔的最大值不得超过1s, 否则做出错处理, 但是DMX512 协议并未对出错处理做任何规定。DMX512协议所规定的数据格式如图2所示,各信号的定时时间如表2所示 图2中,虚线框内为一个数据帧的格式,S为1个比特起始位(低电平),E为2比特的停止位(高电平),D0~D7为8个比特的控制数据,其电平组合从 00000000~11111111 共有 256 个状态(对应十进制数的0~255) ,控制灯光的亮度时 ,可产生256个亮度等级 ,00000000 (0)对应灯光最暗 ,11111111(255)对应灯光最亮。信息包中,第1帧对应第1回路的灯具,第2帧对应第2回路灯具,依此类推,第512帧对应第512回路灯具,灯具回路的地址在灯具上可设置。 DMX512协议是一种基于主从式的协议,能够适应一对多的灯光控制系统。