В статье описаны современные технологии передачи аудио, которые могут использоваться при проектировании аудиосистем безопасности. Предложен обзор основных алгоритмов сжатия аудиопотока, проанализированы достоинства и недостатки различных типов линий передачи данных (Ethernet и RS-485). В качестве иллюстрации дан практический пример: разработка системы для голосового оповещения на речных судах и трансляции музыки в каюты.
Подавляющее большинство современных систем голосового оповещения использует цифровые линии связи для передачи аудиоданных, поскольку они обладают целым рядом преимуществ по сравнению с аналоговыми системами:
- высокое качество звука (не изменяется с увеличением расстояния и времени эксплуатации систем);
- удешевление и уменьшение количества линий связи;
- гибкая система коммутации аудио;
- качество связи не ухудшается.
Однако против этих плюсов есть один существенный минус – временные задержки в трансляции звука. Этот факт порождает различные варианты технических решений для передачи цифрового аудио.
Существует некая система компромиссов между:
- временными задержками;
- качеством звука;
- пропускной способностью линии связи.
Увеличивая пропускную способность линии связи можно увеличить качество звучания и уменьшить временные задержки. Однако в этом случае, как правило, уменьшается дальность линий передач и дорожает оборудование цифровых линий связи.
Для уменьшения пропускной способности линий связи можно применить алгоритмы сжатия аудио, что приведет к ухудшению качества звука и увеличению задержек.
Алгоритмы сжатия аудиопотока
Существуют различные методы сжатия звука: с потерей качества и без. Алгоритмы без потери качества значительно уступают по пропускной способности, однако они обладают минимальными временными задержками. Примеры алгоритмов сжатия с потерей качества аудио: MP3, WMA, Ogg Vorbis. Без потери — ADPCM-кодеки.
Пропускная способность недорогих линий цифровой связи (таких как RS485 и RS422), как правило, достаточна для передачи сжатого ADPCM-звука. Временные задержки при этом незначительны (исчисляются миллисекундами). Однако производители систем голосового извещения, таких как противопожарные системы безопасности, системы конференцсвязи и т.д., наряду с голосом передают другие аудиоданные. Это ограничивает использование ADPCM-кодеков, поскольку они рассчитаны на низкий битрейт и потому не подходят для качественной передачи аудио. Из-за этого приходится использовать «тяжелые» алгоритмы сжатия, такие как MP3, WMA, Ogg Vorbis.
Сжатие аудиоданных можно реализовать как программно, так и аппаратно. Для программного сжатия используются библиотеки для различных платформ, которые сжимают и «распаковывают» форматы MP3, WMA, Ogg Vorbis. Однако такие алгоритмы требуют больших вычислительных ресурсов и расходуют много времени. В большинстве недорогих контроллеров они практически нереализуемы (в особенности это касается алгоритмов сжатия). Потому для компрессии и декомпрессии также используются кодеки MP3, WMA, Ogg Vorbis и разнообразные аппаратные ADPCM-кодеки для кодирования голоса.
При выборе аудиокодека необходимо также учитывать лицензионную чистоту будущей системы. Дело в том, что разработчики MP3 и WMA получают лицензионные отчисления за каждое устройство, которое кодирует или декодирует эти форматы. Еще до недавнего времени лицензионные отчисления MP3-формата производились только при использовании MP3-компрессора. Однако согласно новым условиям, предложенным компанией Thomson Multimedia и Институтом Фраунгофера, выплата лицензионных отчислений должна осуществляться также при использовании декомпрессоров.
Стоит заметить, что после введения новых правил лицензирования технологии MP3, закономерно возрос интерес к Ogg Vorbis.
Проблема синхронизации аудиокодеков
Для нормальной передачи аудиоданных необходимо, чтобы кодер и декодер работали на одной частоте, сохраняя при этом естественную скорость звуковоспроизведения, т.к. из-за различных частот будут возникать прерывания потока.
Поскольку аудиокодеки тактируются от собственных генераторов, нет гарантии, что все генераторы будут работать с одной частотой. Дивергенция частоты происходит из-за естественных расхождений характеристик кварцевых резонаторов. Известны следующие решения данной проблемы:
- тактировать все аудиокодеки от одного генератора;
- использовать буфер и автоматическую подстройку скорости проигрывания.
Тактировать кодеки от единого стробирующего сигнала зачастую неэффективно для передачи аудио на большие расстояния.
Во втором случае необходимо использовать буфер для входящих аудиоданных и механизм автоматического регулирования скорости проигрывания. Для автоматической подстройки скорости можно применить пропорциональный (П), пропорционально-интегральный (ПИ) или пропорционально-интегрально-дифференциальный (ПИД) алгоритм регулятора скорости проигрывания с инерционной обратной связью. В качестве обратной связи используется показатель уровня наполненности буфера. Идеальным считается значение 50% — именно такой показатель стремятся стабилизировать данные алгоритмы. Наличие буфера вносит временную задержку в вещание аудио, поэтому для достижения баланса между временем задержки и скоростью стабилизации П/ПИ/ПИД-алгоритма необходимо отрегулировать размер буфера.
Выбор алгоритма П/ПИ/ПИД определяется, главным образом, требованиями к размеру буфера (допустимой задержке) и критериями надежности и непрерывности аудиопотока. Лучшие показатели при должной настройке предоставляет алгоритм ПИД. В целом, основная трудность в данных алгоритмах заключается в тончайшей настройке коэффициентов.
Линии передачи данных
Рассмотрим пример использования проводных линий связи RS-485 и Ethernet для построения систем голосового оповещения. Протокол физического уровня RS-485 позволяет передавать данные на произвольной установленной скорости вплоть до 1 Мбит/с; дальность связи при этом достигает 1200 м. Также доступно параллельное подключение до 128 устройств на одну линию данных.
Дальность связи определяется скоростью передачи данных, количеством устройств на линии и качеством приемопередатчиков. Существуют два типа приемопередатчиков: полнодуплексные и полудуплексные. Для построения сети с полнодуплексным приемопередатчиком требуются две витых пары: одна — для передачи данных, другая — для приема. Такой вариант позволяет осуществлять одновременный прием и передачу. Полудуплексный режим требует только одну витую пару, которая используется как для приема, так и для передачи данных, что является единственным преимуществом перед полнодуплексным режимом.
Протокол физического уровня Ethernet позволяет передавать данные на скоростях 10 или 100 Мбит/с. Физические протоколы передачи информации для этих скоростей различны. Однако Ethernet-контроллеры скрывают эти различия от разработчика.
Преимущества использования Ethernet по сравнению с RS-485 следующие:
- Высокая пропускная способность.
- Имеется множество Ethernet-контроллеров, которые имеют аппаратную реализацию протокола IEEE802.3-MAC, поэтому разработчику не приходится интегрировать существующий или разрабатывать собственный протокол канального уровня.
- Сеть легко масштабируется с применением стандартного Ethernet-оборудования.
- Высокая пропускная способность, размер данных одного кадра в 1500 байт, а также совместимость со стандартным сетевым оборудованием способствуют инкапсуляции IP-протокола и передаче данных посредством высокоуровневых TCP/UDP-протоколов. Однако для передачи аудиопотока это не всегда выгодно, т.к. накладные расходы на реализацию IP, UDP, TCP увеличиваются.
- Большинство современных микроконтроллеров имеет встроенный модуль IEEE802.3-MAC + PHY (физический уровень).
- Дополнительное преимущество в виде использования протокола IEEE 1588 PTP для синхронизации времени на всех устройствах в сети. Протокол рассчитан на использование в сетях Ethernet и в некоторых микроконтроллерах поддерживается аппаратно.
Технология Ethernet также не лишена следующих недостатков:
- Максимальная длина кабеля — 100 м.
- Соединение только в режиме «точка-точка» при использовании витой пары. Объединение нескольких устройств возможно только по топологии «звезда» с использованием коммутаторов.
- Требуются как минимум две витых пары.
- Слабее помехозащищенность линий связи RS-485, требуются более дорогой кабель.
- Необходим Ethernet-контроллер (внешний или встроенный в микроконтроллер).
- Высокая стоимость промышленного сетевого оборудования (если оно необходимо).
Ethernet 10-BASE-T (10 Мбит/с) имеет одно преимущество во встраиваемых системах перед 100-BASE-T (100 Мбит/с): по принципу кодирования сигнала 10-BASE-T и RS-485 совместимы, что позволяет создавать недорогие повторители сигналов для увеличения дальности связи с использованием недорогих приемопередатчиков RS-485.
Из всего перечисленного следует вывод, что целесообразнее применять Ethernet-линии связи и несжатый аудиопоток в том случае, если Ethernet отвечает требованиям по длине кабеля, помехозащищенности и топологии сети.
Практическая реализация решения для передачи аудио
Рис. 1. Общая схема системы голосового оповещения
Цель. Построить систему для голосового оповещения на речных судах, а также для трансляции музыки в каюты (см. рис. 1–3).
Реализация. В кабине капитана устанавливается пульт управления, а в каютах, на палубах, технических помещениях — абонентские устройства. Для надежности системы абонентские устройства подключаются к пульту управления по топологии «звезда» через коммутатор линий. Длина кабеля от коммутатора линий до абонентского устройства может достигать 300 м.
Аппаратные требования. Сеть RS485 — полнодуплекс, кодек VS1053 (Ogg Vorbis), микроконтроллер STM32.
Выбранный метод. Аппаратное сжатие аудио с параметрами 44100 Гц, 16 бит mono в формат Ogg Vorbis реализуется аппаратно кодеком VS1053 производства VLSI.
Требования пропускной способности линий связи. Поскольку нужно организовать одновременную трансляцию музыки и голоса, используются два аудиоканала по 115200 бод на каждый. Следовательно, выбранная скорость линии составляет 230400 бод.
Преимущества:
- большая длина линий передач (более 150 м);
- высокое качество голоса и музыки.
Недостатки:
- большая задержка перед началом вещания;
- звук приходит с опозданием;
- невозможно синхронное проигрывание звука на нескольких абонентских устройствах.
Основные сложности в уменьшении временной задержки возникли в связи с особенностями кодека VS1053, а именно:
- инициализация кодека перед проигрыванием требует загрузки OGG-заголовка размером 4 Кбайт, что вносит существенную задержку порядка 1 с;
- кодек неравномерно выдает OGG-поток.
Для регулирования скорости проигрывания использовался ПИ-алгоритм.
Рис. 2. Пульт управления системы голосового оповещения
Рис. 3. Абонентское устройство в системе голосового оповещения