利用51單片機實現(xiàn)DMX512協(xié)議控制LED燈
DMX512協(xié)議 1.協(xié)議簡介 DMX是Digital MultipleX的縮寫 ,意為多路數(shù)字傳輸。DMX512 控制協(xié)議是美國舞臺燈光協(xié)會(USITT)于1990年發(fā)布的燈光控制器與燈具設(shè)備進行數(shù)據(jù)傳輸?shù)墓I(yè)標準 ,全稱是 USITT DMX512(1990) ,包括電氣特性、 數(shù)據(jù)協(xié)議、 數(shù)據(jù)格式等方面的內(nèi)容。 2.電氣特性和物理層 2.1.電氣特性 DMX512采用EIA-485標準。 發(fā)送端:邏輯“1”以兩線間壓差+(2~6)V表示; 邏輯“0”以兩線間壓差為-(2~6)V表示; 接收端:A比B高200mv以上即認為是邏輯“1”; A比B低200mv以上即認為是邏輯“0”。 2.2.拓撲結(jié)構(gòu) 如圖1所示為EIA-485電路拓撲結(jié)構(gòu),一條EIA-485數(shù)據(jù)鏈路包括一個差分線驅(qū)動設(shè)備(D)和多個差分接收終端(R)。圖1基于485的 DMX512拓撲結(jié)構(gòu)2.3.DMX512 端口及數(shù)據(jù)鏈路 因為是采用485差分信號傳輸,因此DMX512端口一般采用3針或5針接口,相對應的導線則為1對或2對雙絞線,導線同時應采用箔片或編織篩包裹。XLR針口分配如下表1所示,其中輔助數(shù)據(jù)鏈路可以不用。 基于EIA-485傳輸距離理論上可以達到1200m,建議控制在800m以內(nèi),若要加長傳輸距離,則需考慮中繼器。DMX512數(shù)據(jù)鏈路的終接方式應消除信號環(huán)路和信號反射,否則可能導致正確設(shè)計的系統(tǒng)出現(xiàn)誤操作。采用結(jié)終端電阻的方式可以消除信號反射,DMX512標準要求,終端電阻應放置在數(shù)據(jù)+和數(shù)據(jù)-信號針之間,阻抗范圍120Ω+5%~120Ω-10%。 3.數(shù)據(jù)協(xié)議格式及傳輸 DMX512 協(xié)議規(guī)定數(shù)據(jù)以數(shù)據(jù)包的形式通過異步通訊的方式進行傳輸。每個數(shù)據(jù)包由若干數(shù)據(jù)幀組成, 每幀數(shù)據(jù)包括1 位低電平起始位、8 位數(shù)據(jù)位和2 位高電平停止位。DMX512協(xié)議要求數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿?50kbps, 亦即每位的傳輸時間為4us, 每幀數(shù)據(jù)的傳輸時間為44us, 它支持多達512 幀數(shù)據(jù)傳輸, 每幀數(shù)據(jù)與相應的控制支路相對應。數(shù)據(jù)包的傳送要符合一定的格式和時序要求,每個包需要發(fā)送2~513個字節(jié)數(shù)據(jù)(由總線設(shè)備來確定)。為了使接收器能夠分辨出第一幀數(shù)據(jù), 每一個數(shù)據(jù)包以一個不短于88us 的低電平信號為起始信號, 即所謂的BREAK信號, 接收器接收到BREAK信號就準備接受隨后而來的數(shù)據(jù)幀; 緊接著BREAK信號之后是不短于8us 的高電平信號MAB (Mark after Break) ; 之后就是數(shù)據(jù)幀。在DMX512協(xié)議中, MAB之后的第一幀數(shù)據(jù)被稱為SC(Start code), 即起始字節(jié),在協(xié)議中規(guī)定其為零, 但在實際應用中可以由生產(chǎn)廠家自己確定其具體的值, 以傳遞特殊消息。SC標明其后面的數(shù)據(jù)是8位控制信號數(shù)據(jù)幀。一個數(shù)據(jù)包發(fā)送完成后,可以發(fā)送MT BP。MT BP (Mark Time Between Packets)標志著一個完整的信息包發(fā)送完畢 ,是下一個信息包即將開始的 “空閑位”,高電平有效數(shù)據(jù)幀之間可以有時間間隔, 也可以沒有; 同樣, 數(shù)據(jù)包之間可以有時間間隔, 也可以沒有。DMX512協(xié)議規(guī)定BREAK信號、MAB信號的最短時間, 并規(guī)定BREAK信號、MAB信號、數(shù)據(jù)幀之間及數(shù)據(jù)包之間的時間間隔的最大值不得超過1s, 否則做出錯處理, 但是DMX512 協(xié)議并未對出錯處理做任何規(guī)定。DMX512協(xié)議所規(guī)定的數(shù)據(jù)格式如圖2所示,各信號的定時時間如表2所示 圖2中,虛線框內(nèi)為一個數(shù)據(jù)幀的格式,S為1個比特起始位(低電平),E為2比特的停止位(高電平),D0~D7為8個比特的控制數(shù)據(jù),其電平組合從 00000000~11111111 共有 256 個狀態(tài)(對應十進制數(shù)的0~255) ,控制燈光的亮度時 ,可產(chǎn)生256個亮度等級 ,00000000 (0)對應燈光最暗 ,11111111(255)對應燈光最亮。信息包中,第1幀對應第1回路的燈具,第2幀對應第2回路燈具,依此類推,第512幀對應第512回路燈具,燈具回路的地址在燈具上可設(shè)置。 DMX512協(xié)議是一種基于主從式的協(xié)議,能夠適應一對多的燈光控制系統(tǒng)。