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

Системная поддержка и программный интерфейс





Клавиатура имеет системную поддержку на уровне BIOS — обработку фактов нажатия и отпускания клавиш и обеспечение сервисов ввода символов с клавиату­ры, а также управления ее параметрами (задержка и частота автоповтора) и инди­каторами. Коды, принятые от клавиатуры ее контроллером, считываются и обра-


316_________ Глава 8. Специализированные интерфейсы периферийных устройств

батываются обработчиком аппаратного прерывания IRQ1 (вектор 09h). Результат обработки помещается в клавиатурный буфер, из которого по программному пре­рыванию Int 16h этот результат для дальнейшей обработки может быть извле­чен значительно позже. Нажатие «системной» комбинации Ctrl+Alt+Del, клавиши PrintScreen (SysRq) и некоторых других к записи в клавиатурный буфер не приво­дит, а вызывает специальные процедуры. Прикладной программе, для которой требуется нестандартное использование клавиатуры (например, в качестве музы­кальной), придется самой заниматься обработкой аппаратного прерывания IRQ1, перехватывая вектор Int 09h. Перехват этого вектора требуется и для вызова каких-либо функций резидентных программ по «горячим» клавишам.



При начальном тестировании процедура POST инициализирует клавиатуру (и ее контроллер) и запускает диагностический тест. Во время этого теста клавиатура мигнет всеми индикаторами, после чего может остаться включенным только ин­дикатор NumLock (зависит от установки в BIOS Setup). В случае обнаружения ошибки клавиатуры на консоль выводится сообщение с возможным указанием скан-кода залипшей клавиши и обычно предлагается нажать клавишу F1 для продолжения. То же самое произойдет, если тест не обнаружит клавиатуру (на­пример, из-за вывалившегося разъема или перегоревшего предохранителя), но в этом случае нажатия клавиши F1 будет уже недостаточно. Ошибку диагностики даст и подключение к компьютеру AT клавиатуры от XT, обратное «скрещивание» тоже неработоспособно. Чтобы начальная загрузка не останавливалась по ошиб­ке (отсутствию) клавиатуры (POST будет дожидаться получения кода клавиши F1), тестирование клавиатуры может быть отменено настройкой CMOS Setup.

Для обслуживания клавиатуры используются ячейки ОЗУ из области данных BIOS (BIOS Data Area):



♦ 0:0417,0:418 — флаги клавиатуры;

♦ 0:0419 — аккумулятор кода Alt-набора;

♦ 0:041 А— указатель головы буфера (Buffer Head),2байта (модифицируется
при помещении символа в буфер);

♦ 0:041C — указатель хвоста буфера (Buffer Tail), 2 байта (модифицируется при
извлечении символа из буфера);

♦ 0:041E-0:042D — область кольцевого буфера (16 слов).

Интерфейсы мыши

Мышь является устройством, предназначенным для ввода координат и подачи ко­манд. Интерфейс мыши применим для любого физического воплощения устрой­ства (мышь, трекбол). По интерфейсу с компьютером различают три основных вида мышей: Bus Mouse, Serial Mouse и PS/2-Mouse. Появились мыши с интер­фейсом USB, но они пока не получили широкого распространения (как и клавиа­тура USB, к порту которой удобно подключить мышь USB).


8.2. Интерфейсы мыши__________________________________________ 317

С интерфейсами Serial Mouse и PS/2-Mouse иногда возникают недоразумения. Хотя оба они последовательные, но имеют существенные принципиальные раз­личия в уровнях сигналов, способе синхронизации, частоте и формате посылок.

♦ Интерфейс PS/2 использует однополярный сигнал с уровнями ТТЛ, питание мыши — однополярное с напряжением +5 В относительно шины GND. Интер­фейс RS-232C, применяемый в Serial Mouse, использует двуполярный сигнал (см. п. 2.1) с уровнями срабатывания +3 В и -3 В, и для него требуется двупо-лярное (относительно шины GND) питание мыши.

♦ Интерфейс PS/2 использует две раздельные сигнальные линии, одну для пе­
редачи данных, другую — для сигналов синхронизации. Serial Mouse исполь­зует асинхронный способ передачи данных всего по одной линии.

Даже не рассматривая частоты и форматы посылок, становится ясно, что прямой совместимости между этими интерфейсами быть не может. Тем не менее выпус­каются и продаются переходники (пассивные!), позволяющие выбирать способ подключения мыши. Эти переходники предназначены только для универсальных мышей, у которых встроенный контроллер по напряжению питания способен рас­познать, к какому интерфейсу его подключили, и установить соответствующий тип своего выходного интерфейса. Универсальные мыши не особо распростране­ны, поэтому часто приходится слышать о неудачных попытках применения таких переходников к обычной мыши Serial Mouse или PS/2-Mouse.



Дополнительную путаницу вносят мыши для компьютера Macintosh, которые имеют разъем, с виду напоминающий разъем PS/2. Однако при ближайшем рас­смотрении и неудачной попытке включения его в PC становится ясно, что разъ­емы эти разные, да и интерфейс совершенно иной.

Последовательные мыши — MS Mouse и PC Mouse

Serial Mouse — мышь с последовательным интерфейсом, подключаемая через 9- или 25-контактный разъем СОМ-порта (табл. 8.2). Эта мышь имеет встроен­ный микроконтроллер, который обрабатывает сигналы от координатных датчи­ков и кнопок. Каждое событие — перемещение мыши или нажатие-отпускание кнопки кодируется двоичной посылкой по интерфейсу RS-232C. Для передачи ин­формации применяется асинхронная передача, а двуполярное питание, требуемое по протоколу RS-232, обеспечивается от управляющих линий интерфейса. Недо­статком Serial Mouse является то, что она занимает СОМ-порт и требует моно­польного владения его штатной линии прерывания (IRQ4 для СОМ1 и IRQ3 для COM2). Конечно, то, что для использования мыши порту СОМ1 требуется имен­но прерывание IRQ4, является недостатком не самой мыши, а ее программного драйвера, но для пользователя, не увлекающегося написанием «мышиных» драй­веров, важен только факт этого ограничения. Две основные разновидности — MS Mouse (Microsoft Mouse) и PC Mouse (Mouse Systems Mouse) — требуют раз-


318________ Глава 8. Специализированные интерфейсы периферийных устройств

ных драйверов, многие мыши имеют переключатель MS/PC. Эти два типа «мы­шей» при одинаковой скорости 1200 бит/с, одном стоп-бите и отсутствии конт­роля паритета используют различные форматы посылок.

MS Mouse: 1 бит данных, трехбайтный пакет (в «классическом» варианте), по­ложительным значениям соответствует перемещение по координате X вправо, а по координате Y вниз. Для трехкнопочных мышей добавляется четвертый байт, передаваемый только при изменении состояния средней кнопки. Для 3D-мыши четвертый байт имеет иное назначение.

PC Mouse: 8 бит данных, пятибайтный пакет, положительным значениям соот­ветствует перемещение по координате X вправо, а по координате Y вверх.

Из рассмотрения данных форматов становятся понятными беспорядочные пере­мещения указателя мыши на экране при несоответствии драйвера типу мыши. Несовместимость может проявляться и более неприятным образом: к примеру, ОС Windows 95 при загрузке (и установке) вообще не воспринимает мышь, работа­ющую в режиме PC Mouse (ей «не нравится» идентификатор, сообщаемый мышью при инициализации). При загруженной ОС переключение режима приводит «только» к непредсказуемым прыжкам указателя мыши и ложным срабатывани­ям кнопок.

Таблица 8.2.Разъемы Serial Mouse
Сигнал Контакт DB9 Контакт DB25 ЦепьСОМ-порта

 

Data RxD
GND GND
+V(питание) 7,(4) 4, (20) RTS, (DTR)
-V (питание) TxD

Системная поддержка последовательной мыши осуществляется только на уровне ОС (сервисы вызываются через Int ЗЗп), драйвер мыши — загружаемый или встроенный в ОС. BIOS мышь не поддерживает, даже если и пользуется ею для навигации в BIOS Setup. Еще раз подчеркнем, что для работы мыши обязательно требуется линия аппаратного прерывания — IRQ4 или IRQ3 для последовательных мышей на портах СОМ1 или COM2 соответственно.

Мышь PS/2

PS/2-Mouse — мышь, появившаяся с компьютерами PS/2. Ее интерфейс и разъ­ем 6-pin mini-DIN аналогичен клавиатурному (см. рис. 8.1) и, как правило, реали­зуется тем же контроллером клавиатуры 8242 (см. п. 8.1.2). Адаптер и разъем PS/ 2-Mouse устанавливаются на многих современных системных платах (рис. 8.3). Контроллер мыши PS/2 может быть также на карте расширения (ISA) и занимать дополнительные адреса в пространстве ввода-вывода. С мышью PS/2 связь дву­сторонняя: процессор может посылать контроллеру 8242 специальные команды,


8.2. Интерфейсы мыши _________________________ 319

но, в отличие от интерфейса клавиатуры, перед записью в порт 60h каждого «мыши­ного» байта (и команды, и ее параметра) в порт 64h должен записываться код D4h.

Рис. 8.3. Разъем PS/2-Mouse

Мышь может работать в одном из двух режимов. В потоковом режиме (stream mode) мышь посылает данные по любому изменению состояния; в режиме опроса (remote mode) мышь передает данные только по запросу процессора. Есть еще диагностический режим (wrap mode), в котором мышь возвращает эхом данные, посылаемые ей контроллером. По приему пакета от мыши контроллер устанавли­вает флаг Mouse_OBF и вырабатывает прерывание IRQ12, если оно не запрещено командным байтом 8242.

Устройства-указатели с интерфейсом PS/2 (мышь PS/2) имеют поддержку BIOS, обеспечивающую настройку параметров мыши (посылку вышеперечисленных команд). Собственно драйвер мыши (обработчик прерывания по вектору 74h от запроса IRQ12), обрабатывающий ее информационные посылки, входит лишь в состав ОС или загружается отдельно. Поддержка мыши вызывается через BIOS Int 15h с кодами функций C200-C209h.

Мышь Bus Mouse

Bus Mouse (шинная мышь) — вариант, применявшийся в первых мышах. Здесь мышь содержит только датчики и кнопки, а обработка их сигналов производит­ся на специализированной плате адаптера (обычно ISA). Кабель 9-проводный, разъем специальный (рис. 8.4), хотя на первый взгляд и напоминающий разъем PS/2-Mouse. Главный недостаток такой системы заключается в том, что адаптер занимает слот системной шины, адреса ввода-вывода и линию запроса прерыва­ния. Иногда встречались мультипортовые карты ISA (COM-, LPT- и GAME-nop-ты), на которых установлен и адаптер Bus Mouse. Поскольку компания Microsoft одна из первых выпустила такую мышь, снабдив ее своим логотипом, с понятием Bus Mouse иногда отождествляют и MS-Mouse, хотя последние могут иметь лю­бой из трех видов интерфейсов.


 

Рис. 8.4. Разъем Bus Mouse


320_________ Глава 8. Специализированные интерфейсы периферийных устройств

 








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



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