Imagem 1 - Conector PS/2 para teclado (cor roxa) e conector PS/2 para mouse (cr verde)
Este é o primeiro artigo com o detalhamento de cada interface presente no chip Super I/O. A primeira será a interface PS/2, utilizada para conectar mouse e teclado a placa-mãe.
Os conectores PS/2 foram lançados em 1987 no computador da IBM cujo nome é Personal System/2. Eles se tornaram padrão da indústria para conectar mouse e teclado ao computador e ainda é possível encontrar pelo menos 1 destes conectores em placas-mãe atuais (artigo escrito em 2018).
Os conectores PS/2 são do tipo Mini DIN 45322 e são os substitutos dos mouses com interface RS-232 e também dos teclados com conector DIN 41524 de 5 pinos, que eram utilizados nos computadores IBM PC/AT e nas placas-mãe de fator-forma AT.
CURIOSIDADE: É muito interessante conhecer o funcionamento da interface de comunicação que utilizava o conector DIN 41524, e caso queira conhece-la em detalhes, CLIQUE AQUI! Você verá que os antigos teclados utilizavam um protocolo de comunicação idêntico ao da interface PS/2.
Mas porque há dois conectores com cores diferentes, sendo um para teclado e outro para o mouse?
O mouse PS/2 é conectado a porta verde e possui um conjunto de comandos que devem ser tratados por um controlador, já o teclado é conectado a porta roxa e possui outro conjunto de comandos, completamente diferente e que deve ser tratado por outro controlador apropriado para tal função.
Devido a utilização de interfaces melhores e mais atuais, como por exemplo, a USB, o Wi-Fi e o Bluetooth, as fabricantes de placas-mãe atuais vem utilizando apenas um conector, onde pode ser colocado tanto um mouse quanto um teclado. Veja abaixo, a imagem de um conector deste:
Imagem 2 - Conector PS/2 híbrido
No circuito, as duas portas PS/2 são ligadas ao Super I/O (e em alguns casos diretamente no chipset Ponte Sul, que também tem um Super I/O integrado) que possui dois controladores, um para o mouse e outro para o teclado.
Nas placas que possuem apenas um conector PS/2 ele é ligado tanto no controlador do Super I/O que processa o sinal vindo o mouse quanto o controlador que processa o sinal vindo do teclado. Quando um mouse PS/2 estiver conectado, o controlador para os sinais do teclado não entende os comandos e os ignora e quando um teclado for conectado, o controlador para os sinais do mouse não entende os comandos e os ignora.
Veja abaixo, a pinagem do conector PS/2 para mouse e para teclado:
Tabela 1 - Pinagem do conector Mini DIN 45322 da interface PS/2
Como você pode ver, em cada conector há apenas:
-> Uma linha de dados half-duplex (canal que serve tanto para enviar quanto para receber informações);
-> Uma linha para sinal de clock, que fica entre 10 e 16,7 kHz, servindo para sincronizar os transmissores;
-> E o polo positivo e negativo de energia para alimentar o periférico.
Dois pinos nunca foram utilizados, pois serviram como uma "reserva" para incrementar tecnologias no futuro sem que um novo conector precisasse ser criado.
Um mouse ou teclado PS/2 deve puxar no máximo 275 miliAmpéres á 5 Volts do host em que ele está conectado.
A interface não possui a tecnologia Hot-Plug, ou seja, você não pode conectar um mouse ou teclado com o computador ligado. Isso acontece pois estas interfaces são primitivas, e na época não havia tecnologias de reconhecimento instantâneo do dispositivo e nem um "controle perfeito" de energia nas portas, o que poderia gerar um surto de corrente e danos no periférico, bem como no controlador presente no Super I/O.
Atualmente, com a evolução de tecnologia e a utilização de Polyfuses (não requerem substituição), um mouse ou teclado pode ser conectado ou desconectado com o PC ligado (em algumas placas) com menos riscos de danos, mas mesmo assim não é aconselhável.
Para saber mais sobre o Polyfuse recomendo a leitura do artigo "Capítulo Excepcional: Fusível, Termofusível, Fusistor e PPTC", pois no tópico "PPTC" há a explicação exata sobre este componente que atua protegendo o circuito de surtos de corrente.
Devido o PS/2 ser um padrão da indústria, os circuitos presentes nestas interfaces são padronizados, possuindo poucas diferenças de um modelo placa para outro. Selecionamos 4 esquemas elétricos de portas PS/2 para que você entenda melhor como o conector é ligado ao Super I/O da placa-mãe. Veja as imagens abaixo:
Diagrama 1 - Esquema elétrico dos conectores PS/2 da placa-mãe GBT GA-M61PM S2 Rev.: 1.00
Diagrama 2 - Esquema elétrico dos conectores PS/2 da placa-mãe GBT GA-60XT
Diagrama 3 - Esquema elétrico dos conectores PS/2 da placa-mãe MSi MS 7054 Rev.: 0A.
Perceba que neste diagrama da MSi há indutores no lugar dos resistores. Como eu disse existe um padrão, mas que pode ser alterado, melhorado, enfim, desde que não se perca a compatibilidade com dispositivos.
Diagrama 4 - Esquema elétrico dos conectores PS/2 da placa-mãe GBT GA-8VM800M
Perceba que exceto o Diagrama 3, em todos os outros diagramas há um Fusível Poly ligado no positivo de alimentação (VCC) da porta. A linha de dados e clock de ambas as portas são ligadas em resistores de Pull-Up, que por sua vez também estão ligados a um Polyfuse.
A comunicação entre periférico e host acontece da seguinte maneira:
Quem gera o sinal de clock é o periférico, portanto, para que o host envie algo, ele deve primeiramente levar o sinal de clock a nível LOW (baixo) por 100 microSegundos e na sequência puxar a linha de dados também em nível LOW e no mesmo instante levar a linha de clock para HIGH. A partir disso, o host pode enviar comandos ao periférico.
Abaixo, eu resumo os sinais de comunicação:
-> Linha de dados = HIGH e linha de clock = HIGH significa que o canal está ocioso;
-> Linha de dados = HIGH e linha de clock = LOW significa que a comunicação foi inibida;
-> Linha de dados = LOW e linha de clock = HIGH significa que o host está pedindo para enviar.
A comunicação é feita transmitindo 1 Byte (conjunto de 8 bits) de cada vez. Neste Byte é acrescentado o START bit e o STOP bit, além do bit de paridade. No caso da comunicação do host com o periférico há ainda o bit de confirmação "ACK".
"ACK" significa Acknowledge, e sempre que o host envia um dado, o periférico envia este bit para confirmar o recebimento.
Veja abaixo, o desenho de uma transmissão de 8 bits do periférico para o host:
Gráfico 1
Agora veja o envio de 1 Byte do host para o periférico:
Gráfico 2
O START bit é sempre nível LOW, pois o estado ocioso é sempre HIGH, já o STOP bit é sempre nível HIGH, indicando retorno ao estado ocioso.
O bit "ACK" é a confirmação de que o periférico recebeu o dado do host e o bit "P" é o valor de paridade para que seja efetuado o calculo que indica ou não um erro no dado transmitido. Caso haja erro no dado transmitido, o dispositivo que recebeu o dado entende como "comando inválido" e manda o comando de pedido de reenvio do dado.
Caso mais de um Byte precise ser enviado, o sinal de clock permanece e após o STOP bit é dado outro START bit. No caso do envio do host para o periférico, após o "ACK" o sinal de clock continua e o START bit é dado novamente. Para o host anular a transferência, ele deve manter o clock em nível LOW por 100 microSegundos antes que seja dado o STOP bit.
O valor de tensão para os pulsos de nível LOW pode variar dentro da faixa de 0,0 Volts e 0,7 Volts. Já para os pulsos de nível HIGH, o sinal elétrico pode variar dentro da faixa de 2,4 e 5,25 Volts.
CURIOSIDADE: A leitura dos bits no host é feita a partir da borda descendente do sinal de clock, enquanto a leitura do sinal recebido pelo periférico é feita na borda ascendente do pulso de clock.
CURIOSIDADE: Quando você liga seu PC, os três LED's verdes presentes na maioria dos teclados piscam uma ou mais vezes, indicando que está tudo bem com o PC. Isso só acontece pois o host faz um teste no hardware, e se estiver tudo funcionando ele manda um comando para o teclado pedindo para que ele ascenda os LEDs.
Para encerrar o assunto:
CURIOSIDADE: Na Imagem 1 e na Imagem 2 é possível perceber que a estrutura de cor roxa / verde do conector PS/2 é um plástico, mais especificamente LCP, sigla para Liquid Crystal Polymer, um material muito utilizado em slot's e conectores de placas de circuito devido a sua boa rigidez dielétrica e resistência a altas temperaturas. Para saber mais sobre polímeros, CLIQUE AQUI!
Nos próximos artigos é explicado o funcionamento das interfaces RS-232 e LPT, além de várias outras funções do Super I/O.
Se acha que falta alguma coisa ou ficou com alguma dúvida, mande suas palavras para hardwarecentrallr@gmail.com. Não se esqueça de curtir e compartilhar nas redes sociais!
FONTES e CRÉDITOS:
Texto, imagens e gráficos: Leonardo Ritter
Fontes: Pinouts.ru; Computer Engineering; HardwareBook; Wikipedia (somente artigos com fontes verificadas!); Beyond Logic; Biblioteca do Hardware Central.
Última atualização: 17 de Abril de 2022.