Характеристики разъемов последовательных портов. Принцип работы последовательного порта и его отличие от параллельного. Лучший порт для урагана данных

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

Прерывания и адреса

Передача данных от центрального процессора к любому периферийному устройству и наоборот контролируется заданием запроса на прерывание (IRQ) и адреса ввода-вывода (I/O address). Для внешнего периферийного устройства запрос на прерывание и адрес ввода-вывода приписываются тому порту, через который оно подсоединяется.

Сами слова "запрос на прерывание" сообщают, что прерывается работа ЦП и ему предписывается заняться данными, поступающими с какого-либо устройства. Всего существует 16 прерываний - от 0 до 15. Все последовательные и параллельные порты, как правило, требуют своего собственного запроса прерывания, за исключением того, что порты СОМ1 и COM3, а также COM2 и COM4 зачастую имеют общий запрос прерывания.

Для каждого порта нужно указывать уникальный адрес ввода-вывода, который подобен почтовому ящику для приходящей на адрес ЦП корреспонденции, в котором она хранится до обработки. Если какой-либо запрос на прерывание или адрес ввода-вывода используются одновременно более чем одним устройством, то ни одно из них не будет работать надлежащим образом и может даже "зависнуть" ПК.

При проблемах с портом проверьте, какие запросы на прерывание и адрес ввода-вывода ему приписаны.

Панель управления - Система - Устройства - Порты СОМ и LPT

Если вы увидите перед какой-либо строчкой желтый кружок с восклицательным знаком внутри, то, возможно, найдете причину "помехи". Выделив строчку, нажмите "Свойства - Ресурсы". В поле "Список конфликтующих устройств" найдите, что вызывает конфликт. Если окажется, что это какая-нибудь старая плата, не поддерживающая Plug & Play, то она будет указана в списке как "Неизвестное устройство".

Чтобы разрешить проблему, измените для одного из устройств-нарушителей запрос на прерывание или адрес ввода-вывода. Если порт находится на системной плате, то используйте для этого программу начальной установки системы System Setup (BIOS).

Для вхождения в System Setup во время запуска ПК нажмите клавишу "Delete", "F1" или иную - узнайте в документации на систему. Во многих программах начальной установки можно назначать запрос на прерывание и адрес ввода-вывода (установить ресурсы) для каждого конкретного порта, отменив старые.

Найдите неиспользуемый запрос на прерывание или адрес ввода-вывода.

Панель управления - Система - Устройства - Компьютер

Вы увидите полный список применяемых ресурсов. Если неиспользуемых запросов на прерывание нет, то попробуйте отключить с помощью System Setup неиспользуемый порт.

После этого...

Система - Устройства - Конфликтующее устройство - Ресурсы

Выключите функцию "Автоматическая настройка". В окне "Перечень ресурсов" выберите тип ресурса, нажмите кнопку "Изменить" и в поле "Значение" задайте новое (неиспользуемое) значение запроса на прерывание или адрес ввода-вывода.

Установка параметров паралельных портов

Параллельные порты обозначаются аббревиатурой LPT. Компьютер автоматически приписывает каждому обнаруженному параллельному порту адреса от LPT1 до LPT3.

Если вы устанавливаете второй параллельный порт, убедитесь, что он не использует уже имеющийся запрос на прерывание. В некоторых компьютерах LPT1 и LPT2 по умолчанию применяют IRQ7. С помощью Диспетчера устройств установите IRQ5 для LPT2. Если это невозможно, то используйте программу Setup CMOS вашей системы.

Стандартные установки ресурсов параллельных портов

LPT-порт Запрос на прерывания Адрес ввода-вывода
LPT1 IRQ7 ЗВС
LPT2 IRQ7 378
LPT3 IRQ5 278

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

Каждый последовательный порт идентифицируется с помощью одного из восьми возможных СОМ-адресов - СОМ1, COM2 и т. д., каждому из которых соответствуют свой уникальный адрес ввода-вывода и запрос на прерывание.

Будьте внимательны при установке в ПК устройства, требующего СОМ-порта. Порты СОМ1 и COM2 имеют стандартные адреса ввода-вывода и запросы на прерывание, которые нигде не должны изменяться (обычно могут быть изменены только в программе Setup CMOS вашего ПК). Если для нового устройства требуется назначить порт СОМ1 или COM2, то при загрузке ПК войдите в программу Setup и либо отключите последовательный порт, приписанный к СОМ1 или COM2, либо, если нужно освободить соответствующие установки для добавляемого устройства, измените идентифицирующие его запрос на прерывание и адрес ввода-вывода.

Заметьте, что все стандартные адреса ввода-вывода используют только третье и четвертое прерывания. Поскольку два устройства не должны использовать один и тот же запрос на прерывание, то постарайтесь для новых внешних устройств приписать портьте COM3 по COM3, вручную устанавливая запросы на прерывание и адреса ввода-вывода с помощью Диспетчера устройств (диалоговое окно "Свойства: Система" ).

Стандартные установки ресурсов последовательных портов

СОМ-порт Запрос на прерывание Адрес ввода-вывода
СОМ1 IRQ4 3F8
COM2 IRQ3 2F8
COM3 IRQ4 ЗЕ8
COM4 IRQ3* 2Е8
СОМ5 IRQ4* ЗЕО
СОМ6 IRQ3* 2ЕО
СОМ7 IRQ4* 338
СОМ8 IRQ3* 238

* Могут быть установлены с помощью Диспетчера устройств Windows 9x (Свойства: Система)

Оптимизация последовательных портов

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

Как правило, современные ПК поставляются с UART модели 16550. В этом случае максимальная пропускная способность составляет 115 кбит/с, что обеспечивает достаточную полосу пропускания для большинства последовательных устройств. Более старые UART моделей 16450 и 8250 с этой задачей уже не справляются. Но иногда производительности UART 16550 может оказаться недостаточно, ведь некоторые аналоговые модемы обрабатывают сжатые данные со скоростью 230 кбит/с, а адаптеры ISDN - до 1 Мбит/с. Так что, если вам требуется большая скорость передачи данных, покупайте плату расширения с UART модели 16750, способной работать со скоростью 921 кбит/с.

Работа с параллельными портами

Параллельные порты обычно используются для принтеров, хотя через них могут подключаться к ПК и другие устройства, например сканеры. С их помощью можно передавать данные со скоростью от 40 Кбайт/с до 1 Мбайт/с, а иногда даже с большей.

В основном все ПК поставляются с одним параллельным портом в виде 25-штырькового разъема на задней панели. Чтобы добавить второй порт, необходимо купить контроллер ввода-вывода и установить его в разъем расширения на системной плате. Параллельный порт бывает четырех типов - однонаправленный, двунаправленный, с улучшенными возможностями (ЕРР-порт) и с расширенными возможностями (ЕСР-порт). Для каждого из них характерны различные скорость и возможности. Порты большинства новых ПК поддерживают все четыре режима, и чтобы узнать, какой из них обеспечивает параллельный порт, посмотрите в программе Setup (CMOS Setup utility) вашего ПК раздел периферийных устройств (Integrated peripherals).

Однонаправленный порт иногда называется также SPP-портом. Эта базовая конфигурация пропускает данные со скоростью 40-50 Кбайт/с лишь в одном направлении - к принтеру или другому внешнему устройству.

Двунаправленный порт. Обеспечивает двусторонний обмен данными со скоростью передачи от 100 до 300 Кбайт/с между ПК и внешним устройством. При этом информация о состоянии последнего поступает в компьютер.

Порт с улучшенными возможностями (ЕРР). Разработан для внешних дисководов и сетевых адаптеров, требующих высокой производительности. Обеспечивает скорость передачи данных от 400 Кбайт/с до 1 Мбайт/с и более.

При установке в программе System Setup опции ЕРР предлагаются версии 1.7 и 1.9. Практически для всех периферийных устройств, купленных в последние годы, нужно выбирать 1.9.

Порт с расширенными возможностями (ЕСР). Повышает скорость и расширяет возможности обмена данными между внешним устройством и компьютером. Если принтер и иное периферийное устройство поддерживают ЕСР, то они непосредственно выдают сообщения о состоянии устройств и ошибках.

Если в программе. System Setup задать опцию ЕСР, то появится строчка для выбора DMA-канала (канал непосредственного доступа к памяти, direct memory access). Необходимо задать его так же, как и при запросе на прерывание. Чтобы предотвратить возникновение конфликтов DMA-каналов, просмотрите свободные из них в окне "Свойства: Компьютер" , как описано выше. Если конфликта не избежать, то вернитесь к двунаправленному режиму порта.

Лучший порт для урагана данных.

В новых системах и периферийных устройствах параллельные и последовательные порты стали заменять универсальной последовательной шиной (Universal Serial Bus , USB). С ее помощью можно достичь скорости передачи данных до 12 Мбит/с, а также подключать при наличии всего одного порта клавиатуры, мониторы, мыши и многие другие (до 127) устройства, которые, как и с решающим сходные задачи SCSI-интерфейсом, могут быть соединены "цепочкой" . При этом используется всего один запрос прерывания. USB-шину можно устанавливать и на более старые компьютеры, купив соответствующую плату расширения.

Особенностью данного порта по сравнению с другими "последовательными" технологиями является факт отсутствия каких-либо временных требований между 2 байтами. Временные требования есть только между битами одного байта (включая старт, стоп и четность), величина, обратная временной паузе между битами одного байта, называется baud rate - скорость передачи. Также в этой технологии отсутствует понятие "пакет".

Другие "последовательные" технологии, такие, как X.25, USB или Ethernet, имеют понятие "пакет", и накладывают жесткие временные требования между всеми битами одного пакета.

По этой причине в терминологии Cisco IOS данный порт назывался async - в отличие от синхронных serial, т.е. X.25. По этой же причине модуль Windows , реализующий PPP поверх данного порта, называется AsyncMac.sys (в стандарте PPP отдельно описана реализация PPP, использующего понятие "пакет", над последовательным портом, этого понятия не имеющим).

Некоторые протоколы связи с индустриальным оборудованием налагают жесткие временные требования между байтами последовательного порта. Такие протоколы крайне сложны в реализации в многозадачных ОС со слабой поддержкой реального времени, такой, как Windows, и потому зачастую требуют MS-DOS и устаревшего ПО почти 20-летней давности на управляющем компьютере.

Назначение

Наиболее часто для последовательного порта персональных компьютеров используется стандарт RS-232C. Ранее последовательный порт использовался для подключения терминала, позже для модема или мыши . Сейчас он используется для соединения с , для связи с аппаратными средствами разработки встраиваемых вычислительных систем , спутниковыми ресиверами, кассовыми аппаратами, а также с приборами систем безопасности объектов.

С помощью COM-порта можно соединить два компьютера, используя так называемый «нуль-модемный кабель» (см. ниже). Использовался со времен MS-DOS для перекачки файлов с одного компьютера на другой, в UNIX для терминального доступа к другой машине, а в Windows (даже современной) - для отладчика уровня ядра.

Достоинством технологии является крайняя простота оборудования. Недостатком является низкая скорость, крупные размеры разъемов, а также зачастую высокие требования к времени отклика ОС и драйвера и высокое количество прерываний (одно на половину аппаратной очереди, т.е. 8 байт).

Разъемы

На материнских платах ведущих производителей (например, Intel) или готовых системах (например, IBM , Hewlett-Packard , Fujitsu Siemens Computers) для последовательного порта принято следующее условное обозначение:

Наиболее часто используются стандартизированные в 1969 году D-образные разъёмы: 9-ти и 25-ти контактные, (DB-9 и DB-25 соответственно). Раньше использовались также DB-31 и круглые восьмиконтактные DIN-8. Максимальная скорость передачи, в обычном исполнении порта, составляет 115 200 бод .

Актуальность

Существуют стандарты на эмуляцию последовательного порта над USB и над Bluetooth (эта технология в значительной степени и проектировалась как «беспроводной последовательный порт»).

Тем не менее программная эмуляция данного порта широко используется и сегодня. Так, например, практически все мобильные телефоны эмулируют внутри себя классический COM-порт и модем для реализации тетеринга - доступа компьютера в Интернет через GPRS/EGDE/3G оборудование телефона. При этом для физического подключения к компьютеру используется USB, Bluetooth или Wi-Fi .

Также программная эмуляция данного порта предоставляется «гостям» виртуальных машин VMWare и Microsoft Hyper-V , основная цель при этом - подключение отладчика уровня ядра Windows к «гостю».

Аппаратура

Разъем имеет контакты:

DTR (Data Terminal Ready - готовность к приёму данных) - выход на компьютере, вход на модеме. Означает готовность компьютера к работе с модемом. Сброс этой линии вызывает почти полную перезагрузку модема в первоначальное состояние, в т.ч. бросание трубки (некоторые управляющие регистры выживают после такого сброса). В UNIX это происходит в случае, если все приложения закрыли файлы на драйвере сериального порта. Мышь использует этот провод для получения питания.

DSR (Data Set Ready - готовность к передаче данных) - вход на компьютере, выход на модеме. Означает готовность модема. Если эта линия находится в нуле - то в ряде ОС становится невозможно открыть порт как файл.

RxD (Receive Data - приём данных) - вход на компьютере, выход на модеме. Поток данных, входящий в компьютер.

TxD (Transmit Data - передача данных) - выход на компьютере, вход на модеме. Поток данных, исходящих из компьютера.

CTS (Clear to Send - готовность передачи) - вход на компьютере, выход на модеме. Компьютер обязан приостановить передачу данных, пока этот провод не будет выставлен в единицу. Используется в аппаратном протоколе управления потоком для предотвращения переполнения в модеме.

RTS (Request to Send - запрос на передачу) - выход на компьютере, вход на модеме. Модем обязан приостановить передачу данных, пока этот провод не будет выставлен в единицу. Используется в аппаратном протоколе управления потоком для предотвращения переполнения в оборудовании и драйвере.

DCD (Carrier Detect - наличие несущей) - вход на компьютере, выход на модеме. Взводится модемом в единицу после установления соединения с модемом с той стороны, сбрасывается в ноль при разрыве связи. Аппаратура компьютера может издавать прерывание при наступлении такого события.

RI (Ring Indicator - сигнал вызова) - вход на компьютере, выход на модеме. Взводится модемом в единицу после обнаружения вызывного сигнала телефонного звонка. Аппаратура компьютера может издавать прерывание при наступлении такого события.

SG (Signal Ground - сигнальная земля) - общий сигнальный провод порта, не является общей землёй , как правило, изолирован от корпуса ЭВМ или модема.

В нуль-модемном кабеле используются две перекрещенные пары: TXD/RXD и RTS/CTS.

Стандартная (со времен оригинальной IBM PC) аппаратура порта называется UART 16550 (в настоящее время включена в SuperIO микросхему на материнской плате вместе с рядом иных устройств). Со времен IBM PC в ней появилась аппаратная очередь байт, которая сильно снижает количество издаваемых устройством прерываний.

Программный доступ к СОМ-порту

UNIX

Для каждого порта в реестре имеется раздел. Эти разделы имеют такие имена:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000

где последнее значение “Serial10000” - уникальный номер для каждого нового добавленного в систему COM-порта, для второго – “Serial10001” и т.д

Для связи с устройствами, поддерживающими Bluetooth, некоторым программам (например, к таким программам относятся: программа, которая синхронизирует список контактов с мобильным телефоном; программа, которая извлекает координаты GPS из GPS-приемника) на компьютере пользователя требуется COM-порт.

К программам, использующим COM-порты для поддержки связи с помощью технологии беспроводного подключения Bluetooth, непосредственно разработанных фирмой Microsoft, относятся:

  • HotSync, используемый в ручных компьютерах
  • ActiveSync , используемый в карманных ПК

OS/2

Имеющийся драйвер COM.SYS поддерживает только 4 COM-порта, каждый из которых должен иметь свою линию прерываний. Для обслуживания COM-портов с общей линией прерывания необходимо воспользоваться драйвером SIO .

Нуль-модемный кабель

Основная статья: Нуль-модемный кабель

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

См. также

  • Сигналы последовательных портов

Примечания

Ссылки

  • Перевод руководства по программированию СОМ-порта в POSIX операционных системах
  • Программирование порта на java - позволяет работать из Windows, в отличие от официальных пакетов от Sun.
  • Программирование COM порта на C++ под Windows. Готовая библиотека, исходные тексты, примеры программ.
  • Яшкардин В.Л. Последовательный порт. Программирование COM-порта в Windows и MS-DOS . SoftElectro (2009). Архивировано из первоисточника 8 февраля 2012.

