Через порт com2 к компьютеру подключают. Анатомия COM-порта

Serial port (серийный порт, последовательный порт или COM-порт -, communications port) — это последовательный интерфейс с двойной направленностью.

Почему порт назвается последовательным? Потому, что вся информация по этому порту передается шагом равным одному биту. В нем данные передаются бит за битом, в отличие от параллельного порта.

Несмотря на то, что в некоторых других интерфейсах как, например, в Ethernet , FireWire и USB , применяется последовательный обмен данными, название «последовательный порт» закрепилось за портом, обладающим стандартом RS-232C .

Данный порт, в сравнении с другими "последовательными" технологиями, обладает отличительной особенностью: в нем отсутствует какое-либо временное требование между 2 байтами. Временные требования существуют только между битами одного байта. Величина, обратная временной паузе между битами одного байта, носит название «baud rate» (скорость передачи). Кроме того, в данной технологии нет такого понятия, как "пакет". Другие технологии "последовательной" передачи данных (X.25, USB или Ethernet), используют "пакеты", также в них существуют и жесткие временные требования между битами одного пакета.

В части протоколов связи с индустриальным оборудованием имеются жесткие временные требования между байтами последовательного порта. Реализация в многозадачных операционных системах со слабой поддержкой реального времени этих протоколов очень сложна. К этим системам относятся и Windows. Вот почему для работы с этими протоколами зачастую применяют MS-DOS или более устаревшее программное обеспечение.

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

Благодаря COM-порту появляется возможность подключить друг к другу два ПК, применяя так называемый «нуль-модемный кабель». Данный метод использовался со времен MS-DOS в целях перекачки файлов с одного компьютера на другой. В UNIX-системах он использовался для терминального доступа к другой машине, а в операционных системах Windows - для отладчика уровня ядра.

Довольно популярный в свое время в IBM-совместимых ПК последовательный порт, сегодня уже морально устарел. Однако, следует отметить, что он еще нередко используется в промышленном и узкоспециальном оборудовании, а также на некоторых современных компьютерах. Последовательный порт активно вытесняется интерфейсом USB и FireWire.

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

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

Достоинства COM-порта

Главное преимущество данной технологии состоит в простоте подключения.

Недостатки COM-порта

Главными недостатками данного порта являются его низкая скорость, большие размеры разъемов, а также высокие требования к времени отклика операционной системы. Также, в данном стандарте наблюдается высокое количество прерываний (одно прерывание на каждые 8 байт).

Разъемы

Самыми распространенными разъемами стандарта являются 9-ти и 25-ти контактные (DB-9 и DB-25, соответственно), которые были стандартизированы в 1969 году. Это D-образные разъемы. Помимо них использовались и другие, но из этого же семейства: DB-31 и круглые восьмиконтактные DIN-8.

Максимальная скорость передачи (в обычном исполнении) достигает 115 200 бод.

Аппаратура

Разъем обладает следующими контактами:

  • DTR (Data Terminal Ready) - выход на ПК, вход - на модеме. Отвечает за готовность компьютера к работе с модемом. Сброс вызывает почти полную перезагрузку модема. В случае с мышью, данный провод используется для осуществления питания.
  • 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.

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

В последнее время последовательный способ передачи данных вытесняет параллельный.
За примерами далеко ходить не надо: появление шин 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, вернее по асинхронной его части, поскольку в стандарте описана и синхронная передача данных.

Ой, а что это за штучка? Зачем она нужна? Ничего, если я пальцем потрогаю? Что? Лучше не надо? Хорошо, не буду. Но мне страсть как интересно: разъём в компьютере есть, а никто ничего к нему почему-то не подключает. Как он вообще называется? Порт? Ух ты! Класс! А что это такое?..

Этот порт также называется серийным (Serial port ), хотя сокращение «COM» на самом деле означает «коммуникационный» - Communication port (изначально предназначен для двустороннего движения данных - настоящей коммуникации). А ещё чаще его именуют последовательным , поскольку передаёт биты строго один за другим.

Кроме последовательного, в компьютерах есть и параллельный порт, предназначенный, в основном, для подключения принтеров. Его нередко так и называют: принтерный. Там передача данных номинально односторонняя (хотя лишь номинально).

Вполне возможно, COM-порт есть и в вашем компьютере. Это, скорее всего, слегка продолговатое гнездо с девятью контактами в два ряда, пять и четыре штуки в каждом, а также с резьбой для болтиков на концах. К нему полагается кабель с разъёмом, соответственно, с девятью гнёздами, расположенными в такой же конфигурации.

Разъём вставляется в гнездо с контактами и прикручивается вышеуказанными болтиками, чтобы не выпасть. Таким образом можно, к примеру, соединить напрямую два компьютера с помощью нуль-модемного кабеля. Что и делалось раньше, в эпоху первых ПК.

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

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

Нынче для коммуникации с разными устройствами всё чаще используют USB-порт (он тоже, кстати, фактически последовательный). Мобильные модемы, принтеры, адаптеры Wi-Fi - всё большее количество приборов подключается именно через USB.

Кроме того, при наличии таких технологий как Ethernet и FireWire (для Apple), соединять компьютеры проводами через COM-порты не так уж целесообразно. Ну а если вспомнить о Bluetooth (что переводится как «синий зуб»), то и вовсе можно отправлять последовательный порт в музей.

Впрочем, операционная система Windows по-прежнему называет свои каналы передачи информации не иначе как COM1, COM2 и так далее.

Почему? Потому что драйверы, к примеру, для того же Bluetooth, могут представляться системе именно как COM-порты. Мол, а вот и мы, прошу любить и жаловать, извольте назначить нам каналы для обмена данными. Ну и что, что мы как бы не совсем настоящие? Всё равно придётся нас обслуживать.

В Unix (и её разновидностях вроде Linux) тоже есть некоторые особенности по поводу отношения к подключаемым устройствам. Поскольку Unix считает всё вокруг файлами (даже оборудование!), то и держит свои последовательные порты в виде оных с именами вроде ttyS0, ttyS1, ttyS2 (если это Linux) или ttyu0, ttyu1, ttyu2 (в FreeBSD).

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

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

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

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

Предыдущие публикации:

). Несмотря на то, что некоторые интерфейсы компьютера (например, Ethernet , FireWire и USB) тоже используют последовательный способ обмена информацией, название «последовательный порт» закрепилось за портом стандарта RS-232 .

Энциклопедичный YouTube

  • 1 / 5

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

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

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

    Разъёмы

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

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

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

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

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

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

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

    Аппаратура

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

    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 и IBM PC/XT аппаратура порта была построена на микросхеме UART 8250 фирмы National Semiconductor, затем микросхема была заменена на 16450, программно совместимой с предыдущими, но позволявшей использовать скорости вплоть до 115200 бит в секунду, затем появилась микросхема 16550, содержавшая двунаправленный FIFO буфер данных для снижения нагрузки на контроллер прерываний. В настоящее время включена в SuperIO микросхему на материнской плате вместе с рядом иных устройств.

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

    Общее описание

    Интерфейс RS-232, совсем официально называемый "EIA/TIA-232-E", но более известный как интерфейс "COM-порта", ранее был одним из самых распространенных интерфейсов в компьютерной технике. Он до сих пор встречается в настольных компьютерах, несмотря на появление более скоростных и "интеллектуальных" интерфейсов, таких как USB и FireWare. К его достоинствам с точки зрения радиолюбителей можно отнести невысокую минимальную скорость и простоту реализации протокола в самодельном устройстве.

    Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается.

    Назначение выводов 9-контактного разъема


    9-контактная вилка типа DB-9M
    Нумерация контактов со стороны штырьков
    Направление сигналов указано относительно хоста (компьютера)
    Контакт Сигнал Направление Описание
    1 CD Вход Обнаружена несущая
    2 RXD Вход Принимаемые данные
    3 TXD Выход Передаваемые данные
    4 DTR Выход Хост готов
    5 GND - Общий провод
    6 DSR Вход Устройство готово
    7 RTS Выход Хост готов к передаче
    8 CTS Вход Устройство готово к приему
    9 RI Вход Обнаружен вызов

    Назначение выводов 25-контактного разъема

    Контакт Сигнал Направление Описание
    1 SHIELD - Экран
    2 TXD Выход Передаваемые данные
    3 RXD Вход Принимаемые данные
    4 RTS Выход Хост готов к передаче
    5 CTS Вход Устройство готово к приему
    6 DSR Вход Устройство готово
    7 GND - Общий провод
    8 CD Вход Обнаружена несущая
    9 - - Резерв
    10 - - Резерв
    11 - - Не используется
    12 SCD Вход Обнаружена несущая #2
    13 SCTS Вход Устройство готово к приему #2
    Контакт Сигнал Направление Описание
    14 STXD Выход Передаваемые данные #2
    15 TRC Вход Тактирование передатчика
    16 SRXD Вход Принимаемые данные #2
    17 RCC Вход Тактирование приемника
    18 LLOOP Выход Локальная петля
    19 SRTS Выход Хост готов к передаче #2
    20 DTR Выход Хост готов
    21 RLOOP Выход Внешняя петля
    22 RI Вход Обнаружен вызов
    23 DRD Вход Определена скорость данных
    24 TRCO Выход Тактирование внешнего передатчика
    25 TEST Вход Тестовый режим

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

    Электрические характеристики

    Логические уровни передатчика: "0" - от +5 до +15 Вольт, "1" - от -5 до -15 Вольт.

    Логические уровни приемника: "0" - выше +3 Вольт, "1" - ниже -3 Вольт.

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

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

    Описание основных сигналов интерфейса

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

    RXD - Линия приема хостом данных от устройства. Подробно описана в разделе "Протокол обмена данными".

    TXD - Линия передачи хостом данных к устройству. Подробно описана в разделе "Протокол обмена данными".

    DTR - Хост устанавливает этот сигнал, когда готов к обмену данными. Фактически сигнал устанавливается при открытии порта коммуникационной программой и остается в этом состоянии все время, пока порт открыт.

    DSR - Устройство устанавливает этот сигнал, когда включено и готово к обмену данными с хостом. Этот и предыдущий (DTR) сигналы должны быть установлены для обмена данными.

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

    CTS - Устройство устанавливает этот сигнал в ответ на установку хостом предыдущего (RTS), когда готово принять данные (например, когда предыдущие присланные хостом данные переданы модемом в линию или есть свободное место в промежуточном буфере).

    RI - Устройство (обычно модем) устанавливает этот сигнал при получении вызова от удаленной системы, например при приеме телефонного звонка, если модем настроен на прием звонков.

    Протокол обмена данными

    В протоколе RS-232 существуют два метода управления обменом данных: аппаратный и программный, а также два режима передачи: синхронный и асинхронный. Протокол позволяет использовать любой из методов управления совместно с любым режимом передачи. Также допускается работа без управления потоком, что подразумевает постоянную готовность хоста и устройства к приему данных, когда связь установлена (сигналы DTR и DSR установлены).

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

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

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

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

    Один из возможных алгоритмов работы приемника следующий:

    1. Ожидать уровня "0" сигнала приема (RXD в случае хоста, TXD в случае устройства).
    2. Отсчитать половину длительности бита и проверить, что уровень сигнала все еще "0"
    3. Отсчитать полную длительность бита и текущий уровень сигнала записать в младший бит данных (бит 0)
    4. Повторить предыдущий пункт для всех остальных битов данных
    5. Отсчитать полную длительность бита и текущий уровень сигнала использовать для проверки правильности приема с помощью контроля четности (см. далее)
    6. Отсчитать полную длительность бита и убедиться, что текущий уровень сигнала "1".