Что такое стандартная клавиатура PS 2

Обновлено: 05.07.2024

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

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

Команды

Клавиатура PS/2 поддерживает множество типов команд. Команда — это один байт. Некоторые команды имеют байт/ы данных, которые должны быть отправлены после байта команды. Клавиатура обычно отвечает на команду, отправляя либо «ACK» (для подтверждения команды), либо «Resend» (чтобы сказать, что что-то не так с предыдущей командой). Не забывайте ждать между командой, данными и ответом от клавиатуры.

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

Примечание. Также можно восстановить параметры по умолчанию

Специальные байты

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

Модель драйвера

Очередь команд и конечный автомат

Команды должны отправляться по одной (например, если ваш драйвер работает с прерываниями, вы не можете начать отправку команды в обработчике IRQ, поскольку код вне обработчика IRQ может находиться в середине отправки команды). Команда не будет завершена, пока вы не получите для нее ACK. Например, если вы отправляете команду, а клавиатура отвечает «0xFE (повторно отправить)», вам придется отправить команду еще раз (возможно, с ограничением до 3 попыток, прежде чем вы сдадитесь и решите, что клавиатура не поддерживает команду, которую вы вводите). отправка или произошел аппаратный сбой). Наконец, иногда вы хотите отправить несколько команд одновременно. Например, у вас может быть функция "reinitialise()", которая устанавливает набор кодов сканирования, устанавливает типический байт, устанавливает светодиоды и включает сканирование.

Самый простой способ добиться этого — создать очередь команд для драйвера. Когда вы добавляете команду в очередь, если очередь пуста, вы начинаете отправлять команду; в противном случае вы добавляете команду в очередь. Когда вы получаете «0xFA (ACK)» с клавиатуры, вы отбрасываете команду в начале очереди и начинаете отправлять следующую команду в очереди (если есть). Если вы получили сообщение «0xFE (Resend)» с клавиатуры, вы можете повторно отправить команду в начало очереди.

Остальная часть драйвера должна быть своего рода конечным автоматом. Конечный автомат переходит в другое состояние при успешном выполнении некоторых команд и при получении различных байтов с клавиатуры. Например, драйвер может находиться в состоянии по умолчанию и получить код останова, который переводит его в состояние «ожидание кода сканирования после получения кода останова». Затем он может получить первый байт многобайтового кода сканирования и перейти в состояние «ожидание второго байта кода сканирования после получения кода останова». Наконец, он может получить второй/последний байт кода сканирования, а затем переключиться обратно в состояние по умолчанию.

Наборы кодов сканирования, коды сканирования и ключевые коды

Набор кодов сканирования — это набор кодов, определяющих, когда клавиша нажимается, повторяется или отпускается. Существует 3 различных набора скан-кодов. Самый старый — «набор кодов сканирования 1», по умолчанию — «набор кодов сканирования 2», а есть более новый (более сложный) «набор кодов сканирования 3». Примечание. Обычно в ПК-совместимых системах клавиатура сама использует набор скан-кодов 2, а контроллер клавиатуры преобразует его в набор скан-кодов 1 для совместимости. Дополнительную информацию об этом переводе см. в разделе "8042"_PS/2_Controller.

Современные клавиатуры должны поддерживать все три набора скан-кодов, однако некоторые из них не поддерживаются. Набор кодов сканирования 2 (по умолчанию) — это единственный гарантированно поддерживаемый набор кодов сканирования. Теоретически (я не пробовал) должна быть возможность попытаться установить набор кодов сканирования 1 или набор кодов сканирования 3, а затем спросить клавиатуру, какой код сканирования он использует в настоящее время, и посмотреть, действительно ли он использует запрошенное сканирование. кодовый набор. Таким образом можно будет определить, какие наборы скан-кодов поддерживает клавиатура.

Коды сканирования представляют собой последовательности из одного или нескольких байтов. В некоторых случаях последовательность может достигать 6 байтов (например, клавиша Pause/Break в наборе кодов сканирования 1 генерирует последовательность 0xE1, 0x1D, 0x45, 0xE1, 0x9D, 0xC5 при нажатии). Эта ситуация не совсем идеальна.В общем (для последующей обработки) вы хотите преобразовать эти «одну или несколько последовательностей байтов» в одно целое число, которое однозначно идентифицирует конкретный ключ, который можно эффективно использовать в таких вещах, как таблицы поиска (без редко используемого поиска «много ГиБ» таблицы).

По сути, когда конечный автомат драйвера клавиатуры знает, что он получил полный скан-код, следующим шагом будет преобразование скан-кода «один или несколько байтов» в код клавиши.

Коды клавиш, состояния и сопоставления клавиш

После того, как вы получили коды клавиш, следующим шагом будет отслеживание того, какие клавиши нажимаются в данный момент. Представьте себе компьютерную игру, в которой для перемещения игрока используются клавиши «WASD» — при нажатии клавиши «A» игрок вращается по часовой стрелке. Как игра узнает, что в данный момент нажата клавиша «А»? Для этого вам понадобится массив флагов, где каждый флаг соответствует ключевому коду. Здесь есть скрытый бонус — сам драйвер клавиатуры может использовать тот же «массив флагов», чтобы определить, нажата ли клавиша Shift, Control, Alt и т. д., что может быть весьма полезно при попытке преобразовать код клавиши в фактический символ ASCII или кодовая точка Unicode. Например, если пользователь нажимает клавишу «a», это может соответствовать «a» или «A» (в зависимости от состояния CapsLock и того, удерживается ли в это время клавиша Shift) или может не соответствовать допустимый символ (например, "control-a" или "alt-a").

Также обратите внимание, что (например) в игре "WASD" не важно, являются ли клавиши "W", "A", "S" и "D". Игра хочет знать о клавишах в определенном «Т-образном» узоре слева от клавиатуры. Если клавиатура отличается, то и клавиши в одном и том же месте могут быть совершенно разными (например, это будут « Наборы кодов сканирования

Примечание. Не позволяйте названию обмануть вас — эти клавиши не имеют никакого отношения к ACPI и ведут себя как любые другие обычные клавиши (но могут быть полезны для ОС, поддерживающей управление питанием).

Набор кодов сканирования 1

В следующей таблице показано, какие коды сканирования соответствуют каким клавишам при использовании набора кодов сканирования 1 (только для клавиатуры "US QWERTY"):


Примечание. Код сканирования для "клавиша паузы отпущена" отсутствует (она ведет себя так, как будто ее отпускают сразу после нажатия)

Набор кодов сканирования 2

В следующей таблице показано, какие коды сканирования «сделать» соответствуют каким клавишам при использовании набора кодов сканирования 2 (только для клавиатуры «US QWERTY»):

Примечание. Код сканирования для "клавиша паузы отпущена" отсутствует (она ведет себя так, как будто ее отпускают сразу после ее нажатия)

Набор кодов сканирования 3

В следующей таблице показано, какие коды сканирования соответствуют клавишам при использовании набора кодов сканирования 3 (только для клавиатуры "US QWERTY"):


Если вы недавно обновились до Windows 10 и теперь ваша клавиатура не работает, вы не одиноки. Многие другие пользователи Windows 10 сообщают о той же проблеме, особенно после установки обновления KB4074588 от 13 февраля 2018 г.

И, к счастью, есть решение. Вот 5 вариантов, которые стоит попробовать. Возможно, вам не нужно пробовать их все. Просто продвигайтесь вниз по списку, пока не найдете тот, который устраняет проблему.

Способ 1. Проверьте, работает ли ваш USB-порт

Иногда порт USB может просто перестать работать при обновлении до новой версии Windows. Обычно это из-за проблем с драйверами. Вы всегда должны сначала проверить наличие этой проблемы.

К счастью, это легко проверить: просто отключите клавиатуру от USB-порта и подключите другое USB-устройство, например мышь или внешний жесткий диск. Если это устройство также не работает, проблема связана с самим USB-портом, и вам следует сразу перейти к способу 4. Если устройство, которое вы только что подключили, работает, перейдите к способу 2.

Способ 2. Настройте параметры клавиатуры

В Windows есть параметр под названием «Ключи фильтра», который позволяет вам контролировать, как он обрабатывает случайные повторяющиеся нажатия клавиш. К сожалению, известно, что при включении этого параметра некоторые клавиатуры перестают работать в Windows 10. Поэтому вам следует проверить, включен ли он. Если это так, вам следует отключить его и посмотреть, решит ли это проблему.

1) На рабочем столе ПК щелкните значок Центра поддержки в правом нижнем углу и выберите Все настройки.


