Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...

COMандирский порт

Текущий рейтинг: 4.21 (проголосовало 43)
 Посетителей: 17562 | Просмотров: 20958 (сегодня 2)  Шрифт: - +
Com-port (communication port) — самый старый из последовательных портов ПК (рис. 1). «Последовательный» означает то, что данные в таком интерфейсе передаются по одному проводнику. Последовательные интерфейсы можно разделить на две основные разновидности — синхронные и асинхронные. Передача информации на физическом уровне — это изменение электрических сигналов. И когда мы передаем последовательность единичных или нулевых битов, физически этот процесс представляется в виде электрического импульса (рис. 2). Причем, в зависимости от скорости передачи, в импульсах одинаковой длительности может быть разное количество единичек. Так вот, для получения информации из таких импульсов используют синхронизацию. Выходит, что параллельно с информационным потоком генерируется последовательность импульсов, которые указывают, в какой момент времени необходимо снимать информацию. Эти импульсы и определяют скорость обмена, ведь если за единицу времени подать больше синхроимпульсов, значит, больше информационных данных выделится из потока.

Рис. 1. Com-port (communication port)   Рис. 2.

Если эти синхроимпульсы передаются от одного устройства другому, то такая передача называется синхронной. Асинхронной же считается такая передача, когда с фиксированной скоростью пересылается только информация, а приемник и передатчик синхронизируют процесс обмена данными самостоятельно. Наш СОМ-порт является асинхронным. Хочется также заметить, что разница между импульсами, по которым синхронизируется передача, и импульсами, синхронизирующими прием, не должна превышать 5% от их частоты. Так что едва ли не основной проблемой для асинхронных интерфейсов является одновременность запуска синхронизирующих генераторов. Для СОМ-порта стандартными являются следующие скорости: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с. Максимальная длина кабеля-соединителя — 15 метров. Есть специальные кабели, которые позволяют увеличить длину соединения до 150 метров. А если использовать устройства, называемые «репитерами», то расстояние можно еще дополнительно увеличить. Вы спросите, зачем модему кабель в 150 метров? Вполне закономерный вопрос, однако такие расстояния используются в тех случаях, когда к ПК необходимо подключить какое-то специализированное технологическое устройство. Как, например, счетчик электрической энергии находится где-то в распределительном щите, а компьютер — в бухгалтерии.

Компьютерный СОМ-порт работает по стандарту RS-232C, который определяет электрические уровни сигналов и протокол обмена. Порт содержит две линии для обмена информацией (прием и передача), и 9 линий для управления обменом. Если для управления обменом задействовать эти линии, то обмен будет называться «аппаратным» (протокол RTS/CTS). Однако обмен информацией можно организовать, используя только линии приема и передачи, тогда он будет называться «программным» (протокол XON/XOFF). В таком режиме посылается символ, сигнализирующий о начале передачи, называется он XON, окончание передачи сигнализируется символом XOFF.

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

Аппаратной основой СОМ-порта является микросхема UART (Universal Asynchronous Receiver/Transmitter — универсальный асинхронный приемопередатчик), которая с момента своего появления прошла длительный процесс эволюции (таблица 1).

Таблица 1

Если вы загляните в окно настройки последовательного порта, то заметите, что список скоростей явно не ограничивается 115.2 Кбит/с. Это связано с тем, что кроме стандартных, можно использовать еще и так называемые высокоскоростные СОМ-порты — Enhanced Serial Ports (ESP) и Super High Speed Serial Ports. Это варианты, базирующиеся на микросхемах 16550AF, 16650, 16750. Они обеспечивают обмен на скорости до 921.6 Кбит/с. В принципе, все высокоскоростные модемы xDSL содержат в своем составе такую микросхему, которая обеспечивает связь на 230–460 Кбит/с.

Теперь от теоретической части перейду к практической, и опираясь на вышеизложенные теоритические предпосылки, я расскажу о настройках СОМ-порта. Открыв окно свойств порта и выбрав вкладку Настройка, увидим множество опций (рис. 3).

