

Программное обеспечение для беспроводной WiFi-колонки
Заказчик
Европейская компания, разработчик профессиональной аудио-аппаратуры.
Задача
Клиент поручил нам часть работ по созданию беспроводной WiFi-колонки. Мы разрабатывали отдельные компоненты программного обеспечения для профессиональной аудиосистемы, которые объединяют несколько аудиоколонок в группу для централизованной настройки и воспроизведения аудиопотока по беспроводному каналу.
Перед инженерами Promwad стояли задачи:
- Разработать системное программное обеспечение (прошивку) на основе Linux и OpenWRT.
- Разработать прикладное программное обеспечение для автоматического добавления/удаления колонки из WiFi-сети.
Основные технические параметры и требования к системе:
- Совместимость с технологией AirPlay Apple.
- Функция таймерного включения по Wi-Fi и BLE.
- Передача аудиопотока с мобильного телефона (iOS and Android), а также из интернета.
- Настройка колонок из мобильного приложения.
Система включает до четырех Wi-Fi-колонок, которые работают в группе под управлением OpenWrt. В каждой группе одна колонка — главная, а остальные — подчиненные. В беспроводной сети может работать неограниченное число групп колонок. Их контролирует программа-клиент (iOS-приложение / компьютер / дистанционный пульт BLE). Главная колонка в каждой группе получает и отправляет данные на все клиенты своей группы.
Пользователь регулирует громкость из мобильного приложения или при помощи кнопок на любой колонке в группе (в этом случае подчиненная колонка отправит команду управления по восходящему потоку к главной колонке для рассылки этой команды всей группе). Только главная колонка соединяется с интернетом через базовую станцию для получения аудиопотока с музыкальных серверов.
Решение
1. Аппаратное обеспечение
Мы получили опытные образцы первой версии и комплект разработчика от чип-вендора. Команда Promwad выполнила проверку схемотехники и трассировку печатной платы заказчика, чтобы улучшить работу антенны и радио.
Основные компоненты системы:
- Модуль Wi-Fi/Bluetooth 4.0 TI WiLink 8
- Интерфейсы: WiFi 802.11 a/b/g/n, Bluetooth Low Energy (BLE)
- Микропроцессор TI Sitara Cortex-A8 AM33xx DDR3 128 МБ
- NAND Flash 128 МБ
- Аудио-усилитель класса D
2. Программное обеспечение
Мы разработали прошивку на основе последней версии ядра Linux и OpenWrt с поддержкой всего аппаратного обеспечения.
Также мы создали «умный» WiFi-конфигуратор, он проверяет наличие нужных сетей, подключается и работает в них. В случае отсутствия нужной WiFi-сети колонка становится точкой доступа, к которой подключаются другие колонки.
Основные программные модули:
- Модули Wi-Fi kernel: модули ядра wl18xx для аппаратного обеспечения WiLink8 (встроены в ядро или скомпилированы как модули ядра).
- Netifd: «родной» диспетчер сети OpenWRT. Он контролирует основные функции сети, такие как включение / выключение сети, присоединение к AP/ad-hoc, создание APs (можно контролировать через интерфейс U-BUS).
- UCI (единый интерфейс конфигурации): «родная» подсистема OpenWRT для контроля конфигурации. Она хранит и контролирует все файлы конфигурации системных компонентов.
- Менеджер сети (Network Manager): программный модуль, контролирующий беспроводные функции устройства. Он конфигурирует сеть WiFi, выбирает главную колонку, отправляет пакеты данных между устройствами по беспроводной сети, инициирует и закрывает соединение по mDNS, предоставляет интерфейс D-BUS для пользовательского ПО верхнего уровня.
- Пользовательское ПО: программные модули, которые обеспечивают выбор и передачу аудиопотока, настройку системы со стороны пользователя и т.д.
- TEST Module: простое пользовательское приложение для тестирования функциональности верхнего уровня. Оно эмулирует передачу аудиопотока, нажатие кнопок и т.п.
Результат
Заказчик получил протестированную прошивку (firmware) для беспроводной колонки c поддержкой следующих функциональных возможностей:
- Проигрывание аудиопотока AirPlay (MAC, iPhone, iPad and Apple TV)
- Воспроизведения музыки через популярный интернет-сервис Spotify
- Получение и воспроизведение аудиопотока через протокол Bluetooth Audio
- Включение по таймеру с настройкой через мобильное приложение