2) Нажмите "Удобство доступа".


< /p>

3) Нажмите "Клавиатура".


4) Убедитесь, что ключи фильтра отключены, и закройте окно.


Способ 3. Переустановите драйвер клавиатуры

Если в драйвере клавиатуры произошел сбой, клавиатура может перестать работать. Чтобы это исправить:

1) Щелкните правой кнопкой мыши кнопку "Пуск" и выберите "Диспетчер устройств".


2) Разверните узел "Клавиатуры", щелкните правой кнопкой мыши "Стандартная клавиатура PS/2" и выберите "Удалить".


< /p>

3) Когда будет предложено подтвердить, нажмите OK.


< /p>

4) Перезагрузите компьютер после удаления. Если проблема не устранена, скорее всего, ваш драйвер устарел, а не неисправен, и вам следует попробовать способ 4, описанный ниже.

Способ 4. Обновите клавиатуру и драйвер USB (рекомендуется)

Одной из наиболее частых причин того, что клавиатура не отвечает, является устаревшая клавиатура или USB-драйвер.

Вы можете получить нужные драйверы для клавиатуры и USB-порта двумя способами: вручную или автоматически.

Обновление драйверов вручную. Вы можете обновить драйверы вручную, перейдя на веб-сайт производителя и выполнив поиск самого последнего правильного драйвера. Обратите внимание, что для вашего USB-драйвера вам может потребоваться попробовать как производителя вашего ПК, так и производителя набора микросхем вашего USB-порта. Если у вас нет времени, терпения или навыков работы с компьютером, чтобы обновить драйверы вручную, вместо этого вы можете сделать это автоматически с помощью Driver Easy.

Автоматическое обновление драйверов. Driver Easy автоматически распознает вашу систему и найдет правильные драйверы как для мыши, так и для USB-порта. Вам не нужно точно знать, какая система работает на вашем компьютере или кто все производители, вам не нужно рисковать, скачивая и устанавливая не тот драйвер, и вам не нужно беспокоиться о том, чтобы сделать ошибку при установке. Вы можете автоматически обновлять драйверы с помощью БЕСПЛАТНОЙ или профессиональной версии Driver Easy. Но с Pro-версией это займет всего 2 клика (и вы получите полную поддержку и 30-дневную гарантию возврата денег):

1) Загрузите и установите Driver Easy.

2) Запустите Driver Easy и нажмите кнопку «Сканировать сейчас». Затем Driver Easy просканирует ваш компьютер и обнаружит проблемные драйверы.


3) Нажмите кнопку «Обновить» рядом с отмеченной клавиатурой (или USB-устройством), чтобы автоматически загрузить и установить правильную версию (вы можете сделать это в БЕСПЛАТНОЙ версии).

Или нажмите «Обновить все», чтобы автоматически загрузить и установить правильную версию всех драйверов, которые отсутствуют или устарели в вашей системе (для этого требуется версия Pro — вам будет предложено обновить при нажатии кнопки Обновить все).


Способ 5. Переключитесь на ChromeOS


Windows — очень старая технология. Конечно, Windows 10 относительно нова, но это всего лишь последняя версия операционной системы, которой уже несколько десятков лет, разработанной для ушедшей эпохи (до появления Интернета).

