Сетевой интерфейс TinyOneWireNet. Конфигурация сети стандартными средствами. Монитор на базе платы ArduinoNano.

система TinyOneWireNet

В статье расскажу о сети TinyOneWireNet и о конфигурации ее с помощью простого устройства - монитора на базе платы ArduinoNano.

Предыдущая статья     Навигация по рубрике     Следующая статья

Сетевой интерфейс TinyOneWireNet.

При разработке сетевого интерфейса на первом месте ставилась задача обеспечить мизерное потребление тока в режиме ожидания. Второе обязательное условие - обмен данными должен происходить с использованием только одного сигнала.

С пользовательской точки зрения необходимо знать следующие свойства организации сети TinyOneWireNet.

  • Ведущее устройство в сети одно, все остальные ведомые.
  • Ведущее устройство передает данные на ведомое и в ответ получает данные от ведомого.
  • Используется следующий типовой кадр передачи данных.

Адрес ->КОП ->D0 ->CRC -><- State + Адрес  <- D0  <- D1  <- CRC

  • Ведущее устройство передает адрес, код операции, байт данного и контрольный циклический код.
  • В ответ ведомое присылает байт с адресом и состоянием операции, 2 байта данных и контрольный циклический код.
  • Таким образом, ведущее устройство за один кадр передает
    • код операции (6 разрядов);
    • байт данных.
  • Получает от ведомого;
    • 2 байта данных.
  • В случае, когда операция требует длительного времени выполнения у ведомого устройства, например запись EEPROM, ведомое устройство ответ не формирует.
  • Время выполнения операции обмена примерно 8,5 мс.
  • В момент ожидания данных ведомое устройство потребляет ток не более 0,5 мА.
  • Типичная работа с датчиками выглядит так.
    • Все ведомые устройства находятся в состоянии ожидания, потребляемый ток мал.
    • Ведущее устройство посылает команду на датчик запустить преобразование.
    • Выбранный датчик начинает работать, ток потребления его повышается.
    • По окончанию преобразования датчик переходит в режим ожидания, ток потребления опять небольшой.
    • Ведущее устройство считывает результат преобразования.
  • Сеть поддерживает адреса в диапазоне 0…63.
  • Адрес 63 используется для “залетевших”устройств, т.е. те, в которых адрес не был установлен.
  • Адрес сетевого устройства хранится в его EEPROM и может быть задан пользователем.
  • Кроме того, в сетевом устройстве содержится уникальный идентификатор, своеобразный MAC-адрес.Он используется для идентификации контроллера и разрешения программирования адреса.

Аппаратное формирование сети.

Все сетевые устройства подключаются к сети TinyOneWireNet параллельно. От нее получают питание.

подключение датчиков

Есть несколько схемотехнических вариантов формирования сети.

  • Самый простой - подключение к выводу микроконтроллера.Необходимо только добавить один подтягивающий резистор сопротивлением 1 кОм. Выше пример для Arduino Nano.
    • Допустимый ток потребления сети определяется нагрузочной способностью выводов микроконтроллера. Для ATmega328 лучше ограничиться 20 мА, хотя предельно-допустимый параметр – 40 мА.
  • Для организации сети под управлением микроконтроллеров с питанием 3,3 В, например ESP32, используются буферные логические элементы. Самый простой вариант -  74HC125.
    • Разработан модуль с использованием  74HC125, который формирует 2 сети TinyOneWireNet.
    • Ток потребления сети для него – до 35 мА.
  • Есть вариант блока формирования сети с использованием MOSFET-транзистора. Ток питания сети при этом достигает 100 мА и более.

Программное управление сетями TinyOneWireNet.

Программное управление интерфейсом TinyOneWireNet происходит с помощью библиотек Ардуино. При необходимости я разработаю библиотеки для STM32 и PIC-контроллеров.

Сейчас существуют:

  • Библиотека TinyOneWireNet.h для формирования сети непосредственно на выводах плат Ардуино.
  • Библиотека TinyOneWireNet_Buf125.h для формирования сети с использованием буферных элементов 74HC125.

Все библиотеки используют класс с одним именем TinyOneWireNet и с одинаковыми методами. Программы с разными библиотеками отличаются только одной строчкой, в которой конструктор задает номера выводов.

Конфигурация сети.

В сети могут работать несколько устройств. Естественно у них должны быть разные адреса. Под конфигурацией сети, прежде всего, понимается раздача адресов. Еще необходимо знать какие типы устройств есть в сети и соответствие типов адресам.

У всех сетевых устройств есть одинаковые функции, не зависящие от типа устройства. Так называемые сетевые функции. Это:

  • чтение типа, версии ПО устройства;
  • программирование адреса;
  • чтение уникального идентификатора;
  • диагностика обмена;
  • разрешение программирования адреса;
  • запуск таймера калибровки частоты;
  • чтение таймера калибровки частоты;
  • загрузка значения калибровки частоты;
  • запись уникального идентификатора.

Сетевые функции позволяют задать адреса устройств, идентифицировать устройства по типу и уникальному коду, произвести диагностику обмена, калибровать внутренний генератор. Т.е. конфигурировать сеть, подготовить устройства для работы в ней.

Для выполнения этих операций в данный момент существуют следующие средства:

  • Монитор с использованием платы ArduinoNano.
  • Программа верхнего уровня с помощью компьютера.
  • Web-интерфейс в конвертере WiFi TinyOneWireNet.

Но есть возможность произвести эти операции через методы стандартных библиотек. Я думаю, большинство воспользуются готовыми средствами. С одного из них я и начну.

Итак, у нас есть сеть с устройствами TinyOneWireNet. Я соединил 3 датчика 2х проводной линией. Вот схема.

мои датчики

Конфигурация сети через монитор на базе платы ArduinoNano.

К плате ArduinoNano надо припаять дисплей и энкодер.

схема монитора TinyOneWireNet на базе Ардуино

У меня выглядит так

 монитор сети на базе Ардуино

Установить библиотеку TinyOneWireNet.h, загрузить программу монитора.

Подключить сеть c устройствами TinyOneWireNet.

В главном меню 2 пункта, нас интересует  НАСТРОЙКА СЕТИ.

настройка сетевых устройств настройка сети
Входим в него нажатием энкодера. Видим такое сообщение, означающее, что когда-то монитор нашел 3 устройства, и будет работать с этой конфигурацией.

Если надо, задаем новую конфигурацию. В режиме ПОИСК нажимаем кнопку энкодера.

поиск сетевых устройств  идет поиск  окно поиск сетевых устройств
С этой конфигурацией сети монитор будет работать, пока не зададим новую. При выключении питания она сохраняется.

Переходим к следующему пункту меню.

окно типы устройств
В нем можно просмотреть адреса и типы найденных устройств. У меня 3 устройства с адресами 10, 47 и 58.

окно адрес тип  окно адрес тип  окно адрес тип
В следующем пункте меню можно произвести диагностику обмена сети.

окно диагностика обмена
Энкодером выбираем устройство, в окне отображается число циклов обмена и ошибок.

окно диагностика  окно диагностика  окно диагностика
В следующем пункте меню можно считать уникальные идентификаторы устройств.

окно чтение уникального идентификатора  окно чтение уникального идентификатора  окно чтение уникального идентификатора  окно чтение уникального идентификатора
Главная цель конфигурации сети – раздать адреса устройствам. Это производится в следующем пункте.

окно установка адреса устройства
Давайте, для примера, устройству с 58м адресом зададим адрес 53.

окно установка адреса устройства  окно установка адреса устройства  окно установка адреса устройства
Поворотом энкодера надо задать подтверждение операции.

окно установка адреса устройства  окно установка адреса устройства
Эта операция считывает с устройства уникальный идентификатор, разрешает программирование адреса по нему и загружает новый адрес.

В мониторе используется упрощенный режим установки адреса. Если в сети будет 2 устройства с одинаковыми адресами, то такой вариант не допустим. Надо отключить одно из устройств.

При полном варианте программирования адреса необходимо выполнить следующие операции: разрешить программирование адреса по уникальному идентификатору и загрузить новый адрес. В этом случае даже в сети содержащей несколько устройств с одинаковыми адресами новый адрес загрузится только в одно устройство.

После изменения адреса хотя бы одного устройства необходимо заново задать конфигурацию.

окно поиск сетевых устройств  окно адрес тип  окно адрес тип  окно адрес тип
Сетевые устройства используют внутренний тактовый генератор PIC-контроллеров. Стабильности его вполне достаточно для надежной работы сети. Но есть возможность посмотреть текущую погрешность частоты и подкорректировать ее.

окно измерение частоты генератора  окно измерение частоты генератора  окно измерение частоты генератора  окно измерение частоты генератора
Значение калибровочного коэффициента лежит в диапазоне -32…31.

окно калибровка частоты генератора  окно калибровка частоты генератора  окно калибровка частоты генератора  окно калибровка частоты генератора
Необходимо подтверждение.

окно калибровка частоты генератора  окно калибровка частоты генератора
В пункте НАСТРОЙКА СЕТЕВЫХ УСТРОЙСТВ можно посмотреть измеренные значения параметров, т.е. сделать окончательную проверку работы устройств.

окно возврат в главное меню  окно настройка сетевых устройств
окно мониторинг  окно мониторинг  окно мониторинг
В этом пункте для устройств с режимом калибровки можно ее произвести. Например, если бы в сети присутствовал датчик влажности почвы, можно было бы откалибровать значения влажности для пределов 0 и 100%.

Монитор на плате ArduinoNano работает и от батарейки напряжением 4,5 В. В этом случае получается удобное автономное устройство для настройки сети на реальном объекте.

Но если в системе используется устройство, позволяющее управлять сетью через WiFi (конвертерWiFi TinyOneWireNet), то операцию конфигурации сети можно производить через него. Для этого есть встроенные функции доступные через WEB-интерфейс. Можно конфигурировать сеть через компьютер, планшет, смартфон и любое другое устройство подключенное к сети WiFi.

О cпособах конфигурации сети с помощью компьютера и конвертера WiFi TinyOneWireNet я расскажу в последующих статья об этих устройствах.

В следующей статье покажу, как работать с сетевыми функциями в библиотеке TinyOneWireNet.h.

Предыдущая статья    Навигация по рубрике     Следующая статья

0

Автор публикации

не в сети 1 неделя

Эдуард

281
Комментарии: 1938Публикации: 197Регистрация: 13-12-2015

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".