Введение
Основное отличие предлагаемого устройства от других прототипов [1] состоит в использовании UART-USB модуля [2], который через преобразователь работает с интерфейсом SPI. Принцип работы прибора заключается в следующем. Регистрацию температуры выполняет термопара К-типа с интервалом измерения 0…1023°C. Термопара К-типа [3] работает совместно с микросхемой MAX6675, которая выдаёт цифровой код в интерфейсе SPI. В SPI по фронту тактового сигнала фиксируется бит информации. В интерфейсе UART бит информации фиксируется по уровню за точно известный тактовый интервал. Чтобы совместить эти интерфейсы и получить информацию побитно в разработанной схеме формируется следующее правило:
- тактовый интервал задаётся от интерфейса UART;
- в тактовом интервале формируется фронт для фиксации бита от интерфейса SPI;
- информация от фронта фиксируемого бита передаётся в тактовый интервал приёма интерфейса UART двумя возможными комбинациями, кратными двум тактам от длительности задаваемого тактового интервала.
Таким образом, синхронизация обеспечивается сигналом UART, и принимаемый бит всегда совпадает по длительности с сигналом UART.
На рисунке 1 представлена блок-схема совместной работы UART- и SPI-интерфейсов с использованием схемы преобразования интерфейса (сверху показан внешний вид интерфейсных компонентов). На данной схеме показаны только направления информационных сигналов, а именно:
- TxD – сигнал интерфейса UART передаётся в схему преобразования;
- RxD – сигнал интерфейса UART принимается из схемы преобразования и содержит в своём коде информацию о температуре;
- CS – сигнал «выбора кристалла» формируется схемой преобразования и разрешает работу АЦП MAX6675 по преобразованию температуры в код;
- SCK – сигнал тактовой синхронизации запроса данных о температуре в интерфейс SPI;
- S0 – сигнал данных с «привязкой» к сигналу SCK. При положительном перепаде на SCK считываются данные от S0, при отрицательном перепаде на SCK устанавливаются данные на S0.
Достоинство интерфейса SPI заключается в наличии точно известного события (фронта импульса) приёма информации. Это обеспечивает ему быстродействие и помехозащищённость. Однако для интерфейса UART требуется изменение правила передачи информации.
Принципиальная схема преобразователя интерфейса
Предлагаемая схема преобразователя интерфейса представлена на рисунке 2.
Схема состоит из двух D-триггеров (U1), которые расположены в одном корпусе микросхемы 555ТМ2, и четырёх элементов 2И–НЕ c открытым коллектором (ОК) – микросхема 555ЛА8 (U2). Цифрами в окружностях отмечены соответствующие сигналы, представленные на диаграмме (см. рис. 3).
Триггер U1.1 работает в режиме счётчика «на два». Вход D-триггера (в.2) соединён с выходом Q (в.6). Данный режим включения формирует тактовый сигнал SCK для получения данных от SPI. Триггер U1.2 работает в режиме фиксации данных от интерфейса SPI по положительному фронту U1.1. Таким образом, триггер U1.2 в каждом тактовом интервале находится в состоянии 0 или 1 , что соответствует коду температуры, получаемому от MAX6675. Для формирования сигнала UART выходы (в.8 и в.9) триггера U1.2 подключены к схеме выбора сигнала на элементах 2И–НЕ U2.1 (в.3) и U2.2 (в.5).
На другие входы элементов U2.1 (в.2) и U2.2 (в.6) поступают сигналы от UART, которые имеют совпадение по фазе и различие по длительности. Поскольку микросхема U2 имеет тип ОК, то выходы U2.1 (в.1) и U2.2 (в.4) включены вместе, и объединённый сигнал возвращается в UART на вход приёма RxD. Для поддержки режима ОК на все выходы микросхемы U2 включены «подтягивающие» сопротивления R2...R5.
Для устойчивого приёма старт-стопного сигнала двух кратных длительностей используется режим передачи/приёма 6N1. Передаются 6 бит без проверки на чётность/нечётность. На рисунке 4 изображён сигнал формата 6N1/8N1 интерфейса UART. Если схема преобразования «выставляет» байт 0, то, внимательно посмотрев на число бит, можно обнаружить, что количество бит увеличилось до 7, а также присутствует сигнал Start. Бит Stop сместился на одну позицию. Данный вариант представлен на рисунке 5 сигналом 2.
Однако в этом случае приёмник UART в режиме 6N1 «удлинённый» сигнал 0 воспринимает без помех, т.к. принимаемый сигнал бита B6 и Stop перемещается в B7 и Stop. Далее следует высокий уровень сигнала, и приёмник UART подготавливается к получению следующего сигнала. Любой сигнал, который принимается интерфейсом UART, всегда имеет время на интервал Stop, и вследствие этого ошибки не формируются. Предлагаемый метод сопряжения интерфейса UART с интерфейсом SPI можно применять только для режимов 6N1 или 7N1, чтобы всегда присутствовали «запасные» бит приёма и бит стопа. В программе это учитывается следующим образом: передаётся 32 байта, а принимается 16 байт.
Сигнал сброса формируется диодом D1 и интегрирующей цепью R1C1. Время интеграции выбирается из максимально возможной скорости приёма/передачи UART. Современные адаптеры USB-UART устойчиво работают со скоростями 2 Мбит/с [5]. Этого вполне достаточно для работы с АЦП MAX6675. Сигнал сброса для D-триггеров формируется из сигнала сброса для MAX6675 через элемент 2И–НЕ (U2.3), поскольку требуется положительный уровень во время работы. Входы S для обоих D-триггеров замкнуты на шину +5 В, т.к. не используются в работе преобразователя интерфейса.
Конструкция цифрового термометра
Схема и все комплектующие цифрового термометра располагаются в пластиковом корпусе аналогично конструкции, описанной в статье [7]. В приборе используются готовые блоки на печатных платах [3, 5]. На соединительной печатной плате размещена схема сопряжения интерфейса. Поскольку существуют различные варианты расположения выводов платы UART и платы АЦП MAX6675, на соединительной плате добавлены дополнительные посадочные разъёмы.
Принципиальная схема (файл uart_max6675_v1.dip), печатная плата (файл uart_max6675_v1.dip) подготовлены в редакторе DipTrace и извлекаются из тела программы [4] (см. описание программы [7]). Допускается использовать отечественные, и зарубежные компоненты или любые функциональные аналоги, позволяющие реализовать работу логической части преобразователя.
Программа цифрового термометра
Вид окна программы и основные элементы управления представлены на рисунке 6.
Перед началом работы требуется открыть устройство с доступом к UART и повторить проверку правильности подключения в «Диспетчере устройств». Если порт открыт правильно, то выдаётся сообщение о нормальном подключении. Например, на рисунке 6 показано, что открыт порт 5. Программа (uart_max6675_v1.exe) написана на языке программирования Форт [6] и доступна по ссылке [4]. В программе реализованы следующие возможности:
- отображение параметров температуры, получаемых от АЦП MAX6675, большими и стандартными знаками в консоли окна;
- задание температуры «уставки» и фиксация события превышения этой температуры (по умолчанию задана температура +100°С);
- отображение значений температуры в виде графика в отдельном окне (см. рис. 7);
- запись данных в файловый архив;
- макрос для анализа графиков в Excel;
- средства контроля, анализа и визуализация исправности термодатчика, цветовые настройки окна, схема и печатная плата в редакторе DipTrace;
- имитатор измерения температуры;
- исходный текст программы, компилятор языка Форт [6], файл справки по командам языка Форт;
- файл справки управляющих клавиш, файл настройки быстрого запуска и выбора режимов работы.
Программа не требует установки и предназначена для работы на операционных системах Windows XP/7/8/10.
В предложенной схеме измерения с использованием UART-USB модуля выполняются преобразования сигналов АЦП интерфейса SPI в сигналы интерфейса UART c сохранением исходной точности сигналов, что позволяет изменить методы сбора данных и построения систем измерения. Возможно применение цифрового термометра в системах контроля изделий, печей, в учебных, научных задачах и т.п.
Литература
- Цифровой термометр на микросхеме MAX6675 и микроконтроллере (прототип): https://www.rlocman.ru/shem/schematics.html?di=165194.
- Интерфейсы UART: https://musbench.com/e_digital/uart.html.
- Термопара К-типа: https://iarduino.ru/shop/Sensory-Datchiki/termopara-k-tipa.html.
- Программа: http://shabronov_s2.dyn-dns.ru/temp/uart_max6675_v1/test/.
- Адаптер UART: https://ru.aliexpress.com/price/usb-uart-adapter_price.html.
- Описание языка Форт spf4.exe (автор версии А. Черезов): http://www.forth.org.ru/.
- Шабронов А. Тахометр для квадрокоптера. Современная электроника. 2019. № 8.
Если вам понравился материал, кликните значок - вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал - не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!