Теперь, когда у нас есть Интернет, высокая скорость соединения, бесплатное облачное хранилище и бесконечное количество веб-приложений (таких как Gmail, Google Docs, Slack, Facebook, Dropbox и Spotify), весь способ работы Windows — с локально установленными программами. и локальное файловое хранилище — полностью устарело.

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

Плюс то, как Windows управляет установленным программным и аппаратным обеспечением, всегда было проблемой. Если ваш компьютер неожиданно выключается или программа устанавливается, удаляется или обновляется неправильно, вы можете получить повреждения «реестра». Вот почему ПК с Windows всегда замедляются и со временем становятся нестабильными.

Кроме того, поскольку все установлено и сохранено локально, у вас не займет много времени, прежде чем у вас закончится место на диске, и ваш диск будет фрагментирован, что сделает все еще медленнее и нестабильнее.

Для большинства людей самый простой способ решить проблемы с Windows – это полностью отказаться от Windows и перейти на более быструю, надежную, безопасную, простую в использовании и более дешевую операционную систему…

ChromeOS очень похожа на Windows, но вместо того, чтобы устанавливать кучу программ для электронной почты, чата, работы в Интернете, написания документов, проведения школьных презентаций, создания электронных таблиц и всего, что вы обычно делаете на компьютере, вы используете веб-приложения.Вам вообще ничего не нужно устанавливать.

Это означает, что у вас нет проблем с вирусами и вредоносными программами, а ваш компьютер не замедляется со временем и не становится нестабильным.

Подробнее о Linkworld Electronics LK601C88PS2

Модель < /tr>
Бренд Linkworld
Модель LK601C88PS2
Клавиатура
Интерфейс клавиатуры PS/2
Стиль дизайна Стандартный
Упор для рук Нет
Обычные клавиши 107
Цвет клавиатуры Белый
Мышь
Мышь включена Нет
Требования к ОС / системе
Поддерживаемые операционные системы Windows 98/ ME/ 2000/ XP
Функции
Особенности Доступна раскладка на всех языках
Механизм активации переключателя Menbrane
Эргономичный дизайн
Ощущение удобства
Комфорт для пальцев
Интерфейс USB/PS2/AT Доступно
10 миллионов ключей Жизненный цикл коммутатора интерфейса
Готово для Windows 98/2000/ME/XP
Дополнительная информация < tr>
Первая дата Доступно 20 марта 2007 г.

Плюсы: тихие клавиши. Для тех, кто любит базовую компоновку, это находка по этой цене.

Минусы: ничего лишнего, что могло бы вас удивить. Вы получаете очень простую клавиатуру. Но кому вообще нужны дополнительные услуги.

Общий обзор: я всегда считал, что дополнительные кнопки «Круто» на некоторых клавиатурах совершенно бесполезны, если только вы не играете, но тогда вы играете с макросами и все. Если вам нужны дополнения, эта доска не для вас. Если вы хотите, чтобы доска заменила ту, на которую вы пролили кофе, сделайте это.

Плюсы: дешево и работает

Минусы: шнур почти слишком короткий, на нем нет подушечек, поэтому он легко скользит.

Плюсы: НЕТ

Минусы: несколько клавиш нажаты и не могут быть использованы, это клавиши 5,r,v,j, запятая (,), p, клавиши цифровой клавиатуры 9,2, +. t,y, backspace, ,[,], клавиши цифровой клавиатуры 456 не работают, но их можно нажимать.

Общая проверка: если предположить, что это связано с вопросами и ответами.

Плюсы: это было очень дешево

Минусы: почти нет тактильной отдачи. Было ощущение, что я печатаю на чем-то плоском. Кроме того, шнур очень короткий.

Общий отзыв: мне не следует слишком много жаловаться, так как это была низкая цена. Однако, если вы не против потратить несколько лишних долларов, вы можете получить гораздо лучший вариант.

Плюсы: -Быстро -Эффективно -Чисто (при доставке)

Минусы: -Я все время обмазывался горчицей. - Он чрезвычайно подвержен разливам всех видов. -Ключи не так хороши с горчицей на них.