Рис. 3.

Ну, со скоростью, думаю, все понятно — в этом пункте выбираем скорость обмена между устройством и ПК. В принципе можно выбрать ту скорость, которая вам больше нравится, хотя я полагаю, если у вас модем на 56К, скорость работы порта устанавливать в 19200 бит/с вы не будете :-).

Биты данных — сколько бит передавать за один раз (между старт-битом и стоп-битом).

Четность — выбор способа контроля четности. Кто не знает, контроль четности — способ проверки принятого числа на ошибочность. При передаче к числу добавляется еще один бит, дополняющий количество единиц в числе до четного или нечетного (это уже как выбрано в режиме передачи). Этот бит становится младшим разрядом передаваемого числа и принимает значение 1, если у нас нечетное число единиц, и 0, если четное. При проверке на четность, в случае если мы приняли нечетное число единиц (при проверке на нечетность — наоборот), порт передает устройству информацию об ошибке и просит повторить передачу.

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

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

И наконец, в пункте Дополнительно можно выбрать объем буферов FIFO либо отключить их вообще (что не рекомендуется).

Рассказав про эти настройки, дам вам один совет. Если у вас все нормально работает, не меняйте настройки, стоящие по умолчанию! Менять их необходимо тогда, когда этого требует устройство (о чем, наверняка, будет подробно сказано в инструкции к нему).

Теперь о «железном» конфигурировании СОМ-портов. Данные сведения могут очень пригодиться тем, кто купил внутренний WIN-модем. Как известно, при конфигурировании устройства необходимо указать ресурсы, которые ему необходимы (адрес ввода-вывода, номер прерывания, канал DMA). Система Plug&Play должна самостоятельно выделить эти ресурсы, когда вы установили устройство в систему. Но ничто не идеально, так что если вы установили одно устройство, а оно не работает, к тому же, перестало работать и другое, знайте — ошиблась технология Plug&Play. И вам необходимо указывать ресурсы самостоятельно.

Итак, для коммуникационных портов стандартны перечисленные ниже ресурсы. Диапазон ввода-вывода — 3F8-3FFh для COM1, 2F8-2FFh — для COM2, 3E8-3Efh — для COM3, 2E8-2Efh — для COM4. С прерываниями немного сложнее — для СОМ1 (3) используется IRQ4, для СОМ2 (4) — IRQ3. Теперь, приведя эти цифры, расскажу о подводных камнях, подстерегающих покупателей WIN-модемов. Последние работают через СОМ3 или СОМ4, и при установке часто могут нахомутать с ресурсами, ведь Plug&Play видит их как PCI карту, а не порт. Так что если что-то не работает, разберитесь с использованием ресурсов.

Многие, наверное, знают, что два ПК можно соединить не с помощью сетевой карты, а воспользовавшись нуль-модемным кабелем. Причем, за нуль-модемным кабелем не обязательно идти в магазин. Его на скорую руку можно сварганить, имея три куска провода и соединив линии: прием-передача и землю (в этом случае используется программный протокол управления потоком данных) (рис. 4а). Ну а для полноты картины приведу и распайку полного нуль-модемного кабеля (для аппаратного протокола управления потоком данных) (рис. 4б).

Рис. 4.

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

Если вы — ярый программист-железячник и захотели самостоятельно написать программу для работы с СОМ-портом, то для получения необходимой справочной информации о программировании этого чуда техники я советую зайти на http://www.codenet.ru/progr/other/comport.php. Там есть все, связанное с конфигурированием порта на уровне регистров.

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

для 9-контактного разъема:

2 — 3

7 — 8

1 — 4 — 6 — 9;

для 25-контактного разъема:

2 — 3

4 — 5

6 — 8 — 20 — 22.

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

Автор: Александр ЖУКОВСКИЙ  •  Иcточник: http://mycomp.com.ua  •  Опубликована: 30.01.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей
Комментарии отключены. С вопросами по статьям обращайтесь в форум.