Как работает контроллер клавиатуры ноутбука
На основании предыдущих наработок с автоматом состояний сделаем очень полезный модуль. Он позволит нам расширить сферу применения отладочного комплекта при помощи подключенной клавиатуры. Благо, для этого имеется специальный разъем. До эпохи тотального применения интерфейса USB , при подключении клавиатуры и мыши к вычислительным устройствам применялся интерфейс PS/2 .
Внешний вид клавиатуры и напряжений в интерфейсе PS/2 Внешний вид клавиатуры и напряжений в интерфейсе PS/2Он передавал коды нажатых клавиш используя две сигнальных линии. Одна тактирующая линия, вторая информационная. Код нажатой клавиши представляет собой восьмибитное число. Линия данных передает биты последовательно один за другим, сопровождая каждый бит фронтом тактового импульса.
На стороне вычислителя встает задача принять последовательность бит для дальнейшего использования. Что мы наблюдаем в сигнальных линиях. На линии данных при отсутствии информации выставлена единица.
Детальное рассмотрение кадра данных и проектируемого автомата состояний Детальное рассмотрение кадра данных и проектируемого автомата состоянийПеред началом передачи кода нажатой клавиши выставляется так называемый стартовый бит уровня логического нуля. Далее передаются 8 бит кода начиная с младшего бита, заканчивая старшим. После идет бит четности. Он служит для проверки целостности кода. Завершает последовательность стоп бит . Его уровень единица. Каждый бит сопровождается передним фронтом тактового сигнала.
Зная каким образом решаются такие задачи, проектируем граф состояний. В начальном состоянии startbit ожидается появление стартового бита уровня логического нуля. Если приходят единицы, то остаемся в этом состоянии. Как только ноль появился, то переходим в состояние data считывания кода нажатой клавиши. Находимся в этом состоянии 8 тактов по числу бит в коде. Сохраняем каждый приходящий бит в регистре для хранения кода. Автоматически переходим в новое состояние parity , где считывается бит четности. В этой учебной задаче мы его никак не будем обрабатывать. В последнем состоянии stop считываем стоповый бит. Проверим его уровень и только если он единичный, то выставим принятый код на выход устройства. Нулевой стоповый бит говорит о какой-то ошибке. В этом случае код нажатой клавиши не выставляем, но все равно переходим в начальное состояние ожидания стартового бита.
Разработанный граф состояний довольно простой. Давайте представим как будет выглядеть схема контроллера интерфейса.
Каждый новый бит попадет на вход регистра, где формируется код нажатой клавиши. У этого регистра есть вход разрешения, который управляется из автомата состояний. Это позволяет писать только те биты, которые нужно. А какие биты писать нужно, решается на основании счетчика приходящих бит и уровня информационной линии. Также автомат состояний управляет процессом выставления кода на выход модуля и появлением сигнала о готовности кода.
Код контроллера
Пишем код контроллера интерфейса. Так как будем показывать коды клавиш на индикаторах , то описываем их линии активации. У интерфейса две линии. Данные и сигнал. На выходе модуля сигнал о готовности кода и сам код.
Опишем все возможные состояния автомата.
Для работы модуля пригодится несколько регистров. Это регистр текущего состояния, регистр для накопления бит кода клавиши, регистр счетчика бит. Также пригодятся два провода для передачи сигналов с двух линий интерфейса передачи данных.
Обнулим состояние всех регистров, в том числе и регистра состояния автомата.
На индикаторы отправляются соответствующие сигналы для их активации.
Отправляем сигналы со входа модуля в провода.
В процедурном блоке описываем поведение автомата состояний по приходу переднего фронта тактового импульса от клавиатуры. В состоянии ожидания стартового бита если приходит нулевой, то переходим к считыванию информационных бит. Если на входе единица, то информации нет, остаемся в ожидании. Сбрасываем состояние регистра кода и убираем с выхода сигнал о готовности кода.
В состоянии приема информационных бит каждый такт увеличивается счетчик бит, очередной бит смещает собой вправо все содержимое сдвигового регистра. Сигнала о готовности кода все еще нет. Если количество бит восемь, то следующее состояние будет прием бита четности. Сбрасываем счетчик бит. Если бит еще не восемь, то остаемся в этом же состоянии.
В состоянии проверки бита четности ничего не проверяем, готовности кода нет, следующее состояние это стоп бит.
При приеме последнего бита следующим состоянием будет начальное. Если стоп бит единица, что правильно, то на светодиоды выставляем содержимое регистра кода. Готовность единица. Если стоп бит не единица, то содержимое регистра светодиодов оставляем как было, сигнала готовности не будет.
Моделируем разработанный контроллер.
В тестовом модуле имитируем сигнал клавиатуры.
Тактовый сигнал идет постоянно. После стартового бита идут 4 нуля, потом 4 единицы. Каждый новый приходящий бит увеличивает счетчик бит на единицу. При этом в регистре кода его содержимое смещается от каждого приходящего бита. Как только стоп бит единица то на выход выставляется сигнал готовности кода и сам код нажатой клавиши.
Эксперимент
Проводим эксперимент. Постоянно нажимаем единицу. Каждый раз меняется содержимое регистра. Это значит неправильно считывается уровень сигнала. И сейчас будет еще один важный урок.
Дребезг бывает не только на механических переключателях. Несогласованная линия передачи данных при смене состояния дает затухающие колебания.
Иногда вычислитель воспринимает этот звон как многократно появляющийся передний фронт.
Для устранения дребезга подойдет ранее разработанный модуль. Просто ставим его на сигнальные линии с клавиатуры. Необходимо снизить в нем период ожидания. Импульсы с клавиатуры гораздо более быстрые, чем способности человека нажимать клавишу. Ничего не остается как сделать это примерно на глаз.
В этом выпуске мы ознакомились с понятием автомата состояний, научились его проектировать и применять, ознакомились с интерфейсом передачи данных с клавиатуры и получили весьма наглядный урок, касающийся искажений сигнала в линиях. Нам опять помог наш полезный модуль борьбы с дребезгом.
Исходный код
Видео-обзор с канала YouTube
Поддержите статью лайком если понравилось и подпишитесь чтобы ничего не пропускать.
Устройства ввода играют важнейшую роль в работе с компьютером и играх, поэтому довольно любопытно будет изучить их внутренности. Диапазон цен на клавиатуры сегодня просто огромен, однако их можно отнести к одной из двух широких категорий: мембранным или механическим. Эти понятия описывают систему, используемую для распознавания нажатия клавиш, и начнём мы с первой категории.
Щёлкать иль не щёлкать, вот в чём вопрос
На представленной ниже фотографии показана бюджетная клавиатура, похожая на бесчисленное множество других, используемых сегодня в школах, офисах и дома. Схема расположения её клавиш является почти полной копией классической IBM Model M 102, но это справедливо для большинства современных клавиатур.
И корпус, и отдельные клавиши изготовлены литьём под давлением из АБС-пластика, потому что этот процесс изготовления недорог, а материал слабо подвержен износу.
Работа с клавиатурой даёт полную информацию о том, к какой категории она относится. Полное отсутствие щёлканья и треска при нажатии на клавиши сообщает нам, что это мембранная клавиатура. Ещё одна подсказка — ощущения при нажатии клавиши; несмотря на бюджетность клавиатуры, нажатие ощущается мягким и слабым.
Вскрытие корпуса это подтверждает — первым делом мы видим мягкий слой силикона.
Каждая клавиша опирается на выпирающую часть слоя силикона, которая, в свою очередь, обеспечивает необходимое сопротивление движению клавиши (благодаря чему мы получаем тактильный отклик при вводе) и смягчает удар клавиши (чтобы нажатие ощущалось плавным).
Недостаток такой схемы заключается в отсутствии чёткого указания того, успешным ли было нажатие на клавишу — чтобы понять, нажалась ли клавиша, нужно смотреть на монитор. Для некоторых пользователей притупленность обратной связи становится причиной не пользоваться мембранными клавиатурами.
Благодаря мягкости нажатий клавиатура довольно тиха, поэтому если вы работаете в одном пространстве со множеством людей, клавиатуры такого типа могут оказаться спасением от шума.
Сняв слой силикона, мы увидим набор из трёх пластиковых листов: два создают «контакты переключателей», а третий способствует их разделению, предотвращая ошибочные считывания.
При нажатии клавиши мембраны сдвигаются друг к другу, после чего соединяются и «точки» под клавишей, в результате чего цепь замыкается, и это считывает соответствующий чип.
Если мы пройдём по дорожкам от мембран к небольшой печатной плате, то увидим, что всего есть 26 дорожек. Они выстроены таким образом, что несколько точек находятся на одной дорожке, допустим, у верхней мембраны, но соответствующие точки нижней мембраны расположены на отдельных дорожках.
Это может показаться чересчур сложным, но на самом деле такая система намного проще, чем создание отдельных дорожек для каждой клавиши. В этой модели соединения не прикреплены несъёмно к плате (что позволяет снизить стоимость), поэтому её нужно надёжно прикрепить прижать к мембране, чтобы обеспечить надёжное соединение.
Плата также содержит пару светодиодов, сообщающих о нажатии определённых клавиш, а именно Caps Lock, Num Lock и Scroll Lock.
Перевернув печатную плату, мы увидим чип контроллера. К сожалению, он залит твёрдым пластиком (для герметизации от жидкостей), который невозможно снять, не повредив остальную часть платы.
Чип может быть стандартным микроконтроллером USB HID (human interface device), которых на рынке есть тысячи разновидностей (например, такая).
Подобные типы клавиатур могут работать годами, не вызывая при этом никаких проблем. Когда же они всё-таки возникают, это часто связано с соединяющимися точками — постоянное нажатие и отпускание приводит к их постепенному стиранию, пока, наконец, они не протрутся до такой степени, что не смогут обеспечивать контакт.
Механические клавиатуры относятся к другой категории, обычно находящейся на другом крае спектра цен, и на то есть уважительная причина.
На фотографии выше показана механическая клавиатура Corsair K100 RGB, продающаяся по довольно неожиданной цене в 210 долларов. Не все модели такого типа настолько дороги, однако подобный дизайн и набор функций сегодня очень популярен.
Под каждой клавишей расположена отдельная система микропереключателя. В рассматриваемой K100 используются системы, изготовленные знаменитой немецкой компанией Cherry. Переключатели Cherry MX уже приобрели почти легендарную репутацию, но в конечном итоге это всего лишь качественно изготовленные устройства.
Cherry производит широкий ассортимент переключателей, каждый тип имеет свою силу и размер пружин, что обеспечивает разные уровни тактильных ощущений. Также конструкции разнятся в зависимости от того, насколько глубоко нужно нажать клавишу для активации контакта и необходимости создания аудиальной обратной связи.
Из-за наличия подвижных деталей механические клавиатуры обладают отчётливым «стуком». Благодаря использованию переключателей клавиатура становится более надёжной и тактильной по сравнению с мембранными моделями.
Какими бывают механические переключатели?
Современная мода на светодиодную RGB-подсветку в комплектующих PC нравится не всем, однако когда дело касается клавиатур, она обладает определёнными преимуществами: настраиваемая подсветка позволяет выбрать наиболее подходящий пользователю цвет и можно задать комбинацию цветных клавиш (если есть возможность RGB-подсветки каждой клавиши), что бывает полезным в приложениях или играх.
Некоторые клавиатуры можно назвать гибридами, сочетающими в себе механику и мембраны, особенно это относится к ноутбукам. В этих устройствах нет места для полностью механических переключателей, но производители создали конструкции, придающие мембранным клавишам более жёсткую и предсказуемую обратную связь.
Внутри клавиатуры-бабочки Apple
Естественно, это повышает стоимость изготовления, а в случае показанной выше системы Apple могут возникать проблемы, но для многих пользователей добавление механических систем для улучшения ощущений и обратной связи в ноутбучных клавиатурах — желанный результат.
Я не буду подробно рассказывать об эргономических клавиатурах просто потому, что внутри они устроены точно так же, как описанные выше типы. Они отличаются только расположением клавиш на корпусе, а также снижением нагрузки на запястья и предплечья при длительном использовании.
У всех нас есть любимые модели мышей и клавиатур, и наш выбор всегда определяется тем, как продукт ощущается в работе. В основном это относится к внешнему виду, но и внутренности тоже играют свою роль.
На правах рекламы
Виртуальные серверы с новейшим железом, защитой от DDoS-атак и огромным выбором операционных систем. Максимальная конфигурация — 128 ядер CPU, 512 ГБ RAM, 4000 ГБ NVMe.
Всем привет. Сегодня будем ремонтировать ноутбук ASUS K52JR с неисправной клавиатурой.
Предыстория.
Со слов хозяина, на ноутбук было вылито кофе, после чего на нем перестала работать клавиатура. Для ремонта, хозяин отдал ноутбук в сервисный центр, где тот пролежал несколько месяцев. В итоге, ноутбук был возвращен клиенту без ремонта. Работники сервисного центра сообщили, что сгорела какая-то дорогая деталь, и новую клавиатуру нет смысла покупать, так как она работать не будет. В нагрузку продали обычную usb клавиатуру, которой клиент благополучно пользовался несколько месяцев.
Спустя год после этой истории, мне принесли этот ноутбук для чистки, и попросили по возможности восстановить клавиатуру.
Диагностика ноутбука.
Сам процесс разборки и чистки ноутбука я описывать не буду, а остановлюсь на диагностике работоспособности клавиатуры. Определим, действительно неисправна материнская плата, или все же проблема только в клавиатуре.
Остатки кофе на крышке ноутбука
тоже самое на клавиатуре
Такая же история была с самой крышкой корпуса. Засохший сладкий кофе, почти намертво склеил DVD привод с крышкой.
Кофе на DVD приводе
Тут у меня закралось предположение, что ноутбук даже не разбирали, так как при ремонте, данные следы должны были быть убраны. Сама материнская плата была вся в пыли, но к счастью не залита. Следов ремонта на ней тоже обнаружено не было.
Так как утверждалось, что новую клавиатуру подкидывали, и она не работала, я решил проверить исправность самого ноутбука, а именно то, реагирует ли материнская плата на нажатие клавиш. Для этих целей, мне необходимо было изготовить маленький пробник.
Изготовление пробника для клавиатур ноутбука.
Пробник будет состоять из таких деталей:
- 2 тонких швейных иголки;
- 2 небольших проводка;
- один резистор на 4,7 кОм
- Термоусадка, ил изолента.
Детали для пробника
Процесс изготовления хорошо видно на фотографиях. К ушкам иголок припаиваются проводки, а уже к концам проводов припаиваем резистор. Можно к иголке припаять резистор, а к нему проводок, это уже на Ваше усмотрение.
На работу устройства это влиять никак не будет. Для эстетичности, все это дело я запаковал в термоусадку.
Проверка работоспособности разъема на клавиатуру в материнской плате.
Первым делом, на проверяемый ноутбук необходимо закачать программу, для тестирования клавиатур.
Интерфейс программы для тестирования клавиатур
Exe файл программы я прилагаю в конце статьи. Так же, необходимо убедиться в том, что есть доступ к контактам разъема, ко стороны пайки. Если такого доступа нет, то необходимо разобрать ноутбук, и снять верхнюю крышку. В моем случае доступ был, но так как ноут необходимо отмывать, я разобрал ноутбук полностью.
Теперь подробней о том, как проверить работоспособность. Каждый пин на разъеме, отвечает за определенные буквы и цифры. Если замыкать несколько пинов между собой с помощью пробника, то мы будем имитировать нажатие клавиш на ноутбуке. Резистор, защищает материнскую плату от короткого замыкания, но его номинала хватает для определения нажатия на клавишу.
Программа на компьютере, будет показывать какие клавиши были нажаты, а какие нет.
Порядок работы с пробником.
Одну иголку ставим на первый пин разъема, после чего второй иголкой поочередно касаемся остальных пинов (2,3,4 и т.д.). Далее, первую иголку переносим на второй пин, а другой иголкой проходимся по всем остальным (3,4,5 и т.д). Первую иголку переносим на 3 пин, другой иголкой касаемся 4, 5 ,6 и т.д. Таким образом доходим до конца разъема.
Разъем на клавиатуру. Первый на первый пин указывает стрелка
Так программа реагирует на нажатие кнопок. Синим выделяются нажатые кнопки, черным которые не нажались
В итоге, если материнская плата находится в исправном состоянии, то будут нажаты все клавиши. У меня не нажались клавиши : Scroll Lock, Insert, вторая клавиша виндовс. Это правильно, так как этих клавиш у меня нет на родной клавиатуре.
Вид программы после замыкания последнего пина
Заключение
Таким образом, мы проверили исправность материнской платы. Мной была заказана новая клавиатура, после установки все прекрасно заработало. В предыдущем сервисе, ноутбук даже не разбирали, это видно по фото.
Будьте бдительны в выборе сервиса, и удачи Вам в ремонтах.
keyboardtestutility.rar (749,5 KiB, 1 262 загрузок)
Если у вас ноутбук, а не настольный ПК, вы не можете просто взять и купить новую клавиатуру. А замена встроенной, окажется трудной (или дорогой) задачей. Так что разумней, сначала попытаться найти неисправность и отремонтировать ее самостоятельно. И в крайнем случае подумать о замене девайса.
Диагностика и ремонт клавиатуры ноутбука
Если вы еще не купили внешнюю клавиатуру, купите. Конечно же, это неравноценная замена встроенной, но с ней вы сможете войти в систему под своим паролем. К тому же в некоторых случаях такой внешний девайс бывает нелишним, например, в играх. Ведь намного проще заменить разбитую внешнюю клавиатуру, чем ремонтировать встроенную.
Первым делом вам нужно определить источник проблемы. То есть в чем проблема: в аппаратных средствах или в программном обеспечении. Чтобы сделать это, загрузитесь через дисковод или флэш-устройство Live Linux. (Live Linux позволяет загрузку операционной среды без ее установки на жесткий диск.) Причем какой дистрибутив Linux вы выберете значения не имеет, например, Ubuntu. Для чего это нужно? Так вы будете работать со своими аппаратными средствами минуя ОС Windows.
Загрузив Linux, запустите любое текстовое приложение, то есть приложение, в котором можно писать текст. Не важно браузер, блокнот или текстовый редактор. К примеру, Ubuntu поставляется с LibreOffice. Попробуйте пропечатать все клавиши.
Если в Linux все клавиши работают, идем дальше.
Проблема в программном обеспечении
Если вы можете вводить текст в Linux и не можете в Windows, скорее всего проблема в драйвере этого устройства. Замените его на родной из комплектации ноутбука.
Загрузитесь в Windows и откройте диспетчер устройств. С рабочего стола: этот компьютер – свойства – диспетчер устройств.
В диспетчере устройств, найдите и разверните (кликнув по стрелке) раздел "Клавиатуры". Дважды щелкните по своей внутренней клавиатуре.
Внимание. Если вы подключили внешнее устройство, убедитесь, что щелкаете по внутреннему. Если запутались, внешнее отключите.
В открывшемся диалоговом окне щелкните по вкладке "Драйвер", и щелкнув по кнопке "Удалить", удалите его. Естественно, после процесса удаления, девайс не заработает. Перезагрузите лэптоп. И во время перезагрузки Windows автоматически переустановит исходный драйвер. Это решило вашу проблему?
Аппаратная проблема
Если перестали работать всего лишь несколько клавиш, тому могут быть причиной - грязь и пыль. Попытайтесь почистить клавишную панель. Вам понадобится баллончик со сжатым воздухом, они есть в продаже. Отключите ноутбук. Почистите зазоры между клавишами и под клавишами. Используйте для этого сжатый воздух и тонкую кисточку или соломку. Сконцентрируйтесь на проблемных клавишах.
Если ремонт клавиатуры не помог, вероятно, вам придется ее заменить. Обратитесь к профессионалу, или сделайте это самостоятельно.
Замена клавиатуры ноутбука
Первым делом удостоверьтесь, что вы купили соответствующую клавиатуру. Приложите ее к устройству, и посмотрите правильной ли она формы и размера. Затем, подготовьте нужные инструменты: маленькая отвертка, пинцет и нож с тонким лезвием.
Отключите лэптоп. Не только завершив работу Windows, но и отключив шнур питания и вынув аккумулятор.
Обратите внимание на панель между клавиатурой и монитором. Чаще всего, доступ к клавиатуре находится именно под ней. Внимательно осмотрите и удалите держащие эту пластину винты. Обратите внимание, что некоторые ее части могут крепится и маленькими винтами с обратной стороны устройства.
Прежде чем снять верхнюю пластину, проверьте, на задней ее части может быть прикреплен соединяющий ее с лэптопом кабель передачи данных. Этот шлейф очень важен и обычно почти не имеет слабины, будьте осторожны. В противном случае вы его порвете или разрушите разъем.
Освободив панель от винтов, аккуратно ее снимите. В случае необходимости используйте тонкий нож. Панель должна выйти легко с небольшим усилием, не применяйте силу. Если не снимается, проверьте еще раз, может остались еще какие не отсоединенные винты, даже под устройством, и отверните их.
Сняв панель, аккуратно отложите ее в сторону. Если она соединена кабелем с ноутбуком, проследите за его целостностью. Затем найдите и отверните держащие клавишную панель винты. Обычно это два - пять расположенных в верхней ее части винтов.
Прежде чем снимать клавиатуру, опять же обратите внимание на ее заднюю часть, там она может быть соединена с кабелем передачи данных, который соединен с самим компьютером. Этот шлейф также, обычно не имеет слабины, так что будьте осторожны в работе. Крайне важно избежать его разрыва и разрушения разъема.
Аккуратно снимите клавишную панель и отсоедините кабель для передачи данных, зеркально отраженный маленький фиксатор на разъеме. Отключив шлейф, отложите ее в сторону.
Возьмите новый девайс, выровняйте его (не вставляя), и присоедините кабель для передачи данных к разъему на ноутбуке. Обычно вставив в разъем плоский кабель, насколько он войдет, и защелкнув на нем находящийся в разъеме зеркально отраженный маленький фиксатор. С подсоединенным шлейфом, установите клавиатуру на место. Не тяните и не повредите кабель. Вставьте и заверните держащие устройство винты. Установите на место верхнюю панель. Обычно для этого большого усилия не требуется. Заверните все ранее вывернутые крепящие верхнюю панель винты.
После этого вставьте батарею и загрузите ноутбук. Если вы все сделали правильно, у вас теперь совершенно рабочая клавиатура.
Читайте также: