Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. Преобразует передаваемые данные в последовательный вид так, чтобы было возможно передать их по одной физической цифровой линии другому аналогичному устройству. Метод преобразования хорошо стандартизован и широко применяется в компьютерной технике (особенно во встраиваемых устройствах и системах на кристалле (SoC)).
Представляет собой логическую схему, с одной стороны подключённую к шине вычислительного устройства, а с другой имеющую два или более выводов для внешнего соединения.
UART может представлять собой отдельную микросхему (например, Intel I8251, I8250) или являться частью большой интегральной схемы (например, микроконтроллера). Используется для передачи данных через последовательный порт компьютера.
Метод передачи и приёма
Передача данных в UART осуществляется по одному биту за равные промежутки времени. Этот временной промежуток определяется заданной скоростью UART и для конкретного соединения указывается в бодах (что в данном случае соответствует битам в секунду). Существует общепринятый ряд стандартных скоростей: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400; 460800; 921600 бод. Скорость (, бод) и длительность бита (, секунд) связаны следующим соотношением . Скорость в бодах иногда называют сленговым словом бодрейт (англ. baud rate) или битрейт (англ. bit rate).
Помимо информационных битов, UART автоматически вставляет в поток синхронизирующие метки, так называемые стартовый (англ. start bit) и стоповый (англ. stop bit) биты. При приёме эти лишние биты удаляются из потока. Обычно стартовый и стоповый биты обрамляют один байт информации (8 битов), при этом младший информационный бит передаётся первым, сразу после стартового. Встречаются реализации UART, передающие по 5, 6, 7 или 9 информационных битов. Обрамлённые стартом и стоповым — биты являются минимальной единицей пересылаемого сообщения. Некоторые реализации UART используют два стоповых бита для уменьшения вероятности рассинхронизации приёмника и передатчика при плотном трафике. Приёмник игнорирует второй стоповый бит, воспринимая его как короткую паузу на линии.
Принято, что пассивным состоянием (в отсутствие потока данных) входа и выхода UART является логическая единица. Стартовый бит всегда является логическим нулём, поэтому приёмник UART ждёт перепада из 1 в 0 (англ. falling edge) и отсчитывает от него временной промежуток в половину длительности бита (середина передачи стартового бита). Если в этот момент на входе всё ещё 0, то запускается процесс приёма минимальной посылки. Для этого приёмник отсчитывает 9 битовых длительностей подряд (для 8-битных данных), и в каждый момент фиксирует состояние входа. Первые 8 являются принятыми данными, а последнее — проверочным стоповым битом, чьё значение всегда равно 1. Если реально принятое значение иное, то UART фиксирует ошибку.
Для формирования временных интервалов передающий и приёмный UART имеют источник точного времени (тактирования). Точность этого источника должна быть такой, чтобы сумма погрешностей (приёмника и передатчика) установки временного интервала от начала стартового импульса до середины стопового импульса не превышала половины (а лучше — четверти) битового интервала. Для 8-битной посылки это значение . На практике, с учётом возможных искажений сигнала в линии, общая ошибка тактирования должна быть не более 3 %. Поскольку в худшем случае ошибки тактов приёмника и передатчика могут суммироваться, то рекомендуемый допуск на точность тактирования UART — не более 1,5 %.
Поскольку синхронизирующие биты занимают часть битового потока, то результирующая пропускная способность UART меньше скорости соединения. Например, для 8-битных посылок формата 8-N-1 синхронизирующие биты занимают 20 % потока, что при физической скорости линии 115 200 бод означает полезную скорость передачи данных 92 160 бит/с или 11 520 байт/с.
Контроль чётности
Информационные биты | количество информационных единичных бит | состояние бита контроля чётности при режиме: | |
---|---|---|---|
even | odd | ||
00000000 | 0 | 0 | 1 |
10100010 | 3 | 1 | 0 |
11010010 | 4 | 0 | 1 |
11111110 | 7 | 1 | 0 |
Многие реализации UART имеют возможность автоматически проверять целостность данных методом контроля битовой чётности. Включение или выключение этой функции производится записью соответствующего слова инициализации во внутренний регистр управления UART. Когда эта функция включена, минимальная посылка информационных битов дополняется конечным битом контроля чётности. При передаче посылки логическое устройство подсчитывает число единичных битов в информационной части посылки и по этому числу устанавливает бит контроля чётности в одно из состояний в зависимости от числа единичных бит и заданного текущего режима проверки на чётность.
Существуют режимы контроля на чётность (англ. Even parity) и нечётность (англ. Odd parity). При Even parity бит чётности выставляется в такое состояние, чтобы сумма единичных бит в посылке (включая данные и сам бит четности) являлась чётным числом. При Odd parity бит контроля чётности выставляется так, чтобы сумма всех битов посылки являлась нечётной, как показано в таблице.
При приёме посылки логическое устройство UART автоматически подсчитывает число единичных бит в посылке, включая бит чётности. Если в принятой посылке нарушена четность, то это является признаком возникновения ошибки в канале передачи. Ошибки в двоичных передачах сводятся к инверсии битов, поэтому логика контроля чётности может обнаруживать ошибки, только если искажено нечетное количество битов (в 1, 3 и т. д.). Если произошла инверсия, например, двух бит, то такая ошибка не обнаруживается. При обнаружении ошибки чётности логика UART выставляет признак ошибки в слове своего состояния, который может быть прочитан внешним устройством, например, процессором компьютера и ошибка должным образом обработана.
Короткая запись параметров
Был выработан и прижился короткий способ записи параметров UART, таких, как количество бит данных, наличие и тип бита чётности, количество стоп-бит. Выглядит как запись вида цифра-буква-цифра, где:
- Первая цифра обозначает количество бит данных, например, 8.
- Буква обозначает наличие и тип бита чётности. Встречаются N (No parity) — без бита чётности; E (Even parity) — с битом проверки на чётность, O (Odd parity) — с битом проверки на нечётность;
- Последняя цифра обозначает длительность стоп-бита. Встречаются значения 1, 1.5 и 2 для длительности стоп-бита в 1, 1,5 и 2 битовых интервала, соответственно.
Например, запись 8-N-1 обозначает, что UART настроен на 8 бит данных без бита чётности и один стоповый бит. Для полноты параметров эту запись снабжают указанием скорости UART, например, 9600/8-N-1.
Break
Некоторые UART обладают возможностью посылать и принимать специальную посылку, называемую Break. Она состоит из непрерывного нулевого состояния линии длительностью заведомо больше минимальной посылки, обычно 1,5 минимальных посылки (для 8N1 это 15 битовых интервалов). Некоторые коммуникационные протоколы используют это свойство, например, протокол LIN использует Break для обозначения нового кадра.
Управление потоком
Ранние устройства с UART могли быть настолько медлительными, что не успевали обрабатывать поток принимаемых данных. Для решения этой проблемы модули UART иногда снабжались отдельными выходами и входами управления потоком. При заполнении входного буфера логика принимающего UART выставляла на соответствующем выходе запрещающий уровень, и передающий UART приостанавливал передачу. Две отдельные (необязательные) шины RTS и CTS используются в данном случае следующим образом: девайс отправляет на шину RTS сигнал о готовности принять новые данные и считывает сигнал шины CTS чтобы убедиться в готовности принимающего устройства получить данные.
Позже управление потоком возложили на коммуникационные протоколы (например, методом XOn/XOff), и надобность в отдельных линиях управления потоком почти исчезла.
В текущее время управление потоком на аппаратном уровне все еще находит применение, например, в (ультра)энергоэффективных микроконтроллерах.
Физический уровень
Логическая схема UART имеет схемотехнику входов-выходов, соответствующую полупроводниковой технологии схемы: КМОП, ТТЛ и т. д. Такой физический уровень может быть использован в пределах одного устройства, однако, как правило, непригоден для коммутируемых длинных соединений по причине низкой защищённости от электрического разрушения и помех. Для таких случаев были разработаны специальные физические уровни, такие как токовая петля, RS-232, RS-485, LIN и тому подобные.
Специфической разновидностью физического уровня асинхронного интерфейса является физический уровень IrDA.
Существуют физические уровни UART для сложных сред. В некотором смысле стандартный компьютерный телефонный модем также можно назвать специфическим физическим уровнем асинхронного интерфейса. Существуют специальные микросхемы проводных модемов, сделанных специально как физический уровень асинхронного интерфейса (то есть протокольно прозрачные). Выпускается также радиоканальный физический уровень в виде модулей радиоприёмников и радиопередатчиков.
Драйвер физического уровня
Для преобразования логических входов-выходов UART в сигналы соответствующего физического уровня применяют специальные электронные схемы, именуемые драйверами. Для всех популярных физических уровней существуют интегральные драйверы в виде микросхем.
Дуплекс
Логика UART обычно позволяет производить одновременную передачу и прием. Эта способность часто обозначается сленговым словом дуплекс. Однако не все физические уровни позволяют одновременно передавать данные в обе стороны. В таких случаях принято говорить о полудуплексной связи. Существуют также решения, в которых передача данных физически возможна только в одну сторону, тогда говорят о симплексной связи.
Сеть
Изначально UART предназначался для связи двух устройств по принципу «точка-точка». Впоследствии были созданы физические уровни, которые позволяют связывать более двух UART по принципу «один говорит — несколько слушают». Такие физические уровни называют сетевыми. Существуют реализации типа общая шина (когда все приемопередатчики подключены к одному проводу) и кольцо (когда приемники и передатчики соединяют попарно в замкнутое кольцо). Первый вариант проще и встречается гораздо чаще. Второй вариант сложнее, но надежнее и быстрее: гарантируется работоспособность всех узлов (передающий узел услышит эхо своего сообщения, только если оно успешно ретранслировано всеми узлами); любой узел может начинать передачу в любой момент, не заботясь о риске коллизии. Наиболее известные сетевые физические уровни — RS-485 и LIN.
Поддержка UART в массовых операционных системах
Широкое распространение UART в цифровой технике предопределило встраивание поддержки этого интерфейса в API многих операционных систем. Как правило, этот интерфейс фигурирует в документации ОС как COM-порт или последовательный порт.
Microsoft Windows
С последовательными портами в Win32 работают как с файлами. Для открытия порта используется функция CreateFile. Портов может быть много, поэтому они обозначаются как COM1, COM2 и т. д. по порядку обнаружения драйверов соответствующих устройств. Первые 9 портов доступны в том числе как именованные каналы для передачи данных (доступны по именам «COM1», «COM2», …), такой метод доступа считается устаревшим. Рекомендуется ко всем портам обращаться как к файлам (по именам «\\.\COM1», «\\.\COM2»,… «\\.\COMx»).
Поиск PnP-имен устройств в системе осуществляется вызовом SetupDiGetClassDevs. В реестре существует раздел HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM, в котором отображаются имеющиеся в данный момент COM-порты.
Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000,
где последнее значение «Serial10000» — уникальный номер для каждого нового добавленного в систему COM-порта, для второго — «Serial10001» и т. д.
UNIX
COM-порты в операционной системе Unix (Linux) — это файлы символьных устройств. Обычно эти файлы располагаются в каталоге /dev и называются
- ttyS0, ttyS1, ttyS2 и т. д. в Linux
- ttyd0, ttyd1, ttyd2 и т. д. (или ttyu0, ttyu1, ttyu2 и т. д. начиная с версии 8.0) в FreeBSD
- ttya, ttyb, ttyc и т. д. в Solaris
- ttyf1, ttyf2, ttyf3 и т. д. в IRIX
- tty1p0, tty2p0, tty3p0 и т. д. в HP-UX
- tty01, tty02, tty03 и т. д. в
- ser1, ser2, ser3 и т. д. в QNX
Для программного доступа к СОМ-порту необходимо открыть на чтение/запись соответствующий файл и сделать вызовы специальных функций tcgetattr (для того, чтобы узнать текущие настройки) и tcsetattr (чтобы установить новые настройки). Также может потребоваться сделать вызовы с определенными параметрами. После этого при записи в файл данные будут отправляться через порт, а при чтении программа будет получать уже принятые данные из буфера СОМ-порта.
Устройства с именами «ttyxx» используются как серверные, то есть приложение, открывшее данное устройство, обычно ожидает входящего звонка от модема. Классическим таким приложением, используемым по умолчанию, является getty, которая ожидает входящего звонка, далее настраивает COM-порт в соответствии с файлами конфигурации, выводит туда "login: ", принимает имя пользователя и запускает как потомка команду «login ИмяПользователя», со стандартным вводом и выводом, перенаправленными в COM-порт. Эта команда, в свою очередь, запрашивает и проверяет пароль, и в случае успеха запускает (не как потомка, а вместо себя вызовом execve в том же процессе) default user shell, прописанный в файле /etc/passwd.
Эта технология исторически возникла в 1970-е годы, когда под ОС UNIX использовались компьютеры вроде PDP-11 (в СССР серия называлась СМ ЭВМ) или VAX, допускающие подключение многих терминалов для работы многих пользователей. Терминалы — а значит, и весь интерфейс пользователя — при этом подключались через последовательные порты, с возможностью подключения вместо терминала модема и дальнейшего дозвона на компьютер по телефону. До сих пор в UNIX-подобных ОС существует терминальный стек, и обычно 3 реализации терминалов — последовательный порт, консоль текстового режима экрана+клавиатура, и «обратная петля» в один из открытых файлов управляющего приложения (так реализованы telnetd, sshd и xterm).
Клиентские устройства последовательного порта, предназначенные для совершения звонков вовне, во многих UNIX (не во всех) называются cuaxx.
Так как последовательный порт в UNIX доступен только через терминальный стек, он может быть управляющим терминалом для процессов и групп (посылать SIGHUP при разрыве связи от модема и SIGINT при нажатии Ctrl-C), на уровне ядра поддерживать редактирование последней введенной строки клавишами стрелочек, и т. д. Для отключения этой возможности с целью превращения устройства в «трубу» для потока байт необходимы вызовы ioctl.
OS/2
Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO.
Android
Так как Android работает на ядре Linux, то и работа с COM-портами в Android в принципе аналогична работе в Linux. Но надо учитывать, что для работы с COM-портами в Android нужны root-права.
Виртуальные порты
В настоящее время физические интерфейсы на основе UART практически исчезли из бытовой цифровой техники. Однако удобство пользования и обилие программного обеспечения, использовавшего доступ к внешним устройствам через COM-порт, вынудило разработчиков подключаемых к компьютерам устройств создавать драйвера виртуальных COM-портов (VCP — virtual COM port). То есть COM-портов, для которых не существует соответствующего аппаратного UART.
Коммуникационные протоколы
Только в очень редких задачах допустимо слать через UART прямой поток данных. Как правило, необходимо указывать начало и конец блока данных; обеспечивать контроль целостности данных и выполнять восстановление потерянных элементов; управлять потоком данных для предотвращения перегрузки входного буфера и т. п. Для этих и многих других целей придумывают протоколы связи — соглашения о специальных наборах данных, которыми обмениваются обе вычислительные системы для успешного выполнения задачи по установлению связи и передаче основных данных. Алгоритмы протоколов зависят от задач, которые поставлены перед системой, и особенностей физического уровня UART. Алгоритм протокола обычно реализуются программно, а не аппаратно.
Существует большое количество разнообразных протоколов связи, предназначенных для использования с UART. Наиболее известные:
- Modbus. Семейство протоколов типа «запрос-ответ», популярное в промышленной автоматике. Ориентированы на управление оборудованием короткими командами.
- AT-команды телефонных модемов. Набор текстовых команд, позволяющих управлять работой модема при установлении соединения.
- PPP — протокол широко использовался при подключениях к интернету через модем. Позволяет выполнять аутентификацию пользователя у провайдера, шифровать данные и т. п.
- IrDA — семейство протоколов для оптического беспроводного физического уровня.
Стандартизация
Идея асинхронной передачи данных появилась в те далёкие времена, когда о стандартизации ещё мало заботились и лучшее, что можно было ожидать от поставщиков разрозненных решений, — так это открытая публикация алгоритмов работы своих изделий. Собственно, поэтому стандарта UART как такового нет, но логика работы UART описана как часть продукта во многих других стандартах: токовая петля, RS-232, (ISO/IEC 7816) и т. п.
См. также
Примечания
- Determining Clock Accuracy Requirements for UART Communications . Дата обращения: 22 сентября 2016. 19 сентября 2011 года.
- Error Correction and Detection Codes
- Error Detection and Correction
- . Дата обращения: 8 июня 2014. Архивировано из оригинала 15 мая 2011 года.
Ссылки
- AVR. Передача данных по UART
- UART. Применение в электронных проектах.
- Реализация UART на микроконтроллерах msp430
- Реализация USART на микроконтроллерах Microchip PIC18
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер
Stil etoj stati neenciklopedichen ili narushaet normy literaturnogo russkogo yazyka Statyu sleduet ispravit soglasno stilisticheskim pravilam Vikipedii Universalnyj asinhronnyj priyomoperedatchik UAPP angl Universal Asynchronous Receiver Transmitter UART uzel vychislitelnyh ustrojstv prednaznachennyj dlya organizacii svyazi s drugimi cifrovymi ustrojstvami Preobrazuet peredavaemye dannye v posledovatelnyj vid tak chtoby bylo vozmozhno peredat ih po odnoj fizicheskoj cifrovoj linii drugomu analogichnomu ustrojstvu Metod preobrazovaniya horosho standartizovan i shiroko primenyaetsya v kompyuternoj tehnike osobenno vo vstraivaemyh ustrojstvah i sistemah na kristalle SoC Predstavlyaet soboj logicheskuyu shemu s odnoj storony podklyuchyonnuyu k shine vychislitelnogo ustrojstva a s drugoj imeyushuyu dva ili bolee vyvodov dlya vneshnego soedineniya UART mozhet predstavlyat soboj otdelnuyu mikroshemu naprimer Intel I8251 I8250 ili yavlyatsya chastyu bolshoj integralnoj shemy naprimer mikrokontrollera Ispolzuetsya dlya peredachi dannyh cherez posledovatelnyj port kompyutera Metod peredachi i priyomaPeredacha dannyh v UART osushestvlyaetsya po odnomu bitu za ravnye promezhutki vremeni Etot vremennoj promezhutok opredelyaetsya zadannoj skorostyu UART i dlya konkretnogo soedineniya ukazyvaetsya v bodah chto v dannom sluchae sootvetstvuet bitam v sekundu Sushestvuet obsheprinyatyj ryad standartnyh skorostej 300 600 1200 2400 4800 9600 19200 38400 57600 115200 230400 460800 921600 bod Skorost S displaystyle S bod i dlitelnost bita T displaystyle T sekund svyazany sleduyushim sootnosheniem T 1 S displaystyle T 1 S Skorost v bodah inogda nazyvayut slengovym slovom bodrejt angl baud rate ili bitrejt angl bit rate Pomimo informacionnyh bitov UART avtomaticheski vstavlyaet v potok sinhroniziruyushie metki tak nazyvaemye startovyj angl start bit i stopovyj angl stop bit bity Pri priyome eti lishnie bity udalyayutsya iz potoka Obychno startovyj i stopovyj bity obramlyayut odin bajt informacii 8 bitov pri etom mladshij informacionnyj bit peredayotsya pervym srazu posle startovogo Vstrechayutsya realizacii UART peredayushie po 5 6 7 ili 9 informacionnyh bitov Obramlyonnye startom i stopovym bity yavlyayutsya minimalnoj edinicej peresylaemogo soobsheniya Nekotorye realizacii UART ispolzuyut dva stopovyh bita dlya umensheniya veroyatnosti rassinhronizacii priyomnika i peredatchika pri plotnom trafike Priyomnik ignoriruet vtoroj stopovyj bit vosprinimaya ego kak korotkuyu pauzu na linii Prinyato chto passivnym sostoyaniem v otsutstvie potoka dannyh vhoda i vyhoda UART yavlyaetsya logicheskaya edinica Startovyj bit vsegda yavlyaetsya logicheskim nulyom poetomu priyomnik UART zhdyot perepada iz 1 v 0 angl falling edge i otschityvaet ot nego vremennoj promezhutok v polovinu dlitelnosti bita seredina peredachi startovogo bita Esli v etot moment na vhode vsyo eshyo 0 to zapuskaetsya process priyoma minimalnoj posylki Dlya etogo priyomnik otschityvaet 9 bitovyh dlitelnostej podryad dlya 8 bitnyh dannyh i v kazhdyj moment fiksiruet sostoyanie vhoda Pervye 8 yavlyayutsya prinyatymi dannymi a poslednee proverochnym stopovym bitom chyo znachenie vsegda ravno 1 Esli realno prinyatoe znachenie inoe to UART fiksiruet oshibku Dlya formirovaniya vremennyh intervalov peredayushij i priyomnyj UART imeyut istochnik tochnogo vremeni taktirovaniya Tochnost etogo istochnika dolzhna byt takoj chtoby summa pogreshnostej priyomnika i peredatchika ustanovki vremennogo intervala ot nachala startovogo impulsa do serediny stopovogo impulsa ne prevyshala poloviny a luchshe chetverti bitovogo intervala Dlya 8 bitnoj posylki eto znachenie 0 5 9 5 5 displaystyle 0 5 9 5 approx 5 Na praktike s uchyotom vozmozhnyh iskazhenij signala v linii obshaya oshibka taktirovaniya dolzhna byt ne bolee 3 Poskolku v hudshem sluchae oshibki taktov priyomnika i peredatchika mogut summirovatsya to rekomenduemyj dopusk na tochnost taktirovaniya UART ne bolee 1 5 Poskolku sinhroniziruyushie bity zanimayut chast bitovogo potoka to rezultiruyushaya propusknaya sposobnost UART menshe skorosti soedineniya Naprimer dlya 8 bitnyh posylok formata 8 N 1 sinhroniziruyushie bity zanimayut 20 potoka chto pri fizicheskoj skorosti linii 115 200 bod oznachaet poleznuyu skorost peredachi dannyh 92 160 bit s ili 11 520 bajt s Kontrol chyotnosti Informacionnye bity kolichestvo informacionnyh edinichnyh bit sostoyanie bita kontrolya chyotnosti pri rezhime even odd00000000 0 0 110100010 3 1 011010010 4 0 111111110 7 1 0Osnovnaya statya Bit chyotnosti Mnogie realizacii UART imeyut vozmozhnost avtomaticheski proveryat celostnost dannyh metodom kontrolya bitovoj chyotnosti Vklyuchenie ili vyklyuchenie etoj funkcii proizvoditsya zapisyu sootvetstvuyushego slova inicializacii vo vnutrennij registr upravleniya UART Kogda eta funkciya vklyuchena minimalnaya posylka informacionnyh bitov dopolnyaetsya konechnym bitom kontrolya chyotnosti Pri peredache posylki logicheskoe ustrojstvo podschityvaet chislo edinichnyh bitov v informacionnoj chasti posylki i po etomu chislu ustanavlivaet bit kontrolya chyotnosti v odno iz sostoyanij v zavisimosti ot chisla edinichnyh bit i zadannogo tekushego rezhima proverki na chyotnost Sushestvuyut rezhimy kontrolya na chyotnost angl Even parity i nechyotnost angl Odd parity Pri Even parity bit chyotnosti vystavlyaetsya v takoe sostoyanie chtoby summa edinichnyh bit v posylke vklyuchaya dannye i sam bit chetnosti yavlyalas chyotnym chislom Pri Odd parity bit kontrolya chyotnosti vystavlyaetsya tak chtoby summa vseh bitov posylki yavlyalas nechyotnoj kak pokazano v tablice Pri priyome posylki logicheskoe ustrojstvo UART avtomaticheski podschityvaet chislo edinichnyh bit v posylke vklyuchaya bit chyotnosti Esli v prinyatoj posylke narushena chetnost to eto yavlyaetsya priznakom vozniknoveniya oshibki v kanale peredachi Oshibki v dvoichnyh peredachah svodyatsya k inversii bitov poetomu logika kontrolya chyotnosti mozhet obnaruzhivat oshibki tolko esli iskazheno nechetnoe kolichestvo bitov v 1 3 i t d Esli proizoshla inversiya naprimer dvuh bit to takaya oshibka ne obnaruzhivaetsya Pri obnaruzhenii oshibki chyotnosti logika UART vystavlyaet priznak oshibki v slove svoego sostoyaniya kotoryj mozhet byt prochitan vneshnim ustrojstvom naprimer processorom kompyutera i oshibka dolzhnym obrazom obrabotana Korotkaya zapis parametrov Byl vyrabotan i prizhilsya korotkij sposob zapisi parametrov UART takih kak kolichestvo bit dannyh nalichie i tip bita chyotnosti kolichestvo stop bit Vyglyadit kak zapis vida cifra bukva cifra gde Pervaya cifra oboznachaet kolichestvo bit dannyh naprimer 8 Bukva oboznachaet nalichie i tip bita chyotnosti Vstrechayutsya N No parity bez bita chyotnosti E Even parity s bitom proverki na chyotnost O Odd parity s bitom proverki na nechyotnost Poslednyaya cifra oboznachaet dlitelnost stop bita Vstrechayutsya znacheniya 1 1 5 i 2 dlya dlitelnosti stop bita v 1 1 5 i 2 bitovyh intervala sootvetstvenno Naprimer zapis 8 N 1 oboznachaet chto UART nastroen na 8 bit dannyh bez bita chyotnosti i odin stopovyj bit Dlya polnoty parametrov etu zapis snabzhayut ukazaniem skorosti UART naprimer 9600 8 N 1 Break Nekotorye UART obladayut vozmozhnostyu posylat i prinimat specialnuyu posylku nazyvaemuyu Break Ona sostoit iz nepreryvnogo nulevogo sostoyaniya linii dlitelnostyu zavedomo bolshe minimalnoj posylki obychno 1 5 minimalnyh posylki dlya 8N1 eto 15 bitovyh intervalov Nekotorye kommunikacionnye protokoly ispolzuyut eto svojstvo naprimer protokol LIN ispolzuet Break dlya oboznacheniya novogo kadra Upravlenie potokom Osnovnaya statya Upravlenie potokom Rannie ustrojstva s UART mogli byt nastolko medlitelnymi chto ne uspevali obrabatyvat potok prinimaemyh dannyh Dlya resheniya etoj problemy moduli UART inogda snabzhalis otdelnymi vyhodami i vhodami upravleniya potokom Pri zapolnenii vhodnogo bufera logika prinimayushego UART vystavlyala na sootvetstvuyushem vyhode zapreshayushij uroven i peredayushij UART priostanavlival peredachu Dve otdelnye neobyazatelnye shiny RTS i CTS ispolzuyutsya v dannom sluchae sleduyushim obrazom devajs otpravlyaet na shinu RTS signal o gotovnosti prinyat novye dannye i schityvaet signal shiny CTS chtoby ubeditsya v gotovnosti prinimayushego ustrojstva poluchit dannye Pozzhe upravlenie potokom vozlozhili na kommunikacionnye protokoly naprimer metodom XOn XOff i nadobnost v otdelnyh liniyah upravleniya potokom pochti ischezla V tekushee vremya upravlenie potokom na apparatnom urovne vse eshe nahodit primenenie naprimer v ultra energoeffektivnyh mikrokontrollerah Fizicheskij urovenLogicheskaya shema UART imeet shemotehniku vhodov vyhodov sootvetstvuyushuyu poluprovodnikovoj tehnologii shemy KMOP TTL i t d Takoj fizicheskij uroven mozhet byt ispolzovan v predelah odnogo ustrojstva odnako kak pravilo neprigoden dlya kommutiruemyh dlinnyh soedinenij po prichine nizkoj zashishyonnosti ot elektricheskogo razrusheniya i pomeh Dlya takih sluchaev byli razrabotany specialnye fizicheskie urovni takie kak tokovaya petlya RS 232 RS 485 LIN i tomu podobnye Specificheskoj raznovidnostyu fizicheskogo urovnya asinhronnogo interfejsa yavlyaetsya fizicheskij uroven IrDA Sushestvuyut fizicheskie urovni UART dlya slozhnyh sred V nekotorom smysle standartnyj kompyuternyj telefonnyj modem takzhe mozhno nazvat specificheskim fizicheskim urovnem asinhronnogo interfejsa Sushestvuyut specialnye mikroshemy provodnyh modemov sdelannyh specialno kak fizicheskij uroven asinhronnogo interfejsa to est protokolno prozrachnye Vypuskaetsya takzhe radiokanalnyj fizicheskij uroven v vide modulej radiopriyomnikov i radioperedatchikov Drajver fizicheskogo urovnya Dlya preobrazovaniya logicheskih vhodov vyhodov UART v signaly sootvetstvuyushego fizicheskogo urovnya primenyayut specialnye elektronnye shemy imenuemye drajverami Dlya vseh populyarnyh fizicheskih urovnej sushestvuyut integralnye drajvery v vide mikroshem Dupleks Osnovnaya statya Dupleks telekommunikacii Logika UART obychno pozvolyaet proizvodit odnovremennuyu peredachu i priem Eta sposobnost chasto oboznachaetsya slengovym slovom dupleks Odnako ne vse fizicheskie urovni pozvolyayut odnovremenno peredavat dannye v obe storony V takih sluchayah prinyato govorit o poludupleksnoj svyazi Sushestvuyut takzhe resheniya v kotoryh peredacha dannyh fizicheski vozmozhna tolko v odnu storonu togda govoryat o simpleksnoj svyazi Set Iznachalno UART prednaznachalsya dlya svyazi dvuh ustrojstv po principu tochka tochka Vposledstvii byli sozdany fizicheskie urovni kotorye pozvolyayut svyazyvat bolee dvuh UART po principu odin govorit neskolko slushayut Takie fizicheskie urovni nazyvayut setevymi Sushestvuyut realizacii tipa obshaya shina kogda vse priemoperedatchiki podklyucheny k odnomu provodu i kolco kogda priemniki i peredatchiki soedinyayut poparno v zamknutoe kolco Pervyj variant proshe i vstrechaetsya gorazdo chashe Vtoroj variant slozhnee no nadezhnee i bystree garantiruetsya rabotosposobnost vseh uzlov peredayushij uzel uslyshit eho svoego soobsheniya tolko esli ono uspeshno retranslirovano vsemi uzlami lyuboj uzel mozhet nachinat peredachu v lyuboj moment ne zabotyas o riske kollizii Naibolee izvestnye setevye fizicheskie urovni RS 485 i LIN Podderzhka UART v massovyh operacionnyh sistemahOsnovnaya statya Posledovatelnyj port Shirokoe rasprostranenie UART v cifrovoj tehnike predopredelilo vstraivanie podderzhki etogo interfejsa v API mnogih operacionnyh sistem Kak pravilo etot interfejs figuriruet v dokumentacii OS kak COM port ili posledovatelnyj port Microsoft Windows Imeetsya vikiuchebnik po teme Programmirovanie COM porta v Windows S posledovatelnymi portami v Win32 rabotayut kak s fajlami Dlya otkrytiya porta ispolzuetsya funkciya CreateFile Portov mozhet byt mnogo poetomu oni oboznachayutsya kak COM1 COM2 i t d po poryadku obnaruzheniya drajverov sootvetstvuyushih ustrojstv Pervye 9 portov dostupny v tom chisle kak imenovannye kanaly dlya peredachi dannyh dostupny po imenam COM1 COM2 takoj metod dostupa schitaetsya ustarevshim Rekomenduetsya ko vsem portam obrashatsya kak k fajlam po imenam COM1 COM2 COMx Poisk PnP imen ustrojstv v sisteme osushestvlyaetsya vyzovom SetupDiGetClassDevs V reestre sushestvuet razdel HKEY LOCAL MACHINE HARDWARE DEVICEMAP SERIALCOMM v kotorom otobrazhayutsya imeyushiesya v dannyj moment COM porty Dlya kazhdogo porta v reestre imeetsya razdel Eti razdely imeyut takie imena HKEY LOCAL MACHINE SYSTEM CurrentControlSet Services Serial Parameters Serial10000 gde poslednee znachenie Serial10000 unikalnyj nomer dlya kazhdogo novogo dobavlennogo v sistemu COM porta dlya vtorogo Serial10001 i t d UNIX COM porty v operacionnoj sisteme Unix Linux eto fajly simvolnyh ustrojstv Obychno eti fajly raspolagayutsya v kataloge dev i nazyvayutsya ttyS0 ttyS1 ttyS2 i t d v Linux ttyd0 ttyd1 ttyd2 i t d ili ttyu0 ttyu1 ttyu2 i t d nachinaya s versii 8 0 v FreeBSD ttya ttyb ttyc i t d v Solaris ttyf1 ttyf2 ttyf3 i t d v IRIX tty1p0 tty2p0 tty3p0 i t d v HP UX tty01 tty02 tty03 i t d v ser1 ser2 ser3 i t d v QNX Dlya programmnogo dostupa k SOM portu neobhodimo otkryt na chtenie zapis sootvetstvuyushij fajl i sdelat vyzovy specialnyh funkcij tcgetattr dlya togo chtoby uznat tekushie nastrojki i tcsetattr chtoby ustanovit novye nastrojki Takzhe mozhet potrebovatsya sdelat vyzovy s opredelennymi parametrami Posle etogo pri zapisi v fajl dannye budut otpravlyatsya cherez port a pri chtenii programma budet poluchat uzhe prinyatye dannye iz bufera SOM porta Ustrojstva s imenami ttyxx ispolzuyutsya kak servernye to est prilozhenie otkryvshee dannoe ustrojstvo obychno ozhidaet vhodyashego zvonka ot modema Klassicheskim takim prilozheniem ispolzuemym po umolchaniyu yavlyaetsya getty kotoraya ozhidaet vhodyashego zvonka dalee nastraivaet COM port v sootvetstvii s fajlami konfiguracii vyvodit tuda login prinimaet imya polzovatelya i zapuskaet kak potomka komandu login ImyaPolzovatelya so standartnym vvodom i vyvodom perenapravlennymi v COM port Eta komanda v svoyu ochered zaprashivaet i proveryaet parol i v sluchae uspeha zapuskaet ne kak potomka a vmesto sebya vyzovom execve v tom zhe processe default user shell propisannyj v fajle etc passwd Eta tehnologiya istoricheski voznikla v 1970 e gody kogda pod OS UNIX ispolzovalis kompyutery vrode PDP 11 v SSSR seriya nazyvalas SM EVM ili VAX dopuskayushie podklyuchenie mnogih terminalov dlya raboty mnogih polzovatelej Terminaly a znachit i ves interfejs polzovatelya pri etom podklyuchalis cherez posledovatelnye porty s vozmozhnostyu podklyucheniya vmesto terminala modema i dalnejshego dozvona na kompyuter po telefonu Do sih por v UNIX podobnyh OS sushestvuet terminalnyj stek i obychno 3 realizacii terminalov posledovatelnyj port konsol tekstovogo rezhima ekrana klaviatura i obratnaya petlya v odin iz otkrytyh fajlov upravlyayushego prilozheniya tak realizovany telnetd sshd i xterm Klientskie ustrojstva posledovatelnogo porta prednaznachennye dlya soversheniya zvonkov vovne vo mnogih UNIX ne vo vseh nazyvayutsya cuaxx Tak kak posledovatelnyj port v UNIX dostupen tolko cherez terminalnyj stek on mozhet byt upravlyayushim terminalom dlya processov i grupp posylat SIGHUP pri razryve svyazi ot modema i SIGINT pri nazhatii Ctrl C na urovne yadra podderzhivat redaktirovanie poslednej vvedennoj stroki klavishami strelochek i t d Dlya otklyucheniya etoj vozmozhnosti s celyu prevrasheniya ustrojstva v trubu dlya potoka bajt neobhodimy vyzovy ioctl OS 2 Imeyushijsya drajver COM SYS podderzhivaet tolko 4 COM porta kazhdyj iz kotoryh dolzhen imet svoyu liniyu preryvanij Dlya obsluzhivaniya COM portov s obshej liniej preryvaniya neobhodimo vospolzovatsya drajverom SIO Android Tak kak Android rabotaet na yadre Linux to i rabota s COM portami v Android v principe analogichna rabote v Linux No nado uchityvat chto dlya raboty s COM portami v Android nuzhny root prava Virtualnye porty V nastoyashee vremya fizicheskie interfejsy na osnove UART prakticheski ischezli iz bytovoj cifrovoj tehniki Odnako udobstvo polzovaniya i obilie programmnogo obespecheniya ispolzovavshego dostup k vneshnim ustrojstvam cherez COM port vynudilo razrabotchikov podklyuchaemyh k kompyuteram ustrojstv sozdavat drajvera virtualnyh COM portov VCP virtual COM port To est COM portov dlya kotoryh ne sushestvuet sootvetstvuyushego apparatnogo UART Kommunikacionnye protokolyOsnovnaya statya Protokol peredachi dannyh Tolko v ochen redkih zadachah dopustimo slat cherez UART pryamoj potok dannyh Kak pravilo neobhodimo ukazyvat nachalo i konec bloka dannyh obespechivat kontrol celostnosti dannyh i vypolnyat vosstanovlenie poteryannyh elementov upravlyat potokom dannyh dlya predotvrasheniya peregruzki vhodnogo bufera i t p Dlya etih i mnogih drugih celej pridumyvayut protokoly svyazi soglasheniya o specialnyh naborah dannyh kotorymi obmenivayutsya obe vychislitelnye sistemy dlya uspeshnogo vypolneniya zadachi po ustanovleniyu svyazi i peredache osnovnyh dannyh Algoritmy protokolov zavisyat ot zadach kotorye postavleny pered sistemoj i osobennostej fizicheskogo urovnya UART Algoritm protokola obychno realizuyutsya programmno a ne apparatno Sushestvuet bolshoe kolichestvo raznoobraznyh protokolov svyazi prednaznachennyh dlya ispolzovaniya s UART Naibolee izvestnye Modbus Semejstvo protokolov tipa zapros otvet populyarnoe v promyshlennoj avtomatike Orientirovany na upravlenie oborudovaniem korotkimi komandami AT komandy telefonnyh modemov Nabor tekstovyh komand pozvolyayushih upravlyat rabotoj modema pri ustanovlenii soedineniya PPP protokol shiroko ispolzovalsya pri podklyucheniyah k internetu cherez modem Pozvolyaet vypolnyat autentifikaciyu polzovatelya u provajdera shifrovat dannye i t p IrDA semejstvo protokolov dlya opticheskogo besprovodnogo fizicheskogo urovnya StandartizaciyaIdeya asinhronnoj peredachi dannyh poyavilas v te dalyokie vremena kogda o standartizacii eshyo malo zabotilis i luchshee chto mozhno bylo ozhidat ot postavshikov razroznennyh reshenij tak eto otkrytaya publikaciya algoritmov raboty svoih izdelij Sobstvenno poetomu standarta UART kak takovogo net no logika raboty UART opisana kak chast produkta vo mnogih drugih standartah tokovaya petlya RS 232 ISO IEC 7816 i t p Sm takzhePosledovatelnyj port RS 232 MAX232 Serial Peripheral Interface SPI Shina kompyutery MikrokontrollerPrimechaniyaDetermining Clock Accuracy Requirements for UART Communications neopr Data obrasheniya 22 sentyabrya 2016 19 sentyabrya 2011 goda Error Correction and Detection Codes Error Detection and Correction neopr Data obrasheniya 8 iyunya 2014 Arhivirovano iz originala 15 maya 2011 goda SsylkiAVR Peredacha dannyh po UART UART Primenenie v elektronnyh proektah Realizaciya UART na mikrokontrollerah msp430 Realizaciya USART na mikrokontrollerah Microchip PIC18