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