Подключённые в шине датчики DS18B20 определяются или читаются программой по уникальному MAC-адресу, который имеет каждый датчик. Заказчику потребовалось определить расстановку датчиков по шине, выполнить позиционирование и определить место ближайшего, следующего и так до крайнего датчика в линии.
Предлагаемый адаптер 1wire выполняет сканирование индуктивно-ёмкостных параметров линии для каждого датчика. Поскольку у каждого датчика в шине своя длина линии, то, соответственно, и свои индуктивно-ёмкостные параметры. Полученные данные индивидуальны для каждого датчика и, таким образом, определяют его расположение в линии.
Представленные схема и конструкция предназначены для позиционирования шины 1wire, состоящей из 14 датчиков, расставленных с интервалом 2 метра. Такое количество датчиков устанавливается в цифровых термоподвесках для силосов элеваторов.
Позиционирование датчиков увеличивает информативность сбора данных, обеспечивает диагностику и ремонтопригодность места измерения. Визуализация точек температурного измерения совместно с их позиционированием позволяет определять и другие физические данные, например, объёмы заполнения складов, уровни границ сред, исключает человеческий фактор ошибки.
Модель измерения
Линия интерфейса 1wire содержит три провода: общий провод, шина данных и питание +5 В. Через определённое расстояние подключаются датчики DS18B20. Количество датчиков и общая длина линии может быть очень разной, но в шинной структуре для каждого датчика всегда своя длина и, соответственно, своя «погонная» ёмкость и индуктивность линии, как показано на модели замещения линии индуктивно-ёмкостным эквивалентом на рис. 1.
Для определения размещения, управляя определённым датчиком, замыкаем на короткое время линию шины данных с общим проводом. На этот короткий интервал времени получаем возможность измерить индуктивно-ёмкостные свойства сформированной цепи. Модель индуктивно-ёмкостных распределений при измерении разных датчиков приведена на рис. 2.
Цветными овалами выделены электронные ключи эквивалентов датчиков, которые замыкаются в разных местах шины.
Индуктивно-ёмкостные эквиваленты линии и замкнутый электронный ключ датчика образуют схему последовательно-параллельного LC-контура, параметры которого строго индивидуальны для каждого датчика.
Если на «исследуемый LC-контур» выдавать синусоидальный сигнал c разной частотой, но постоянной амплитудой, то уровень выпрямленного напряжения на «контуре» позволяет определить амплитудно-частотные характеристики «контура», которые формируются от индуктивно-ёмкостных параметров линии. На рис. 3 показана модель схемы измерения. Подобная схема в курсе физики используется для изучения резонансных свойств простого LC-контура и показывает существование резонансов токов и резонансов напряжений [1]. Если контур один, то и показывается один резонанс.
В нашей модели измерения получаем сложные спектры, так как имеется много участков с разной ёмкостью и индуктивностью, и поэтому формируется много резонансов.
Синусоидальный сигнал для измерения может передаваться только в определённый момент работы интерфейса 1wire, т.е. только когда заданный по МАС-адресу датчик замыкает шину 1wire на землю. В остальное время синусоидальный сигнал мешает работе шины, и поэтому сигнал поступает через электронный ключ 1. Помехи работе интерфейса 1wire создаёт и диодно-интегрирующая цепь. Для устранения влияния RC-цепи используется электронный ключ 2.
Управляет всей схемой измерения МК, который, в свою очередь, управляется персональным компьютером (ПК) через интерфейс USB-UART.
Требуемую частоту измерительного синусоидального сигнала формирует микросхема AD9833 [2], которая также управляется от микроконтроллера (МК) 16F676 [3]. Поскольку исследуемый LC-контур имеет малое сопротивление и «импульсное» подключение, используется усилитель, позволяющий увеличить и стабилизировать уровень сигнала и тем самым обеспечить необходимую дальность и точность измерения.
Время измерения определяется передачей сигнала «1» и ответа сигналом «0» для определённого по МАС-адресу датчика. Оно составляет примерно 2/3 времени от длительности сигнала «1», т.е. примерно 12–18 микросекунд. Поскольку время на измерение формируется как «кусочно-импульсное», то общая задержка получения результата с большой точностью может оказаться достаточно долгой. Однако большая точность требуется при малых расстояниях между датчиками. В нашем случае для 14 датчиков при расстоянии в два метра достаточно сканирования с шагом 100 килогерц на интервале 100…2500 килогерц, что даёт результаты позиционирования примерно за 20 секунд.
Если уменьшить шаг в 10 раз – до 10 килогерц, то время, соответственно, увеличится в 10 раз и составит 200 секунд. Это позволяет позиционировать датчики с интервалом размещения до 20 сантиметров. Необходимо также учитывать и окружающую электромагнитную обстановку, поскольку длинный провод – это антенна, и наведённые напряжения в ней создают помехи в измерении. Таким образом, чем длиннее линия, тем с меньшей точностью возможно определять позиции датчиков.
Принципиальная схема
Принципиальная схема сканирующего адаптера 1wire с фотографиями основных элементов представлена на рис. 4.
Схема построена по блочно-шинной структуре и содержит следующие элементы.
- Блок USB-UART подключается через разъём J1. Он переводит интерфейс USB ПК в UART-сигналы. Передаются и принимаются команды для МК U1(16F676). Этот МК доступен и широко распространён, имеет подробную техническую документацию [3].
- МК U1 работает в режиме с кварцевым резонатором 20 мГц, поскольку требуется достаточно точно привязываться к сигналам интерфейса 1wire и формировать необходимый импульс включения генератора сигналов. Кроме того, требуется максимально быстрое получение данных от АЦП МК, чтобы не нарушать протокол работы 1wire.
- Три вывода МК U1 RA1, RA2, RC4 «отданы» для шины управления генератором AD9833, который подключается через разъём J2 и также используется в готовом блочном исполнении.
- Сигнал с выхода генератора через разъём J2 и конденсатор С4 поступает на входной каскад усилителя, выполненного на цифровой микросхеме DD1.1 (1533ЛА3). Цифровая микросхема в данной схеме за счёт резисторов R3, R4 и транзистора VT1 (bc547) переведена в режим линейного усилителя с обратной связью и обеспечивает усиление синусоидального сигнала в требуемом диапазоне частот от 10 килогерц до 10 мегагерц. Второй каскад микросхемы DD1.2 продолжает усиление сигнала до требуемого уровня 2 вольта от выдаваемого уровня генератора 0,6 вольт по амплитуде.
- Двойной каскад усилителя с обратной связью обеспечивает стабильность подаваемого сигнала для последующего измерения с нагрузкой «импульсного характера». Для режима усиления хорошо работает известная микросхема 155ЛА3, которая в настоящий момент уже снята с производства, но остались её запасы. Для замены транзистора обратной связи подойдёт и «легендарный» отечественный КТ315.
- Сигналы измерения характеристик линии мешают сигналам измерения данных датчиков, и для их разделения используются электронные ключи (ЭК) на транзисторах Q1,2 (2N7000). ЭК включается по импульсу вывода RC0 U1 и пропускает синусоидальный сигнал на шину 1wire через резистор R11.
- Для отключения влияния интегрирующей цепи измерения, выполненной на R7, C8 и диоде D3, используется ЭК на транзисторе Q1 (2N7000). Он работает параллельно с ЭК для генератора от того же вывода RC0 U1 и отключает конденсатор с резистором от общего провода.
- Дополнительно МК переводит вывод RC3 в состояние логического нуля и тем самым из-за включённого диода D2 отключает резистор «подтяжки» R10 от влияния на процесс измерения характеристик линии. Вывод RC5 МК, принимающий сигнал 1wire, устанавливается в состояние приёма, т.е. имеет большое входное сопротивление и тоже не оказывает влияния на измерение характеристик линии.
- Индикацию аварийного режима короткого замыкания по шине +5 В или 1wire выполняет светодиод D1, который подключён к выводу RC4 МК. В программу МК заложена проверка уровня напряжения по входам АЦП АN5, AN6. В исходном состоянии, без проверок линии и работы с датчиками, эти уровни напряжения должны быть не менее 4,5 В. В случае нарушения уровней напряжения загорается светодиод, что позволяет быстро проверять исправность схемы и работу программы путём замыкания выводов шины с общим проводом.
- При работе МК с генератором контрольный светодиод кратковременно мигает, что также индицирует работоспособность схемы.
- Конденсаторы C1, 7, 9 выполняют фильтрацию импульсных помех по шине питания.
Осциллограмма выходного сигнала усилителя на резисторе R11 (красный цвет) и импульс управления RC0 (синий цвет) представлены на рис. 5.
В шине 1wire сигналы синусоидального сигнала «обрезаны» ЭК и передаются только в моменте ответа заданного MAC-адреса датчика, что показано осциллограммой на рис. 6.
Заряд интегрирующей цепи виден по небольшому наклону синусоидального сигнала после начала фронта импульса измерения. Поэтому сам процесс измерения начинается с задержкой в 2 микросекунды, проводится 4 раза, и в отображении данные анализа усредняются. Кроме того, датчики выполняют ответ сигнала нуля с некоторой погрешностью, что надо учитывать при измерении. В данной реализации фиксированно задаётся время измерения, которое можно менять в файле инициализации настройки программы.
Напряжение питания сканирующий адаптер получает от USB-интерфейса ПК, и потребляемый ток не превышает 20 миллиампер.
Конструкция
Все элементы сканирующего адаптера 1wire размещены на печатной плате. На рис. 7 показана 3D-модель печатной платы с установленными элементами.
Блоки UART и AD9833 устанавливаются через переходные колодки. На колодки DIP-14 устанавливаются МК 16F676 и микросхема 1533ЛА3, что позволяет перепрограммировать МК или заменить в случае неисправности DD1.
Принципиальная схема (файл rastavaha_v2_skaner_v1.dch), печатная плата (файл rastavaha_v2_skaner_v1.dip) подготовлены в редакторе DIP-TRACE и находятся в каталоге [4] архива программы uart_1wire_v2r.exe. Извлекаются из программы при старте по клавише «4». Эта команда извлекает все составляющие программного обеспечения и сопутствующую документацию с печатными платами.
Программное обеспечение
Программное обеспечение подготовлено на языке Forht [5], находится в одном файле uart_1wire_v2r.exe и содержит все составляющие для своего развития или текущей работы. Первоначальный запуск программы вызовет стартовое меню, в котором необходимо выбрать требуемый режим работы и для этого нажать цифровые клавиши на выбор из четырёх: 1 – восстановить файл инициализации uart_1wire_v2r.ini, 2 – открыть файл помощи, 3 – восстановить всю информацию для дальнейшей модернизации, 4 – восстановить и скомпилировать новую программу.
Запуск программы в каталоге с наличием файла инициализации выполняется по опциям данного файла. Это текстовый файл, и он доступен для редактирования. Автор в файле uart_1wire_v2r.ini установил опции для автоматического определения порта USB-UART и дальнейшего открытия окна сканирования данных датчиков. Ниже на рис. 8 приведено окно с данными датчика и спектром сканирования характеристик линии.
Программа подготовлена для расстановки датчиков в цифровых термоподвесках. Данные после позиционирования формируются в ini-файл для объекта с привязкой к названиям и требуемым спецификациям заказчика. Подробное описание термометрии c таким количеством датчиков приведено в [6]. Поскольку программа ориентирована на сравнительный анализ данных, выбрано отображение амплитуды спектра значениями отсчёта АЦП в 10-разрядной точности МК.
Перечислим действия, формирующие импульс включения ЭК для получения спектра индуктивно-ёмкостных характеристик.
- Первоначально сканируется всё адресное пространство 1wire и определяется доступное количество датчиков DS18B20. Это действие выполняет клавиша «s» на рис. 8 окна программы. Доступно при подключении определить до 78 датчиков, но позиционирование подготовлено только для 14.
- По умолчанию выбран диапазон от 100 до 2500 килогерц с заданным интервалом шага 10 килогерц. Эти параметры можно изменить в программе словами FGMAX, FGMIN, A_DELTA_DIN008. Текст программы содержит подробное описание переменных и определяемых слов, и поэтому укажем только алгоритм действий программы.
- Перед сканированием диапазона ПК передаёт выбранный МАС-адрес в МК, который записывается в память МК.
- В процессе сканирования ПК передаёт команду на установку новой частоты сигнала, МК устанавливает частоту сигнала, а затем по записанному ранее МАС-адресу обращается к датчику для чтения температуры. Таким образом, отвечать будет только датчик с указанным МАС-адресом.
- Команда чтения температуры выполняется, и в процессе передачи МК фиксирует ответ с первым появившимся сигналом «0» при передаче запроса сигнала «1». Это и есть начало импульса сканирования, который выдаётся на RC0 МК, и, таким образом, включается ЭК1,2.
- После начала импульса сканирования МК включает АЦП и 4 раза записывает данные в свою память. Затем выключает импульс сканирования. Процесс измерения окончен.
- Полученные данные передаются от МК в ПК, где фиксируются, обрабатываются, и строится спектр ответа. Далее вновь передаётся команда на новую частоту, и получение данных для записанного МАС-адреса повторяется.
- После прохождения сканирования диапазона частот ПК передаёт следующий МАС-адрес в МК. И так цикл повторяется до последнего 14-го датчика температуры.
В каталоге forth_assmb_pik12 находятся файлы на языке forth-ассемблера программы работы МК. При компиляции общей программы они также компилируются и формируют в каталоге uart_1wire_v2r_16f676_v2_12m_sin_ad9833 HEХ-коды для записи в МК. Файлы для МК имеют расширение hex и записываются в МК любым доступным программатором.
Работа с МК построена на структуре AT-команд. Например, для проверки связи МК с компьютером передаётся код AT и байт x88, в ответ должны получить байт кода, назначенного для данной ИМС, например, байт x31. Код назначения для МК определяется в названии сформированного HEX-файла. Например, файл hex_16f676_ad9833_i1w_v2_3B012F675004315F.hex содержит последние 3 байта: x04 x31 x5F. Байт x5F – cерия данных микросхем автора для работы с термометрией. Код x04x31 и последующие цифры байт – это условный МАС-адрес данной микросхемы МК, где первая цифра и есть байт ответа при проверке связи. Автор лишь повторил размерность кодировки датчиков DS18B20 для микросхемы МК.
Другие команды АТ подробно приведены в файле uart_1wire_v2r_16f676_v2_12m_sin_ad9833.f так, что доступно программировать и на других языках при обращении к МК.
Скорость обращения к МК выбрана в 9600 кбод в стандарте 8N1.
Предусмотрены ещё два окна: настройка, проверка генератора AD9833 и позиционирование датчиков в автоматическом режиме без отображения в работе спектра, но с записью данных в файл формата Excel.
Режим с записью данных спектра в файл Excel позволяет анализировать спектры, учитывать возможные помехи и проводить сравнительный анализ в спорных случаях измерения.
На рис. 9 приведено фото цифровых подвесок, для которых подготовлено это программное обеспечение.
Для позиционирования датчиков по полученным данным отсчёта АЦП индуктивно-ёмкостных значений выбран анализ «интегрального веса» участка данных спектра. Чем больше «интегральный вес», тем больше «частотных» откликов диапазона, т.е. больше значение индуктивности и ёмкости. Исходя из того, что значение квадратного корня произведения ёмкости и индуктивности обратно пропорционально частоте исследуемого LC-контура [1], получаем правило позиционирования датчиков. Чем ближе датчик, тем меньше «интегральный вес», или, наоборот, чем дальше датчик, тем больше «интегральный вес».
Другой вариант трактовки правила позиционирования: длиннее линия – больше индуктивность и ёмкость линии и, следовательно, меньше частота «исследуемого LC» контура. На рис. 10 приведён график «интегрального веса» для двух датчиков.
Sнч и Sвч – выделенная штриховым контуром площадь «интегрального веса» спектра. НЧ – низкая часть частоты спектра, ВЧ – высокая часть частоты спектра.
Вид графиков двух разных датчиков, на первый взгляд, одинаковый, но «интегральный вес» разный, поскольку по шкале Y разное значение амплитуд. Для большей наглядности анализа использовался метод дихотомии, т.е. деление на два поддиапазона и сравнение соответствующих участков спектра.
Для быстрого построения графиков по данным окна без отображения спектра подготовлен файл макроса uart_1wire_v2r_grafika.xls для редактора Excel, который находится в папке dop_files в архиве.
Подробности практической работы с позиционированием датчиков термоподвесок выходят за рамки данного изложения, но доступны в тексте настройки и помощи программы.
Выводы
Возможность адаптера «привязать» уникальный МАС-адрес к «уникальному» месту установки позволяет снизить ошибки размещения датчиков. Размещение датчика можно проверить и способом его нагрева и тем самым убедиться в правильности позиционирования.
Но для датчиков, установленных в место измерения, возникает проблема их достоверной проверки без изъятия с места работы. Предлагаемый адаптер помогает проводить достоверную проверку датчиков на месте их постоянной работы.
Использование сканирующего адаптера повышает надёжность и ремонтопригодность цифровых термоподвесок на основе интерфейса 1wire и датчиков DS18B20.
Литература
- Измерение индуктивности катушек резонансным методом. URL: https://forum.cxem.net/index.php?/blogs/entry/463-измерение-индуктивности-катушек-резонансным-методо....
- Генератор AD9833. URL: https://www.chipdip.ru/catalog/popular/ad9833-1.
- Описание МК 16F676. URL: https://www.chipdip.ru/product/pic16f676-i-p.
- Каталог программы, платы. URL: http://90.189.213.191:4422/temp/uart_1wire_v2r/test/.
- Описание языка Форт spf4.exe, автор версии А. Черезов. URL: http://www.forth.org.ru/.
- «Тройник» для интерфейса 1wire // Современная электроника. 2023. № 6. С. 24–26. URL: https://www.cta.ru/articles/soel/2023/2023-6/169584/.
© СТА-ПРЕСС, 2025
Если вам понравился материал, кликните значок - вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал - не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!