同步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 上運行。