Интерфейс ps 2 что это

от admin

Разъем PS/2

штекер PS/2

штекер PS/2

гнездо PS/2

гнездо PS/2

PS/2 — компьютерный порт, применяемый для подключения клавиатуры и мыши, использующий 6-контактный разъём mini-DIN.

Из шести контактов в разъёме используется четыре: тактовые импульсы, данные, питание, общий. При этом для клавиатуры используемые контакты шины данных и частоты могут отличаться от контактов для подключения мыши. Это позволяет использовать оба устройства сразу, но через разветвитель.

В настоящее время подавляющее большинство изготавливаемых компьютерных мышей и клавиатур имеют разъём USB, некоторые современные материнские платы (особенно миниатюрных форм-факторов) не имеют разъёма PS/2 или имеют только один разъём. Современные ноутбуки и нетбуки не имеют внешних разъёмов PS/2, и для подключения к ним мыши или внешней клавиатуры используется USB. Старые ноутбуки чаще всего имели один универсальный разъём.

Интерфейс PS/2 может использоваться не только для клавиатур и мышей, но и для других устройств, например, сканеров штрих-кодов, позиционеров. Однако эти устройства в большинстве случаев эмулируют работу клавиатуры или мыши. Это позволяет избавиться от драйверов и сделать устройства платформонезависимыми.

В офисных условиях иногда предпочитают использовать клавиатуры и мыши PS/2, а не USB по соображениям безопасности: это позволяет полностью отключить порты USB и сделать невозможным подключение флешек и других потенциально опасных устройств.

Спецификация PC97 определяет стандартные цвета для разъёмов порта PS/2 в системном блоке и на кабелях подключаемых устройств:
сиреневый — клавиатура;
зелёный — мышь.

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

Некоторые производители изначально использовали свою систему цветового кодирования: например, клавиатуры «Logitech» имели корпус разъёма оранжевого цвета, но в дальнейшем перешли на использование стандартных цветов.

Описание интерфейса PS2

Несмотря на то, что USB клавиатур и мышей становится все больше и больше, компьютеры со «старым» PS2 интерфейсом все еще выпускаются. Посмотрите на системный блок Вашего компьютера сзади. Вы видите два небольших шестиконтактных разъемчика, один над другим, зеленый и фиолетовый? Это они. Они служат для подключения мыши и клавиатуры стандарта PS2.

Для начала, немного технической информации.

Как работает интерфейс PS2?
Порывшись в интернете находим наиболее достоверную информацию о PS2 здесь: http://www.computer-engineering.org/, автор Adam Chapweske, за что мы ему крайне признательны. Статья эта большая и на английском языке, поэтому попробуем перевести на русский самое необходимое.

Первое – это описание контактов разъема PS2.
В разъеме MINIDIN 6 контактов, но используются только 4 из них.

Слева нарисован разъем, который вставляется. Он устанавлявается на шнур мыши или клавиатуры. Справа нарисован разъем устанавливаемый на материнскую плату компьютера. Нумерация контактов у них, естественно зеркальная, потому, что при вставлянии одного разъема в другой сигналы одного имени должны совпадать.

  1. Data (передаваемые данные)
  2. Not Implemented (не используетя)
  3. Ground (Земля)
  4. VCC (+5V) (Питание)
  5. Clock (сигнал синхронизации передаваемых данных)
  6. Not Implemented (не используется).

Второе – это электрический интерфейс.
Клавиатура (или мышь) подключена к контроллеру на материнской плате по схеме «открытый коллектор». Что это такое? Схему можно нарисовать примерно так:

