Интерфейс uart: UART — Последовательный интерфейс передачи данных

Интерфейс UART · Clover

UART – последовательный асинхронный интерфейс для передачи данных, применяемый во многих устройствах. Например GPS-антенны, Wi-Fi роутеры или Pixhawk.

Интерфейс обычно содержит две линии: TX – линия для передачи данных, RX – линия для приёма данных. А также обычно использует 5-ти вольтовую логику.

Для соединения двух устройств необходимо линию TX первого устройства подать на RX второго. Аналогичную операцию нужно совершить с другой стороны, чтобы обеспечить двустороннюю передачу данных.

Необходимо синхронизировать уровни напряжений – соединить землю на двух устройствах.

Почитать больше про интерфейс и протокол можно в этой статье.

Linux TTY

В Linux есть понятие Posix Terminal Interface (подробнее здесь). Это некоторая абстракция над последовательным или виртуальным интерфейсом, позволяющая работать с устройством нескольким агентам одновременно.

В качестве примера такой абстрации в Raspbian можно привести /dev/tty1 – устройство вывода текста на экран подключенный по HDMI.

UART на Raspberry Pi 3

В Raspberry Pi 3 есть два аппаратных UART интерфейса:

  1. Mini UART (/dev/ttyAMA0) – для своей работы использует тактирование видеоядра RPi, в связи с чем ограничивает его частоту.
  2. PL011 (/dev/ttyS0) – полноценный UART интерфейс выполненный на отдельном блоке кристалла микроконтроллера.

Подробнее про UART на Raspberry Pi в официальной статье.

Данные интерфейсы с помощью вентелей микроконтроллера можно переключать между двумя физическими выходами:

  1. разъём UART на GPIO;
  2. Bluetooth модуль RPi.

По умолчанию в Raspberry Pi 3 PL011 подключен к Bluetooth модулю. А Mini UART отключен с помощью значения директивы enable_uart, по дефолту равной 0.

Надо понимать, что директива enable_uart меняет свое дефолтное значение исходя из того, какой UART подключен к Bluetooth модулю RPi с помощью директивы dtoverlay=pi3-miniuart-bt.Интерфейс uart: UART - Последовательный интерфейс передачи данных

Для удобства работы с этими выходами в Raspbian существуют алиасы:

  • /dev/serial0 – всегда указывает на то TTY устройство, что подключено к GPIO портам.
  • /dev/serial1 – всегда указывает на то TTY устройство, что подключено к Bluetooth модулю.

Настройка UART на Raspberry Pi

Для настроек UART существуют директивы, которые находятся в /boot/config.txt.

Для включения UART интерфейса на GPIO:

enable_uart=1

Для отключения UART интерфейса от Bluetooth модуля:

dtoverlay=pi3-disable-bt

Для подключения Mini UART к Bluetooth модулю:

dtoverlay=pi3-miniuart-bt

В случае отключения Bluetooth модуля следует отключить hciuart сервис:

sudo systemctl disable hciuart.service

Настройка образа по умолчанию

На образе для RPi изначально выключен Mini UART и Bluetooth модуль.

Bugs

Если использовать подключение Mini UART к Bluetooth, hciuart падает с ошибкой:

В случае отключения Bluetooth

/dev/serial0 -> ttyAMA0
/dev/serial1 -> ttyS0

ИНСИС — Интерфейсы UART

Группа интерфейсов на основе асинхронного последовательного протокола UART применяется в некоторых изделиях АО «ИнСис».

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

Практическое значение имеет аппаратура с оформленными сигналами RS-232, RS-485 или RS-422.Интерфейс uart: UART - Последовательный интерфейс передачи данных Такая аппаратура в ряде случаев поставляется АО «ИнСис», если такое оговорено заказчиком. Чаще всего это делается тогда, когда на модуле в качестве контроллера UART присутствует процессор.

В последнее время в разработках АО «ИнСис» используется универсальное решение, когда сигналы интерфейса RS-232, RS-485 и RS-422 выведены на один и тот же разъем, а тип интерфейса выбирается программно или перемычками.

Гальванически изолированные решения для интерфейсов RS в изделиях АО «ИнСис» не применялись, но могут быть введены в новых разработках.

Управление спец. блоками изделий АО «ИнСис»

Некоторые блоки, разработанные АО «ИнСис», имеют управление и настройку через интерфейсы RS-23, RS-485 или RS-422 или по протоколу UART. Их эксплуатация возможна в изделиях совместно с модулями АО «ИнСис» или с изделиями других производителей. Если используется протокол UART с уровнями сигналов КМОП или TTL, следует учитывать ограничения по удаленности узлов и применять общее питание.

Управление другими изделиями

В ряде случаев, имеющиеся на модулях средства внешнего подключения к RS-232, RS-485 или RS-422 могут обеспечить пользователям продукции АО «ИнСис» дополнительные возможности аппаратного расширения. Протокольные и программные аспекты такого подключения решаются самими пользователями по рекомендациям специалистов АО «ИнСис».

Универсальный преобразователь интерфейсов USB/UART НП-КП20


Выберите необходимые аксессуары

Документация и материалы

Выберите модификацию

ОВЕН НП-КП20 предназначен для взаимного преобразования интерфейсов USB и UART.Интерфейс uart: UART - Последовательный интерфейс передачи данных Позволяет подключать к ПК через USB и настраивать устройство НПТ-2: задавать тип датчика, задавать диапазон преобразования и другие настройки при помощи конфигуратора НПТ-2.

Основные отличительные характеристики

  • Взаимное преобразование интерфейсов USB и UART.
  • Создание виртуального COM – порта.
  • Питание от шины USB

Список поддерживаемых приборов

Характеристики

Питание

Постоянное напряжение (на шине USB), В

от 4,75 до 5,25

Потребляемая мощность, Вт, не более

0,5

Интерфейс USB

Стандарт интерфейса

USB2.0

Длина линии связи с внешним устройством, м, не более

1,5

Скорость обмена данными

до 115200 бит/с

Используемые линии передачи данных

D+, D-

Приемо-передатчик UART

Длина линии связи с внешним устройством, м не более

0,3

Количество подключаемых приборов

1

Используемые линии передачи данных

RX, TX

Горячее включение

допускается

Корпус

Габаритные размеры, мм

66×46×22

Степень защиты

IP20

Масса, г, не более

50

Гальваническая изоляция

USB — UART

Отсутствует


Отзывы покупателей

