Мегаобучалка Главная | О нас | Обратная связь


Формат передачи данных UART



2019-05-24 498 Обсуждений (0)
Формат передачи данных UART 0.00 из 5.00 0 оценок




Теоретическая часть

Назначение UART и USART

 

UART (Universal Asynchronous Receiver/Transmitter) - универсальный асинхронный приёмопередатчик, интерфейс для связи цифровых устройств, предназначенный для передачи данных в последовательной форме. Очень распространён и весьма востребован, имеет аппаратную реализацию во многих микроконтроллерах. Например, микроконтроллеры STM32 из семейства STM32F100xx, в зависимости от варианта исполнения, содержат 2 или 3 USART.

USART (Universal Synchronous-Asynchronous Receiver/Transmitter) - универсальный синхронно-асинхронный приёмопередатчик - аналогичный UART интерфейс, но дополнительно к возможностям UART, поддерживает режим синхронной передачи данных - с использованием дополнительной линии тактового сигнала. Впрочем, синхронная передача используется гораздо реже асинхронной.

UART может использоваться как для взаимодействия компонентов внутри одного устройства, так и для подключения устройств между собой. Для внешних подключений сигналы с уровнями логики ТТЛ или КМОП подходят мало из-за низкой помехоустойчивости. Распространённым стандартом физического уровня для UART, который подходит для подключения внешних устройств является RS-232. Этому стандарту, в частности, соответствует последовательный порт (COM-порт) компьютера. Так что, микроконтроллер с помощью схемы преобразования уровней может обмениваться информацией с COM-портом компьютера, но об этом чуть позже.

 

Варианты подключения UART

 

В UART передача данных происходит в последовательной форме, т.е. по одному биту. Поэтому для передачи в одном направлении требуется один проводник; для полнодуплексной двунаправленной связи потребуется два проводника (рисунок 1).

Выход обозначают TD или TX (transmitted data), вход - RD или RX (received data). Для подключения двух устройств выход одного подключают ко входу другого и вход первого - к выходу второго.

 

 

Рисунок 1 – Схема подключения устройств по UART

 

Возможен вариант использования UART для полудуплексной двунаправленной связи по одному проводу. В этом случае выводы TX и RX каждого устройства соединяют вместе. Всё время, пока устройства не передаёт данных, оно держит выход в отключённом состоянии (переводит в Z-состояние, состояние с высоким сопротивлением; можно использовать режим работы с открытым стоком - во время паузы в передаче на выходе UART формируется лог. 1, что равносильно переходу в Z-состояние). Устройство может иметь аппаратную поддержку полудуплексного обмена данными, тогда требуется лишь выбрать нужный режим работы. Если аппаратной поддержки нет, полудуплексный режим легко реализуется программно. Для этого нужно отключать передатчик, когда устройство не передаёт данных, чтобы освободить линию для осуществления передачи другими устройствами и отключать приёмник во время работы своего передатчика, чтобы не принимать собственную передачу (либо программно отбрасывать данные, передаваемые своим передатчиком).

К однопроводной линии можно подключить несколько устройств (рисунок 2), которые будут образовывать сеть для передачи данных. Арбитраж в этой сети должен быть реализован программно.

 

Рисунок 2 – Подключение нескольких устройств с UART к однопроводной линии

 

Как видим, объединять устройства с помощью UART очень просто. Для двунаправленного подключения требуются только три проводника (с учётом общего провода), а для однонаправленного или двунаправленного полудуплексного - всего два.

Формат передачи данных UART

 

В отсутствии передачи на выходе UART присутствует уровень лог. 1.

Данные передаются в виде посылок (фреймов), каждая из которых состоит из стартового бита, битов данных и одного или нескольких стоп-битов (рисунок 3). Длительность всех битов одинакова, связана со скоростью передачи соотношением T=1/S. Существует ряд стандартных скоростей передачи: 110, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 бод. Если внутри одного устройства связь можно осуществлять на произвольной скорости, то для связи с внешними устройствами следует придерживаться стандартных величин.

Посылка начинается со стартового бита, он всегда имеет значение лог. 0. После стартового бита передаются биты данных. Количество битов данных может составлять 5-9 в зависимости от настроек UART. Обычно передаётся 8 бит данных или 9 бит (8 бит собственно данных и один бит чётности). Завершается посылка стоп-битами, их значение - всегда лог. 1, количество обычно составляет 1, 1.5 или 2. Под количеством стоп-битов понимается длительность соответствующего им единичного импульса по отношению к длительности битов данных и старт-бита. Этим объясняется возможность выражать количество битов дробным числом. Сразу же после стоп-битов может начинаться передача следующей посылки или может быть пауза произвольной длительности, во время которой на выходе также формируется уровень лог. 1.

 

 

Рисунок 3 – Формат посылки (фрейма) при передаче данных по UART

 

Так как во время передачи стоп-бита и пока линя свободна, на выходе присутствует единичное значение, а старт-бит имеет значение лог. 0, старт-бит позволяет выявить момент начала передачи данных, разделить две последовательные посылки и осуществить синхронизацию передатчика и приёмника.

Если передатчик и приёмник работают на одной скорости, настроены на работу с одинаковым количеством битов данных, стоп битов, одинаково сконфигурированы в отношении бита чётности, то для обмена данными не требуется передавать отдельно тактовый сигнал - он может быть восстановлен приёмником самостоятельно.

Обнаружив начало старт-бита, приёмник ждёт в течение половины длительности передачи бита, после чего начинает считывать сигнал на входе с частотой, равной скорости передачи данных (рисунок 4). В идеальном случае момент каждого считывания приходится на середину принимаемого бита. В реальности генераторы тактовых импульсов передатчика и приёмника имеют рассогласование по частоте, в результате каждое новое считывание всё больше смещается относительно середины очередного бита. Важно, чтобы за время передачи одной посылки, смещение не превысило половины длительности бита, а с учётом переходных процессов - смещению лучше не превышать четвёртой части длительности бита. Иначе вместо считывания бита произойдёт считывание соседнего бита (или считывание линии во время переходного процесса) и посылка будет принята неверно.

 

 

Рисунок 4 – Передача битов данных по UART



2019-05-24 498 Обсуждений (0)
Формат передачи данных UART 0.00 из 5.00 0 оценок









Обсуждение в статье: Формат передачи данных UART

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (498)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)