PS/2 (порт)

от Уикипедия, свободната енциклопедия
Вижте пояснителната страница за други значения на PS/2.

PS/2 порт е 6-пинов mini-DIN конектор използван за свързване на клавиатури и мишки в съвместима компютърна система. Името му идва от IBM Personal System/2 серия от персонални компютри (PC), със която е представен през 1987. PS/2 конектора за мишки заменя по старият DE-9 RS-232 „серийна мишка“ конектор, докато PS/2 конектора за клавиатура заменя по-големия 5-пинов/180° DIN конектор в на IBM PC/AT дизайна. PS/2 портът за клавиатъра е електрически и логически идентичен с IBM AT портът за клавиатура, различаващ се само във вида на използвания електрически конектор. PS/2 платформата представя втори порт със същия дизайн, като този за клавиатура, но за свързване на мишка; по този начин интерфейсите на клавиатурата и мишката в стил PS/2 са електрически сходни и използват същия комуникационен протокол. Въпреки това, за разлика от подобния Apple Desktop Bus конектор използван от Apple, портът на клавиатурата и мишката на дадена система може да не е взаимозаменяем, тъй като двете устройства използват различни команди и драйвърите на устройства обикновено са твърдо кодирани за комуникация с всяко устройство на адреса на порта, който е конвенционално упълномощен на това устройство. (драйверите на клавиатурата са написани да използват първия порт, а драйверите на мишката са написани да използват втория порт.)

PS/2 портовете за клавиатура(синьо) и мишка(зелено)

Комуникационен протокол[редактиране | редактиране на кода]

Всеки порт реализира двупосочен синхронен сериен канал. Каналът е леко асиметричен: той благоприятства предаването от входното устройство към компютъра. Двупосочният интерфейс на клавиатурата IBM AT и PS/2 е разработка на еднопосочния интерфейс на клавиатурата на IBM PC, използващ същите сигнални линии, но добавящ възможност за изпращане на данни обратно към клавиатурата от компютъра; което обяснява асиметрията.

Интерфейсът има две главни сигнални линии, Data и Clock. Това са единични сигнали, задвижвани от драйвери с отворен колектор от всеки край. Нормално, трансмисията е от устройството до хоста. За да предаде байт, устройството просто извежда serial frame от данни (включително 8 бита данни) в Data линията последователно, тъй като превключва Clock линията веднъж за всеки бит. Хостът контролира посоката на комуникацията използвайки Clock линията; когато хостът го издърпа, комуникацията от свързаното устройство се възпрепятства. Хостът може да прекъсне устройството, като държи Clock ниско, докато устройството предава; устройството може да открие това, като Clock остава нисък, когато устройството го пусне, за да се издигне, докато генерираният от устройството Clock сигнал превключва. Когато хостът държи Clock ниско, устройството трябва незабавно да спре предаването и да освободи Clock и Data да се издигнат. (Засега всичко това е същото като еднопосочния комуникационен протокол на клавиатурния порт на IBM PC, въпреки че форматите на серийния кадър се различават.) Хостът може да използва това състояние на интерфейса просто за да попречи на устройството да предава, когато хостът не е готов за приемане. (За клавиатурния порт на IBM PC това беше единственото нормално използване на сигнализиране от компютъра към клавиатурата. Клавиатурата не можеше да получи команда да препредава кода за сканиране на клавиатурата след изпращането ѝ, тъй като нямаше обратен канал за данни за пренасяне команди към клавиатурата, така че единственият начин да избегнете загуба на кодове за сканиране, когато компютърът беше твърде зает, за да ги получи, беше да попречите на клавиатурата да ги изпраща, докато компютърът не е готов. Този режим на работа все още е опция в IBM AT и PS/2 порт за клавиатура.)

За да изпрати байт от данни обратно към устройството, хостът държи Clock ниско, изчаква за кратко, издърпва данните ниско и освобождава отново Clock линията. След това устройството генерира Clock сигнал, докато хостът извежда кадър от битовете по Data линията, по един бит на Clock импулс, подобно на това, което свързаното устройство би направило, за да предаде в другата посока. Въпреки това, докато предаването от устройство към хост чете битове по падащите Clock edges, предаването в другата посока чете битове по нарастващите edges. След data byte-а, хостът освобождава Data линията и устройството ще държи Data линията ниско, за един Clock период, за да индикира успешен прием. Клавиатурата обикновено интерпретира получения байт като команда или параметър за предходна команда. Устройството няма да се опита да предава към хоста, докато Clock и Data не са били високо за минимален период от време.

Предаването от устройството към хоста е предпочитано, тъй като от нормалното състояние на неактивност устройството не трябва да изземва канала, преди да може да предава – устройството просто започва да предава незабавно. Обратно, хостът трябва да изземе канала, като издърпа първо Clock линията и след това Data линията ниско и изчака устройството да има време да освободи канала и да се подготви за приемане; едва тогава хостът може да започне да предава данни.