Контроллер мультимедиа-устройств для умного дома
Заказчик
Incyma – швейцарская компания, специализи¬рующаяся на разработках в области устройств управления и автоматизации «умного дома».
Задача
Разработать устройство, позволяющее управлять домашним мультимедийным комплексом (домашним кинотеатром, тюнером, видеомагнитофоном и т.д.) с HDMI-интерфейсом через сеть Ethernet при помощи ПК и/или иных устройств, подключенных к сети Ethernet. Устройство должно максимально быстро и просто настраиваться и интегрироваться в домашний комплекс управления «умным домом».
Шина CEC (Consumer Electronics Control) в HDMI кабеле позволяет передавать команды и управляющие сигналы с одного пульта ДУ различным устройствам домашнего кинотеатра, а также обеспечивает их самостоятельное взаимодействие. Среди команд есть включение/выключение, воспроизведение, переход в режим ожидания, запись и другие. Линия принята за стандарт большинством производителей, что позволяет любым совместимым пультом ДУ управлять аппаратурой любого производителя.
Решение
Процессорная плата
Анализ протокола CEC показал, что от управляющего процессора не требуется ни высокой производительности, ни развитой периферии. Единственным ключевым требованием является наличие Ethernet (MAC + PHY). Оптимальным решением стал контроллер LM3S6965 с ядром Cortex-M3.
Прототип устройства был разработан на отладочном ките Stellaris® LM3S6965 Evaluation Board. Опытные образцы изделия содержат всего 4 микросхемы:
- Микроконтроллер – LM3S6965;
- USB UART – FT232RL;
- RS232 – ADM3202;
- DC-DC преобразователь – TPS62007.
Плата имеет следующие периферийные разъёмы:
- 2хHDMI со сквозным соединением между собой;
- miniUSB – используется для питания платы и как UART-порт контроля;
- DB9 - RS232, как стандарт для систем управления;
- Ethernet-10/100, для интеграции устройства в локальную сеть.
Трассировка платы выполнена на 4-х слоях с односторонним монтажом компонентов.
Программное обеспечение
ПО контроллера базируется на библиотеке, реализующей многозадачность, что позволяет упростить структуру программы и использовать независимые программные модули.
 Одной из основных задач разработанного встроенного ПО является приём и декодирование команд, приходящих из линии CEC. Второй важной задачей является поддержка TCP/IP стека. В качестве готового решения в этом случае был выбран стек uIP, как требующий минимальных ресурсов. Данный стек уже поддерживает множество сетевых протоколов, и для данной задачи их число было значительно расширено:
- HTTP, – устройство предоставляет пользователю web-страничку с перечнем обнаруженных устройств и интерфейсом управления и конфигурации. Через web-формы пользователь может безопасно обновить прошивку устройства;
- Telnet, – основной протокол, по которому более «умное» устройство или пользователь смогут «видеть» все команды, проходящие между компонентами домашнего кинотеатра, а также сами отдавать команды на исполнение;
- SNTP, – для автоматической установки времени через Интернет;
- IPv4LL, DHCP, NetBIOS, mDNS, – группа протоколов для адресации и идентификации устройства в сети. Особо стоит отметить удобный для пользователя протокол mDNS (Apple Bonjour), который позволяет идентифицировать устройство не зная ни его имени, ни адреса.
В качестве отдельной задачи устройства реализован интерпретатор языка Lua. Такое решение позволяет установщикам оборудования написать скрипт, исполняющий командные последовательности, которые будут адаптированы под каждый конкретный случай. Так, например, устройство может включать DVD-плеер с музыкой по утрам в заданное время и плавно повышать громкость, а в заданное время переключать телевизор на нужную программу.
Корпус и конструкция
Для удешевления устройства использован серийно выпускаемый корпус BOPLA EG1230.
В процессе проектирования были созданы 3D модели печатной платы и корпуса в MDT, на основе которых были выполнены доработки корпуса.
Преимущества и характеристики
- Использование контроллера с интегрированным контроллером и физическим уровнем Ethernet позволило уменьшить стоимость разработки и размер устройства;
- Применение скриптового языка расширяет возможности конфигурации устройства;
- Возможность самообновления прошивки через Интернет позволяет пользователю изменять сценарии поведения устройства путем простого скачивания нового скрипта.
| Средства проектирования |
CrossWorks 1.7, EXP2005, MDT2006 |
| Технологии |
Ethernet, uIP, mDNS, CEC, Telnet, Lua |
| Языки программирования |
C |
| Средства управления проектом |
dotProject, SVN |
| Трудозатраты |
200 человеко-дней |
| Срок выполнения проекта |
10 месяцев |
|