Схема «открытый коллектор» используется когда одним сигналом могут управлять несколько устройств. В нашем случае это контроллер на материнской плате и контроллер внутри клавиатуры. Они могут передавать данные навстречу друг другу. Например Клавиатура посылает коды нажатых клавиш, а компьютер посылает в клавиатуру команду зажечь светодиоды CAPS/NUM/SCROLL LOCK.
В исходном состоянии, когда данные не передаются, оба сигнала Data и Clock находятся в логической единице (на них напряжение +5В). Такое состояние будет если оба контроллера снимут управляющее напряжение с транзисторов ( ClockOut и DataOut ) и они закрыты. Так как транзисторы закрыты, то сигналы «подтянуты вверх» к напряжению питания резисторами. Читать текущее состояние сигналов оба контроллера могут прямо с контактов DataIn и ClockIn . Управлять линией очень легко. Контроллер подает управляющее напряжение на базу транзистора (сигналы DataOut и ClockOut ), он открывается, через него течет ток и соответствующий сигнал Data или Clock получается «притянут к земле», на нем получается логический ноль. Что делать если оба контроллера захотят одновременно передать навстречу друг другу? Ну во-первых, ничего страшного на физическом уровне не случится, ведь «притянутый к земле» сигнал «притянуть» еще раз не получится. Во-вторых, конечно это проблема для уровня передачи данных. Оба контроллера, как два вежливых собеседника, должны уметь слушать друг друга и дослушать до конца. Это обеспечивается специальным протоколом. Например контроллер, перед передачей своих данных не должен начинать передачу данных если состояние сигналов недавно менялось.

Третье — это протокол.
При передаче от устройства (PS2 клавиатуры или PS2 мыши) к компьютеру используется следующий протокол. Устройство не начинает передачу, если Clock не находился в «1» по крайней мере 50 микросекунд. Устройство передает последовательно:

  1. старт бит – всегда ноль;
  2. 8 бит данных;
  3. бит четности;
  4. стоп бит – всегда единица.

Устройство устанавливает/меняет сигнал Data когда Clock находится в логической единице. Контроллер на материнской плате читает данные, когда Clock находится в логическом нуле. Примерно так:

Частота сигнала Clock примерно 10-16.7кГц. Время от фронта сигнала Clock до момента изменения сигнала Data не менее 5 микросекунд. Так написано в той статье, на которую я сделал ссылку в начале. Четно говоря я очень сомневаюсь, что производители придерживаются этих значений.
Контроллер материнской платы может сигнализировать устройству о невозможности приема опустив сигнал Clock в логический ноль. На практике этого по моему тоже никто не делает.
При передаче в обратную сторону команд от контроллера на материнской плате компьютера к клавиатуре или мыши протокол отличается от описанного выше.
Последовательность передаваемых бит здесь хитрее:

  1. хост контроллер опускает сигнал Clock в ноль на время примерно 100 микросекунд;
  2. хост контроллер опускает сигнал Data в ноль формируя старт бит;
  3. хост контроллер отпускает сигнал Clock в логическую единицу, клавиатура фиксирует старт бит;
  4. далее клавиатура генерирует сигнал Clock, а хост контроллер подает передаваемые биты;
  5. после того, как хост контроллер передал все свои биты, включая бит четности и стоп бит, клавиатура посылает последний бит «ноль», который является подтверждением приема.

Поскольку одним сигналом управляют два устройства, то довольно трудно понять, кто в данный момент времени управляет сигналом. Именно по этому диаграмма нарисована двумя цветами. Красный цвет – сигнал управляется хост контроллером, а синий – сигнал управляется клавиатурой.

Четвертое — это коды и команды, которые посылают мыши, клавиатуры и контроллер компьютера. Это довольно сложная тема. Пожалуй опишу все это в следующей статье.

Ну и конечно, мы собираемся сделать из платы Марсоход какой-то прототип клавиатуры. Уже скоро!

Контроллер интерфейса PS/2

