Контроллер управления HDMI-CEC устройствами
Заказчик
Incyma – швейцарская компания, специализи¬рующаяся на разработках в области устройств управления и автоматизации «умного дома».
Задача
Разработать прототип устройства, позволяющего управлять домашним мультимедийным комплексом (домашним кинотеатром, тюнером, видеомагнитофоном и т.д.) с HDMI-интерфейсом через сеть Ethernet при помощи ПК и/или иных устройств, подключенных в сеть Ethernet. Устройство должно максимально быстро и просто настраиваться и интегрироваться в домашний комплекс управления «умным домом».
Линия CEC в HDMI кабеле позволяет передавать команды и управляющие сигналы с одного пульта ДУ различным устройствам домашнего кинотеатра, а также обеспечивает их самостоятельное взаимодействие. Среди команд есть включение/выключение, воспроизведение, переход в режим ожидания, запись и другие. Линия принята за стандарт большинством производителей, что позволяет любым совместимым пультом ДУ управлять аппаратурой любого производителя.
Решение
Анализ протокола CEC показал, что от управляющего процессора не требуется ни высокой производительности, ни развитой периферии. Единственным ключевым требованием является наличие Ethernet (MAC + PHY). Оптимальным решением стал контроллер LM3S6965 с ядром Cortex-M3.
Прототип устройства был разработан на отладочном ките Stellaris® LM3S6965 Evaluation Board. ПО контроллера базируется на библиотеке, реализующей многозадачность, что позволяет упростить структуру программы и использовать независимые программные модули.
Одной из основных задач разработанного встроенного ПО является приём и декодирование команд, приходящих из линии CEC. Второй важной задачей является поддержка TCP/IP стека. В качестве готового решения в этом случае был выбран стек uIP, как требующий минимальных ресурсов. Данный стек уже поддерживает множество сетевых протоколов, и для данной задачи их число было значительно расширено. Так, на данный момент устройство использует следующие протоколы:
- HTTP – устройство предоставляет пользователю web-страничку с перечнем обнаруженных устройств и минимальным интерфейсом управления;
- Telnet – основной протокол, по которому более «умное» устройство или пользователь смогут «видеть» все команды, проходящие между компонентами домашнего кинотеатра, а также сами отдавать команды на исполнение;
- SNTP – для автоматической установки времени через Интернет;
- IPv4LL, DHCP, NetBIOS, mDNS – группа протоколов для адресации и идентификации устройства в сети. Особо стоит отметить удобный для пользователя протокол mDNS (Apple Bonjour), который позволяет идентифицировать устройство не зная ни его имени, ни адреса.
Кроме этого, реализована функция обновления прошивки устройства прямо из сети Интернет!
В качестве отдельной задачи устройства реализован интерпретатор языка Lua. Такое решение позволяет установщикам оборудования написать скрипт, исполняющий командные последовательности, которые будут адаптированы под каждый конкретный случай. Так, например, устройство может включать DVD-плеер с музыкой по утрам в заданное время и плавно повышать громкость, а в заданное время переключать телевизор на нужную программу и прочее.
Преимущества и характеристики
- Использование контроллера с интегрированным контроллером и физическим уровнем Ethernet позволило уменьшить стоимость разработки и размер устройства;
- Применение скриптового языка расширяет возможности конфигурации устройства;
- Возможность самообновления прошивки через Интернет позволяет пользователю изменять сценарии поведения устройства путем простого скачивания нового скрипта.
| Средства проектирования |
CrossWorks 1.7 |
| Технологии |
Ethernet, uIP, mDNS, CEC, Telnet, Lua |
| Языки программирования |
C |
| Средства управления проектом |
dotProject, SVN |
| Трудозатраты |
70 человеко-дней |
| Срок выполнения проекта |
3,5 месяца |
|
|
|