同步DMX512 简介和控制器的设计
在灯具调光和控制中,人们大量采用了DMX512 的控制协议,它是由美国剧场技术协会(United State Institute for Theatre Technology,Inc)于1986年8 月提出的一个能在一对线上传送512 路可控硅调光亮度信息的标准.
DMX512 通信方式是采用了异步通信格式,每个调光点由11 位组成,其中一个是起始位,8 位调光数据,两个停止位.每一次传输能512 个调光点.
1. DMX512 控制协议及其改进与DMX512 兼容的灯具一般使用一颗单片机来实现DMX512 的解码。如使用8051或者Microchip 公司的PIC16F628A 等。单片机内部的程序要读取一组DIP 开关SDMX5124 APPLICATION NOTESDOC NO:051201设置的地址,根据自己的地址,去接收DMX512 数据中的第几个字节,然后来实现调光的功能。如果一个灯中要使用多个调光数据,该灯要占用多个地址。
DMX512 的接口
DMX512 电气特性为RS485 接口,物理接口为CANON 三芯或5 芯接口,采用级联方式联结。因此有一个输入口,一个输出口。
Pin 1 = signal reference = cable shield
Pin 2 = signal inversion = ' - '
Pin 3 = signal = ' + '
Pin 4 = optional (e.g. acknowledgment)
Pin 5 = optional (e.g. acknowledgment)
DMX512 在传统的舞台灯光控制应用中还是能简单实用的,但是,面对新型的LED 灯具来讲,DMX512 显的有点力不从心了。
首先,LED灯具要求每个灯具中要有一个控制器,而每个灯要设置地址是很麻烦的,维修更换也不便。其此,异步的传输方法效率也不高。
正因为如此,人们也使用LED显示屏的技术来控制LED灯具,通常使用SPI移位寄存器的方法来传送调光数据。这样作的方法省去了地址的设定,靠移位的先后来确定灯的位置,另一方面,它们的传输速度能很高。但是,新的问题又出现了,实现调光数据的移位传输,要使用三根线:SSSCK,和SCK 线。这三根信号线如果以RS485 方式传输时,就变成了六根线,输入和输出一共要使用12 根线,这对LED 灯具来讲是太多了。左边是一个使用这种芯片做的灯。
SDMX5124 APPLICATION NOTE SDOC NO:051201 同步DMX512S DMX5124 芯片使用了一种同步串行传输的方式,它吸取了DMX512 和SPI 移位总线两者的优点。
首先,SDMX512 在电气特性,数据结构方面尽量和DMX512 相同,采用同步传输的方法来两线移位传输。其次,SDMX512 协议采取了SPI 移位传输的方法来避免DMX512 协议中要设定地址的问题。SDM512 协议的速率设定为128KBPS。左图是采用SDMX512 生产的像素灯,可以看出灯与灯之间的连线为四根线,DATA+ DATA- +24V GND如果灯与灯之间的距离不远,不使用RS485,那么,信号线为三根就可以了。
2.SDMX512 灯具的设计
以SDMX512 芯片设计的灯具能接收同步DMX512 调光数据的LED 灯具,它由SDMX5124 控制芯片,LED 光源,电源和外壳等附件组成。在这里我们以一个典型的LED 像素灯为例介绍以SDMX512 为主的LED 灯具的
设计。
(1) 光源采用台湾光鼎光电公司的EP2 SMT RGB LED 芯片
(2) 控制芯片:SDMX5124
(3) 开关电源芯片:
电路图见附件1
同步DMX512 控制器的设计
同步DMX512 控制器能根据LED 灯光控制数据,产生一路或多路SDMX512 控制信号,控制一路或者多路同步DMX512 控制线,每一路同步DMX512 控制线能控制512 个同步DMX512 灯具。LED 灯光控制数据可以存储在同步DMX512 控制器的FLASH ROM 中,或者在控制器中增加一个CF 卡或SD 卡,将LED 灯光控制数据存储在其中,同步DMX512控制器也能够增加一个上位机网络接口,使PC 上位机联机控制灯光系统。同步DMX512 控制器是以一个CPU 为主的嵌入式系统,我们推荐的系统如下图所示:
SDMX5124 APPLICATION NOTES
DOC NO:051201
主处理器
主CPU 使用MicroChip 公司高性能8 位RISC 单片计算机实现,主频为40Mhz.外扩了16K BYTE 的SRAM 用于存放LED 控制数据。
网络控制器
采用RealTek 公司单片10BASE T 控制器其中,sdmx512 transmitter 采用xilinx 9572 CPLD 实现,
控制器软件的编程。
在SDMX512 参考设计中,控制器由Microchip PIC18F4525 实现,软件系统包括了TCP/IP 堆栈软件,SD 卡文件系统和LED 驱动部分组成。
主控软件
软件的主程序主要完成CPU,TCP/IP,SD 卡程序的初始化,然后进入主循环,如下图所示/
SDMX512 控制器主程序框图
TCP/IP 堆栈软件
SDMX5124 APPLICATION NOTES
DOC NO:051201
TCP/IP 堆栈软件包括了MAC,UDP 层软件。
SD 卡文件系统
colorPixel 控制器软件支持一个SD 卡座,SD 卡的文件格式为FAT16 格式。
LED 驱动程序。
由两个主要的软件组成,send_it 和中断软件LED 的控制数据存放在SBUF 中,由于Microchip 的sram 内存比较小,最大有6KBYTE,去掉TCP/IP 和SD 文件系统使用的单元,SBUF 的最大长度为6K 左右,SBUF 的大小决定了一根线上最大的灯数,
SBUF 长度=4+N*12
使用时钟信号CLK 的下降延产生PIC18F4525的中断,每次中端发送一位数据(并行八路)。每一帧发送4+N*12+8 位。
时钟的频率为128KBPS。
前四位是引导码(0101),N*12 是灯光控制数据,8 位为停止位。
软件要控制ENABLE 信号,当开始发送时,ENABLE 为低电平,当发送完4+NX12位后,ENABLE 为高低电平,延时8 个时钟周期后,开始发送下一帧。
Send_it 和中断程序源码
Int16 send_max;//sbuf 长度=4+N*12 位
Byte cc;//最后一位的状态
void send_it(void)
{
TRISD=0x00;
PORTD=0xff; PORTD 为8 位数据口
PORTEbits.RE0=1; // dis rtl8019
LED_CS=1;
send_p=0; SBUF 指针
cc=~ll;
send_busy=1;
INTCONbits.INT0IE=1;
INTCONbits.GIEH = 1;//开中断
while(send_busy){};//等待结束
}
#pragma code InterruptVectorHigh = 0x08
void
InterruptVectorHigh (void)//中断矢量
SDMX5124 APPLICATION NOTES
DOC NO:051201
{
_asm
goto InterruptHandlerHigh ;jump to interrupt routine
_endasm
}
#pragma code
#pragma interrupt InterruptHandlerHigh
;中断处理软件
void InterruptHandlerHigh ()
{
if (INTCONbits.INT0IF==1 )//判断是否为外部中断1
{
INTCONbits.INT0IF=0;//清除中断标志
if (send_p ==(send_max+8) ) {INTCONbits.INT0IE=0;send_busy=0;}
else {if (send_p >(send_max) ) {ENABLE=1;send_p++;}
else {ENABLE=0;PORTD=cc;ll=cc;
cc=sbuf[send_p++];
}
};//end of if
}
网络
对于一个大型的LED 灯光系统,可能要使用多个SDMX512 控制器协同控制,多个SDMX512 控制器要通过网络与PC 机联网,在我们介绍的方案中,推荐使用标准的10 BASE T 网,因为采用标准的网络,能使用大量经济的标准LAN 产品,如HUB,交换机等等,它们比专用设备便宜的多。PC 联机控制软件PC 机上的软件包括三类,
(1) 灯光照明变化的图形设计软件这部分软件可以利用WINDOWS 上大量的多媒体设计软件来完成, 如Dreamwave FLASH 动画设计软件。
(2) SDMX512 控制数据的转换软件它将图形设计软件产生的数据转换成SDMX512 格式的控制数据
(3) 联机控制软件。该软件向SDMX512 控制器实时发送SDMX512 控制数据。YDS data system 对SDMX512 开发的支持
(1) colorPixel 像素灯设计见.
(2) colorPixel 控制器参考设计包括了demo 板SDMX5124 APPLICATION NOTES DOC NO:051201逻辑图,GERBER 文件软件目标码/源代码
(3) Windows 控制软件colorPixel 控制软件完成COLORPIXEL 像素灯控制数据的转换,PC 显示屏图像的实时采集,网络实时控制。
FONTPlace 吸塑字灯光控制软件
上述两个软件使用delphi7 编写,在WINDOW2000 和WINDOWS/XP 上运行。