Михаил Гурович, США
В наши дни все большую популярность приобретают измерительные приборы с цифровой индикацией результатов измерений, например, цифровые штангенциркули, микрометры или индикаторы часового типа (ИЧТ). У большинства таких приборов есть порт для вывода данных на внешнее устройство для сохранения или анализа. Как правило, это последовательный интерфейс вывода, использующий линию данных DT и линию cтробирующего сигнала CLK. При попытке прочтения такого сигнала обычным способом возникает проблема несовместимости, так как выводимые данные имеют нестандартные уровни напряжений и разные логические форматы.
В статье описывается один из способов чтения и передачи информации с ИЧТ на ПК.
В данном проекте ставилась задача автоматизации процесса измерения амплитуды вибрации рабочего конца сонотрода в установке для ультразвуковой сварки металлов. Во время сварки сонотрод совершает колебания с частотой около 20 кГц и амплитудой от 20 до 40 микрон.
![]() |
||
Рисунок 1. | Механический ИТЧ при измерении амплитуды колебаний сонотрода. |
Изначально для измерения амплитуды вибрации сонотрода использовался механический ИЧТ (Рисунок 1). Во время сварки отмечалось максимальное отклонение стрелки, и затем из этого значения вычиталось показание прибора в состоянии покоя. Разница этих двух значений и равна амплитуде колебаний сонотрода.
![]() |
||
Рисунок 2. | Электронный ИТЧ типа ClockwiseTools DITR-0105. |
В данном проекте был использован цифровой ИЧТ типа ClockwiseTools DITR-0105, показанный на Рисунке 2. Прибор имеет ЖКИ для отображения результатов измерения и последовательный интерфейс для вывода данных. В процессе работы с ИЧТ выяснилось, что выходной порт имеет три линии – землю GRND, линию данных DT и линию синхронизации CLK. Осциллограммы сигналов на этих линиях показаны на Рисунках 3, 4 и 5.
![]() |
||
Рисунок 3. | Один полный пакет данных ИТЧ. |
![]() |
||
Рисунок 4. | Несколько пакетов данный на выходе ИТЧ. |
![]() |
||
Рисунок 5. | Несколько бит данных на выходе ИТЧ. |
При анализе стало ясно, что для передачи этой информации в ПК требовалось решить две проблемы:
- Преобразовать нестандартные уровни выходных сигналов ИЧТ (низкий – 0 В, высокий – 1.5 В) в уровни ТТЛ.
- Декодировать выходные данные, представленные в неизвестном формате, и преобразовать их в формат, пригодный для передачи в ПК, например RS-232.
Первая проблема была решена с помощью преобразователя уровней, формирующего сигналы TTL для подачи их на цифровые входы микроконтроллера (МК).
Для решения второй проблемы используется МК (Arduino Nano), который принимает TTL сигналы, обрабатывает их и формирует выходные данные в формате RS-232. (Точнее, логический формат выходных данных – это RS-232, но физически сигналы поступают на вход ПК через стандартный порт USB).
Сначала остановимся подробнее на первой проблеме. Как уже отмечалось выше, входные сигналы имеют уровни 0 и 1.5 В. Для формирования сигналов ТТЛ уровня была применена схема на основе компаратора LM339 (использовались два канала из четырех). Один канал обрабатывает сигнал DT, второй – CLK. Принцип работы схемы прост – на отрицательные входы обоих компараторов подается опорное напряжение величиной примерно +1 В. На положительные входы поступают сигналы с ИЧТ. Выходы компаратора повторяют изменения входных сигналов, но уже с уровнями ТТЛ. Эти выходные ТТЛ сигналы подаются на цифровые входы МП для дальнейшей обработки.
![]() |
||
Рисунок 6. | Аналоговая часть проекта. |
![]() |
||
Рисунок 7. | Микропроцессор Arduino Nano. |
![]() |
||
Рисунок 8. | Источник питания проекта. |
Электроника проекта условно разделена на три блока. Их схемы изображены на Рисунках 6, 7 и 8. Печатная плата показана на Рисунке 9, а внешний вид – на Рисунке 10. Файлы Gerber можно скачать по ссылке в конце статьи.
![]() |
||
Рисунок 9. | Печатная плата проекта (верхний слой зеленый, нижний – красный). |
![]() |
||
Рисунок 10. | Трехмерная модель модуля. |
Заметим, что в проекте есть несколько компонентов, которые в данной версии не используются и включены в схему только для будущего использования. Это третий и четвертый компараторы (U1B и U1D), а также резисторы R12 … R19.
Кроме того, в проект добавлен второй МК, чтобы иметь на печатной плате дубликаты всех выводов микроконтроллера для удобства отладки.
Все эти дополнительные компоненты являются частью проекта печатной платы и файлов Gerber, но в данном проекте не используются и не устанавливались.
Обработка входных сигналов и формирование выходных данных в формате RS-232 была выполнена с использованием Arduino Nano и программы на языке C++.
Описание алгоритма и программы
Как уже было отмечено выше, МП должен выполнить две задачи:
- Декодировать входные импульсы;
- Сформировать данные для передачи на ПК.
При анализе входных импульсов выяснилось следующее:
- Данные поступают в последовательном коде;
- Пакеты поступают с частотой примерно 10 Гц;
- Длина одного пакета 9 мс;
- Чтение линии DT происходит по переднему фронту сигнала CLK;
- Биты собраны в группы по 4, и таких групп в пакете 6; таким образом, полный пакет данных содержит 24 бита;
- Младший бит приходит первым, старший – последним;
- Первые 16 бит содержат двоичный код результата измерения, последние 8 бит содержат информацию о знаке результата (бит 20) и о единицах измерения (бит 23).
Заметим, что в данной версии программы информация о единицах измерения не обрабатывается, так как предполагается, что ИЧТ работает в метрической системе.
МП постоянно проверяет состояние входа CLK, и как только поступает импульс, МП читает состояние линии DT и сохраняет прочитанное значение в буфере данных размером в 24 байта.
После каждого прочтенного импульса запускается таймер ожидания. Если после последнего принятого импульса прошло время, большее, чем заданное, последний принятый пульс считается последним в предыдущем пакете, а следующий принятый импульс будет считаться первым в следующем пакете. Такой алгоритм позволяет определить начало и конец данных, начиная с любой временнóй точки, и приводит к потере только самого первого пакета. Все последующие пакеты, начиная со второго, принимаются и декодируются без проблем.
Итак, как только МП обнаружил, что пришел последний пульс в пакете, выполняется следующая последовательность действий:
- Содержимое буфера реверсируется (порядок битов меняется на стандартный: старший слева, младший справа);
- Младшие 16 бит преобразуются из двоичного в десятичный формат;
- Декодируется знак числа (бит 20);
- Формируется число со знаком;
- Это число посылается на ПК, используя порт USB и протокол RS-232;
- Буфер обнуляется для приема следующего пакета.
Результаты реализации проекта показаны на Рисунках 11 и 12.
![]() |
||
Рисунок 11. | Измерительная установка в сборе. |
![]() |
||
Рисунок 12. | Проект в действии: измерения отклонения и данные на экране ПК. |