Клавиатура к первым ПК (IBM PC и IBM PC/XT, 1981 год) подключалась по однонаправленному (передача данных только в одну сторону — от клавиатуры к компьютеру) интерфейсу, программное взаимодействие с которым осуществлялось с помощью двух портов микросхемы параллельного интерфейса 8255: порт A (он был доступен по адресу 60h) использовался как регистр принятых от клавиатуры данных, а порт B (61h) содержал биты, управляющие как клавиатурой, так и другими устройствами. Нажатие и отпускание клавиш кодировалось способом, ныне известным как таблица скан-кодов № 1.

В компьютерах IBM PC/AT (первые из них появились в 1984 году) от применения микросхемы 8255 отказались. Для обеспечения взаимодействия с клавиатурой был применён микроконтроллер 8042. Изменился и сам физический интерфейс: он стал двунаправленным. Хотя клавиатура по-прежнему подключалась через 5-контактный DIN-коннектор, она была несовместимой с клавиатурами IBM PC и IBM PC/XT (хотя в переходный период выпускалось большое число клавиатур, пригодных для использования с обоими типами интерфейсов; выбор нужного интерфейса осуществлялся специальным переключателем). В клавиатурах IBM PC/AT была использована новая таблица скан-кодов, получившая № 2.

В 1987 году IBM начала выпуск семейства ПК IBM PS/2. В этих компьютерах использовалась та же самая микросхема 8042, однако её функции были расширены: она обеспечивала подключение не только клавиатуры, но и мыши, для которой был добавлен второй коннектор. Электрически интерфейс остался тем же самым, что на IBM PC/AT, однако коннекторы поменялись: вместо 5-контактных DINов стали использовать 6-контактные MiniDINы. С помощью переходника клавиатура IBM PC/AT могла быть подключена к PS/2, и наоборот. IBM разработала и новую таблицу скан-кодов — № 3, но клавиатуры, пригодные для использования с разными типами ПК, обеспечивали программное переключение используемой таблицы.

Следует заметить, что контроллер интерфейса PS/2, описываемый в этой статье, часто ошибочно именуют контроллером клавиатуры. Это абсолютно неверно. Последний находится внутри самой клавиатуры, отслеживает нажатия и отпускания клавиш и посылает по интерфейсу PS/2 соответствующие скан-коды, а также принимает по этому интерфейсу команды и выполняет их (например, переключает светодиоды или меняет скорость автоповтора нажатия клавиш). Контроллер интерфейса PS/2 никакого отношения к клавиатуре или мыши как таковой не имеет и располагается на системной плате компьютера; к нему можно подключить абсолютно любое устройство, использующее интерфейс PS/2. Задача этого контроллера — принимать данные от устройства (клавиатуры, мыши, ещё чего-нибудь — неважно) и позволять процессору их считывать, а также принимать данные от процессора и передавать их устройству.

Некорректно называть контроллер PS/2 и контроллером 8042. Во-первых, 8042 — это микроконтроллер, который мог быть запрограммирован на решение самых разных задач, и его применение для управления интерфейсом PS/2 в составе персонального компьютера — лишь одно из многих возможных. Во-вторых, уже давным-давно функции контроллера PS/2 выполняет другая микросхема. Наконец, современные контроллеры зачастую выполняют массу других функций, например, связанных с поддержкой ACPI. По всем этим причинам корректно говорить лишь о контроллере PS/2, совместимом с точки зрения пользователя с контроллером, реализованным в IBM PC/AT на микросхеме 8042.

Интерфейс PS/2

Физический интерфейс PS/2 включает четыре проводника: землю, напряжение питания (изначально использовалось напряжение +5В, все современные контроллеры и устройства используют +3,3В), линию данных (Data) и линию синхронизации (Clock). Технически обе сигнальные линии управляются так называемыми схемами с открытым коллектором или стоком, благодаря чему логическая единица на линии присутствует только тогда, когда и контроллер интерфейса («хост» по терминологии, используемой в описании интерфейса), и устройство одновременно удерживают на данной линии логическую единицу; если хост или устройство выставляет на линию логический нуль, на всей линии появляется нуль, даже если другое устройство продолжает удерживать единицу. Этим достигается двунаправленность линий: и хост, и устройство могут одновременно управлять и анализировать их состояние.

