Оглавление:

ОСНОВЫ СВЯЗИ UART: 16 шагов
ОСНОВЫ СВЯЗИ UART: 16 шагов

Видео: ОСНОВЫ СВЯЗИ UART: 16 шагов

Видео: ОСНОВЫ СВЯЗИ UART: 16 шагов
Видео: Уроки Arduino. Общение по Serial, парсинг данных, протоколы связи 2024, Ноябрь
Anonim
ОСНОВЫ СВЯЗИ UART
ОСНОВЫ СВЯЗИ UART

Помните, когда у принтеров, мышей и модемов были толстые кабели с огромными неуклюжими разъемами? Те, которые буквально нужно было прикрутить к вашему компьютеру? Эти устройства, вероятно, использовали UART для связи с вашим компьютером. Хотя USB почти полностью заменил эти старые кабели и разъемы, UART определенно не ушли в прошлое. Вы обнаружите, что UART используются во многих проектах DIY-электроники для подключения модулей GPS, модулей Bluetooth и модулей считывания карт RFID к вашим Raspberry Pi, Arduino или другим микроконтроллерам.

UART означает универсальный асинхронный приемник / передатчик. Это не протокол связи, такой как SPI и I2C, а физическая схема в микроконтроллере или автономная ИС. Основное назначение UART - передача и прием последовательных данных.

Одна из лучших особенностей UART - это то, что он использует только два провода для передачи данных между устройствами. Принципы, лежащие в основе UART, легко понять, но если вы не читали первую часть этой серии, Основы протокола связи SPI, это может быть хорошим началом.

Шаг 1: ВВЕДЕНИЕ В СВЯЗЬ UART

При обмене данными по UART два UART напрямую взаимодействуют друг с другом. Передающий UART преобразует параллельные данные от управляющего устройства, такого как CPU, в последовательную форму, последовательно передает их принимающему UART, который затем преобразует последовательные данные обратно в параллельные данные для принимающего устройства. Только два провода необходимы для передачи данных между двумя UART. Данные передаются от вывода Tx передающего UART к выводу Rx принимающего UART:

Шаг 2: потоки данных от вывода Tx передающего UART к выводу Rx принимающего UART:

Потоки данных от вывода Tx передающего UART к выводу Rx принимающего UART
Потоки данных от вывода Tx передающего UART к выводу Rx принимающего UART

Шаг 3:

UART передают данные асинхронно, что означает отсутствие тактового сигнала для синхронизации вывода битов из передающего UART с дискретизацией битов принимающим UART. Вместо тактового сигнала передающий UART добавляет к передаваемому пакету данных стартовые и стоповые биты. Эти биты определяют начало и конец пакета данных, поэтому принимающий UART знает, когда начать чтение битов.

Когда принимающий UART обнаруживает стартовый бит, он начинает считывать входящие биты с определенной частотой, известной как скорость передачи. Скорость передачи - это мера скорости передачи данных, выражаемая в битах в секунду (бит / с). Оба UART должны работать примерно с одинаковой скоростью передачи данных. Скорость передачи между передающим и принимающим UART может отличаться только примерно на 10%, прежде чем синхронизация битов станет слишком большой.

Шаг 4:

Изображение
Изображение

Оба UART также должны быть настроены для передачи и приема одинаковой структуры пакетов данных.

Шаг 5: КАК РАБОТАЕТ UART

UART, который будет передавать данные, получает данные от шины данных. Шина данных используется для отправки данных в UART другим устройством, таким как ЦП, память или микроконтроллер. Данные передаются от шины данных к передающему UART в параллельной форме. После того, как передающий UART получает параллельные данные из шины данных, он добавляет стартовый бит, бит четности и стоповый бит, создавая пакет данных. Затем пакет данных выводится последовательно, бит за битом на выводе Tx. Принимающий UART считывает пакет данных бит за битом на своем выводе Rx. Затем принимающий UART преобразует данные обратно в параллельную форму и удаляет стартовый бит, бит четности и стоповые биты. Наконец, принимающий UART передает пакет данных параллельно шине данных на принимающей стороне:

Шаг 6: Изображение, как работает UART

Изображение Как работает UART
Изображение Как работает UART

Шаг 7:

Данные, передаваемые через UART, организованы в пакеты. Каждый пакет содержит 1 стартовый бит, от 5 до 9 бит данных (в зависимости от UART), дополнительный бит четности и 1 или 2 стоповых бита:

Шаг 8: данные, передаваемые через UART, упорядочиваются в виде пакетов

Переданные данные UART организованы в виде пакетов
Переданные данные UART организованы в виде пакетов

Шаг 9:

НАЧАЛЬНЫЙ БИТ

