Por que um mouse precisa de um cristal?

22

Eu estava olhando este esquema para um mouse antigo (pré USB):

insira a descrição da imagem aqui

quando notei que tinha um cristal nele (Y1). Fiquei curioso por que um mouse precisaria de um timer? Não seria capaz de usar o relógio do computador? Além disso, se ele tem seu próprio cristal, não pode ficar fora de sincronia com o relógio da CPU?

Tyler H
fonte
1
De onde você tirou esse esquema? Existem alguns erros: por exemplo, a polaridade dos fotodiodos é invertida.
Coalhada
1
@curd o esquema veio aqui: commodore.ca/manuals/funet/cbm/schematics/misc/index.html
Tyler H
7
Talvez o "cristal" seja na realidade apenas um ressonador de cerâmica. BTW: Por que você espera que não haja geração de relógio dentro de um mouse? É provável que existam vários subcircuitos dentro do computador, talvez até na placa-mãe, que tenham sua própria geração de clock (osciladores de cristal).
Coalhada
4
Como a resposta da @OlinLathrop diz, o MCU do mouse não está tentando estar sincronizado com o microprocessador do sistema host (MCU). O MCU do mouse só quer estar sincronizado com a porta de comunicação, seja USB, RS232C ou qualquer outra coisa.
TonyM
5
No seu link, parece que este mouse foi projetado para falsificar um joystick. Se a interface do joystick não foi projetada para ter um sinal de relógio, não há sinal de relógio disponível para o mouse usar.
The Photon

Respostas:

25

Essa coisa do MOS 5717 provavelmente é um microcontrolador ou alguma parte que executa código. Precisa de um relógio para funcionar.

No entanto, apenas um relógio para um micro não precisa de precisão de cristal. Provavelmente é para comunicação. O USB requer um relógio de alta precisão.

Um mouse não precisa rastrear em tempo real e não há motivo para estar sincronizado com o relógio da CPU. Seu relógio USB deve estar próximo o suficiente do relógio USB do host para que a comunicação funcione. Tempo sobre a rapidez com que os eventos do mouse estão ocorrendo ou o tempo entre os eventos do mouse é tratado no host. O mouse apenas envia informações sobre o que sente acontecer.

Adicionado

O texto acima foi escrito em resposta à pergunta original, que não mencionava o mouse como USB. Como praticamente todos os novos mouses são USB há uma década ou mais, era razoável responder nesse contexto. Quando você pergunta sobre algo incomum, é sua responsabilidade deixar isso claro.

Apesar de não ter USB, este mouse ainda tinha um processador que precisava ser monitorado. Aparentemente, também usou o timing para medir as posições dos potes conectados a um joystick, outra coisa que o OP não mencionou. Parece agora que um comentário de supercat é mais relevante, por isso estou copiando-o na resposta:

O Commodore 64 possui entradas de potenciômetro que medem o tempo necessário para carregar capacitores fixos através de resistências variáveis. O software espera que um mouse leia como um valor de resistência no intervalo de 0 a 255, e que encapsule de forma limpa 254, 255, 0, 1 etc., o que significa que o mouse precisa cronometrar com precisão seus pulsos de saída para menos de 0,4 %
Olin Lathrop
fonte
1
@ user2417339 Porque o relógio da CPU não é suficientemente preciso. O cristal de fornecer essa precisão falta ao sistema
M.Ferru
9
O ponto é que, para USB, ambas as extremidades devem ter um relógio razoavelmente preciso. Portanto, o mouse precisa de um cristal para fazer o USB funcionar. Por que não usar o relógio do PC host? A resposta curta é que o USB não fornece ao dispositivo uma cópia do relógio do host. Por que não é meio complicado - muitas coisas diferentes estavam sendo trocadas entre si quando as especificações USB foram escritas, e isso se perdeu.
Jack B
2
Downvoter, por favor, explique o que você acha que está errado.
Olin Lathrop
3
@OlinLathrop: O Commodore 64 possui entradas de potenciômetro que medem o tempo necessário para carregar capacitores fixos através de resistências variáveis. O software espera que um mouse leia como um valor de resistência no intervalo de 0 a 255, e que encapsule de maneira limpa 254, 255, 0, 1, etc., o que significa que o mouse precisa cronometrar com precisão seus pulsos de saída para menos de 0,4 %
Supercat
2
@ Jerry: A maioria deles são apenas fios, com a única informação sendo a cor do isolamento. Imaginei que dois deles seriam as linhas USB D + e D-, com outros indo para os botões do mouse, talvez indicadores LED ou qualquer outra coisa extravagante que este mouse possa estar fazendo além de ser apenas um mouse.
Olin Lathrop
21