Информация передаётся между хостом и устройством пакетами по 11 бит. Первый передаваемый бит является стартовым, он всегда равен нулю. Далее следуют восемь битов данных, причём первым передаётся наименее значащий. После битов данных идёт контрольный бит (он дополняет общее количество единичных битов данных до нечётного), а за ним — стоп-бит, всегда равный единице. Например, для передачи байта, имеющего шестнадцатеричное значение 15h, используется следующая последовательность битов: 01010100001.

Передача данных от устройства к хосту

PS2 dev-to-host

Временнáя диаграмма передачи информации от устройства к хосту

Устройство может начать передачу данных хосту по своей инициативе в любой момент, когда передача не ведётся, но разрешена. Признаком разрешения передачи является наличине на обеих линиях — Clock и Data — логических единиц (естественно, при условии, что ранее начатая передача 11-разрядного пакета уже закончена, поскольку обе линии могут быть единичными и в процессе передачи).

Последовательность передачи одного бита выглядит следующим образом. Когда на линии Clock находится логическая единица, устройство выставляет нужный бит (единицу или нуль) на линию Data, а затем, выждав 5—25 мкс, выставляет на Clock логический нуль, тем самым давая понять хосту, что на линии Data находится нужный бит. Выждав ещё некоторое время, устройство вновь выставляет на линии Clock логическую единицу, а затем в течение не менее 5 мкс не изменяет состояние линий Clock и Data. Хост может принять бит в любой момент после того, как линия Clock была переведена устройством в логический нуль, однако технически удобнее всего это делать в момент перехода Clock из единицы в нуль или обратно, т.е. по спаду или фронту сигнала Clock; именно для этого требуется, чтобы бит на линии Data выставлялся до спада Clk хотя бы за 5 мкс и удерживался ещё как минимум 5 мкс после фронта Clock. Общий период времени, необходимый для передачи одного бита, составляет от 60 до 100 мкс, что соответствует частоте синхроимпульсов, передаваемых по линии Clock, в 10—16,7 кГц.

Временнáя диаграмма сигналов на линиях Clock и Data при передаче информационного байта 15h (последовательность битов 0 1010 1000 01) показана на рисунке.

PS2 dev-to-host 15h

Временнáя диаграмма передачи байта 15h от устройства к хосту

Передача данных от хоста к устройству

PS2 host-to-dev

Временнáя диаграмма передачи информации от хоста к устройству

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

Когда хост желает начать передачу данных, он сначала выставляет на линии Data и Clock логические нули и удерживает их не менее 100 мкс, что запрещает устройству передачу данных хосту (или обрывает уже ведущуюся передачу — см. следующий подраздел) и одновременно даёт время приготовиться для приёма данных.

Выждав необходимое время, хост выставляет на линии Clock логическую единицу, продолжая удерживать на линии Data нуль. Этим устройству даётся знать, что хост желает начать передачу данных; одновременно нулевое состояние линии Data играет роль стартового бита 11-разрядного пакета.

Устройство, приготовившись к приёму первого информационного бита (на это с момента перевода линии Clock хостом в нуль должно уходить не более 15 мс), начинает выдачу синхроимпульсов на линию Clock. Хост выдаёт очередной бит пакета, когда на Clock находится логический нуль, а устройство считывает этот бит, когда на Clock находится единица (т.е. моменты выдачи и приёма информации обратные по сравнению с передачей данных от устройства к хосту).

После приёма стоп-бита пакета устройство подтверждает окончание приёма, выставляя на линию Data логический нуль и генерируя ещё один синхроимпульс (отрицательный и затем положительный перепад) на Clock. Выдача нуля на Data при этом осуществляется, когда на Clock устройство удерживает единицу. Хост в ответ на получение нуля по линии Data после посылки стоп-бита должен выдать на эту линию логическую единицу. Если этого сделано не будет, устройство, обнаружив такую ситуацию после перевода Clock в единичное состояние, продолжит генерацию синхроимпульсов на линии Clock, дожидаясь, пока на Data появится единица, и одновременно зафиксировав ошибку.

Вся передача информации от хоста к устройству с момента получения хостом первого импульса по линии Clock и до выдачи устройством подтверждения приёма должна укладываться в промежуток времени, не превышающий 2 мс. Если информация, переданная хостом, подразумевает выдачу устройством ответной информации, эта выдача должна начаться не позже, чем через 20 мс.

Читать:
Как управлять машиной через телефон

Временнáя диаграмма посылки хостом устройству байта 15h показана на рисунке.

PS2 host-to-dev 15h

Временнáя диаграмма передачи байта 15h от хоста к устройству

Запрет передачи данных

Хост может в любой момент запретить передачу данных, переведя линию Clock в состояние логического нуля. Если в этот момент устройство осуществляло передачу данных, оно её прекращает.

Если хост прервал передачу данных от устройства, то после восстановления на линии Clock состояния логической единицы устройство начинает передачу информации заново, причём повторены должны быть все байты, составляющие единое логическое целое. Например, если хост прервал передачу второго байта двухбайтового скан-кода клавиатуры, при возобновлении работы клавиатура заново должна отправить первый байт, и лишь потом начинать передачу второго.

Программное взаимодействие с контроллером

Далее мы будем исходить, что контроллер интерфейса PS/2 используется традиционным образом — для подключения клавиатуры и мыши.

С точки зрения программиста контроллер состоит из трёх регистров: регистра данных, регистра состояния и регистра команд. Последний служит для выдачи в контроллер различных команд, выполняемых самим контроллером; эти команды не следует путать с командами клавиатуры, которые передаются в клавиатуру через контроллер интерфейса PS/2, но выполняются не им, а контроллером клавиатуры. Кроме того, контроллер интерфейса PS/2 способен вырабатывать запросы прерываний, поступающие в программируемый контроллер прерываний по линиям IRQ1 и IRQ12, первая из которых соответствует запросам прерываний от клавиатуры, а вторая — от мыши.

Регистры контроллера

Регистр данных

Регистр данных доступен процессору для чтения и записи через порт 60h. Он используется для:

  • считывания информации, поступившей от клавиатуры или мыши (либо любых других устройств, подключенных через интерфейс PS/2);
  • передачи информации в клавиатуру (или иное подключенное устройство);
  • получения информации, возвращаемой контроллером в ответ на выданную ему команду;
  • записи информации, необходимой для исполнения ранее выданной контроллеру команды.

Заметим, что чтение и запись информации возможны только в определённые моменты времени. Считывание имеет смысл только тогда, когда регистр данных содержит байт, принятый от какого-либо устройства или возвращённый ранее заданной командой; признаком наличия данных для считывания служит единичное значение бита 0 регистра состояния (см. ниже). Записывать байт в регистр данных можно только тогда, когда установлен бит 1 регистра состояния.

Не следует забывать и о том, что описываемый регистр относится ко всему контроллеру интерфейса PS/2, а не к клавиатуре или мыши. Он используется как для «общения» с этими устройствами, так и для считывания или записи данных в сам контроллер PS/2 в зависимости от того, какую операцию он в данный момент времени выполняет (см. ниже описание регистра команд).

Регистр состояния

Этот регистр доступен процессору для считывания через порт 64h. Назначение его разрядов следующее:

Бит Описание
7 =1 – при получении данных от устройства была обнаружена ошибка чётности. В регистр данных помещается байт 0FFh
6 =1 – при обмене данными с устройством зафиксирован таймаут. Если он возник при получении данных от устройства, в регистр данных помещается байт 0FFh, если он возник при передаче данных в устройство — байт 0FEh
5 =1 – в регистре данных находится байт, полученный от мыши. Одновременно будет установлен и бит 0
4 =0 – клавиатура блокирована, =1 — работа клавиатуры разрешена. В компьютерах PS/2 была предусмотрена блокировка клавиатуры для предотвращения несанкционированного использования компьютера; к настоящему времени этот механизм защиты утратил свою актуальность и практически не используется
3 =0 – последней передачей байта контроллеру была выдача команды (запись в регистр команд); =1 – последней передачей была выдача данных (запись в регистр данных)
2 =0 – был выполнен аппаратный сброс; =1 – инициализация ПК была закончена. Этот бит сбрасывается контроллером после того, как на него будет подано питающее напряжение либо при поступлении общего сигнала сброса (обычно от кнопки Reset), а устанавливается программно, с помощью команды 60h (см. ниже). Анализируя состояние этого бита, BIOS может определить причину сброса (аппаратный или программный)
1 =0 – входной буфер контроллера пуст (можно производить запись в регистр команд или данных); =1 — входной буфер контроллера заполнен, запись в регистры данных и команд запрещена
0 =1 – выходной буфер контроллера содержит информацию (можно производить чтение из регистра данных). После чтения регистра данных этот бит сбрасывается
Регистр команд

Регистр команд служит для выдачи команд контроллеру интерфейса PS/2. Он доступен только для записи через порт 64h. Записывать команду в этот порт можно только в том случае, если входной буфер контроллера пуст (бит 1 регистра состояния сброшен).

Описание команд контроллера приведено ниже в соответствующем подразделе.

Команды контроллера

Команды контроллера записываются в регистр команд (порт 64h). Контроллеры различных производителей имеют несколько различающийся набор команд, однако все основные команды у них присутствуют, а различия касаются команд, предназначенных для проверки функционирования контроллера.

Команды, выполняющие запись каких-либо данных, выдаются контроллеру в два приёма: сначала в регистр команд записывается код команды, а затем в регистр данных — необходимые ей данные. Команды, возвращающие какие-либо данные, помещают их в регистр данных.

Ниже приведён общий список и краткое описание команд контроллера. Коды команд даны в шестнадцатеричном виде. Дополнительные сведения о некоторых командах даны отдельно.

