DMX512协议
寫在前面:?本文章旨在總結備份、方便以后查詢,由于是個人總結,如有不對,歡迎指正;另外,內容大部分來自網絡、書籍、和各類手冊,如若侵權請告知,馬上刪帖致歉。
?
DMX512(digital multiplex)
其實就是主機向從機整包單向廣播發送的協議(protocol),從機自取所需。
DMX512數據協議是美國舞臺燈光協會(USITT)于1990年發布的一種燈光控制器與燈具設備進行數據傳輸的標準。它包括電氣特性,數據協議,數據格式等方面的內容。
512協議規定使用的波特率是250Kbps
一、鏈接拓撲(network topology)
根據后面的協議可以知道,其實就是將所有的slave掛到線上去。(線最長可以多長?)
?
二、協議(protocol)的時序如下圖
1) 先說明地址,包的格式是固定的,第一個數據幀就是地址1(說是0也可以),接下來的數據幀,地址逐漸+1。
2) 1 slot 或者叫 1 data frame(數據幀)=1 start bit(低電平) + 8 data bits + 2 stop bits(高電平) = 11bits, 1bit=4us,1slot=44us。(下圖右下角的藍色字體部分)
3) 1 packet (數據包)= 1 break + 1 MAB(mark after break) + 1 SC(start code) + 512 slots + 1 MTBP(mark time between packets) (下圖紅色字體部分)
- 1 break 典型值88us
- MAB 典型值 8us
- SC就是一幀 44us,第0幀
- MTBP,高電平有效,0-1s之間
time = 88us + 8us + 44us + 512 * 44us + 0 = 22668us = 22.668ms 發包頻率44.11Hz,也就是控制頻率了,如果地址用不完,把slot減少,時間也可以節省,然后頻率可以更高了。(調光控制臺每發送一個信息包,可以對全部512個受控通道形成一次全面的控制。發送一個信息包的時間大約是23 ms,每秒鐘將對所有512個受控通道完成44 次控制,即受控光路的刷新頻率44 Hz,如果實際受控通道少于512個,那么刷新頻率將相應提高。
)
?
放大右下角的每幀時序
?
START BIT 為開始位,寬度為一個比特,是受控燈具準備接收并解碼控制數據的開始標志;
STOP BITS為結束位,寬度為兩個比特,表示一個指令幀的結束;
D0~ D7為8 位控制數據,其電平組合從00000000一11111111 共有256個狀態(對應十進制數的0~255),控制燈光的亮度時,可產生256個亮度等級,0000~ (0)對應燈光最暗,11111111(255)對應燈光最亮。
無校驗位
?
DMX512指令的位寬(每比特寬度)是4 us,每一個指令幀11位,故指令幀寬度為44 us,傳輸速率為1/44us = 250 kbps。
?
DMX512 信息包定時表:
?
一個完整的DMX512信息包(Packet)由一個MTBP位、一個Break 位、一個MAB位、一個SC 和512個數據幀構成。MTBP(Mark TimeBetween Packets)標志著一個完整的信息包發送完畢,是下一個信息包即將開始的“空閑位”,高電平有效。Break為中斷位,對應一個信息包結束后的程序復位階段,寬度不少于兩個幀(22 比特)。程序復位結束后應發送控制數據,但由于每一個數據幀的第一位(即開始位)為低電平,所以必須用一個高電平脈沖間隔前后兩個低電平脈沖,這個起間隔、分離作用的高電平脈沖即MAB(Mark After Break),此脈沖一到,意味著“新一輪”的控制又開始了。SC(Start Code)意為開始代碼幀(圖1中的第0幀),和此后到來的數據幀一樣,也是由11 位構成,除兩個高電平的結束位之外,其他9位全部是低電平,通常將其叫做第0 幀或第0通道,可理解為一個不存在的通道。
?
?
總結
- 上一篇: 手把手教你学SVN
- 下一篇: RS485协议和Modbus协议有什么区