Назначение бит регистра IER. 1 страница

^ Биты 7-4=0 — не используются.

« Бит 3 — Mod IE — по изменению состояния модема (лю­бой из линий CTS, DSR, Rl, DCD).

» Бит 2 — RxL IE — по обрыву/ошибке линии. * Бит 1 — TxD IE — по завершении передачи.

« Бит 0 — RxD IE — по приему символа (в режиме FIFO — прерывание по тайм-ауту).

//Я — регистр идентификации (только для чтения) прерыва­ний и признака режима FIFO. Для упрощения программного анализа UART выстраивает внутренние запросы прерывания по четырехуровневой системе приоритетов. Порядок приори­тетов (по убыванию): состояние линии, прием символа, осво­бождение регистра передатчика, состояние модема. При воз­никновении условий прерывания UART указывает на источник с высшим приоритетом до тех пор, пока он не будет сброшен соответствующей операцией. Только после этого будет выставлен запрос с указанием следующего источника.

Назначение бит регистра IIP:

» Биты [7:6] — признак режима FIFO:

11 - режим FIFO 16550A,

10 - режим FIFO 16550,

00 —обычный.

» Биты [5:4] — не используются. « Бит 3 — прерывание по тайм-ауту (не в режиме FIFO).

» Биты [2:1] — причина прерывания с наивысшим приори­тетом (в обычном, не FIFO-режиме):

11 — ошибка/обрыв линии; сброс — чтением регистра со­стояния линии,


10 — принят символ; сброс — чтением данных, 01 — передан символ (регистр THR пуст); сброс — запи­сью данных,

00 — изменение состояния модема; сброс — чтением ре­гистра состояния модема.

s Бит 0 — признак необслуженного запроса прерывания:

1 — нет запроса, О — есть запрос.

Идентификация прерываний в режиме FIFO, IIR [3:1]:

и Oil — ошибка/обрыв линии; сброс — чтением регистра состояния линии.

« 010 — принят символ; сброс — чтением регистра данных приемника.

я 110 — индикатор тайм-аута (за 4-кратный интервал вре­мени символа не передано и не принято ни одного сим­вола, хотя в буфере имеется по крайней мере один). Сброс — чтением регистра данных приемника.

« 001 — регистр THR пуст; сброс — записью данных.

» 000 — изменение состояния модема (CTS, DSR, RI или DCD), сброс — чтением регистра MSR.

FCR — регистр управления FIFO (только для записи). Назначение бит регистра FCR:

s Биты [7:6] — ITL (Interrupt Trigger Level) — уровень запол­нения FIFO-буфера, при котором вырабатывается пре­рывание:

00—1 байт (по умолчанию), 01 —4 байта,

10 -8байт,

11 — Мбайт.

« Биты [5:4] зарезервированы. х Бит 3 — разрешение операций DMA.

» Бит 2 — RESETTFfReset Transmitter FIFO) — сброс счетчи­ка FIFO-передатчика (записью единицы; сдвигающий регистр не сбрасывается). » Бит 1 — RESETRFf Reset Receiver FIFO) — сброс счетчика FIFO-приемника (записью единицы; сдвигающий регистр не сбрасывается).

as Бит О —TRFIFOE(Transmit And Receive FIFO Enable) —раз­решение (единицей) режима FIFO для передатчика и приемника. При смене режима FIFO-буферы автомати­чески очищаются.

LCR — регистр управления линией (настройки параметров канала).

Назначения бит регистра LCR:

«• Бит 7 — DMB (Divisor Latch Access Bit) — управление до­ступом к делителю частоты.

« Бит 6 — BRCON( Break Control) — формирование обрыва линии (посылка нулей) при BRCON^i.

ж Бит 5 — STICPARfSticky Parity) — принудительное форми­рование бита паритета:

О — контрольный бит генерируется в соответствии с па­ритетом выводимого символа,

1 — постоянное значение контрольного бита: при EVENPAR=i — нулевое, при EVENPAR=0 — единичное.

» Бит 4 — EVENPARf Even Parity Select) — выбор типа конт­роля: 0 — нечетность, 1 — четность.

и Бит 3 — PAREN (Parity Enable) — разрешение контрольно­го бита:

1 — контрольный бит (паритет или постоянный) разре­шен,

О — запрещен. » Бит 2 — STOPS (Stop Bits) — количество стоп-бит:

0—1 стоп-бит,

1—2 стоп-бита (для 5-битного кода стоп-бит будет иметь длину 1,5 бита).

я Биты [1:0] — SERIALDB (Serial Data Bits) — количество бит данных:

00 -5 бит, 01 -6 бит, 10-7 бит, 11 -8 бит. MCR — регистр управления модемом. Назначение бит регистра MCR:

ж Биты [7:5]=0 — зарезервированы.

» Бит 4 — LME(Loopback Mode Enable) — разрешение режи­ма диагностики:

О — нормальный режим, 1 — режим диагностики (см. ниже).

ж Бит 3 — IE(Interrupt Enable) — разрешение прерываний с помощью внешнего выхода OUT2; в режиме диагностики поступает на вход MSR. 7:

О — прерывания запрещены, 1 —разрешены.

я Бит 2 — OUT1 С (OUT1 Bit Control) —управление выходным сигналом 1 (не используется); в режиме диагностики по­ступает на вход MSR. 6.

» Бит 1 — RTSC (Request To Send Control) — управление выходом RTS; в режиме диагностики поступает на вход MSR.4:

1 — активен (-V), О — пассивен (+V).

я Бит 0 — DTRC(Data Terminal Ready Control) —управление выходом DTR; в режиме диагностики поступает на вход MSR.5:

1 — активен (-V), О — пассивен (+V).

LSR — регистр состояния линии (точнее, состояния приемо­передатчика).

Назначение бит регистра LSR:

s Бит 7 — FIFOEfFIFO Error Status) — ошибка принятых дан­ных в режиме FIFO (буфер содержит хотя бы один сим­вол, принятый с ошибкой формата, паритета или обры­вом). В ne-FIFO-режиме всегда 0.

» Бит 6 — TEMPT (Transmitter Empty Status) — регистр пере­датчика пуст (нет данных для передачи ни в сдвиговом регистре, ни в буферных, THR или FIFO). « Бит 5 —THRE (Transmitter Holding Register Empty) —регистр передатчика готов принять байт для передачи. В режиме FIFO указывает на отсутствие символов в FIFO-буфере передачи. Может являться источником прерывания.

« Бит 4 — 5D (Break Detected) — индикатор обрыва линии (вход приемника находится в состоянии 0 не менее, чем время посылки символа).

w. Бит 3 — FE(Framing Error) — ошибка кадра (неверный стоп-бит).

* Бит 2 — РЕ (Parity Error) — ошибка контрольного бита (па­ритета или фиксированного).

» Бит 1 — ОЕ(Overrun Error) — переполнение (потеря сим­вола). Если прием очередного символа начинается до того, как предыдущий был выгружен из сдвигающего регист­ра в буферный или FIFO, прежний символ в сдвигаю­щем регистре теряется.

» Бит 0 — DR(Receiver Data Ready) — принятые данные гото­вы (в DHR или FIFO-буфере). Сброс — чтением приемника.

Индикаторы ошибок — биты [4:1] — сбрасываются после чте­ния регистра LSR. В режиме FIFO признаки ошибок хранят­ся в FIFO-буфере вместе с каждым символом. В регистре они устанавливаются (и вызывают прерывание) в тот момент, когда символ, принятый с ошибкой, находится на вершине FIFO (первый в очереди на считывание). В случае обрыва линии в FIFO заносится только один «обрывной» символ, и UART ждет восстановления и последующего старт-бита.

MSR — регистр состояния модема. Назначение бит регистра MSR:

ж Бит 7 — DCD(Data Carrier Detect) — состояние линии DCD. » Бит 6 — Rl(Ring Indicator) — состояние линии Rl. » Бит 5 — DSR(Data Set Ready) — состояние линии DSR. « Бит 4 — CTS(Clear To Send) — состояние линии CTS.

« Бит 3 — DDCD (Delta Data Carrier Detect) — изменение со­стояния DCD.

». Бит 2 — TERI (Trailing Edge OfRing Indicator) —спад огиба­ющей Rl (окончание звонка). Mi Бит 1 — DDSR(Delta Data Set Ready) — изменение состоя­ния DSR.

s Бит 0 — DCTS (Delta Clear To Send) — изменение состоя­ния CTS.

Признаки изменения (биты [3:0]) сбрасываются по чтению регистра.

SCR — рабочий регистр (8 бит), на работу UART не влияет, предназначен для временного хранения данных (в 8250 от­сутствует).

В диагностическом режиме (при ШЕ=1) внутри UART орга­низуется внутренняя заглушка:

к Выход передатчика переводится в состояние логической 1. « Вход приемника отключается.

» Выход сдвигающего регистра передатчика логически со­единяется со входом приемника.

« Входы DSR, CTS, RI и DCD отключаются от входных линий и внутренне управляются битами DTRC, RTSC, OUT1C, 1Е.

« Выходы управления модемом переводятся в пассивное состояние (логический ноль).

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

2.5.3. Ресурсы и конфигурирование СОМ-портов

Компьютер может иметь до четырех последовательных пор­тов СОМ1-COM4 (для машин класса AT типично наличие двух портов). СОМ-порты имеют внешние разъемы-вилкм DB25P или DB9P, выведенные на заднюю панель компьюте­ра (назначение выводов приведено в табл. 2.1).

СОМ-порты реализуются на микросхемах UART, совмести­мых с семейством i8250. Они занимают в пространстве вво­да/вывода по 8 смежных 8-битных регистров и могут рас­полагаться по стандартным базовым адресам. Порты вырабатывают аппаратные прерывания. Возможность разде­ляемого использования одной линии запроса несколькими портами (или ее разделения с другими устройствами) зави­сит от реализации аппаратного подключения и ПО. При ис­пользовании портов, установленных на шину ISA, разделяе­мые прерывания обычно не работают.

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

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

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

ss Используемая линия запроса прерывания: для СОМ1 и COM3 обычно используется 1RQ4 или IRQ11, для COM2 и COM4 — IRQ3 или IRQ 10. В принципе номер прерыва­ния можно назначать в произвольных сочетаниях с ба­зовым адресом (номером порта), но некоторые програм­мы и драйверы (например, драйверы последовательной мыши) настроены на стандартные сочетания. Каждому порту, нуждающемуся в аппаратном прерывании, назна­чают отдельную линию, не совпадающую с линиями за­проса прерываний других устройств. Прерывания необ­ходимы для портов, к которым подключаются устройства ввода, UPS или модемы. При подключении принтера или плоттера прерываниями пользуются только многозадач­ные ОС (не всегда), и этот дефицитный ресурс PC мож­но сэкономить. Также прерываниями обычно не пользу­ются при связи двух компьютеров нуль-модемным ss Канал DMA (для UART 16450/16550, расположенных на системной плате) — разрешение использования и номер канала DMA. Режим DMA при работе с СОМ-портами используют редко.

Режим работы порта по умолчанию (2400 бит/с, 7 бит дан­ных, 1 стоп-бит и контроль четности), заданный при ини­циализации порта во время BIOS POST, может изменяться в любой момент при настройке коммуникационных программ или командой DOS MODE COMx: с указанием параметров.

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

Неполадки с СОМ-портами случаются (выявляются) при установке новых портов или неудачном подключении внеш­них устройств.

Проверка конфигурирования

Тестирование последовательных портов (как и параллельных) начинают с проверки их опознавания системой. Список ад­ресов установленных портов обычно появляется в таблице, выводимой BIOS перед загрузкой ОС. Список можно по­смотреть с помощью тестовых программ или прямо в BIOS Data AREA с помощью отладчика.