В последнее время последовательный способ передачи данных вытесняет параллельный.
За примерами далеко ходить не надо: появление шин USB и SATA говорит само за себя.
И действительно, параллельную шину трудно масштабировать (удлинить шлейф, увеличить частоту тактирования шины), неудивительно, что технологии поворачиваются к параллельным шинам задней частью.

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

На сегодня существует великое множество различных интерфейсов последовательной передачи данных.
Кроме уже упомянутых USB и SATA еще можно вспомнить как минимум два широко известных стандарта RS-232 и MIDI (он же и GamePort).
Объединяет их все то же - последовательная передача каждого бита информации, или Serial Interface.
Преимуществ у подобных интерфейсов великое множество, и самое главное из них - малое количество соединительных проводов, а следовательно, меньшая цена.

Передача данных

Последовательную передачу данных можно реализовать двумя способами: асинхронным и синхронным.

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

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

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

Ну, если бы все компьютерные технологии были просты, то любая домохозяйка давно бы уже лепила параллельно с пельменями новые протоколы …
Попробуем взглянуть на процесс по-другому.
Данные передаются пакетами, примерно как IP пакеты, вместе с данными идут и информационные биты, количество этих битов может варьироваться от 2 до 3 с половиной.
С половиной?!
Да, ты не ослышался, именно с половиной!

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

Такой способ передачи подразумевает, что приемник и передатчик должны работать с одной скоростью (ну, или почти с одной), иначе пришедшие биты данных приемник будет либо не успевать обрабатывать, либо принимать старый бит за новый.
Для того чтобы этого избежать, каждый бит стробируется, то есть посылается синхронно со специальным сигналом - «стробом», формируемым внутри прибора.
Существует ряд определенных скоростей работы асинхронных устройств - 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19 200, 38 400, 57 600 и 115 200 бит в секунду.

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

Теперь пару слов о загадочном термине «пакет данных».
Под пакетом в данном случае понимается набор битов, передаваемых между стартовым и стоповым битами.
Их число может изменяться от пяти до восьми.
Можно задаться вопросом, почему именно пять-восемь бит?
Почему бы не передать сразу, скажем, килобайт данных внутри пакета?

Ответ очевиден: передавая маленькие пакеты данных, мы пусть и проигрываем, отправляя с ними три служебных бита (от 50 до 30 процентов данных), зато если при передаче пакет будет испорчен, мы легко узнаем это (помнишь про бит четности?) и быстро передадим его снова.
А вот в килобайте данных ошибку обнаружить будет уже трудно, и передавать его будет гораздо сложнее.

В качестве примера асинхронного последовательного устройства передачи данных можно привести COM-порт компьютера, любимый модем с дизайном от Труссарди и мышь, подключаемую к этому же порту, которую недалекие секретарши почему-то все время стараются засунуть в PS/2.
Работают все эти устройства по интерфейсу RS-232, вернее по асинхронной его части, поскольку в стандарте описана и синхронная передача данных.

