X4L - wzmacniacz z DSP z serii X
Biznes „nagłośnieniowy” – w porównaniu z innymi dziedzinami techniki (np. przemysłem samochodowym, czy ...
W poprzednim, pierwszym z serii, artykule poznaliśmy historyczne podłoże powstania protokołu DMX, a także kilka podstawowych informacji o innych, tak analogowych, jak i cyfrowych protokołach wielokanałowego przesyłania sygnałów sterujących oświetleniem.
Czas jednak przejść do konkretów, toteż w tym artykule skupimy się już tylko na DMX-ie, dowiadując się co nieco o jego założeniach, właściwościach i strukturze. A więc do dzieła.
CECHY DMX
Z racji tego, że nierzadko jeszcze możemy natknąć się na protokół DMX w standardzie z 1990 roku, omówimy sobie cechy i właściwości tegoż właśnie standardu (USITT DMX 512/1990), a następnie powiemy, co nowego pojawiło się w obecnie używanym standardzie DMX512-A z 2004 roku.
Na początek wypunktujemy sobie najistotniejsze cechy i właściwości protokołu DMX512:
1. Jedna linia DMX-owa (universe) pozwala na przesyłanie "w dół" do 512 kanałów za pomocą jednego kabla DMX-owego. Oczywiście, takich linii może być kilka - każda będzie przesyłać 512 kanałów - przy czym każda będzie wymagała osobnego kabla.
2. Jedną linią (kablem) możemy sterować maksymalnie 32 odbiornikami, czyli urządzeniami oświetleniowymi, przy czym im ich mniej, tym lepiej.
3. Dane DMX są odświeżane ok. 44 razy na sekundę, dlatego też do przesyłania sygnałów DMX wymagane są kable wysokiej jakości, pozwalające na bezproblemową transmisję sygnałów wysokoczęstotliwościowych (średni czas odświeżania danych przeważnie wynosi ok. 25 razy na sekundę).
4. DMX nie jest protokołem z kontrolą błędów, gdyż sygnały są przesyłane tylko w jednym kierunku, a więc nie ma możliwości uzyskania "odpowiedzi" od odbiorników w celu zweryfikowania poprawności odebrania danych.
5. Standard DMX nakazuje, aby w przypadku utraty połączenia odbiornik utrzymywał ostatnie prawidłowo odebrane dane przez 1 sekundę. Niestety, standard nie definiuje, co powinno wydarzyć się po tym czasie.
6. Dane są wysyłane jako "elektroniczna wiadomość", toteż muszą być wzmacniane, a w szczególności łączone, również na drodze elektronicznej. Oznacza to, że wszelakie fizyczne łączenie czy linkowanie przewodów, tak jak w przypadku sieci i sygnałów analogowych, NIE MOŻE mieć tutaj miejsca (nie stosujemy na przykład tzw. kabla Y).
7. Sygnały DMX muszą być traktowane z "szacunkiem". Większość problemów powstałych podczas pracy z siecią DMX wynika ze złego zaplanowania bądź zainstalowania systemu lub używania kabli do tego nie przeznaczonych, np. zwykłych mikrofonowych.
8. Na końcu linii DMX-owej ostatnie urządzenie w szeregu musi być wyposażone w terminator. Jest to niewielki rezystor, łączący dwa przewody, którymi płyną sygnały cyfrowe, którego zadaniem jest przeciwdziałać szkodliwym odbiciom na końcach linii (o tym za miesiąc).
9. Szczególną uwagę należy zachować przy długich połączeniach, aby rezystancja przewodów była na tyle mała, żeby uniknąć zbyt dużego spadku napięcia na całej jego długości (a więc strat sygnału). O prawidłowym prowadzeniu długich połączeń - o spliterach, boosterach i repeaterach - będzie mowa w kolejnym artykule.
Wygląda to trochę, jak "DMX-owe 9 przykazań" (zawsze to jedno mniej, niż "zwykle"), ale warto je znać. To na razie była łatwizna, teraz się dopiero zacznie, bo przechodzimy do
STRUKTURY PROTOKOŁU DMX
DMX w gruncie rzeczy "pochodzi" od dobrze znanego standardu przemysłowego RS485. Standard ten definiuje sposób transmisji sygnału i w tej kwestii mówi, że dane są przesyłane "w dół" za pomocą pary przewodów. Dodatkowy przewód (może być np. w formie ekranu) określa punkt (napięcie) odniesienia dla tych dwóch "sygnałowych". Oczywiście, to nic innego, jak znane nam (albo nie) z dźwięku czy sieci komputerowych połączenie symetryczne, które charakteryzuje się dużą odpornością na zakłócenia (i to jest jego najważniejsza cecha).
Wspomniane wcześniej dwa przewody kabla DMX-owego definiowane są jako Dane– (Data Complement) i Dane+ (Data True), a to oznacza, że sygnały w nich płynące są względem siebie w przeciwfazie. Trzeci przewód (common) nazywamy masą albo - rzadziej - wspólnym. Dwa przewody sygnałowe są ciasno ze sobą skręcone, a masa wykonywana jest w formie oplotu, stanowiącego jednocześnie ekran poprawiający odporność przewodów sygnałowych na zakłócenia i powstawanie szkodliwych interferencji. W kablach DMX-owych mamy jeszcze jedną taką parę przewodów, również definiowanych jako Data Complement i Data True, które jednak w standardzie DMX512 nie mają wyznaczonej "roli".
DMX to oczywiście cyfrowy protokół i takiego też formatu sygnały są za jego pomocą przesyłane. To oznacza, że w przewodach - teoretycznie - pojawiają się tylko dwa stany - 0 (odpowiadające napięciu 0 V) oraz 1 (napięcie +5 V). Ponieważ sygnały płynące w przewodach kabla DMX-owego są w przeciwfazie, toteż gdy w jednym z nich będzie 5 V, w drugim pojawi się 0 V, i na odwrót. Dzięki temu odporność na zakłócenia takiego typu sygnału jest o wiele większa, niż analogowego, ale bynajmniej też ograniczona.
Odbiornik na wejściu bardziej "interesuje" różnica pomiędzy tymi sygnałami, niż ich wartość bezwzględna, toteż nawet jeśli w sygnałach pojawią się szumy czy zakłócenia, to w obu żyłach będą one jednakowe (a przynajmniej bardzo zbliżone), a więc odbiornik niejako "zignoruje" je.
Każdy protokół komunikacyjny musi mieć zdefiniowany zestaw kodów pozwalających odbiornikowi na zdekodowanie zawartych w sygnale informacji. Każdy z tych kodów składa się z "porcji" informacji, toteż pojedynczą wartość napięcia sygnału (logiczne zero albo jedynkę) nazywa się "bitem" informacji. Oczywiście, odstępy czasowe pomiędzy tym bitami muszą być ściśle określone, aby odbiornik mógł prawidłowo zdekodować sygnał (bez tego nie będzie wiedział czy wysoki stan napięcia to tylko jeden bit o wartości 1, czy już kilka takich jedynek).
W przypadku sygnału DMX odstęp taki również jest zdefiniowany i wynosi 4 µs. Każdy kod składa się z 8 bitów, co w sumie składa się na jeden bajt (z angielska - byte). Za pomocą jednego bajtu możemy zakodować maksymalnie 256 różnych wartości sygnału, a to oznacza, że np. parametry (bądź wartości) konkretnego sygnału mogą przyjmować wartości od 0 do 255 (np. intensywność światła, obrót głowicy, zmiana koloru). W sygnale DMX, oprócz 8 bitów danych (naszego bajtu niosącego informację) mamy jeszcze jeden bit startu (0) i dwa bity końca (stop, o poziomie 1), co w sumie - wraz z 8 bitami danych - tworzy jedną ramkę sygnału DMX (DMX frame).
To jednak jeszcze nie wszystko (dalej będzie jeszcze gorzej). Kiedy w systemie nie jest przesyłany żaden sygnał, na linii utrzymuje się stan wysoki, czyli 1. Kiedy przez nadajnik zostaje wygenerowany jakiś sygnał, najpierw pojawia się stan niski (nasz sygnał startu), który informuje odbiornik, że teraz wysłane do niego zostaną dane w postaci 8 bitów z odstępem 4 µs między każdym z nich, których powinien "nasłuchiwać". Po tych 8 bitach pojawiają się dwie "jedynki" (również w odstępie 4 µs), które oznaczają koniec transmisji tego jednego, konkretnego bajtu. Dzięki temu odbiornik wie, że teraz albo przejdzie znów w stan oczekiwania (stan wysoki), albo - jeśli pojawi się kolejny bit startu - że ma odebrać kolejną porcję informacji.
Tak więc, jak już wspomniałem, wysłanych zostaje w sumie 11 bitów tworzących ramkę sygnału, o długości 44 µs (4 µs na każdy bit razy 11). Oznacza to, że w ciągu sekundy może zostać przesłanych 250.000 bitów. Tak więc maksymalna prędkość przesyłu danych w systemie DMX wynosi 250 tysięcy bitów na sekundę, czy - stosując nomenklaturę komputerową - 250 kbodów.
Trzeba pamiętać (a żeby pamiętać, to najpierw trzeba wiedzieć), że DMX jest standardem ASYNCHRONICZNEGO przesyłania danych, co oznacza, że ramki mogą być przesyłane w każdej chwili, gdy tylko linia jest w stanie bezczynności (idle). To również oznacza, że zegar albo kod czasowy jest raczej "wbudowany" w sygnał zawierający dane, niż wysyłany jako oddzielny sygnał. Pozwala to konsoletom, podczas "pracochłonnych" czynności, wstawiać na linii DMX-owej stan wysoki (idle), kiedy są zbyt zajęte, aby odświeżać dane DMX, jeśli parametry nie ulegają żadnym zmianom. To z kolei pozwala utrzymywać aktualny stan sygnału DMX w odbiornikach bez żadnych zmian.
Parametry poszczególnych kanałów są wysyłane kolejno, poczynając od 1 do ostatniego używanego. Aby odbiornik wiedział, kiedy wysyłany jest parametr pierwszego kanału, linia zostaje wprowadzona w specjalny stan, zwany przerwą (break). Definiowany jest on jako ciągły stan niski (0), o czasie trwania równym co najmniej podwójnemu czasowi jednej ramki, tj. co najmniej 88 µs. To "utwierdza" odbiornik w przekonaniu, że następną daną będzie początek nowego pakietu informacji. Typowo "break" ma długość od 88 do 200 mikrosekund.
Po owej "przerwie" linia znów zostaje wprowadzona w stan wysoki, jednak na bardzo krótki okres czasu. Ten odcinek czasu, trwający 8 µs, definiowany jest jako "Mark After Break" (pozwólcie, że tym razem będę się trzymał oryginalnej nomenklatury angielskiej, bo "znak po przerwie" nie wygląda zbyt poważnie, nieprawdaż?), po czym wysłany zostaje specjalny kod.
Kod ten zwany jest kodem startowym (start code) i jest pierwszym bajtem, jaki pojawia się po "przerwie" - czyli jest pierwszą ramką w pakiecie (a więc trwa ok. 44 µs), a nie od razu ramką z danymi przeznaczonymi dla kanału 1. Ta bowiem pojawia się dopiero po kodzie startowym. Start Code, w przypadku danych wysyłanych do dimmera, przyjmuje wartość równą ośmiu 0 i oznacza, że następny bajt będzie zawierał 8 bitów danych o poziomie sygnału dimmera. Kombinacji kodu startowego jest, oprócz powyższego, jeszcze 255 i można go różnie wykorzystywać - do transmisji danych zawierających inne informacje, niż poziomy sygnału, np. kontrolę błędów.
Może rysunek 1 wyjaśni ten nieco zagmatwany opis, my natomiast przejdziemy teraz do wyjaśnienia, co to jest
DMX UNIVERSE
czyli - stosując nomenklaturę polską - po prostu Linia DMX-owa.
Każda linia DMX-owa zawiera 513 bajtów. Pierwszy bajt - zgodnie z tym, co przeczytaliśmy wcześniej - to Start Code, po którym następuje 512 bajtów danych, które są wysyłane "w dół" (oznacza to, że dane te wędrują tylko w jedną stronę - DMX to protokół z przesyłaniem jednokierunkowym - "unidirectional").
Oczywiście, system nie musi być ograniczony tylko do jednej linii - jeśli konsoleta ma takie możliwości, może obsługiwać 2,3 czy nawet 4 linie. Ale to też nie jest jakiś "szał" - duże imprezy czy wydarzenia mogą ich mieć nawet kilkanaście (np. koncerty Rolling Stonesów obsługiwane są za pomocą 16 linii), a nawet 21, jak było w przypadku Zimowej Olimpiady w 2006 roku (aż boje się myśleć, ile ich było podczas Olimpiady w Pekinie).
W przypadku pracy z jedną linią temat jest prosty - wszystko jest jasno i wyraźnie określone (każdy odbiornik DMX-owy musi mieć nadany swój, jeden z 512 adresów). Jeśli linii jest więcej, trzeba mądrze rozplanować dystrybucję sygnałów w takim systemie. O ile np. z jednej konsolety sterujemy tylko światłem konwencjonalnym (dimmerami), a z drugiej urządzeniami inteligentnymi, też nie ma jeszcze "tragedii", gorzej gdy cały "majdan" jest sterowany z jednej konsolety, ale z której wychodzą 3 linie DMX-owe. Zachowanie w tym przypadku porządku i logiki przy instalowaniu systemu to klucz do tego, aby nie zginąć w całym tym "bałaganie".
NADAJNIKI DMX
Jak już wspomniałem, sygnał w systemie DMX wędruje tylko w jednym kierunku, a więc będziemy mieć do czynienia z dwiema grupami urządzeń - nadajnikami i odbiornikami sygnału (jednokierunkowość transmisji w zasadzie wyklucza, aby urządzenie było jednocześnie nadajnikiem i odbiornikiem). Nadajnik jest urządzeniem, które generuje sygnał DMX, i w znakomitej większości będą to konsolety sterujące.
Jeśli nadajników mamy kilka - pracujących w jednym systemie, a więc nie w niezależnych, odseparowanych od siebie, jak w opisywanym wyżej przypadku sterowania innymi urządzeniami z jednej, a innymi z drugiej konsolety - jedynym możliwym rozwiązaniem, gdy chcemy aby te pochodzące z różnych źródeł sygnały trafiały do tego samego zestawu odbiorników, jest stosowanie mergerów (o nich powiemy sobie więcej za miesiąc).
Wiemy już, że wysłanie jednej ramki danych trwa ok. 44 µs. Jak łatwo policzyć przesłanie wszystkich 513 ramek jednej linii DMX zajmie ok. 23 ms, co przekłada się na konieczność odświeżania danych z częstotliwością 44 Hz (aczkolwiek typowa częstotliwość odświeżania urządzeń wielu producentów zawiera się między 26 a 30 Hz).
W przypadku konsolet o mniejszej wydajności wyższa częstotliwość odświeżania spowoduje zmniejszenie liczby możliwych do przesłania kanałów, czyli następny pakiet informacji zacznie być wysyłany zanim wszystkie 512 kanałów uda się przetransmitować do odbiorników. Dlatego też minimalna długość pakietu została ustalona na 24 kanały.
Może też zdarzyć się odwrotna sytuacja - odbiorniki nie będą w stanie odebrać wszystkich 512 kanałów. Dlatego też trzeba zwracać uwagę, zwłaszcza w sprzęcie z niższej półki, jakie są ich możliwości transmisyjne, aby nie wydarzyły się sytuacje opisane powyżej.
ODBIORNIKI DMX
Pisałem już o tym, że aby odpowiedni sygnał trafił do właściwego odbiornika, muszą one być jednoznacznie określone w systemie. Dokonuje się tego za pomocą nadania urządzeniom odpowiednich adresów (adresy mogą się powtarzać, jeśli chcemy jednocześnie i w ten sam sposób sterować całą grupą urządzeń). W urządzeniach starszego typu, zwłaszcza dimmerach, adresy ustawia się za pomocą specjalnych przełączników, np. w formie obrotowych enkoderów lub DIP Switchy (rysunek 2). W nowszych, szczególnie w urządzeniach inteligentnych, adresy ustawia się w Menu urządzenia, przeważnie z wykorzystaniem wbudowanego wyświetlacza.
Odbiorniki mają gniazda oznaczone jako "IN" i "THRU". Pierwszy z nich odbiera dane DMX-owe (do niego podłączmy kabel z konsolety bądź poprzedzającego urządzenia), zaś "THRU" (Through) to przeważnie gniazdo pasywnie zlinkowane z gniazdem "IN", z którego podajemy sygnał DMX dalej, na kolejne urządzenie (jeśli jest ono ostatnie, wpinamy tam terminator - o czym napiszę więcej w kolejnym artykule). Dzięki temu, nawet jeśli urządzenie nie ma załączonego zasilania, dane mogą trafić do kolejnych urządzeń w systemie.
Przykład prostego systemu z połączeniem "punkt-punkt" (a więc z jednego urządzenia do drugiego) pokazuje rysunek 3. Wadą takiego połączenia jest to, że w przypadku problemów w którymkolwiek punkcie sieci (odłączenie wtyku czy przerwanie kabla) cały system może nam się "wysypać". Między innymi o tym, jak temu zaradzić, dowiecie się w kolejnym artykule.
Jacek Sitarski
Przy przygotowaniu artykułu autor korzystał z książki "Practical DMX" Nicka Mobsby’ego.