Общий обзор: как уже сообщалось, дешевая замена.

Плюсы: именно эта клавиатура у меня с 2002 года. Я купил ее в другом месте, но это та же модель. Мои друзья перепробовали 2 и 3 клавиатуры Logitech, и моя 5-долларовая клавиатура просто устояла. Что бы я ни бросал в него или на него (я засыпал на нем около дюжины раз), он не перестает тикать. Дешевле не всегда хуже.

Минусы: Очень быстро слезает "чернила" на клавишах, мой wasd, а также левый джойстик и шифт, а также 1-4 не имеют на себе маркировки. Кроме того, если вы геймер, будьте осторожны, примерно через 2 года все мои клавиши «WASD» застряли. Они по-прежнему работают как обычно, они просто не выскакивают снова, теперь они, так сказать, «чувствительны к давлению».

Общий отзыв: трудно чистить и не очень хорошо выглядит. Но если вам нужна клавиатура, которая УДИВИТ вас тем, как долго она прослужит, купите ее. У меня был один, когда я был на мели, и теперь я застрял с этой чертовой штукой.

Плюсы: ввод символов

Минусы: много раз режет пальцы. Некоторые клавиши перестали работать, когда часть клавиатуры пропиталась моей кровью.


1987 год был славным. Он принес нам стандарт клавиатуры PS/2, который и по сей день присутствует на многих задних панелях материнских плат. (Он также ознаменовал выпуск The Legend of Zelda в Северной Америке/Европе, но это уже другая статья.) До этого момента периферийные устройства использовали DIN-5 и DE-9 (часто ошибочно называемые для мышей того времени) разъемы или — ох уж — нестандартные проприетарные разъемы. Так в чем же заключалась эта новая горячность? [Бен Итер] проводит нас через зал славы PS/2, реконструируя протокол.


< /p>

Разъем PS/2 во всей красе

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

Вот где ныряние [Бена] действительно блестяще, мы знаем, что он ниндзя макетирования, поэтому он тянется к чипам DIP. Сдвиговый регистр — это простой способ создать параллельный интерфейс PS/2 для разделения каждого пакета данных. На этом пути есть несколько причуд, например, необходимость инвертировать тактовый сигнал, чтобы сдвиговый регистр срабатывал на правильном фронте. Он также использует задержку распространения пары вентилей инвертора, чтобы немного запоздать срабатывать защелку сдвигового регистра 595, избегая состояния гонки. Второй 595 сохраняет выходные данные для отображения с помощью набора светодиодов.

Помимо простого декодирования сигнала, [Бен] изучает форматирование пакетов. Вы получаете не просто код ключа, а обычное обнаружение ошибок последовательного интерфейса; стартовые/стоповые биты и бит четности. Он даже углубляется в расширенные клавиши, которые отправляют более одного пакета, и пакет действий по нажатию клавиши, который отправляется этой конкретной клавиатурой.

Это идеальная низкоуровневая демонстрация работы протокола. С практической точки зрения кажется немного странным разбивать последовательный порт на параллельный, когда было бы очень легко отслеживать две сигнальные линии и декодировать их с помощью микроконтроллера. Возможно, вы захотите немного изменить его, оставить часы и контакты данных, но подключить их к Raspberry Pi, используя всего несколько пассивных компонентов.

< /p>

25 мыслей о «Расшифровке протокола клавиатуры PS/2 с использованием старого доброго оборудования»

Насколько я помню, оригинальный «IBM PC» использовал 595 для параллельного подключения последовательного сигнала клавиатуры.

Это была более поздняя версия, в которой для управления последовательной клавиатурой использовался микроконтроллер.

Клавиатура Тай всегда использовала микроконтроллер.

Несмотря на простую логику декодирования протокола PS/2, маловероятно, что он сможет корректно восстановить сбои/ESD/случайное удаление/повторное подключение разъема. Когда тактовые биты пропускаются без ресинхронизации, все данные, собранные с этой точки, искажаются. Это было одной из причин, по которой ранние ПК плохо справлялись с повторным подключением и требовали перезагрузки, если кто-то спотыкался о кабель клавиатуры.

Для восстановления потребуется тайм-аут на последнем тактовом импульсе и попытка повторной синхронизации стартового бита. Я реализовал это в своем коде PS/2, и он всегда восстанавливается.

Интересный факт о USB-клавиатуре заключается в том, что она использует протокол PS/2, когда линии D+ и D- подтянуты к Vdd. Все USB-клавиатуры, которые я тестировал, делают это, и я пользуюсь этим, когда хочу использовать клавиатуру ПК с MCU. Я никогда не использовал протокол USB для этой цели, так как реализация протокола PS/2 намного проще.

Многие специальные (например, перепрограммируемые) или «геймерские» клавиатуры этого не делают.
Которые все мои, так как мой Logitech IN 2001 SE окончательно умер.

Многие клавиатуры, которые я купил за последние 10 лет, больше не поддерживают спецификацию перехода с USB на PS2.
В любом случае, это было рассчитано всего на несколько лет, но я полагаю, потребовалось (уходит) много времени, чтобы переходные клавиатуры работали по каналам. Но новые клавиатурные контроллеры, кажется, попали или промахнулись, а те, что дешевле 20 долларов, больше не поддерживают PS2 :(

Это верно, но микропрограмма определяет состояние линий ввода/вывода при запуске. В зависимости от состояния микропрограмма настроит линии для работы в качестве входов/выходов PS/2 или линий передачи данных USB (подключенных к встроенному модулю USB). Магии нет.

А, так вот как это работает! Спасибо, Жак.

В этом случае логический анализатор немного упростил бы эту задачу.

Если бы он просто подключил часы как есть, они бы считывали данные по переднему фронту, который удобно находится в середине бита данных, поэтому ему вообще не понадобилась бы задержка. Думаю, именно так это и планировалось использовать :)

Я смотрел это вчера по дороге на работу, поэтому не мог сосредоточиться на 100 %. Я не мог не думать, что это было бы в значительной степени бесполезно, если бы вы действительно взаимодействовали с этим.

Кажется, лучшая защита от ненужных данных — это постоянная выборка, а также то, что пакеты данных происходят быстрее, чем время между нажатиями клавиш.

Думаю, это была отличная демонстрация, но в ее настройке есть что-то несуразное. Я не могу понять.

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

«Было бы очень легко контролировать две сигнальные линии и декодировать их с помощью микроконтроллера».

Стремись к большему (самый сложный путь) или иди домой!

Черт возьми, должен быть способ сделать это с 555. Или, может быть, с целой кучей 555

Немного истории, чтобы объяснить некоторые вопросы, заданные в видео.

До XT у IBM была клавиатура (84 клавиши) в производстве. Скан-коды PS/2 исходили от этой более ранней клавиатуры, и они представляли положение клавиши, а не метку (букву), напечатанную на клавише, и поэтому нет корреляции с ASCII. Это было сделано для международных вариаций. Неудивительно для компании International Business Machines. В DOS были кодовые страницы для международных вариантов.

Ранее клавиатуры использовались исключительно для ввода текста, и они не указывали, когда клавиша была отпущена. В то время протокол представлял собой одно 9-битное слово. Это не годилось для игр или других типов ввода, поэтому было добавлено второе слово как для обеспечения совместимости с существующим оборудованием, так и для обозначения выпуска ключа.

Позже клавиатура была расширена до 101 клавиши (PS/2), а затем протокол был расширен до трех 11-битных слов. Это было несовместимо со старым оборудованием, и на клавиатурах той эпохи мог быть переключатель для выбора протокола «XT/AT».

Я не совсем понимаю, что вы хотите сказать. «До XT у IBM уже была клавиатура (84 клавиши) в производстве». Похоже, вы думаете, что у IBM была только одна клавиатура, может быть, вы имели в виду IBM Model F? Первая клавиатура Model F появилась на IBM System/23 Datamaster, выпущенном за месяц до IBM PC. Это была 83-клавишная клавиатура. На самом деле у IBM было МНОГО клавиатур до XT, как вы думаете, как их терминалы взаимодействовали с мейнфреймами? Только вариации Model F имели 122 клавиши, 104 клавиши и даже 50 клавиш. Вы ограничиваете обсуждение IBM PC? Compaq Portable имел клавиатуру из фольги и пены, сделанную Keytronics в 1983 году, до XT. Keytronics также производила клавиатуры по крайней мере для одного из TRS-80, Apple Lisas, Sun type 4, Wang… Думаю, я пытаюсь сказать, что производство компьютерных клавиатур уже было зрелой отраслью к тому времени, когда IBM выпустила свой первый ПК. . Кроме того, к моменту появления стандарта PS/2 на рынке доминировали клоны. Вы отфильтровываете всю эту историю, чтобы сосредоточиться исключительно на вкладе IBM. «Раньше клавиатуры использовались исключительно для ввода текста». Ну, нет. Похоже, вы смутно знакомы с System/23 Datamaster и, возможно, можете сказать, что он предназначался исключительно для ввода текста. Но задолго до этого было выпущено много клавиатур для терминалов, которые помимо ввода текста использовались по-разному. В 1967 году была введена 7-битная схема кодирования ISO/IEC 646, также называемая ECMA-6, для устранения недостатков ASCII-US, а терминалы DEC использовали стандарт NRCS в 1983 году, что было не менее важным, чем вклад IBM. Если вы собираетесь излагать историю, то делайте это правильно! Я все еще пытаюсь понять, намеренно ли вы хотели сосредоточиться исключительно на клавиатуре IBM PC, или вы действительно думаете, что это было все и конец всех электронных клавиатур, используемых с компьютерами. В то время я был подростком, и у меня, безусловно, была и есть сегодня совсем другая точка зрения.

Я тоже не особо следил за этим.

Клавиатура IBM PC с самого начала выдавала код при нажатии клавиши и код при нажатии клавиши. Понятия не имею почему, но это точно не про игры.

Формат клавиатуры никогда не менялся. Будь то разъем DIN или PS/2, клавиатура выводила одинаковую форму.

Было изменение, и я не могу вспомнить, было ли оно связано с AT или PS/2. Я предполагаю, что AT добавила микроконтроллер на материнскую плату для интерфейса клавиатуры. И клавиатура имела некоторый уровень связи с материнской платой. Самое главное, изменились коды клавиш.

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

Клавиша вниз/клавиша вверх позволяет выполнять автоповтор на стороне ПК, что проще и полезнее, чем на клавиатуре

Кроме того, это единственный практичный способ отслеживания произвольных комбинаций клавиш для использования специальных символов и команд.

Клавиатура не знает, собираетесь ли вы нажимать одну или несколько клавиш, поскольку она сканирует матрицу клавиш, поэтому ей придется просканировать все это как минимум пару раз, чтобы определить, какие клавиши нажаты, а затем отправить специальный код для этой комбинации.

Я подозреваю, что оставить часы неинвертированными действительно было бы надежнее.

Тем не менее, задержка все равно потребуется. Он задерживает тактовый сигнал защелки относительно тактового сигнала сдвигового регистра, а не сам тактовый сигнал сдвигового регистра. В техническом описании SN74HC595 говорится, что когда эти часы связаны вместе, «регистр сдвига опережает на один тактовый импульс регистр хранения». RCLK должен подняться как минимум на 19 нс после предыдущего нарастающего фронта SRCLK, чтобы получить последние данные. Без задержки вывод всегда будет смещен на один бит.

Предполагалось, что это будет ответ Дарко, но при публикации оно переместилось в конец списка :(

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

Я ищу адаптер PS/2 для USB. Кто-нибудь знает одночиповое решение или что-то подобное?

Оставить ответ Отменить ответ

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

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

Читайте также: