專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
同步DMX512 簡(jiǎn)介和控制器的設(shè)計(jì)
在燈具調(diào)光和控制中,人們大量采用了DMX512 的控制協(xié)議,它是由美國劇場(chǎng)技術(shù)協(xié)會(huì)(United State Institute for Theatre Technology,Inc)于1986年8 月提出的一個(gè)能在一對(duì)線上傳送512 路可控硅調(diào)光亮度信息的標(biāo)準(zhǔn).
DMX512 通信方式是采用了異步通信格式,每個(gè)調(diào)光點(diǎn)由11 位組成,其中一個(gè)是起始位,8 位調(diào)光數(shù)據(jù),兩個(gè)停止位.每一次傳輸能512 個(gè)調(diào)光點(diǎn).
1. DMX512 控制協(xié)議及其改進(jìn)與DMX512 兼容的燈具一般使用一顆單片機(jī)來實(shí)現(xiàn)DMX512 的解碼。如使用8051或者M(jìn)icrochip 公司的PIC16F628A 等。單片機(jī)內(nèi)部的程序要讀取一組DIP 開關(guān)SDMX5124 APPLICATION NOTESDOC NO:051201設(shè)置的地址,根據(jù)自己的地址,去接收DMX512 數(shù)據(jù)中的第幾個(gè)字節(jié),然后來實(shí)現(xiàn)調(diào)光的功能。如果一個(gè)燈中要使用多個(gè)調(diào)光數(shù)據(jù),該燈要占用多個(gè)地址。
DMX512 的接口
DMX512 電氣特性為RS485 接口,物理接口為CANON 三芯或5 芯接口,采用級(jí)聯(lián)方式聯(lián)結(jié)。因此有一個(gè)輸入口,一個(gè)輸出口。
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 在傳統(tǒng)的舞臺(tái)燈光控制應(yīng)用中還是能簡(jiǎn)單實(shí)用的,但是,面對(duì)新型的LED 燈具來講,DMX512 顯的有點(diǎn)力不從心了。
首先,LED燈具要求每個(gè)燈具中要有一個(gè)控制器,而每個(gè)燈要設(shè)置地址是很麻煩的,維修更換也不便。其此,異步的傳輸方法效率也不高。
正因?yàn)槿绱?,人們也使用LED顯示屏的技術(shù)來控制LED燈具,通常使用SPI移位寄存器的方法來傳送調(diào)光數(shù)據(jù)。這樣作的方法省去了地址的設(shè)定,靠移位的先后來確定燈的位置,另一方面,它們的傳輸速度能很高。但是,新的問題又出現(xiàn)了,實(shí)現(xiàn)調(diào)光數(shù)據(jù)的移位傳輸,要使用三根線:SSSCK,和SCK 線。這三根信號(hào)線如果以RS485 方式傳輸時(shí),就變成了六根線,輸入和輸出一共要使用12 根線,這對(duì)LED 燈具來講是太多了。左邊是一個(gè)使用這種芯片做的燈。
SDMX5124 APPLICATION NOTE SDOC NO:051201 同步DMX512S DMX5124 芯片使用了一種同步串行傳輸?shù)姆绞?,它吸取了DMX512 和SPI 移位總線兩者的優(yōu)點(diǎn)。
首先,SDMX512 在電氣特性,數(shù)據(jù)結(jié)構(gòu)方面盡量和DMX512 相同,采用同步傳輸?shù)姆椒▉韮删€移位傳輸。其次,SDMX512 協(xié)議采取了SPI 移位傳輸?shù)姆椒▉肀苊釪MX512 協(xié)議中要設(shè)定地址的問題。SDM512 協(xié)議的速率設(shè)定為128KBPS。左圖是采用SDMX512 生產(chǎn)的像素?zé)簦梢钥闯鰺襞c燈之間的連線為四根線,DATA+ DATA- +24V GND如果燈與燈之間的距離不遠(yuǎn),不使用RS485,那么,信號(hào)線為三根就可以了。
2.SDMX512 燈具的設(shè)計(jì)
以SDMX512 芯片設(shè)計(jì)的燈具能接收同步DMX512 調(diào)光數(shù)據(jù)的LED 燈具,它由SDMX5124 控制芯片,LED 光源,電源和外殼等附件組成。在這里我們以一個(gè)典型的LED 像素?zé)魹槔榻B以SDMX512 為主的LED 燈具的
設(shè)計(jì)。
(1) 光源采用臺(tái)灣光鼎光電公司的EP2 SMT RGB LED 芯片
(2) 控制芯片:SDMX5124
(3) 開關(guān)電源芯片:
電路圖見附件1
同步DMX512 控制器的設(shè)計(jì)
同步DMX512 控制器能根據(jù)LED 燈光控制數(shù)據(jù),產(chǎn)生一路或多路SDMX512 控制信號(hào),控制一路或者多路同步DMX512 控制線,每一路同步DMX512 控制線能控制512 個(gè)同步DMX512 燈具。LED 燈光控制數(shù)據(jù)可以存儲(chǔ)在同步DMX512 控制器的FLASH ROM 中,或者在控制器中增加一個(gè)CF 卡或SD 卡,將LED 燈光控制數(shù)據(jù)存儲(chǔ)在其中,同步DMX512控制器也能夠增加一個(gè)上位機(jī)網(wǎng)絡(luò)接口,使PC 上位機(jī)聯(lián)機(jī)控制燈光系統(tǒng)。同步DMX512 控制器是以一個(gè)CPU 為主的嵌入式系統(tǒng),我們推薦的系統(tǒng)如下圖所示:
SDMX5124 APPLICATION NOTES
DOC NO:051201
主處理器
主CPU 使用MicroChip 公司高性能8 位RISC 單片計(jì)算機(jī)實(shí)現(xiàn),主頻為40Mhz.外擴(kuò)了16K BYTE 的SRAM 用于存放LED 控制數(shù)據(jù)。
網(wǎng)絡(luò)控制器
采用RealTek 公司單片10BASE T 控制器其中,sdmx512 transmitter 采用xilinx 9572 CPLD 實(shí)現(xiàn),
控制器軟件的編程。
在SDMX512 參考設(shè)計(jì)中,控制器由Microchip PIC18F4525 實(shí)現(xiàn),軟件系統(tǒng)包括了TCP/IP 堆棧軟件,SD 卡文件系統(tǒng)和LED 驅(qū)動(dòng)部分組成。
主控軟件
軟件的主程序主要完成CPU,TCP/IP,SD 卡程序的初始化,然后進(jìn)入主循環(huán),如下圖所示/
SDMX512 控制器主程序框圖
TCP/IP 堆棧軟件
SDMX5124 APPLICATION NOTES
DOC NO:051201
TCP/IP 堆棧軟件包括了MAC,UDP 層軟件。
SD 卡文件系統(tǒng)
colorPixel 控制器軟件支持一個(gè)SD 卡座,SD 卡的文件格式為FAT16 格式。
LED 驅(qū)動(dòng)程序。
由兩個(gè)主要的軟件組成,send_it 和中斷軟件LED 的控制數(shù)據(jù)存放在SBUF 中,由于Microchip 的sram 內(nèi)存比較小,最大有6KBYTE,去掉TCP/IP 和SD 文件系統(tǒng)使用的單元,SBUF 的最大長(zhǎng)度為6K 左右,SBUF 的大小決定了一根線上最大的燈數(shù),
SBUF 長(zhǎng)度=4+N*12
使用時(shí)鐘信號(hào)CLK 的下降延產(chǎn)生PIC18F4525的中斷,每次中端發(fā)送一位數(shù)據(jù)(并行八路)。每一幀發(fā)送4+N*12+8 位。
時(shí)鐘的頻率為128KBPS。
前四位是引導(dǎo)碼(0101),N*12 是燈光控制數(shù)據(jù),8 位為停止位。
軟件要控制ENABLE 信號(hào),當(dāng)開始發(fā)送時(shí),ENABLE 為低電平,當(dāng)發(fā)送完4+NX12位后,ENABLE 為高低電平,延時(shí)8 個(gè)時(shí)鐘周期后,開始發(fā)送下一幀。
Send_it 和中斷程序源碼
Int16 send_max;//sbuf 長(zhǎng)度=4+N*12 位
Byte cc;//最后一位的狀態(tài)
void send_it(void)
{
TRISD=0x00;
PORTD=0xff; PORTD 為8 位數(shù)據(jù)口
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){};//等待結(jié)束
}
#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;//清除中斷標(biāo)志
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
}
網(wǎng)絡(luò)
對(duì)于一個(gè)大型的LED 燈光系統(tǒng),可能要使用多個(gè)SDMX512 控制器協(xié)同控制,多個(gè)SDMX512 控制器要通過網(wǎng)絡(luò)與PC 機(jī)聯(lián)網(wǎng),在我們介紹的方案中,推薦使用標(biāo)準(zhǔn)的10 BASE T 網(wǎng),因?yàn)椴捎脴?biāo)準(zhǔn)的網(wǎng)絡(luò),能使用大量經(jīng)濟(jì)的標(biāo)準(zhǔn)LAN 產(chǎn)品,如HUB,交換機(jī)等等,它們比專用設(shè)備便宜的多。PC 聯(lián)機(jī)控制軟件PC 機(jī)上的軟件包括三類,
(1) 燈光照明變化的圖形設(shè)計(jì)軟件這部分軟件可以利用WINDOWS 上大量的多媒體設(shè)計(jì)軟件來完成, 如Dreamwave FLASH 動(dòng)畫設(shè)計(jì)軟件。
(2) SDMX512 控制數(shù)據(jù)的轉(zhuǎn)換軟件它將圖形設(shè)計(jì)軟件產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換成SDMX512 格式的控制數(shù)據(jù)
(3) 聯(lián)機(jī)控制軟件。該軟件向SDMX512 控制器實(shí)時(shí)發(fā)送SDMX512 控制數(shù)據(jù)。YDS data system 對(duì)SDMX512 開發(fā)的支持
(1) colorPixel 像素?zé)粼O(shè)計(jì)見.
(2) colorPixel 控制器參考設(shè)計(jì)包括了demo 板SDMX5124 APPLICATION NOTES DOC NO:051201邏輯圖,GERBER 文件軟件目標(biāo)碼/源代碼
(3) Windows 控制軟件colorPixel 控制軟件完成COLORPIXEL 像素?zé)艨刂茢?shù)據(jù)的轉(zhuǎn)換,PC 顯示屏圖像的實(shí)時(shí)采集,網(wǎng)絡(luò)實(shí)時(shí)控制。
FONTPlace 吸塑字燈光控制軟件
上述兩個(gè)軟件使用delphi7 編寫,在WINDOW2000 和WINDOWS/XP 上運(yùn)行。