Команда Описание
20 Чтение управляющего байта (см. ниже)
21–3F Чтение ячеек памяти контроллера. Эти команды предназначены для диагностики и работают не во всех контроллерах. Формально команда 20 относится к их же числу, однако работает всегда, поскольку возвращаемая ей информация стандартизирована
60 Запись управляющего байта (см. ниже)
61–7F Запись ячеек памяти контроллера. Эти команды предназначены для диагностики и работают не во всех контроллерах. Формально команда 60 относится к их же числу, однако работает всегда, поскольку записываемая ей информация стандартизирована
A1 Чтение версии контроллера. В первых контроллерах не поддерживалась
A4 Проверка наличия механизма парольной защиты. Возвращает байт FA, если механизм присутствует, и F1 в противном случае. В настоящее время не используется
A5 Загрузка пароля. Получив эту команду, контроллер начинает принимать пароль, загружаемый в него через регистр данных. Пароль заканчивается нулевым байтом. В настоящее время эта команда не используется
A6 Разрешение проверки пароля. Эта команда допустима, только если пароль уже загружен (команда A5). В настоящее время не используется
A7 Запрет мыши. Эта команда устанавливает бит 5 управляющего байта (см. ниже)
A8 Разрешение мыши. Эта команда сбрасывает бит 5 управляющего байта (см. ниже)
A9 Тест интерфейса мыши; при успешном выполнении возвращается 00. В ранних версиях контроллера эта команда отсутствовала
AA Самотестирование контроллера; при успешном выполнении возвращается 55. В ранних версиях контроллера эта команда отсутствовала
AB Тест интерфейса клавиатуры; при успешном выполнении возвращается 00. В ранних версиях контроллера эта команда отсутствовала
AD Запрет клавиатуры. Эта команда устанавливает бит 4 управляющего байта (см. ниже)
AE Разрешение клавиатуры. Эта команда сбрасывает бит 4 управляющего байта (см. ниже)
AF Чтение версии. Чем-то отличается от команды A1. В ранних версиях контроллера отсутствовала
C0 Чтение входного порта (см. ниже)
C1 Опрос младшей части входного порта (см. ниже). Биты 3–0 входного порта считываются и помещаются в разряды 7–4 регистра состояния. Большинство контроллеров не поддерживает эту команду
C2 Опрос старшей части входного порта (см. ниже). Биты 7–4 входного порта считываются и помещаются в разряды 7–4 регистра состояния. Большинство контроллеров не поддерживает эту команду
D0 Чтение выходного порта (см. ниже)
D1 Запись выходного порта (см. ниже). Многие контроллеры поддерживают запись только в разряд 1 или в разряды 0 и 1
D2 Запись байта в выходной буфер клавиатуры. Эта команда имитирует поступление байта данных от клавиатуры: байт данных, записываемый процессором в регистр данных после выдачи этой команды, считается как бы пришедшим от клавиатуры и вызывает установку бита 0 регистра состояния и генерацию прерывания, после чего может быть прочитан через регистр данных
D3 Запись байта в выходной буфер мыши. Эта команда аналогична предыдущей, но имитирует поступление байта данных от мыши, устанавливая биты 0 и 5 и генерируя прерывание от мыши
D4 Передача информации в мышь. Байт, записываемый в регистр данных после выдачи этой команды, передаётся мыши
E0 Чтение тестовых входов. В регистр данных помещается байт, бит 0 которого соответствует состоянию на момент поступления команды линии синхронизации (Clock) интерфейса клавиатуры, а бит 1 — линии синхронизации интерфейса мыши
F0–FE Выдача импульсов в выходной порт (см. ниже). Разряды 3–0 этой команды соответствуют битам 3–0 выходного порта. Те биты выходного порта, соответствующие которым разряды команды сброшены, на несколько микросекунд (6 мкс для оригинального контроллера 8042) будут сброшены. Многие контроллеры могут не поддерживать часть этих команд. Например, контроллер PS/2 типа 2 фирмы IBM поддерживает только команду FE, вызывающую отрицательный перепад нулевого разряда выходного порта, что приводит к сбросу процессора
FF Сброс контроллера PS/2
Управляющий байт контроллера

Режимы работы контроллера определяются значением управляющего байта, который может быть задан командой 60 и прочитан командой 20. Назначение разрядов этого байта следующее.

Бит Описание
7 Зарезервировано
6 =0 – контроллер передаёт принятые от клавиатуры скан-коды без изменения; =1 – контроллер преобразует поступающие от клавиатуры скан-коды в кодовую таблицу 1. Многие контроллеры не поддерживают эту возможность; в этом случае установить данный разряд командой 60h невозможно
5 =0 – работа мыши разрешена; =1 – работа мыши запрещена (на линии Clock интерфейса мыши будет установлен 0). Этот бит может быть установлен и сброшен командами A7 и A8
4 =0 – работа клавиатуры разрешена; =1 – работа клавиатуры запрещена (на линии Clock интерфейса клавиатуры будет установлен 0). Этот бит может быть установлен и сброшен командами AD и AE
3 Зарезервировано
2 Значение бита 2 регистра состояния
1 =0 – прерывания от мыши запрещены; =1 – прерывания от мыши разрешены
0 =0 – прерывания от клавиатуры запрещены; =1 – прерывания от клавиатуры разрешены
Входной порт

Входной порт — это внутренний порт контроллера PS/2, разряды которого отражают состояние ряда входных линий контроллера. Входной порт может быть прочитан с помощью команд C0, C1 и C2, причём последние две многими контроллерами не поддерживаются. Обычным программам, включая ОС, состояние линий этого порта неинтересно.

