利用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協議是一種基于主從式的協議,能夠適應一對多的燈光控制系統。