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 numerze poznaliśmy trochę podstawowych informacji o sieciach cyfrowych, w szczególności o założeniach i zasadach sieci Ethernet, jako tej, na kanwie której powstały cyfrowe sieci wielokanałowej transmisji audio.
W tym artykule przyjrzymy się konkretnym rozwiązaniom – CobraNetowi, EtherSoundowi i wypierającemu je coraz śmielej protokołowi Dante. Wspomnimy też o AES50 i HyperMac.
CobraNet jest systemem zaprojektowanym w 1996 roku przez Peak Audio (obecnie linia produktów komercyjnych Cirrus Logic). CobraNet został zaprojektowany do wykorzystania przede wszystkim w dużych instalacjach audio (na przykład centra kongresowe, stadiony, lotniska, parki rozrywki, sale koncertowe). Sprawdza się (choć, biorąc pod uwagę ekspansję Dante, a obecnie także AVB, raczej należałoby stosować już tryb przeszły) w zastosowaniach, w których duża liczba kanałów audio musi być przekazywana na stosunkowo duże odległości i/lub w wielu lokalizacjach.
Przez pojedyncze złącze 100-Mbitowe może być przesyłane w obu kierunkach do 64 kanałów audio z częstotliwością próbkowania 48 kHz i rozdzielczością 20 bitów. Oznacza to w sumie możliwość przesyłu 128 kanałów za pomocą pojedynczej skrętki Cat5. Ponadto korzystając z sieci Gigabit Ethernet (IEEE 802.3ab) można uzyskać większą częstotliwość próbkowania, nawet do 96 kHz, i rozdzielczość 24 bity (ale liczba kanałów pozostaje wciąż ta sama).
Przesyłanie danych w sieci CobraNet odbywa się za pomocą standardowych pakietów Ethernet. Jednak zamiast korzystać z pakietów TCP/IP, CobraNet przesyła dane za pomocą warstwy łącza danych (warstwa druga – identyfikacja wg. MAC adresów), dzięki czemu pakiety szybko podróżują poprzez węzły, mosty i przełączniki (switche) i nie są tak wrażliwe na opóźnienia i inne problemy powszechnie występujące w transmisji strumieniowej za pomocą protokołów wyższej warstwy transportu. O warstwach mówiliśmy sobie w artykule miesiąc temu, do którego odsyłam, gdyby ktoś zapomniał lub nie wiedział, w czym rzecz. Ponieważ jednak CobraNet nie korzysta z protokołu IP, jego pakiety nie mogą podróżować przez routery, a zatem ogranicza się do stosowania wewnątrz sieci LAN, dane CobraNet nie mogą też być używane w Internecie. Wszystkie pakiety CobraNet określane są za pomocą unikalnego identyfikatora protokołu Ethernet, przypisanego do Cirrus Logic. CobraNet może też, w idealnych warunkach, pracować w sieciach bezprzewodowych.
Choć komunikacja w sieci CobraNet odbywa się na poziomie warstwy drugiej, to jednak do sterowania poszczególnymi urządzeniami i całą siecią potrzeba adresów IP, czyli warstwy trzeciej.
Dane w CobraNet podzielone są na kanały i paczki. Typowy sygnał CobraNet może zawierać do 4 zestawów paczek podróżujących w obu kierunkach, w sumie 8 paczek. Każda paczka zawiera max. 8 kanałów, co daje nam w sumie 64-kanały audio 48 kHz/20 bity (dla sieci 100 Mbit).
Rozróżniamy trzy rodzaje paczek:
– Multicast – wysyłane z jednego urządzenia do wszystkich urządzeń w sieci (numery 1-255). Każde urządzenie, do którego dotrze paczka Multicast indywidualnie określa, czy będzie korzystało z pakietu, czy je odrzuci. W zawiązku z tym paczki Multicast są bardziej „pasmożerne” niż inne rodzaje paczek
– Unicast – wysyłane z jednego urządzenia tylko do urządzenia lub urządzeń, do których są adresowane (numery 256-65.279). Paczki Unicast są o wiele bardziej efektywne, gdyż starają się dotrzeć tylko do tych odbiorców, którzy chcą je otrzymać. Nazwa może być nieco myląca, gdyż paczki Unicast mogą wędrować nie tylko do jednego odbiorcy, ale i kilku – odbywa się to bądź na zasadzie wysyłania wielu kopii danych, bądź przy użyciu adresowania multicast
– Prywatne – mogą być wysyłane z adresowaniem unicast lub multicast (numery 65.280-65.535). Numery paczek Prywatnych są powiązane z MAC adresami urządzenia, które je przesyła. Aby otrzymać paczki Prywatne, zarówno numer paczki, jak i MAC adres nadajnika muszą być określone. Ponieważ paczki Prywatne są powiązane z urządzeniami nadającymi, nie ma limitu ich ilości.
Cała sztuka, a w zasadzie trudność, w pracy z siecią CobraNet polega na tym, że już na etapie jej projektowania trzeba przewidzieć i zaplanować ile i jakie paczki będą wysyłane i kto je będzie odbierał, tak aby nie „zapchać” sieci, tzn. nie przekroczyć limitu możliwych do przesłania danych. Największą uwagę trzeba przykładać do paczek typu Multicast, gdyż zbyt hojne nimi szafowanie może doprowadzić do przekroczenia przepustowości sieci (czyli 100 Mbitów w „zwykłej” sieci Ethernet i 1 Gbit w sieci Fast Ethernet).
Podstawowym sposobem łączenia urządzeń w sieci CobraNet jest konfiguracja gwiazdy, tak więc do stworzenia choćby najmniejszej, składającej się z dwóch członków, sieci CobraNet potrzebujemy co najmniej jednego switcha. Z definicji topologia gwiazdy oferuje tylko jedną drogę przesyłu danych z jednego punktu sieci do drugiego, tak więc (również z definicji) topologia ta nie jest redundantna. Jeśli więc zależy nam na bezpieczeństwie i niezawodności przysyłanych danych, musimy zastosować drugą, redundantną sieć, opartą na drugim switchu (lub drugim zestawie switchy, jeśli jest to bardziej rozbudowana sieć). W tej sytuacji mogą pojawić się alternatywne drogi dotarcia danych, a więc w celu uniknięcia tworzenia się pętli i krążenia wewnątrz nich pakietów wykorzystuje się protokół STP (Spanning Tree Protocol – o tym też było wspomniane w poprzednim numerze.
Każde urządzenie w systemie CobraNet ma dwa gniazda – primary i secondary. Normalnie pracuje tylko jedno z nich (primary), drugie wykorzystywane jest do tworzenia połączeń redundantnych i za jego pomocą możemy podłączyć drugi, „równoległy” switch, zapewniający bezpieczeństwo połączenia.
Synchronizację czasową zapewnia pierwsze urządzenie, które zgłosi się do sieci, tzw. conductor (niech będzie, że to dyrygent). Wysyła ono z bardzo dużą szybkością małe pakiety do wszystkich urządzeń w sieci, które zwane są wykonawcami (performers). Synchronizują one swoje zegary tak, by sygnały w systemie były zgodne czasowo. W przypadku gdy conductor ulegnie awarii lub odłączeniu od sieci, w ciągu kilku milisekund zostanie wybrany nowy conductor. Sieć CobraNet nie może funkcjonować bez niego.
Latencja w systemie CobraNet wynika z buforowania próbek sygnału przez każde urządzenie i wynosi maksymalnie 5,33 ms (256 próbek). Do tego dodać trzeba latencję związaną z konwersją A/D i D/A (zwykle 10-50 próbek). Opóźnienie można zmniejszyć poprzez wysyłanie mniejszych pakietów, ale częściej. W większości przypadków operator może wybrać odpowiednie opóźnienie dla konkretnego urządzenia CobraNet (5,33; 2,66 i 1,33 ms). Zmniejszenie latencji ma jednak swoje ujemne konsekwencje:
– wymaga większej mocy obliczeniowej,
– zwiększa wymagania co do wydajności
sieci i w niektórych konfiguracjach może nie być możliwe, ponieważ zmniejszenie latencji oznacza wysyłanie mniejszych pakietów z większą częstotliwością, w przypadku sygnału audio o wyższej jakości (np. 96 kHz/ 24 bity) mniejsza liczba kanałów przypadająca na paczkę będzie mogła być przesyłana bez przekroczenia limitu 1.500 bajtów dla pakietów Ethernetowych.
EtherSound jest wytworem francuskiego producenta Digigram. Po raz pierwszy został zaprezentowany szerszemu gronu w 2001 roku. Digigram opracował nie tylko warstwę logiczną sieci i „sprzedaje” licencję na użytkowanie sieci EtherSound, ale również produkuje układy FPGA, bez których nie może obejść się żadna karta czy urządzenie z zaimplementowaną technologią EtherSound.
EtherSound zapewnia pełną, dwukierunkową komunikację za pomocą sieci Ethernet, z którą jest w pełni kompatybilny. Może też tworzyć własną sieć VLAN (Virtual LAN), pracującą jako część już istniejącej sieci.
EtherSound występuje obecnie w dwóch odmianach: ES-100 i ES-Giga. Protokół ES-100 do przesyłu danych używa 100-Mbitowej sieci Ethernet, zajmując całe dostępne pasmo (mała część pasma jest wykorzystywana do komunikacji kontrolnej), oferując 64 kanały przesyłane w obie strony, czyli w sumie 128. W zależności jednak od częstotliwości próbkowania kanałów będzie mniej – np. przy 96 kHz będziemy dysponować maksymalnie 32 kanałami. Znacznie większe możliwości oferuje nam protokół ES-Giga, który „pracuje” na Ethernecie Gigabitowym. W tym przypadku całkowita liczba kanałów obsługiwanych przez sieć zwiększa się do 256.
Przejdźmy teraz do
stosowanych w sieci EtherSound. Podstawowym schematem połączenia w systemie EtherSound jest połączenie łańcuchowe, czyli daisy-chain, aczkolwiek z powodzeniem można również stosować połączenia w topologii gwiazdy oraz mieszane. Jednakże w przypadku gwiazdy są pewne ograniczenia (o czym za moment).
Pojedynczy interfejs sieciowy EtherSound składa się z dwóch gniazd: IN i OUT. Nie są to jednak bynajmniej wejścia i wyjścia w klasycznym tych słów znaczeniu – przez oba gniazda komunikacja odbywa się bowiem w obu kierunkach. Nazwy IN i OUT określają nam, z którego gniazda podajemy sygnał do kolejnego urządzenia w sieci (OUT), a na który wchodzi on od poprzednika (IN). Jeśli mamy klasyczne połączenie łańcuchowe (daisy- -chain), to pierwsze urządzenie w sieci będzie miało zajęte tylko gniazdo OUT, zaś ostatnie – tylko IN. Wróćmy jednak to połączeń urządzeń w sieci.
Pierwsze urządzenie w łańcuchu nazywa się Primary Master i rozpoczyna ono wysyłanie 64-kanałowego (przy częstotliwości próbkowania 48 kHz i rozdzielczości 24 bity) strumienia danych „w dół” (tzn. z gniazda OUT do gniazda IN kolejnego urządzenia w łańcuchu) oraz – jeśli został wybrany tryb dwukierunkowy – odbiera dane powrotne z innych elementów sieci (w tym przypadku transmisja odbywa się „w górę”). Odcinki łączności dwukierunkowej programuje się poprzez ustawienie odpowiednich urządzeń w tryb „Loop Back” lub „End Of Loop”.
W połączeniu typu daisy-chain wszystkie kanały są dostępne w obu kierunkach dla wszystkich podłączonych urządzeń. W architekturze gwiazdy wszystkie kanały w obu kierunkach dostępne są dla wszystkich urządzeń, oprócz pierwszego podłączonego do switcha (może on przesyłać sygnał tylko „w dół”). Wynika to z tego, iż gdyby trzy gałęzie (patrz rysunek) podłączone do switcha wysyłały po 64 kanały w górę, na wyjściu switcha mielibyśmy w sumie 192 kanały, co trzykrotnie przekroczyłoby dopuszczalną szerokość pasma. Z tego też samego powodu ostatnie urządzenie w łańcuchu głównym (w którym znajduje się urządzenie Primary Master), które podaje sygnał bezpośrednio na switch, będzie również w tę stronę transmitowało sygnał jednokierunkowo (mówiąc prościej, od strony switcha nie może spodziewać się żadnego przesyłania).
Jeśli „zamkniemy” topologię daisy-chain, otrzymamy „ring”, czyli topologię pierścieniową, która z definicji będzie już redundantna. To jednak znów powoduje nam możliwość powstawania pętli, w których „zabłądzić” mogą wędrujące siecią sygnały. Aby temu zapobiec, tutaj również odwołujemy się do protokołu STP, który powoduje, że – choć fizycznie podłączone – jedno z połączeń między wybranymi urządzeniami programowo jest zablokowane. W sytuacji gdy przerwaniu ulegnie jedno z aktywnych połączeń, owe zablokowane w krótkim czasie „wraca do gry” i sygnał może znów wędrować po całej sieci.
Z uwagi na to, że w EtherSoundzie mamy niejako „wbudowane” w ramkę sygnału dane sterujące i monitorujące pracą, nie trzeba stosować dodatkowych połączeń, a więc dodatkowych kabli i złączy. Konfigurowanie, sterowanie i monitorowanie pracy sieci można dokonywać z jednego miejsca, za pomocą oprogramowania na PC lub mikrokontrolera (w przypadku mniej skomplikowanych rozwiązań konfiguracji możemy też dokonywać za pomocą przełączników znajdujących się w każdym interfejsie).
Istotne jest, aby komputer z oprogramowaniem podłączony był kablem skrosowanym do wejścia IN urządzenia w sieci (pozostałe połączenia w sieci wykonywane są kablem prostym). W konfiguracji łańcuchowej nie ma problemu – mamy cały czas wolne wejście IN w urządzeniu Primary Master. Gdy mamy sieć skonfigurowaną jako ring, wszelkich konfiguracji i sterowania pracą sieci możemy dokonywać tylko wtedy, jeśli któreś połączenie zostanie fizycznie rozłączone. Oczywiście nie wpływa to na pracę sieci, która cały czas jest w pełni „sprawna”, ale w przypadku wystąpienia awarii jakiegokolwiek połączenia stracimy jej redundantność. Dlatego też w topologii pierścieniowej, jeśli zależy nam na bezpieczeństwie, po dokonaniu konfiguracji należy odłączyć komputer i zamknąć sieć w pierścień.
Wszystkie urządzenia w systemie czytają pakiety informacji przesyłane w obu kierunkach. Mamy trzy rodzaje urządzeń, ze względu na możliwość wprowadzenia i/lub wyprowadzenia sygnału z i do sieci: Master, Slave i Master/Slave. Urządzenia Master, wyposażone w wejścia analogowe, przetwarzają sygnał analogowy na cyfrowy. Urządzenia Slave odwrotnie – przetwarzają sygnał cyfrowy na analogowy, wysyłając sygnał na zewnątrz systemu. Ostatnie – Master/Slave – są wyposażone zarówno w wejścia, jak i wyjścia.
Ograniczenie do 64 kanałów wcale nie musi być takie „straszne”, jakby się z pozoru wydawało (abstrahując już od tego, że 64 kanały to całkiem sporo – biorąc pod uwagę, że „pracują” one w obie strony, czyli de facto jest ich 128). Umiejętne rozplanowanie wykorzystania kanałów wewnątrz sieci może w sumie pozwolić na przesłanie większej liczby fizycznych sygnałów niż owe 64. Dzieje się tak, ponieważ kanały wysłane z urządzenia Master mogą być „pobrane” ze strumienia sieciowego przez urządzenie Slave i dla kolejnych urządzeń w sieci są one już wolne. Mogą być więc „nadpisane” przez kolejne urządzenia Master, a więc można wprowadzić do sieci kolejne sygnały, które znów nie muszą wędrować cały czas po sieci, ale zostać pobrane w kolejnym punkcie, zwalniając miejsce innym. To jednak sprawia, że trzeba uważnie planować połączenia urządzeń w sieci, gdyż jeśli już na samym początku zajmiemy całe dostępne pasmo, „wrzucając” w sieć wszystkie 64 kanały, to nawet jeśli gdzieś po drodze umiejscowimy urządzenie Master, które ma dorzucić do sieci „swój” sygnał, nie będzie ono w stanie tego dokonać, dopóki jakieś wcześniej znajdujące się urządzenie Slave (lub Master/ Slave) nie zwolni potrzebnej liczby kanałów. Widać więc, jak elastyczna może być sieć EtherSound, pod warunkiem rozważnego i umiejętnego jej wykorzystania.
I jeszcze słów kilka o
Zaletą sieci EtherSound jest niska latencja – typowo 125 mikrosekund (6 próbek) przy przesyłaniu dwukierunkowym 64 kanałów z rozdzielczością 24 bity i próbkowaniu 48 kHz. Aczkolwiek znając wielkość systemu możemy niemalże co do mikrosekundy określić jego całkowitą latencję: na każdym z urządzeń EtherSound występuje opóźnienie rzędu 1,5 μs (0,5 μs w sieci ES-Giga), do synchronizacji czasowej używa się 5-próbkowego bufora (ok. 104 μs), a każdy switch 100-Mbitowy wprowadza opóźnienie ok. 22 μs.
Dante to technologia opracowana przez australijską firmę Audinate. Pozwala ona na budowanie cyfrowych sieci audio opartych na 100-Mbitowym lub Gigabitowym Ethernecie. Jest to rozwiązanie typu „plug-and-play” – urządzenia włączone do sieci Dante automatycznie się rozpoznają i konfigurują, co jest chyba największą zaletą tej sieci, w porównaniu do poprzedników, zwłaszcza mocno skomplikowanego w obsłudze i konfiguracji CobraNetu.
Kolejną zaletą tej technologii jest niska latencja, a także zastosowanie redundancji w połączeniach dla zwiększenia bezpieczeństwa transmisji. W sieci mogą być przesyłane sygnały audio, wideo, internet oraz dane sterujące. Urządzenia połączone są za pomocą kabli Cat5e. Dla rozszycia sygnałów można wykorzystać tradycyjne przełączniki sieciowe.
W sieciach 100-Mbitowych, przy częstotliwości próbkowania 48 kHz i 24-bitowej rozdzielczości dysponujemy 96 dwukierunkowymi kanałami (48 × 48). Dla 86 kHz mamy ich już o połowę mniej.
W sieci Gigabitowej (48 kHz) mamy tych kanałów aż 1.024 (512 × 512), a zwiększenie częstotliwości do 86 kHz również zmniejsza nam je o połowę.
Sygnały audio są transmitowane w sieci Dante za pomocą pakietów UDP/IP. Pojedynczy pakiet IP może zawierać próbki sygnałów różnych kanałów audio. Pakiety audio mogą być transmitowane z wykorzystaniem adresowania unicast lub multicast (domyślnie unicast). Jeśli chodzi o topologię sieci, stosuje się połączenia w układzie gwiazdy z wykorzystaniem switchy (można też połączyć dwa urządzenia supportujące technologię Dante bezpośrednio ze sobą). W przypadku rozbudowanych sieci ważne jest, aby używać switchy z funkcją Voice over IP (VoIP) Quality of Service (QoS), aczkolwiek nie są to jakieś specjalne urządzenia dedykowane do pracy w sieci Dante, ale switche używane powszechnie do pracy w systemach VoIP. Dzięki temu dane audio mają zawsze największy priorytet (pamiętajmy, że w sieci Dante możemy przesyłać różnorakie sygnały, nawet korzystać w tym samym czasie z internetu i pracować z dźwiękiem), co uchroni nas przed zanikami dźwięku.
Sterowanie urządzeniami pracującymi w sieci Dante odbywa się za pomocą oprogramowania Dante Controller, które może być uruchomione na komputerach PC lub Mac. Dante Controller oferuje intuicyjny interfejs graficzny, który zobrazowuje rozmieszczenie i podłączenie urządzeń w sieci oraz pozwala na konfigurowanie i monitorowanie ich pracy. Dante wprowadza bardzo małą latencję do sygnału – w sieci Gigabitowej wynosi średnio 83,3 mikrosekundy (plus opóźnienie wprowadzane przez karty). Latencja jest deterministyczna, tzn. operator za pomocą oprogramowania Dante Controller może wybrać inną wartość opóźnienia dla różnych urządzeń w sieci, tak że może ona przyjmować różne wartości dla poszczególnych części sieci – nie jest wymagana jedna wartość latencji dla całej sieci (np. w przypadku dołączenia do sieci „wolnego” urządzenia, tj. takiego, które wymaga większej wartości latencji, nie trzeba „zwalniać” pracy całej sieci).
DVS jest to oprogramowanie instalowane na komputerach PC lub Mac, które sprawia, że taki komputer staje się urządzeniem supportującym sieć Dante. Komunikacja z pozostałymi urządzeniami w sieci odbywa się za pomocą zwykłego złącza Ethernet, bez konieczności dysponowania dodatkowym hardwarem. Jak sama nazwa wskazuje, Dante Virtual Sound card jest niejako wirtualną wielokanałową kartą muzyczną z interfejsem ASIO lub Core Audio – bez konieczności instalowania fizycznej karty uzyskujemy możliwość transmisji do 64 kanałów w obu kierunkach. Dzięki temu możemy np. dokonywać wielośladowych nagrań na komputerze podłączonym tylko za pomocą skrętki Cat5e do innego urządzenia w sieci Dante (np. konsolety z kartą Dante).
Rozwijany przez giganta w dziedzinie audio, firmę Sony Pro-Audio Lab, AES50 (SuperMAC) jest standaryzowany przez Audio Engineering Society i pozwala przesyłać do 48 kanałów w obu kierunkach równolegle z użyciem technologii zaczerpniętej z 100 Mbps Ethernet, jednakże nie w całości (własne routery). HyperMAC przenosi do 384 kanałów w obu kierunkach jednocześnie, używając technologii Gigabit Ethernet. Te konfiguracje bazują na sygnałach o częstotliwości próbkowania 44,1 lub 48 kHz, ale w przypadku AES50 częstotliwość próbkowania możemy zwiększyć nawet do 384 kHz! W takim przypadku możemy jednak przesłać tylko 6 kanałów (przy próbkowaniu 88,2 i 96 kHz liczba kanałów wynosi 24). W sieci HyperMAC możemy natomiast transportować sygnały o maksymalnej częstotliwości próbkowania 96 kHz, co pozwala na przesłania maksymalnie 192 kanałów w obu kierunkach, z maksymalną latencją 41,66 μs.
Te dwa systemy różnią się też w innych kwestiach. W AES50 sygnał zegara jest wysyłany i odbierany poprzez dwie pary skrętki kabla, nieużywane przez połączenie sieci 100 Mbps Ethernet. W sieci HyperMAC wszystkie 4 pary są używane do przesyłania danych, dlatego sygnał zegara jest resyntezowany w odbiorniku ze strumienia danych.
Do przesyłania sygnałów w systemie HyperMAC poprzez łącze światłowodowe rekomendowane w specyfikacji jest użycie 850 nm łącza duplex 50/125 mikronów z konektorem LC. Gwarantowany zasięg wynosi minimum 500 metrów. Dedykowanym system przesyłania danych dla konsolet cyfrowych firmy Midas jest system MidasNET. Używa on AES50 i HyperMAC dla wszystkich zewnętrznych i wewnętrznych połączeń audio i danych kontrolnych, takich jak połączenia pomiędzy sceną a stanowiskiem realizatora FOH oraz połączenia między stage- -boksem a procesorami DSP. MidasNET stosuje też systemu AES50 do przesyłania kanału danych pomocniczych, służącego do przesyłania własnych danych kontrolnych pomiędzy różnymi częściami miksera.
A-Net jest wysokiej szybkości cyfrowym rozwiązaniem transmisji audio firmy Aviom. Jest on zdolny do wysyłania i odbierania nieskompresowanego 24-bitowego dźwięku cyfrowego poprzez nieekranowany kabel Cat-5e. Poniżej milisekundowa latencja (880 μs) z analogowego wejścia do analogowego wyjścia oraz możliwość połączenia urządzeń kablem o długości nawet do 150 metrów jest możliwa do osiągnięcia.
Piotr Sadłoń