Интерфейсы ПК

       

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


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

1. Порт инициализируется с состоянием линий DTR=OA/, 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.

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

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

6. В течение 0,2 с ожидается приход первого символа от ус- тройства, по приходе символа начинается прием иденти- фикатора (см. ниже). Если за это время символ не пришел, то в зависимости от состояния сигнала DSR переходят к проверке отключения Verify Disconnect (при DSRO) или в дежурное состояние 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), при DSRO происходит переход в состояние Disconnect Idle, в котором система может периодически опрашивать сигнал DSR для обнаружения подключения уст- ройства.

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


Содержание раздела