THR - промежуточный регистр данных передатчика (только для записи) Данные, записанные в регистр, будут пересланы в выходной сдвигающий регистр (когда он будет свободен), из которого поступят на выход при наличии разрешающего сигнала CTS . Бит 0 передается (и принимается) первым. При длине посылки менее 8 бит старшие биты игнорируются.
RBR - буферный регистр принимаемых данных (только для чтения) Данные, принятые входным сдвигающим регистром помещаются в регистр RBR , откуда они могут быть считаны процессором. Если к моменту окончания приема очередного символа предыдущий не был считан из регистра, фиксируется ошибка переполнения. При длине посылки менее 8 бит старшие биты в регистре имеют нулевое значение.
DLL - регистр младшего байта делителя частоты .
DLM - регистр старшего байта делителя частоты . Делитель определяется по формуле D=115200/V, где V - скорость передачи, бит/с. Входная частота синхронизации 1 8432 МГц делится на заданный коэффициент, после чего получается 16-кратная частота передачи данных.
IЕR - регистр разрешения прерываний . Единичное значение бита разрешает прерывание от соответствующего источника.
Назначение бит регистра IER :
* биты =0 - не используются;
* бит 3 - Mod_IЕ - по изменению состояния модема (любой из линий CTS, DSR, RI, DCD );
* бит 2 - RxL_IЕ - по обрыву/ошибке линии;
* бит 1 - TxD_IE - по завершении передачи;
* бит 0 - RxD_IЕ - по приему символа (в режиме FIFO - прерывание по тайм-ауту).
IIR - регистр идентификации прерываний и признака режима FIFO (только для чтения). Для упрощения программного анализа UART выстраивает внутренние запросы прерывания по четырехуровневой системе приоритетов. Порядок приоритетов (по убыванию): состояние линии, прием символа, освобождение регистра передатчика, состояние модема. При возникновении условий прерывания UART указывает на источник с высшим приоритетом до тех пор, пока он не будет сброшен соответствующей операцией. Только после этого будет выставлен запрос с указанием следующего источника. Ниже описано назначение бит регистра IIR .
* Биты - признак режима FIFO:
11-режим FIFO 16550A;
10 - режим FIFO 16550;
00 - обычный.
* Биты - не используются.
* Бит 3 - прерывание по тайм-ауту приема в режиме FIFO (в буфере есть символы для считывания).
* Биты - причина прерывания с наивысшим приоритетом (в обычном, не FIFO-режиме):
11 - ошибка/обрыв линии, сброс выполняется чтением регистра состояния линии;
10 - принят символ, сброс выполняется чтением данных;
01 - передан символ (регистр THR пуст), сброс выполняется записью данных;
00 - изменение состояния модема; сброс выполняется чтением регистра состояния модема.
* Бит 0 - признак необслуженного запроса прерывания (1 - нет запроса, 0 - есть запрос).
В режиме FIFO причину прерывания идентифицируют биты .
* О11 - ошибка/обрыв линии. Сброс выполняется чтением регистра состояния линии.
* 010 - принят символ. Сброс выполняется чтением регистра данных приемника
* 110 - индикатор тайм-аута (за 4-кратный интервал времени символа не передано и не принято ни одного символа, хотя в буфере имеется, по крайней мере, один). Сброс выполняется чтением регистра данных приемника.
* 001 - регистр THR пуст. Сброс выполняется записью данных.
* 000 - изменение состояния модема (CIS, DSR, RI или DCD ). Сброс выполняется чтением регистра MSR .
FCR - регистр управления FIFO (только для записи). Ниже описано назначение бит регистра FCR :
* Биты - ITL (Interrupt Trigger Level) - уровень заполнения FIFO-буфера, при котором вырабатывается прерывание:
00 - 1 байт (по умолчанию);
01 - 4 байта;
10 - 8 байт;
11 - 14 байт.
* Биты зарезервированы.
* Бит 3 - разрешение операций DMA.
* Бит 2 - RESETTF (Reset Transmitter FIFO) - сброс счетчика FIFO-передатчика (записью единицы; сдвигающий регистр не сбрасывается).
* Бит 1 - RESETRF (Reset Receiver FIFO) - сброс счетчика FIFO-приемника (записью единицы; сдвигающий регистр не сбрасывается).
* Бит 0 - TRFIFOE (Transmit And Receive FIFO Enable) - разрешение (единицей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автоматически очищаются.
LCR - регистр управления линией (настройки параметров канала). Ниже описано назначение бит регистра LCR .
* Бит 7 - DLAB (Divisor Latch Access Bit) - управление доступом к делителю частоты.
* Бит 6 - BRCON (Break Control) - формирование обрыва линии (посылка нулей) при BRCON=1.
* Бит 5 - STICPAR (Sticky Parity) - принудительное формирование бита паритета:
0 - контрольный бит генерируется в соответствии с паритетом выводимого символа;
1 - постоянное значение контрольного бита: при EVENPAR =1 - нулевое, при EVENPAR =0 - единичное.
* Бит 4 - EVENPAR (Even Parity Select) - выбор типа контроля: 0 - нечетность, 1 - четность.
* Бит 3 - PAREN (Parity Enable) - разрешение контрольного бита:
1 - контрольный бит (паритет или постоянный) разрешен;
0 - контрольный бит запрещен.
* Бит 2 - STOPB (Stop Bits) - количество стоп-бит:
0 - 1 стоп-бит;
1 - 2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бит).
* Биты - SERIALDB (Serial Data Bits) - количество бит данных:
00 - 5 бит;
01-6 бит;
10 - 7 бит;
11 - 8 бит.
MCR - регистр управления модемом . Ниже описано назначение бит регистра MCR .
* Биты =0 - зарезервированы.
* Бит 4 - LME (Loopback Mode Enable) - разрешение режима диагностики:
0 - нормальный режим;
1 - режим диагностики (см. ниже).
* Бит 3 - IE (Interrupt Enable) - разрешение прерываний с помощью внешнего выхода OUT2 MSR.7 :
0 - прерывания запрещены;
1 - прерывания разрешены.
* Бит 2 - OUT1C (OUT1 Bit Control) - управление выходным сигналом 1 (не используется); в режиме диагностики поступает на вход MSR.6 .
* Бит 1 - RTSC (Request To Send Control) - управление выходом RTS ; в режиме диагностики поступает на вход MSR.4 :
0 - активен (-V);
1 - пассивен (+V).
* Бит 0 - DTRC (Data Terminal Ready Control) - управление выходом DTR ; в режиме диагностики поступает на вход MSR.5 :
0 - активен (-V);
1 - пассивен (+V).
LSR - регистр состояния линии (точнее, состояния приемопередатчика). Ниже описано назначение бит регистра LSR.
* Бит 7 - FIFOE (FIFO Error Status) - ошибка принятых данных в режиме FIFO (буфер содержит хотя бы один символ, принятый с ошибкой формата, паритета или обрывом). В не FIFO-режиме всегда 0.
* Бит 6 - TEMPT (Transmitter Empty Status) - регистр передатчика пуст (нет данных для передачи ни в сдвиговом регистре, ни в буферных регистрах THR или FIFO).
* Бит 5 - THRE (Transmitter Holding Register Empty) - регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие символов в FIFO-буфере передачи. Может являться источником прерывания.
* Бит 4 - BD (Break Detected) - индикатор обрыва линии (вход приемника находится в состоянии 0 не менее, чем время посылки символа).
* Бит 3 - FE (Framing Error) - ошибка кадра (неверный стоп-бит).
* Бит 2 - РЕ (Parity Error) - ошибка контрольного бита (паритета или фиксированного).
* Бит 1 - ОЕ (Overrun Error) - переполнение (потеря символа). Если прием очередного символа начинается до того, как предыдущий выгружен из сдвигающего регистра в буферный регистр или в регистр FIFO, прежний символ в сдвигающем регистре теряется.
* Бит 0 - DR (Receiver Data Ready) - принятые данные готовы (в DHR или FIFO-буфере). Сброс - чтением приемника.
Индикаторы ошибок - биты - сбрасываются после чтения регистра LSR . В режиме FIFO признаки ошибок хранятся в FIFO-буфере вместе с каждым символом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очереди на считывание). В случае обрыва линии в FIFO заносится только один «обрывной» символ, и UART ждет восстановления и последующего старт-бита. MSR - регистр состояния модема. Ниже описано назначение бит регистра MSR :
* Бит 7 - DCD (Data Carrier Detect) - состояние линии DCD :
0 - активна (-V);
1 - пассивна (+V).
* Бит 6 - RI (Ring Indicator) - состояние линии RI :
0 - активна (-V);
1 - пассивна (+V).
* Бит 5 - DSR (Data Set Ready) - состояние линии DSR :
0 - активна (-V);
1 - пассивна (+V).
* Бит 4 - CTS (Clear To Send) - состояние линии CTS :
0 - активна (-V);
1 - пассивна (+V).
* Бит 3 - DDCD (Delta Data Carrier Detect) - изменение состояния DCD .
* Бит 2 - TERI (Trailing Edge Of Ring Indicator) - спад огибающей RI (окончание звонка).
* Бит 1 - DDSR (Delta Data Set Ready) - изменение состояния DSR .
* Бит 0 - DCTS (Delta Clear To Send) - изменение состояния CTS .
Признаки изменения (биты ) сбрасываются по чтению регистра.
SRC - рабочий регистр (8 бит), на работу UART не влияет, предназначен для временного хранения данных (в 8250 отсутствует).
В диагностическом режиме (при LМЕ=1 ) внутри UART организуется внутренняя «заглушка»:
* выход передатчика переводится в состояние логической единицы;
* вход приемника отключается; * входы DSR, CTS, RI и DCD отключаются от входных линий и внутренне управляются битами DTRC, RTSC, OUT1C, IE ;
* выходы управления модемом переводятся в пассивное состояние (логический ноль).
Переданные данные в последовательном виде немедленно принимаются, что позволяет проверять внутренний канал данных порта (включая сдвигающие регистры) и отработку прерываний, а также определять скорость работы UART.

Параллельный порт обеспечивает довольно высокую скорость передачи, поскольку эта передача осуществляется побайтно. При этом при большой длинœе кабеля или при не очень интенсивном обмене данными удобнее оказывается последовательный порт.

Последовательный порт (Serial Port) передает в одном направлении одновременно всœего лишь 1 бит данных. Данные могут передаваться через данный порт как от компьютера к внешнему устройству, так и наоборот.

Последовательные порты компьютера обычно соответствуют международному опорному стандарту RS-232C (Reference Standard 232 версии С), в связи с этим к этому порту можно подсоединить любое устройство, ĸᴏᴛᴏᴩᴏᴇ также ориентировано на данный стандарт (к примеру, мышь, модем, последовательный принтер или последовательный порт другого компьютера). Этот интерфейс использует 9 каналов связи: один из них служит для передачи данных от компьютера, другой – для приема данных от периферийного устройства. Остальные 7 каналов используются для управления процессом обмена данными.

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

Современные микросхемы UART оснащены буферной памятью и обеспечивают скорость передачи данных до 115 Кбит/с. Новые высокоскоростные разновидности последовательного порта – улучшенный последовательный порт ESP (Enhanced Serial Port) и Super ESP (Super Enhanced Serial Port) обеспечивают передачу данных до 460 Кбит/с.

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

