Схема мыши ps 2. Все разъемы компьютера: цоколёвка и распиновка кабелей, гнёзд и штекеров ПК

Захотел однажды мой товарищ реанимировать пылящийся на полке PII, для установки на него 98-й винды и последующего поиграния в олдовую Worms Armageddon. Но возникла проблема – на старом компьютере разъем для клавиатуры DIN-5 , а клавиатура имеется в наличии PS/2 . Поскольку, в интернетах мануалы по сборке переходника были какие-то корявые, решил написать свой.
Можно, конечно, было решить задачу по-иному, просто подпаяв штекер DIN-5 с «хвостом» к проводу PS/2 клавиатуры, но это показалось ненадежным – вдруг клавиатура сломается. Поэтому будем делать переходник.
Требуется уточнить, что клавиатуры с разъемом DIN-5 электрически и логически совместимы с клавиатурами PS/2, т.е. они используют одинаковые напряжения питания и сигналы от PS/2-ных клавиатур для компьютера ничем не отличаются от клавиатур с разъемом DIN-5. Посему задача сводится лишь к тому, чтобы все правильно собрать и припаять соответствующие контакты штекера DIN-5 (папа), который втыкается в нашу материнку, к гнезду PS/2, куда будет подключаться PS/2-я клавиатура.

Итак, требуемые компоненты

1. Прямые руки
2. Паяльник или паяльная станция
3. Штекер DIN-5 (папа) и соединительные провода.
4. Гнездо PS/2 (мама)

Где взять первые 2 компонента – разбирайтесь сами. :)
Штекер DIN-5 можно взять от старой неработающей клавиатуры, также он может встретиться в магазинах музыкальных товаров. Коннекторы DIN-5 до сих пор используются для коммутации аудиооборудования. Можно также заказать штекер через Интернет, например, .

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

PS/2 разъем можно выпаять со старой материнской платы. Правда, без паяльной станции, операция выпаивания может оказаться весьма геморройной (мы так одно гнездо в процессе убили), поэтому второе гнездо было, не мудрствуя лукаво, выпилено ножовкой прямо с куском материнской платы. Была б паяльная станция – сделали бы аккуратнее. PS/2 разъем, впрочем, также можно заказать через Интернет или купить в магазине электронных товаров и запчастей.

Внешний вид коннектора и гнезда
Коннектор DIN-5:

Гнездо PS/2:

Собственно распайка

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

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

Нет, зачем же, выход есть - её надо переделать под разъём USB.

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

А назначение проводов USB-разъёма, ориентируясь по цвету и номерам, следующее:

1. красный - питание, 5 Вольт,
2. белый (серый) (D-) - передает данные от компьютера к мышке,
3. зеленый - передает данные с мышки на компьютер (D+),
4. черный - заземление (корпус).

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

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




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

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

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

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

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

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

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

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

Чтобы напечатать текст вертикально или под любым нужным углом в word. Нужно выполнить несколько простых шагов. Рассмотрим один из вариантов при помощи таблицы. Заходим в раздел «вставка» далее «таблица», выбираем нужное количество столбцов и строк. Щелкаем правой кнопкой мыши по ячейки, выбираем пункт «направление текста». Выбираем направление текста. Чтобы границы таблицы сделать невидимыми, нажмите на …

Чтобы включить в excel написание текста вертикально или текст в excel под любым углом (применимо к excel 2003, 2007, 2010, 2013, 2016), нужно выполнить несколько несложных шагов. Выделяем ячейки в которых будем задавать направление текста. Кликаем правой кнопкой мыши по выделенным ячейкам, в контекстном меню нажимаем на пункт «формат ячеек» далее в открывшемся окне выбираем …

В сегодняшней статье пойдет речь о том как запустить БП (Блок Питания) Вашего компьютера без участия системной (материнской) платы, т.е запуск будет происходить автономно. Все ныне выпускаемые блоки питания можно запускать с помощью обычной скрепки или кусочка провода! Для этого нам понадобятся: Блок питания (БП), нет необходимости вытаскивать его из компьютера, достаточно вытащить самый большой …

Итак, после включения компьютера/ ноутбука имеем надпись «BOOTMGR is missing Press Ctrl+Alt+Del to restart«. Как правило такая ошибка возникает после экспериментов с разделами жесткого диска. Решение проблемы будет рассматриваться на примере Windows 7. Для устранения этой ошибки необходимо вставить диск с вашей операционной системой и загрузиться с него. Далее выбираем язык и другие параметры, нажимаем …

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

В данной статье описывается устройство, которое позволяет принимать данные от клавиатуры и отображать нажатые клавиши на устройстве вывода. В качестве примера, мы разработаем простейшее устройство с использованием клавиатуры PS/2, микроконтроллера PIC и семисегментного индикатора.

Идея проекта

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

PS/2 - это последовательный интерфейс с тактовым сигналом 10-16 кГц, поэтому в PIC нам надо использовать прерывания, для детектирования заднего фронта импульсов.

Список используемых радиоэлементов

Микроконтроллер PIC18F452 (даташит)
7805 - пятивольтовый регулятор напряжения
Кварцевый резонатор 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):
1 - Данные
2 - Не используется
3 - Общий (земля)
4 - Питание (+5V)
5 - Тактовый сигнал
6 - Не используется

На рисунке выше показана распиновка 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 и др. Но не будем на этом зацикливаться, т.к. это тема другой статьи.

Собранная схема на макетной плате выглядит следующим образом:

Программа для PIC

ПО состоит из двух основных частей: главный цикл 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 = 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 и т.п., т.к. на семисегментном индикаторе сделать это не реально.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
МК PIC 8-бит

PIC18F4520

1 В блокнот
Линейный регулятор

LM7805

1 В блокнот
Электролитический конденсатор 47 мкФ 1 В блокнот
Резистор

330 Ом

7 В блокнот
Кварц 20 МГц 1