Похожие товары

Недавно просмотренные

Штурмуем STM32 | Интерфейс UART

Мы уже выяснили, что Wi-Fi модуль ESP8266 работает по интерфейсу UART, соответственно, если мы хотим с ним работать, стоит изучить, что это за интерфейс.Интерфейс uart: UART - Последовательный интерфейс передачи данных Конечно, реализовать работу с модулем можно и через обычное GPIO, как мы это делали в случае с 1-Wire, однако в данном случае микроконтроллер содержит специализированный аппаратный модуль, который нам и предстоит использовать.

Если внимательно просмотреть первую страницу документации, то можно увидеть поддержку некоего USART (англ. Universal Asynchronous Receiver-Transmitter, универсальный синхронно-асинхронный приемопередатчик). Сам UART, как несложно догадаться, является подмножеством USART, и вся их разница в том, что один из них синхронный (т. е. используется дополнительная линия с синхроимпульсом), а второй – асинхронный (имеются специальные старт- и стоп-биты).

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

Для работы нужны всего две линии: RXD (она же RX, англ. recieve) и TXD (она же TX, англ. transmission), принимающая и передающая линия соответственно. Подключать их нужно крест-накрест, т. е. RX к TX, TX к RX.

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

Для увеличения помехозащищенности иногда используется бит четности, по которому можно определить, есть ли в принятых данных ошибки (если их немного).Интерфейс uart: UART - Последовательный интерфейс передачи данных В нашем случае бит четности не используется – такой режим называют No parity, и соответственно, Even parity – с битом проверки на четность, Odd parity – с битом проверки на нечетность. Длительность stop-бита может быть разной – 1, 1.5, 2 длительности бита. В нашем случае длина stop-бита равна 1.

Последний параметр соединения – контроль потока. Ранние устройства могли быть очень медленными. Медленными настолько, что просто не успевали обрабатывать данные. По этой причине добавили дополнительную линию (в нашем случае ее нет) для контроля потока данных.

На этом описание работы UART завершено, можно приступить к написанию драйвера для работы с ESP8266.


ПредыдущийСодержаниеСледующий

Универсальный преобразователь интерфейсов USB/UART ОВЕН НП-КП20





















Наименование

Значение

Питание

Постоянное напряжение (на шине USB), В

от 4,75 до 5,25

Потребляемая мощность, Вт, не более

0,5

Интерфейс USB

Стандарт интерфейса

USB2.0

Длина линии связи с внешним устройством, м, не более

1,5

Скорость обмена данными

до 115200 бит/с

Используемые линии передачи данных

D+, D-

Приемо-передатчик UART

Длина линии связи с внешним устройством, м не более

0,3

Количество подключаемых приборов

1

Используемые линии передачи данных

RX, TX

Горячее включение

допускается

Корпус

Габаритные размеры, мм

66×46×22

Степень защиты

IP20

Масса, г, не более

50

Гальваническая изоляция

USB — UART

Отсутствует

Беспроводной модуль HC-12 Si4438 / 4463 Большое расстояние 433M Беспроводной интерфейс UART UART

Поделиться в:

Цена:
7.Интерфейс uart: UART - Последовательный интерфейс передачи данных 99

$11.67

скидка 32%

  • Склад:
  • Отправка: БЕСПЛАТНАЯ ДОСТАВКА COD
    Этот продукт поддерживает наложенный платеж при доставке. Совет: не размещайте заказы на товары не наложенным платежом, иначе Вы не сможете выбрать способ оплаты наложенным платежом.

    Отправка между:
    Apr 19 — Apr 21,
    Расчетное время доставки:
    рабочих дней

    Время обработки заказа может занять несколько дней. После отправки со склада время доставки (или доставки) зависит от способа доставки.

  • Цвет:
  • Количество

    - +

  • Рассрочка: Беспроцентный
    Вы можете наслаждаться максимальной 0 беспроцентной рассрочкой, и может не пользоваться этим предложением при размещении заказов с другими товарами »

Распродажа

Рекомендуемые для вас

Описания HC-12 SI4438 / 4463 Wireless Module

Основные характеристики:
Беспроводной модуль HC-12 Si4438 / 4463 на большом расстоянии 433M беспроводной серийный порт модуль UART интерфейс UART
Скачать данные: https://www.Интерфейс uart: UART - Последовательный интерфейс передачи данных wavesen.com/downloaddis.asp?id=44
PS: HC-11 не может общаться с HC-12, они работают самостоятельно и используются в парах

Спецификация

Общий

В основном совместим с: Ardunio

Вес и размер

Вес продукта: 0,0100 кг
Вес упаковки: 0,0200 кг
Размер продукта (Д х Ш х В): 2.74 x 1,33 x 0,50 см / 1,08 x 0,52 х 0,2 дюйма
Размер упаковки (Д х Ш х В): 4,00 х 3,00 х 2,00 см / 1,57 х 1,18 х 0,79 дюйма

Комплектация

Комплектация: 1 х модуль, 1 х антенна

Предлагаемые продукты

Отзывы клиентов

Получи G баллы! Будь первым, кто напишет обзор!

Вопросы клиентов

  • Все
  • Информация о товаре
  • Состояние запасов
  • Оплата
  • О доставке
  • Другие

Будьте первым, кто задаст вопрос. Хотите G баллы? Просто напишите отзыв!

Хотите купить оптом HC-12 SI4438 / 4463 Wireless Module ? Пожалуйста, отправьте ваш оптовый запрос HC-12 SI4438 / 4463 Wireless Module ниже. Обратите внимание, что мы обычно не предоставляем бесплатную доставку при оптовых заказах HC-12 SI4438 / 4463 Wireless Module, но оптовая цена будет большой сделкой.

Ваши недавно просмотренные товары

UART или последовательные интерфейсы

За последние 50 лет было придумано множество разновидностей последовательных интерфейсов: SPI, I2C, I2S, RS-232, USB, Firewire, — мы поговорим о том, что такое UART в целом.Интерфейс uart: UART - Последовательный интерфейс передачи данных

Но для начала надо разобраться в чем разница между последовательными и параллельными интерфейсами. Слово «последовательный» означает, что данные передаются по одному проводу последовательно, бит за битом. А «параллельный» означает, что между устройствами есть шина из нескольких проводов, по которым части сообщения передаются одновременно.

SyamilAshri at English Wikibooks [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], from Wikimedia Commons

