WH/T 32—2008 DMX512-A燈光控制數據傳輸協議(三)
說明:WH/T 32-2008《DMX512-A燈光控制數據傳輸協議》是中華人民共和國文化行業標準,由文化部于2008年4月3日發布,2008年6月1日起實施。
本標準等同采用美國國家標準E1.11-2004《USITT DMX512-A 燈光及附屬設備控制的異步串行數據數字傳輸標準》,英文名稱:American National Standard E1.11-2004 Entertainment Technology -USITT DMX512-A Asynchronous Serial Digital Data Transmission Standard for Controlling Lighting Equipment and Accessories。
數據傳輸采用異步串行格式。DMX512字段應被順序傳輸,以第0字段開始,以需傳輸的最后字段結束,最多可傳輸512個字段(最大共513字段)。第一個字段傳送前,應發送復位序列:復位信號、復位后標記和起始碼。在零起始碼之后有效的DMX512數據字段值應為十進制0~255。
數據的傳輸格式如表5所示。注意沒有發送校驗位。
復位信號表示一個新數據包的開始。
發送器產生的復位信號被定義為占到空再到占的變化,其中空(低電平)的最小時間由表6給出(圖5中的1)。接收器應在表7規定的最小時間內識別復位信號(圖5中的1),并以此作為新數據包的開始。
分隔復位信號和起始碼的標志定義為復位后標記(圖5中的2)。所有的DMX512發送器將產生一個復位后標記,其最小時間和最大時間見表6中的2。對應的接收器應在表7規定的最短時間內,根據復位后標記對數據流作出正確響應。
注:USITT DMX512標準的1986版本曾規定了4μs長的復位后標記。USITT DMX512/1990將該值修改為8μs,并增加了一個選項,如接收器仍能識別4μs長的復位后標記,可予以標明。復位后標記仍為4μs的發送器,將不能與符合本標準的設備一起工作。
起始碼是復位后標記之后的第一個字段(字段0),起始碼具有標識數據包中后續數據性質的功能。
8.5.1 零起始碼
零起始碼用于標識后續字段為無類型的串行8比特信息。由零起始碼標識的數據包是在DMX512網絡中發送的默認數據包。USITT標準的早期版本曾假設零起始碼數據包只發送調光器類數據。實際上,零起始碼數據包已廣泛地用于其他設備,本標準認可這一事實。
零起始碼數據包中不包括數據類型和地址結構。設備要使用零起始碼數據包中的數據必須知道數據在數據包中的位置。
不保證所有零起始碼數據包都被傳遞到所有的設備。使用零起始碼數據包的設備應是這樣一種類型,即數據包丟失將不會嚴重影響設備的工作。因此,發送的數據應該是一個參數的當前值,而不是一個執行程序的命令。一旦控制器被設置為一種特定的應用,所有的零起始碼數據包應該有相同的字段數。
8.5.2 調光器亮度等級數據
調光器亮度數據應使用零起始碼數據包。有效的調光器亮度級別應該在0~255(十六進制00~FF)之間。0表示調光器關閉,255表示調光器最大輸出。調光器應該對0~255之間的DMX512字段值作出響應。DMX512字段值與調光器輸出之間的精確對應關系不屬于本標準范圍。
注:零起始碼數據包是DMX512網絡發送的默認數據包,可能會含有非調光器亮度的數據。

