我在看这张旧鼠标(原USB鼠标)的原理图:
当我注意到它上面有一个水晶(Y1)时。我很好奇为什么鼠标需要计时器?它不能使用计算机上的时钟吗?另外,如果它有自己的晶体,会不会与CPU时钟不同步?
我在看这张旧鼠标(原USB鼠标)的原理图:
当我注意到它上面有一个水晶(Y1)时。我很好奇为什么鼠标需要计时器?它不能使用计算机上的时钟吗?另外,如果它有自己的晶体,会不会与CPU时钟不同步?
Answers:
MOS 5717很可能是微控制器或执行代码的某些部分。它需要一个时钟才能运行。
但是,仅需一个微型时钟就无需晶体精度。那可能是为了交流。USB需要相当高精度的时钟。
鼠标不需要跟踪实时,也没有理由使其与CPU时钟同步。它的USB时钟必须与主机的USB时钟相距足够近,才能进行通信。在主机中处理鼠标事件发生的时间或鼠标事件之间的时间。鼠标只是发送有关其感觉发生的信息。
以上是针对最初的问题而写的,该问题未提及该鼠标不是USB。由于几乎所有新鼠标都已经使用USB了十年或更长时间,因此在这种情况下进行回答是合理的。当您询问不寻常的事情时,您有责任弄清楚这一点。
尽管没有USB,但此鼠标仍具有需要时钟的处理器。显然,它还使用计时来测量连接到操纵杆的电位器的位置,OP对此没有提及。现在看来,超级猫的评论最相关,因此我将其复制到答案中:
Commodore 64具有电位计输入,该电位计测量通过可变电阻为固定电容器充电所需的时间。软件期望鼠标将电阻值读取为0-255的范围,并且干净地包裹254、255、0、1等。这意味着鼠标必须将其输出脉冲准确地计时到小于0.4的范围内%
MOS 5717可以独立完成大量工作,以通过一组光学编码器创建鼠标功能。
数据表中的描述说的是最好的,
5717是用于Commodore 64的定制CMOS鼠标控制器。它将安装在两个按钮的鼠标主体中,使其能够插入64游戏杆端口并提供对GEOS软件等的鼠标控制。它通过在SID 512uS周期中的不同时间将SID芯片的POTX和POTY线接地来实现鼠标功能,从而为64位提供位置信息。
在ADC可以自由添加到几乎任何IC之前,SID接口使用电位计和输入积分电容器创建的充电/放电时间来估算“电位器”值。5717通过控制POT线上的信号时序来模拟具有数字输出的电位计。
其他答案涵盖了鼠标内部的微型时钟需要做什么。但是,他们还没有涵盖问题的最重要部分:
它不能使用计算机上的时钟吗?
首先要注意的是计算机没有给它计时。如果没有人可以使用,则无法使用。当然,除非您要设置自定义连接器,否则您必须说服所有潜在客户手动修改他们的计算机。除非您的客户都是非常顽固的电子专家,否则这将不是成功的商业策略!
但是更重要的是为什么电脑没有给它计时。为了使时钟足够快以在鼠标中运行微型计算机,它必须非常快-绝对最小为几百kHz,更通常的情况是,对于非常老的微型计算机,您都可以达到MHz。5717显然期望使用4MHz时钟。这里的问题是,除非您对电缆的结构,信号源和信号下沉以及快速数字通信的所有相关有趣方面都非常小心,否则将电缆放下4MHz时所产生的就是无线电发射机。完全可以做到这一点,而无需向全世界广播-USB,DVI和HDMI设法以高速率发送数字数据-但这绝非易事。因此,除非有充分的理由,否则人们通常不会使用长电缆发送时钟。
此外,如果它具有自己的晶体,它是否会与CPU时钟不同步?
完全正确,如果鼠标产生的数据必须由CPU同步读取,则鼠标将需要CPU时钟。(实际上,您可以使用较慢的同步时钟来实现,并在另一端进行倍增,但是为了简单起见,暂时不要忘记这一点。)那么,是吗?
再次,从系统的角度来看,答案显然是“否”。5717在用户移动鼠标时改变其阻力。用户不会以如此快的速度移动鼠标,并且用户可以随时随地移动鼠标,因此不需要时钟同步。最坏的情况是,电阻在读取CPU的途中会发生变化,并且CPU会获得较低的值或较高的值。下次,电阻保持稳定,CPU获得最终值。由于鼠标仅以用户的手的速度移动,因此没有人会在乎或多或少地关心一个样本以达到最终值。
因此,以相反的顺序回答您的问题: