КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Специализированные интерфейсы периферийных устройств


Контроллер имеет два внешних порта, с помощью которых и реализуются по¬следовательные интерфейсы, а также управление вентилем GateA20, сигналом сброса процессора и чтением сигналов от джамперов системной платы и ключа блокировки клавиатуры. Эти порты не имеют непосредственного отображения в пространстве адресов ввода-вывода PC; доступ к ним осуществляется через ко¬манды контроллера. Кроме этих портов контроллер имеет два специальных входа ТО и Т1, которые могут считываться его микропрограммой и использоваться в каче¬стве источников его внутренних прерываний (это не прерывания CPU). Каждая из двунаправленных интерфейсных линий KB-Data, KB-Clock, MS-Data и MS-Clock реализуется битом порта вывода и битом ввода. В режиме PS/2 для чтения линий KB-Clock и MS-Clock используются входы ТО и Т1, в режиме AT вход Т1 использу¬ется для линии KB-Data.
Порт ввода Р1 доступен по команде C0h; в режиме PS/2 имеет следующее назначе¬ние бит:

бит 7 — ключ блокировки клавиатуры (Keylock): 0 — клавиатура заблокирована;

бит 6 — перемычка установки видеорежима: 0 — цветной (Color), 1 — моно¬хромный (Mono);

бит 5 — системная перемычка: 0 —замкнута;

бит 4 — перемычка задания объема ОЗУ: 0 — 256 Кбайт, 1 — 512 Кбайт и более;

биты 3, 2 — не используются;

бит 1 — линия MS-Data;

бит 0 — линия KB-Data.
В современных ПК используются только биты 0,1 и 7; в режиме AT биты О и 1 не используются.
Порт вывода (Р2), доступный для записи и чтения по командам Dlh и D0h соответ¬ственно, имеет следующее назначение бит:

бит 7 — линия KB-Data;

бит 6 — линия KB-Clk;

8.1. Интерфейс клавиатуры
315

бит 5 — запрос прерывания от дополнительного интерфейса (IRQ12), в режи¬ме AT не используется;

бит 4 — запрос прерывания от клавиатуры (IRQ1);

бит 3 — линия MS-Clk, в режиме AT не используется;

бит 2 — линия MS-Data, в режиме AT не используется;

бит 1 — вентиль линии адреса А20 (Gate A20, см. п. 12.3): 0 — А20 обнулен, 1 — управляется выводом процессора;

бит 0 — альтернативный сброс процессора (сигнала INIT, без формирования общего сигнала сброса).
Приняв посылку от клавиатуры, контроллер выполняет внутреннюю трансляцию скан-кода (если это не запрещено командным байтом) и устанавливает в регистре состояния OBF=1, что приводит к генерации запроса прерывания IRQ1 (если это не запрещено командным байтом). В ответ на это хост должен считать данные (транс¬лированный скан-код, префиксы и т.

Hosted by uCoz