Для идентификации и распознавания ошибок при последовательной передаче в состав посылки дополнительно может включаться бит контроля четности. Значение бита контроля четности определяется двоичной суммой всœех передаваемых битов данных. В режиме, когда бит контроля четности четный (Even Parity), значение бит контроля четности равно 0, в случае если сумма битов четная, и 1 – в противном случае. Биты контроля четности имеют инверсные (обратные) значения (соответственно 1 или 0), в случае если бит контроля четности нечетный (Odd Parity).

Стандартная комплектация компьютера содержит два последовательных порта. Отличие разъема последовательного порта от параллельного состоим в том, что данный разъем имеет 9 контактных штырей, а не гнезд (ʼʼотцовскийʼʼ разъем) (рис. 1.3.11а). Со стороны кабеля подключаемого устройства используется ʼʼматеринскийʼʼ разъем (рис. 1.3.11б). Длина кабеля последовательного порта ограничена 18 м. Основным устройством, подключаемым к последовательному порту, являются старые модели модемов и мышей.

Некоторые компьютеры, особенно ориентированные на коммуникационные приложения, могут иметь последовательные порты, выполненные по другим стандартам (к примеру, RS-449A или RS-613) и имеющие более высокую скорость передачи данных на более дальние расстояния.

Рис. 1.3.11. Последовательный порт: а) 9-контактный разъем компьютера;

б) кабель-переходник последовательный порт-USB

1.3.2.3.13. Порт PS/2

Порт PS/2 (6-контактный) назван так, потому, что он впервые появился в компьютерах производства фирмы IBM серии PS/2. Из 6 контактов используются 4 контакта͵ один из которых предназначен для передачи данных, второй – для сигналов тактовой частоты (в диапазоне 10-16,7 кГц), на третий контакт подается электропитание (+5В), а на четвертый – земля. Передача данных выполняется аналогично тому, как и в последовательном порту, но при передаче данных на устройство добавляется один бит подтверждения. В современных компьютерах имеется два порта PS/2 предназначенные для подключения мыши (зелœеный разъем) и клавиатуры (фиолетовый разъем) (рис. 1.3.12а), однако эти устройства переходят на использование порта USB. Штекеры кабелœей устройств PS/2 (мыши и клавиатуры) приведены на рис. 1.3.12б.

Рис. 1.3.12. Порт PS/2: а) гнезда портов компьютера; б) штекеры кабеля

Последовательный порт - понятие и виды. Классификация и особенности категории "Последовательный порт" 2017, 2018.