Бит Описание
7 =0 – клавиатура блокирована; =1 – клавиатура разрешена. В настоящее время не используется
6 Состояние перемычки, управляющей режимом работы видеоконтроллера после включения питания или сброса (=0 – цветной режим, =1 – монохромный режим). В настоящее время не используется
5 Состояние перемычки неизвестного назначения. В настоящее время не используется
4 Объём памяти ПК: =0 — 256 Кбайт, =1 — 512 Кбайт или больше. В настоящее время не используется
3 Зарезервировано
2 Зарезервировано
1 Состояние входной линии данных интерфейса мыши
0 Состояние входной линии данных интерфейса клавиатуры
Выходной порт

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

Порт PS / 2 на материнских платах: зачем он нужен и почему

Наблюдения и советы этой статьи мы подготовили на основании опыта команды Порты PS / 2 ранее это были те, которые использовались для подключения мыши и клавиатуры к ПК, до USB-порты потому что именно тогда они вышли из употребления. Несмотря на это, а с тех пор прошло почти 25 лет, почему на некоторых материнских платах все еще есть порты PS / 2?

Во многих материнских платах мы все еще можем видеть эти порты, которые также обозначены цветным кодом и даже значками: фиолетовый — для клавиатуры, а зеленый — для мыши. Фактически, во многих случаях мы можем видеть комбинированные порты PS / 2, которые совместимы с обоими периферийными устройствами (и что для соединения этих двух портов с одним и тем же портом был необходим сплиттер).

Какими функциями обладает порт PS / 2?

Please enable JavaScript

Периферийные устройства с подключением PS / 2 не производились уже более десяти лет, и тем не менее даже современные материнские платы все еще имеют этот порт. Например, изображение ниже соответствует портам на ASRock J5005-ITX материнская плата который оснащен Intel Процессор Pentium Silver J5005 с поддержкой DDR4 Оперативная память и даже имеет разъем M.2 для хранения.

Порт PS / 2 имеет много недостатков по сравнению с USB, например, когда вы подключаете устройство, он не является Plug & Play, и для его обнаружения необходимо перезагрузить компьютер. Но у него также есть много других преимуществ по сравнению с USB, например:

  • Не требует драйверов любого рода , Например, когда вы подключаете USB-клавиатуру к ПК, драйвер должен сообщить компьютеру, что вы подключаете к этому порту. Однако, когда вы подключаете клавиатуру к порту PS / 2, ПК знает, что это клавиатура, без каких-либо уведомлений. Это означает, что клавиатура, подключенная к этому порту, всегда будет работать, независимо от того, используете ли вы BIOS или какую операционную систему вы используете.
  • Это всегда работает , В дополнение к вышесказанному, когда вы загружаете ПК, порт PS / 2 загружается даже раньше, чем данные BIOS или процессора, и он буквально может прерывать инструкции процессора. Это означает, что он всегда работает, независимо от того, что вы делаете, пока не отключите питание. По этой причине он идеально подходит для обновления BIOS, загрузки микропрограмм и в основном того, что вам нужно.
  • Это неприкосновенно , Все это также означает, что он неприкосновенен. Вы не можете получить удаленный доступ к периферийному устройству PS / 2, так как в нем нет встроенного ПО, драйвера или программного обеспечения. Это чистое и жесткое оборудование.
  • Имеет полную поддержку N-Key Rollover , Порты PS / 2 присущи знаменитой функции игровых клавиатур, которая позволяет нам нажимать столько клавиш одновременно, сколько мы хотим, без помех. По этой причине многие профессиональные геймеры предпочитают использовать эти типы портов вместо обычных USB. Удивительно, но это правда.

Conectores PS / 2

Почему некоторые материнские платы все еще включают этот порт?

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

Итак, вы уже знаете: порты PS / 2 могут быть старыми, медленными и архаичными. Но нет ничего более надежного.

Похожие публикации