Линия передачи данных UART обычно находится под высоким уровнем напряжения, когда она не передает данные. Чтобы начать передачу данных, передающий UART переводит линию передачи с высокого на низкий на один такт. Когда принимающий UART обнаруживает переход от высокого напряжения к низкому, он начинает считывать биты в кадре данных с частотой, равной скорости передачи данных.

РАМКА ДАННЫХ

Фрейм данных содержит фактические передаваемые данные. Если используется бит четности, он может иметь длину от 5 до 8 бит. Если бит четности не используется, длина кадра данных может составлять 9 бит. В большинстве случаев данные отправляются первым с младшим значащим битом.

ЧЕТНОСТЬ

Четность описывает четность или нечетность числа. Бит четности - это способ для принимающего UART узнать, изменились ли какие-либо данные во время передачи. Биты могут быть изменены электромагнитным излучением, несоответствием скорости передачи данных или передачей данных на большие расстояния. После того, как принимающий UART считывает фрейм данных, он подсчитывает количество битов со значением 1 и проверяет, является ли сумма четным или нечетным числом. Если бит четности равен 0 (четность), бит 1 в кадре данных должен составлять четное число. Если бит четности равен 1 (нечетная четность), бит 1 в кадре данных должен составлять нечетное число. Когда бит четности совпадает с данными, UART знает, что передача была без ошибок. Но если бит четности равен 0, а сумма нечетная; или бит четности равен 1, а результат четный, UART знает, что биты в кадре данных изменились.

СТОПОРНЫЕ БИТЫ

o сигнализировать об окончании пакета данных, отправляющий UART переводит линию передачи данных с низкого напряжения на высокое в течение как минимум двух битов.

Шаг 10: ЭТАПЫ ПЕРЕДАЧИ UART

1. Передающий UART получает данные параллельно от шины данных:

Шаг 11: Передача изображения UART получает данные параллельно от шины данных

Передача изображения UART получает данные параллельно от шины данных
Передача изображения UART получает данные параллельно от шины данных

Шаг 12: 2. Передающий UART добавляет стартовый бит, бит четности и стоповый бит (ы) в кадр данных:

2. Передающий UART добавляет стартовый бит, бит четности и стоповый бит (ы) в кадр данных
2. Передающий UART добавляет стартовый бит, бит четности и стоповый бит (ы) в кадр данных

Шаг 13: 3. Последовательно отправляется весь пакет от передающего UART к принимающему UART. Принимающий UART производит выборку линии данных с предварительно настроенной скоростью передачи данных:

3. Последовательно весь пакет передается от передающего UART к принимающему UART. Принимающий UART производит выборку линии данных с предварительно настроенной скоростью передачи данных
3. Последовательно весь пакет передается от передающего UART к принимающему UART. Принимающий UART производит выборку линии данных с предварительно настроенной скоростью передачи данных

Шаг 14: 4. Принимающий UART сбрасывает стартовый бит, бит четности и стоповый бит из кадра данных:

4. Принимающий UART сбрасывает стартовый бит, бит четности и стоповый бит из кадра данных
4. Принимающий UART сбрасывает стартовый бит, бит четности и стоповый бит из кадра данных

Шаг 15: 5. Принимающий UART преобразует последовательные данные обратно в параллельные и передает их на шину данных на принимающей стороне:

5. Принимающий UART преобразует последовательные данные обратно в параллельные и передает их на шину данных на принимающей стороне
5. Принимающий UART преобразует последовательные данные обратно в параллельные и передает их на шину данных на принимающей стороне

Шаг 16: ПРЕИМУЩЕСТВА И НЕДОСТАТКИ UARTS

Нет идеального протокола связи, но UART довольно хорошо справляются со своей задачей. Вот несколько плюсов и минусов, которые помогут вам решить, соответствуют ли они потребностям вашего проекта:

ПРЕИМУЩЕСТВА

Использует только два провода Нет необходимости в тактовом сигнале Имеет бит четности для проверки ошибок Структура пакета данных может быть изменена, если обе стороны настроены для этого Хорошо документированный и широко используемый метод НЕДОСТАТКИ

Размер кадра данных ограничен максимум 9 битами. Не поддерживает несколько ведомых или несколько ведущих систем. Скорости передачи каждого UART должны быть в пределах 10% друг от друга. Протокол связи I2C, чтобы узнать о другом способе связи электронных устройств. Или, если вы еще этого не сделали, ознакомьтесь с первой частью «Основы коммуникационного протокола SPI».

И, как всегда, дайте мне знать в комментариях, если у вас есть вопросы или что-то еще, что можно добавить! Если вам понравилась эта статья и вы хотите видеть больше похожих, обязательно подпишитесь

С Уважением

М. Джунаид

Рекомендуемые: