Что такое последовательный порт. Подключаем com порт usb в Windows. Что подключают через com порт

Иногда приходится решать задачу связи электронного устройства с компьютером, будь то просто обмен данными или удалённое управление. Эта статья описывает, как это можно реализовать, используя последовательный порт. Главным его преимуществом является то, что стандартный программный интерфейс Windows (API) позволяет производить непосредственное управление выходными линиями, давая прямой контроль над ними, и имеет функцию ожидания некоторого события, связанного с COM-портом. Также стандарт RS-232, по которому выполнены COM-порты, допускает подключение и отключение кабелей во время работы устройств (hot plug).

Описание

COM-порт (последовательный порт) – двунаправленный интерфейс, передающий данные в последовательном виде (бит за битом) по протоколу RS-232. Это довольно-таки распространённый протокол, применяемый для связи одного устройства (например, компьютера) с другими посредством проводов длиной до 30м. Уровни логических сигналов здесь отличаются от стандартных: уровень логической единицы – от +5 до +15В, уровень логического нуля – от -5 до -15В, что требует дополнительных преобразований схемы, но обеспечивает хорошую помехоустойчивость.

Рассмотрим 9-пинововый разъём (DB-9M). Ниже представлена его распиновка:

№ вывода Наименование Характер сигнала Сигнал
1 DCD Входной Data carrier detect
2 RxD Выходной Transmit data
3 TxD Входной Receive data
4 DTR Выходной Data terminal ready
5 GND - Ground
6 DSR Входной Data set ready
7 RTS Выходной Request to send
8 CTS Входной Clear to send
9 RI Входной Ring indicator

Больше всего нас будут интересовать пины 2 (передача данных),3 (приём данных) и 5 (земля). Это минимальный набор для возможности двухстороннего общения приборов.

Подробно останавливаться на описании протокола не буду. Для этого есть ГОСТ’ы и т.п. Поэтому мы пойдём дальше и поговорим о том, как же управлять этим зверем.

Применение

Как уже говорилось, уровни ЛС RS-232 отличаются от стандартных уровней ТТЛ. Следовательно, нам необходимо как-то преобразовывать величины напряжений. Т.е. сделать 5В из +15В и 0В из -15В (и наоборот). Один из способов (и, наверное, самый простой) – использование специальной микросхемы MAX232. Она проста в понимании и одновременно может преобразовывать два логических сигнала.

Ниже приведена схема её включения:


Думаю, трудностей быть не должно. Это один из вариантов использования этой микросхемы: передача данных с микроконтроллера на ЭВМ и наоборот. Передаваемый сигнал поступает на ножки Tx IN с одной стороны и на Rx IN с другой. Входные сигналы снимаются с Tx OUT и Rx OUT соответственно.

Программирование

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

Ниже представлены адреса COM-портов, с которыми нам придётся работать:

Название порта Адрес IRQ
COM 1 3F8h 4
COM 2 2F8h 3
COM 3 3E8h 4
COM 4 2E8h 3

Они могут различаться. Установить значения можно в настройках BIOS’а. Это базовые адреса. От них же и будут зависеть адреса регистров, отвечающие за работу портов:

Адрес DLAB Чтение/Запись Аббревиатура Название регистра
+ 0 =0 Write Transmitter Holding Buffer
=0 Read Receiver Buffer
=1 Read/Write Divisor Latch Low Byte
+ 1 =0 Read/Write IER Interrupt Enable Register
=1 Read/Write Divisor Latch High Byte
+ 2 - Read IIR Interrupt Identification Register
- Write FCR FIFO Control Register
+ 3 - Read/Write LCR Line Control Register
+ 4 - Read/Write MCR Modem Control Register
+ 5 - Read LSR Line Status Register
+ 6 - Read MSR Modem Status Register
+ 7 - Read/Write Scratch Register

Первая колонка – адрес регистра относительно базового. Например, для COM1: адрес регистра LCR будет 3F8h+3=3FB. Вторая колонка – DLAB (Divisor Latch Access Bit) бит, определяющий разное назначение для одного и того же регистра.. Т.е. он позволяет оперировать 12-ю регистрами, используя всего 8 адресов. Например, если DLAB=1, то, обращаясь по адресу 3F8h, мы будем устанавливать значение младшего байта делителя частоты тактового генератора. Если же DLAB=0, то, обращаясь по тому же адресу, в этот регистр будет записан передаваемый или принятый байт.

“Нулевой” регистр

Ему соответствуют регистры приёма/передачи данных и установки коэффициента делителя частоты генератора. Как уже было сказано выше, если DLAB=0, то регистр используется для записи принимаемых/передаваемых данных, если же он равен 1, то устанавливается значение младшего байта делителя частоты тактового генератора. От значения этой частоты зависит скорость передачи данных. Старший байт делителя записывается в следующую ячейку памяти (т.е. для порта COM1 это будет 3F9h). Ниже приведена зависимость скорости передачи данных от коэффициента делителя:

Interrupt Enable Register (IER)

Если DLAB=0, то он используется как регистр управления прерываниями от асинхронного адаптера, если DLAB=1, то в нём задаётся старший байт делителя частоты тактового генератора.

Interrupt Identification Register (IIR)

Прерывание – это событие, при котором останавливается выполнение основной программы и начинается выполнение процедуры прерываний. Этот регистр определяет тип произошедшего прерывания.

Line Control Register (LCR)

Это управляющий регистр.

Бит 7 1 Divisor Latch Access Bit – задание скорости обмена данными
0 Обычнй режим (управление прерываниями, приём/передача данных)
Бит 6 Имитировать обрыв линии (посылает последовательность из нескольких нулей)
Биты 3 – 5 Бит 5 Бит 4 Бит 3 Выбор чётности
X X 0 No Parity
0 0 1 Odd Parity
0 1 1 Even Parity
1 0 1 High Parity (Sticky)
1 1 1 Low Parity (Sticky)
Бит 2 Кол-во стоп-битов
0 1 стоп-бит
1 2 стоп-бита при 6,7 или 8 бит данных или 1.5 стоп-бита при 5 битах данных.
Биты 0 And 1 Бит 1 Бит 0 Число битов данных
0 0 5 бит
0 1 6 бит
1 0 7 бит
1 1 8 бит

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

Стоп-бит означает окончание передачи данных.

Modem Control Register (MCR)

Регистр управления модемом.

Бит Значение
0 Линия DTR
1 Линия RTS.
2 Линия OUT1 (запасная)
3 Линия OUT2 (запасная)
4 Запуск диагностики при входе асинхронного адаптера, замкнутом на его выход.
5-7 Равны 0

Line Status Register (LSR)

Регистр, определяющий состояние линии.

Бит Значение
0 Данные получены и готовы для чтения, автоматически сбрасывается при чтении данных.
1 Ошибка переполнения. Был принят новый байт данных, а предыдущий ещё не был считан программой. Предыдущий байт потерен.
2 Ошибка чётности, сбрасывается после чтения состояния линии.
3 Ошибка синхронизации.
4 Обнаружен запрос на прерывание передачи "BREAK" – длинная строка нулей.
5 Регистр хранения передатчика пуст, в него можно записать новый байт для передачи.
6 Регистр сдвига передатчика пуст. Этот регистр получает данные из регистра хранения и преобразует их в последовательный вид для передачи.
7 Тайм-аут (устройство не связано с компьютером).

Modem Status Register (MSR)

Регистр состояния модема.

Ну вот и всё. Оперируя этими регистрами, можно напрямую общаться с COM-портом, управлять передачей и приёмом данных. Если вам не хочется возиться с памятью, можно воспользоваться уже готовыми компонентами для различных сред программирования: C++, VB, Delphi, Pascal и т.д. Они интуитивно понятны, поэтому, думаю, здесь не стоит заострять на них внимание.

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

