Сделай Сам Свою Работу на 5

Системная поддержка СОМ-портов





СОМ-порты поддерживаются сервисом BIOS Int 14h, который обеспечивает сле­дующие функции:

инициализация (установка скорости обмена и формата посылок; запрет источ­
ников прерываний) — на сигналы DTR и RTS влияния не оказывает (после ап­паратного сброса они пассивны);

вывод символа — активируются сигналы DTR и RTS, и после освобождения ре­гистра THR в него помещается выводимый символ;

ввод символа — активируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных;

опрос состояния модема и линии (чтение регистров MSR и LSR).

Аппаратные прерывания не используются, ожидание готовности ввода и вывода ограничивается по тайм-ауту. Готовность можно быстро проверить опросом со­стояния.

В процессе начального тестирования POST BIOS проверяет наличие последо­вательных портов (регистров UART 8250 или совместимых) по стандартным адресам и помещает базовые адреса обнаруженных портов в ячейки BIOS Data Area 0:0400, 0402, 0404, 0406. Эти ячейки хранят адреса портов с логическими именами СОМ1-COM4. Нулевое значение адреса является признаком отсутствия порта с данным номером. В ячейки ОЮ47С, 047D, 047Е, 047F заносятся констан­ты, задающие тайм-ауты для портов.



Обнаруженные порты инициализируются на скорость обмена 2400 бит/с, 7 бит данных с контролем на четность (even), 1 стоп-бит. Управляющие сигналы интер­фейса DTR и RTS переводятся в исходное состояние («выключено» — положитель­ное напряжение).

Конфигурирование СОМ-портов

Компьютер может иметь до четырех последовательных портов СОМ 1 -COM4; для машин класса AT типично наличие двух портов. Управление последовательным портом разделяется на два этапа — предварительное конфигурирование (Setup)


70________________________ Глава 2. Последовательный интерфейс — СОМ-порт

аппаратных средств порта и текущее (оперативное) переключение режимов рабо­ты прикладным или системным ПО. Конфигурирование СОМ-порта зависит от его исполнения. Порт на плате расширения конфигурируется джамперами на са­мой плате. Порт на системной плате конфигурируется через BIOS Setup.

Конфигурированию подлежат перечисленные ниже параметры:

Базовый адрес, который для портов СОМ1-СОМ4 обычно имеет значение
3F8h, 2F8h, 3E8h и 2E8h. При инициализации BIOS проверяет наличие пор­
тов по адресам именно в этом порядке и присваивает обнаруженным портам
•логические имена СОМ1, COM2, COM3 и COM4. Для портов COM3 и COM4 возможны альтернативные адреса 3EOh, 338h и 2EOh, 238h соответственно. Для PS/2 стандартными для портов СОМЗ-СОМ8 являются адреса 3220h, 3228h, 4220h, 4228h, 5220h и 5228h соответственно.



♦ Используемая линия запроса прерывания: для СОМ 1 и COM3 обычно использу­ется IRQ4 или IRQ11, для COM2 и COM4 — IRQ3 или IRQ10. В принципе номер прерывания можно назначать в произвольных сочетаниях с базовым адресом (номером порта), но некоторые программы и драйверы (например, драйверы последовательной мыши) настроены на стандартные сочетания. Каждому пор­ту, нуждающемуся в аппаратном прерывании, назначают отдельную линию, не совпадающую с линиями запроса прерываний других устройств. Прерывания необходимы для портов, к которым подключаются устройства ввода, UPS или модемы. При подключении принтера или плоттера прерываниями пользуют­ся только многозадачные ОС (не всегда), и этот дефицитный ресурс PC можно
сэкономить. Также прерывания обычно не задействуют при связи двух компью­
теров нуль-модемным кабелем. Возможность разделяемого использования
одной линии запроса несколькими портами (или ее разделения с другими
устройствами) зависит от реализации аппаратного подключения и ПО. При ис­
пользовании портов, установленных на шину ISA, разделяемые прерывания
обычно не работают.

Канал DMA (для микросхем UART 16450/16550, расположенных на системной плате) — разрешение использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют редко.



Использование СОМ-портов

СОМ-порт широко применяется для подключения различных периферийных и коммуникационных устройств, связи с различным технологическим оборудова-нием, объектами управления и наблюдения, программаторами, внутрисхемными эмуляторами и прочими устройствами, используя протокол RS-232C. СОМ-порты чаще всего применяют для подключения манипуляторов (мышь, трекбол). В этом случае порт используется в режиме последовательного ввода. Мышь с последовательным интерфейсом — Serial Mouse — может подключаться к любому исправному порту. Для согласования разъемов порта и мыши возможно применение переходника DB-9S-DB-25P или DB-25S-DB-9P. Для мыши требу-


2.8. Использование СОМ-портов ________ _______________________________ 7Т

ется прерывание, для порта СОМ1 — IRQ4, для COM2 — IRQ3. То, что для исполь­зования мыши порт СОМ1 должен использовать прерывание IRQ4, является осо­бенностью ее драйвера, но для пользователя важен сам факт ограничения. Каждое событие — перемещение мыши или нажатие-отпускание кнопки — кодируется двоичной посылкой по интерфейсу RS-232C. Применяется асинхронная переда­ча; двуполярное питание обеспечивается от управляющих линий интерфейса.

Для подключения внешних модемов используется полный (9-проводный) кабель АПД-АКД, схема которого приведена на рис. 2.4. Этот же кабель используется для согласования разъемов (по количеству контактов); возможно применение пере­ходников 9-25, предназначенных для мыши. Для работы коммуникационного ПО обычно требуются прерывания, но здесь есть свобода выбора номера (адреса) пор­та и линии прерывания. Если предполагается работа на скоростях 9600 бит/с и выше, то СОМ-порт должен быть реализован на микросхеме UART 16550А или совместимой. Возможности работы с использованием FIFO-буферов и обмена по каналам DMA зависят от коммуникационного ПО.

