Знакомство с UART
UART, или универсальный асинхронный приемопередатчик, является одним из наиболее часто используемых протоколов связи между устройствами. В этой статье показано, как использовать UART в качестве аппаратного протокола связи, следуя стандартной процедуре.
При правильной настройке UART может работать со многими различными типами последовательных протоколов, которые включают передачу и получение последовательных данных. При последовательной связи данные передаются побитно по одной линии или по проводу. При двусторонней связи мы используем два провода для успешной последовательной передачи данных. В зависимости от приложения и требований к системе для последовательной связи требуется меньше схем и проводов, что снижает стоимость внедрения.
В этой статье мы обсудим фундаментальные принципы использования UART с упором на передачу пакетов, стандартный протокол кадра и настраиваемые протоколы кадра, которые являются дополнительными функциями для обеспечения соответствия требованиям безопасности при их реализации, особенно во время разработки кода. В ходе разработки продукта этот документ также призван поделиться некоторыми основными шагами при проверке фактического использования по таблице данных.
В конце статьи цель состоит в том, чтобы лучше понять и соответствовать стандартам UART, чтобы максимизировать возможности и применение, особенно при разработке новых продуктов.
«Самая большая проблема в общении - это иллюзия, что это произошло».
—Джордж Бернард Шоу
Протокол связи играет большую роль в организации связи между устройствами. Он разработан по-разному в зависимости от системных требований, и для этих протоколов есть определенные правила, согласованные между устройствами для достижения успешного взаимодействия.
Встроенные системы, микроконтроллеры и компьютеры в основном используют UART как форму аппаратного протокола связи между устройствами. Среди доступных протоколов связи UART использует только два провода для передачи и приема.
Несмотря на то, что это широко используемый метод аппаратного протокола связи, он не всегда полностью оптимизируется. При использовании модуля UART внутри микроконтроллера обычно игнорируется надлежащая реализация протокола кадра.
По определению, UART - это протокол аппаратной связи, который использует асинхронную последовательную связь с настраиваемой скоростью. Асинхронный означает отсутствие тактового сигнала для синхронизации выходных битов от передающего устройства к принимающей стороне.
Интерфейс
Рис. 1. Два UART напрямую взаимодействуют друг с другом.
Называются два сигнала каждого устройства UART:
- Передатчик (Tx)
- Получатель (Rx)
Основное назначение линии передатчика и приемника для каждого устройства - передавать и принимать последовательные данные, предназначенные для последовательной связи.
Рисунок 2. UART с шиной данных.
Передающий UART подключен к шине управляющих данных, которая передает данные в параллельной форме. После этого данные будут передаваться по линии передачи (проводу) последовательно, бит за битом, на принимающий UART. Это, в свою очередь, преобразует последовательные данные в параллельные для принимающего устройства.
Линии UART служат средой связи для передачи и приема одних данных в другие. Обратите внимание, что устройство UART имеет вывод для передачи и приема, предназначенный либо для передачи, либо для приема.
Для UART и большинства последовательных коммуникаций необходимо установить одинаковую скорость передачи как на передающем, так и на принимающем устройстве. Скорость передачи - это скорость, с которой информация передается в канал связи. В контексте последовательного порта установленная скорость передачи данных будет служить максимальным числом передаваемых битов в секунду.
В таблице 1 обобщено то, что мы должны знать об UART.
Таблица 1. Сводка по UART
Провода 2 Скорость 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000 Способы передачи Асинхронный Максимальное количество мастеров1 Максимальное количество подчиненных1Интерфейс UART не использует тактовый сигнал для синхронизации устройств передатчика и приемника; он передает данные асинхронно. Вместо тактового сигнала передатчик генерирует поток битов на основе своего тактового сигнала, в то время как приемник использует свой внутренний тактовый сигнал для выборки входящих данных. Для управления точкой синхронизации используется одинаковая скорость передачи данных на обоих устройствах. Невыполнение этого требования может повлиять на время отправки и получения данных, что может вызвать расхождения во время обработки данных. Допустимая разница в скорости передачи составляет до 10% до того, как время передачи битов станет слишком большим.
Передача данных
В UART режим передачи - это пакет. Часть, которая соединяет передатчик и приемник, включает создание последовательных пакетов и управление этими физическими аппаратными линиями. Пакет состоит из стартового бита, кадра данных, бита четности и стоповых битов.
Рис. 3. Пакет UART.
Начальный бит
Линия передачи данных UART обычно находится под высоким уровнем напряжения, когда она не передает данные. Чтобы начать передачу данных, передающий UART переводит линию передачи с высокого на низкий в течение одного (1) тактового цикла. Когда принимающий UART обнаруживает переход от высокого напряжения к низкому, он начинает считывать биты в кадре данных с частотой, равной скорости передачи.
Рис. 4. Стартовый бит.
Фрейм данных
Фрейм данных содержит фактические передаваемые данные. Это может быть от пяти (5) битов до восьми (8) битов, если используется бит четности. Если бит четности не используется, длина кадра данных может составлять девять (9) бит. В большинстве случаев данные отправляются первым с младшим значащим битом.
Рис. 5. Фрейм данных.
Четность
Четность описывает четность или нечетность числа. Бит четности - это способ для принимающего UART определить, изменились ли какие-либо данные во время передачи. Биты могут быть изменены электромагнитным излучением, несоответствующей скоростью передачи или передачей данных на большие расстояния.
После того, как принимающий UART считывает фрейм данных, он подсчитывает количество битов со значением 1 и проверяет, является ли сумма четным или нечетным числом. Если бит четности равен 0 (четность), то 1 или бит высокого логического уровня в кадре данных должен составлять четное число. Если бит четности равен 1 (нечетная четность), то в сумме 1 бит или логические максимумы в кадре данных должны составлять нечетное число.
Когда бит четности совпадает с данными, UART знает, что передача была без ошибок. Но если бит четности равен 0, а общее количество нечетное, или бит четности равен 1, а общее количество четное, UART знает, что биты в кадре данных изменились.
Рисунок 6. Биты четности.
Стоп-биты
Чтобы сигнализировать об окончании пакета данных, отправляющий UART переводит линию передачи данных с низкого напряжения на высокое в течение от одного (1) до двух (2) битов.
Рис. 7. Стоп-биты.
Этапы передачи UART
Во-первых:передающий UART получает данные параллельно от шины данных.
Рис. 8. Шина данных к передающему UART.
Во-вторых:передающий UART добавляет к кадру данных стартовый бит, бит четности и стоповый бит (ы).
Рис. 9. Фрейм данных UART на стороне Tx.
В-третьих:весь пакет отправляется последовательно, начиная от стартового бита до стопового бита, от передающего UART к принимающему UART. Принимающий UART производит выборку линии данных с предварительно настроенной скоростью передачи данных.
Рис. 10. Передача по UART.
Четвертое:принимающий UART отбрасывает стартовый бит, бит четности и стоповый бит из кадра данных.
Рис. 11. Фрейм данных UART на стороне Rx.
Пятое:принимающий UART преобразует последовательные данные обратно в параллельные и передает их на шину данных на принимающей стороне.
Рис. 12. Получение UART на шину данных.
Протокол кадров
Одна ключевая функция, которая доступна в UART, но не используется полностью, - это реализация протокола кадров. Основное использование и важность этого - дополнительная ценность для безопасности и защиты на каждом устройстве.
Например, когда два устройства используют один и тот же протокол кадра UART, существует тенденция к тому, что при подключении к одному и тому же UART без проверки конфигурации устройство будет подключаться к разным контактам, что может вызвать сбои в системе.
С другой стороны, реализация этого гарантирует безопасность из-за необходимости анализировать полученную информацию в соответствии с протоколом проектного кадра. Каждый фрейм-протокол специально разработан, чтобы быть уникальным и безопасным.
При разработке протокола кадра разработчики могут установить желаемые заголовки и трейлеры, включая CRC, для различных устройств. На рисунке 13 два (2) байта заданы как часть заголовка.
Во-вторых:под картой памяти проверьте адрес UART.
Рис. 13. Пример фрейм-протокола UART.
Основываясь на образце, вы можете установить заголовок, трейлер и CRC, которые уникальны для вашего устройства.
Заголовок 1 (H1 - 0xAB) и заголовок 2 (H2 - 0xCD)
Заголовок - это уникальный идентификатор, который определяет, общаетесь ли вы с
правильное устройство.
Выбор команды (CMD)
Команда будет зависеть от списка команд, предназначенных для установления связи между двумя устройствами.
Длина данных (DL) на команду
Длина данных будет зависеть от выбранной команды. Вы можете максимизировать длину данных в зависимости от выбранной команды, поэтому она может варьироваться в зависимости от выбора. В этом случае длину данных можно изменить.
Данные n (различные данные)
Данные - это полезная нагрузка, передаваемая с устройств.
Трейлер 1 (T1 - 0xE1) и трейлер 2 (T2 - 0xE2)
Прицепы - это данные, которые добавляются после завершения передачи. Как и заголовок, их можно однозначно идентифицировать.
Циклическая проверка избыточности (формула CRC)
Формула циклической проверки избыточности - это дополнительный режим обнаружения ошибок для обнаружения случайных изменений необработанных данных. Значение CRC передающего устройства всегда должно быть равно вычислению CRC на стороне получателя.
Желательно добавить безопасность, реализовав протоколы кадров для каждого устройства UART. Протокол кадра требует одинаковых конфигураций как на передающем, так и на принимающем устройствах.
Операции UART
При использовании любого протокола связи с оборудованием обязательно ознакомьтесь с таблицей данных и справочным руководством по оборудованию.
Вот шаги, которые необходимо выполнить:
Во-первых:проверьте интерфейс таблицы данных устройства.
Рис. 14. Спецификация микроконтроллера.
Рисунок 15. Карта памяти микроконтроллера.
В-третьих:проверьте конкретные детали для ПОРТА UART, такие как режим работы, длина битов данных, бит четности и стоповые биты. Пример сведений о порте UART в техническом описании:
Порт UART
Образцы MCU предоставляют полнодуплексный порт UART, который полностью совместим со стандартными UART ПК. Порт UART обеспечивает упрощенный интерфейс UART для других периферийных устройств или хостов, поддерживая полнодуплексный режим, прямой доступ к памяти и асинхронную передачу последовательных данных. Порт UART поддерживает от пяти до восьми битов данных, а также отсутствие, четность или нечетность. Кадр завершается полутора или двумя стоповыми битами.
В-четвертых:проверьте детали работы UART, включая вычисление скорости передачи. Скорость передачи конфигурируется с использованием следующей примерной формулы. Эта формула зависит от микроконтроллера.
Пример подробностей операций UART:
- от 5 до 8 бит данных.
- 1, 2 или 1 и ½ стоповых бита
- Нет, четная или нечетная четность.
- Программируемая частота передискретизации на 4, 8, 16, 32
- Скорость передачи =PCLK / ((M + N / 2048) × 2 OSR + 2 × DIV
где,
OSR (частота передискретизации)
UART_LCR2.OSR =от 0 до 3
DIV (делитель скорости передачи)
UART_DIV =от 1 до 65535
M (дробная скорость передачи DIVM M)
UART_FBR.DIVM =от 1 до 3
N (дробная скорость передачи DIVM M)
UART_FBR.DIVN =от 0 до 2047
Пятое:Что касается скорости передачи, обязательно проверьте, какие периферийные часы (PCLK) использовать. В этом примере доступны PCLK 26 МГц и PCLK 16 МГц. Обратите внимание, что OSR, DIV, DIVM и DIVN зависят от устройства.
Таблица 2. Пример скорости передачи данных для PCLK 26 МГц
Скорость передачи OSR DIV DIVM DIVN 9600324310781152003411563Таблица 3. Пример скорости передачи данных для PCLK 16 МГц
Скорость передачи OSR DIV DIVM DIVN 960031731078115200322348Шестое:следующая часть - проверить подробные регистры для конфигурации UART. Взгляните на параметры при вычислении скорости передачи данных, такие как UART_LCR2, UART_DIV и UART_FBR. Таблица 4 приведет к конкретному регистру, который необходимо охватить.
Таблица 4. Описание регистров UART
Имя Описание UART_DIV Делитель скорости передачи UART_FIBR Дробная скорость передачи UART_LCR2 Управление второй строкойСедьмое:в каждом регистре проверьте детали и замените вычисляемые значения скорости передачи данных, затем начните реализацию UART.
Почему это важно?
Знакомство с протоколом связи UART полезно при разработке надежных, ориентированных на качество продуктов. Знание того, как отправлять данные с использованием только двух проводов, а также как транспортировать весь пакет данных или полезную нагрузку, поможет гарантировать, что данные передаются и принимаются без ошибок. Поскольку UART является наиболее часто используемым протоколом связи оборудования, эти знания могут обеспечить гибкость проектирования в будущих проектах.
Примеры использования
Вы можете использовать UART для многих приложений, таких как:
- Отладка. Раннее обнаружение системных ошибок важно во время разработки. Добавление UART может помочь в этом сценарии путем сбора сообщений из системы.
- Трассировка на уровне производственных функций:журналы очень важны на производстве. Они определяют функциональные возможности, предупреждая операторов о том, что происходит на производственной линии.
- Обновления клиентов или клиентов:обновления программного обеспечения очень важны. Полноценное динамическое оборудование с программным обеспечением с возможностью обновления важно для полноценной системы.
- Тестирование / проверка:проверка продуктов до того, как они покинут производственный процесс, помогает предоставлять клиентам продукцию самого высокого качества.
Ссылки
«Основы связи UART». Electronics Hub, июль 2017 г.
Кэмпбелл, Скотт. «Основы связи UART». Основы схемы . Кейм, Роберт.
«Назад к основам:универсальный асинхронный приемник / передатчик». Все о схемах , Декабрь 2016 г.
«Что такое протокол UART? Объяснение связи UART ». Стрелка.
Встроенный
- Понимание процесса изготовления вала
- Понимание значения облачной культуры
- Понимание преимуществ профилактического обслуживания
- Понимание основ фрезерного станка
- Понимание линии поперечной резки
- Понимание различных типов остаточного напряжения
- Понимание работы амортизатора
- Понимание различных типов потока жидкости
- Понимание термина сцепление
- Понимание гибкости материала