Если BIOS обнаруживает меньше портов, чем установлено физически, вероятно, двум портам присвоен один адрес или установлен нестандартный адрес какого-либо порта. Пробле­мы могут возникать с адресами портов COM3 и COM4: не все версии BIOS будут искать порты по альтернативным адресам 3EOh, 338h, 2EOh и 238h; иногда не производится поиск по адресам 3E8h и 2E8h. Нумерация найденных пор­тов, отображаемая в заставке, может вводить в заблуждение:

если установлены два порта с адресами 3F8h и 3E8h, в за­ставке они могут называться СОМ1 и COM2, и по этим име­нам на них можно ссылаться. Однако те же порты в застав­ке могут называться и СОМ1 и COM3 (поскольку 3E8h является штатным адресом для COM3), но попытка сослать­ся на порт COM3 будет неудачной, поскольку в данном слу­чае адрес 3E8h будет находиться в ячейке 0:402h B/OS Data Area, соответствующей порту COM2, а в ячейке порта COM3 (0:404h) будет нуль — признак отсутствия такового порта. «Объяснить» системе, где какой порт, можно вручную лю­бым отладчиком, занеся правильные значения базовых ад­ресов в ячейки B/OS Data Area (это придется делать каждый раз после перезагрузки ОС перед использованием «потерян­ного» порта). Существуют тестовые утилиты, позволяющие находить порты (например, Port Finder).

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

Если физически установлен только один порт и его не обна­руживает BIOS, причины те же, что с LPT-портом: либо он отключен при конфигурировании, либо вышел из строя. Неисправность может устраниться при вынимании/вставке платы адаптера в слот системной шины.

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

Функциональное тестирование

В первом приближении СОМ-порт можно проверить диаг­ностической программой (Checkit) без использования за­глушек. Этот режим тестирования проверяет микросхему UART (внутренний диагностический режим) и вырабатыва­ние прерываний, но не входные и выходные буферные мик­росхемы, которые являются более частыми источниками не­приятностей. Если тест не проходит, причину следует искать или в конфликте адресов/прерываний, или в самой микро­схеме UART.

Для более достоверного тестирования рекомендуется исполь­зовать внешнюю заглушку, подключаемую к разъему СОМ-порта (рис. 2.17). В отличие от LPT-порта у СОМ-порта количество входных сигналов превышает количество выход­ных, что позволяет выполнить полную проверку всех цепей. Заглушка соединяет выход приемника со входом передат­чика. Обязательная для всех схем заглушек перемычка RTS-CTS позволяет работать передатчику — без нее символы не смогут передаваться. Выходной сигнал DTR обычно исполь­зуют для проверки входных линий DSR, DCD и RI.

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

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

2. Проверить напряжение на выходах TD, RTS и DTR: после аппаратного сброса на выходе TD должен быть отри­цательный потенциал около -12 В (по крайней мере ниже -5 В), а на выходах RTS и DTR — такой же положи­тельный. Если этих потенциалов нет, возможна ошибка подключения разъема к плате через шлейф. Распростра­ненные варианты:

в шлейф не подключен;

« шлейф подключен неправильно (разъем перевернут или вставлен со смещением);

^ раскладка шлейфа не соответствует разъему платы.

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

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

3. Соединив контакты линий RTS и CTS (или установив за­глушку), следует попытаться вывести небольшой файл на СОМ-порт (например, командой COPYC:\AUTOEXEC. ВАТ СОМ1:). С исправным портом эта команда успешно вы­полнится за несколько секунд с сообщением об успеш­ном копировании. При этом потенциалы на выходах RTS и DTR должны измениться на отрицательные, а на выхо­де TD должна появиться пачка двуполярных импульсов с амплитудой более 5 В. Если потенциалы RTS и DTR не изменились, ошибка в буферных формирователях. Если на выходе RTS (и входе CTS) появился отрицательный потенциал, а команда COPY завершается с ошибкой, ско­рее всего, вышел из строя приемник линии CTS (или опять-таки ошибка в шлейфе). Если команда COPY ус­пешно проходит, а изменения на выходе TD не обнару­живаются (их можно увидеть стрелочным вольтметром, но оценить амплитуду импульсов не удастся), виноват буферный передатчик сигнала TD. Замена микросхем приемников и передатчиков существен­но облегчается, если они установлены в «кроватки». Перед заменой следует с помощью осциллографа или вольтметра удостовериться в неисправности конкретной микросхемы. Расположение выводов микросхем приведено на рис. 2.6.

Если буферные элементы включены в состав интерфейсной БИС (что теперь весьма распространено), то такой порт ре­монту не подлежит (по крайней мере в обычных условиях). Неисправный СОМ-порт, установленный на системной плате, можно попытаться отключить в BIOS SETUP, но порт мог сгореть и вместе со схемой своего отключения — тогда он останется «живым мертвецом» в карте портов ввода/вывода и прерываний. Иногда он полностью выводит из строя сис­темную плату.

Источниками ошибок могут являться разъемы и кабели. В разъемах встречаются плохие контакты, а кабели кроме воз­можных обрывов могут иметь плохие частотные характери­стики. Частотные свойства кабелей обычно сказываются при большой длине (десятки метров) на высоких скоростях об­мена (56 или 115 Кбит/с). При необходимости использова­ния длинных кабелей на высоких скоростях сигнальные про­вода данных должны быть перевиты с отдельными проводами «схемной земли».

Питание от интерфейса, или Почему может не работать мышь

При подключении к СОМ-порту устройств с небольшим энер­гопотреблением возникает соблазн использования питания от выходных линий интерфейса. Если линии управления DTR и RTS не используются по прямому назначению, их можно за­действовать как питающие с напряжением около 12 В. Ток короткого замыкания на «схемную землю» ограничен буфер­ной микросхемой передатчика на уровне 20 мА. При иници­ализации порта эти линии переходят в состояние «выключе­но», то есть вырабатывают положительное напряжение. Линия TD в покое находится в состоянии логической единицы, так что на выходе вырабатывается отрицательное напряжение. Потенциалами линий можно управлять через регистры СОМ-порта (выход TD вырабатывает положительное напряжение, если установить бит BRCON). Двуполярным питанием от линий интерфейса (+V от DTR и RTS, -V от TD) пользуются все манипуляторы, подключае­мые к СОМ-портам. Зная это, в случае неработоспособнос­ти мыши с данным портом следует проверить напряжения на соответствующих контактах разъема. Бывает, что с конк­ретным портом не работает только конкретная мышь (мо­дель или экземпляр), хотя другие мыши с этим портом и эти же мыши с другими портами работают нормально. Здесь дело может быть в уровнях напряжений. Стандарт требует от порта выходного напряжения не менее 5 В (абсолютного значения), и, если данный порт обеспечивает только этот минимум, некоторым мышам не хватит мощности для пита­ния светодиодов (главных потребителей энергии).

Порт получает двуполярное питание через системную плату от блока питания компьютера. Отсутствие на выходе блока питания напряжения +12 В обычно обнаружится по нера­ботоспособности дисков. Отсутствие напряжения -12 В «за­метят» только устройства, подключенные к СОМ-портам. Блок питания теоретически контролирует наличие этих на­пряжений на своем выходе (сообщая о неполадках сигна­лом Power Good, вызывающим аппаратный сброс). Встреча­ются упрощенные схемы блоков питания, у которых контролируются не все напряжения. Кроме того, возможны плохие контакты в разъеме подключения питания к систем­ной плате.

2.5.5. Функции BIOS для СОМ-портов

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

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

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

» OOh — инициализация (установка скорости обмена и фор­мата посылок, заданных регистром AL; запрет источни­ков прерываний). На сигналы DTR и RTS влияния не ока­зывает (после аппаратного сброса они пассивны).

« Olh — вывод символа из регистра AL (без аппаратных пре­рываний). Активируются сигналы DTR и RTS, и после освобождения регистра THR в него помещается выводи­мый символ. Если за заданное время регистр не освобож­дается, фиксируется ошибка тайм-аута и функция завер­шается.

ж 02h — ввод символа (без аппаратных прерываний). Акти­вируется только сигнал DTR (RTS переходит в пассивное состояние), и ожидается готовность принятых данных, принятый символ помещается в регистр AL. Если за за­данное время данные не получены, функция завершает­ся с ошибкой тайм-аута.

8 03h — опрос состояния модема и линии (чтение регист­ров MSR и LSR). Эту гарантированно быструю функцию обычно вызывают перед функциями ввода/вывода во из­бежание риска ожидания тайм-аута.

При вызове INT 14h номер функции задается в регистре АН, номер порта (0-3) — в регистре DX (0 — СОМ1, 1 — COM2...). При возврате из функций 0, 1 и 3 регистр АН содержит байт состояния линии (регистр LSR), AL — байт состояния моде­ма (MSR). При возврате из функции 2 нулевое значение бита 7 регистра АН указывает на наличие принятого симво­ла в регистре AL; ненулевое значение бита 7 — на ошибку приема, которую можно уточнить функцией 3.

Формат байта состояния линии (регистр АН):

и Бит 7 — ошибка тайм-аута (после вызова функции 2 — признак любой ошибки). я Бит 6 — регистр сдвига передатчика пуст (пауза передачи).

» Бит 5 — промежуточный регистр передатчика пуст (го­ тов принять символ для передачи).

« Бит 4 — обнаружен обрыв линии.

« Бит 3 — ошибка кадра (отсутствие стоп-бита).

« Бит 2 — ошибка паритета принятого символа.

» Бит 1 — переполнение (потеря символа).

ж Бит 0 — регистр данных содержит принятый символ.

Формат байта состояния модема (регистр AL):

» Бит 7 — состояние линии DCD. » Бит 6 — состояние линии RI. я Бит 5 — состояние линии DSR. м Бит 4 — состояние линии CTS. »« Бит 3 — изменение состояния DCD. » Бит 2 — изменение огибающей RI. я Бит 1 — изменение состояния DSR. ss Бит 0 — изменение состояния CTS. Формат регистра ALпри инициализации:

» Биты [7:5] — скорость обмена:

000-110; 010-300; 100-1200; 110-4800,

001-150; 011-600; 101-2400; 111-9600 бит/с. ж Биты [4:3] — контроль паритета:

01 — число единиц нечетное,

11 —четное,

00 и 10 — без контроля.

» Бит 2 — количество стоп-бит: 0—1 бит, 1—2 бита (на скорости 110 бит/с — 1,5 стоп-бита).

» Биты [1:0] — длина посылки: 00—5 бит, 01—6 бит, 10-7 бот, 11:-8 бит. 2.5.6. СОМ-порт и РпР

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

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

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

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

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

5. На 0,2 с снимаются оба сигнала (DTR=0 и RTS=0), после чего они оба устанавливаются (DTR=1 и RTS"!). 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 с, позволяющее принять строку длиной до 256 символов. Строка идентификатора РпР должна иметь мар­керы начала (28h или 08h) и конца (29h или 09h), между ко­торыми располагается тело идентификатора в стандарти­зованном формате. Перед маркером начала может находиться до 16 символов, не относящихся к идентификатору РпР. Если за первые 0,2 с ожидания символа (шаг 4 или 6) маркер на­чала не пришел, или же сработал тайм-аут, а маркер конца не получен, или же какой-либо символ принят с ошибкой, про­исходит переход в состояние Connect Idle. Если получена кор­ректная строка идентификатора, она передается ОС.

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

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

Беспроводные интерфейсы








Дата добавления: 2016-06-13; просмотров: 1152;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.038 сек.