Преимущества параллельной передачи данных в том, что за один шаг передаётся сразу группа битов. К тому внутри процессора используются параллельная передача, поэтому данные сразу, можно сказать, передаются и принимаются в удобной форме. Но есть и недостатки. Главный заключается в том, что биты по проводам могут приходить не одновременно и требуются дополнительные ухищрения для получения неискаженных сообщений. Это сильно ограничивает максимальную скорость передачи. (прим. Тут ничего удивительного. В силу физических причин биты по разных проводам не могут приходить со 100% одновременностью.)

При последовательном способе передачи передаваемые биты должны быть преобразованы в параллельную форму и наоборот (в силу того, что внутри процессора быит передаются параллельно). Это преобразование требует времени. Но зато мы получаем огромное преимущество в виде отсутствия необходимости синхронизировать поступление битов по каждому проводу, что также расширяется скоростные возможности линии передачи.

UART

Universal Asynchronous Receiver/Transmitter или просто UART используется с ранних 1960-х и с тех пор претерпевал постоянные изменения. Несмотря на то, что постоянно производятся попытки уничтожить UART, последовательные протоколы этого типа всё ещё представляют важный способ общения между устройствами встраиваемых систем.

UART представляет собой периферийное устройство в процессоре, с помощью которого осуществляется общение между устройствами по последовательному протоколу на небольшие расстояния.Интерфейс uart: UART - Последовательный интерфейс передачи данных Кстати, UART является основой стандарта RS-232 (тот самый D-образный разъем с 9-ю пинами). В языке «С» вывод printf часто может передаваться напрямую через UART. Вообще порты работающие по UART чаще всего называются просто последовательными портами. В самой простой форме UART представляет собой три провода: земля, передача, приём.

Первая проблема UART в том, что нет возможности определить какое устройство ведущее, а какое ведомое (master/slave), так что непонятно к чему цеплять transmit? Обычно, это определяют за нас. Например, кто-то, кто проектирует печатную плату может назвать этот провод как TX и определить, что устройство должно соединяться так, тогда система будет выглядеть следующим образом:

В итоге получается вариант, когда процессор и принимает, и передаёт данные. Другой способ конфигурации выглядит вот так:

Тогда получается вариант, где процессор всегда передаёт (TX) получателю (RX) и наоборот. Какой вариант правильный? Оказывается это решение принимает за нас производитель чипа и готовой платы/устройства. Я видел множество примеров использования обоих вариантов настолько часто, что без прочтения даташита невозможно было определить как именно следует производить конфигурацию устройств. Если бы я имел контроль над наименованием, то закрепил второй вариант, когда TX соединено с RX. На практике чаще всего TX, подсоединённый к TX, приводит к сгоранию чипов (тоже верно и для RX-RX), так что это хороший пример того, что надо читать документацию перед тем как соединять чипы по UART, так как существует несколько способов соединения.

Когда отправитель и получатель располагаются на одной плате, тогда уровень напряжения сигнала при передаче соответствует уровню напряжения питания процессора. К примеру, «1» будет передаваться с напряжением 3.3В, а «0», грубо говоря, с 0В. Это неочень полезно тогда, когда требуется передать сигнал более, чем на несколько дюймов (1 дюйм = 2.54 см), так как начинают появляться искажения сигнала и увеличивается падение напряжения.Интерфейс uart: UART - Последовательный интерфейс передачи данных В итоге, чем дальше расстояние, тем количество ошибок передачи растет и в итоге становится невозможно передать сообщение, так как оно поступает до невозможности искаженным.

Для того, чтобы избежать подобной ситуации добавляют дополнительные чипы-буферы, усиливающие сигналы. После этого сигналы могут передаваться уже на метры без существенной потери информации. Однако, напряжения при передаче битов довольно странные: для передачи 1 используются -3В..-15В, а для передачи 0 — от +3В до +15В. Это те самые напряжения, которые используются в RS-232. Кстати, буферы в RS-232 также являются ограничителями тока, так что контакты разъёма можно замыкать между собой и он не выгорит.

Начало и конец передачи данных

By Rs232_oscilloscope_trace.jpg: Ktnbn derivative work: Samuel Tardieu (Rs232_oscilloscope_trace.jpg) [CC SA 1.0 (http://creativecommons.org/licenses/sa/1.0/)], via Wikimedia Common

UART — это последовательный интерфейс (он посылает и принимает биты последовательно: бит за битом), но при этом он не передаёт информацию для синхронизации. Отправитель и получатель не синхронизированы. Таким образом взаимодействие отправителя и получателя является асинхронным. Вместо информации о синхронизации в UART используется «стартовый бит» для сигнализации о том, что мы собираемся передать сообщение. После передачи стартового бита передаётся сообщение, а затем передаётся «стоп-бит», указывающий о завершении процесса передачи сообщения. Суммарно получается 10 бит: 1 старт-бит, 8 бит данных, 1 стоп-бит.

Биты передаются с заранее установленной скоростью передачи, которая измеряется в битах в секунду или, иначе, в бодах. Так что 9600 бод эквивалентно 9600 бит/сек. А так как у нас передаётся 10 бит за одно сообщение (старт-бит, данные, стоп-бит), это это значит, что мы можем передать 960 сообщений в секунду.

Так как значение скорости передачи не передаётся вместе с сообщением, то и приёмник и получатель должны заранее установить одинаковое значение скорости передачи/приёма.Интерфейс uart: UART - Последовательный интерфейс передачи данных Конечно, скорости на обеих системах не будут совпадать со 100% точностью (опять же в силу чисто технических причин, так как таймеры на разных системах имеют погрешности), но UART допускает до 5% рассинхронизации таймеров. В этих пределах мы будем получать и принимать верные сообщения.

USARTS

USART — это модификация UART. Расшифровывается как Universal Synchronous/Asynchronous Receiver/Transmitter. При этом добавляется дополнительных три провода: CLOCK, CLEAR TO SEND (CTS), READY TO SEND (RTS).

С помощью такой добавки устраняется необходимость иметь на обоих устройствах точные часы (с рассинхроном не более 5%), а также необходимость и приемнику, и передатчику устанавливать одну и ту же скорость передачи данных. В USART сигнал от CLOCK используется для синхронизации двух устройств. Передающая сторона выдаёт прямоугольные импульсы с частотой, соответствующей скорости передачи данных. А принимающая использует эти импульсы, чтобы правильно принять данные.

Clock-сигнал был довольно обычен несколько десятков лет назад, когда связь осуществлялась с помощью модемов. Этого сигнала, кстати, не было в 9-пиновом разъёме RS-232, которые появились на IBM PC в 1984г.

USART также поддерживает ещё два контрольных сигнала: CTS, RTS. Они используются для контроля передачи данных. Например, у получателя может заполниться буфер, в который поступали данные, тогда он выставляет RTS, сообщая, что надо приостановить передачу и подождать пока появится место в буфере.

RTS и CTS соединяются крест-накрест: RTS-CTS, CTS-RTS (показано на схеме выше). Таким образом, производится как бы «обмен рукопожатиями»: когда включен RTS получателя, выключается CTS отправителя и наоборот.

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

Кстати, для обратной совместимости USART может быть использован как простой UART с использованием только трёх проводников: RX, TX, Земля.Интерфейс uart: UART - Последовательный интерфейс передачи данных

Где используются UART и USART?

Оба протокола используются в GPS модулях, flash-загрузчик в процессорах ATMEL, старой компьютерной периферии, а также в разнообразном промышленном оборудовании. В общем он все еще очень широко использхуется для обмена информацией между устройствами.

GPS модули поддерживают стандарт NMEA 0183, в котором определена поддержка модулями UART. Конечно, на подходе новый стандарт NMEA 2000, в котором будет использоваться протокол CAN, но пока ещё превалирует использование UART.

Несмотря на то, что ещё можно найти компьютеры с портами RS-232, эти порты уже не найти на ноутбуках и других малогабаритных устройствах. Для обмена информацией с промышленным оборудованием и, к примеру, процессорами ATMEL и устройствами на их основе, как например популярная ARDUINO, часто используются чипы для преобразования последовательного протокола в USB. Благодаря этому UART еще будет жив какое-то время.

Это перевод. Автор оригинальной статьи — Andrei Chichak. Кстати, у них очень интересный блог. Рекомендую.

Последовательная связь

— learn.sparkfun.com

Добавлено в избранное

Любимый

88

УАПП

Последняя часть этой серийной головоломки — найти что-то для создания последовательных пакетов и управления этими физическими линиями оборудования. Введите UART.

Универсальный асинхронный приемник / передатчик (UART) — это блок схемы, отвечающий за реализацию последовательной связи. По сути, UART действует как посредник между параллельным и последовательным интерфейсами.На одном конце UART находится шина из восьми или около того линий данных (плюс несколько управляющих контактов), на другом — два последовательных провода — RX и TX.

Супер-упрощенный интерфейс UART. Параллельный на одном конце, последовательный на другом.

UART существуют как отдельные ИС, но чаще встречаются внутри микроконтроллеров.Интерфейс uart: UART - Последовательный интерфейс передачи данных Вам нужно будет проверить техническое описание вашего микроконтроллера, чтобы узнать, есть ли у него какие-либо UART. У кого-то его нет, у кого-то есть, у кого-то много. Например, Arduino Uno, основанный на «старом верном» ATmega328, имеет только один UART, а Arduino Mega, построенный на ATmega2560, имеет целых четыре UART.

Как следует из букв R и T в аббревиатуре, UART отвечают как за отправку, так и за получение последовательных данных. На стороне передачи UART должен создать пакет данных — добавив биты синхронизации и четности — и отправить этот пакет по линии передачи с точным временем (в соответствии с установленной скоростью передачи). На стороне приема UART должен выполнить выборку линии RX со скоростью в соответствии с ожидаемой скоростью передачи, выбрать биты синхронизации и выдать данные.

Блок-схема внутреннего UART (любезно предоставлена ​​таблицей данных Exar ST16C550)

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

Программные UART

Если микроконтроллер не имеет UART (или его недостаточно), последовательный интерфейс может быть битовым — напрямую управляться процессором. Это подход, который используют библиотеки Arduino, такие как SoftwareSerial. Bit-banging требует много ресурсов процессора и обычно не так точен, как UART, но в крайнем случае работает!


← Предыдущая страница
Электромонтажные и аппаратные средства

Протокол связи

UART — как это работает?

UART (универсальный приемник асинхронного передатчика), это наиболее распространенный протокол, используемый для полнодуплексной последовательной связи.Это один чип LSI (крупномасштабная интеграция), предназначенный для асинхронной связи.Интерфейс uart: UART - Последовательный интерфейс передачи данных Это устройство отправляет и получает данные из одной системы в другую.

В этом руководстве вы изучите основы связи UART и работу UART.

Что такое UART?

«UART» — универсальный асинхронный приемопередатчик. Это периферийное оборудование, которое находится внутри микроконтроллера. Функция UART заключается в преобразовании входящих и исходящих данных в последовательный двоичный поток.8-битные последовательные данные, полученные от периферийного устройства, преобразуются в параллельную форму с использованием последовательного преобразования в параллельное, а параллельные данные, полученные от ЦП, преобразуются с помощью преобразования из последовательного в параллельный. Эти данные представлены в модулируемой форме и передаются с определенной скоростью передачи.

Почему используется UART?

Протоколы, такие как SPI (последовательный периферийный интерфейс) и USB (универсальная последовательная шина), используются для быстрой связи. Когда высокоскоростная передача данных не требуется, используется UART.Это дешевое устройство связи с одним передатчиком / приемником. Требуется один провод для передачи данных и другой провод для приема.

Интерфейс UART

Он может взаимодействовать с ПК (персональным компьютером) с помощью преобразователя RS232-TTL или преобразователя USB-TTL. Общее между RS232 и UART заключается в том, что им обоим не нужны часы для передачи и приема данных. Кадр Uart состоит из 1 стартового бита, 1 или 2 стоповых битов и бита четности для последовательной передачи данных.

Блок-схема

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

Блок-схема UART

Генератор скорости передачи данных генерирует скорость, с которой передатчик и приемник должны отправлять / получать данные.Интерфейс uart: UART - Последовательный интерфейс передачи данных Регистр удержания передачи содержит передаваемый байт данных. Регистр сдвига передачи и регистр сдвига приемника сдвигают биты влево или вправо, пока байт данных не будет отправлен / получен.

В дополнение к этому, предусмотрена логика управления чтением или записью, которая сообщает, когда читать / писать. Генератор скорости передачи данных генерирует скорости в диапазоне от 110 бит / с (бит в секунду) до 230400. В большинстве случаев микроконтроллеры предлагают более высокие скорости передачи, такие как 115200 и 57600, для более быстрой передачи данных.Такие устройства, как GPS и GSM, используют более низкую скорость передачи данных в 4800 и 9600.

Как работает UART?

Чтобы знать, как работает UART, вам необходимо понимать основные функции последовательной связи. Короче говоря, передатчик и приемник используют стартовый бит, стоповый бит и параметры синхронизации для синхронизации друг с другом. Исходные данные находятся в параллельной форме. Например, у нас есть 4-битные данные, чтобы преобразовать их в последовательную форму, нам нужен преобразователь из параллельного в последовательный. Обычно для проектирования преобразователей используются D-триггеры или защелки.

Работа D-триггера

Базовый D-триггер

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

Примечание. Здесь

«D» представляет входные данные.

«CLK» указывает тактовые импульсы.

«Q» обозначает выходные данные.Теперь давайте спроектируем преобразователь из последовательного в параллельный и из последовательного в параллельный.

Преобразование из параллельного в последовательный

Преобразование из параллельного в последовательный

Каскадное соединение — параллельно в последовательный

Шаг № 1:

Возьмите 4 триггера.Интерфейс uart: UART - Последовательный интерфейс передачи данных Количество триггеров эквивалентно количеству передаваемых битов. Точно так же поставьте мультиплексоры перед каждым триггером, но исключая первый. Установлен мультиплексор для объединения данных и преобразования их в последовательные биты.Он имеет два входа: один параллельный бит данных, а другой — от предыдущего триггера.

Шаг № 2:

Теперь загрузите данные за один раз в D-триггеры. Он будет извлекать параллельные данные и перемещать последний бит последнего триггера (четыре), затем третий бит, второй бит и, наконец, первый бит. Теперь для преобразования параллельных данных в последовательную форму используется преобразователь из последовательного в параллельный.

Последовательное преобразование в параллельное

Последовательное преобразование в параллельное

Каскадное соединение — последовательное в параллельное преобразование

Шаг № 1:

Возьмите 4 триггера.Количество триггеров совпадает с количеством передаваемых битов.

Шаг № 2:

Сначала отключите параллельную шину. Не включайте, пока не будут загружены все биты. Сохраните данные на входе первого триггера. Теперь сделайте тактовый сигнал высоким, это сдвинет младший бит на вход второго триггера и выход первого. Точно так же сдвиньте все биты один за другим, сделав тактовый импульс высоким. Преобразователь находится в состоянии удержания до тех пор, пока все биты не будут переданы на выход.

Шаг № 3:

Теперь каждый триггер содержит один бит последовательных данных. Пока все биты передаются на выход триггера, активируйте шину. Это заставит конвертер отправлять все биты за раз.

Формат протокола

UART начинает обмен данными со стартовым битом «0». Стартовый бит инициирует передачу последовательных данных, а стоповый бит завершает транзакцию данных.

Формат протокола

Он также имеет бит четности (четный или нечетный).Бит четности представлен как «0» (четное количество единиц), а бит нечетной четности представлен как «1» (нечетное количество единиц).Интерфейс uart: UART - Последовательный интерфейс передачи данных

Передача

Передача данных осуществляется по одной линии передачи (TxD). Здесь «0» рассматривается как пробел, а «1» — как состояние отметки.

Кадр передачи

Передатчик отправляет по одному биту за раз. После отправки одного бита отправляется следующий бит. Таким образом, все биты данных отправляются на приемник с заранее определенной скоростью передачи.При передаче каждого бита будет определенная задержка. Например, чтобы отправить один байт данных со скоростью 9600 бод, каждый бит отправляется с задержкой 108 мкс. Данные добавляются с битом четности. Итак, для отправки 7 бит данных требуется 10 бит данных.

Примечание. При передаче всегда сначала передается младший бит (младший значащий бит).

Прием

Во время приема линия RxD (Получатель) используется для приема данных.

Кадр приема

Пример взаимодействия UART

Этот пример демонстрирует взаимодействие ESP8266 UART с MAX232.Но, прежде чем я перейду к деталям интерфейса, позвольте мне рассказать о контактах драйвера Max232.

Распиновка MAX232

MAX232 IC питается от источника питания 5 В, который включает в себя емкостный генератор напряжения для управления напряжением 232 уровня. Он поставляется с двумя передатчиками, также называемыми драйвером (TIN, TOUT) и приемниками (RIN и ROUT).

Здесь я использовал ESP8266 (32-битный микроконтроллер) со встроенным UART. Связь может осуществляться с ESP8266 с использованием AT-команд через преобразователь уровня RS232 в TTL (MAX232).На рисунке ниже показано подключение ESP8266 к ПК (персональному компьютеру).

Интерфейс ESP8266 с UART

При запросе действительных AT-команд через ПК чип Wi-Fi ответит подтверждением. Я не хочу углубляться в ESP8266, и это будет объяснено в следующих руководствах.

Вот шаги для реализации последовательной связи с ПК.

  1. Подключите передатчик (TX) ESP8266 к приемнику (TX) преобразователя уровня RS232 в TTL (MAX232) и приемника ПК.Интерфейс uart: UART - Последовательный интерфейс передачи данных
  2. Подключите приемник (RX) ESP8266 к TX ПК и RX преобразователя TTL.

ESP8266 Команды

AT-команда (отправлено с ПК) ESP8266 Ответ (получен ПК)
AT OK

>

AT + CIPMUX = 1 OK
AT + CIPSERVER = 1,23 OK

Снимок экрана ниже показывает ответ модуля ESP8266.

Команды ESP8266 — программа Docklight

UART против USART

USART — это базовая форма UART. Технически это не одно и то же. Но определение для них обоих одно и то же. Это периферийные устройства микроконтроллера, которые преобразуют параллельные данные в последовательные биты и наоборот.

Основное различие между UART и USART заключается в том, что UART поддерживает только асинхронную связь, тогда как USART поддерживает как синхронную, так и асинхронную связь. Для облегчения понимания, вот сравнение между USART и UART.

UART USART
Часы генерируются внутри микроконтроллером. Отправляющее устройство сгенерирует часы.
Скорость передачи данных низкая. Скорость передачи данных выше из-за внешних часов.
Автономный протокол Поддерживает несколько протоколов, таких как LIN, RS-485, IrDA, смарт-карта и т. Д.
Перед передачей необходимо знать скорость передачи. Не нужно заранее знать скорость передачи.
Подходит для низкоскоростной связи Подходит для высокоскоростной связи.
Сниженное энергопотребление. Обеспечивает последовательную связь при высоком энергопотреблении

RS232 и UART

Логические уровни представляют собой уровни рабочего напряжения, которые устройство может выдержать для работы в безопасной зоне.Интерфейс uart: UART - Последовательный интерфейс передачи данных Вот уровни напряжения для RS232 и TTL.

Логика RS232:

Уровни напряжения RS232

Уровень логики Диапазон напряжения
Логический высокий или ВЫКЛ. + 5 В до +15 В
Вход высокого логического уровня или ВЫКЛ От -3 В до -15 В
Вход низкого логического уровня или ВКЛ + 3 В до +15 В

В большинстве случаев уровни RS232 находятся в диапазоне от — 12В до + 12В.Например, значение ASCII для символа «A» в RS232 составляет 65 и 41 в шестнадцатеричном формате. Таким образом, в 8-битном двоичном формате это 0100 0001. Здесь показано представление логических уровней RS232 для ASCII «A».

Сигнал RS232 для ASCII Letter A

Логика TTL / CMOS:

UART работает по логике TTL.

Сигнал TTL CMOS для ASCI Letter A

  • Изначально последовательная линия находится в состоянии ожидания, обычно называемом состоянием метки (логика 1). Теперь передача данных начинается со стартового бита (логический 0).
  • Далее, восемь битов данных передаются по последовательной линии один за другим, причем сначала младший бит (младший значащий бит).
  • После завершения всей передачи встречается стоповый бит (логическая 1).

Преимущества

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

Недостатки

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

Приложения

  1. Последовательный порт отладки использует драйвер UART для печати данных, поступающих из внешнего мира.Интерфейс uart: UART - Последовательный интерфейс передачи данных
  2. Мы можем использовать его для отправки и получения команд на встроенные устройства и от них.
  3. Связь в GPS, модеме GSM / GPRS, микросхемах Wi-Fi и т. Д. Работает с UART.
  4. Используется в доступе к мэйнфрейму для подключения разных компьютеров.

Основы связи UART

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

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

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

Введение в связь UART

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

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

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

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

Как работает UART

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

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

Стартовый бит

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

Фрейм данных

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

Четность

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

Стоп-биты

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

Шаги передачи UART

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

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

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

.Интерфейс uart: UART - Последовательный интерфейс передачи данных

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

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

Преимущества и недостатки UART

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

Преимущества

  • Использует только два провода
  • Тактовый сигнал не требуется
  • Имеет бит четности для проверки ошибок
  • Структура пакета данных может быть изменена, если для него настроены обе стороны
  • Хорошо задокументированный и широко используемый метод

Недостатки

  • Размер кадра данных ограничен максимум 9 битами
  • Не поддерживает несколько ведомых или несколько главных систем
  • Скорости передачи каждого UART должны быть в пределах 10% друг от друга

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

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

Назад к основам: универсальный асинхронный приемник / передатчик (UART)

В этом техническом обзоре объясняются некоторые низкоуровневые детали широко распространенного — я бы даже сказал, повсеместного — интерфейса связи UART.

Связанная информация

Среди мировых инженеров-электриков и энтузиастов электроники, вероятно, мало кто не взаимодействовал бы каким-либо образом с универсальным интерфейсом асинхронного приемника / передатчика (UART).Интерфейс uart: UART - Последовательный интерфейс передачи данных В мире, где технологии могут устареть очень быстро, мы должны отдать должное тому, кто создал эту простую схему цифровой связи, которая существует уже несколько десятилетий и до сих пор пользуется огромной популярностью.

Примечание. Термин «UART» довольно расплывчатый.Различные аспекты интерфейса — количество битов данных, количество стоповых битов, логические уровни, четность — могут быть адаптированы к потребностям системы. В этой статье я сосредоточусь на реализациях UART, которые обычно встречаются в современных приложениях микроконтроллеров.

Возможности и характеристики

Как вы, вероятно, знаете, базовая система UART обеспечивает надежную, умеренную, полнодуплексную связь только с тремя сигналами: Tx (передаваемые последовательные данные), Rx (полученные последовательные данные) и заземление.В отличие от других протоколов, таких как SPI и I2C, тактовый сигнал не требуется, потому что пользователь предоставляет оборудованию UART необходимую информацию о синхронизации.

Фактически, есть тактовый сигнал, но он не передается от одного устройства связи к другому; скорее, и приемник, и передатчик имеют внутренние тактовые сигналы, которые управляют тем, как изменяющиеся логические уровни генерируются (на стороне Tx) и интерпретируются (на стороне Rx). Неудивительно, что связь по UART не работает, если передатчик и приемник настроены на разные частоты передачи данных.Кроме того, внутренние тактовые сигналы должны быть 1) достаточно точными относительно ожидаемой частоты и 2) достаточно стабильными во времени и температуре.

Ключевые термины

Давайте рассмотрим некоторую терминологию и в процессе мы рассмотрим больше характеристик UART:

  • Стартовый бит: первый бит однобайтовой передачи UART. Это указывает на то, что линия данных выходит из состояния ожидания. Состояние ожидания обычно имеет высокий логический уровень, поэтому стартовый бит имеет низкий логический уровень.Интерфейс uart: UART - Последовательный интерфейс передачи данных
    • Стартовый бит — это служебный бит; это означает, что он облегчает связь между приемником и передатчиком, но не передает значимые данные.
  • Стоп-бит: последний бит однобайтовой передачи UART. Его логический уровень такой же, как и в состоянии ожидания сигнала, то есть высокий логический уровень. Это еще один дополнительный бит.

  • Скорость передачи: приблизительная скорость (в битах в секунду или бит / с), с которой могут передаваться данные.Более точное определение — это частота (в битах / с), соответствующая времени (в секундах), необходимому для передачи одного бита цифровых данных. Например, в системе со скоростью 9600 бод для одного бита требуется 1 / (9600 бит / с) ≈ 104,2 мкс. Система не может фактически передавать 9600 бит значимых данных в секунду, потому что требуется дополнительное время для служебных битов и, возможно, для задержек между однобайтовыми передачами.

  • Бит четности: бит обнаружения ошибок, добавленный в конец байта.Существует два типа: «нечетная четность» означает, что бит четности будет иметь высокий логический уровень, если байт данных содержит четное число старших логических битов, а «четная четность» означает, что бит четности будет иметь высокий логический уровень, если байт данных содержит нечетное количество старших логических битов. Это может показаться нелогичным, но идея состоит в том, что бит четности гарантирует, что количество высоких логических битов всегда будет четным (для четной четности) или нечетным (для нечетной четности). Таким образом, если вы используете четность и байт имеет три старших логических бита, бит четности будет иметь высокий логический уровень, так что общее количество старших логических битов в передаваемых данных (т.е., сам байт плюс бит четности) четный.
    • Принудительно заставляя количество старших логических битов всегда быть четным (для четной четности) или нечетным (для нечетной четности), бит четности обеспечивает грубый механизм обнаружения ошибок — если бит меняется где-то в процессе передачи, количество старших логических битов не соответствует выбранному режиму четности.Интерфейс uart: UART - Последовательный интерфейс передачи данных Конечно, стратегия не работает, если два бита перевернуты, поэтому бит четности далеко не пуленепробиваемый. Если у вас есть серьезная потребность в безошибочной коммуникации, я рекомендую CRC.

Синхронизация и выборка

Стандартные цифровые данные бессмысленны без какого-либо механизма синхронизации. На следующей диаграмме показано, почему:

Типичный сигнал данных — это просто напряжение, которое переходит между низким логическим уровнем и высоким логическим уровнем. Приемник может правильно преобразовать эти логические состояния в цифровые данные, только если он знает, когда производить выборку сигнала. Это может быть легко выполнено с использованием отдельного тактового сигнала — например, передатчик обновляет сигнал данных по каждому переднему фронту тактового сигнала, а затем приемник производит выборку данных по каждому заднему фронту.

Однако, как следует из названия «универсальный асинхронный приемник / передатчик», интерфейс UART не использует тактовый сигнал для синхронизации устройств Tx и Rx. Так как же приемник узнает, когда следует брать данные от передатчика?

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

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

Чтобы гарантировать, что активный фронт синхросигнала приемника может иметь место около середины битового периода, частота синхросигнала скорости передачи, отправляемого в модуль приемника, намного выше (в 8, 16 или даже 32 раза), чем фактическая скорость передачи.Интерфейс uart: UART - Последовательный интерфейс передачи данных

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

  1. Процесс приема инициируется задним фронтом стартового бита.
  2. Приемник ожидает 8 тактов, чтобы установить точку выборки, которая находится примерно в середине периода битов.
  3. Затем приемник ожидает 16 тактовых циклов, что приближает его к середине первого периода битов данных.
  4. Первый бит данных выбирается и сохраняется в регистре приема, а затем модуль ожидает еще 16 тактовых циклов перед выборкой второго бита данных.
  5. Этот процесс повторяется до тех пор, пока все биты данных не будут выбраны и сохранены, а затем нарастающий фронт стопового бита вернет интерфейс UART в состояние ожидания.

Заключение

В этой статье были рассмотрены некоторые подробности о протоколе связи, который вы, возможно, успешно использовали много раз. Вполне возможно реализовать интерфейс UART, зная очень мало о фактическом поведении сигналов и оборудования, но некоторые дополнительные знания — помимо общего назидания, которое дает такое знание — могут быть полезны, когда ваша связь UART не работает. как и ожидалось.

USB-портов UART — MaxLinear

4-канальный полноскоростной USB UART

USB 2.0

4

на

12

128

384

2.Интерфейс uart: UART - Последовательный интерфейс передачи данных 97 к 3.63

5,5

VCC

от -40 до 85

TQFP-48

2-канальный полноскоростной USB UART

USB 2.0

2

на

12

128

384

2.97 к 3.63

5,5

VCC

от -40 до 85

QFN-32

1-канальный полноскоростной USB UART

USB 2.0

1

на

12

128

384

2.Интерфейс uart: UART - Последовательный интерфейс передачи данных 97 к 3.63

5,5

VCC

от -40 до 85

QFN-16

Улучшенный 4-канальный полноскоростной USB UART

USB 2.0

4

12

12

512

512

3.От 0 до 3,6, от 4,4 до 5,25

5,5

1,8–3,6

от -40 до 85

LQFP-64

Улучшенный 2-канальный полноскоростной USB UART

USB 2.0

2

12

12

512

512

3.Интерфейс uart: UART - Последовательный интерфейс передачи данных От 0 до 3,6, от 4,4 до 5,25

5,5

1,8–3,6

от -40 до 85

QFN-40

Улучшенный 1-канальный полноскоростной USB HID для моста UART

USB 2.0

1

12

12

512

512

3.От 0 до 3,6, от 4,4 до 5,25

5,5

1,8–3,6

от -40 до 85

QFN-24, QFN-28

Улучшенный 1-канальный полноскоростной USB UART

USB 2.0

1

12

12

512

512

3.Интерфейс uart: UART - Последовательный интерфейс передачи данных От 0 до 3,6, от 4,4 до 5,25

5,5

3,6

от -40 до 85

QFN-28

Улучшенный 1-канальный полноскоростной USB UART

USB 2.0

1

12

на

128

384

4.4 по 5,25

5,5

1,6–3,6

от -40 до 85

QFN-16

устройств IoT — не столь скрытый риск интерфейса UART

Открытие интерфейса UART

UART, интерфейс последовательной связи, который поддерживает широкий спектр последовательных протоколов, таких как RS-32, RS-422, RS-485, не является протоколом связи, подобным SPI или I2C; скорее это периферия микроконтроллера.Поскольку UART является физическим периферийным устройством, вполне вероятно, что если мы откроем IoT или встроенное устройство, мы найдем интерфейс UART где-нибудь в физической цепи.

RS-232 — один из широко поддерживаемых последовательных протоколов во встроенных устройствах и устройствах Интернета вещей, который используется для передачи данных между двумя устройствами.Интерфейс uart: UART - Последовательный интерфейс передачи данных RS-232 поддерживает полнодуплексную связь, что, проще говоря, означает, что UART IC может отправлять и получать данные одновременно. Только два устройства могут быть подключены друг к другу при использовании протокола RS-232.

Связь UART

Устройства

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

Подключение цепи UART

Минимальное количество соединений, необходимых для двунаправленной связи, — три.

  1. Передача (TX)
  2. Приемник (RX)
  3. Земля (GND)

Мы можем подключить TX (отправитель) к RX (получателю) и RX (отправитель) к TX (получателю) и отправлять / получать данные между двумя устройствами UART.

Интернет вещей и встроенные устройства

Устройства

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

