diff options
Diffstat (limited to 'documentation/content/ru/articles/serial-uart')
-rw-r--r-- | documentation/content/ru/articles/serial-uart/_index.adoc | 1034 | ||||
-rw-r--r-- | documentation/content/ru/articles/serial-uart/_index.po | 3864 |
2 files changed, 4898 insertions, 0 deletions
diff --git a/documentation/content/ru/articles/serial-uart/_index.adoc b/documentation/content/ru/articles/serial-uart/_index.adoc new file mode 100644 index 0000000000..5b1233a256 --- /dev/null +++ b/documentation/content/ru/articles/serial-uart/_index.adoc @@ -0,0 +1,1034 @@ +--- +authors: + - + author: 'Frank Durda' + email: uhclem@FreeBSD.org +description: 'Подробная информация об использовании последовательных портов и UART в FreeBSD' +tags: ["Serial", "hardware", "UART", "Tutorial", "FreeBSD"] +title: 'Учебное руководство по последовательному интерфейсу и UART' +trademarks: ["freebsd", "microsoft", "general"] +--- + += Учебное руководство по последовательному интерфейсу и UART +:doctype: article +:toc: macro +:toclevels: 1 +:icons: font +:sectnums: +:sectnumlevels: 6 +:source-highlighter: rouge +:experimental: +:images-path: articles/serial-uart/ + +ifdef::env-beastie[] +ifdef::backend-html5[] +include::shared/authors.adoc[] +include::shared/mirrors.adoc[] +include::shared/releases.adoc[] +include::shared/attributes/attributes-{{% lang %}}.adoc[] +include::shared/{{% lang %}}/teams.adoc[] +include::shared/{{% lang %}}/mailing-lists.adoc[] +include::shared/{{% lang %}}/urls.adoc[] +:imagesdir: ../../../images/{images-path} +endif::[] +ifdef::backend-pdf,backend-epub3[] +include::../../../../shared/asciidoctor.adoc[] +endif::[] +endif::[] + +ifndef::env-beastie[] +include::../../../../../shared/asciidoctor.adoc[] +endif::[] + +[.abstract-title] +Аннотация + +Эта статья рассказывает об использовании последовательного оборудования с FreeBSD. + +''' + +toc::[] + +[[uart]] +== UART: Что это и как работает + +_Copyright (R) 1996 `{uhclem}`, All Rights Reserved. 13 января 1996 год_ + +Универсальный асинхронный приёмопередатчик (UART) — это ключевой компонент подсистемы последовательной передачи данных компьютера. UART принимает байты данных и передаёт отдельные биты последовательно. На стороне приёмника второй UART собирает биты обратно в полные байты. + +Последовательная передача данных обычно используется с модемами и для не сетевого взаимодействия между компьютерами, терминалами и другими устройствами. + +Существует две основные формы последовательной передачи данных: синхронная и асинхронная. В зависимости от режимов, поддерживаемых оборудованием, название подсистемы связи обычно включает букву `A`, если она поддерживает асинхронную передачу, и букву `S`, если поддерживается синхронная передача. Обе формы описаны ниже. + +Некоторые распространённые сокращения: + +[.blockquote] +UART Universal Asynchronous Receiver/Transmitter — Универсальный асинхронный приёмопередатчик + +[.blockquote] +USART Universal Synchronous-Asynchronous Receiver/Transmitter — Универсальный синхронно-асинхронный приёмопередатчик + +=== Синхронная последовательная передача + +Синхронная последовательная передача данных требует, чтобы отправитель и получатель имели общий тактовый сигнал, либо чтобы отправитель предоставлял строб-сигнал или другой сигнал синхронизации, чтобы получатель знал, когда "считывать" следующий бит данных. В большинстве форм синхронной последовательной связи, если в данный момент нет доступных данных для передачи, вместо них должен быть отправлен заполняющий символ, чтобы передача данных не прерывалась. Синхронная связь обычно более эффективна, так как между отправителем и получателем передаются только биты данных, однако она может быть более затратной, если требуются дополнительные провода и схемы для обмена тактовым сигналом между отправителем и получателем. + +Форма синхронной передачи используется с принтерами и устройствами с жёсткими дисками, где данные передаются по одному набору проводов, а тактовый сигнал или строб — по другому проводу. Принтеры и устройства с жёсткими дисками обычно не являются последовательными устройствами, так как большинство стандартов интерфейсов жёстких дисков передают целое слово данных для каждого тактового сигнала или строба, используя отдельный провод для каждого бита слова. В индустрии ПК такие устройства известны как параллельные. + +Стандартное оборудование для последовательной связи в ПК не поддерживает синхронные операции. Этот режим описан здесь только для сравнения. + +=== Асинхронная последовательная передача + +Асинхронная передача позволяет передавать данные без необходимости отправки тактового сигнала от отправителя к получателю. Вместо этого отправитель и получатель заранее согласовывают параметры синхронизации, а к каждому слову добавляются специальные биты, которые используются для синхронизации передающего и принимающего устройств. + +При передаче слова через UART в асинхронном режиме к началу каждого передаваемого слова добавляется бит, называемый "стартовым битом". Стартовый бит используется для оповещения приёмника о начале передачи слова данных, а также для синхронизации тактового сигнала приёмника с тактовым сигналом передатчика. Эти два тактовых сигнала должны быть достаточно точными, чтобы их расхождение по частоте не превышало 10% во время передачи оставшихся битов слова. (Данное требование было установлено во времена механических телетайпов и легко выполняется современным электронным оборудованием.) + +После стартового бита передаются отдельные биты слова данных, начиная с младшего значащего бита (LSB). Каждый бит передается в течение точно такого же времени, как и все остальные биты, и приемник "проверяет" состояние линии примерно на середине интервала, отведенного для каждого бита, чтобы определить, является ли бит `1` или `0`. Например, если передача каждого бита занимает две секунды, приемник проверит сигнал, чтобы определить, является ли он `1` или `0`, через одну секунду, затем подождет две секунды и проверит значение следующего бита, и так далее. + +Отправитель не знает, когда получатель «посмотрел» значение бита. Отправитель знает только, когда по тактовому сигналу нужно начать передачу следующего бита слова. + +Когда все слово данных отправлено, передатчик может добавить бит четности, который он генерирует. Бит четности может быть использован приемником для выполнения простой проверки на ошибки. Затем передатчик отправляет как минимум один стоповый бит. + +Когда приемник получил все биты в слове данных, он может проверить биты четности (как отправитель, так и приемник должны договориться о том, будет ли использоваться бит четности), а затем приемник ищет стоповый бит. Если стоповый бит не появляется, когда должен, UART считает все слово искаженным и сообщит об ошибке кадрирования главному процессору при чтении слова данных. Обычная причина ошибки кадрирования — несовпадение скорости тактовых сигналов отправителя и приемника или прерывание сигнала. + +Независимо от того, были ли данные получены правильно или нет, UART автоматически отбрасывает бит чётности, стартовый и стоповый биты. Если отправитель и получатель настроены одинаково, эти биты не передаются хосту. + +Если готово следующее слово для передачи, стартовый бит нового слова может быть отправлен сразу после того, как будет отправлен стоповый бит предыдущего слова. + +Поскольку асинхронные данные являются "самосинхронизирующимися", если нет данных для передачи, линия передачи может быть неактивна. + +=== Другие функции UART + +Помимо основной задачи преобразования данных из параллельного формата в последовательный для передачи и из последовательного в параллельный при приеме, UART обычно предоставляет дополнительные схемы для сигналов, которые могут использоваться для указания состояния среды передачи и регулирования потока данных в случае, если удаленное устройство не готово принимать больше данных. Например, когда устройство, подключенное к UART, является модемом, модем может сообщать о наличии несущей на телефонной линии, в то время как компьютер может дать команду модему сбросить себя или не принимать вызовы, поднимая или опуская один или несколько из этих дополнительных сигналов. Функция каждого из этих дополнительных сигналов определена в стандарте EIA RS232-C. + +=== Стандарты RS232-C и V.24 + +В большинстве компьютерных систем UART подключен к схеме, которая генерирует сигналы, соответствующие спецификации EIA RS232-C. Также существует стандарт CCITT под названием V.24, который отражает спецификации, включенные в RS232-C. + +==== Назначения битов RS232-C (метки и пробелы) + +В стандарте RS232-C значение `1` называется `Маркер` (Mark), а значение `0` — `Пробел` (Space). Когда линия связи находится в состоянии покоя, говорят, что она "маркирует" (Marking), то есть передаёт непрерывные значения `1`. + +Стартовый бит всегда имеет значение `0` (пробел). Стоповый бит всегда имеет значение `1` (метка). Это означает, что на линии всегда будет переход от метки (1) к пробелу (0) в начале каждого слова, даже при передаче нескольких слов подряд. Это гарантирует, что отправитель и получатель могут синхронизировать свои тактовые сигналы независимо от содержимого передаваемых битов данных. + +Время простоя между стоповым и стартовым битами не обязательно должно быть точным кратным (включая ноль) скорости передачи данных коммуникационного канала, однако большинство UART спроектированы таким образом для простоты. + +В стандарте RS232-C сигнал «Marking» (логическая `1`) представлен напряжением от -2 В до -12 В, а сигнал «Spacing» (логический `0`) — напряжением от 0 В до +12 В. Передатчик должен выдавать +12 В или -12 В, а приёмник должен учитывать возможные потери напряжения в длинных кабелях. Некоторые маломощные передатчики (например, в портативных компьютерах) иногда используют только +5 В и -5 В, но эти значения всё ещё допустимы для приёмника RS232-C при условии использования коротких кабелей. + +==== Cигнал Break в RS232-C + +RS232-C также определяет сигнал под названием `Break`, который вызывается передачей непрерывных значений Spacing (без стартовых или стоповых битов). Когда на линии данных отсутствует напряжение, считается, что линия передает `Break`. + +Сигнал `Break` должен иметь длительность больше, чем время, необходимое для передачи полного байта, включая стартовый, стоповый и биты четности. Большинство UART способны различить ошибку кадрирования и сигнал Break, но если UART не поддерживает эту функцию, для определения Break можно использовать обнаружение ошибки кадрирования. + +Во времена телетайпов, когда множество принтеров по всей стране были соединены последовательно (например, в службах новостей), любое устройство могло вызвать `Break`, временно размыкая всю цепь, чтобы ток не протекал. Это использовалось для того, чтобы место с срочными новостями могло прервать устройство в другом месте, которое в данный момент передавало информацию. + +В современных системах существует два типа сигналов Break. Если Break длится дольше 1,6 секунд, он считается "Модемным Break", и некоторые модемы можно запрограммировать на завершение соединения и переход в режим ожидания или вход в командный режим модема при обнаружении этого сигнала. Если Break короче 1,6 секунд, это означает "Break данных", и удалённый компьютер должен решить, как реагировать на этот сигнал. Иногда такая форма Break используется как сигнал "Внимание" или "Прерывание", а иногда принимается как замена символу ASCII CONTROL-C. + +Метки и пробелы также эквивалентны "дыркам" и "отсутствию дырок" в системах с бумажной лентой. + +[NOTE] +==== +Разрывы не могут быть сгенерированы с перфоленты или из любого другого байтового значения, поскольку байты всегда отправляются со стартовым и стоповым битами. UART обычно способен генерировать непрерывный сигнал Spacing в ответ на специальную команду от главного управляющего устройства (процессора передачи). +==== + +==== RS232-C устройства DTE и DCE + +Спецификация RS232-C определяет два типа оборудования: оконечное оборудование данных (DTE — Data Terminal Equipment) и оборудование передачи данных (DCE — Data Carrier Equipment). Обычно устройство DTE — это терминал (или компьютер), а DCE — модем. На другом конце телефонной линии в разговоре принимающий модем также является устройством DCE, а компьютер, подключённый к этому модему, — устройством DTE. Устройство DCE принимает сигналы на тех контактах, на которых устройство DTE передаёт, и наоборот. + +Когда два устройства, оба являющиеся DTE или DCE, должны быть соединены вместе без модема или аналогичного преобразователя среды между ними, необходимо использовать NULL модем. NULL модем электрически перестраивает кабель так, что выход передатчика подключается ко входу приемника на другом устройстве, и наоборот. Аналогичные преобразования выполняются для всех управляющих сигналов, чтобы каждое устройство видело то, что оно считает сигналами DCE (или DTE) от другого устройства. + +Количество сигналов, генерируемых устройствами DTE и DCE, не симметрично. Устройство DTE генерирует меньше сигналов для устройства DCE, чем получает от него. + +==== Назначение контактов RS232-C + +Спецификация EIA RS232-C (и её эквивалент ITU, V.24) предусматривает использование двадцатипятиконтактного разъёма (обычно DB25) и определяет назначение большинства контактов в этом разъёме. + +В IBM Personal Computer и подобных системах подмножество сигналов RS232-C предоставляется через девятиконтактные разъемы (DB9). Сигналы, которые не включены в разъем ПК, в основном связаны с синхронной работой, и этот режим передачи не поддерживается UART, выбранным IBM для использования в IBM PC. + +В зависимости от производителя компьютера, для связи по RS232-C могут использоваться разъемы DB25, DB9 или оба типа. (В IBM PC также используется разъем DB25 для параллельного интерфейса принтера, что иногда вызывает путаницу.) + +Ниже представлена таблица назначений сигналов RS232-C в разъемах DB25 и DB9. + +[.informaltable] +[cols="1,1,1,1,1,1,1", frame="none", options="header"] +|=== +| Контакт в DB25 RS232-C +| Контакт в DB9 IBM PC +| Символ цепи по EIA +| Символ цепи по CCITT +| Общее имя +| Источник сигнала +| Описание + +|1 +|- +|AA +|101 +|PG/FG +|- +|Защитное заземление (Frame/Protective Ground) + +|2 +|3 +|BA +|103 +|TD +|DTE +|Передача Данных (Transmit Data) + +|3 +|2 +|BB +|104 +|RD +|DCE +|Прием данных (Receive Data) + +|4 +|7 +|CA +|105 +|RTS +|DTE +|Запрос на передачу (Request to Send) + +|5 +|8 +|CB +|106 +|CTS +|DCE +|Готовность к приёму (Clear to Send) + +|6 +|6 +|CC +|107 +|DSR +|DCE +|Готовность терминального оборудования (Data Set Ready) + +|7 +|5 +|AV +|102 +|SG/GND +|- +|Сигнальная земля (Signal Ground) + +|8 +|1 +|CF +|109 +|DCD/CD +|DCE +|Обнаружение несущей (Data Carrier Detect) + +|9 +|- +|- +|- +|- +|- +|Зарезервировано для Теста + +|10 +|- +|- +|- +|- +|- +|Зарезервировано для Теста + +|11 +|- +|- +|- +|- +|- +|Зарезервировано для Теста + +|12 +|- +|CI +|122 +|SRLSD +|DCE +|Детектор сигнала вторичной линии приёма + +|13 +|- +|SCB +|121 +|SCTS +|DCE +|Вторичный сигнал готовности к приёму + +|14 +|- +|SBA +|118 +|STD +|DTE +|Вторичная линия передачи данных + +|15 +|- +|DB +|114 +|TSET +|DCE +|Тактирование элементов сигнала передатчика (Trans. Sig. Element Timing) + +|16 +|- +|SBB +|119 +|SRD +|DCE +|Вторичная линия приема данных + +|17 +|- +|DD +|115 +|RSET +|DCE +|Тактирование элементов сигнала приёмника (Receiver Signal Element Timing) + +|18 +|- +|- +|141 +|LOOP +|DTE +|Локальная петля + +|19 +|- +|SCA +|120 +|SRS +|DTE +|Вторичный запрос на передачу + +|20 +|4 +|CD +|108.2 +|DTR +|DTE +|Готовность терминального оборудования (Data Terminal Ready) + +|21 +|- +|- +|- +|RDL +|DTE +|Режим удалённой цифровой петли (Remote Digital Loopback) + +|22 +|9 +|CE +|125 +|RI +|DCE +|Индикатор передачи данных (Ring Indicator) + +|23 +|- +|CH +|111 +|DSRS +|DTE +|Селектор скорости передачи данных + +|24 +|- +|DA +|113 +|TSET +|DTE +|Тактирование элементов сигнала передатчика (Trans. Sig. Element Timing) + +|25 +|- +|- +|142 +|- +|DCE +|Режим тестирования +|=== + +=== Биты, Боды и Символы + +Скорость передачи данных (Baud) — это единица измерения скорости передачи в асинхронной связи. Из-за развития технологий модемной связи этот термин часто ошибочно используют для описания скорости передачи данных в современных устройствах. + +Традиционно, скорость передачи (Baud Rate) представляет количество битов, фактически передаваемых по среде, а не объем данных, которые действительно перемещаются от одного устройства DTE к другому. Подсчет Baud включает служебные биты — Start, Stop и Parity, которые генерируются передающим UART и удаляются принимающим UART. Это означает, что 7-битные слова данных на самом деле занимают 10 бит для полной передачи. Следовательно, модем, способный передавать 300 бит в секунду, обычно может передавать только 30 7-битных слов, если используется Parity и присутствуют один бит Start и один бит Stop. + +Если используются 8-битные слова данных и биты четности, скорость передачи данных снижается до 27,27 слов в секунду, так как теперь для передачи восьмибитных слов требуется 11 бит, а модем по-прежнему передает только 300 бит в секунду. + +Формула преобразования байтов в секунду в бодовую скорость и наоборот была простой до появления модемов с коррекцией ошибок. Эти модемы принимают последовательный поток битов от UART в компьютере (даже внутренние модемы часто работают с последовательными данными) и преобразуют биты обратно в байты. Затем эти байты объединяются в пакеты и передаются по телефонной линии с использованием синхронного метода передачи. Это означает, что стоповые, стартовые и биты четности, добавленные UART в DTE (компьютере), удаляются модемом перед передачей отправляющим модемом. Когда эти байты принимаются удалённым модемом, он добавляет стартовые, стоповые и биты четности к словам, преобразует их в последовательный формат и отправляет на принимающий UART в удалённом компьютере, который затем удаляет стартовые, стоповые и биты четности. + +Причина, по которой выполняются все эти дополнительные преобразования, заключается в том, чтобы два модема могли осуществлять коррекцию ошибок. Это означает, что принимающий модем может запросить у передающего модема повторную отправку блока данных, который был получен с некорректной контрольной суммой. Эта проверка обрабатывается модемами, и устройства DTE обычно не осознают, что этот процесс происходит. + +Удаляя стартовые, стоповые и биты четности, дополнительные биты данных, которые два модема должны обмениваться между собой для выполнения коррекции ошибок, в основном скрываются от эффективной скорости передачи, наблюдаемой отправляющим и принимающим оборудованием DTE. Например, если модем отправляет десять 7-битных слов другому модему без включения стартовых, стоповых и битов четности, отправляющий модем сможет добавить 30 бит своей собственной информации, которую принимающий модем может использовать для коррекции ошибок, не влияя на скорость передачи реальных данных. + +Использование термина "Бод" дополнительно осложняется модемами, выполняющими сжатие. Одно 8-битное слово, переданное по телефонной линии, может представлять собой дюжину слов, переданных на отправляющий модем. Принимающий модем развернёт данные обратно в их исходное содержимое и передаст эти данные принимающему DTE. + +Современные модемы также включают буферы, которые позволяют скорости передачи битов по телефонной линии (DCE к DCE) отличаться от скорости передачи битов между DTE и DCE на обоих концах соединения. Обычно скорость между DTE и DCE выше, чем скорость между DCE и DCE, из-за использования сжатия модемами. + +Поскольку количество битов, необходимых для описания байта, менялось во время передачи между двумя машинами, а также из-за различающихся скоростей передачи в битах в секунду на линиях DTE-DCE и DCE-DCE, использование термина «Бод» для описания общей скорости связи вызывает проблемы и может искажать реальную скорость передачи. Таким образом, термин «Биты в секунду» (bps) является корректным для описания скорости передачи на интерфейсе DCE-DCE, а термины «Бод» или «Биты в секунду» допустимы, когда соединение устанавливается между двумя системами с проводным подключением или используется модем, не выполняющий коррекцию ошибок или сжатие. + +Современные высокоскоростные модемы (2400, 9600, 14,400 и 19,200 бит/с) на самом деле всё ещё работают на скорости 2400 бод или ниже, или, точнее, 2400 символов в секунду. Высокоскоростные модемы способны кодировать больше бит данных в каждый символ с использованием техники, называемой "Заполнение созвездия (Constellation Stuffing)", поэтому эффективная скорость передачи данных в битах в секунду у модема выше, но модем продолжает работать в ограниченной полосе пропускания звуковых частот, предоставляемой телефонной системой. Модемы, работающие на скоростях 28,800 и выше, имеют переменную скорость передачи символов, но техника остаётся той же. + +=== UART в IBM PC + +Начиная с оригинального IBM Personal Computer, IBM выбрала UART INS8250 от National Semiconductor для использования в адаптере Parallel/Serial IBM PC. Последующие поколения совместимых компьютеров от IBM и других производителей продолжали использовать INS8250 или улучшенные версии UART из семейства National Semiconductor. + +==== Генеалогическое дерево National Semiconductor UART + +Существует несколько версий и последующих поколений UART INS8250. Основные версии описаны ниже. + +[.programlisting] +.... +INS8250 -> INS8250B + \ + \ + \-> INS8250A -> INS82C50A + \ + \ + \-> NS16450 -> NS16C450 + \ + \ + \-> NS16550 -> NS16550A -> PC16550D +.... + +INS8250:: +Эта часть использовалась в оригинальном IBM PC и IBM PC/XT. Первоначальное название этой части — INS8250 ACE (Asynchronous Communications Element), и она изготовлена по NMOS-технологии. ++ +8250 использует восемь портов ввода-вывода и имеет однобайтовый буфер передачи и однобайтовый буфер приема. Этот оригинальный UART имеет несколько состояний гонки и другие недостатки. Оригинальный BIOS IBM включает код для обхода этих недостатков, но это сделало BIOS зависимым от их наличия, поэтому последующие модели, такие как 8250A, 16450 или 16550, не могли быть использованы в оригинальном IBM PC или IBM PC/XT. +INS8250-B:: +Это более медленная скорость INS8250, созданная по NMOS-технологии. Она имеет те же проблемы, что и оригинальный INS8250. + +INS8250A:: +Улучшенная версия INS8250 с использованием технологии XMOS, в которой исправлены различные функциональные недостатки. INS8250A изначально использовалась в клонах ПК от производителей, применявших "чистые" проекты BIOS. Из-за исправлений в микросхеме этот чип не мог использоваться с BIOS, совместимой с INS8250 или INS8250B. + +INS82C50A:: +Это CMOS-версия (с низким энергопотреблением) INS8250A и имеет схожие функциональные характеристики. + +NS16450:: +Так же, как NS8250A, но с улучшениями для работы с более быстрыми шинами CPU. IBM использовала этот компонент в IBM AT и обновила IBM BIOS, чтобы она больше не зависела от ошибок в INS8250. + +NS16C450:: +Это версия NS16450 с технологией CMOS (низкое энергопотребление). + +NS16550:: +То же, что и NS16450, с 16-байтовым буфером передачи и приема, но конструкция буфера была неудачной и не могла быть надежно использована. + +NS16550A:: +То же, что и NS16550, но с исправленными недостатками буфера. 16550A и его преемники стали наиболее популярными UART-устройствами в индустрии ПК, в основном благодаря их способности надежно работать на высоких скоростях передачи данных в операционных системах с медленным временем отклика прерываний. + +NS16C552:: +Этот компонент состоит из двух CMOS UART NS16C550A в одном корпусе. + +PC16550D:: +Так же, как NS16550A, с исправленными незначительными недостатками. Это ревизия D семейства 16550 и последняя доступная версия от National Semiconductor. + +==== NS16550AF и PC16550D — это одно и то же + +Компания National реорганизовала свою систему нумерации деталей несколько лет назад, и чип NS16550AFN больше не существует под этим названием. (Если у вас есть NS16550AFN, посмотрите на дату изготовления на корпусе — это четырехзначное число, обычно начинающееся с девятки. Первые две цифры обозначают год, а последние две — неделю года, когда чип был упакован. Если у вас есть NS16550AFN, скорее всего, он уже довольно старый.) + +Новые номера выглядят как PC16550DV, с незначительными отличиями в суффиксных буквах в зависимости от материала корпуса и его формы. (Описание системы нумерации можно найти ниже.) + +Важно понимать, что в некоторых магазинах можно заплатить $15 (США) за микросхему NS16550AFN, выпущенную в 1990 году, а в соседнем ящике могут лежать новые PC16550DN с небольшими исправлениями, которые National внесла с момента выпуска AFN. PC16550DN, вероятно, произведены в последние полгода и стоят вдвое дешевле (от $5 (США) при оптовой покупке), чем NS16550AFN, поскольку они легко доступны. + +Поскольку поставки чипов NS16550AFN продолжают сокращаться, цена, вероятно, будет расти до тех пор, пока больше людей не узнают и не примут тот факт, что PC16550DN действительно выполняет ту же функцию, что и старый номер детали. + +==== Система нумерации компонентов National Semiconductor + +Старые номера деталей NS``__nnnnnrqp__`` теперь имеют формат PC``__nnnnnrgp__``. + +`_r_` — это поле ревизии. Текущая ревизия 16550 от National Semiconductor — `D`. + +`_p_` — это поле типа пакета. Типы: + +[.informaltable] +[cols="1,1,1", frame="none"] +|=== + +|"F" +|QFP +|(quad flat pack - квадратный плоский корпус) с L-образными выводами + +|"N" +|DIP +|(dual inline package — корпус с двусторонним расположением выводов) для сквозного монтажа с прямыми выводами + +|"V" +|LPCC +|(lead plastic chip carrier — пластиковый корпус) с J-образными выводами +|=== + +Поле _g_ обозначает класс изделия. Если перед буквой типа пакета стоит `I`, это указывает на «промышленный» класс детали, который имеет более высокие характеристики, чем стандартная деталь, но не такие высокие, как компонент военного назначения (Milspec). Это необязательное поле. + +То, что мы раньше называли NS16550AFN (DIP-корпус), теперь называется PC16550DN или PC16550DIN. + +=== Другие производители и аналогичные UART + +На протяжении многих лет чипы 8250, 8250A, 16450 и 16550 лицензировались или копировались другими производителями. В случае с 8250, 8250A и 16450 точная схема ("мегаячейка") была лицензирована многими производителями, включая Western Digital и Intel. Другие производители проводили обратную разработку чипа или создавали эмуляции с аналогичным поведением. + +Во внутренних модемах разработчик модема часто эмулирует 8250A/16450 с помощью микропроцессора модема, и эмулированный UART часто имеет скрытый буфер размером в несколько сотен байт. Благодаря размеру буфера, эти эмуляции могут быть такими же надежными, как 16550A, в способности обрабатывать высокоскоростные данные. Однако большинство операционных систем по-прежнему сообщают, что UART является только 8250A или 16450, и могут не эффективно использовать дополнительную буферизацию, присутствующую в эмулированном UART, если не используются специальные драйверы. + +Некоторые производители модемов под давлением рыночных сил отказываются от конструкции с буфером в сотни байт и вместо этого используют UART 16550A, чтобы их продукция выглядела выигрышно в рыночных сравнениях, даже если это может снизить фактическую производительность. + +Распространённое заблуждение заключается в том, что все микросхемы с маркировкой "16550A" одинаковы по производительности. Однако между ними существуют различия, а в некоторых клонах 16550A даже встречаются серьёзные недостатки. + +Когда компания National Semiconductor разработала NS16550, она получила несколько патентов на эту конструкцию и также ограничила лицензирование, что затруднило для других производителей выпуск чипов с аналогичными характеристиками. В результате патентов обратно спроектированные конструкции и эмуляции должны были избегать нарушения пунктов, охватываемых патентами. Впоследствии эти копии почти никогда не работают точно так же, как NS16550A или PC16550D, которые являются компонентами, наиболее востребованными производителями компьютеров и модемов, но иногда они не готовы платить цену, необходимую для получения оригинальных деталей. + +Некоторые различия в клонах микросхем 16550A несущественны, в то время как другие могут полностью препятствовать использованию устройства с определенной операционной системой или драйвером. Эти различия могут проявиться при использовании других драйверов или при возникновении определенных комбинаций событий, которые не были хорошо протестированы или учтены в драйвере Windows(R). Это происходит потому, что большинство производителей модемов и клонов 16550 используют драйверы Microsoft из Windows(R) for Workgroups 3.11 и утилиту Microsoft(R) MS-DOS(R) в качестве основных тестов на совместимость с NS16550A. Этот чрезмерно упрощенный критерий означает, что при использовании другой операционной системы могут возникнуть проблемы из-за тонких различий между клонами и оригинальными компонентами. + +National Semiconductor предоставила программу под названием COMTEST, которая выполняет тесты совместимости независимо от каких-либо драйверов ОС. Следует помнить, что цель такого типа программ — демонстрация недостатков в продуктах конкурентов, поэтому программа будет сообщать как о значительных, так и о крайне незначительных различиях в поведении тестируемого компонента. + +В серии тестов, проведенных автором этого документа в 1994 году, компоненты производства National Semiconductor, TI, StarTech и CMD, а также мегаячейки и эмуляции, встроенные во внутренние модемы, были протестированы с помощью COMTEST. Ниже приведен счетчик различий для некоторых из этих компонентов. Поскольку эти тесты проводились в 1994 году, они могут не отражать текущую производительность данного продукта от поставщика. + +Следует отметить, что COMTEST обычно завершает работу при обнаружении чрезмерного количества или определённых типов проблем. В рамках этого тестирования COMTEST был изменён так, чтобы он не завершал работу независимо от количества обнаруженных различий. + +[.informaltable] +[cols="1,1,1", frame="none", options="header"] +|=== +| Поставщик +| Номер детали +| Ошибки (также известные как "различия" в отчетах) + +|National +|(PC16550DV) +|0 + +|National +|(NS16550AFN) +|0 + +|National +|(NS16C552V) +|0 + +|TI +|(TL16550AFN) +|3 + +|CMD +|(16C550PE) +|19 + +|StarTech +|(ST16C550J) +|23 + +|Rockwell +|Стандартный модем с внутренним 16550 или его эмуляцией (RC144DPi/C3000-25) +|117 + +|Sierra +|Модем с внутренним 16550 (SC11951/SC11351) +|91 +|=== + +[NOTE] +==== +На сегодняшний день автор данного документа не обнаружил ни одного не-National компонента, который бы показывал нулевые различия при использовании программы COMTEST. Также следует отметить, что у National было пять версий 16550 за эти годы, и новейшие компоненты ведут себя несколько иначе, чем классический NS16550AFN, который считается эталоном функциональности. COMTEST, по-видимому, закрывает глаза на различия внутри линейки продуктов National и не сообщает об ошибках в компонентах National (за исключением оригинальной 16550), даже когда существуют официальные errata, описывающие ошибки в ревизиях A, B и C этих компонентов, поэтому эту предвзятость COMTEST необходимо учитывать. +==== + +Важно понимать, что простое подсчитывание различий с COMTEST не дает полного представления о том, какие различия существенны, а какие нет. Например, около половины различий, обнаруженных в двух вышеупомянутых модемах с внутренними UART, были вызваны тем, что клоновые UART не поддерживают режимы пяти- и шестибитных символов. Настоящие UART 16550, 16450 и 8250 поддерживают эти режимы, и COMTEST проверяет их функциональность, поэтому фиксируется более пятидесяти различий. Однако почти ни один современный модем не поддерживает пяти- или шестибитные символы, особенно те, что обладают функциями коррекции ошибок и сжатия. Это означает, что различия, связанные с режимами пяти- и шестибитных символов, можно не учитывать. + +Многие различия, о которых сообщает COMTEST, связаны с временными характеристиками. Во многих клонированных конструкциях, когда хост читает из одного порта, статусные биты в другом порте могут обновляться с иной скоростью (быстрее или медленнее), чем у _настоящего_ NS16550AFN, и COMTEST выявляет эти различия. Это означает, что количество различий может вводить в заблуждение: одно устройство может иметь всего одно или два различия, но они крайне критичны, тогда как другое устройство, обновляющее статусные регистры быстрее или медленнее эталонной части (что, вероятно, никогда не повлияет на работу правильно написанного драйвера), может иметь десятки зарегистрированных различий. + +COMTEST можно использовать в качестве инструмента проверки, чтобы предупредить администратора о наличии потенциально несовместимых компонентов, которые могут вызвать проблемы или потребуют особого подхода. + +Если вы запускаете COMTEST на 16550, который находится в модеме или к модему подключён последовательный порт, необходимо сначала отправить модему команду ATE0&W, чтобы модем не эхо-повторял ни один из тестовых символов. Если вы забудете это сделать, COMTEST сообщит как минимум об одном различии: + +[source, shell] +.... +Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61 +.... + +=== 8250/16450/16550 Регистры + +UART 8250/16450/16550 занимает восемь последовательных адресов портов ввода-вывода. В IBM PC определены два расположения для этих восьми портов, которые вместе известны как [.filename]#COM1# и [.filename]#COM2#. Производители PC-клонов и дополнительных карт создали два дополнительных области, известных как [.filename]#COM3# и [.filename]#COM4#, но эти дополнительные COM-порты конфликтуют с другим оборудованием на некоторых системах. Наиболее распространённый конфликт возникает с видеоадаптерами, обеспечивающими эмуляцию IBM 8514. + +[.filename]#COM1# находится в диапазоне от 0x3f8 до 0x3ff и обычно использует IRQ 4. [.filename]#COM2# находится в диапазоне от 0x2f8 до 0x2ff и обычно использует IRQ 3. [.filename]#COM3# находится в диапазоне от 0x3e8 до 0x3ef и не имеет стандартного IRQ. [.filename]#COM4# находится в диапазоне от 0x2e8 до 0x2ef и не имеет стандартного IRQ. + +Описание портов ввода-вывода UART 8250/16450/16550 представлено ниже. + +[.informaltable] +[cols="10%,10%,80%", frame="none", options="header"] +|=== +| Порт ввода/вывода +| Доступ Разрешен +| Описание + +|+0x00 +|запись (DLAB==0) +| + +Регистр передачи данных (THR). + +Информация, записанная в этот порт, обрабатывается как слова данных и передается через UART. + +|+0x00 +|чтение (DLAB==0) +| + +Регистр буфера приема (RBR). + +Любые слова данных, полученные UART из последовательного соединения, доступны для чтения хостом через этот порт. + +|+0x00 +|запись/чтение (DLAB==1) +| + +Младший байт защелки делителя (DLL — Divisor Latch LSB) + +Это значение будет поделено от основного входного тактового сигнала (в IBM PC основной тактовый сигнал равен 1,8432 МГц), и полученный тактовый сигнал будет определять скорость передачи UART. Этот регистр содержит биты с 0 по 7 делителя. + +|+0x01 +|запись/чтение (DLAB==1) +| + +Старший байт защелки делителя (DLH — Divisor Latch MSB) + +Это значение будет разделено от основного входного тактового сигнала (в IBM PC основной тактовый сигнал равен 1,8432 МГц), и полученный тактовый сигнал будет определять скорость передачи данных UART. Этот регистр содержит биты с 8 по 15 делителя. + +|+0x01 +|запись/чтение (DLAB==0) +|Регистр разрешения прерываний (IER) + + +UART 8250/16450/1655 классифицирует события на четыре категории. Каждая категория может быть настроена на генерацию прерывания при возникновении любого из событий. UART 8250/16450/16550 генерирует единый внешний сигнал прерывания независимо от того, сколько событий в разрешённых категориях произошло. Задача главного процессора — обработать прерывание и затем опросить разрешённые категории прерываний (обычно прерывания разрешены для всех категорий), чтобы определить истинную причину(ы) прерывания. + +Бит 7 -> Зарезервирован, всегда 0. + +Бит 6 -> Зарезервирован, всегда 0. + +Бит 5 -> Зарезервирован, всегда 0. + +Бит 4 -> Зарезервирован, всегда 0. + +Бит 3 -> Разрешение прерывания по состоянию модема (EDSSI). Установка этого бита в "1" позволяет UART генерировать прерывание при изменении состояния одной или нескольких линий статуса. + +Бит 2 -> Разрешение прерывания по состоянию линии приёмника (ELSI). Установка этого бита в "1" приводит к генерации прерывания UART при обнаружении ошибки (или сигнала BREAK) во входящих данных. + +Бит 1 -> Разрешение прерывания по опустошению регистра передатчика (ETBEI). Установка этого бита в "1" приводит к генерации прерывания UART, когда в UART появляется место для одного или более дополнительных символов, предназначенных для передачи. + +Бит 0 -> Разрешение прерывания по наличию принятых данных (ERBFI). Установка этого бита в "1" приводит к генерации прерывания UART, когда UART принял достаточное количество символов для превышения порога FIFO, или истекло время ожидания FIFO (устаревшие данные), или принят одиночный символ при отключённом FIFO. + +|+0x02 +|запись +|Регистр управления FIFO (FCR — FIFO Control Register) (Этот порт отсутствует в UART 8250 и 16450.) + +Бит 7 -> Бит триггера приемника #1 + +Бит 6 -> Бит триггера приемника #0 + + +Эти два бита определяют, при каком количестве данных приемник должен генерировать прерывание, когда FIFO активен. + +7 6 Количество слов перед генерацией прерывания + +0 0 1 + +0 1 4 + +1 0 8 + +1 1 14 + +Бит 5 -> Зарезервирован, всегда 0. + +Бит 4 -> Зарезервирован, всегда 0. + +Бит 3 -> Выбор режима DMA. Если бит 0 установлен в "1" (FIFO включены), установка этого бита изменяет работу сигналов -RXRDY и -TXRDY с режима 0 на режим 1. + +Бит 2 -> Сброс передающего FIFO. При записи "1" в этот бит содержимое FIFO очищается. Любое слово, которое передается в данный момент, будет отправлено полностью. Эта функция полезна для прерывания передачи. + +Бит 1 -> Сброс приемного FIFO. При записи "1" в этот бит содержимое FIFO очищается. Любое слово, которое в данный момент собирается в сдвиговом регистре, будет принято полностью. + +Бит 0 -> Включение FIFO 16550. При установке этого бита активируются как передающий, так и приемный FIFO. Любое содержимое в регистре хранения, сдвиговых регистрах или FIFO теряется при включении или отключении FIFO. + + +|+0x02 +|чтение +|Регистр идентификации прерываний + +Бит 7 -> FIFO включены. На UART 8250/16450 этот бит равен нулю. + +Бит 6 -> FIFO включены. На UART 8250/16450 этот бит равен нулю. + +Бит 5 -> Зарезервирован, всегда 0. + +Бит 4 -> Зарезервирован, всегда 0. + +Бит 3 -> Бит идентификатора прерывания №2. На UART 8250/16450 этот бит равен нулю. + +Бит 2 -> Бит идентификатора прерывания №1 + +Бит 1 -> Бит идентификатора прерывания №0.Эти три бита объединяются для указания категории события, вызвавшего текущее прерывание. Эти категории имеют приоритеты, поэтому, если несколько категорий событий происходят одновременно, UART сообщит о более важных событиях первыми, и хост должен обрабатывать события в порядке их поступления. Все события, вызвавшие текущее прерывание, должны быть обработаны до генерации новых прерываний. (Это ограничение архитектуры ПК.) + +2 1 0 Приоритет Описание + +0 1 1 Первый Принятая ошибка (OE, PE, BI или FE) + +0 1 0 Второй Доступны принятые данные + +1 1 0 Второй Идентификация уровня триггера (Устаревшие данные в буфере приема) + +0 0 1 Третий Передатчик готов принять больше данных (THRE) + +0 0 0 Четвертый Изменение состояния модема (-CTS, -DSR, -RI или -DCD) + +Бит 0 -> Бит ожидания прерывания. Если этот бит установлен в "0", то как минимум одно прерывание ожидает обработки. + +|+0x03 +|запись/чтение +|Регистр управления линией (LCR — Line Control Register) + +Бит 7 -> Бит доступа к защелке делителя (DLAB). При установке доступ к регистру передачи/приема данных (THR/RBR) и регистру разрешения прерываний (IER) отключается. Любой доступ к этим портам перенаправляется к регистрам защелки делителя. Установка этого бита, загрузка регистров делителя и сброс DLAB должны выполняться при отключенных прерываниях. + +Бит 6 -> Установка прерывания. При установке в "1" передатчик начинает передавать непрерывный интервал (Spacing), пока этот бит не будет сброшен в "0". Это переопределяет любые передаваемые биты символов. + +Бит 5 -> Фиксированный бит четности. При включенной проверке четности установка этого бита приводит к тому, что бит четности всегда будет "1" или "0" в зависимости от значения бита 4. +Бит 4 -> Выбор четности (EPS). При включенной проверке четности и если бит 5 равен "0", установка этого бита приводит к использованию и ожиданию четной четности. В противном случае используется нечетная четность. + +Бит 3 -> Разрешение проверки четности (PEN). При установке в "1" бит четности вставляется между последним битом данных и стоповым битом. UART также ожидает наличие бита четности в принимаемых данных. + +Бит 2 -> Количество стоповых битов (STB). Если установлен в "1" и используются 5-битные слова данных, передается и ожидается 1.5 стоповых бита в каждом слове данных. Для 6, 7 и 8-битных слов данных передается и ожидается 2 стоповых бита. Если этот бит сброшен в "0", используется один стоповый бит в каждом слове данных. + +Бит 1 -> Бит выбора длины слова #1 (WLSB1) + +Бит 0 -> Бит выбора длины слова #0 (WLSB0) + +Вместе эти биты определяют количество битов в каждом слове данных. + +1 0 Длина слова + +0 0 5 бит данных + +0 1 6 бит данных + +1 0 7 бит данных + +1 1 8 бит данных + + +|+0x04 +|запись/чтение +|Регистр управления модемом (MCR — Modem Control Register) + +Бит 7 -> Зарезервирован, всегда 0. + +Бит 6 -> Зарезервирован, всегда 0. + +Бит 5 -> Зарезервирован, всегда 0. + +Бит 4 -> Режим петли (Loop-Back). При установке в "1" передатчик и приёмник UART соединяются внутри для диагностики. Также выходы управления модемом UART подключаются к его входам: CTS к RTS, DTR к DSR, OUT1 к RI, а OUT2 к DCD. + +Бит 3 -> OUT2. Вспомогательный выход, который процессор может установить в высокий или низкий уровень. В адаптере IBM PC (и большинстве клонов) OUT2 используется для отключения сигнала прерывания от UART 8250/16450/16550. + +Бит 2 -> OUT1. Вспомогательный выход, который процессор может установить в высокий или низкий уровень. На адаптере IBM PC не используется. + +Бит 1 -> Запрос на передачу (RTS). При установке в "1" выход линии -RTS UART переходит в низкий уровень (активное состояние). + +Бит 0 -> Готовность терминала данных (DTR). При установке в "1" выход линии -DTR UART переходит в низкий уровень (активное состояние). + + +|+0x05 +|запись/чтение +|Регистр состояния линии (LSR — Line Status Register) + +Бит 7 -> Ошибка в FIFO приемника. На UART 8250/16450 этот бит равен нулю. Этот бит устанавливается в «1», когда любой из байтов в FIFO имеет одно или несколько из следующих условий ошибки: PE, FE или BI. + +Бит 6 -> Передатчик пуст (TEMT). Когда установлен в «1», в FIFO передатчика или сдвиговом регистре передатчика не осталось слов. Передатчик полностью бездействует. + +Бит 5 -> Регистр хранения передатчика пуст (THRE). Когда установлен в «1», в FIFO (или регистре хранения) теперь есть место для передачи как минимум одного дополнительного слова. Передатчик может все еще передавать данные, когда этот бит установлен в «1». + +Бит 4 -> Прерывание по Break (BI). Приемник обнаружил сигнал Break. + +Бит 3 -> Ошибка кадрирования (FE). Обнаружен стартовый бит, но стоповый бит не появился в ожидаемое время. Принятое слово, вероятно, искажено. + +Бит 2 -> Ошибка четности (PE). Бит четности для принятого слова был некорректен. + +Бит 1 -> Ошибка переполнения (OE). Было получено новое слово, но в буфере приема не было места. Вновь поступившее слово в сдвиговом регистре отбрасывается. На UART 8250/16450 слово в регистре хранения отбрасывается, а вновь поступившее слово помещается в регистр хранения. + +Бит 0 -> Данные готовы (DR). Одно или несколько слов находятся в FIFO приемника, которые хост может прочитать. Слово должно быть полностью принято и перемещено из сдвигового регистра в FIFO (или регистр хранения для 8250/16450) до того, как этот бит будет установлен. + +|+0x06 +|запись/чтение +|Регистр состояния модема (MSR — Modem Status Register) + +Бит 7 -> Обнаружение несущей данных (DCD). Отражает состояние линии DCD на UART. + +Бит 6 -> Индикатор вызова (RI). Отражает состояние линии RI на UART. + +Бит 5 -> Готовность передатчика данных (DSR). Отражает состояние линии DSR на UART. + +Бит 4 -> Готовность к приёму (CTS). Отражает состояние линии CTS на UART. + +Бит 3 -> Изменение состояния обнаружения несущей данных (DDCD). Устанавливается в "1", если линия -DCD изменила состояние ещё раз с момента последнего чтения MSR хостом. + +Бит 2 -> Фронт сигнала вызова (TERI). Устанавливается в "1", если линия -RI перешла из низкого уровня в высокий с момента последнего чтения MSR хостом. + +Бит 1 -> Изменение состояния готовности передатчика данных (DDSR). Устанавливается в "1", если линия -DSR изменила состояние ещё раз с момента последнего чтения MSR хостом. + +Бит 0 -> Изменение состояния готовности к приёму (DCTS). Устанавливается в "1", если линия -CTS изменила состояние ещё раз с момента последнего чтения MSR хостом. + +|+0x07 +|запись/чтение +|Регистр Scratch (SCR — Scratch Register). Этот регистр не выполняет никакой функции в UART. Хост может записать любое значение в это место и позднее считать его. +|=== + +=== За пределами UART 16550A + +Хотя National Semiconductor не предлагала никаких компонентов, совместимых с 16550 и предоставляющих дополнительные функции, другие производители сделали это. Некоторые из этих компонентов описаны ниже. Следует понимать, что для эффективного использования этих улучшений могут потребоваться драйверы от производителя чипа, поскольку большинство популярных операционных систем не поддерживают функции, выходящие за рамки возможностей 16550. + +ST16650:: +По умолчанию эта часть аналогична NS16550A, но дополнительно можно включить расширенный 32-байтовый буфер отправки и приёма. Производитель — StarTech. + +TIL16660:: +По умолчанию эта часть ведёт себя аналогично NS16550A, но дополнительно может быть включён расширенный 64-байтный буфер передачи и приёма. Производится Texas Instruments. + +Hayes ESP:: +Эта проприетарная внешняя карта содержит буфер передачи и приема размером 2048 байт и поддерживает скорость передачи данных до 230,4 Кбит/с. Произведено компанией Hayes. + +В дополнение к этим "простым" UART многие производители выпускают интеллектуальные платы для последовательной связи. Такой тип конструкции обычно включает микропроцессор, который взаимодействует с несколькими UART, обрабатывает и буферизует данные, а затем при необходимости уведомляет основной процессор ПК. Поскольку в такой системе связи UART не доступны напрямую процессору ПК, производителю не обязательно использовать UART, совместимые с 8250, 16450 или 16550. Это дает разработчику свободу выбора компонентов с лучшими характеристиками производительности. + +[[sio]] +== Настройка драйвера [.filename]#sio# + +Драйвер [.filename]#sio# обеспечивает поддержку интерфейсов связи EIA RS-232C (CCITT V.24) на основе NS8250, NS16450, NS16550 и NS16550A. Также поддерживаются несколько многопортовых карт. Подробную техническую документацию смотрите на man:sio[4]. + +=== Digi International (DigiBoard) PC/8 + +_Предоставлено `{awebster}`. 26 августа 1995._ + +Вот фрагмент конфигурации с машины, на которой установлена плата Digi International PC/8 с чипом 16550. К ней подключено 8 модемов, работающих на этих 8 линиях, и они отлично функционируют. Не забудьте добавить `options COM_MULTIPORT`, иначе работа будет нестабильной! + +[.programlisting] +.... +device sio4 at isa? port 0x100 flags 0xb05 +device sio5 at isa? port 0x108 flags 0xb05 +device sio6 at isa? port 0x110 flags 0xb05 +device sio7 at isa? port 0x118 flags 0xb05 +device sio8 at isa? port 0x120 flags 0xb05 +device sio9 at isa? port 0x128 flags 0xb05 +device sio10 at isa? port 0x130 flags 0xb05 +device sio11 at isa? port 0x138 flags 0xb05 irq 9 +.... + +Хитрость настройки заключается в том, что старший бит флагов представляет последний порт SIO, в данном случае 11, поэтому флаги равны 0xb05. + +=== Boca 16 + +_Предоставлено `{whiteside}`. 26 августа 1995._ + +Процедуры по настройке платы Boca с 16 портами в FreeBSD довольно просты, но вам понадобится несколько вещей для успешной работы: + +. Вам необходимо либо установить исходные коды ядра, чтобы перекомпилировать нужные опции, либо найти кого-то, кто сделает это за вас. Стандартное ядро версии 2.0.5 _не_ включает поддержку нескольких портов, и в любом случае вам потребуется добавить запись устройства для каждого порта. +. Два, вам нужно знать прерывание и настройку ввода-вывода для вашей платы Boca, чтобы правильно установить эти параметры в ядре. + +Важное замечание — реальные микросхемы UART для Boca 16 находятся в соединительной коробке, а не на внутренней плате. Поэтому, если она отключена, попытки проверить эти порты завершатся неудачей. Я никогда не проверял загрузку с отключённой коробкой и последующим её подключением, и не рекомендую вам этого делать. + +Если у вас ещё нет настроенного файла конфигурации пользовательского ядра, обратитесь к extref:{handbook}[Конфигурация ядра, kernelconfig] в руководстве FreeBSD для получения общих инструкций. Ниже приведены конкретные настройки для платы Boca 16, предполагается, что вы используете ядро с именем MYKERNEL и редактируете его с помощью vi. + +[.procedure] +==== +. Добавьте строку ++ +[.programlisting] +.... +options COM_MULTIPORT +.... +в конфигурационный файл. +. Где находятся текущие строки `device sio__n__`, вам нужно добавить ещё 16 устройств. В следующем примере показана плата Boca Board с прерыванием 3 и базовым адресом ввода-вывода 100h. Адрес ввода-вывода для каждого порта увеличивается на 8 в шестнадцатеричной системе относительно предыдущего порта, поэтому адреса будут 100h, 108h, 110h... ++ +[.programlisting] +.... +device sio1 at isa? port 0x100 flags 0x1005 +device sio2 at isa? port 0x108 flags 0x1005 +device sio3 at isa? port 0x110 flags 0x1005 +device sio4 at isa? port 0x118 flags 0x1005 +... +device sio15 at isa? port 0x170 flags 0x1005 +device sio16 at isa? port 0x178 flags 0x1005 irq 3 +.... ++ +Запись flags _обязательно_ должна быть изменена по сравнению с этим примером, если вы не используете точно такие же назначения sio. Флаги устанавливаются в соответствии с 0x``__MYY__``, где _M_ обозначает младший номер главного порта (последний порт на Boca 16), а _YY_ указывает, включен или выключен FIFO (включен), используется ли разделение IRQ (да) и есть ли регистр управления IRQ, совместимый с AST/4 (нет). В этом примере, ++ +[.programlisting] +.... + flags + 0x1005 +.... +указывает, что основной порт - sio16. Если добавить другую плату и назначить порты с sio17 по sio28, флаги для всех 16 портов на _этой_ плате будут 0x1C05, где 1C обозначает минорный номер основного порта. Не изменяйте значение 05. +. Сохраните и завершите конфигурацию ядра, перекомпилируйте, установите и перезагрузитесь. Предполагая, что вы успешно установили перекомпилированное ядро и настроили правильный адрес и IRQ, сообщение при загрузке должно указывать на успешное обнаружение портов Boca следующим образом: (очевидно, номера sio, IO и IRQ могут отличаться) ++ +[source, shell] +.... +sio1 at 0x100-0x107 flags 0x1005 on isa +sio1: type 16550A (multiport) +sio2 at 0x108-0x10f flags 0x1005 on isa +sio2: type 16550A (multiport) +sio3 at 0x110-0x117 flags 0x1005 on isa +sio3: type 16550A (multiport) +sio4 at 0x118-0x11f flags 0x1005 on isa +sio4: type 16550A (multiport) +sio5 at 0x120-0x127 flags 0x1005 on isa +sio5: type 16550A (multiport) +sio6 at 0x128-0x12f flags 0x1005 on isa +sio6: type 16550A (multiport) +sio7 at 0x130-0x137 flags 0x1005 on isa +sio7: type 16550A (multiport) +sio8 at 0x138-0x13f flags 0x1005 on isa +sio8: type 16550A (multiport) +sio9 at 0x140-0x147 flags 0x1005 on isa +sio9: type 16550A (multiport) +sio10 at 0x148-0x14f flags 0x1005 on isa +sio10: type 16550A (multiport) +sio11 at 0x150-0x157 flags 0x1005 on isa +sio11: type 16550A (multiport) +sio12 at 0x158-0x15f flags 0x1005 on isa +sio12: type 16550A (multiport) +sio13 at 0x160-0x167 flags 0x1005 on isa +sio13: type 16550A (multiport) +sio14 at 0x168-0x16f flags 0x1005 on isa +sio14: type 16550A (multiport) +sio15 at 0x170-0x177 flags 0x1005 on isa +sio15: type 16550A (multiport) +sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa +sio16: type 16550A (multiport master) +.... ++ +Если сообщения проходят слишком быстро, чтобы их увидеть, ++ +[source, shell] +.... +# dmesg | more +.... +покажет вам сообщения загрузки. +. Далее необходимо создать соответствующие записи в [.filename]#/dev# для устройств с помощью скрипта [.filename]#/dev/MAKEDEV#. Этот шаг можно пропустить, если вы используете FreeBSD 5.X с ядром, в котором включена поддержка man:devfs[5]. ++ +Если вам необходимо создать записи в [.filename]#/dev#, выполните следующую команду от имени `root`: ++ +[source, shell] +.... +# cd /dev +# ./MAKEDEV tty1 +# ./MAKEDEV cua1 + +(everything in between) +# ./MAKEDEV ttyg +# ./MAKEDEV cuag +.... ++ +Если по какой-то причине вам не нужны или не требуются устройства исходящих соединений, вы можете обойтись без создания устройств [.filename]#cua*#. +. Если вам нужен быстрый и небрежный способ убедиться, что устройства работают, вы можете просто подключить модем к каждому порту и (как root) ++ +[source, shell] +.... +# echo at > ttyd* +.... +для каждого устройства, которое вы создали. Вы _должны_ увидеть, как мигают индикаторы RX для каждого рабочего порта. +==== + +=== Поддержка дешёвых многоканальных UART-карт + +_Предоставлено Хельге Ольдахом_ mailto:hmo@sep.hamburg.com[hmo@sep.hamburg.com], сентябрь 1999 года + +Вы когда-нибудь задумывались о поддержке FreeBSD вашей 20-долларовой многофункциональной карты с двумя (или более) COM-портами, разделяющими IRQ? Вот как это сделать: + +Обычно единственный способ поддержки таких плат — использование отдельного IRQ для каждого порта. Например, если ваша материнская плата имеет встроенный порт [.filename]#COM1# (он же [.filename]#sio0# — адрес ввода-вывода 0x3F8 и IRQ 4), а у вас есть расширительная плата с двумя UART, то обычно их нужно настроить как [.filename]#COM2# (он же [.filename]#sio1# — адрес ввода-вывода 0x2F8 и IRQ 3), а третий порт (он же [.filename]#sio2#) — с адресом 0x3E8 и IRQ 5. Очевидно, это расточительное использование ресурсов IRQ, так как в принципе возможно запустить оба порта расширительной платы с одним IRQ, используя конфигурацию `COM_MULTIPORT`, описанную в предыдущих разделах. + +Такие недорогие платы ввода-вывода обычно имеют перемычечную матрицу 4x3 для COM-портов, подобную следующей: + +[.programlisting] +.... + o o o * +Port A | + o * o * +Port B | + o * o o +IRQ 2 3 4 5 +.... + +Показано, что порт A подключен для IRQ 5, а порт B — для IRQ 3. Столбцы IRQ на вашей конкретной плате могут отличаться — другие платы могут предоставлять перемычки для IRQ 3, 4, 5 и 7. + +Можно было бы сделать вывод, что подключение обоих портов к IRQ 3 с помощью самодельной перемычки, замыкающей все три точки соединения в колонке IRQ 3, решит проблему, но это не так. Невозможно дублировать IRQ 3, потому что выходные драйверы каждого UART соединены по схеме "монтажное И", и если один из UART управляет IRQ 3, выходной сигнал будет не таким, как ожидается. В зависимости от реализации платы расширения или материнской платы, линия IRQ 3 будет постоянно находиться в высоком уровне или всегда оставаться низкой. + +Вам необходимо разделить драйверы прерываний для двух UART, чтобы линия прерывания платы поднималась только тогда (и только тогда), когда один из UART вызывает прерывание, и оставалась низкой в противном случае. Решение было предложено Йоргом Вуншем mailto:j@ida.interface-business.de[j@ida.interface-business.de]: припаять монтажную схему "монтажное ИЛИ", состоящую из двух диодов (предпочтительно германиевых или типа Шоттки) и резистора на 1 кОм. Вот схема, начиная с контактного поля 4x3 выше: + +[.programlisting] +.... + Diode + +---------->|-------+ + / | + o * o o | 1 kOhm +Port A +----|######|-------+ + o * o o | | +Port B `-------------------+ ==+== + o * o o | Ground + \ | + +--------->|-------+ +IRQ 2 3 4 5 Diode +.... + +Катоды диодов соединены в общей точке вместе с подтягивающим резистором 1 кОм. Важно подключить резистор к земле, чтобы избежать плавания линии IRQ на шине. + +Теперь мы готовы настроить ядро. Продолжая этот пример, мы настроим: + +[.programlisting] +.... +# standard on-board COM1 port +device sio0 at isa? port "IO_COM1" flags 0x10 +# patched-up multi-I/O extension board +options COM_MULTIPORT +device sio1 at isa? port "IO_COM2" flags 0x205 +device sio2 at isa? port "IO_COM3" flags 0x205 irq 3 +.... + +Обратите внимание, что настройка `flags` для [.filename]#sio1# и [.filename]#sio2# действительно важна; подробности смотрите в man:sio[4]. (Обычно `2` в атрибуте "flags" относится к [.filename]#sio#`2`, который содержит IRQ, и вам наверняка потребуется нижний ниббл `5`.) При включённом режиме подробного вывода ядра это должно дать что-то похожее на следующее: + +[source, shell] +.... +sio0: irq maps: 0x1 0x11 0x1 0x1 +sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa +sio0: type 16550A +sio1: irq maps: 0x1 0x9 0x1 0x1 +sio1 at 0x2f8-0x2ff flags 0x205 on isa +sio1: type 16550A (multiport) +sio2: irq maps: 0x1 0x9 0x1 0x1 +sio2 at 0x3e8-0x3ef irq 3 flags 0x205 on isa +sio2: type 16550A (multiport master) +.... + +Хотя [.filename]#/sys/i386/isa/sio.c# выглядит несколько загадочно из-за использования массива "irq maps" выше, основная идея заключается в том, что вы наблюдаете `0x1` на первой, третьей и четвертой позициях. Это означает, что соответствующий IRQ был установлен при выводе и сброшен после, что полностью соответствует ожиданиям. Если ваше ядро не демонстрирует такое поведение, скорее всего, проблема в вашей разводке. + +[[cy]] +== Настройка драйвера [.filename]#cy# + +_Предоставлено Алексом Нэшем. 6 июня 1996._ + +Многопортовые карты Cyclades основаны на драйвере [.filename]#cy#, а не на обычном драйвере [.filename]#sio#, используемом другими многопортовыми картами. Настройка сводится к простым действиям: + +[.procedure] +==== +. Добавьте устройство [.filename]#cy# в конфигурацию ядра (обратите внимание, что параметры irq и iomem могут отличаться). ++ +[.programlisting] +.... +device cy0 at isa? irq 10 iomem 0xd4000 iosiz 0x2000 +.... +. Перестройте и установите новый образ ядра. +. Создайте файлы устройств, введя (следующий пример предполагает 8-портовую плату): ++ +[source, shell] +.... +# cd /dev +# for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done +.... + +. Если необходимо, добавьте записи для коммутируемого доступа в [.filename]#/etc/ttys#, дублируя записи для последовательных устройств (`ttyd`) и используя `ttyc` вместо `ttyd`. Например: ++ +[.programlisting] +.... +ttyc0 "/usr/libexec/getty std.38400" unknown on insecure +ttyc1 "/usr/libexec/getty std.38400" unknown on insecure +ttyc2 "/usr/libexec/getty std.38400" unknown on insecure +... +ttyc7 "/usr/libexec/getty std.38400" unknown on insecure +.... +. Перезагрузитесь с новым ядром. +==== + +== Настройка драйвера [.filename]#si# + +_Предоставлено `{nsayer}`. 25 марта 1998._ + +Специальные мультипортные карты Specialix SI/XIO и SX используют драйвер [.filename]#si#. На одной машине может быть установлено до 4 хост-карт. Поддерживаются следующие хост-карты: + +* ISA SI/XIO host card (2 versions) +* EISA SI/XIO host card +* PCI SI/XIO host card +* ISA SX host card +* PCI SX host card + +Хотя хост-карты SX и SI/XIO выглядят заметно по-разному, их функциональность практически одинакова. Хост-карты не используют порты ввода-вывода, а вместо этого требуют 32К сегмента памяти. Заводская конфигурация для карт ISA размещает этот сегмент по адресу `0xd0000-0xd7fff`. Также им требуется IRQ. Карты PCI, разумеется, настраиваются автоматически. + +Вы можете подключить до 4 внешних модулей к каждой карте хоста. Внешние модули содержат либо 4, либо 8 последовательных портов. Они бывают следующих видов: + +* Модули SI на 4 или 8 портов. Поддерживается скорость до 57600 бит/с на каждом порту. +* XIO 8-портовые модули. Поддерживается скорость до 115200 бит/с на каждом порту. Один из типов модулей XIO имеет 7 последовательных и 1 параллельный порт. +* Модули SXDC с 8 портами. Поддерживается скорость до 921600 бит/с на каждом порту. Как и в случае с XIO, доступен модуль с одним параллельным портом. + +Для настройки карты хоста ISA добавьте следующую строку в файл конфигурации ядра, изменив числа по мере необходимости: + +[.programlisting] +.... +device si0 at isa? iomem 0xd0000 irq 11 +.... + +Допустимые номера IRQ: 9, 10, 11, 12 и 15 для SX ISA host cards и 11, 12 и 15 для SI/XIO ISA host cards. + +Для настройки карты EISA или PCI используйте следующую строку: + +[.programlisting] +.... +device si0 +.... + +После добавления записи конфигурации пересоберите и установите свое новое ядро. + +[NOTE] +==== +Следующий шаг не обязателен, если вы используете man:devfs[5] в FreeBSD 5._X_. +==== + +После перезагрузки с новым ядром необходимо создать файлы устройств в [.filename]#/dev#. Скрипт [.filename]#MAKEDEV# выполнит эту задачу за вас. Подсчитайте общее количество портов и введите: + +[source, shell] +.... +# cd /dev +# ./MAKEDEV ttyAnn cuaAnn +.... + +(где _nn_ — количество портов) + +Если вы хотите, чтобы приглашения к входу отображались на этих портах, вам нужно добавить такие строки в [.filename]#/etc/ttys#: + +[.programlisting] +.... +ttyA01 "/usr/libexec/getty std.9600" vt100 on insecure +.... + +Измените тип терминала по необходимости. Для модемов подойдут `dialup` или `unknown`. diff --git a/documentation/content/ru/articles/serial-uart/_index.po b/documentation/content/ru/articles/serial-uart/_index.po new file mode 100644 index 0000000000..bd93bb319b --- /dev/null +++ b/documentation/content/ru/articles/serial-uart/_index.po @@ -0,0 +1,3864 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-24 18:35+0300\n" +"PO-Revision-Date: 2025-08-16 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/articlesserial-uart_index/ru/>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 4.17\n" + +#. type: Yaml Front Matter Hash Value: description +#: documentation/content/en/articles/serial-uart/_index.adoc:1 +#, no-wrap +msgid "Detailed information about the use of serial ports and UART with FreeBSD" +msgstr "Подробная информация об использовании последовательных портов и UART в FreeBSD" + +#. type: Title = +#: documentation/content/en/articles/serial-uart/_index.adoc:1 +#: documentation/content/en/articles/serial-uart/_index.adoc:11 +#, no-wrap +msgid "Serial and UART Tutorial" +msgstr "Учебное руководство по последовательному интерфейсу и UART" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:44 +msgid "Abstract" +msgstr "Аннотация" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:46 +msgid "This article talks about using serial hardware with FreeBSD." +msgstr "" +"Эта статья рассказывает об использовании последовательного оборудования с " +"FreeBSD." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:48 +msgid "'''" +msgstr "'''" + +#. type: Title == +#: documentation/content/en/articles/serial-uart/_index.adoc:52 +#, no-wrap +msgid "The UART: What it is and how it works" +msgstr "UART: Что это и как работает" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:55 +msgid "_Copyright (R) 1996 `{uhclem}`, All Rights Reserved. 13 January 1996._" +msgstr "" +"_Copyright (R) 1996 `{uhclem}`, All Rights Reserved. 13 января 1996 год_" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:59 +msgid "" +"The Universal Asynchronous Receiver/Transmitter (UART) controller is the key " +"component of the serial communications subsystem of a computer. The UART " +"takes bytes of data and transmits the individual bits in a sequential " +"fashion. At the destination, a second UART re-assembles the bits into " +"complete bytes." +msgstr "" +"Универсальный асинхронный приёмопередатчик (UART) — это ключевой компонент " +"подсистемы последовательной передачи данных компьютера. UART принимает байты " +"данных и передаёт отдельные биты последовательно. На стороне приёмника " +"второй UART собирает биты обратно в полные байты." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:61 +msgid "" +"Serial transmission is commonly used with modems and for non-networked " +"communication between computers, terminals and other devices." +msgstr "" +"Последовательная передача данных обычно используется с модемами и для не " +"сетевого взаимодействия между компьютерами, терминалами и другими " +"устройствами." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:65 +msgid "" +"There are two primary forms of serial transmission: Synchronous and " +"Asynchronous. Depending on the modes that are supported by the hardware, " +"the name of the communication sub-system will usually include a `A` if it " +"supports Asynchronous communications, and a `S` if it supports Synchronous " +"communications. Both forms are described below." +msgstr "" +"Существует две основные формы последовательной передачи данных: синхронная и " +"асинхронная. В зависимости от режимов, поддерживаемых оборудованием, " +"название подсистемы связи обычно включает букву `A`, если она поддерживает " +"асинхронную передачу, и букву `S`, если поддерживается синхронная передача. " +"Обе формы описаны ниже." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:67 +msgid "Some common acronyms are:" +msgstr "Некоторые распространённые сокращения:" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:70 +msgid "UART Universal Asynchronous Receiver/Transmitter" +msgstr "" +"UART Universal Asynchronous Receiver/Transmitter — Универсальный асинхронный " +"приёмопередатчик" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:73 +msgid "USART Universal Synchronous-Asynchronous Receiver/Transmitter" +msgstr "" +"USART Universal Synchronous-Asynchronous Receiver/Transmitter — " +"Универсальный синхронно-асинхронный приёмопередатчик" + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:74 +#, no-wrap +msgid "Synchronous Serial Transmission" +msgstr "Синхронная последовательная передача" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:79 +msgid "" +"Synchronous serial transmission requires that the sender and receiver share " +"a clock with one another, or that the sender provide a strobe or other " +"timing signal so that the receiver knows when to \"read\" the next bit of " +"the data. In most forms of serial Synchronous communication, if there is no " +"data available at a given instant to transmit, a fill character must be sent " +"instead so that data is always being transmitted. Synchronous communication " +"is usually more efficient because only data bits are transmitted between " +"sender and receiver, and synchronous communication can be more costly if " +"extra wiring and circuits are required to share a clock signal between the " +"sender and receiver." +msgstr "" +"Синхронная последовательная передача данных требует, чтобы отправитель и " +"получатель имели общий тактовый сигнал, либо чтобы отправитель предоставлял " +"строб-сигнал или другой сигнал синхронизации, чтобы получатель знал, когда " +"\"считывать\" следующий бит данных. В большинстве форм синхронной " +"последовательной связи, если в данный момент нет доступных данных для " +"передачи, вместо них должен быть отправлен заполняющий символ, чтобы " +"передача данных не прерывалась. Синхронная связь обычно более эффективна, " +"так как между отправителем и получателем передаются только биты данных, " +"однако она может быть более затратной, если требуются дополнительные провода " +"и схемы для обмена тактовым сигналом между отправителем и получателем." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:83 +msgid "" +"A form of Synchronous transmission is used with printers and fixed disk " +"devices in that the data is sent on one set of wires while a clock or strobe " +"is sent on a different wire. Printers and fixed disk devices are not " +"normally serial devices because most fixed disk interface standards send an " +"entire word of data for each clock or strobe signal by using a separate wire " +"for each bit of the word. In the PC industry, these are known as Parallel " +"devices." +msgstr "" +"Форма синхронной передачи используется с принтерами и устройствами с " +"жёсткими дисками, где данные передаются по одному набору проводов, а " +"тактовый сигнал или строб — по другому проводу. Принтеры и устройства с " +"жёсткими дисками обычно не являются последовательными устройствами, так как " +"большинство стандартов интерфейсов жёстких дисков передают целое слово " +"данных для каждого тактового сигнала или строба, используя отдельный провод " +"для каждого бита слова. В индустрии ПК такие устройства известны как " +"параллельные." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:86 +msgid "" +"The standard serial communications hardware in the PC does not support " +"Synchronous operations. This mode is described here for comparison purposes " +"only." +msgstr "" +"Стандартное оборудование для последовательной связи в ПК не поддерживает " +"синхронные операции. Этот режим описан здесь только для сравнения." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:87 +#, no-wrap +msgid "Asynchronous Serial Transmission" +msgstr "Асинхронная последовательная передача" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:91 +msgid "" +"Asynchronous transmission allows data to be transmitted without the sender " +"having to send a clock signal to the receiver. Instead, the sender and " +"receiver must agree on timing parameters in advance and special bits are " +"added to each word which are used to synchronize the sending and receiving " +"units." +msgstr "" +"Асинхронная передача позволяет передавать данные без необходимости отправки " +"тактового сигнала от отправителя к получателю. Вместо этого отправитель и " +"получатель заранее согласовывают параметры синхронизации, а к каждому слову " +"добавляются специальные биты, которые используются для синхронизации " +"передающего и принимающего устройств." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:96 +msgid "" +"When a word is given to the UART for Asynchronous transmissions, a bit " +"called the \"Start Bit\" is added to the beginning of each word that is to " +"be transmitted. The Start Bit is used to alert the receiver that a word of " +"data is about to be sent, and to force the clock in the receiver into " +"synchronization with the clock in the transmitter. These two clocks must be " +"accurate enough to not have the frequency drift by more than 10% during the " +"transmission of the remaining bits in the word. (This requirement was set " +"in the days of mechanical teleprinters and is easily met by modern " +"electronic equipment.)" +msgstr "" +"При передаче слова через UART в асинхронном режиме к началу каждого " +"передаваемого слова добавляется бит, называемый \"стартовым битом\". " +"Стартовый бит используется для оповещения приёмника о начале передачи слова " +"данных, а также для синхронизации тактового сигнала приёмника с тактовым " +"сигналом передатчика. Эти два тактовых сигнала должны быть достаточно " +"точными, чтобы их расхождение по частоте не превышало 10% во время передачи " +"оставшихся битов слова. (Данное требование было установлено во времена " +"механических телетайпов и легко выполняется современным электронным " +"оборудованием.)" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:100 +msgid "" +"After the Start Bit, the individual bits of the word of data are sent, with " +"the Least Significant Bit (LSB) being sent first. Each bit in the " +"transmission is transmitted for exactly the same amount of time as all of " +"the other bits, and the receiver \"looks\" at the wire at approximately " +"halfway through the period assigned to each bit to determine if the bit is a " +"`1` or a `0`. For example, if it takes two seconds to send each bit, the " +"receiver will examine the signal to determine if it is a `1` or a `0` after " +"one second has passed, then it will wait two seconds and then examine the " +"value of the next bit, and so on." +msgstr "" +"После стартового бита передаются отдельные биты слова данных, начиная с " +"младшего значащего бита (LSB). Каждый бит передается в течение точно такого " +"же времени, как и все остальные биты, и приемник \"проверяет\" состояние " +"линии примерно на середине интервала, отведенного для каждого бита, чтобы " +"определить, является ли бит `1` или `0`. Например, если передача каждого " +"бита занимает две секунды, приемник проверит сигнал, чтобы определить, " +"является ли он `1` или `0`, через одну секунду, затем подождет две секунды и " +"проверит значение следующего бита, и так далее." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:103 +msgid "" +"The sender does not know when the receiver has \"looked\" at the value of " +"the bit. The sender only knows when the clock says to begin transmitting " +"the next bit of the word." +msgstr "" +"Отправитель не знает, когда получатель «посмотрел» значение бита. " +"Отправитель знает только, когда по тактовому сигналу нужно начать передачу " +"следующего бита слова." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:107 +msgid "" +"When the entire data word has been sent, the transmitter may add a Parity " +"Bit that the transmitter generates. The Parity Bit may be used by the " +"receiver to perform simple error checking. Then at least one Stop Bit is " +"sent by the transmitter." +msgstr "" +"Когда все слово данных отправлено, передатчик может добавить бит четности, " +"который он генерирует. Бит четности может быть использован приемником для " +"выполнения простой проверки на ошибки. Затем передатчик отправляет как " +"минимум один стоповый бит." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:111 +msgid "" +"When the receiver has received all of the bits in the data word, it may " +"check for the Parity Bits (both sender and receiver must agree on whether a " +"Parity Bit is to be used), and then the receiver looks for a Stop Bit. If " +"the Stop Bit does not appear when it is supposed to, the UART considers the " +"entire word to be garbled and will report a Framing Error to the host " +"processor when the data word is read. The usual cause of a Framing Error is " +"that the sender and receiver clocks were not running at the same speed, or " +"that the signal was interrupted." +msgstr "" +"Когда приемник получил все биты в слове данных, он может проверить биты " +"четности (как отправитель, так и приемник должны договориться о том, будет " +"ли использоваться бит четности), а затем приемник ищет стоповый бит. Если " +"стоповый бит не появляется, когда должен, UART считает все слово искаженным " +"и сообщит об ошибке кадрирования главному процессору при чтении слова " +"данных. Обычная причина ошибки кадрирования — несовпадение скорости тактовых " +"сигналов отправителя и приемника или прерывание сигнала." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:114 +msgid "" +"Regardless of whether the data was received correctly or not, the UART " +"automatically discards the Start, Parity and Stop bits. If the sender and " +"receiver are configured identically, these bits are not passed to the host." +msgstr "" +"Независимо от того, были ли данные получены правильно или нет, UART " +"автоматически отбрасывает бит чётности, стартовый и стоповый биты. Если " +"отправитель и получатель настроены одинаково, эти биты не передаются хосту." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:116 +msgid "" +"If another word is ready for transmission, the Start Bit for the new word " +"can be sent as soon as the Stop Bit for the previous word has been sent." +msgstr "" +"Если готово следующее слово для передачи, стартовый бит нового слова может " +"быть отправлен сразу после того, как будет отправлен стоповый бит " +"предыдущего слова." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:118 +msgid "" +"As asynchronous data is \"self synchronizing\", if there is no data to " +"transmit, the transmission line can be idle." +msgstr "" +"Поскольку асинхронные данные являются \"самосинхронизирующимися\", если нет " +"данных для передачи, линия передачи может быть неактивна." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:119 +#, no-wrap +msgid "Other UART Functions" +msgstr "Другие функции UART" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:124 +msgid "" +"In addition to the basic job of converting data from parallel to serial for " +"transmission and from serial to parallel on reception, a UART will usually " +"provide additional circuits for signals that can be used to indicate the " +"state of the transmission media, and to regulate the flow of data in the " +"event that the remote device is not prepared to accept more data. For " +"example, when the device connected to the UART is a modem, the modem may " +"report the presence of a carrier on the phone line while the computer may be " +"able to instruct the modem to reset itself or to not take calls by raising " +"or lowering one more of these extra signals. The function of each of these " +"additional signals is defined in the EIA RS232-C standard." +msgstr "" +"Помимо основной задачи преобразования данных из параллельного формата в " +"последовательный для передачи и из последовательного в параллельный при " +"приеме, UART обычно предоставляет дополнительные схемы для сигналов, которые " +"могут использоваться для указания состояния среды передачи и регулирования " +"потока данных в случае, если удаленное устройство не готово принимать больше " +"данных. Например, когда устройство, подключенное к UART, является модемом, " +"модем может сообщать о наличии несущей на телефонной линии, в то время как " +"компьютер может дать команду модему сбросить себя или не принимать вызовы, " +"поднимая или опуская один или несколько из этих дополнительных сигналов. " +"Функция каждого из этих дополнительных сигналов определена в стандарте EIA " +"RS232-C." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:125 +#, no-wrap +msgid "The RS232-C and V.24 Standards" +msgstr "Стандарты RS232-C и V.24" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:129 +msgid "" +"In most computer systems, the UART is connected to circuitry that generates " +"signals that comply with the EIA RS232-C specification. There is also a " +"CCITT standard named V.24 that mirrors the specifications included in RS232-" +"C." +msgstr "" +"В большинстве компьютерных систем UART подключен к схеме, которая генерирует " +"сигналы, соответствующие спецификации EIA RS232-C. Также существует стандарт " +"CCITT под названием V.24, который отражает спецификации, включенные в RS232-" +"C." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:130 +#, no-wrap +msgid "RS232-C Bit Assignments (Marks and Spaces)" +msgstr "Назначения битов RS232-C (метки и пробелы)" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:134 +msgid "" +"In RS232-C, a value of `1` is called a `Mark` and a value of `0` is called a " +"`Space`. When a communication line is idle, the line is said to be " +"\"Marking\", or transmitting continuous `1` values." +msgstr "" +"В стандарте RS232-C значение `1` называется `Маркер` (Mark), а значение `0` " +"— `Пробел` (Space). Когда линия связи находится в состоянии покоя, говорят, " +"что она \"маркирует\" (Marking), то есть передаёт непрерывные значения `1`." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:139 +msgid "" +"The Start bit always has a value of `0` (a Space). The Stop Bit always has " +"a value of `1` (a Mark). This means that there will always be a Mark (1) to " +"Space (0) transition on the line at the start of every word, even when " +"multiple word are transmitted back to back. This guarantees that sender and " +"receiver can resynchronize their clocks regardless of the content of the " +"data bits that are being transmitted." +msgstr "" +"Стартовый бит всегда имеет значение `0` (пробел). Стоповый бит всегда имеет " +"значение `1` (метка). Это означает, что на линии всегда будет переход от " +"метки (1) к пробелу (0) в начале каждого слова, даже при передаче нескольких " +"слов подряд. Это гарантирует, что отправитель и получатель могут " +"синхронизировать свои тактовые сигналы независимо от содержимого " +"передаваемых битов данных." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:141 +msgid "" +"The idle time between Stop and Start bits does not have to be an exact " +"multiple (including zero) of the bit rate of the communication link, but " +"most UARTs are designed this way for simplicity." +msgstr "" +"Время простоя между стоповым и стартовым битами не обязательно должно быть " +"точным кратным (включая ноль) скорости передачи данных коммуникационного " +"канала, однако большинство UART спроектированы таким образом для простоты." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:145 +msgid "" +"In RS232-C, the \"Marking\" signal (a `1`) is represented by a voltage " +"between -2 VDC and -12 VDC, and a \"Spacing\" signal (a `0`) is represented " +"by a voltage between 0 and +12 VDC. The transmitter is supposed to send +12 " +"VDC or -12 VDC, and the receiver is supposed to allow for some voltage loss " +"in long cables. Some transmitters in low power devices (like portable " +"computers) sometimes use only +5 VDC and -5 VDC, but these values are still " +"acceptable to a RS232-C receiver, provided that the cable lengths are short." +msgstr "" +"В стандарте RS232-C сигнал «Marking» (логическая `1`) представлен " +"напряжением от -2 В до -12 В, а сигнал «Spacing» (логический `0`) — " +"напряжением от 0 В до +12 В. Передатчик должен выдавать +12 В или -12 В, а " +"приёмник должен учитывать возможные потери напряжения в длинных кабелях. " +"Некоторые маломощные передатчики (например, в портативных компьютерах) " +"иногда используют только +5 В и -5 В, но эти значения всё ещё допустимы для " +"приёмника RS232-C при условии использования коротких кабелей." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:146 +#, no-wrap +msgid "RS232-C Break Signal" +msgstr "Cигнал Break в RS232-C" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:150 +msgid "" +"RS232-C also specifies a signal called a `Break`, which is caused by sending " +"continuous Spacing values (no Start or Stop bits). When there is no " +"electricity present on the data circuit, the line is considered to be " +"sending `Break`." +msgstr "" +"RS232-C также определяет сигнал под названием `Break`, который вызывается " +"передачей непрерывных значений Spacing (без стартовых или стоповых битов). " +"Когда на линии данных отсутствует напряжение, считается, что линия передает " +"`Break`." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:153 +msgid "" +"The `Break` signal must be of a duration longer than the time it takes to " +"send a complete byte plus Start, Stop and Parity bits. Most UARTs can " +"distinguish between a Framing Error and a Break, but if the UART cannot do " +"this, the Framing Error detection can be used to identify Breaks." +msgstr "" +"Сигнал `Break` должен иметь длительность больше, чем время, необходимое для " +"передачи полного байта, включая стартовый, стоповый и биты четности. " +"Большинство UART способны различить ошибку кадрирования и сигнал Break, но " +"если UART не поддерживает эту функцию, для определения Break можно " +"использовать обнаружение ошибки кадрирования." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:156 +msgid "" +"In the days of teleprinters, when numerous printers around the country were " +"wired in series (such as news services), any unit could cause a `Break` by " +"temporarily opening the entire circuit so that no current flowed. This was " +"used to allow a location with urgent news to interrupt some other location " +"that was currently sending information." +msgstr "" +"Во времена телетайпов, когда множество принтеров по всей стране были " +"соединены последовательно (например, в службах новостей), любое устройство " +"могло вызвать `Break`, временно размыкая всю цепь, чтобы ток не протекал. " +"Это использовалось для того, чтобы место с срочными новостями могло прервать " +"устройство в другом месте, которое в данный момент передавало информацию." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:161 +msgid "" +"In modern systems there are two types of Break signals. If the Break is " +"longer than 1.6 seconds, it is considered a \"Modem Break\", and some modems " +"can be programmed to terminate the conversation and go on-hook or enter the " +"modems' command mode when the modem detects this signal. If the Break is " +"smaller than 1.6 seconds, it signifies a Data Break and it is up to the " +"remote computer to respond to this signal. Sometimes this form of Break is " +"used as an Attention or Interrupt signal and sometimes is accepted as a " +"substitute for the ASCII CONTROL-C character." +msgstr "" +"В современных системах существует два типа сигналов Break. Если Break длится " +"дольше 1,6 секунд, он считается \"Модемным Break\", и некоторые модемы можно " +"запрограммировать на завершение соединения и переход в режим ожидания или " +"вход в командный режим модема при обнаружении этого сигнала. Если Break " +"короче 1,6 секунд, это означает \"Break данных\", и удалённый компьютер " +"должен решить, как реагировать на этот сигнал. Иногда такая форма Break " +"используется как сигнал \"Внимание\" или \"Прерывание\", а иногда " +"принимается как замена символу ASCII CONTROL-C." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:163 +msgid "" +"Marks and Spaces are also equivalent to \"Holes\" and \"No Holes\" in paper " +"tape systems." +msgstr "" +"Метки и пробелы также эквивалентны \"дыркам\" и \"отсутствию дырок\" в " +"системах с бумажной лентой." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:168 +msgid "" +"Breaks cannot be generated from paper tape or from any other byte value, " +"since bytes are always sent with Start and Stop bit. The UART is usually " +"capable of generating the continuous Spacing signal in response to a special " +"command from the host processor." +msgstr "" +"Разрывы не могут быть сгенерированы с перфоленты или из любого другого " +"байтового значения, поскольку байты всегда отправляются со стартовым и " +"стоповым битами. UART обычно способен генерировать непрерывный сигнал " +"Spacing в ответ на специальную команду от главного управляющего устройства " +"(процессора передачи)." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:170 +#, no-wrap +msgid "RS232-C DTE and DCE Devices" +msgstr "RS232-C устройства DTE и DCE" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:176 +msgid "" +"The RS232-C specification defines two types of equipment: the Data Terminal " +"Equipment (DTE) and the Data Carrier Equipment (DCE). Usually, the DTE " +"device is the terminal (or computer), and the DCE is a modem. Across the " +"phone line at the other end of a conversation, the receiving modem is also a " +"DCE device and the computer that is connected to that modem is a DTE " +"device. The DCE device receives signals on the pins that the DTE device " +"transmits on, and vice versa." +msgstr "" +"Спецификация RS232-C определяет два типа оборудования: оконечное " +"оборудование данных (DTE — Data Terminal Equipment) и оборудование передачи " +"данных (DCE — Data Carrier Equipment). Обычно устройство DTE — это терминал " +"(или компьютер), а DCE — модем. На другом конце телефонной линии в разговоре " +"принимающий модем также является устройством DCE, а компьютер, подключённый " +"к этому модему, — устройством DTE. Устройство DCE принимает сигналы на тех " +"контактах, на которых устройство DTE передаёт, и наоборот." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:180 +msgid "" +"When two devices that are both DTE or both DCE must be connected together " +"without a modem or a similar media translator between them, a NULL modem " +"must be used. The NULL modem electrically re-arranges the cabling so that " +"the transmitter output is connected to the receiver input on the other " +"device, and vice versa. Similar translations are performed on all of the " +"control signals so that each device will see what it thinks are DCE (or DTE) " +"signals from the other device." +msgstr "" +"Когда два устройства, оба являющиеся DTE или DCE, должны быть соединены " +"вместе без модема или аналогичного преобразователя среды между ними, " +"необходимо использовать NULL модем. NULL модем электрически перестраивает " +"кабель так, что выход передатчика подключается ко входу приемника на другом " +"устройстве, и наоборот. Аналогичные преобразования выполняются для всех " +"управляющих сигналов, чтобы каждое устройство видело то, что оно считает " +"сигналами DCE (или DTE) от другого устройства." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:183 +msgid "" +"The number of signals generated by the DTE and DCE devices are not " +"symmetrical. The DTE device generates fewer signals for the DCE device than " +"the DTE device receives from the DCE." +msgstr "" +"Количество сигналов, генерируемых устройствами DTE и DCE, не симметрично. " +"Устройство DTE генерирует меньше сигналов для устройства DCE, чем получает " +"от него." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:184 +#, no-wrap +msgid "RS232-C Pin Assignments" +msgstr "Назначение контактов RS232-C" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:187 +msgid "" +"The EIA RS232-C specification (and the ITU equivalent, V.24) calls for a " +"twenty-five pin connector (usually a DB25) and defines the purpose of most " +"of the pins in that connector." +msgstr "" +"Спецификация EIA RS232-C (и её эквивалент ITU, V.24) предусматривает " +"использование двадцатипятиконтактного разъёма (обычно DB25) и определяет " +"назначение большинства контактов в этом разъёме." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:190 +msgid "" +"In the IBM Personal Computer and similar systems, a subset of RS232-C " +"signals are provided via nine pin connectors (DB9). The signals that are " +"not included on the PC connector deal mainly with synchronous operation, and " +"this transmission mode is not supported by the UART that IBM selected for " +"use in the IBM PC." +msgstr "" +"В IBM Personal Computer и подобных системах подмножество сигналов RS232-C " +"предоставляется через девятиконтактные разъемы (DB9). Сигналы, которые не " +"включены в разъем ПК, в основном связаны с синхронной работой, и этот режим " +"передачи не поддерживается UART, выбранным IBM для использования в IBM PC." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:193 +msgid "" +"Depending on the computer manufacturer, a DB25, a DB9, or both types of " +"connector may be used for RS232-C communications. (The IBM PC also uses a " +"DB25 connector for the parallel printer interface which causes some " +"confusion.)" +msgstr "" +"В зависимости от производителя компьютера, для связи по RS232-C могут " +"использоваться разъемы DB25, DB9 или оба типа. (В IBM PC также используется " +"разъем DB25 для параллельного интерфейса принтера, что иногда вызывает " +"путаницу.)" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:195 +msgid "" +"Below is a table of the RS232-C signal assignments in the DB25 and DB9 " +"connectors." +msgstr "" +"Ниже представлена таблица назначений сигналов RS232-C в разъемах DB25 и DB9." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:200 +#, no-wrap +msgid "DB25 RS232-C Pin" +msgstr "Контакт в DB25 RS232-C" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:201 +#, no-wrap +msgid "DB9 IBM PC Pin" +msgstr "Контакт в DB9 IBM PC" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:202 +#, no-wrap +msgid "EIA Circuit Symbol" +msgstr "Символ цепи по EIA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:203 +#, no-wrap +msgid "CCITT Circuit Symbol" +msgstr "Символ цепи по CCITT" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:204 +#, no-wrap +msgid "Common Name" +msgstr "Общее имя" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:205 +#, no-wrap +msgid "Signal Source" +msgstr "Источник сигнала" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:207 +#: documentation/content/en/articles/serial-uart/_index.adoc:675 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:208 +#: documentation/content/en/articles/serial-uart/_index.adoc:265 +#, no-wrap +msgid "1" +msgstr "1" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:209 +#: documentation/content/en/articles/serial-uart/_index.adoc:213 +#: documentation/content/en/articles/serial-uart/_index.adoc:261 +#: documentation/content/en/articles/serial-uart/_index.adoc:273 +#: documentation/content/en/articles/serial-uart/_index.adoc:274 +#: documentation/content/en/articles/serial-uart/_index.adoc:275 +#: documentation/content/en/articles/serial-uart/_index.adoc:276 +#: documentation/content/en/articles/serial-uart/_index.adoc:277 +#: documentation/content/en/articles/serial-uart/_index.adoc:281 +#: documentation/content/en/articles/serial-uart/_index.adoc:282 +#: documentation/content/en/articles/serial-uart/_index.adoc:283 +#: documentation/content/en/articles/serial-uart/_index.adoc:284 +#: documentation/content/en/articles/serial-uart/_index.adoc:285 +#: documentation/content/en/articles/serial-uart/_index.adoc:289 +#: documentation/content/en/articles/serial-uart/_index.adoc:290 +#: documentation/content/en/articles/serial-uart/_index.adoc:291 +#: documentation/content/en/articles/serial-uart/_index.adoc:292 +#: documentation/content/en/articles/serial-uart/_index.adoc:293 +#: documentation/content/en/articles/serial-uart/_index.adoc:297 +#: documentation/content/en/articles/serial-uart/_index.adoc:305 +#: documentation/content/en/articles/serial-uart/_index.adoc:313 +#: documentation/content/en/articles/serial-uart/_index.adoc:321 +#: documentation/content/en/articles/serial-uart/_index.adoc:329 +#: documentation/content/en/articles/serial-uart/_index.adoc:337 +#: documentation/content/en/articles/serial-uart/_index.adoc:345 +#: documentation/content/en/articles/serial-uart/_index.adoc:346 +#: documentation/content/en/articles/serial-uart/_index.adoc:353 +#: documentation/content/en/articles/serial-uart/_index.adoc:369 +#: documentation/content/en/articles/serial-uart/_index.adoc:370 +#: documentation/content/en/articles/serial-uart/_index.adoc:371 +#: documentation/content/en/articles/serial-uart/_index.adoc:385 +#: documentation/content/en/articles/serial-uart/_index.adoc:393 +#: documentation/content/en/articles/serial-uart/_index.adoc:401 +#: documentation/content/en/articles/serial-uart/_index.adoc:402 +#: documentation/content/en/articles/serial-uart/_index.adoc:404 +#, no-wrap +msgid "-" +msgstr "-" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:210 +#, no-wrap +msgid "AA" +msgstr "AA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:211 +#, no-wrap +msgid "101" +msgstr "101" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:212 +#, no-wrap +msgid "PG/FG" +msgstr "PG/FG" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:215 +#, no-wrap +msgid "Frame/Protective Ground" +msgstr "Защитное заземление (Frame/Protective Ground)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:216 +#: documentation/content/en/articles/serial-uart/_index.adoc:225 +#, no-wrap +msgid "2" +msgstr "2" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:217 +#: documentation/content/en/articles/serial-uart/_index.adoc:224 +#: documentation/content/en/articles/serial-uart/_index.adoc:610 +#, no-wrap +msgid "3" +msgstr "3" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:218 +#, no-wrap +msgid "BA" +msgstr "BA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:219 +#, no-wrap +msgid "103" +msgstr "103" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:220 +#, no-wrap +msgid "TD" +msgstr "TD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:221 +#: documentation/content/en/articles/serial-uart/_index.adoc:237 +#: documentation/content/en/articles/serial-uart/_index.adoc:317 +#: documentation/content/en/articles/serial-uart/_index.adoc:349 +#: documentation/content/en/articles/serial-uart/_index.adoc:357 +#: documentation/content/en/articles/serial-uart/_index.adoc:365 +#: documentation/content/en/articles/serial-uart/_index.adoc:373 +#: documentation/content/en/articles/serial-uart/_index.adoc:389 +#: documentation/content/en/articles/serial-uart/_index.adoc:397 +#, no-wrap +msgid "DTE" +msgstr "DTE" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:223 +#, no-wrap +msgid "Transmit Data" +msgstr "Передача Данных (Transmit Data)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:226 +#, no-wrap +msgid "BB" +msgstr "BB" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:227 +#, no-wrap +msgid "104" +msgstr "104" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:228 +#, no-wrap +msgid "RD" +msgstr "RD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:229 +#: documentation/content/en/articles/serial-uart/_index.adoc:245 +#: documentation/content/en/articles/serial-uart/_index.adoc:253 +#: documentation/content/en/articles/serial-uart/_index.adoc:269 +#: documentation/content/en/articles/serial-uart/_index.adoc:301 +#: documentation/content/en/articles/serial-uart/_index.adoc:309 +#: documentation/content/en/articles/serial-uart/_index.adoc:325 +#: documentation/content/en/articles/serial-uart/_index.adoc:333 +#: documentation/content/en/articles/serial-uart/_index.adoc:341 +#: documentation/content/en/articles/serial-uart/_index.adoc:381 +#: documentation/content/en/articles/serial-uart/_index.adoc:405 +#, no-wrap +msgid "DCE" +msgstr "DCE" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:231 +#, no-wrap +msgid "Receive Data" +msgstr "Прием данных (Receive Data)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:232 +#: documentation/content/en/articles/serial-uart/_index.adoc:361 +#, no-wrap +msgid "4" +msgstr "4" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:233 +#: documentation/content/en/articles/serial-uart/_index.adoc:256 +#, no-wrap +msgid "7" +msgstr "7" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:234 +#, no-wrap +msgid "CA" +msgstr "CA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:235 +#, no-wrap +msgid "105" +msgstr "105" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:236 +#, no-wrap +msgid "RTS" +msgstr "RTS" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:239 +#, no-wrap +msgid "Request to Send" +msgstr "Запрос на передачу (Request to Send)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:240 +#: documentation/content/en/articles/serial-uart/_index.adoc:257 +#, no-wrap +msgid "5" +msgstr "5" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:241 +#: documentation/content/en/articles/serial-uart/_index.adoc:264 +#, no-wrap +msgid "8" +msgstr "8" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:242 +#, no-wrap +msgid "CB" +msgstr "CB" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:243 +#, no-wrap +msgid "106" +msgstr "106" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:244 +#, no-wrap +msgid "CTS" +msgstr "CTS" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:247 +#, no-wrap +msgid "Clear to Send" +msgstr "Готовность к приёму (Clear to Send)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:248 +#: documentation/content/en/articles/serial-uart/_index.adoc:249 +#, no-wrap +msgid "6" +msgstr "6" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:250 +#, no-wrap +msgid "CC" +msgstr "CC" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:251 +#, no-wrap +msgid "107" +msgstr "107" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:252 +#, no-wrap +msgid "DSR" +msgstr "DSR" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:255 +#, no-wrap +msgid "Data Set Ready" +msgstr "Готовность терминального оборудования (Data Set Ready)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:258 +#, no-wrap +msgid "AV" +msgstr "AV" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:259 +#, no-wrap +msgid "102" +msgstr "102" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:260 +#, no-wrap +msgid "SG/GND" +msgstr "SG/GND" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:263 +#, no-wrap +msgid "Signal Ground" +msgstr "Сигнальная земля (Signal Ground)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:266 +#, no-wrap +msgid "CF" +msgstr "CF" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:267 +#, no-wrap +msgid "109" +msgstr "109" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:268 +#, no-wrap +msgid "DCD/CD" +msgstr "DCD/CD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:271 +#, no-wrap +msgid "Data Carrier Detect" +msgstr "Обнаружение несущей (Data Carrier Detect)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:272 +#: documentation/content/en/articles/serial-uart/_index.adoc:377 +#, no-wrap +msgid "9" +msgstr "9" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:279 +#: documentation/content/en/articles/serial-uart/_index.adoc:287 +#: documentation/content/en/articles/serial-uart/_index.adoc:295 +#, no-wrap +msgid "Reserved for Test" +msgstr "Зарезервировано для Теста" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:280 +#, no-wrap +msgid "10" +msgstr "10" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:288 +#, no-wrap +msgid "11" +msgstr "11" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:296 +#, no-wrap +msgid "12" +msgstr "12" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:298 +#, no-wrap +msgid "CI" +msgstr "CI" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:299 +#, no-wrap +msgid "122" +msgstr "122" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:300 +#, no-wrap +msgid "SRLSD" +msgstr "SRLSD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:303 +#, no-wrap +msgid "Sec. Recv. Line Signal Detector" +msgstr "Детектор сигнала вторичной линии приёма" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:304 +#, no-wrap +msgid "13" +msgstr "13" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:306 +#, no-wrap +msgid "SCB" +msgstr "SCB" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:307 +#, no-wrap +msgid "121" +msgstr "121" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:308 +#, no-wrap +msgid "SCTS" +msgstr "SCTS" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:311 +#, no-wrap +msgid "Secondary Clear to Send" +msgstr "Вторичный сигнал готовности к приёму" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:312 +#, no-wrap +msgid "14" +msgstr "14" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:314 +#, no-wrap +msgid "SBA" +msgstr "SBA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:315 +#, no-wrap +msgid "118" +msgstr "118" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:316 +#, no-wrap +msgid "STD" +msgstr "STD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:319 +#, no-wrap +msgid "Secondary Transmit Data" +msgstr "Вторичная линия передачи данных" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:320 +#, no-wrap +msgid "15" +msgstr "15" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:322 +#, no-wrap +msgid "DB" +msgstr "DB" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:323 +#, no-wrap +msgid "114" +msgstr "114" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:324 +#: documentation/content/en/articles/serial-uart/_index.adoc:396 +#, no-wrap +msgid "TSET" +msgstr "TSET" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:327 +#: documentation/content/en/articles/serial-uart/_index.adoc:399 +#, no-wrap +msgid "Trans. Sig. Element Timing" +msgstr "Тактирование элементов сигнала передатчика (Trans. Sig. Element Timing)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:328 +#, no-wrap +msgid "16" +msgstr "16" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:330 +#, no-wrap +msgid "SBB" +msgstr "SBB" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:331 +#, no-wrap +msgid "119" +msgstr "119" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:332 +#, no-wrap +msgid "SRD" +msgstr "SRD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:335 +#, no-wrap +msgid "Secondary Received Data" +msgstr "Вторичная линия приема данных" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:336 +#, no-wrap +msgid "17" +msgstr "17" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:338 +#, no-wrap +msgid "DD" +msgstr "DD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:339 +#, no-wrap +msgid "115" +msgstr "115" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:340 +#, no-wrap +msgid "RSET" +msgstr "RSET" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:343 +#, no-wrap +msgid "Receiver Signal Element Timing" +msgstr "Тактирование элементов сигнала приёмника (Receiver Signal Element Timing)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:344 +#, no-wrap +msgid "18" +msgstr "18" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:347 +#, no-wrap +msgid "141" +msgstr "141" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:348 +#, no-wrap +msgid "LOOP" +msgstr "LOOP" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:351 +#, no-wrap +msgid "Local Loopback" +msgstr "Локальная петля" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:352 +#: documentation/content/en/articles/serial-uart/_index.adoc:614 +#, no-wrap +msgid "19" +msgstr "19" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:354 +#, no-wrap +msgid "SCA" +msgstr "SCA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:355 +#, no-wrap +msgid "120" +msgstr "120" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:356 +#, no-wrap +msgid "SRS" +msgstr "SRS" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:359 +#, no-wrap +msgid "Secondary Request to Send" +msgstr "Вторичный запрос на передачу" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:360 +#, no-wrap +msgid "20" +msgstr "20" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:362 +#, no-wrap +msgid "CD" +msgstr "CD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:363 +#, no-wrap +msgid "108.2" +msgstr "108.2" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:364 +#, no-wrap +msgid "DTR" +msgstr "DTR" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:367 +#, no-wrap +msgid "Data Terminal Ready" +msgstr "Готовность терминального оборудования (Data Terminal Ready)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:368 +#, no-wrap +msgid "21" +msgstr "21" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:372 +#, no-wrap +msgid "RDL" +msgstr "RDL" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:375 +#, no-wrap +msgid "Remote Digital Loopback" +msgstr "Режим удалённой цифровой петли (Remote Digital Loopback)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:376 +#, no-wrap +msgid "22" +msgstr "22" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:378 +#, no-wrap +msgid "CE" +msgstr "CE" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:379 +#, no-wrap +msgid "125" +msgstr "125" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:380 +#, no-wrap +msgid "RI" +msgstr "RI" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:383 +#, no-wrap +msgid "Ring Indicator" +msgstr "Индикатор передачи данных (Ring Indicator)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:384 +#: documentation/content/en/articles/serial-uart/_index.adoc:618 +#, no-wrap +msgid "23" +msgstr "23" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:386 +#, no-wrap +msgid "CH" +msgstr "CH" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:387 +#, no-wrap +msgid "111" +msgstr "111" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:388 +#, no-wrap +msgid "DSRS" +msgstr "DSRS" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:391 +#, no-wrap +msgid "Data Signal Rate Selector" +msgstr "Селектор скорости передачи данных" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:392 +#, no-wrap +msgid "24" +msgstr "24" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:394 +#, no-wrap +msgid "DA" +msgstr "DA" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:395 +#, no-wrap +msgid "113" +msgstr "113" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:400 +#, no-wrap +msgid "25" +msgstr "25" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:403 +#, no-wrap +msgid "142" +msgstr "142" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:406 +#, no-wrap +msgid "Test Mode" +msgstr "Режим тестирования" + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:408 +#, no-wrap +msgid "Bits, Baud and Symbols" +msgstr "Биты, Боды и Символы" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:412 +msgid "" +"Baud is a measurement of transmission speed in asynchronous communication. " +"Due to advances in modem communication technology, this term is frequently " +"misused when describing the data rates in newer devices." +msgstr "" +"Скорость передачи данных (Baud) — это единица измерения скорости передачи в " +"асинхронной связи. Из-за развития технологий модемной связи этот термин " +"часто ошибочно используют для описания скорости передачи данных в " +"современных устройствах." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:417 +msgid "" +"Traditionally, a Baud Rate represents the number of bits that are actually " +"being sent over the media, not the amount of data that is actually moved " +"from one DTE device to the other. The Baud count includes the overhead bits " +"Start, Stop and Parity that are generated by the sending UART and removed by " +"the receiving UART. This means that seven-bit words of data actually take " +"10 bits to be completely transmitted. Therefore, a modem capable of moving " +"300 bits per second from one place to another can normally only move 30 7-" +"bit words if Parity is used and one Start and Stop bit are present." +msgstr "" +"Традиционно, скорость передачи (Baud Rate) представляет количество битов, " +"фактически передаваемых по среде, а не объем данных, которые действительно " +"перемещаются от одного устройства DTE к другому. Подсчет Baud включает " +"служебные биты — Start, Stop и Parity, которые генерируются передающим UART " +"и удаляются принимающим UART. Это означает, что 7-битные слова данных на " +"самом деле занимают 10 бит для полной передачи. Следовательно, модем, " +"способный передавать 300 бит в секунду, обычно может передавать только 30 7-" +"битных слов, если используется Parity и присутствуют один бит Start и один " +"бит Stop." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:419 +msgid "" +"If 8-bit data words are used and Parity bits are also used, the data rate " +"falls to 27.27 words per second, because it now takes 11 bits to send the " +"eight-bit words, and the modem still only sends 300 bits per second." +msgstr "" +"Если используются 8-битные слова данных и биты четности, скорость передачи " +"данных снижается до 27,27 слов в секунду, так как теперь для передачи " +"восьмибитных слов требуется 11 бит, а модем по-прежнему передает только 300 " +"бит в секунду." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:425 +msgid "" +"The formula for converting bytes per second into a baud rate and vice versa " +"was simple until error-correcting modems came along. These modems receive " +"the serial stream of bits from the UART in the host computer (even when " +"internal modems are used the data is still frequently serialized) and " +"converts the bits back into bytes. These bytes are then combined into " +"packets and sent over the phone line using a Synchronous transmission " +"method. This means that the Stop, Start, and Parity bits added by the UART " +"in the DTE (the computer) were removed by the modem before transmission by " +"the sending modem. When these bytes are received by the remote modem, the " +"remote modem adds Start, Stop and Parity bits to the words, converts them to " +"a serial format and then sends them to the receiving UART in the remote " +"computer, who then strips the Start, Stop and Parity bits." +msgstr "" +"Формула преобразования байтов в секунду в бодовую скорость и наоборот была " +"простой до появления модемов с коррекцией ошибок. Эти модемы принимают " +"последовательный поток битов от UART в компьютере (даже внутренние модемы " +"часто работают с последовательными данными) и преобразуют биты обратно в " +"байты. Затем эти байты объединяются в пакеты и передаются по телефонной " +"линии с использованием синхронного метода передачи. Это означает, что " +"стоповые, стартовые и биты четности, добавленные UART в DTE (компьютере), " +"удаляются модемом перед передачей отправляющим модемом. Когда эти байты " +"принимаются удалённым модемом, он добавляет стартовые, стоповые и биты " +"четности к словам, преобразует их в последовательный формат и отправляет на " +"принимающий UART в удалённом компьютере, который затем удаляет стартовые, " +"стоповые и биты четности." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:428 +msgid "" +"The reason all these extra conversions are done is so that the two modems " +"can perform error correction, which means that the receiving modem is able " +"to ask the sending modem to resend a block of data that was not received " +"with the correct checksum. This checking is handled by the modems, and the " +"DTE devices are usually unaware that the process is occurring." +msgstr "" +"Причина, по которой выполняются все эти дополнительные преобразования, " +"заключается в том, чтобы два модема могли осуществлять коррекцию ошибок. Это " +"означает, что принимающий модем может запросить у передающего модема " +"повторную отправку блока данных, который был получен с некорректной " +"контрольной суммой. Эта проверка обрабатывается модемами, и устройства DTE " +"обычно не осознают, что этот процесс происходит." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:431 +msgid "" +"By striping the Start, Stop and Parity bits, the additional bits of data " +"that the two modems must share between themselves to perform error-" +"correction are mostly concealed from the effective transmission rate seen by " +"the sending and receiving DTE equipment. For example, if a modem sends ten " +"7-bit words to another modem without including the Start, Stop and Parity " +"bits, the sending modem will be able to add 30 bits of its own information " +"that the receiving modem can use to do error-correction without impacting " +"the transmission speed of the real data." +msgstr "" +"Удаляя стартовые, стоповые и биты четности, дополнительные биты данных, " +"которые два модема должны обмениваться между собой для выполнения коррекции " +"ошибок, в основном скрываются от эффективной скорости передачи, наблюдаемой " +"отправляющим и принимающим оборудованием DTE. Например, если модем " +"отправляет десять 7-битных слов другому модему без включения стартовых, " +"стоповых и битов четности, отправляющий модем сможет добавить 30 бит своей " +"собственной информации, которую принимающий модем может использовать для " +"коррекции ошибок, не влияя на скорость передачи реальных данных." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:435 +msgid "" +"The use of the term Baud is further confused by modems that perform " +"compression. A single 8-bit word passed over the telephone line might " +"represent a dozen words that were transmitted to the sending modem. The " +"receiving modem will expand the data back to its original content and pass " +"that data to the receiving DTE." +msgstr "" +"Использование термина \"Бод\" дополнительно осложняется модемами, " +"выполняющими сжатие. Одно 8-битное слово, переданное по телефонной линии, " +"может представлять собой дюжину слов, переданных на отправляющий модем. " +"Принимающий модем развернёт данные обратно в их исходное содержимое и " +"передаст эти данные принимающему DTE." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:438 +msgid "" +"Modern modems also include buffers that allow the rate that bits move across " +"the phone line (DCE to DCE) to be a different speed than the speed that the " +"bits move between the DTE and DCE on both ends of the conversation. " +"Normally the speed between the DTE and DCE is higher than the DCE to DCE " +"speed because of the use of compression by the modems." +msgstr "" +"Современные модемы также включают буферы, которые позволяют скорости " +"передачи битов по телефонной линии (DCE к DCE) отличаться от скорости " +"передачи битов между DTE и DCE на обоих концах соединения. Обычно скорость " +"между DTE и DCE выше, чем скорость между DCE и DCE, из-за использования " +"сжатия модемами." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:441 +msgid "" +"As the number of bits needed to describe a byte varied during the trip " +"between the two machines plus the differing bits-per-seconds speeds that are " +"used present on the DTE-DCE and DCE-DCE links, the usage of the term Baud to " +"describe the overall communication speed causes problems and can " +"misrepresent the true transmission speed. So Bits Per Second (bps) is the " +"correct term to use to describe the transmission rate seen at the DCE to DCE " +"interface and Baud or Bits Per Second are acceptable terms to use when a " +"connection is made between two systems with a wired connection, or if a " +"modem is in use that is not performing error-correction or compression." +msgstr "" +"Поскольку количество битов, необходимых для описания байта, менялось во " +"время передачи между двумя машинами, а также из-за различающихся скоростей " +"передачи в битах в секунду на линиях DTE-DCE и DCE-DCE, использование " +"термина «Бод» для описания общей скорости связи вызывает проблемы и может " +"искажать реальную скорость передачи. Таким образом, термин «Биты в секунду» " +"(bps) является корректным для описания скорости передачи на интерфейсе DCE-" +"DCE, а термины «Бод» или «Биты в секунду» допустимы, когда соединение " +"устанавливается между двумя системами с проводным подключением или " +"используется модем, не выполняющий коррекцию ошибок или сжатие." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:445 +msgid "" +"Modern high speed modems (2400, 9600, 14,400, and 19,200bps) in reality " +"still operate at or below 2400 baud, or more accurately, 2400 Symbols per " +"second. High speed modem are able to encode more bits of data into each " +"Symbol using a technique called Constellation Stuffing, which is why the " +"effective bits per second rate of the modem is higher, but the modem " +"continues to operate within the limited audio bandwidth that the telephone " +"system provides. Modems operating at 28,800 and higher speeds have variable " +"Symbol rates, but the technique is the same." +msgstr "" +"Современные высокоскоростные модемы (2400, 9600, 14,400 и 19,200 бит/с) на " +"самом деле всё ещё работают на скорости 2400 бод или ниже, или, точнее, 2400 " +"символов в секунду. Высокоскоростные модемы способны кодировать больше бит " +"данных в каждый символ с использованием техники, называемой \"Заполнение " +"созвездия (Constellation Stuffing)\", поэтому эффективная скорость передачи " +"данных в битах в секунду у модема выше, но модем продолжает работать в " +"ограниченной полосе пропускания звуковых частот, предоставляемой телефонной " +"системой. Модемы, работающие на скоростях 28,800 и выше, имеют переменную " +"скорость передачи символов, но техника остаётся той же." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:446 +#, no-wrap +msgid "The IBM Personal Computer UART" +msgstr "UART в IBM PC" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:450 +msgid "" +"Starting with the original IBM Personal Computer, IBM selected the National " +"Semiconductor INS8250 UART for use in the IBM PC Parallel/Serial Adapter. " +"Subsequent generations of compatible computers from IBM and other vendors " +"continued to use the INS8250 or improved versions of the National " +"Semiconductor UART family." +msgstr "" +"Начиная с оригинального IBM Personal Computer, IBM выбрала UART INS8250 от " +"National Semiconductor для использования в адаптере Parallel/Serial IBM PC. " +"Последующие поколения совместимых компьютеров от IBM и других производителей " +"продолжали использовать INS8250 или улучшенные версии UART из семейства " +"National Semiconductor." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:451 +#, no-wrap +msgid "National Semiconductor UART Family Tree" +msgstr "Генеалогическое дерево National Semiconductor UART" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:454 +msgid "" +"There have been several versions and subsequent generations of the INS8250 " +"UART. Each major version is described below." +msgstr "" +"Существует несколько версий и последующих поколений UART INS8250. Основные " +"версии описаны ниже." + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:467 +#, no-wrap +msgid "" +"INS8250 -> INS8250B\n" +" \\\n" +" \\\n" +" \\-> INS8250A -> INS82C50A\n" +" \\\n" +" \\\n" +" \\-> NS16450 -> NS16C450\n" +" \\\n" +" \\\n" +" \\-> NS16550 -> NS16550A -> PC16550D\n" +msgstr "" +"INS8250 -> INS8250B\n" +" \\\n" +" \\\n" +" \\-> INS8250A -> INS82C50A\n" +" \\\n" +" \\\n" +" \\-> NS16450 -> NS16C450\n" +" \\\n" +" \\\n" +" \\-> NS16550 -> NS16550A -> PC16550D\n" + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:469 +#, no-wrap +msgid "INS8250" +msgstr "INS8250" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:472 +msgid "" +"This part was used in the original IBM PC and IBM PC/XT. The original name " +"for this part was the INS8250 ACE (Asynchronous Communications Element) and " +"it is made from NMOS technology." +msgstr "" +"Эта часть использовалась в оригинальном IBM PC и IBM PC/XT. Первоначальное " +"название этой части — INS8250 ACE (Asynchronous Communications Element), и " +"она изготовлена по NMOS-технологии." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:476 +msgid "" +"The 8250 uses eight I/O ports and has a one-byte send and a one-byte receive " +"buffer. This original UART has several race conditions and other flaws. " +"The original IBM BIOS includes code to work around these flaws, but this " +"made the BIOS dependent on the flaws being present, so subsequent parts like " +"the 8250A, 16450 or 16550 could not be used in the original IBM PC or IBM PC/" +"XT." +msgstr "" +"8250 использует восемь портов ввода-вывода и имеет однобайтовый буфер " +"передачи и однобайтовый буфер приема. Этот оригинальный UART имеет несколько " +"состояний гонки и другие недостатки. Оригинальный BIOS IBM включает код для " +"обхода этих недостатков, но это сделало BIOS зависимым от их наличия, " +"поэтому последующие модели, такие как 8250A, 16450 или 16550, не могли быть " +"использованы в оригинальном IBM PC или IBM PC/XT." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:476 +#, no-wrap +msgid "INS8250-B" +msgstr "INS8250-B" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:479 +msgid "" +"This is the slower speed of the INS8250 made from NMOS technology. It " +"contains the same problems as the original INS8250." +msgstr "" +"Это более медленная скорость INS8250, созданная по NMOS-технологии. Она " +"имеет те же проблемы, что и оригинальный INS8250." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:480 +#, no-wrap +msgid "INS8250A" +msgstr "INS8250A" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:484 +msgid "" +"An improved version of the INS8250 using XMOS technology with various " +"functional flaws corrected. The INS8250A was used initially in PC clone " +"computers by vendors who used \"clean\" BIOS designs. Due to the " +"corrections in the chip, this part could not be used with a BIOS compatible " +"with the INS8250 or INS8250B." +msgstr "" +"Улучшенная версия INS8250 с использованием технологии XMOS, в которой " +"исправлены различные функциональные недостатки. INS8250A изначально " +"использовалась в клонах ПК от производителей, применявших \"чистые\" проекты " +"BIOS. Из-за исправлений в микросхеме этот чип не мог использоваться с BIOS, " +"совместимой с INS8250 или INS8250B." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:485 +#, no-wrap +msgid "INS82C50A" +msgstr "INS82C50A" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:487 +msgid "" +"This is a CMOS version (low power consumption) of the INS8250A and has " +"similar functional characteristics." +msgstr "" +"Это CMOS-версия (с низким энергопотреблением) INS8250A и имеет схожие " +"функциональные характеристики." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:488 +#, no-wrap +msgid "NS16450" +msgstr "NS16450" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:491 +msgid "" +"Same as NS8250A with improvements so it can be used with faster CPU bus " +"designs. IBM used this part in the IBM AT and updated the IBM BIOS to no " +"longer rely on the bugs in the INS8250." +msgstr "" +"Так же, как NS8250A, но с улучшениями для работы с более быстрыми шинами " +"CPU. IBM использовала этот компонент в IBM AT и обновила IBM BIOS, чтобы она " +"больше не зависела от ошибок в INS8250." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:492 +#, no-wrap +msgid "NS16C450" +msgstr "NS16C450" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:494 +msgid "This is a CMOS version (low power consumption) of the NS16450." +msgstr "Это версия NS16450 с технологией CMOS (низкое энергопотребление)." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:495 +#, no-wrap +msgid "NS16550" +msgstr "NS16550" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:497 +msgid "" +"Same as NS16450 with a 16-byte send and receive buffer but the buffer design " +"was flawed and could not be reliably be used." +msgstr "" +"То же, что и NS16450, с 16-байтовым буфером передачи и приема, но " +"конструкция буфера была неудачной и не могла быть надежно использована." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:498 +#, no-wrap +msgid "NS16550A" +msgstr "NS16550A" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:501 +msgid "" +"Same as NS16550 with the buffer flaws corrected. The 16550A and its " +"successors have become the most popular UART design in the PC industry, " +"mainly due to its ability to reliably handle higher data rates on operating " +"systems with sluggish interrupt response times." +msgstr "" +"То же, что и NS16550, но с исправленными недостатками буфера. 16550A и его " +"преемники стали наиболее популярными UART-устройствами в индустрии ПК, в " +"основном благодаря их способности надежно работать на высоких скоростях " +"передачи данных в операционных системах с медленным временем отклика " +"прерываний." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:502 +#, no-wrap +msgid "NS16C552" +msgstr "NS16C552" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:504 +msgid "" +"This component consists of two NS16C550A CMOS UARTs in a single package." +msgstr "Этот компонент состоит из двух CMOS UART NS16C550A в одном корпусе." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:505 +#, no-wrap +msgid "PC16550D" +msgstr "PC16550D" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:508 +msgid "" +"Same as NS16550A with subtle flaws corrected. This is revision D of the " +"16550 family and is the latest design available from National Semiconductor." +msgstr "" +"Так же, как NS16550A, с исправленными незначительными недостатками. Это " +"ревизия D семейства 16550 и последняя доступная версия от National " +"Semiconductor." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:509 +#, no-wrap +msgid "The NS16550AF and the PC16550D are the same thing" +msgstr "NS16550AF и PC16550D — это одно и то же" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:515 +msgid "" +"National reorganized their part numbering system a few years ago, and the " +"NS16550AFN no longer exists by that name. (If you have a NS16550AFN, look " +"at the date code on the part, which is a four digit number that usually " +"starts with a nine. The first two digits of the number are the year, and " +"the last two digits are the week in that year when the part was packaged. " +"If you have a NS16550AFN, it is probably a few years old.)" +msgstr "" +"Компания National реорганизовала свою систему нумерации деталей несколько " +"лет назад, и чип NS16550AFN больше не существует под этим названием. (Если у " +"вас есть NS16550AFN, посмотрите на дату изготовления на корпусе — это " +"четырехзначное число, обычно начинающееся с девятки. Первые две цифры " +"обозначают год, а последние две — неделю года, когда чип был упакован. Если " +"у вас есть NS16550AFN, скорее всего, он уже довольно старый.)" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:518 +msgid "" +"The new numbers are like PC16550DV, with minor differences in the suffix " +"letters depending on the package material and its shape. (A description of " +"the numbering system can be found below.)" +msgstr "" +"Новые номера выглядят как PC16550DV, с незначительными отличиями в " +"суффиксных буквах в зависимости от материала корпуса и его формы. (Описание " +"системы нумерации можно найти ниже.)" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:520 +msgid "" +"It is important to understand that in some stores, you may pay $15(US) for a " +"NS16550AFN made in 1990 and in the next bin are the new PC16550DN parts with " +"minor fixes that National has made since the AFN part was in production, the " +"PC16550DN was probably made in the past six months and it costs half (as low " +"as $5(US) in volume) as much as the NS16550AFN because they are readily " +"available." +msgstr "" +"Важно понимать, что в некоторых магазинах можно заплатить $15 (США) за " +"микросхему NS16550AFN, выпущенную в 1990 году, а в соседнем ящике могут " +"лежать новые PC16550DN с небольшими исправлениями, которые National внесла с " +"момента выпуска AFN. PC16550DN, вероятно, произведены в последние полгода и " +"стоят вдвое дешевле (от $5 (США) при оптовой покупке), чем NS16550AFN, " +"поскольку они легко доступны." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:522 +msgid "" +"As the supply of NS16550AFN chips continues to shrink, the price will " +"probably continue to increase until more people discover and accept that the " +"PC16550DN really has the same function as the old part number." +msgstr "" +"Поскольку поставки чипов NS16550AFN продолжают сокращаться, цена, вероятно, " +"будет расти до тех пор, пока больше людей не узнают и не примут тот факт, " +"что PC16550DN действительно выполняет ту же функцию, что и старый номер " +"детали." + +#. type: Title ==== +#: documentation/content/en/articles/serial-uart/_index.adoc:523 +#, no-wrap +msgid "National Semiconductor Part Numbering System" +msgstr "Система нумерации компонентов National Semiconductor" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:526 +msgid "" +"The older NS``__nnnnnrqp__`` part numbers are now of the format " +"PC``__nnnnnrgp__``." +msgstr "" +"Старые номера деталей NS``__nnnnnrqp__`` теперь имеют формат " +"PC``__nnnnnrgp__``." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:528 +msgid "" +"The `_r_` is the revision field. The current revision of the 16550 from " +"National Semiconductor is `D`." +msgstr "" +"`_r_` — это поле ревизии. Текущая ревизия 16550 от National Semiconductor — " +"`D`." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:530 +msgid "The `_p_` is the package-type field. The types are:" +msgstr "`_p_` — это поле типа пакета. Типы:" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:536 +#, no-wrap +msgid "\"F\"" +msgstr "\"F\"" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:537 +#, no-wrap +msgid "QFP" +msgstr "QFP" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:539 +#, no-wrap +msgid "(quad flat pack) L lead type" +msgstr "(quad flat pack - квадратный плоский корпус) с L-образными выводами" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:540 +#, no-wrap +msgid "\"N\"" +msgstr "\"N\"" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:541 +#, no-wrap +msgid "DIP" +msgstr "DIP" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:543 +#, no-wrap +msgid "(dual inline package) through hole straight lead type" +msgstr "(dual inline package — корпус с двусторонним расположением выводов) для сквозного монтажа с прямыми выводами" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:544 +#, no-wrap +msgid "\"V\"" +msgstr "\"V\"" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:545 +#, no-wrap +msgid "LPCC" +msgstr "LPCC" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:546 +#, no-wrap +msgid "(lead plastic chip carrier) J lead type" +msgstr "(lead plastic chip carrier — пластиковый корпус) с J-образными выводами" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:551 +msgid "" +"The _g_ is the product grade field. If an `I` precedes the package-type " +"letter, it indicates an \"industrial\" grade part, which has higher specs " +"than a standard part but not as high as Military Specification (Milspec) " +"component. This is an optional field." +msgstr "" +"Поле _g_ обозначает класс изделия. Если перед буквой типа пакета стоит `I`, " +"это указывает на «промышленный» класс детали, который имеет более высокие " +"характеристики, чем стандартная деталь, но не такие высокие, как компонент " +"военного назначения (Milspec). Это необязательное поле." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:553 +msgid "" +"So what we used to call a NS16550AFN (DIP Package) is now called a PC16550DN " +"or PC16550DIN." +msgstr "" +"То, что мы раньше называли NS16550AFN (DIP-корпус), теперь называется " +"PC16550DN или PC16550DIN." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:554 +#, no-wrap +msgid "Other Vendors and Similar UARTs" +msgstr "Другие производители и аналогичные UART" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:559 +msgid "" +"Over the years, the 8250, 8250A, 16450 and 16550 have been licensed or " +"copied by other chip vendors. In the case of the 8250, 8250A and 16450, the " +"exact circuit (the \"megacell\") was licensed to many vendors, including " +"Western Digital and Intel. Other vendors reverse-engineered the part or " +"produced emulations that had similar behavior." +msgstr "" +"На протяжении многих лет чипы 8250, 8250A, 16450 и 16550 лицензировались или " +"копировались другими производителями. В случае с 8250, 8250A и 16450 точная " +"схема (\"мегаячейка\") была лицензирована многими производителями, включая " +"Western Digital и Intel. Другие производители проводили обратную разработку " +"чипа или создавали эмуляции с аналогичным поведением." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:563 +msgid "" +"In internal modems, the modem designer will frequently emulate the 8250A/" +"16450 with the modem microprocessor, and the emulated UART will frequently " +"have a hidden buffer consisting of several hundred bytes. Due to the size " +"of the buffer, these emulations can be as reliable as a 16550A in their " +"ability to handle high speed data. However, most operating systems will " +"still report that the UART is only a 8250A or 16450, and may not make " +"effective use of the extra buffering present in the emulated UART unless " +"special drivers are used." +msgstr "" +"Во внутренних модемах разработчик модема часто эмулирует 8250A/16450 с " +"помощью микропроцессора модема, и эмулированный UART часто имеет скрытый " +"буфер размером в несколько сотен байт. Благодаря размеру буфера, эти " +"эмуляции могут быть такими же надежными, как 16550A, в способности " +"обрабатывать высокоскоростные данные. Однако большинство операционных систем " +"по-прежнему сообщают, что UART является только 8250A или 16450, и могут не " +"эффективно использовать дополнительную буферизацию, присутствующую в " +"эмулированном UART, если не используются специальные драйверы." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:565 +msgid "" +"Some modem makers are driven by market forces to abandon a design that has " +"hundreds of bytes of buffer and instead use a 16550A UART so that the " +"product will compare favorably in market comparisons even though the " +"effective performance may be lowered by this action." +msgstr "" +"Некоторые производители модемов под давлением рыночных сил отказываются от " +"конструкции с буфером в сотни байт и вместо этого используют UART 16550A, " +"чтобы их продукция выглядела выигрышно в рыночных сравнениях, даже если это " +"может снизить фактическую производительность." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:568 +msgid "" +"A common misconception is that all parts with \"16550A\" written on them are " +"identical in performance. There are differences, and in some cases, " +"outright flaws in most of these 16550A clones." +msgstr "" +"Распространённое заблуждение заключается в том, что все микросхемы с " +"маркировкой \"16550A\" одинаковы по производительности. Однако между ними " +"существуют различия, а в некоторых клонах 16550A даже встречаются серьёзные " +"недостатки." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:572 +msgid "" +"When the NS16550 was developed, the National Semiconductor obtained several " +"patents on the design and they also limited licensing, making it harder for " +"other vendors to provide a chip with similar features. As a result of the " +"patents, reverse-engineered designs and emulations had to avoid infringing " +"the claims covered by the patents. Subsequently, these copies almost never " +"perform exactly the same as the NS16550A or PC16550D, which are the parts " +"most computer and modem makers want to buy but are sometimes unwilling to " +"pay the price required to get the genuine part." +msgstr "" +"Когда компания National Semiconductor разработала NS16550, она получила " +"несколько патентов на эту конструкцию и также ограничила лицензирование, что " +"затруднило для других производителей выпуск чипов с аналогичными " +"характеристиками. В результате патентов обратно спроектированные конструкции " +"и эмуляции должны были избегать нарушения пунктов, охватываемых патентами. " +"Впоследствии эти копии почти никогда не работают точно так же, как NS16550A " +"или PC16550D, которые являются компонентами, наиболее востребованными " +"производителями компьютеров и модемов, но иногда они не готовы платить цену, " +"необходимую для получения оригинальных деталей." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:577 +msgid "" +"Some of the differences in the clone 16550A parts are unimportant, while " +"others can prevent the device from being used at all with a given operating " +"system or driver. These differences may show up when using other drivers, " +"or when particular combinations of events occur that were not well tested or " +"considered in the Windows(R) driver. This is because most modem vendors and " +"16550-clone makers use the Microsoft drivers from Windows(R) for Workgroups " +"3.11 and the Microsoft(R) MS-DOS(R) utility as the primary tests for " +"compatibility with the NS16550A. This over-simplistic criteria means that " +"if a different operating system is used, problems could appear due to subtle " +"differences between the clones and genuine components." +msgstr "" +"Некоторые различия в клонах микросхем 16550A несущественны, в то время как " +"другие могут полностью препятствовать использованию устройства с " +"определенной операционной системой или драйвером. Эти различия могут " +"проявиться при использовании других драйверов или при возникновении " +"определенных комбинаций событий, которые не были хорошо протестированы или " +"учтены в драйвере Windows(R). Это происходит потому, что большинство " +"производителей модемов и клонов 16550 используют драйверы Microsoft из " +"Windows(R) for Workgroups 3.11 и утилиту Microsoft(R) MS-DOS(R) в качестве " +"основных тестов на совместимость с NS16550A. Этот чрезмерно упрощенный " +"критерий означает, что при использовании другой операционной системы могут " +"возникнуть проблемы из-за тонких различий между клонами и оригинальными " +"компонентами." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:580 +msgid "" +"National Semiconductor has made available a program named COMTEST that " +"performs compatibility tests independent of any OS drivers. It should be " +"remembered that the purpose of this type of program is to demonstrate the " +"flaws in the products of the competition, so the program will report major " +"as well as extremely subtle differences in behavior in the part being tested." +msgstr "" +"National Semiconductor предоставила программу под названием COMTEST, которая " +"выполняет тесты совместимости независимо от каких-либо драйверов ОС. Следует " +"помнить, что цель такого типа программ — демонстрация недостатков в " +"продуктах конкурентов, поэтому программа будет сообщать как о значительных, " +"так и о крайне незначительных различиях в поведении тестируемого компонента." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:583 +msgid "" +"In a series of tests performed by the author of this document in 1994, " +"components made by National Semiconductor, TI, StarTech, and CMD as well as " +"megacells and emulations embedded in internal modems were tested with " +"COMTEST. A difference count for some of these components is listed below. " +"Since these tests were performed in 1994, they may not reflect the current " +"performance of the given product from a vendor." +msgstr "" +"В серии тестов, проведенных автором этого документа в 1994 году, компоненты " +"производства National Semiconductor, TI, StarTech и CMD, а также мегаячейки " +"и эмуляции, встроенные во внутренние модемы, были протестированы с помощью " +"COMTEST. Ниже приведен счетчик различий для некоторых из этих компонентов. " +"Поскольку эти тесты проводились в 1994 году, они могут не отражать текущую " +"производительность данного продукта от поставщика." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:586 +msgid "" +"It should be noted that COMTEST normally aborts when an excessive number or " +"certain types of problems have been detected. As part of this testing, " +"COMTEST was modified so that it would not abort no matter how many " +"differences were encountered." +msgstr "" +"Следует отметить, что COMTEST обычно завершает работу при обнаружении " +"чрезмерного количества или определённых типов проблем. В рамках этого " +"тестирования COMTEST был изменён так, чтобы он не завершал работу независимо " +"от количества обнаруженных различий." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:591 +#, no-wrap +msgid "Vendor" +msgstr "Поставщик" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:592 +#, no-wrap +msgid "Part Number" +msgstr "Номер детали" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:594 +#, no-wrap +msgid "Errors (aka \"differences\" reported)" +msgstr "Ошибки (также известные как \"различия\" в отчетах)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:595 +#: documentation/content/en/articles/serial-uart/_index.adoc:599 +#: documentation/content/en/articles/serial-uart/_index.adoc:603 +#, no-wrap +msgid "National" +msgstr "National" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:596 +#, no-wrap +msgid "(PC16550DV)" +msgstr "(PC16550DV)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:598 +#: documentation/content/en/articles/serial-uart/_index.adoc:602 +#: documentation/content/en/articles/serial-uart/_index.adoc:606 +#, no-wrap +msgid "0" +msgstr "0" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:600 +#, no-wrap +msgid "(NS16550AFN)" +msgstr "(NS16550AFN)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:604 +#, no-wrap +msgid "(NS16C552V)" +msgstr "(NS16C552V)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:607 +#, no-wrap +msgid "TI" +msgstr "TI" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:608 +#, no-wrap +msgid "(TL16550AFN)" +msgstr "(TL16550AFN)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:611 +#, no-wrap +msgid "CMD" +msgstr "CMD" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:612 +#, no-wrap +msgid "(16C550PE)" +msgstr "(16C550PE)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:615 +#, no-wrap +msgid "StarTech" +msgstr "StarTech" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:616 +#, no-wrap +msgid "(ST16C550J)" +msgstr "(ST16C550J)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:619 +#, no-wrap +msgid "Rockwell" +msgstr "Rockwell" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:620 +#, no-wrap +msgid "Reference modem with internal 16550 or an emulation (RC144DPi/C3000-25)" +msgstr "Стандартный модем с внутренним 16550 или его эмуляцией (RC144DPi/C3000-25)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:622 +#, no-wrap +msgid "117" +msgstr "117" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:623 +#, no-wrap +msgid "Sierra" +msgstr "Sierra" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:624 +#, no-wrap +msgid "Modem with an internal 16550 (SC11951/SC11351)" +msgstr "Модем с внутренним 16550 (SC11951/SC11351)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:625 +#, no-wrap +msgid "91" +msgstr "91" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:632 +msgid "" +"To date, the author of this document has not found any non-National parts " +"that report zero differences using the COMTEST program. It should also be " +"noted that National has had five versions of the 16550 over the years and " +"the newest parts behave a bit differently than the classic NS16550AFN that " +"is considered the benchmark for functionality. COMTEST appears to turn a " +"blind eye to the differences within the National product line and reports no " +"errors on the National parts (except for the original 16550) even when there " +"are official erratas that describe bugs in the A, B and C revisions of the " +"parts, so this bias in COMTEST must be taken into account." +msgstr "" +"На сегодняшний день автор данного документа не обнаружил ни одного не-" +"National компонента, который бы показывал нулевые различия при использовании " +"программы COMTEST. Также следует отметить, что у National было пять версий " +"16550 за эти годы, и новейшие компоненты ведут себя несколько иначе, чем " +"классический NS16550AFN, который считается эталоном функциональности. " +"COMTEST, по-видимому, закрывает глаза на различия внутри линейки продуктов " +"National и не сообщает об ошибках в компонентах National (за исключением " +"оригинальной 16550), даже когда существуют официальные errata, описывающие " +"ошибки в ревизиях A, B и C этих компонентов, поэтому эту предвзятость " +"COMTEST необходимо учитывать." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:639 +msgid "" +"It is important to understand that a simple count of differences from " +"COMTEST does not reveal a lot about what differences are important and which " +"are not. For example, about half of the differences reported in the two " +"modems listed above that have internal UARTs were caused by the clone UARTs " +"not supporting five- and six-bit character modes. The real 16550, 16450, " +"and 8250 UARTs all support these modes and COMTEST checks the functionality " +"of these modes so over fifty differences are reported. However, almost no " +"modern modem supports five- or six-bit characters, particularly those with " +"error-correction and compression capabilities. This means that the " +"differences related to five- and six-bit character modes can be discounted." +msgstr "" +"Важно понимать, что простое подсчитывание различий с COMTEST не дает полного " +"представления о том, какие различия существенны, а какие нет. Например, " +"около половины различий, обнаруженных в двух вышеупомянутых модемах с " +"внутренними UART, были вызваны тем, что клоновые UART не поддерживают режимы " +"пяти- и шестибитных символов. Настоящие UART 16550, 16450 и 8250 " +"поддерживают эти режимы, и COMTEST проверяет их функциональность, поэтому " +"фиксируется более пятидесяти различий. Однако почти ни один современный " +"модем не поддерживает пяти- или шестибитные символы, особенно те, что " +"обладают функциями коррекции ошибок и сжатия. Это означает, что различия, " +"связанные с режимами пяти- и шестибитных символов, можно не учитывать." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:643 +msgid "" +"Many of the differences COMTEST reports have to do with timing. In many of " +"the clone designs, when the host reads from one port, the status bits in " +"some other port may not update in the same amount of time (some faster, some " +"slower) as a _real_ NS16550AFN and COMTEST looks for these differences. " +"This means that the number of differences can be misleading in that one " +"device may only have one or two differences but they are extremely serious, " +"and some other device that updates the status registers faster or slower " +"than the reference part (that would probably never affect the operation of a " +"properly written driver) could have dozens of differences reported." +msgstr "" +"Многие различия, о которых сообщает COMTEST, связаны с временными " +"характеристиками. Во многих клонированных конструкциях, когда хост читает из " +"одного порта, статусные биты в другом порте могут обновляться с иной " +"скоростью (быстрее или медленнее), чем у _настоящего_ NS16550AFN, и COMTEST " +"выявляет эти различия. Это означает, что количество различий может вводить в " +"заблуждение: одно устройство может иметь всего одно или два различия, но они " +"крайне критичны, тогда как другое устройство, обновляющее статусные регистры " +"быстрее или медленнее эталонной части (что, вероятно, никогда не повлияет на " +"работу правильно написанного драйвера), может иметь десятки " +"зарегистрированных различий." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:645 +msgid "" +"COMTEST can be used as a screening tool to alert the administrator to the " +"presence of potentially incompatible components that might cause problems or " +"have to be handled as a special case." +msgstr "" +"COMTEST можно использовать в качестве инструмента проверки, чтобы " +"предупредить администратора о наличии потенциально несовместимых " +"компонентов, которые могут вызвать проблемы или потребуют особого подхода." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:648 +msgid "" +"If you run COMTEST on a 16550 that is in a modem or a modem is attached to " +"the serial port, you need to first issue a ATE0&W command to the modem so " +"that the modem will not echo any of the test characters. If you forget to " +"do this, COMTEST will report at least this one difference:" +msgstr "" +"Если вы запускаете COMTEST на 16550, который находится в модеме или к модему " +"подключён последовательный порт, необходимо сначала отправить модему команду " +"ATE0&W, чтобы модем не эхо-повторял ни один из тестовых символов. Если вы " +"забудете это сделать, COMTEST сообщит как минимум об одном различии:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:652 +#, no-wrap +msgid "Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61\n" +msgstr "Error (6)...Timeout interrupt failed: IIR = c1 LSR = 61\n" + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:654 +#, no-wrap +msgid "8250/16450/16550 Registers" +msgstr "8250/16450/16550 Регистры" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:660 +msgid "" +"The 8250/16450/16550 UART occupies eight contiguous I/O port addresses. In " +"the IBM PC, there are two defined locations for these eight ports and they " +"are known collectively as [.filename]#COM1# and [.filename]#COM2#. The " +"makers of PC-clones and add-on cards have created two additional areas known " +"as [.filename]#COM3# and [.filename]#COM4#, but these extra COM ports " +"conflict with other hardware on some systems. The most common conflict is " +"with video adapters that provide IBM 8514 emulation." +msgstr "" +"UART 8250/16450/16550 занимает восемь последовательных адресов портов ввода-" +"вывода. В IBM PC определены два расположения для этих восьми портов, которые " +"вместе известны как [.filename]#COM1# и [.filename]#COM2#. Производители PC-" +"клонов и дополнительных карт создали два дополнительных области, известных " +"как [.filename]#COM3# и [.filename]#COM4#, но эти дополнительные COM-порты " +"конфликтуют с другим оборудованием на некоторых системах. Наиболее " +"распространённый конфликт возникает с видеоадаптерами, обеспечивающими " +"эмуляцию IBM 8514." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:665 +msgid "" +"[.filename]#COM1# is located from 0x3f8 to 0x3ff and normally uses IRQ 4. " +"[.filename]#COM2# is located from 0x2f8 to 0x2ff and normally uses IRQ 3. " +"[.filename]#COM3# is located from 0x3e8 to 0x3ef and has no standardized " +"IRQ. [.filename]#COM4# is located from 0x2e8 to 0x2ef and has no " +"standardized IRQ." +msgstr "" +"[.filename]#COM1# находится в диапазоне от 0x3f8 до 0x3ff и обычно " +"использует IRQ 4. [.filename]#COM2# находится в диапазоне от 0x2f8 до 0x2ff " +"и обычно использует IRQ 3. [.filename]#COM3# находится в диапазоне от 0x3e8 " +"до 0x3ef и не имеет стандартного IRQ. [.filename]#COM4# находится в " +"диапазоне от 0x2e8 до 0x2ef и не имеет стандартного IRQ." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:667 +msgid "" +"A description of the I/O ports of the 8250/16450/16550 UART is provided " +"below." +msgstr "Описание портов ввода-вывода UART 8250/16450/16550 представлено ниже." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:672 +#, no-wrap +msgid "I/O Port" +msgstr "Порт ввода/вывода" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:673 +#, no-wrap +msgid "Access Allowed" +msgstr "Доступ Разрешен" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:676 +#: documentation/content/en/articles/serial-uart/_index.adoc:684 +#: documentation/content/en/articles/serial-uart/_index.adoc:692 +#, no-wrap +msgid "+0x00" +msgstr "+0x00" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:677 +#, no-wrap +msgid "write (DLAB==0)" +msgstr "запись (DLAB==0)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:683 +#, no-wrap +msgid "" +"Transmit Holding Register (THR).\n" +"\n" +"Information written to this port are treated as data words and will be transmitted by the UART." +msgstr "" +"Регистр передачи данных (THR).\n" +"\n" +"Информация, записанная в этот порт, обрабатывается как слова данных и передается через UART." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:685 +#, no-wrap +msgid "read (DLAB==0)" +msgstr "чтение (DLAB==0)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:691 +#, no-wrap +msgid "" +"Receive Buffer Register (RBR).\n" +"\n" +"Any data words received by the UART form the serial link are accessed by the host by reading this port." +msgstr "" +"Регистр буфера приема (RBR).\n" +"\n" +"Любые слова данных, полученные UART из последовательного соединения, доступны для чтения хостом через этот порт." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:693 +#: documentation/content/en/articles/serial-uart/_index.adoc:701 +#, no-wrap +msgid "write/read (DLAB==1)" +msgstr "запись/чтение (DLAB==1)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:699 +#, no-wrap +msgid "" +"Divisor Latch LSB (DLL)\n" +"\n" +"This value will be divided from the master input clock (in the IBM PC, the master clock is 1.8432MHz) and the resulting clock will determine the baud rate of the UART. This register holds bits 0 thru 7 of the divisor." +msgstr "" +"Младший байт защелки делителя (DLL — Divisor Latch LSB)\n" +"\n" +"Это значение будет поделено от основного входного тактового сигнала (в IBM PC основной тактовый сигнал равен 1,8432 МГц), и полученный тактовый сигнал будет определять скорость передачи UART. Этот регистр содержит биты с 0 по 7 делителя." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:700 +#: documentation/content/en/articles/serial-uart/_index.adoc:708 +#, no-wrap +msgid "+0x01" +msgstr "+0x01" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:707 +#, no-wrap +msgid "" +"Divisor Latch MSB (DLH)\n" +"\n" +"This value will be divided from the master input clock (in the IBM PC, the master clock is 1.8432MHz) and the resulting clock will determine the baud rate of the UART. This register holds bits 8 thru 15 of the divisor." +msgstr "" +"Старший байт защелки делителя (DLH — Divisor Latch MSB)\n" +"\n" +"Это значение будет разделено от основного входного тактового сигнала (в IBM PC основной тактовый сигнал равен 1,8432 МГц), и полученный тактовый сигнал будет определять скорость передачи данных UART. Этот регистр содержит биты с 8 по 15 делителя." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:709 +#, no-wrap +msgid "write/read (DLAB==0)" +msgstr "запись/чтение (DLAB==0)" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:721 +#, no-wrap +msgid "" +"Interrupt Enable Register (IER) +\n" +"\n" +"The 8250/16450/16550 UART classifies events into one of four categories. Each category can be configured to generate an interrupt when any of the events occurs. The 8250/16450/16550 UART generates a single external interrupt signal regardless of how many events in the enabled categories have occurred. It is up to the host processor to respond to the interrupt and then poll the enabled interrupt categories (usually all categories have interrupts enabled) to determine the true cause(s) of the interrupt. +\n" +"Bit 7 -> Reserved, always 0. +\n" +"Bit 6 -> Reserved, always 0. +\n" +"Bit 5 -> Reserved, always 0. +\n" +"Bit 4 -> Reserved, always 0. +\n" +"Bit 3 -> Enable Modem Status Interrupt (EDSSI). Setting this bit to \"1\" allows the UART to generate an interrupt when a change occurs on one or more of the status lines. +\n" +"Bit 2 -> Enable Receiver Line Status Interrupt (ELSI) Setting this bit to \"1\" causes the UART to generate an interrupt when the an error (or a BREAK signal) has been detected in the incoming data. +\n" +"Bit 1 -> Enable Transmitter Holding Register Empty Interrupt (ETBEI) Setting this bit to \"1\" causes the UART to generate an interrupt when the UART has room for one or more additional characters that are to be transmitted. +\n" +"Bit 0 -> Enable Received Data Available Interrupt (ERBFI) Setting this bit to \"1\" causes the UART to generate an interrupt when the UART has received enough characters to exceed the trigger level of the FIFO, or the FIFO timer has expired (stale data), or a single character has been received when the FIFO is disabled." +msgstr "" +"Регистр разрешения прерываний (IER) +\n" +"\n" +"UART 8250/16450/1655 классифицирует события на четыре категории. Каждая категория может быть настроена на генерацию прерывания при возникновении любого из событий. UART 8250/16450/16550 генерирует единый внешний сигнал прерывания независимо от того, сколько событий в разрешённых категориях произошло. Задача главного процессора — обработать прерывание и затем опросить разрешённые категории прерываний (обычно прерывания разрешены для всех категорий), чтобы определить истинную причину(ы) прерывания. +\n" +"Бит 7 -> Зарезервирован, всегда 0. +\n" +"Бит 6 -> Зарезервирован, всегда 0. +\n" +"Бит 5 -> Зарезервирован, всегда 0. +\n" +"Бит 4 -> Зарезервирован, всегда 0. +\n" +"Бит 3 -> Разрешение прерывания по состоянию модема (EDSSI). Установка этого бита в \"1\" позволяет UART генерировать прерывание при изменении состояния одной или нескольких линий статуса. +\n" +"Бит 2 -> Разрешение прерывания по состоянию линии приёмника (ELSI). Установка этого бита в \"1\" приводит к генерации прерывания UART при обнаружении ошибки (или сигнала BREAK) во входящих данных. +\n" +"Бит 1 -> Разрешение прерывания по опустошению регистра передатчика (ETBEI). Установка этого бита в \"1\" приводит к генерации прерывания UART, когда в UART появляется место для одного или более дополнительных символов, предназначенных для передачи. +\n" +"Бит 0 -> Разрешение прерывания по наличию принятых данных (ERBFI). Установка этого бита в \"1\" приводит к генерации прерывания UART, когда UART принял достаточное количество символов для превышения порога FIFO, или истекло время ожидания FIFO (устаревшие данные), или принят одиночный символ при отключённом FIFO." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:722 +#: documentation/content/en/articles/serial-uart/_index.adoc:741 +#, no-wrap +msgid "+0x02" +msgstr "+0x02" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:723 +#, no-wrap +msgid "write" +msgstr "запись" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:740 +#, no-wrap +msgid "" +"FIFO Control Register (FCR) (This port does not exist on the 8250 and 16450 UART.) +\n" +"Bit 7 -> Receiver Trigger Bit #1 +\n" +"Bit 6 -> Receiver Trigger Bit #0 +\n" +"\n" +"These two bits control at what point the receiver is to generate an interrupt when the FIFO is active. +\n" +"7 6 How many words are received before an interrupt is generated +\n" +"0 0 1 +\n" +"0 1 4 +\n" +"1 0 8 +\n" +"1 1 14 +\n" +"Bit 5 -> Reserved, always 0. +\n" +"Bit 4 -> Reserved, always 0. +\n" +"Bit 3 -> DMA Mode Select. If Bit 0 is set to \"1\" (FIFOs enabled), setting this bit changes the operation of the -RXRDY and -TXRDY signals from Mode 0 to Mode 1. +\n" +"Bit 2 -> Transmit FIFO Reset. When a \"1\" is written to this bit, the contents of the FIFO are discarded. Any word currently being transmitted will be sent intact. This function is useful in aborting transfers. +\n" +"Bit 1 -> Receiver FIFO Reset. When a \"1\" is written to this bit, the contents of the FIFO are discarded. Any word currently being assembled in the shift register will be received intact. +\n" +"Bit 0 -> 16550 FIFO Enable. When set, both the transmit and receive FIFOs are enabled. Any contents in the holding register, shift registers or FIFOs are lost when FIFOs are enabled or disabled. +" +msgstr "" +"Регистр управления FIFO (FCR — FIFO Control Register) (Этот порт отсутствует в UART 8250 и 16450.) +\n" +"Бит 7 -> Бит триггера приемника #1 +\n" +"Бит 6 -> Бит триггера приемника #0 +\n" +"\n" +"Эти два бита определяют, при каком количестве данных приемник должен генерировать прерывание, когда FIFO активен. +\n" +"7 6 Количество слов перед генерацией прерывания +\n" +"0 0 1 +\n" +"0 1 4 +\n" +"1 0 8 +\n" +"1 1 14 +\n" +"Бит 5 -> Зарезервирован, всегда 0. +\n" +"Бит 4 -> Зарезервирован, всегда 0. +\n" +"Бит 3 -> Выбор режима DMA. Если бит 0 установлен в \"1\" (FIFO включены), установка этого бита изменяет работу сигналов -RXRDY и -TXRDY с режима 0 на режим 1. +\n" +"Бит 2 -> Сброс передающего FIFO. При записи \"1\" в этот бит содержимое FIFO очищается. Любое слово, которое передается в данный момент, будет отправлено полностью. Эта функция полезна для прерывания передачи. +\n" +"Бит 1 -> Сброс приемного FIFO. При записи \"1\" в этот бит содержимое FIFO очищается. Любое слово, которое в данный момент собирается в сдвиговом регистре, будет принято полностью. +\n" +"Бит 0 -> Включение FIFO 16550. При установке этого бита активируются как передающий, так и приемный FIFO. Любое содержимое в регистре хранения, сдвиговых регистрах или FIFO теряется при включении или отключении FIFO. +" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:742 +#, no-wrap +msgid "read" +msgstr "чтение" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:758 +#, no-wrap +msgid "" +"Interrupt Identification Register +\n" +"Bit 7 -> FIFOs enabled. On the 8250/16450 UART, this bit is zero. +\n" +"Bit 6 -> FIFOs enabled. On the 8250/16450 UART, this bit is zero. +\n" +"Bit 5 -> Reserved, always 0. +\n" +"Bit 4 -> Reserved, always 0. +\n" +"Bit 3 -> Interrupt ID Bit #2. On the 8250/16450 UART, this bit is zero. +\n" +"Bit 2 -> Interrupt ID Bit #1 +\n" +"Bit 1 -> Interrupt ID Bit #0.These three bits combine to report the category of event that caused the interrupt that is in progress. These categories have priorities, so if multiple categories of events occur at the same time, the UART will report the more important events first and the host must resolve the events in the order they are reported. All events that caused the current interrupt must be resolved before any new interrupts will be generated. (This is a limitation of the PC architecture.) +\n" +"2 1 0 Priority Description +\n" +"0 1 1 First Received Error (OE, PE, BI, or FE) +\n" +"0 1 0 Second Received Data Available +\n" +"1 1 0 Second Trigger level identification (Stale data in receive buffer) +\n" +"0 0 1 Third Transmitter has room for more words (THRE) +\n" +"0 0 0 Fourth Modem Status Change (-CTS, -DSR, -RI, or -DCD) +\n" +"Bit 0 -> Interrupt Pending Bit. If this bit is set to \"0\", then at least one interrupt is pending." +msgstr "" +"Регистр идентификации прерываний +\n" +"Бит 7 -> FIFO включены. На UART 8250/16450 этот бит равен нулю. +\n" +"Бит 6 -> FIFO включены. На UART 8250/16450 этот бит равен нулю. +\n" +"Бит 5 -> Зарезервирован, всегда 0. +\n" +"Бит 4 -> Зарезервирован, всегда 0. +\n" +"Бит 3 -> Бит идентификатора прерывания №2. На UART 8250/16450 этот бит равен нулю. +\n" +"Бит 2 -> Бит идентификатора прерывания №1 +\n" +"Бит 1 -> Бит идентификатора прерывания №0.Эти три бита объединяются для указания категории события, вызвавшего текущее прерывание. Эти категории имеют приоритеты, поэтому, если несколько категорий событий происходят одновременно, UART сообщит о более важных событиях первыми, и хост должен обрабатывать события в порядке их поступления. Все события, вызвавшие текущее прерывание, должны быть обработаны до генерации новых прерываний. (Это ограничение архитектуры ПК.) +\n" +"2 1 0 Приоритет Описание +\n" +"0 1 1 Первый Принятая ошибка (OE, PE, BI или FE) +\n" +"0 1 0 Второй Доступны принятые данные +\n" +"1 1 0 Второй Идентификация уровня триггера (Устаревшие данные в буфере приема) +\n" +"0 0 1 Третий Передатчик готов принять больше данных (THRE) +\n" +"0 0 0 Четвертый Изменение состояния модема (-CTS, -DSR, -RI или -DCD) +\n" +"Бит 0 -> Бит ожидания прерывания. Если этот бит установлен в \"0\", то как минимум одно прерывание ожидает обработки." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:759 +#, no-wrap +msgid "+0x03" +msgstr "+0x03" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:760 +#: documentation/content/en/articles/serial-uart/_index.adoc:778 +#: documentation/content/en/articles/serial-uart/_index.adoc:790 +#: documentation/content/en/articles/serial-uart/_index.adoc:802 +#: documentation/content/en/articles/serial-uart/_index.adoc:813 +#, no-wrap +msgid "write/read" +msgstr "запись/чтение" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:776 +#, no-wrap +msgid "" +"Line Control Register (LCR) +\n" +"Bit 7 -> Divisor Latch Access Bit (DLAB). When set, access to the data transmit/receive register (THR/RBR) and the Interrupt Enable Register (IER) is disabled. Any access to these ports is now redirected to the Divisor Latch Registers. Setting this bit, loading the Divisor Registers, and clearing DLAB should be done with interrupts disabled. +\n" +"Bit 6 -> Set Break. When set to \"1\", the transmitter begins to transmit continuous Spacing until this bit is set to \"0\". This overrides any bits of characters that are being transmitted. +\n" +"Bit 5 -> Stick Parity. When parity is enabled, setting this bit causes parity to always be \"1\" or \"0\", based on the value of Bit 4.\n" +"Bit 4 -> Even Parity Select (EPS). When parity is enabled and Bit 5 is \"0\", setting this bit causes even parity to be transmitted and expected. Otherwise, odd parity is used. +\n" +"Bit 3 -> Parity Enable (PEN). When set to \"1\", a parity bit is inserted between the last bit of the data and the Stop Bit. The UART will also expect parity to be present in the received data. +\n" +"Bit 2 -> Number of Stop Bits (STB). If set to \"1\" and using 5-bit data words, 1.5 Stop Bits are transmitted and expected in each data word. For 6, 7 and 8-bit data words, 2 Stop Bits are transmitted and expected. When this bit is set to \"0\", one Stop Bit is used on each data word. +\n" +"Bit 1 -> Word Length Select Bit #1 (WLSB1) +\n" +"Bit 0 -> Word Length Select Bit #0 (WLSB0) +\n" +"Together these bits specify the number of bits in each data word. +\n" +"1 0 Word Length +\n" +"0 0 5 Data Bits +\n" +"0 1 6 Data Bits +\n" +"1 0 7 Data Bits +\n" +"1 1 8 Data Bits +" +msgstr "" +"Регистр управления линией (LCR — Line Control Register) +\n" +"Бит 7 -> Бит доступа к защелке делителя (DLAB). При установке доступ к регистру передачи/приема данных (THR/RBR) и регистру разрешения прерываний (IER) отключается. Любой доступ к этим портам перенаправляется к регистрам защелки делителя. Установка этого бита, загрузка регистров делителя и сброс DLAB должны выполняться при отключенных прерываниях. +\n" +"Бит 6 -> Установка прерывания. При установке в \"1\" передатчик начинает передавать непрерывный интервал (Spacing), пока этот бит не будет сброшен в \"0\". Это переопределяет любые передаваемые биты символов. +\n" +"Бит 5 -> Фиксированный бит четности. При включенной проверке четности установка этого бита приводит к тому, что бит четности всегда будет \"1\" или \"0\" в зависимости от значения бита 4.\n" +"Бит 4 -> Выбор четности (EPS). При включенной проверке четности и если бит 5 равен \"0\", установка этого бита приводит к использованию и ожиданию четной четности. В противном случае используется нечетная четность. +\n" +"Бит 3 -> Разрешение проверки четности (PEN). При установке в \"1\" бит четности вставляется между последним битом данных и стоповым битом. UART также ожидает наличие бита четности в принимаемых данных. +\n" +"Бит 2 -> Количество стоповых битов (STB). Если установлен в \"1\" и используются 5-битные слова данных, передается и ожидается 1.5 стоповых бита в каждом слове данных. Для 6, 7 и 8-битных слов данных передается и ожидается 2 стоповых бита. Если этот бит сброшен в \"0\", используется один стоповый бит в каждом слове данных. +\n" +"Бит 1 -> Бит выбора длины слова #1 (WLSB1) +\n" +"Бит 0 -> Бит выбора длины слова #0 (WLSB0) +\n" +"Вместе эти биты определяют количество битов в каждом слове данных. +\n" +"1 0 Длина слова +\n" +"0 0 5 бит данных +\n" +"0 1 6 бит данных +\n" +"1 0 7 бит данных +\n" +"1 1 8 бит данных +" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:777 +#, no-wrap +msgid "+0x04" +msgstr "+0x04" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:788 +#, no-wrap +msgid "" +"Modem Control Register (MCR) +\n" +"Bit 7 -> Reserved, always 0. +\n" +"Bit 6 -> Reserved, always 0. +\n" +"Bit 5 -> Reserved, always 0. +\n" +"Bit 4 -> Loop-Back Enable. When set to \"1\", the UART transmitter and receiver are internally connected together to allow diagnostic operations. In addition, the UART modem control outputs are connected to the UART modem control inputs. CTS is connected to RTS, DTR is connected to DSR, OUT1 is connected to RI, and OUT 2 is connected to DCD. +\n" +"Bit 3 -> OUT 2. An auxiliary output that the host processor may set high or low. In the IBM PC serial adapter (and most clones), OUT 2 is used to tri-state (disable) the interrupt signal from the 8250/16450/16550 UART. +\n" +"Bit 2 -> OUT 1. An auxiliary output that the host processor may set high or low. This output is not used on the IBM PC serial adapter. +\n" +"Bit 1 -> Request to Send (RTS). When set to \"1\", the output of the UART -RTS line is Low (Active). +\n" +"Bit 0 -> Data Terminal Ready (DTR). When set to \"1\", the output of the UART -DTR line is Low (Active). +" +msgstr "" +"Регистр управления модемом (MCR — Modem Control Register) +\n" +"Бит 7 -> Зарезервирован, всегда 0. +\n" +"Бит 6 -> Зарезервирован, всегда 0. +\n" +"Бит 5 -> Зарезервирован, всегда 0. +\n" +"Бит 4 -> Режим петли (Loop-Back). При установке в \"1\" передатчик и приёмник UART соединяются внутри для диагностики. Также выходы управления модемом UART подключаются к его входам: CTS к RTS, DTR к DSR, OUT1 к RI, а OUT2 к DCD. +\n" +"Бит 3 -> OUT2. Вспомогательный выход, который процессор может установить в высокий или низкий уровень. В адаптере IBM PC (и большинстве клонов) OUT2 используется для отключения сигнала прерывания от UART 8250/16450/16550. +\n" +"Бит 2 -> OUT1. Вспомогательный выход, который процессор может установить в высокий или низкий уровень. На адаптере IBM PC не используется. +\n" +"Бит 1 -> Запрос на передачу (RTS). При установке в \"1\" выход линии -RTS UART переходит в низкий уровень (активное состояние). +\n" +"Бит 0 -> Готовность терминала данных (DTR). При установке в \"1\" выход линии -DTR UART переходит в низкий уровень (активное состояние). +" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:789 +#, no-wrap +msgid "+0x05" +msgstr "+0x05" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:800 +#, no-wrap +msgid "" +"Line Status Register (LSR) +\n" +"Bit 7 -> Error in Receiver FIFO. On the 8250/16450 UART, this bit is zero. This bit is set to \"1\" when any of the bytes in the FIFO have one or more of the following error conditions: PE, FE, or BI. +\n" +"Bit 6 -> Transmitter Empty (TEMT). When set to \"1\", there are no words remaining in the transmit FIFO or the transmit shift register. The transmitter is completely idle. +\n" +"Bit 5 -> Transmitter Holding Register Empty (THRE). When set to \"1\", the FIFO (or holding register) now has room for at least one additional word to transmit. The transmitter may still be transmitting when this bit is set to \"1\". +\n" +"Bit 4 -> Break Interrupt (BI). The receiver has detected a Break signal. +\n" +"Bit 3 -> Framing Error (FE). A Start Bit was detected but the Stop Bit did not appear at the expected time. The received word is probably garbled. +\n" +"Bit 2 -> Parity Error (PE). The parity bit was incorrect for the word received. +\n" +"Bit 1 -> Overrun Error (OE). A new word was received and there was no room in the receive buffer. The newly-arrived word in the shift register is discarded. On 8250/16450 UARTs, the word in the holding register is discarded and the newly- arrived word is put in the holding register. +\n" +"Bit 0 -> Data Ready (DR) One or more words are in the receive FIFO that the host may read. A word must be completely received and moved from the shift register into the FIFO (or holding register for 8250/16450 designs) before this bit is set." +msgstr "" +"Регистр состояния линии (LSR — Line Status Register) +\n" +"Бит 7 -> Ошибка в FIFO приемника. На UART 8250/16450 этот бит равен нулю. Этот бит устанавливается в «1», когда любой из байтов в FIFO имеет одно или несколько из следующих условий ошибки: PE, FE или BI. +\n" +"Бит 6 -> Передатчик пуст (TEMT). Когда установлен в «1», в FIFO передатчика или сдвиговом регистре передатчика не осталось слов. Передатчик полностью бездействует. +\n" +"Бит 5 -> Регистр хранения передатчика пуст (THRE). Когда установлен в «1», в FIFO (или регистре хранения) теперь есть место для передачи как минимум одного дополнительного слова. Передатчик может все еще передавать данные, когда этот бит установлен в «1». +\n" +"Бит 4 -> Прерывание по Break (BI). Приемник обнаружил сигнал Break. +\n" +"Бит 3 -> Ошибка кадрирования (FE). Обнаружен стартовый бит, но стоповый бит не появился в ожидаемое время. Принятое слово, вероятно, искажено. +\n" +"Бит 2 -> Ошибка четности (PE). Бит четности для принятого слова был некорректен. +\n" +"Бит 1 -> Ошибка переполнения (OE). Было получено новое слово, но в буфере приема не было места. Вновь поступившее слово в сдвиговом регистре отбрасывается. На UART 8250/16450 слово в регистре хранения отбрасывается, а вновь поступившее слово помещается в регистр хранения. +\n" +"Бит 0 -> Данные готовы (DR). Одно или несколько слов находятся в FIFO приемника, которые хост может прочитать. Слово должно быть полностью принято и перемещено из сдвигового регистра в FIFO (или регистр хранения для 8250/16450) до того, как этот бит будет установлен." + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:801 +#, no-wrap +msgid "+0x06" +msgstr "+0x06" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:811 +#, no-wrap +msgid "" +"Modem Status Register (MSR) +\n" +"Bit 7 -> Data Carrier Detect (DCD). Reflects the state of the DCD line on the UART. +\n" +"Bit 6 -> Ring Indicator (RI). Reflects the state of the RI line on the UART. +\n" +"Bit 5 -> Data Set Ready (DSR). Reflects the state of the DSR line on the UART. +\n" +"Bit 4 -> Clear To Send (CTS). Reflects the state of the CTS line on the UART. +\n" +"Bit 3 -> Delta Data Carrier Detect (DDCD). Set to \"1\" if the -DCD line has changed state one more time since the last time the MSR was read by the host. +\n" +"Bit 2 -> Trailing Edge Ring Indicator (TERI). Set to \"1\" if the -RI line has had a low to high transition since the last time the MSR was read by the host. +\n" +"Bit 1 -> Delta Data Set Ready (DDSR). Set to \"1\" if the -DSR line has changed state one more time since the last time the MSR was read by the host. +\n" +"Bit 0 -> Delta Clear To Send (DCTS). Set to \"1\" if the -CTS line has changed state one more time since the last time the MSR was read by the host. +" +msgstr "" +"Регистр состояния модема (MSR — Modem Status Register) +\n" +"Бит 7 -> Обнаружение несущей данных (DCD). Отражает состояние линии DCD на UART. +\n" +"Бит 6 -> Индикатор вызова (RI). Отражает состояние линии RI на UART. +\n" +"Бит 5 -> Готовность передатчика данных (DSR). Отражает состояние линии DSR на UART. +\n" +"Бит 4 -> Готовность к приёму (CTS). Отражает состояние линии CTS на UART. +\n" +"Бит 3 -> Изменение состояния обнаружения несущей данных (DDCD). Устанавливается в \"1\", если линия -DCD изменила состояние ещё раз с момента последнего чтения MSR хостом. +\n" +"Бит 2 -> Фронт сигнала вызова (TERI). Устанавливается в \"1\", если линия -RI перешла из низкого уровня в высокий с момента последнего чтения MSR хостом. +\n" +"Бит 1 -> Изменение состояния готовности передатчика данных (DDSR). Устанавливается в \"1\", если линия -DSR изменила состояние ещё раз с момента последнего чтения MSR хостом. +\n" +"Бит 0 -> Изменение состояния готовности к приёму (DCTS). Устанавливается в \"1\", если линия -CTS изменила состояние ещё раз с момента последнего чтения MSR хостом. +" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:812 +#, no-wrap +msgid "+0x07" +msgstr "+0x07" + +#. type: Table +#: documentation/content/en/articles/serial-uart/_index.adoc:814 +#, no-wrap +msgid "Scratch Register (SCR). This register performs no function in the UART. Any value can be written by the host to this location and read by the host later on." +msgstr "Регистр Scratch (SCR — Scratch Register). Этот регистр не выполняет никакой функции в UART. Хост может записать любое значение в это место и позднее считать его." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:816 +#, no-wrap +msgid "Beyond the 16550A UART" +msgstr "За пределами UART 16550A" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:821 +msgid "" +"Although National Semiconductor has not offered any components compatible " +"with the 16550 that provide additional features, various other vendors " +"have. Some of these components are described below. It should be " +"understood that to effectively utilize these improvements, drivers may have " +"to be provided by the chip vendor since most of the popular operating " +"systems do not support features beyond those provided by the 16550." +msgstr "" +"Хотя National Semiconductor не предлагала никаких компонентов, совместимых с " +"16550 и предоставляющих дополнительные функции, другие производители сделали " +"это. Некоторые из этих компонентов описаны ниже. Следует понимать, что для " +"эффективного использования этих улучшений могут потребоваться драйверы от " +"производителя чипа, поскольку большинство популярных операционных систем не " +"поддерживают функции, выходящие за рамки возможностей 16550." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:822 +#, no-wrap +msgid "ST16650" +msgstr "ST16650" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:825 +msgid "" +"By default this part is similar to the NS16550A, but an extended 32-byte " +"send and receive buffer can be optionally enabled. Made by StarTech." +msgstr "" +"По умолчанию эта часть аналогична NS16550A, но дополнительно можно включить " +"расширенный 32-байтовый буфер отправки и приёма. Производитель — StarTech." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:826 +#, no-wrap +msgid "TIL16660" +msgstr "TIL16660" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:829 +msgid "" +"By default this part behaves similar to the NS16550A, but an extended 64-" +"byte send and receive buffer can be optionally enabled. Made by Texas " +"Instruments." +msgstr "" +"По умолчанию эта часть ведёт себя аналогично NS16550A, но дополнительно " +"может быть включён расширенный 64-байтный буфер передачи и приёма. " +"Производится Texas Instruments." + +#. type: Labeled list +#: documentation/content/en/articles/serial-uart/_index.adoc:830 +#, no-wrap +msgid "Hayes ESP" +msgstr "Hayes ESP" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:833 +msgid "" +"This proprietary plug-in card contains a 2048-byte send and receive buffer, " +"and supports data rates to 230.4Kbit/sec. Made by Hayes." +msgstr "" +"Эта проприетарная внешняя карта содержит буфер передачи и приема размером " +"2048 байт и поддерживает скорость передачи данных до 230,4 Кбит/с. " +"Произведено компанией Hayes." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:838 +msgid "" +"In addition to these \"dumb\" UARTs, many vendors produce intelligent serial " +"communication boards. This type of design usually provides a microprocessor " +"that interfaces with several UARTs, processes and buffers the data, and then " +"alerts the main PC processor when necessary. As the UARTs are not directly " +"accessed by the PC processor in this type of communication system, it is not " +"necessary for the vendor to use UARTs that are compatible with the 8250, " +"16450, or the 16550 UART. This leaves the designer free to components that " +"may have better performance characteristics." +msgstr "" +"В дополнение к этим \"простым\" UART многие производители выпускают " +"интеллектуальные платы для последовательной связи. Такой тип конструкции " +"обычно включает микропроцессор, который взаимодействует с несколькими UART, " +"обрабатывает и буферизует данные, а затем при необходимости уведомляет " +"основной процессор ПК. Поскольку в такой системе связи UART не доступны " +"напрямую процессору ПК, производителю не обязательно использовать UART, " +"совместимые с 8250, 16450 или 16550. Это дает разработчику свободу выбора " +"компонентов с лучшими характеристиками производительности." + +#. type: Title == +#: documentation/content/en/articles/serial-uart/_index.adoc:840 +#, no-wrap +msgid "Configuring the [.filename]#sio# driver" +msgstr "Настройка драйвера [.filename]#sio#" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:845 +msgid "" +"The [.filename]#sio# driver provides support for NS8250-, NS16450-, NS16550 " +"and NS16550A-based EIA RS-232C (CCITT V.24) communications interfaces. " +"Several multiport cards are supported as well. See the man:sio[4] manual " +"page for detailed technical documentation." +msgstr "" +"Драйвер [.filename]#sio# обеспечивает поддержку интерфейсов связи EIA " +"RS-232C (CCITT V.24) на основе NS8250, NS16450, NS16550 и NS16550A. Также " +"поддерживаются несколько многопортовых карт. Подробную техническую " +"документацию смотрите на man:sio[4]." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:846 +#, no-wrap +msgid "Digi International (DigiBoard) PC/8" +msgstr "Digi International (DigiBoard) PC/8" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:849 +msgid "_Contributed by `{awebster}`. 26 August 1995._" +msgstr "_Предоставлено `{awebster}`. 26 августа 1995._" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:853 +msgid "" +"Here is a config snippet from a machine with a Digi International PC/8 with " +"16550. It has 8 modems connected to these 8 lines, and they work just " +"great. Do not forget to add `options COM_MULTIPORT` or it will not work " +"very well!" +msgstr "" +"Вот фрагмент конфигурации с машины, на которой установлена плата Digi " +"International PC/8 с чипом 16550. К ней подключено 8 модемов, работающих на " +"этих 8 линиях, и они отлично функционируют. Не забудьте добавить `options " +"COM_MULTIPORT`, иначе работа будет нестабильной!" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:864 +#, no-wrap +msgid "" +"device sio4 at isa? port 0x100 flags 0xb05\n" +"device sio5 at isa? port 0x108 flags 0xb05\n" +"device sio6 at isa? port 0x110 flags 0xb05\n" +"device sio7 at isa? port 0x118 flags 0xb05\n" +"device sio8 at isa? port 0x120 flags 0xb05\n" +"device sio9 at isa? port 0x128 flags 0xb05\n" +"device sio10 at isa? port 0x130 flags 0xb05\n" +"device sio11 at isa? port 0x138 flags 0xb05 irq 9\n" +msgstr "" +"device sio4 at isa? port 0x100 flags 0xb05\n" +"device sio5 at isa? port 0x108 flags 0xb05\n" +"device sio6 at isa? port 0x110 flags 0xb05\n" +"device sio7 at isa? port 0x118 flags 0xb05\n" +"device sio8 at isa? port 0x120 flags 0xb05\n" +"device sio9 at isa? port 0x128 flags 0xb05\n" +"device sio10 at isa? port 0x130 flags 0xb05\n" +"device sio11 at isa? port 0x138 flags 0xb05 irq 9\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:867 +msgid "" +"The trick in setting this up is that the MSB of the flags represent the last " +"SIO port, in this case 11 so flags are 0xb05." +msgstr "" +"Хитрость настройки заключается в том, что старший бит флагов представляет " +"последний порт SIO, в данном случае 11, поэтому флаги равны 0xb05." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:868 +#, no-wrap +msgid "Boca 16" +msgstr "Boca 16" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:871 +msgid "_Contributed by `{whiteside}`. 26 August 1995._" +msgstr "_Предоставлено `{whiteside}`. 26 августа 1995._" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:873 +msgid "" +"The procedures to make a Boca 16 port board with FreeBSD are pretty " +"straightforward, but you will need a couple things to make it work:" +msgstr "" +"Процедуры по настройке платы Boca с 16 портами в FreeBSD довольно просты, но " +"вам понадобится несколько вещей для успешной работы:" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:875 +msgid "" +"You either need the kernel sources installed so you can recompile the " +"necessary options or you will need someone else to compile it for you. The " +"2.0.5 default kernel does _not_ come with multiport support enabled and you " +"will need to add a device entry for each port anyways." +msgstr "" +"Вам необходимо либо установить исходные коды ядра, чтобы перекомпилировать " +"нужные опции, либо найти кого-то, кто сделает это за вас. Стандартное ядро " +"версии 2.0.5 _не_ включает поддержку нескольких портов, и в любом случае вам " +"потребуется добавить запись устройства для каждого порта." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:876 +msgid "" +"Two, you will need to know the interrupt and IO setting for your Boca Board " +"so you can set these options properly in the kernel." +msgstr "" +"Два, вам нужно знать прерывание и настройку ввода-вывода для вашей платы " +"Boca, чтобы правильно установить эти параметры в ядре." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:880 +msgid "" +"One important note - the actual UART chips for the Boca 16 are in the " +"connector box, not on the internal board itself. So if you have it " +"unplugged, probes of those ports will fail. I have never tested booting " +"with the box unplugged and plugging it back in, and I suggest you do not " +"either." +msgstr "" +"Важное замечание — реальные микросхемы UART для Boca 16 находятся в " +"соединительной коробке, а не на внутренней плате. Поэтому, если она " +"отключена, попытки проверить эти порты завершатся неудачей. Я никогда не " +"проверял загрузку с отключённой коробкой и последующим её подключением, и не " +"рекомендую вам этого делать." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:883 +msgid "" +"If you do not already have a custom kernel configuration file set up, refer " +"to extref:{handbook}[Kernel Configuration, kernelconfig] chapter of the " +"FreeBSD Handbook for general procedures. The following are the specifics " +"for the Boca 16 board and assume you are using the kernel name MYKERNEL and " +"editing with vi." +msgstr "" +"Если у вас ещё нет настроенного файла конфигурации пользовательского ядра, " +"обратитесь к extref:{handbook}[Конфигурация ядра, kernelconfig] в " +"руководстве FreeBSD для получения общих инструкций. Ниже приведены " +"конкретные настройки для платы Boca 16, предполагается, что вы используете " +"ядро с именем MYKERNEL и редактируете его с помощью vi." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:887 +msgid "Add the line" +msgstr "Добавьте строку" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:891 +#, no-wrap +msgid "options COM_MULTIPORT\n" +msgstr "options COM_MULTIPORT\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:893 +msgid "to the config file." +msgstr "в конфигурационный файл." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:894 +msgid "" +"Where the current `device sio__n__` lines are, you will need to add 16 more " +"devices. The following example is for a Boca Board with an interrupt of 3, " +"and a base IO address 100h. The IO address for Each port is +8 hexadecimal " +"from the previous port, thus the 100h, 108h, 110h... addresses." +msgstr "" +"Где находятся текущие строки `device sio__n__`, вам нужно добавить ещё 16 " +"устройств. В следующем примере показана плата Boca Board с прерыванием 3 и " +"базовым адресом ввода-вывода 100h. Адрес ввода-вывода для каждого порта " +"увеличивается на 8 в шестнадцатеричной системе относительно предыдущего " +"порта, поэтому адреса будут 100h, 108h, 110h..." + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:904 +#, no-wrap +msgid "" +"device sio1 at isa? port 0x100 flags 0x1005\n" +"device sio2 at isa? port 0x108 flags 0x1005\n" +"device sio3 at isa? port 0x110 flags 0x1005\n" +"device sio4 at isa? port 0x118 flags 0x1005\n" +"...\n" +"device sio15 at isa? port 0x170 flags 0x1005\n" +"device sio16 at isa? port 0x178 flags 0x1005 irq 3\n" +msgstr "" +"device sio1 at isa? port 0x100 flags 0x1005\n" +"device sio2 at isa? port 0x108 flags 0x1005\n" +"device sio3 at isa? port 0x110 flags 0x1005\n" +"device sio4 at isa? port 0x118 flags 0x1005\n" +"...\n" +"device sio15 at isa? port 0x170 flags 0x1005\n" +"device sio16 at isa? port 0x178 flags 0x1005 irq 3\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:909 +msgid "" +"The flags entry _must_ be changed from this example unless you are using the " +"exact same sio assignments. Flags are set according to 0x``__MYY__`` where " +"_M_ indicates the minor number of the master port (the last port on a Boca " +"16) and _YY_ indicates if FIFO is enabled or disabled(enabled), IRQ sharing " +"is used(yes) and if there is an AST/4 compatible IRQ control register(no). " +"In this example," +msgstr "" +"Запись flags _обязательно_ должна быть изменена по сравнению с этим " +"примером, если вы не используете точно такие же назначения sio. Флаги " +"устанавливаются в соответствии с 0x``__MYY__``, где _M_ обозначает младший " +"номер главного порта (последний порт на Boca 16), а _YY_ указывает, включен " +"или выключен FIFO (включен), используется ли разделение IRQ (да) и есть ли " +"регистр управления IRQ, совместимый с AST/4 (нет). В этом примере," + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:914 +#, no-wrap +msgid "" +" flags\n" +"\t 0x1005\n" +msgstr "" +" flags\n" +"\t 0x1005\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:918 +msgid "" +"indicates that the master port is sio16. If I added another board and " +"assigned sio17 through sio28, the flags for all 16 ports on _that_ board " +"would be 0x1C05, where 1C indicates the minor number of the master port. Do " +"not change the 05 setting." +msgstr "" +"указывает, что основной порт - sio16. Если добавить другую плату и назначить " +"порты с sio17 по sio28, флаги для всех 16 портов на _этой_ плате будут " +"0x1C05, где 1C обозначает минорный номер основного порта. Не изменяйте " +"значение 05." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:919 +msgid "" +"Save and complete the kernel configuration, recompile, install and reboot. " +"Presuming you have successfully installed the recompiled kernel and have it " +"set to the correct address and IRQ, your boot message should indicate the " +"successful probe of the Boca ports as follows: (obviously the sio numbers, " +"IO and IRQ could be different)" +msgstr "" +"Сохраните и завершите конфигурацию ядра, перекомпилируйте, установите и " +"перезагрузитесь. Предполагая, что вы успешно установили перекомпилированное " +"ядро и настроили правильный адрес и IRQ, сообщение при загрузке должно " +"указывать на успешное обнаружение портов Boca следующим образом: (очевидно, " +"номера sio, IO и IRQ могут отличаться)" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:954 +#, no-wrap +msgid "" +"sio1 at 0x100-0x107 flags 0x1005 on isa\n" +"sio1: type 16550A (multiport)\n" +"sio2 at 0x108-0x10f flags 0x1005 on isa\n" +"sio2: type 16550A (multiport)\n" +"sio3 at 0x110-0x117 flags 0x1005 on isa\n" +"sio3: type 16550A (multiport)\n" +"sio4 at 0x118-0x11f flags 0x1005 on isa\n" +"sio4: type 16550A (multiport)\n" +"sio5 at 0x120-0x127 flags 0x1005 on isa\n" +"sio5: type 16550A (multiport)\n" +"sio6 at 0x128-0x12f flags 0x1005 on isa\n" +"sio6: type 16550A (multiport)\n" +"sio7 at 0x130-0x137 flags 0x1005 on isa\n" +"sio7: type 16550A (multiport)\n" +"sio8 at 0x138-0x13f flags 0x1005 on isa\n" +"sio8: type 16550A (multiport)\n" +"sio9 at 0x140-0x147 flags 0x1005 on isa\n" +"sio9: type 16550A (multiport)\n" +"sio10 at 0x148-0x14f flags 0x1005 on isa\n" +"sio10: type 16550A (multiport)\n" +"sio11 at 0x150-0x157 flags 0x1005 on isa\n" +"sio11: type 16550A (multiport)\n" +"sio12 at 0x158-0x15f flags 0x1005 on isa\n" +"sio12: type 16550A (multiport)\n" +"sio13 at 0x160-0x167 flags 0x1005 on isa\n" +"sio13: type 16550A (multiport)\n" +"sio14 at 0x168-0x16f flags 0x1005 on isa\n" +"sio14: type 16550A (multiport)\n" +"sio15 at 0x170-0x177 flags 0x1005 on isa\n" +"sio15: type 16550A (multiport)\n" +"sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa\n" +"sio16: type 16550A (multiport master)\n" +msgstr "" +"sio1 at 0x100-0x107 flags 0x1005 on isa\n" +"sio1: type 16550A (multiport)\n" +"sio2 at 0x108-0x10f flags 0x1005 on isa\n" +"sio2: type 16550A (multiport)\n" +"sio3 at 0x110-0x117 flags 0x1005 on isa\n" +"sio3: type 16550A (multiport)\n" +"sio4 at 0x118-0x11f flags 0x1005 on isa\n" +"sio4: type 16550A (multiport)\n" +"sio5 at 0x120-0x127 flags 0x1005 on isa\n" +"sio5: type 16550A (multiport)\n" +"sio6 at 0x128-0x12f flags 0x1005 on isa\n" +"sio6: type 16550A (multiport)\n" +"sio7 at 0x130-0x137 flags 0x1005 on isa\n" +"sio7: type 16550A (multiport)\n" +"sio8 at 0x138-0x13f flags 0x1005 on isa\n" +"sio8: type 16550A (multiport)\n" +"sio9 at 0x140-0x147 flags 0x1005 on isa\n" +"sio9: type 16550A (multiport)\n" +"sio10 at 0x148-0x14f flags 0x1005 on isa\n" +"sio10: type 16550A (multiport)\n" +"sio11 at 0x150-0x157 flags 0x1005 on isa\n" +"sio11: type 16550A (multiport)\n" +"sio12 at 0x158-0x15f flags 0x1005 on isa\n" +"sio12: type 16550A (multiport)\n" +"sio13 at 0x160-0x167 flags 0x1005 on isa\n" +"sio13: type 16550A (multiport)\n" +"sio14 at 0x168-0x16f flags 0x1005 on isa\n" +"sio14: type 16550A (multiport)\n" +"sio15 at 0x170-0x177 flags 0x1005 on isa\n" +"sio15: type 16550A (multiport)\n" +"sio16 at 0x178-0x17f irq 3 flags 0x1005 on isa\n" +"sio16: type 16550A (multiport master)\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:957 +msgid "If the messages go by too fast to see," +msgstr "Если сообщения проходят слишком быстро, чтобы их увидеть," + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:961 +#, no-wrap +msgid "# dmesg | more\n" +msgstr "# dmesg | more\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:963 +msgid "will show you the boot messages." +msgstr "покажет вам сообщения загрузки." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:964 +msgid "" +"Next, appropriate entries in [.filename]#/dev# for the devices must be made " +"using the [.filename]#/dev/MAKEDEV# script. This step can be omitted if you " +"are running FreeBSD 5.X with a kernel that has man:devfs[5] support compiled " +"in." +msgstr "" +"Далее необходимо создать соответствующие записи в [.filename]#/dev# для " +"устройств с помощью скрипта [.filename]#/dev/MAKEDEV#. Этот шаг можно " +"пропустить, если вы используете FreeBSD 5.X с ядром, в котором включена " +"поддержка man:devfs[5]." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:966 +msgid "" +"If you do need to create the [.filename]#/dev# entries, run the following as " +"`root`:" +msgstr "" +"Если вам необходимо создать записи в [.filename]#/dev#, выполните следующую " +"команду от имени `root`:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:972 +#, no-wrap +msgid "" +"# cd /dev\n" +"# ./MAKEDEV tty1\n" +"# ./MAKEDEV cua1\n" +msgstr "" +"# cd /dev\n" +"# ./MAKEDEV tty1\n" +"# ./MAKEDEV cua1\n" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:976 +#, no-wrap +msgid "" +"(everything in between)\n" +"# ./MAKEDEV ttyg\n" +"# ./MAKEDEV cuag\n" +msgstr "" +"(everything in between)\n" +"# ./MAKEDEV ttyg\n" +"# ./MAKEDEV cuag\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:979 +msgid "" +"If you do not want or need call-out devices for some reason, you can " +"dispense with making the [.filename]#cua*# devices." +msgstr "" +"Если по какой-то причине вам не нужны или не требуются устройства исходящих " +"соединений, вы можете обойтись без создания устройств [.filename]#cua*#." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:980 +msgid "" +"If you want a quick and sloppy way to make sure the devices are working, you " +"can simply plug a modem into each port and (as root)" +msgstr "" +"Если вам нужен быстрый и небрежный способ убедиться, что устройства " +"работают, вы можете просто подключить модем к каждому порту и (как root)" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:984 +#, no-wrap +msgid "# echo at > ttyd*\n" +msgstr "# echo at > ttyd*\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:986 +msgid "" +"for each device you have made. You _should_ see the RX lights flash for each " +"working port." +msgstr "" +"для каждого устройства, которое вы создали. Вы _должны_ увидеть, как мигают " +"индикаторы RX для каждого рабочего порта." + +#. type: Title === +#: documentation/content/en/articles/serial-uart/_index.adoc:988 +#, no-wrap +msgid "Support for Cheap Multi-UART Cards" +msgstr "Поддержка дешёвых многоканальных UART-карт" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:991 +msgid "" +"_Contributed by Helge Oldach_ " +"mailto:hmo@sep.hamburg.com[hmo@sep.hamburg.com], September 1999" +msgstr "" +"_Предоставлено Хельге Ольдахом_ " +"mailto:hmo@sep.hamburg.com[hmo@sep.hamburg.com], сентябрь 1999 года" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:993 +msgid "" +"Ever wondered about FreeBSD support for your 20$ multi-I/O card with two (or " +"more) COM ports, sharing IRQs? Here is how:" +msgstr "" +"Вы когда-нибудь задумывались о поддержке FreeBSD вашей 20-долларовой " +"многофункциональной карты с двумя (или более) COM-портами, разделяющими IRQ? " +"Вот как это сделать:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:997 +msgid "" +"Usually the only option to support these kind of boards is to use a distinct " +"IRQ for each port. For example, if your CPU board has an on-board " +"[.filename]#COM1# port (aka [.filename]#sio0#-I/O address 0x3F8 and IRQ 4) " +"and you have an extension board with two UARTs, you will commonly need to " +"configure them as [.filename]#COM2# (aka [.filename]#sio1#-I/O address 0x2F8 " +"and IRQ 3), and the third port (aka [.filename]#sio2#) as I/O 0x3E8 and IRQ " +"5. Obviously this is a waste of IRQ resources, as it should be basically " +"possible to run both extension board ports using a single IRQ with the " +"`COM_MULTIPORT` configuration described in the previous sections." +msgstr "" +"Обычно единственный способ поддержки таких плат — использование отдельного " +"IRQ для каждого порта. Например, если ваша материнская плата имеет " +"встроенный порт [.filename]#COM1# (он же [.filename]#sio0# — адрес ввода-" +"вывода 0x3F8 и IRQ 4), а у вас есть расширительная плата с двумя UART, то " +"обычно их нужно настроить как [.filename]#COM2# (он же [.filename]#sio1# — " +"адрес ввода-вывода 0x2F8 и IRQ 3), а третий порт (он же [.filename]#sio2#) — " +"с адресом 0x3E8 и IRQ 5. Очевидно, это расточительное использование ресурсов " +"IRQ, так как в принципе возможно запустить оба порта расширительной платы с " +"одним IRQ, используя конфигурацию `COM_MULTIPORT`, описанную в предыдущих " +"разделах." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:999 +msgid "" +"Such cheap I/O boards commonly have a 4 by 3 jumper matrix for the COM " +"ports, similar to the following:" +msgstr "" +"Такие недорогие платы ввода-вывода обычно имеют перемычечную матрицу 4x3 для " +"COM-портов, подобную следующей:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1008 +#, no-wrap +msgid "" +" o o o *\n" +"Port A |\n" +" o * o *\n" +"Port B |\n" +" o * o o\n" +"IRQ 2 3 4 5\n" +msgstr "" +" o o o *\n" +"Port A |\n" +" o * o *\n" +"Port B |\n" +" o * o o\n" +"IRQ 2 3 4 5\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1012 +msgid "" +"Shown here is port A wired for IRQ 5 and port B wired for IRQ 3. The IRQ " +"columns on your specific board may vary-other boards may supply jumpers for " +"IRQs 3, 4, 5, and 7 instead." +msgstr "" +"Показано, что порт A подключен для IRQ 5, а порт B — для IRQ 3. Столбцы IRQ " +"на вашей конкретной плате могут отличаться — другие платы могут " +"предоставлять перемычки для IRQ 3, 4, 5 и 7." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1016 +msgid "" +"One could conclude that wiring both ports for IRQ 3 using a handcrafted wire-" +"made jumper covering all three connection points in the IRQ 3 column would " +"solve the issue, but no. You cannot duplicate IRQ 3 because the output " +"drivers of each UART are wired in a \"totem pole\" fashion, so if one of the " +"UARTs drives IRQ 3, the output signal will not be what you would expect. " +"Depending on the implementation of the extension board or your motherboard, " +"the IRQ 3 line will continuously stay up, or always stay low." +msgstr "" +"Можно было бы сделать вывод, что подключение обоих портов к IRQ 3 с помощью " +"самодельной перемычки, замыкающей все три точки соединения в колонке IRQ 3, " +"решит проблему, но это не так. Невозможно дублировать IRQ 3, потому что " +"выходные драйверы каждого UART соединены по схеме \"монтажное И\", и если " +"один из UART управляет IRQ 3, выходной сигнал будет не таким, как ожидается. " +"В зависимости от реализации платы расширения или материнской платы, линия " +"IRQ 3 будет постоянно находиться в высоком уровне или всегда оставаться " +"низкой." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1020 +msgid "" +"You need to decouple the IRQ drivers for the two UARTs, so that the IRQ line " +"of the board only goes up if (and only if) one of the UARTs asserts a IRQ, " +"and stays low otherwise. The solution was proposed by Joerg Wunsch " +"mailto:j@ida.interface-business.de[j@ida.interface-business.de]: To solder " +"up a wired-or consisting of two diodes (Germanium or Schottky-types strongly " +"preferred) and a 1 kOhm resistor. Here is the schematic, starting from the " +"4 by 3 jumper field above:" +msgstr "" +"Вам необходимо разделить драйверы прерываний для двух UART, чтобы линия " +"прерывания платы поднималась только тогда (и только тогда), когда один из " +"UART вызывает прерывание, и оставалась низкой в противном случае. Решение " +"было предложено Йоргом Вуншем mailto:j@ida.interface-" +"business.de[j@ida.interface-business.de]: припаять монтажную схему " +"\"монтажное ИЛИ\", состоящую из двух диодов (предпочтительно германиевых или " +"типа Шоттки) и резистора на 1 кОм. Вот схема, начиная с контактного поля 4x3 " +"выше:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1034 +#, no-wrap +msgid "" +" Diode\n" +" +---------->|-------+\n" +" / |\n" +" o * o o | 1 kOhm\n" +"Port A +----|######|-------+\n" +" o * o o | |\n" +"Port B `-------------------+ ==+==\n" +" o * o o | Ground\n" +" \\ |\n" +" +--------->|-------+\n" +"IRQ 2 3 4 5 Diode\n" +msgstr "" +" Diode\n" +" +---------->|-------+\n" +" / |\n" +" o * o o | 1 kOhm\n" +"Port A +----|######|-------+\n" +" o * o o | |\n" +"Port B `-------------------+ ==+==\n" +" o * o o | Ground\n" +" \\ |\n" +" +--------->|-------+\n" +"IRQ 2 3 4 5 Diode\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1038 +msgid "" +"The cathodes of the diodes are connected to a common point, together with a " +"1 kOhm pull-down resistor. It is essential to connect the resistor to " +"ground to avoid floating of the IRQ line on the bus." +msgstr "" +"Катоды диодов соединены в общей точке вместе с подтягивающим резистором 1 " +"кОм. Важно подключить резистор к земле, чтобы избежать плавания линии IRQ на " +"шине." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1041 +msgid "" +"Now we are ready to configure a kernel. Staying with this example, we would " +"configure:" +msgstr "Теперь мы готовы настроить ядро. Продолжая этот пример, мы настроим:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1050 +#, no-wrap +msgid "" +"# standard on-board COM1 port\n" +"device sio0 at isa? port \"IO_COM1\" flags 0x10\n" +"# patched-up multi-I/O extension board\n" +"options COM_MULTIPORT\n" +"device sio1 at isa? port \"IO_COM2\" flags 0x205\n" +"device sio2 at isa? port \"IO_COM3\" flags 0x205 irq 3\n" +msgstr "" +"# standard on-board COM1 port\n" +"device sio0 at isa? port \"IO_COM1\" flags 0x10\n" +"# patched-up multi-I/O extension board\n" +"options COM_MULTIPORT\n" +"device sio1 at isa? port \"IO_COM2\" flags 0x205\n" +"device sio2 at isa? port \"IO_COM3\" flags 0x205 irq 3\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1055 +msgid "" +"Note that the `flags` setting for [.filename]#sio1# and [.filename]#sio2# is " +"truly essential; refer to man:sio[4] for details. (Generally, the `2` in " +"the \"flags\" attribute refers to [.filename]#sio#`2` which holds the IRQ, " +"and you surely want a `5` low nibble.) With kernel verbose mode turned on " +"this should yield something similar to this:" +msgstr "" +"Обратите внимание, что настройка `flags` для [.filename]#sio1# и " +"[.filename]#sio2# действительно важна; подробности смотрите в man:sio[4]. " +"(Обычно `2` в атрибуте \"flags\" относится к [.filename]#sio#`2`, который " +"содержит IRQ, и вам наверняка потребуется нижний ниббл `5`.) При включённом " +"режиме подробного вывода ядра это должно дать что-то похожее на следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1067 +#, no-wrap +msgid "" +"sio0: irq maps: 0x1 0x11 0x1 0x1\n" +"sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa\n" +"sio0: type 16550A\n" +"sio1: irq maps: 0x1 0x9 0x1 0x1\n" +"sio1 at 0x2f8-0x2ff flags 0x205 on isa\n" +"sio1: type 16550A (multiport)\n" +"sio2: irq maps: 0x1 0x9 0x1 0x1\n" +"sio2 at 0x3e8-0x3ef irq 3 flags 0x205 on isa\n" +"sio2: type 16550A (multiport master)\n" +msgstr "" +"sio0: irq maps: 0x1 0x11 0x1 0x1\n" +"sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa\n" +"sio0: type 16550A\n" +"sio1: irq maps: 0x1 0x9 0x1 0x1\n" +"sio1 at 0x2f8-0x2ff flags 0x205 on isa\n" +"sio1: type 16550A (multiport)\n" +"sio2: irq maps: 0x1 0x9 0x1 0x1\n" +"sio2 at 0x3e8-0x3ef irq 3 flags 0x205 on isa\n" +"sio2: type 16550A (multiport master)\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1072 +msgid "" +"Though [.filename]#/sys/i386/isa/sio.c# is somewhat cryptic with its use of " +"the \"irq maps\" array above, the basic idea is that you observe `0x1` in " +"the first, third, and fourth place. This means that the corresponding IRQ " +"was set upon output and cleared after, which is just what we would expect. " +"If your kernel does not display this behavior, most likely there is " +"something wrong with your wiring." +msgstr "" +"Хотя [.filename]#/sys/i386/isa/sio.c# выглядит несколько загадочно из-за " +"использования массива \"irq maps\" выше, основная идея заключается в том, " +"что вы наблюдаете `0x1` на первой, третьей и четвертой позициях. Это " +"означает, что соответствующий IRQ был установлен при выводе и сброшен после, " +"что полностью соответствует ожиданиям. Если ваше ядро не демонстрирует такое " +"поведение, скорее всего, проблема в вашей разводке." + +#. type: Title == +#: documentation/content/en/articles/serial-uart/_index.adoc:1074 +#, no-wrap +msgid "Configuring the [.filename]#cy# driver" +msgstr "Настройка драйвера [.filename]#cy#" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1077 +msgid "_Contributed by Alex Nash. 6 June 1996._" +msgstr "_Предоставлено Алексом Нэшем. 6 июня 1996._" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1080 +msgid "" +"The Cyclades multiport cards are based on the [.filename]#cy# driver instead " +"of the usual [.filename]#sio# driver used by other multiport cards. " +"Configuration is a simple matter of:" +msgstr "" +"Многопортовые карты Cyclades основаны на драйвере [.filename]#cy#, а не на " +"обычном драйвере [.filename]#sio#, используемом другими многопортовыми " +"картами. Настройка сводится к простым действиям:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1084 +msgid "" +"Add the [.filename]#cy# device to your kernel configuration (note that your " +"irq and iomem settings may differ)." +msgstr "" +"Добавьте устройство [.filename]#cy# в конфигурацию ядра (обратите внимание, " +"что параметры irq и iomem могут отличаться)." + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1088 +#, no-wrap +msgid "device cy0 at isa? irq 10 iomem 0xd4000 iosiz 0x2000\n" +msgstr "device cy0 at isa? irq 10 iomem 0xd4000 iosiz 0x2000\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1090 +msgid "Rebuild and install the new kernel." +msgstr "Перестройте и установите новый образ ядра." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1091 +msgid "" +"Make the device nodes by typing (the following example assumes an 8-port " +"board):" +msgstr "" +"Создайте файлы устройств, введя (следующий пример предполагает 8-портовую " +"плату):" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1096 +#, no-wrap +msgid "" +"# cd /dev\n" +"# for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done\n" +msgstr "" +"# cd /dev\n" +"# for i in 0 1 2 3 4 5 6 7;do ./MAKEDEV cuac$i ttyc$i;done\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1099 +msgid "" +"If appropriate, add dialup entries to [.filename]#/etc/ttys# by duplicating " +"serial device (`ttyd`) entries and using `ttyc` in place of `ttyd`. For " +"example:" +msgstr "" +"Если необходимо, добавьте записи для коммутируемого доступа в [.filename]#/" +"etc/ttys#, дублируя записи для последовательных устройств (`ttyd`) и " +"используя `ttyc` вместо `ttyd`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1107 +#, no-wrap +msgid "" +"ttyc0 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +"ttyc1 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +"ttyc2 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +"...\n" +"ttyc7 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +msgstr "" +"ttyc0 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +"ttyc1 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +"ttyc2 \"/usr/libexec/getty std.38400\" unknown on insecure\n" +"...\n" +"ttyc7 \"/usr/libexec/getty std.38400\" unknown on insecure\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1109 +msgid "Reboot with the new kernel." +msgstr "Перезагрузитесь с новым ядром." + +#. type: Title == +#: documentation/content/en/articles/serial-uart/_index.adoc:1111 +#, no-wrap +msgid "Configuring the [.filename]#si# driver" +msgstr "Настройка драйвера [.filename]#si#" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1114 +msgid "_Contributed by `{nsayer}`. 25 March 1998._" +msgstr "_Предоставлено `{nsayer}`. 25 марта 1998._" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1118 +msgid "" +"The Specialix SI/XIO and SX multiport cards use the [.filename]#si# driver. " +"A single machine can have up to 4 host cards. The following host cards are " +"supported:" +msgstr "" +"Специальные мультипортные карты Specialix SI/XIO и SX используют драйвер " +"[.filename]#si#. На одной машине может быть установлено до 4 хост-карт. " +"Поддерживаются следующие хост-карты:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1120 +msgid "ISA SI/XIO host card (2 versions)" +msgstr "ISA SI/XIO host card (2 versions)" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1121 +msgid "EISA SI/XIO host card" +msgstr "EISA SI/XIO host card" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1122 +msgid "PCI SI/XIO host card" +msgstr "PCI SI/XIO host card" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1123 +msgid "ISA SX host card" +msgstr "ISA SX host card" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1124 +msgid "PCI SX host card" +msgstr "PCI SX host card" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1130 +msgid "" +"Although the SX and SI/XIO host cards look markedly different, their " +"functionality are basically the same. The host cards do not use I/O " +"locations, but instead require a 32K chunk of memory. The factory " +"configuration for ISA cards places this at `0xd0000-0xd7fff`. They also " +"require an IRQ. PCI cards will, of course, auto-configure themselves." +msgstr "" +"Хотя хост-карты SX и SI/XIO выглядят заметно по-разному, их функциональность " +"практически одинакова. Хост-карты не используют порты ввода-вывода, а вместо " +"этого требуют 32К сегмента памяти. Заводская конфигурация для карт ISA " +"размещает этот сегмент по адресу `0xd0000-0xd7fff`. Также им требуется IRQ. " +"Карты PCI, разумеется, настраиваются автоматически." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1134 +msgid "" +"You can attach up to 4 external modules to each host card. The external " +"modules contain either 4 or 8 serial ports. They come in the following " +"varieties:" +msgstr "" +"Вы можете подключить до 4 внешних модулей к каждой карте хоста. Внешние " +"модули содержат либо 4, либо 8 последовательных портов. Они бывают следующих " +"видов:" + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1136 +msgid "SI 4 or 8 port modules. Up to 57600 bps on each port supported." +msgstr "" +"Модули SI на 4 или 8 портов. Поддерживается скорость до 57600 бит/с на " +"каждом порту." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1137 +msgid "" +"XIO 8 port modules. Up to 115200 bps on each port supported. One type of XIO " +"module has 7 serial and 1 parallel port." +msgstr "" +"XIO 8-портовые модули. Поддерживается скорость до 115200 бит/с на каждом " +"порту. Один из типов модулей XIO имеет 7 последовательных и 1 параллельный " +"порт." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1138 +msgid "" +"SXDC 8 port modules. Up to 921600 bps on each port supported. Like XIO, a " +"module is available with one parallel port as well." +msgstr "" +"Модули SXDC с 8 портами. Поддерживается скорость до 921600 бит/с на каждом " +"порту. Как и в случае с XIO, доступен модуль с одним параллельным портом." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1140 +msgid "" +"To configure an ISA host card, add the following line to your kernel " +"configuration file, changing the numbers as appropriate:" +msgstr "" +"Для настройки карты хоста ISA добавьте следующую строку в файл конфигурации " +"ядра, изменив числа по мере необходимости:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1144 +#, no-wrap +msgid "device si0 at isa? iomem 0xd0000 irq 11\n" +msgstr "device si0 at isa? iomem 0xd0000 irq 11\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1147 +msgid "" +"Valid IRQ numbers are 9, 10, 11, 12 and 15 for SX ISA host cards and 11, 12 " +"and 15 for SI/XIO ISA host cards." +msgstr "" +"Допустимые номера IRQ: 9, 10, 11, 12 и 15 для SX ISA host cards и 11, 12 и " +"15 для SI/XIO ISA host cards." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1149 +msgid "To configure an EISA or PCI host card, use this line:" +msgstr "Для настройки карты EISA или PCI используйте следующую строку:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1153 +#, no-wrap +msgid "device si0\n" +msgstr "device si0\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1156 +msgid "" +"After adding the configuration entry, rebuild and install your new kernel." +msgstr "" +"После добавления записи конфигурации пересоберите и установите свое новое " +"ядро." + +#. type: delimited block = 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1160 +msgid "" +"The following step, is not necessary if you are using man:devfs[5] in " +"FreeBSD 5._X_." +msgstr "" +"Следующий шаг не обязателен, если вы используете man:devfs[5] в FreeBSD " +"5._X_." + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1165 +msgid "" +"After rebooting with the new kernel, you need to make the device nodes in " +"[.filename]#/dev#. The [.filename]#MAKEDEV# script will take care of this " +"for you. Count how many total ports you have and type:" +msgstr "" +"После перезагрузки с новым ядром необходимо создать файлы устройств в " +"[.filename]#/dev#. Скрипт [.filename]#MAKEDEV# выполнит эту задачу за вас. " +"Подсчитайте общее количество портов и введите:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1170 +#, no-wrap +msgid "" +"# cd /dev\n" +"# ./MAKEDEV ttyAnn cuaAnn\n" +msgstr "" +"# cd /dev\n" +"# ./MAKEDEV ttyAnn cuaAnn\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1173 +msgid "(where _nn_ is the number of ports)" +msgstr "(где _nn_ — количество портов)" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1175 +msgid "" +"If you want login prompts to appear on these ports, you will need to add " +"lines like this to [.filename]#/etc/ttys#:" +msgstr "" +"Если вы хотите, чтобы приглашения к входу отображались на этих портах, вам " +"нужно добавить такие строки в [.filename]#/etc/ttys#:" + +#. type: delimited block . 4 +#: documentation/content/en/articles/serial-uart/_index.adoc:1179 +#, no-wrap +msgid "ttyA01 \"/usr/libexec/getty std.9600\" vt100 on insecure\n" +msgstr "ttyA01 \"/usr/libexec/getty std.9600\" vt100 on insecure\n" + +#. type: Plain text +#: documentation/content/en/articles/serial-uart/_index.adoc:1182 +msgid "" +"Change the terminal type as appropriate. For modems, `dialup` or `unknown` " +"is fine." +msgstr "" +"Измените тип терминала по необходимости. Для модемов подойдут `dialup` или " +"`unknown`." |