Этот порт также называется серийным (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-порт продолжает существовать с точки зрения операционной системы и даже используется в качестве канала связи виртуально, на практике большинству пользователей можно о нём забыть с совершенно спокойной совестью.

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

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

Инструкция

Нажмите по значку «Мой компьютер» правой кнопкой мышки. В контекстном меню выберите «Свойства». Если у вас операционная система Windows XP, то в следующем окне выберите «Оборудование», затем - «Диспетчер устройств». Если на вашем компьютере установлена операционная система Windows 7, то диспетчер устройств можно выбрать сразу же.

Появится окно, в котором будет список всех устройств, которые есть на вашем компьютере. В этом списке вам нужно найти строку «Порты СОМ и LPT». Нажмите по стрелочке, которая находится рядом со строкой. Откроется список сом-портов, которые установлены на вашем ПК.

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

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

Запустите AIDA64 Extreme Edition. После ее запуска придется подождать несколько секунд. Программа просканирует систему. После этого вы увидите, что меню разделено на два окна. Вам потребуется левое окно, в котором найдите строку «Устройства». Нажмите по стрелочке, которая находится рядом. Найдите в списке устройства, которые подключены к сом-портам (может быть просто написано «Cом-устройства»).

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

Источники:

  • В диспетчере устройств нет раздела

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

Инструкция

Самый простой вид прокси – это сайт-анонимайзер. Там достаточно просто указать адрес сайта, и вы окажетесь там (под прокси). Способ позволяет совершенно не заботиться о нужного прокси или даже программы . Однако, из-за того, что способ очень простой и возможности его очень ограничены. Простой пример такого сайта: http://anonymouse.org/

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

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

Для приведения механизма в работу, достаточно найти правильный адрес прокси и поместить в список ProxySwitcher Standard. Искать прокси, лучше всего здесь: http://www.aliveproxy.com/fastest-proxies/ . Как можно заметить, и небольшой список, и скорость неплохая, вполне подходящая для комфортного использования интернета анонимно.

Видео по теме

Источники:

  • как найти proxy в 2018

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

Инструкция

Откройте меню кнопки «Пуск». Перейдите в «Панель управления». Далее откройте раздел «Сетевые подключения». Кликните правой кнопкой мыши по значку подключения к сети интернет и выберите пункт «Состояние». Перед вами откроется окно. В нем выберите пункт «Поддержка». Узнать IP-адрес можно будет, посмотрев его в соответствующей строчке в открывшемся окне. Данный список операций подойдет для пользователей операционных систем Windows.

Откройте командную строку для выполнения следующего запроса: #sudo ifconfig (Способ установления IP-адреса для пользователей систем Unix). Если вы наделены правами администратора, введите: root-#ifconfig. После этого на экране появятся свойства всех имеющихся в настоящее время на компьютере сетевых интерфейсов. Ваше текущее сетевое подключение будет проходить под именем ppp1 или ppp0. Выяснить IP-адрес можно будет, посмотрев его в строке после слова inetaddr.

Перейдите по ссылкам: http://2ip.ru и http://speed-tester.info . Это необходимо, чтобы узнать IP-адрес, который по каким-то причинам маскируется провайдером. После тестов указанный сайтов вы сможете посмотреть IP-адрес в перечне другой информации, такой как скорость соединения, стабильность работы и т.д. Обратите внимание, что если в строке «Прокси» указано значение «используется», это означает, что ваше соединение осуществляется через промежуточный сервер, поэтому узнать IP по прокси не представляется возможным. Данный тип подключения, как правило, применяется крупными организациями и компаниями с обширной внутренней локальной сетью, объединяющей все .

Прокси-сервер – компьютер, который служит посредником при выходе в интернет с вашего компьютера. При подключении через такой сервер, вы остаетесь анонимным, а проверка видит IP-адрес прокси-сервера. Если вам известен прокси-сервер вида: "xxx.xxx.xxx.xxx", но неизвестен порт, не отчаивайтесь. Внимательно прочитав эту инструкцию, вы сможете подобрать порт к серверу.

Вам понадобится

  • Программа "Powerful Generator", доступ в Интернет.

Инструкция

Первым делом вам понадобится программа "Powerful Generator". Пройдите по ссылке http://upwap.ru/1796108 и скачайте её. Распакуйте архив. Некоторые антивирусные программы могут принять "Powerful Generator" за вирус, хотя программа чиста. Если это произойдет – отключите антивирус. Не хотите рисковать? Тогда этот метод не для вас, поищите другой.

В папке с программой создайте текстовый документ. В него запишите прокси-сервер. Назвать документ можно как душе угодно, но лучше всего назвать "Proxy.txt", чтобы не запутаться впоследствии.

Создание списка портов

1. Зайдите в программу "Powerful Generator", выберите "pass или uin лист".
2. Выберите вкладку "Лист uin’ов"
3. Выберите “Диапазон ” и в опции диапазона уинов выберите диапазон от 1 до 9999.
4. Выберите путь для сохранения файла, назовите его "Ports.txt".
5. Нажмите создать.

Создание списка вида "server:port"

1. Зайдите в программу "Powerful Generator", выберите "uin;pass лист".
2. Выберите вкладку "параметры уинов", затем опцию "лист уинов".
3. Укажите путь к "Proxy.txt".
4. Выберите вкладку "параметры паролей", затем опцию "лист паролей".
5. В опциях листа паролей укажите путь к "Ports.txt"
6. Выберите опцию "Делать для каждого уина все пароли, содержащиеся в листе".
7. Выберите вкладку "запись листа".
8. В поле "разделять знаком" напишите ":" вместо ";" (Поскольку прокси с портами пишутся именно через ":").
9. Выберите путь для сохранения файла, назовите его "Servers.txt".
10. Нажмите создать.

Итак, у вас есть текстовый документ в котором содержится десять тысяч прокси-серверов с различными портами (от 1 до 9999). Теперь необходимо определить, какой из них работоспособен. Как же это сделать? Элементарно, пройдите по ссылке http://www.onlinechecker.freeproxy.ru/ и скопируйте весь список из "Servers.txt" в окошко "Check Proxy Online". Нажмите "Check proxy!" Когда сервис завершит работу, он выдаст работающий сервер из вашего списка.
Полученный прокси-сервер можно использовать для различных целей.

Видео по теме

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

Вам понадобится

  • - доступ в интернет.

Инструкция

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

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

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

В случае если вы хотите просмотреть название прокси-сервера, под которым вы выходите в интернет, откройте в вашем компьютере меню «Подключение» в свойствах используемого вами обозревателя, после чего просмотрите информацию в пункте «Настройка LAN».

Если вы хотите проверить надежность используемого вами прокси-сервера, воспользуйтесь для этого специальными сайтами, например, на ресурсе http://privacy.net/analyze-your-internet-connection/, после анализа ваших данных сайт выдаст вам имеющуюся у него информацию о вас и вашем компьютере, которая может быть доступна и другим людям в сети.

Также вы можете использовать аналогичные сервисы, например, http://www.stilllistener.addr.com/checkpoint1/index.shtml. Если же в их меню вы найдете свой реальный адрес, значит выбранный вам прокси ненадежен.

Видео по теме

Полезный совет

Не делайте ничего противозаконного под прокси в интернете, так или иначе ваш реальный адрес узнать будет возможно даже при полной анонимности.

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

Инструкция

Убедитесь в том, что понятна существующих типов прокси-серверов:- HTTP прокси - наиболее распространенный тип сервера, совместимый со всеми браузерами и поддерживающий функциональность веб-приложений;- Socks прокси, подразделяющийся по версиям протокола на Socks5 и Socks4, - задуманные для поддержки всех протоколов UDP и TCP/IP, но не совместимые с некоторыми интернет-приложениями (в основном используются IRC-клиентами и веб-пейджерами);- CGI прокси - представляют из себя веб-ресурс и работают только с браузерными программами;- FTP прокси - применяется в корпоративных сетях с ограничением доступа в интернет брандмауэром.

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

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, она оснащена аппаратной очередью байтов. Она существенно снижает число возникающих прерываний.

В свое время COM-порт был самым используемым универсальным портом персонального компьютера. Через этот порт к компьютера подключали самые разнообразные устройства:

Другой компьютер

и другие устройства.

Многие устройства имеющие интерфейс USB, при подключении к компьютеру управляются через интерфейс виртуального COM-порта.

Причиной большой популярности COM-порта стала дешевизна провода, ведь в нем может быть всего 3 провода: земля, "туда" и "обратно". История показывает, что внешние соединения лучше делать с помощью последовательного канала связи. Параллельные порты популярны на очень небольших расстояниях. Хотя после появления SATA это утверждение можно подвергнуть сомнению. Идеальная линия связи - это один проводок, как, например, в технологии OneWire. Но и COM-порт для своего времени был достаточно неплох.

Передача данных через COM-порт

Процесс передачи данных по COM"у достаточно прост. Для простоты предположим что данные передаются только в одном направлении. В случае с двунаправленной передачей данных - все симметрично.

Данные передаются блоками по 5 - 8 бит. Обычно используется 7 или 8 байт. Когда передавать нечего, передатчик поддерживает на линии -12 Вольт - логическую единицу. Перед передачей очередной посылки на линии COM-порта появляется сигнал +12 Вольт (логической 0). Этот перепад напряжения сигнализирует удаленному COM-порту о том, что первый бит будет на следующем такте. Далее последовательно посылаются биты данных соответствующего уровня: -12 В = 1, а +12 В = 0. Биты передаются задом-наперед: сначала младший бит - потом старший. Если приемник на удаленной стороне работает на той же частоте, то все биты он примет правильно. Когда все биты передались - передается бит контрольной суммы. После этого линия опять устанавливается в -12 Вольт - происходит передача стоп-бита. Если данных больше нет, то линия так и остается в этом положении. И как только нужно будет еще что-нибудь передать - снова возникает напряжение +12 Вольт и все по новой. Такое относительно высокое напряжение в 12 вольт используется для помехозащищенности связи по COM-порту.

Периоды между посылками разделяются стоп-битом. Вернее сказать не битом, а периодом равным 1, 1.5 или 2 времени на передачу одного бита. С помощью стоп-бита принимающая сторона определяет границы посылок через COM-порт.

История COM-порта

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

Платы расширения COM

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

Если на материнской плане нет COM-портов (что очень редко) или их не хватает, то можно установить специальный контроллер - плату расширения. Она устанавливается в PCI или PCI-Express слот.

В случае с ноутбуками (нетбуками) можно воспользоваться USB-переходниками.

Модем и COM-порт

Многие контакты COM-порта используются только модемами. Например, 9-й контакт COM-порта используется модемом, чтобы посылать компьютеру сигнал о том, что кто-то пытается до него дозвониться. Контакт №1 используется модемом для извещения о том, что есть удаленное соединение активно. Обычно управление передачей (контакты 4, 6, 7 и 8) по умолчанию включено для модема.

Работа с COM-портом

При программировании COM-порта на аппаратном уровне используются порты ввода-вывода и таблица прерываний. Для первого COM-порта в IBM PC-совместимых компьютерах зарезервирован порт 3F8 и прерывание IRQ4. Для второго порта: 378 / IRQ3. Хотя эти настройки можно менять в настройках BIOS. На самом деле для каждого COM-порта существует не один порт ввода-вывода, а целых 8.



gastroguru © 2017