Умный дом (среда передачи данных)
После серии экспериментов и реализации проекта автоматизации тепличного хозяйства было принято решение использовать изолированную Ethernet-сеть. Изоляция необходима для того, что бы не было физической возможности «забить» канал разными домашними мультимедийными ресурсами. Так же это избавит от вероятности взлома подобной сети, что будет актуально в будущем. А так же данный шаг поможет исключить вероятность дублирования IP-адресов.
Почему именно Ethernet? Не смотря на свою дороговизну, сложность реализации и «раздувания» прошивки контроллера у Ethernet есть серия выявленных преимуществ.
Во-первых, существует огромное количество активного оборудования типа свитчей и роутеров для работы с сетью. Мы не связаны топологией, можно строить кольцевую архитектуру, звезду и шину.
Во-вторых, высокая гибкость среды передачи данных. Можно строить сколь угодно сложные и протяженные сети. Используя медиаконверторы и оптоволоконный кабель, дистанции вырастают многократно и исчисляются десятками километров. Есть задачи которые можно решить только используя длинные и протяженные линии не доступные тому же RS485.
В-третьих, к подсети можно подключаться через VPN (виртуальные частные сети). Для настройки и проверки системы.
В-четвёртых, упрощенный метод доступа к данным, отсутствие всевозможных ограничений на типы устройств и их приоритеты. Всё это решается на уровне протоколов отработанных десятилетиями.
Порты контроллера
Со средой передачи данных разобрались. Теперь осталось придумать систему органов чувств и управления. Начну с того, что не все пины порта микроконтроллера равнозначны. Разные порты имеют свою собственную специфику. Например, цифровые порты не могут работать в качестве АЦП. А многие аналоговые порты начинают подглючивать если на них подключить цифровые цепи. Так же я хотел оставить возможность работы TWI (IIC) на аппаратном уровне и не использовать программную эмуляцию. И так, за что же могут отвечать пины микроконтроллера висящие на аналоговом порту.
- Неопределено,
- Вход аналогового пина,
- Вход цифрового бита,
- Выход цифрового бита,
- Цифровой термометр Dallas.
В памяти микроконтроллера хранится информация о типе и назначении пинов, что не позволит случайно записать в порт для чтения. Для цифровых же портов используется следующая настройка.
- Неопределено,
- Вход цифрового бита,
- Выход цифрового бита,
- Цифровой термометр Dallas.
Тут можно посмотреть пример интерфейса настройки портов: LazyHome P2.
Всё легко и просто. Но для универсального использования никто не будет подключать все возможные устройства. В этом случае система будет крайне дорогой. По этому было введено понятие внутреннего порта, который распаян на борту и его можно активировать. Естественно, что тут нужно решить вопрос баланса заранее установленных портов. Сколько термометров, сколько реле и сколько иных датчиков использовать на внутреннем порту. Или же вообще отказаться от заранее распаянных плат и оставить висящие в воздухе порты.
Так же используется понятие внешних портов. На которые можно установить стороннее или заранее сконфигурированное оборудование. Благодаря платам расширения можно наращивать систему.
В общем от принципа модульности я отказываться не собираюсь. Но есть желание создать минималистические контроллеры для управления простейшими конечными устройствами.
Тэги: микроконтроллеры
Отредактировано:2020-09-23 08:14:06