Клавиатура является самым распространенным устройством для ввода информации в компьютер. Поэтому важно знать принцип работы и интерфейс связи клавиатуры.
В данной статье описывается устройство, которое позволяет принимать данные от клавиатуры и отображать нажатые клавиши на устройстве вывода. В качестве примера, мы разработаем простейшее устройство с использованием клавиатуры PS/2, микроконтроллера PIC и семисегментного индикатора.
Идея:
Главной целью данного проекта является создание устройства, способного работать с PS/2 девайсами, а конкретно с PS/2 клавиатурой. Клавиатура будет подключена к микроконтроллеру PIC, который в свою очередь будет обрабатывать коды нажатых клавиш и выводить символы клавиш на семисегментный индикатор. PS/2 - это последовательный интерфейс с тактовым сигналом 10-16 кГц, поэтому в PIC нам надо использовать прерывания, для детектирования заднего фронта импульсов.
Список используемых радиоэлементов:
- Микроконтроллер
- - пятивольтовый регулятор напряжения
- Кварцевый резонатор 20 МГц
- PS/2 коннектор (мама)
- 7-ми сегментный индикатор
- Резисторы
- Дополнительно, потребуется программатор для прошивки PIC, макетная плата и перемычки (ну или протравленная печатная плата).
Схемотехника:
Как видно из принципиальной схемы ниже, устройство очень простое и основные детали это: 78L05, PIC18F452 и PS/2 разъем.
В разъеме PS/2 пины 2 и 6 не используются, 4-ый пин - питание +5В, 3-ий пин - общий. 5-ый пин - тактовый сигнал, а 1-ый пин - данные. 7-ми сегментный индикатор я использовал с общим катодом.
Немного теории о PS/2:
Как уже было сказано выше, в PS/2 используется последовательный протокол передачи информации с двумя линиями: тактовый сигнал и линия данных.
Назначение выводов 6-pin Mini-DIN (PS/2):
- Данные
- Не используется
- Общий (земля)
- Питание (+5V)
- Тактовый сигнал
- Не используется
На рисунке выше показана распиновка PS/2 разъемов папа (слева) и мама (справа). Обычно, разъем типа "папа" используется на стороне устройства - мышь, клавиатура, а разъем типа "мама" на компьютере. В нашем случае (т.к. у нас приемная сторона) мы будет использовать коннектор типа "мама" (можно вырезать с какой-нибудь сгоревшей материнской платы).
Диаграмма сигналов PS/2:
На рисунке выше показана стандартная временная диаграмма выходных данных для PS/2 устройств. Последовательность следующая:
1. Вывод данных устанавливается в низкий логический уровень
2. Вывод тактового сигнала устанавливается в низкий уровень
3. Вывод данных продолжает находиться в низком уровне (стартовый бит)
4. Тактовый сигнал переходит в высокий логический уровень
5. Начинается передача восьми битов с данными
6. Далее идет бит контроля четности
7. А за ним стоповый бит
Все данные принимаются по спаду положительного синхроимпульса.
Скан-коды клавиш:
Каждая клавиша клавиатуры содержит свой уникальный код, т.н. скан-код.
Как видно из картинок выше, большинство клавиш клавиатуры содержит 8-ми битные значения (1 байт), однако некоторые клавиши, содержат многобайтовую последовательность.
Рассмотрим пример того, как происходит формирование скан-кодов клавиш. Если на клавиатуре нажимается какая-либо клавиша, то на выходе клавиатуры появляется скан-код нажатой клавишы. Когда клавиша отжимается, то на выходе формируется код 0xF0 и скан-код отжатой клавиши. Т.о. можно определить удерживается ли клавиша нажатой или нет, но нам это пока что не нужно.
На рисунке выше приведена осциллограмма PS/2 при нажатой клавиши "J". Канал 1 (желтый) на осциллограмме это таковый сигнал. Канал 2 (голубой) это сигнал данных. Для наглядности, я нанес вспомогательные линии для детектирования спада синхросигнала.
При данной осциллограмме легко можно определить скан-код нажатой клавиши. Не забываем, что слева находится младший бит (т.е. 0), а справа старший (7 бит). Т.о. в двоичном коде получилось 0011 1011, что в шестнадцатеричном является 0x3B, т.е. это скан-код клавиши "J".
Передача данных в клавиатуру:
Другой функцией PS/2 протокола является передача данных обратно в клавиатуру, к примеру можно подать команду на включение/отключение светодиода Caps Lock, Num Lock и др. Но не будем на этом зацикливаться, т.к. это тема другой статьи.
Собранная схема на макетной плате выглядит следующим образом:
ПО состоит из двух основных частей: главный цикл Main Loop и обработчика прерываний.
В Main Loop происходит прием данных и их обработка для вывода на индикатор. Ну и собственно сам вывод данных.
Часть кода Main Loop:
#include
#include
#include
#include
//7-Segment Display Output
#define number_0 0b01111110
..
...
..
#define letter_a 0b11101110
#define letter_b 0b11111110
..
...
..
void main(void){
TRISC = 0xFF;
TRISD = 0x01;
PORTB = 0x00;
PORTC = 0x00;
//7-Seg LED is Reverse Polarity
PORTD = 0x00 ^ 0xFF;
Delay10KTCYx(10);
INTCON = 0b11000000;
OpenCapture1(C1_EVERY_FALL_EDGE & CAPTURE_INT_ON);
OpenTimer1(TIMER_INT_ON & T1_SOURCE_INT & T1_PS_1_1 & T1_16BIT_RW);
WriteTimer1(0x0000);
while(1)
{
if(buf_ready == 1){
switch(scan_code_buf){
case 0x1C: PORTD = (letter_a ^ 0xFF);
break;
...
....
..
break;
case 0x45: PORTD = (number_0 ^ 0xFF);
break;
case 0x66: PORTD = (delete ^ 0xFF);
break;
default:
break;
}
//Shift Buffer Forward
scan_code_buf = scan_code_buf;
scan_code_buf = scan_code_buf;
scan_code_buf = scan_code_buf;
scan_code_buf = scan_code_buf;
scan_code_buf = scan_code_buf;
scan_code_buf = scan_code_buf;
scan_code_buf_cnt--;
if(scan_code_buf_cnt == 0)
buf_ready = 0;
}
Delay10KTCYx(1);
}
}
Итак, в цикле Main Loop происходит обработка данных, которые поступают в fifo-буфер. В коде, который представлен ниже, происходит прием данных PS/2 по прерыванию, после чего, они помещаются в fifo-буфер. Код 0xF0 игнорируется, нас интересуют только нажатия клавиш. Код прерываний следующий:
Void InterruptHandlerHigh(void) // Declaration of InterruptHandler
{
//Check If TMR1 Interrupt Flag Is Set
if(PIR1bits.CCP1IF){
if(bit_counter < 10){
current_scan_code = current_scan_code >> 1;
current_scan_code += (PORTDbits.RD0*0b10000000000);
bit_counter++;
}
else if(bit_counter == 10){
scan_code_buf=(current_scan_code>>2)&0xFF;
scan_code_buf_cnt++;
buf_ready = 1;
bit_counter = 0;
}
WriteTimer1(0x0000);
//Clear CCP1 Overflow Flag Bit
PIR1bits.CCP1IF = 0;
}
//Check If CCP1 Interrupt Flag Is Set
else if(PIR1bits.TMR1IF){
//Clear Timer1 Overflow Flag Bit
bit_counter = 0;
PIR1bits.TMR1IF = 0;
}
INTCONbits.GIE = 1;
}
Как видно из кода выше, прерывание захвата скан кода и прерывание timer1 используются вместе, чтобы обеспечить "захват" 8-ми бит, т.к. нам не нужны стартовые, стоповые биты и бит контроля четности. Единственное, я не стал отображать такие клавиши как W, N и т.п., т.к. на семисегментном индикаторе сделать это не реально. В архиве по
Факт №1: на современной материнской плате настольного ПК интерфейс PS/2 встречается уже не всегда, а в современных ноутбуках - не встречается вообще.
Факт №2: если USB клавиатура или мышка может быть подключена к разъёму PS/2 простым пассивным переходником, то в обратную сторону такой фокус не проходит.
Как выйти из ситуации, когда нужно подключить старое устройство ввода к USB?
Для этого существуют специальные конвертеры, преобразующие сигнал протокола PS/2 (а фактически - I2C) в USB. Один из таких - сегодня на разборе.
Девайс упакован в простой полиэтиленовый пакет с защёлкой.
После извлечения из пакета его можно расправить во всю длину. Диска с драйверами и ПО в комплекте поставки нет за ненадобностью.
Длина изделия 318 мм по концам разъёмов. Посередине размещается коробочка с преобразователем.
При помощи плоской отвёртки коробочка легко разделяется на две половинки.
Плата преобразователя крупным планом.
На ней размещены микросхема-клякса и SMD конденсатор. Шелкографией нанесены названия контактов, больше никакой информации плата не несёт. Материал её основы - гетинакс.
Для испытания конвертера нашлась клавиатура со встроенным трекболом.
Клавиатура и трекбол объединены общими корпусом и оболочкой интерфейсного кабеля, их электроника совершенно независима.
Факт №3: разъёмы клавиатуры и мыши не взаимозаменяемы!
Подключим разъёмы кабеля к конвертеру.
И подключим сам конвертер к ноутбуку.
Операционная система определяет его как «Составное USB устройство» и ставит драйвер автоматически. После этого клавиатурой и трекболом можно пользоваться.
Но ведь это было слишком просто, не так ли?
Находим в коробке со старым железом мышку.
Вывинчиваем саморез, держащий вместе части корпуса, разбираем мышь и вытаскиваем из неё кабель.
Потом немного думаем, втыкаем кабель обратно в разъём и выпаиваем его из платы.
В той же самой коробке находим тачпад. Как правило, они тоже подключаются по интерфейсу PS/2, о его реализации можно почитать .
Заготавливаем отрезки тонкого провода МГТФ…
… и припаиваем разъём согласно распиновке:
Подключаем конструкцию к ноутбуку, убеждаемся в её работоспособности и роемся в коробке дальше.
Это - тачпад от Dell Latitude CPx.
Довольно мозголомная конструкция, в которой в один шлейф стянуты проводники к тачпаду, трекпоинту, кнопкам, динамикам и микрофону.
Тачпад выпущен фирмой ALPS
По распиновке он отличается от Synaptics.
Паяемся.
Подключаем к ноутбуку и удивляемся чувствительности трекпоинта.
С учётом стоимости готового USB тачпада цена конвертера и несложность подключения к нему сенсора от ноутбука делают вполне оправданной самостоятельную сборку конструкции. Например, вот такой:
Это позволит избавиться от болей в запястье, так как не требуется держать предплечье постоянно закрученным на 90 градусов, как при работе с обычной мышкой.
Вывод: если у Вас завалялся тачпад или проверенная временем механическая клавиатура - это устройство для Вас.
Ноутбук вещь полезная и удобная, но иногда появляется необходимость или просто хочется дополнительно подключить к нему большой монитор и внешнюю клавиатуру, и даже мышь.
Если на ноутбуке не работает клавиатура или несколько клавиш, то такой вариант поможет вам выйти из положения. О том, как к ноутбуку подключить еще один мы с вами уже говорили, а сегодня рассмотрим несколько вариантов подключения внешней клавиатуры.
Начнем с того, что клавиатура может быть проводная, беспроводная и блютуз. К современному ноутбуку можно подключить любую из них, главное знать, как это сделать.
Как подключить проводную USB -клавиатуру к ноутбуку
Берем проводную USB-клавиатуру, находим на ноутбуке разъем USB и подсоединяем оба устройства.
Есть специальные клавиатуры для ноутбуков. Они обычно более компактные и у них имеются специальные клавиши, как и у клавиатуры на ноутбуке и даже тачпад (встроенная мышка).
Обычно сразу после подключения клавиатуры внизу монитора появляется сообщение о её готовности к работе. Если же ноутбук не нашел к ней драйвер, то вам придется установить его самостоятельно.
Для этого необходимо войти в Панель управления компьютера, найти там Диспетчер устройств, найти в нём пункт Клавиатуры , открыть его, кликнуть по надписи Клавиатура правой кнопкой мыши, и выбрать пункт Обновить драйвер .
После переустановки драйвера перезагрузите ноутбук и наслаждайтесь работой на новой клавиатуре.
Как подключить беспроводную USB -клавиатуру к ноутбуку
Еще удобнее использовать беспроводную USB-клавиатуру. Такой клавиатурой можно управлять компьютером даже на расстоянии, и никакие провода не путаются под руками.
В этом случае вам необходимо вставить в клавиатуру батарейки и подключить в USB-разъем ноутбука маленький радиопередатчик, который поставляется вместе с беспроводной USB-клавиатурой.
Как подключить Bluetooth -клавиатуру к ноутбуку
Есть еще один способ подключения клавиатуры – это подключение по Bluetooth. Тем более, что у всех современных ноутбуков Bluetooth уже встроен и никаких дополнительных устройств уже не надо. Но даже, если в вашем ноутбуке нет такой функции, то сам Bluetooth можно купить и подключить в разъем USB. Выглядит он, как маленькая флешка.
У таких клавиатур имеется специальный включатель, который необходимо включить. Хорошо, если с клавиатурой поставляется диск с драйверами, а если его нет, то установка может оказаться очень проблематичной. И проблем таких может быть много, то операционная система не дает это сделать, то марка ноутбука со своими «тараканами», то драйвера не устанавливаются.
Таких причин может быть очень много, поэтому в этой статье я не буду их рассматривать.
Как подключить проводную PS /2 клавиатуру к ноутбуку
Если у вас имеется старая клавиатура с кабелем и разъемом PS/2, то её тоже можно подключить в USB-разъем ноутбука при помощи специального переходника, который продается в компьютерном магазине. Никаких проблем такое подключение не вызывает.
Компьютер - сложная машина. К ней можно подключить множество дополнительных устройств. Например, мышку или клавиатуру. Это крайне важные составляющие, которые позволяют с комфортом работать с операционной системой. Далее будет рассказано о том, как подключить клавиатуру к компьютеру. На самом деле разобраться в этом не так трудно, как кажется. Но пользователи должны знать о некоторых особенностях процесса, так как не всегда удается без проблем подключить клавиатуру к стационарному компьютеру или ноутбуку. Так на что обратить внимание?
Разные модели
Первый и самый главный момент - это определение типа клавиатуры, которая будет подключаться. На сегодняшний день существует несколько моделей данных устройств. От типа выбранной составляющей будет зависеть то, как подключить клавиатуру к компьютеру.
Можно встретить следующие разъемы подключения у клавиатур:
- PS/2;
- Bluetooth.
Так как действовать в том или ином случае? О каких особенностях подключения должен знать каждый пользователь?
Не всегда возможно
Например, иногда получается так, что ту или иную модель клавиатуры нельзя присоединить к компьютеру. Обычно в таком случае подразумевается разъем PS/2. Почему?
Дело все в том, что соответствующее гнездо для подключения имеется только на стационарных компьютерах. У нетбуков, ноутбуков и ультрабуков отсутствуют подобные разъемы. Поэтому подключить соответствующую клавиатуру не получится. Хотя есть некоторые приемы, способные помочь разрешить ситуацию.
Тем не менее, пользователь должен учитывать, что не всегда и не все модели клавиатур подключаются к компьютерам. Иногда причиной отказа соответствующей составляющей от работы становится несоответствие системным требованиям. На них придется обращать внимание до покупки устройства ввода-вывода.
Подключение старых клавиатур
Как подключить клавиатуру к компьютеру? PS/2, например? Подобные клавиатуры считаются старыми. И поэтому некоторые современные пользователи не знают, как действовать.
Чтобы подключить к компьютеру клавиатуру с разъемом PS/2, нужно:
- Найти на задней панели компьютера разъем PS/2. Он представляет круглое отверстие с 6-ю ножками и замочком.
- Вставить провод клавиатуры в соответствующий разъем.
- Включить компьютер или подождать, пока устройство будет обнаружено операционной системой.
Важно учесть, что разъемы для подключения мышки и клавиатуры моделей PS/2 выглядят одинаково. Единственное их отличие друг от друга - разный цвет гнезд. Поэтому важно правильно подключить устройства ввода. Чаще всего около соответствующего гнезда имеется миниатюра клавиатуры. Осуществлять подключение можно как при включенном, так и при выключенном системном блоке.
Через переходник
Как подключить клавиатуру к компьютеру? PS/2 к USB-разъему тоже можно присоединить, но для этого придется постараться. Многие пользователи не видят в этом никакого смысла. Дело в том, что для успешного воплощения задумки в жизнь, необходимо приобрети специальный переходник. На одном его конце будет гнездо PS/2, на другом - USB. Только так можно проделать задуманное.
Как подключить клавиатуру к компьютеру? Если хочется осуществить подключение модели PS/2 через USB, требуется:
- Купить специальный переходник PS/2-USB.
- Надеть переходник на разъем PS/2.
- Найти на компьютере USB-гнездо и воткнуть клавиатуру с переходником в него.
- Включить или перезагрузить операционную систему.
Ничего трудного или особенного нет. После подключения клавиатуры придется немного подождать. Устройство может начать работу не сразу, а спустя несколько минут. Это нормальное явление. В данный период происходит поиск и установка драйверов клавиатуры. Как только соответствующий софт установится, можно пользоваться устройством ввода.
Через USB
Наиболее популярный и распространенный тип клавиатур - это USB. Именно с подобными устройствами пользователи работают чаще всего. Как подключить клавиатуру к компьютеру? Сделать это не так уж и трудно.
Чтобы воспользоваться подключением через USB, пользователь должен:
- Найти на компьютере или ноутбуке USB-разъем. Это прямоугольное гнездо на панели. Их у каждого компьютера несколько.
- Воткнуть в любой из USB-разъемов шнур подключения устройства.
- Включить или перезагрузить компьютер.
Дальше придется подождать установки драйверов. Если автоматическая установка не произошла, необходимо установить соответствующий софт самостоятельно. Он или скачивается с официального сайта производителя клавиатуры, или прилагается комплектом к подключаемому устройству. Установка драйвера занимает всего несколько минут и напоминает инициализацию обычного приложения для ПК.
Без проводов
А как подключить беспроводную клавиатуру к компьютеру? Данный вопрос интересует многих пользователей. Ведь беспроводные компьютерные составляющие появляются в магазинах все чаще и чаще. Ничего трудного в этом нет. Достаточно просто следовать небольшой инструкции.
Итак, как подключить беспроводную клавиатуру к компьютеру? Для этого пользователь должен:
- Вставить аккумулятор в клавиатуру и перевести состояние устройства в режим "Вкл.".
- В USB-разъем воткнуть специальный USB-приемник.
- Установить драйверы для подключаемого оборудования. Можно осуществить данную затею позже. Диск с софтом прилагается в комплекте с клавиатурой.
- Осуществить синхронизацию устройства с компьютером. Для этого нужно зайти в программу, установленной вместе с драйверами, а затем выбрать в появившемся списке соответствующее оборудование.
Это все. На самом деле подключение не такое уж и трудное. В некоторых случаях достаточно просто вставить аккумулятор или батарейки в клавиатуру, затем включить в USB приемник и перезагрузить компьютер. Но есть еще один вариант развития событий.
Без приемника
Это подключение без приемника. Довольно распространенный способ действий. Как подключить беспроводную клавиатуру к компьютеру без USB-приемника?
Для этого пользователю необходимо:
- Вставить аккумулятор в устройство ввода. Иногда для включения нужны батарейки.
- Перевести устройство в режим "Вкл.".
- Включить на компьютере Bluetooth.
- Найти клавиатуру и синхронизировать ее с машиной.
- Подождать установки драйверов. Иногда нужно самостоятельно поставить на компьютер соответствующие программы.
Теперь понятно, как подключить клавиатуру к компьютеру в том или ином случае. Как видите, справиться с поставленной задачей сможет даже начинающий пользователь.