В статье рассказываю о конвертерах, позволяющих формировать шину TinyOneWireNet под управлением интерфейсов UART и USB. О работе с шиной через персональный компьютер.
Предыдущая статья Навигация по рубрике Следующая статья
Уже на этапе разработки первых сетевых устройств возникла проблема их отладки и конфигурации. Как всегда, самый удобный и информативный вариант – персональный компьютер.
Но компьютер не способен формировать сеть TinyOneWireNet не с аппаратной, не с программной точки зрения. Поэтому был разработан дополнительный блок – конвертер UART TinyOneWireNet.
Он может быть использован как для подключения сети TinyOneWireNet к компьютеру (через конвертер USB UART), так и для формирования сети из интерфейса UART любого микроконтроллера. Конвертер обеспечивает:
- аппаратное формирование сигналов сети TinyOneWireNet;
- программное управление сетью;
- отработка команд обмена;
- контроль короткого замыкания линии.
Т.е. конвертер UART TinyOneWireNet не просто “тупой” преобразователь уровней, а устройство, которое получает свои команды через UART и формирует команды сети TinyOneWireNet. При этом обеспечиваются все необходимые временные диаграммы без участия управляющего микроконтроллера.
Принципиальная схема и конструкция.
PIC-контроллер принимает команды с UART и обеспечивает управление шиной TinyOneWireNet. Для увеличения тока линии используется MOSFET-транзистор Q1.
В принципе, аппаратная часть конвертера, кроме интерфейса UART, поддерживает SPI и I2C. Но программно пока реализован только обмен по UART.
Для конвертера разработана печатная плата.
Т.е. устройство конструктивно закончено.
Использование конвертера с USB-портом.
Если к конвертеру UART TinyOneWireNet добавить стандартный конвертер USB UART, то получится конвертер USB TinyOneWireNet.
Преобразователь USB UART может использоваться любой, но я рассчитывал на миниатюрный модуль CH340.
Расположение контактов конвертера UART TinyOneWireNet соответствует именно этому преобразователю интерфейсов.
Остается напрямую соединить 4 контакта двух модулей между собой.
Теперь к шине TinyOneWireNet можно подключать компьютер.
Если у вас длинная линия, размещенная на реальном объекте, например в саду, то с точки зрения безопасности лучше использовать ноутбук с внешним блоком питания. Это создает дополнительную изоляцию системы от сети 220 В.
Если же компьютер питается непосредственно от сети 220 В, то необходимо обеспечить гальваническую развязку между компьютером и линией, к которой подключены сетевые устройства.
Для этого планируется разработать модуль, который физически размещается между конвертерами UART TinyOneWireNet и USB UART. Схема его простая и состоит из микросхемы ADUM1250 и DC/DC преобразователя.
Настройка шины TinyOneWireNet с помощью персонального компьютера.
Для работы с конвертером UART TinyOneWireNet в среде Ардуино необходима библиотека. Со временем создам ее. Это не сложная задача.
Сейчас будем использовать конвертер для настройки системы из датчиков с помощью персонального компьютера. Во многом мы повторим операции, описанные в статье о конфигурации сети с помощью монитора на базе платы Arduino Nano.
Для этого я разработал программу Monitor_TinyOneWireNet. Она позволяет, как отлаживать сетевые команды нижнего уровня, так и конфигурировать устройства в сети. Сейчас нам больше интересна вторая функция.
Запускаем программу. Открывается основное окно.
Выбираем COM-порт, если необходимо.
Сейчас нас интересуют 6 верхних элементов слева:
- Канал должен быть 0, наш конвертер поддерживает только один канал.
- Можно получить текущее состояние конвертера и увидеть его в окне “Состояние, ошибки”. Любая команда отображает состояние.
- Можно выключить линию, снять питание.
- Можно замкнуть линию.
- Можно включить линию через MOSFET-транзистор (подать питание).
- Или включить ее через вывод PIC-контроллера.
Нажимаем кнопку ”Получить состояние”.
Видим, что связь с компьютером есть, конвертер подключен к компьютеру, порт выбран правильно.
Естественно, если мы хотим работать с сетью, ее надо включить.
Теперь открываем закладку “Сетевые устройства.”
Ниже блока “Управление” отображаются блоки сетевых устройств. Конфигурация сети была запомнена при последней установке.
У меня использовался один датчик влажности. Сейчас я подключил несколько разных сетевых устройств.
Чтобы задать новую конфигурацию необходимо нажать кнопку “Поиск”.
Сеть сканируется на существующие устройства, новая конфигурация сохраняется в памяти компьютера и появляется на экране.
Устройства отобразились в последовательности увеличения значения адресов.
Перед каждым параметром есть “птичка”, разрешающая его опрос.
Собственно опрос происходит по нажатию кнопки ”Опрос устройств” или в цикле после установки соответствующей ”птички” “В цикле”.
Я разрешил во всех устройствах только диагностику обмена.
Ведется общая статистика диагностики и для каждого устройства отдельно.
Разрешил опрос остальных параметров.
Кнопкой ”сеть” можно задать сетевые параметры для каждого устройства.
Нажал кнопку ”сеть” для люксметра.
Можно считать уникальный идентификатор (стрелка с шестеренкой направо).
Идентификатор можно изменить, хотя без крайней необходимости лучше этого не делать. Если решились, надо задать новое значение и нажать стрелку влево.
Для изменения адреса необходимо сначала снять блокировку устройства. Для этого надо задать уникальный идентификатор (или считать его) и нажать соответствующую кнопку.
Остается задать новый адрес и нажать кнопку загрузки адреса.
После этого необходимо заново конфигурировать систему (кнопка ”Поиск”).
Кнопки ”устр.” позволяют задать параметры для отдельных устройств, в тех которых есть такая функция. В моей конфигурации это датчики влажности почвы.
Нажал ”устр.” для первого датчика влажности почвы.
Можно :
- считать текущее значение влажности;
- считать текущее значение кода;
- считать и загрузить калибровочный коэффициент для 0%;
- считать и загрузить калибровочный коэффициент для 100%;
- сделать калибровку 0%, т.е. считать текущее значение кода и загрузить его, как коэффициент 0%;
- сделать калибровку 100%, т.е. считать текущее значение кода и загрузить его, как коэффициент 100%.
Программу можно загрузить на странице файлов проекта.
При появлении новых сетевых устройств будут появляться новые версии монитора.
В следующей статье расскажу о формирователе линий TinyOneWireNet на буферной микросхеме 74HC125, который позволяет подключать сетевые устройства к микроконтроллерам с питанием 3,3 В.