表5 字段格式
8.5.3 其他起始碼
為了未來的擴展和使用的靈活性,提供了255個非零起始碼(十進制的1~255,十六進制的01~FF),即備用起始碼。當需要通過DMX512數據鏈路發送專用信息時,應使用已經注冊的備用起始碼。
部分備用起始碼被保留,見附錄D“保留的備用起始碼”。
備用起始碼的注冊規則見附錄E“備用起始碼,生產商ID和增強功能的注冊”。
8.5.3.1 零起始碼數據包的刷新
交替發送零起始碼數據包和備用起始碼數據包的DMX512發送器,每秒至少發送一次零起始碼數據包。
8.5.3.2 備用起始碼數據包的時間間隔
為保證中繼設備不丟失必要的備用起始碼數據,可以采用下述方法降低備用起始碼數據包的最大刷新率。
a.將發送備用起始碼數據包的最短時間提高10%,以增加兩個復位信號之間的傳輸時間,使之大于8.11定義的最小時間。
b.發送器可交替發送非必要的零起始碼數據包和備用起始碼數據包。
8.5.3.3 中繼設備對備用起始碼數據包的處理
DMX512處理設備或任何接收并重傳DMX512的設備應在產品手冊中說明其產品處理備用起始碼數據包的方法。可采用的處理方法是:
a.阻止所有含有特定備用起始碼的數據包。被阻止的起始碼應公布(也可以是所有的備用起始碼)。
b.傳輸所有含有特定備用起始碼的數據包。允許傳輸的起始碼應公布。
c.處理含有特定備用起始碼的數據包信息,處理方法應詳細說明,供用戶來決定設備是否滿足其需要。
除非聲明了數據的處理算法,DMX512中繼轉發設備不應時而傳輸具有特定備用起始碼的數據包,時而又阻止含有同樣備用起始碼的數據包。
8.5.4 起始碼的處理
除中繼設備外的所有接收設備,都應處理起始碼,而且要處理零起始碼與備用起始碼數據包之間的差異。不應認為接收到的所有數據包都是零起始碼數據包而忽略對起始碼的處理。
每個數據鏈路最多傳送512個數據字段。當需要傳送更多字段時,應使用多個數據鏈路。
在數據鏈路上,沒有規定最小字段數。只要滿足本標準的最小定時要求(見8.10和圖5),少于512個數據字段的DMX512數據包都可以發送。
數據包中任何兩個字段間的空閑時間(圖5中的9)可以在表6中9規定的最小值和最大值之間變化。在所有的空閑時間,數據線都應保持在占狀態。
在數據鏈路上發送的任意類型起始碼、任意長度的數據包,均應以復位序列(圖5中12)開始,即復位信號、復位后標記和起始碼。一個數據包最后字段的第2個停止位與下一個數據包的復位信號下降沿之間的時間(圖5中10)可以在最小和最大值之間變化,見表6中的10。在這個時間內,數據線應保持占狀態。因此,發送器不應在數據包之間產生多個復位信號。當數據鏈路發生錯誤產生多個復位信號時,接收器應具有恢復接收數據的能力。
發送器產生的數據包復位信號下降沿與下一復位信號下降沿之間的時間應不小于表6中13的最小值,且不大于表6中13的最大值。
當接收到的數據包其兩個復位信號之間的時間符合表7中13時,接收器應能正常工作。
時間參數應符合時序圖(圖5)和與之相關的表6和表7的要求。
對于所有接收到的字段,接收器不但要檢查第一個停止位而且應檢查第二個停止位,確定它們是否正確。若沒有檢測到正確的停止位,應丟棄該字段以及數據包中所有后續字段。
在表7列出的復位信號間的最大間隔內,接收器收到前一個復位序列后未接收到下一個復位序列(復位信號、復位后標記和起始碼),即視為數據丟失。

表6 時序圖參數——發送器

表7 時序圖參數——接收器

盡管本標準未規定丟失數據的處理方法,但生產商應說明其丟失數據的處理方法。
注:在無法確認安全或無替換控制數據源的情況下,發生數據丟失時,接收設備應至少維持工作狀態60 s,等待DMX512信號的恢復。
當接收連續發送的含有任何有效字段數的數據包時,DMX512接收設備應能正常工作。
某些產品可能提供一些特有功能,對各個連續DMX512數據包進行處理或不進行處理。這樣的產品在兩數據包之間的數據發生變化時會有一定的延時,生產商應該按照第10章的要求予以聲明。
(未完待續)
(編輯 張冠華)