O MOS 5717 tem bastante trabalho independente a ser feito para criar a funcionalidade do mouse a partir de um conjunto de codificadores ópticos.

A descrição da folha de dados indica o melhor como,

O 5717 é um controlador de mouse CMOS personalizado para o Commodore 64. Ele será alojado no corpo de um mouse de dois botões, permitindo que ele seja conectado à porta do joystick 64 e forneça o controle do mouse do software GEOS, etc. Ele alcança a função do mouse aterrando as linhas POTX e POTY do chip SID em vários momentos do ciclo do SID 512uS para fornecer ao 64 informações posicionais.

Antes que os ADCs pudessem adicionar praticamente qualquer IC, a interface SID usava o tempo de carga / descarga criado com o potenciômetro e um capacitor de integração de entrada para estimar o valor do 'pot'. O 5717 emula um potenciômetro com saídas digitais, controlando o tempo do sinal nas linhas POT.

sstobbe
fonte
3
Coloque a folha de dados na máquina wayback apenas por precaução. web.archive.org/web/99991232235959/http://…
Oskar Skog
4

Você pode ver esse oscilador em muitos dispositivos eletrônicos hoje em dia. Um microcontrolador executa a operação a cada tick. Para controlar e entender o que o µC está fazendo, você precisa de um relógio preciso. A maioria dos µC possui um relógio construído, mas não é muito preciso .

Como disse @Olin Lathrop, este relógio preciso é necessário eventualmente para o protocolo USB ou, para fazer algumas medições periodicamente ...

M.Ferru
fonte
3

Outras respostas cobriram o que o micro dentro do mouse precisa de um relógio. No entanto, eles não cobriram as partes mais importantes da questão: -

Não seria capaz de usar o relógio do computador?

A primeira coisa a observar é que o computador não está dando um relógio. Se não houver um para usar, você não poderá usá-lo. A menos que você deseje configurar um conector personalizado, é claro - mas você precisa convencer todos os seus clientes em potencial a modificar manualmente seus computadores. A menos que seus clientes sejam especialistas em eletrônica extremamente exigentes, isso não será uma estratégia de negócios bem-sucedida!

Mais importante ainda é a questão de por queo computador não está dando um relógio. Para que o relógio seja rápido o suficiente para executar o micro no mouse, ele precisa ser bem rápido - algumas centenas de kHz é o mínimo absoluto, e mais normalmente você está em MHz para micros muito antigos. O 5717 aparentemente esperava um relógio de 4 MHz. O problema aqui é que, a menos que você tenha muito cuidado com a construção do cabo, a fonte e o afundamento do sinal e todos os aspectos interessantes associados às comunicações digitais rápidas, o que você cria quando coloca 4 MHz em um cabo é um transmissor de rádio. É absolutamente possível fazer isso bem sem transmitir para o mundo - USB, DVI e HDMI conseguem enviar dados digitais a altas taxas - mas não é de forma alguma direta. Portanto, as pessoas geralmente não enviam relógios por cabos longos, a menos que tenham um bom motivo para fazê-lo.

Além disso, se ele tem seu próprio cristal, não poderia ficar fora de sincronia com o relógio da CPU?

Você está absolutamente certo de que, se o mouse produz dados que a CPU precisa ler de forma síncrona, então o mouse precisará do relógio da CPU. (Na verdade, você pode se dar bem com um relógio síncrono mais lento e se multiplicar na outra extremidade, mas vamos esquecer isso por enquanto, por simplicidade.) Então, é isso?

Mais uma vez, olhando para o sistema, a resposta é claramente "não". O 5717 altera sua resistência à medida que o usuário move o mouse. O usuário não moverá o mouse tão rápido, e poderá movê-lo sempre que quiser, portanto, não há necessidade de sincronizar o relógio. Na pior das hipóteses, a resistência muda parcialmente durante a leitura da CPU e a CPU obtém o valor mais baixo ou o valor mais alto. Na próxima vez, a resistência permanece estável e a CPU obtém o valor final. Como o mouse está se movendo apenas na velocidade da mão do usuário, ninguém se importa muito com uma amostra mais ou menos para chegar ao valor final.

Portanto, para responder suas perguntas na ordem inversa:

  • Não importa se está fora de sincronia com o relógio da CPU.
  • Existem boas razões técnicas para não enviar o clock da CPU por um fio, a menos que seja absolutamente necessário e, nesse caso, não é o caso.
Graham
fonte
Mesmo com interfaces modernas, sugere-se afastar a eletrônica digital do equipamento de RF . (Nesse caso em particular, mantendo alguma separação entre um hub USB e um transceptor de rádio amador.)
um CVn