Для связи двух компьютеров, удаленных друг от друга на небольшое расстояние, используют и непосредственное соединение их СОМ-портов нуль-модемным ка­белем (см. рис. 2.5). Программы типа Norton Commander или Interlnk MS-DOS позволяют обмениваться файлами со скоростью до 115,2 Кбит/с без примене­ния аппаратных прерываний. Это же соединение может использоваться и сетевым пакетом Lantastic, предоставляющим более развитый сервис, и средствами ОС Windows.

СОМ-порт позволяет выполнять подключение электронных ключей (Security Devices), предназначенных для защиты от нелицензированного использования ПО. Эти устройства могут быть как «прозрачными» (обеспечивающими воз­можность подключения периферии через тот же порт), так и полностью занима­ющими порт.

СОМ-порт при наличии соответствующей программной поддержки позволяет превратить PC в терминал, эмулируя систему команд распространенных специа­лизированных терминалов (VT-52, VT-100 и т. д.). Простейший терминал полу­чается, если замкнуть друг на друга функции BIOS обслуживания СОМ-порта (Int 14h), телетайпного вывода (Int 10h) и клавиатурного ввода (Int 16h). Одна­ко такой терминал будет работать лишь на малых скоростях обмена (если, конеч­но, его делать не на Pentium), поскольку функции BIOS хоть и универсальны, но не слишком быстры.

СОМ-порт может использоваться и как двунаправленный интерфейс, у которого имеется три программно-управляемых выходных линии (TD, DTP, RTS) и четыре программно-читаемых входных линии (CIS, DSR, DCD, RI) с двуполярными сиг­налами. Их можно использовать, например, для программной реализации син­хронных последовательных интерфейсов (см. п. 11.5) и других целей. Во времена АТ-286 была известна схема однобитного широтно-импульсного преобразова­теля, позволяющего записывать звуковой сигнал на диск PC, используя входную линию СОМ-порта. Воспроизведение этой записи через обычный динамик PC позволяло передать речь.



Глава 2. Последовательный интерфейс — СОМ-порт


СОМ-порт и РnР

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

1. Порт инициализируется с состоянием линий DTR=ON, RTS=OFF, TXD=Mark —состояние покоя (Idle).

2. Некоторое время (0,2 с) ожидается появление сигнала DSR, которое указало бы на наличие устройства, подключенного к порту. В простейшем случае устройство имеет на разъеме перемычку DTR-DSR, обеспечивающую указанный ответ. Если устройство обнаружено, выполняются манипуляции управляющи­ми сигналами DTR и RTS для получения информации от устройства. Если от­вет не получен, ОС, поддерживающая динамическое реконфигурирование, пе­риодически опрашивает состояние порта для обнаружения новых устройств.

3. Порт программируется на режим 1200 бит/с, 7 бит данных, без паритета, 1 стоп-бит, и на 0,2 с снимается сигнал DTR. После этого устанавливается DTR=1, а еще через 0,2 с устанавливается и RTS-1.

 

Рис.2.15. Запрос идентификатора устройства PnP

4. В течение 0,2 с ожидается приход первого символа от устройства. По приходу символа начинается прием идентификатора (см. ниже). Если за это время сим­вол не пришел, выполняется вторая попытка опроса (см. п. 5), несколько отли­чающаяся от первой.

5. На 0,2 с снимаются оба сигнала (DTR-0 и RTS=0), после чего они оба устанав­ливаются (DTR=1 и RTS=1).

6. В течение 0,2 с ожидается приход первого символа от устройства, по приходу символа начинается прием идентификатора (см. ниже). Если за это время сим­вол не пришел, то в зависимости от состояния сигнала DSR переходят к про­верке отключения Verify Disconnect (при DSR=0) или в дежурное состояние Connect Idle (при DSR=1).

7. В дежурном состоянии Connect Idle устанавливается DTR=1, RTS=0, порт про­граммируется на режим 300 бит/с, 7 бит данных, без паритета, 1 стоп-бит. Если в этом состоянии обнаружится DSR=0, ОС следует уведомить об отключении устройства.

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


2.10. Неисправности и тестирование СОМ-портов__________________________ 73

строку длиной до 256 символов. Строка идентификатора PnP должна иметь мар­керы начала (28h или 08h) и конца (29h или 09h), между которыми располагается тело идентификатора в стандартизованном формате. Перед маркером начала мо­жет находиться до 16 символов, не относящихся к идентификатору PnP. Если за первые 0,2 с ожидания символа (шаг 4 или 6) маркер начала не пришел, или же сработал тайм-аут, а маркер конца не получен, или же какой-либо символ принят с ошибкой, происходит переход в состояние Connect Idle. Если получена коррект­ная строка идентификатора, она передается ОС.

Для проверки отключения ( Verify Disconnect) устанавливается DTR=1, RTS=0 и че­рез 5 с проверяется состояние сигнала DSR. При DSR=1 происходит переход в со­стояние Connect Idle (см. п. 7), при DSR=0 происходит переход в состояние Dis­connect Idle, в котором система может периодически опрашивать сигнал DSR для обнаружения подключения устройства.

Описанный механизм разрабатывался компанией Microsoft с учетом совмес­тимости с устройствами, не относящимися к устройствам PnP, — он обеспечивает невозможность их вывода из строя и устойчивость системы к сообщениям, не являющимся PnP-идентификаторами. Например, обычная мышь Microsoft Mouse (не PnP) по включении питания от интерфейса ответит ASCII-символом «М» (трехкнопочная — строкой «МЗ»).

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.