Метод приема синхронных данных старт-стопным интерфейсом
SYNCHRONOUS DATA RECEPTION METHOD BY START-STOP INTERFACE

Предлагаемое изобретение относится к измерительной преобразовательной технике, а именно к средствам преобразования интерфейсов, а также может использоваться в различных областях производства и управления.
Известны устройства приема синхронного типа (SPI) сигнала, последующего преобразования в микропроцессоре и передачи данных в интерфейс старт-стопного типа (UART). Эти устройства содержат схемы формирования, кодировки и преобразования с использованием микроконтроллеров, микропроцессоров и компьютеров.
Однако, известные устройства обладают следующими недостатками. Они реализованы в виде микросхем, печатных плат, и т.п. изделий электроники. Они занимают место, имеют вероятность физического износа и поломок. Промышленность выпускает много устройств приема информации с интерфейсами разного типа. Существует много способов преобразования интерфейсов, согласования интерфейсов, статистической обработке и индикации обмена данными. Стоимость преобразующих устройств, приближается к стоимости контролируемых объектов. Схемы преобразования выполняют функции: получение данных по одному
типу интерфейса, команд обработки по заданному алгоритму, формирование сигналов другого типа интерфейса, передача сформированной информации. Эти сложные функции требуют систем анализа команд, их дешифрации и преобразования. Для таких систем требуется отдельное аппаратное и программное сопряжение для передачи данных в компьютер. Такие устройства увеличивают стоимость систем контроля и уменьшают их надежность.
Из известных аналогичных решений наиболее близким по технической сущности к заявляемому методу (прототипом) является модуль преобразования интерфейса [1]. На фигуре 1 представлена блок-схема прототипа. Она состоит из интерфейса USB 1, пластмассового корпуса блока с печатной платой обработки сигналов 2, на которой расположен микропроцессор 3. Это система передает относительно «земли» по проводу TxD и получает по проводу RxD цифровые данные 4. Передача/прием осуществляется по интерфейсу UART старт-стопного типа и не предусматривает другой тип сигналов, например интерфейса SPI. Для подключения других типов интерфейсов используют дополнительные преобразователи SPI в UART [2] на микропроцессорах.
Целью заявленного метода является снижение стоимости систем с разными интерфейсами обмена данных, увеличение надежности изделий путем устранения промежуточных микропроцессорных устройств.
В предлагаемом методе к существующим проводам интерфейса UART (RxD, TxD) добавляется схема сопряжения, которая формирует сигналы сопряжения с интерфейсом SPI без использования отдельных микропроцессоров и работает в условиях «жесткой логики» по сигналам UART.
В SPI фиксируется информация бита по фронту тактового сигнала [5]. В интерфейсе UART информация бита фиксируется по уровню за точно известный тактовый интервал [6]. Чтобы совместить эти интерфейсы и получить информацию побитно, приняты следующие правила работы:
• тактовый интервал задается программно от интерфейса UART;
• в тактовом интервале формируется фронт для фиксации бита от интерфейса SPI;
• данные от фронта фиксируемого бита передаются схемой в тактовый интервал приема интерфейса UART двумя возможными комбинациями, кратными двум тактам от длительности задаваемого тактового интервала.
Таким образом, синхронизация обеспечивается сигналом UART, и принимаемый байт всегда совпадает по длительности с сигналом UART.
На фигуре 2 представлена блочная схема совместной работы UART и SPI интерфейсов с использованием схемы преобразования интерфейса, и
сверху дан внешний вид интерфейсных компонентов. Она состоит из интерфейса USB 1, пластмассового корпуса блока с печатной платой обработки сигналов 2, на которой расположен микропроцессор 3. Выход блока 4 - это интерфейс UART, который принимает и передает сигналы на схему преобразователя интерфейса 5. На выходе схемы преобразователя формируется синхронный интерфейс SPI 6, который подключен к микросхеме МАХ6675 с термопарой К-типа 7. Для конкретности описания последовательности сигналов далее рассматривается пример использования интерфейса SPI АЦП МАХ6675 [3], который работает с термопарой К-типа [4]. Для других устройств с интерфейсом SPI последовательность сигналов будет отличаться лишь количеством сигналов тактовых интервалов. Кроме того, для других устройств потребуется и своя программа обработки данных.
Вместе с тем, если устройства SPI интерфейса не требуются, то схема преобразователя интерфейса может быть отключена по питанию, и не мешать работе по входу UART интерфейса для других возможных подключаемых устройств с UART интерфейсом.
На фигуре 2 показаны только направления информационных сигналов:
• TxD - сигнал интерфейса UART передается в схему преобразования;
• RxD - сигнал интерфейса UART принимается из схемы преобразования и содержит в своем коде информацию о температуре;
• CS - сигнал «выбора кристалла» формируется схемой преобразования и разрешает работу АЦП МАХ6675 по преобразованию температуры в код;
• SCK - сигнал тактовой синхронизации запроса данных о температуре в интерфейс SPI;
• S0 - сигнал данных с «привязкой» к сигналу SCK. При положительном перепаде на SCK считываются данные от S0. При отрицательном перепаде на SCK устанавливаются данные на S0. Это и есть «идея» интерфейса SPI, который работает по фронтам импульсов.
Достоинство интерфейса SPI в точном известном событии (фронт импульса) приема информации. Это обеспечивает ему быстродействие и помехозащищенность. Но для интерфейса UART требуется изменение правила передачи информации.
Предлагаемая схема преобразователя интерфейса представлена на фигуре 3. Она состоит из двух D-триггеров (U1), которые расположены в одном корпусе микросхемы 555ТМ2, и четырех элементов 2И-НЕ с открытым коллектором (ОК), микросхема 555ЛА8 (U2).
Цифрами в окружностях отмечены соответствующие сигналы, представленные на диаграмме фигуры 4.
Триггер U 1.1 работает в режиме счетчика «на два». Вход D-триггера (в.2) соединен с выходом ~Q (в.6). Данный режим включения формирует тактовый сигнал SCK для получения данных от SPI.
Триггер U1.2 работает в режиме фиксации данных от интерфейса SPI по положительному фронту U1.1. Таким образом, триггер U1.2 в каждом тактовом интервале находится в состоянии 0 или 1, что соответствует коду температуры, получаемому от МАХ6675.
Для формирования сигнала UART выходы (в.8, в.9) триггера U1.2 подключены к схеме выбора сигнала на элементах 2И-НЕ U2.1 (в.З) и U2.2 (в.5).
На другие входы элементов U2.1 (в.2) и U2.2 (в.6) поступают сигналы от UART, которые имеют совпадение по фазе и различия по длительности.
Поскольку микросхема U2 имеет тип ОК, то выходы U2.1 (в.1) и U2.2 (в.4) включены вместе, и объединенный сигнал возвращается в UART на вход приема RxD.
Для поддержки режима ОК на все выходы микросхемы U2 включены «подтягивающие» сопротивления R2…R5.
Для устойчивого приема старт-стопного сигнала двух кратных длительностей используется режим передачи/приема 6N1. Передаются
шесть бит без проверки на четность/нечетность. На фигуре 5 изображен сигнал формата 6N1/8N1 интерфейса UART.
Если схема преобразования «выставляет» байт 0, то, внимательно посмотрев на число бит, обнаружим, что количество бит увеличилось до 7, а также присутствует сигнал Start. Бит Stop сместился на один бит.Данный вариант представлен на фигуре 6 сигналом 2.
Но в этом случае приемник UART в режиме 6N1 «удлиненный» сигнал О воспринимает без помех, т.к. принимаемый сигнал бита В6 и Stop перемещается в В7 и Stop. Далее следует высокий уровень сигналами приемник UART подготавливается к приему следующего сигнала. Любой сигнал, который принимается UARTom, всегда имеет время на интервал Stop, и вследствии этого, ошибки не формируются. Предлагаемый метод сопряжения интерфейса UART с интерфейсом SPI можно применять только для режима 6N1 или 7N1, чтобы всегда присутствовали запасные бит приема и бит стопа.
В программе это учитывается следующим образом: передается 32 байта, а принимается 16 байт.
Сигнал сброса формируется диодом D1 и интегрирующей цепью R1C1. Время интеграции выбирается из возможной максимальной скорости передачи/приема UART. Современные адаптеры USB-UART
устойчиво работают со скоростями 2 мегабита в секунду [1], [6], [8]. Этого вполне достаточно для работы с АЦП МАХ6675.
Сигнал сброса для D-триггеров формируется из сигнала сброса для МАХ6675 через элемент 2И-НЕ (U2.3), поскольку требуется положительный уровень во время работы.
Входы S для обоих D-триггеров замкнуты на шину+5 Вольт, т.к. не используются в работе преобразователя интерфейса.
Допускается использовать и отечественные, и зарубежные компоненты, или любые функциональные аналоги по логике работы схемы преобразователя.
Программное обеспечение, для измерения температуры от МАХ6675 через интерфейс USB-UART по данному методу приведено в [7]. Программа поставляется с открытым исходным кодом и может быть реализована на любых языках программирования и операционных системах и показывает принцип формирования синхронизирующего сигнала с двойной кратностью исходного сигнала и получения данных от интерфейса SPI с разной кратностью байта.
Источники информации
1. Блок преобразования интерфейса (прототип): http://mikrol.com/bloki-preobrazovaniya-interfeisov/blok-preobrazovaniva-interfejsov-bpi-452-usb-v-4-kanala-rs-485.html
2. Пример использования прототипа, преобразования SPI в UART. https://soltau.ru/index.php/plis/item/487-preobrazovatel-spi-v-uart-na-verilog
3. Нормализатор сигнала тах6675 https://wiki.iarduino.ru/page/trema-тах6675/
4. Термопара К-типа: https://iarduino.ru/shop/Sensory-Datchiki/termopara-k-tipa.html
5. Синхронный последовательный интерфейс SPI в микроконтроллерах https://www.kit-e.ru/articles/interface/2009_03_53
6. Интерфейсы UART: https://musbench.com/e_digital/uart.html
7. Программа, текст, компилятор, помощь для измерения от МАХ6675: http://shabronov_s2.dyn-dns.ru/temp/uart_max6675_v1/test/
8. Адаптеры UART https://ru.aliexpress.com/price/usb-uart-adapter_price.html