Проблемы безопасности

Поскольку интерфейс UART можно использовать в качестве интерфейса отладки на устройстве или для просмотра журналов последовательного порта, злоумышленник может получить доступ к устройству через оболочку или даже оболочку root. Доступ с правами root через UART не является чем-то необычным, и те же шаги можно выполнить, чтобы получить root-доступ на потенциально большом количестве IoT и встроенных устройств, доступных сегодня на рынке.

Как только злоумышленник получает доступ к корневой оболочке, он может загрузить / реконструировать микропрограммное обеспечение, получить конфиденциальные сертификаты или сохраненные ключи API, идентифицировать протоколы связи и потенциально целевые устройства других пользователей или компаний.Интерфейс uart: UART - Последовательный интерфейс передачи данных

Атака в действии — КАК

Мы идентифицируем контакты UART во встроенном устройстве домашнего маршрутизатора, используя следующие компоненты:

  • Маршрутизатор TP-Link TL-WR841N
  • Цифровой / аналоговый мультиметр
  • Знак аттестата
  • Провода перемычки
  • Инструменты для фрезерования

Шаг 1: Получение доступа к внутренним устройствам

Откройте корпус TP-Link и получите доступ к внутренней цепи. Используйте инструменты, чтобы открыть маршрутизатор.

Шаг 2. Разбираемся с внутренними устройствами маршрутизатора

Определите отдельные микроконтроллеры и микросхемы на плате.

Воспользуйтесь поиском Google, чтобы получить более подробную информацию о внутреннем устройстве вашего маршрутизатора. Хорошее место для начала поиска — https://fccid.io/, где можно найти полезную информацию, например:

  • Диапазон частот
  • Выход
  • Руководство пользователя
  • Внутренние фото
  • Внешние фотографии

Перейдите к внутренним фотографиям и просмотрите внутренние фотографии TP Link: https: // fccid.io / TE7WR841NXV9 / Внутренние фотографии / TL-WR841N-Int-Photo-2192209

Шаг 3: Контакты UART

Если вам повезет, названия контактов UART будут напечатаны на плате. Так обстоит дело с маршрутизатором TP-Link, с которым я исследовал.

Если контакты не помечены, вы можете использовать такие инструменты, как JTagulator, для идентификации контактов UART. Интерфейсы UART обычно имеют 3 или 4 контакта

  • TX
  • RX
  • Земля
  • Vcc

Шаг 4: Определите контакты с помощью мультиметра

Если мы не можем идентифицировать имена контактов UART, напечатанные на устройстве, мы также можем вручную идентифицировать контакты с помощью мультиметра.Контакты UART обычно группируются по 3 или 4. Найдите набор контактов, которые удовлетворяют этому условию, и включите мультиметр.Интерфейс uart: UART - Последовательный интерфейс передачи данных

  • Vcc: Vcc будет иметь постоянное высокое напряжение в течение всего процесса (обычно 3,3 В или 5 В). Когда мультиметр подключен к Vcc, напряжение остается постоянным на уровне 3,3 или 5 В.
  • Передатчик (Tx): во время загрузки устройства TX передает большие объемы данных на подключенные устройства. Когда к контакту TX подключен мультиметр, при загрузке устройства будут большие колебания напряжения.
  • Приемник (Rx): поскольку мы не передаем никаких данных на интерфейс UART, когда мультиметр подключен к выводу RX, общее напряжение остается постоянным.

Шаг 5: ПОДКЛЮЧЕНИЕ К ЗНАЧЕНИЮ ATTIFY

Другое устройство UART необходимо для приема и анализа данных, полученных от маршрутизатора. В этом примере я использовал Attify-Badge 2.0. Подключите TP-Link и значок Attify, используя контакты ниже:.

TP-Link (UART)

Значок аттестата

TX

D0

RX

D1

GND

ЗЕМЛЯ

VCC

——-

Шаг 6: Определение скорости передачи

Быстрый поиск в Google показывает, что скорость передачи TP-Link составляет 115200 бод.Или вы можете использовать https://github.com/devttys0/baudrate для определения скорости передачи.

Шаг 7: Подключение к компьютеру

Подключите бейдж Attify к компьютеру через USB. С помощью утилиты screen подключитесь к USB-терминалу и прослушайте определенную скорость передачи.

Теперь, когда мы определили контакты, подключенные к значку Attify, и прослушиваем наш компьютер для получения данных, пора включить устройство.

Шаг 8: Получение корневой оболочки

Доказательство в пудинге: обратите внимание на мой доступ root-shell к роутеру TP-Link.Интерфейс uart: UART - Последовательный интерфейс передачи данных

Универсальный асинхронный приемник / передатчик

UART — универсальный асинхронный приемник / передатчик

Ассортимент серийных мостов

Diodes варьируется от экономичных I2C / SPI / 8-битных UART (универсальных асинхронных приемников / передатчиков) до высокопроизводительных многопортовых PCI / PCIe UART.I2C / SPI UART предлагаются в конфигурациях с 1 и 2 портами с несколькими расширенными функциями. 8-битные / PCI / PCIe UART предлагаются в конфигурациях с 2, 4 и 8 портами.

Эти последовательные мосты могут использоваться в широком диапазоне приложений, таких как серверы удаленного доступа, автоматизация, управление процессами, контрольно-измерительные приборы, кассовые терминалы, банкоматы и многопортовые карты RS232 / RS422 / RS485.

Ссылки по теме:

{{/если}}

Мин.

{{еще}}

Н / Д

{{/если}}

{{#each facet_items}}
{{> ‘шаблон-диапазон-слайдер’}}
{{/каждый}}

{{/если}}
{{#if facets [i].FieldType! = ‘Диапазон’ &&! Facet_items.isBoolean && (facet_items.length || unified_facet_results || facets [i] .Title == ‘Part Number’)}}

{{/если}}
{{/каждый }}
{{#if have_boolean_facet ()}}

{{{Facets [i] .DisplayTitle? facets [i] .DisplayTitle: facets [i] .Title}}}
{{#if facet_items [0] .chosen}}
{{#each facet_items: j}}
: {{значение}}
{{/каждый}}
{{/если}}

{{#if facets [i].FieldType == ‘SearchFilter’}}

{{еще}}
{{#each facet_items: j}}
{{> facet_item}}
{{/каждый}}
{{/если}}

{{#each facet_lists}}
{{#if this.Интерфейс uart: UART - Последовательный интерфейс передачи данных