首页 » 科学 » 【聊点儿其余】关于轮询率和最大年夜延迟的关系_鼠标_频率

【聊点儿其余】关于轮询率和最大年夜延迟的关系_鼠标_频率

落叶飘零 2024-12-03 02:57:16 0

扫一扫用手机浏览

文章目录 [+]

最早把稳到这个问题我是想测机器键盘的轮询率,但是找了许久,没找到能够测试的好办法。

缘故原由很大略,目前机器键盘最多的才多少个按键?104、108,对吧?而对付一个轮询率1000Hz及其以上的键盘,你不太可能拥有能够测试出它上限手速……除非你能在1秒钟内按键次数达到1000次以上(这速率恐怕也只有张口就来的键盘侠能够胜任)。

【聊点儿其余】关于轮询率和最大年夜延迟的关系_鼠标_频率 【聊点儿其余】关于轮询率和最大年夜延迟的关系_鼠标_频率 科学

综上,想要测试键盘的轮询率,并没有什么好办法!
但我还是很奇怪,按理说我按住键盘的一个键不动,一贯是触发状态,不应该能测出轮询率吗?为啥弗成?难不成大家都是菜鸡?写不出来测试程序?以是我说这玩意儿是有争议的!
大概姿势不对?

【聊点儿其余】关于轮询率和最大年夜延迟的关系_鼠标_频率 【聊点儿其余】关于轮询率和最大年夜延迟的关系_鼠标_频率 科学
(图片来自网络侵删)

那为什么鼠标和手柄能非常轻松的测出来?好吧,我们还是先把这个放在一边,从轮询率的定义开始阐明吧。

轮询率也叫回报率,它实在指的是输入设备与主机之间的传输数据的频率。

注:输入设备包括鼠标、手柄、键盘等等,如果我没记错,小学、初中、高中的信息技能教材上就有讲,大学打算机根本也有讲这些东西。

或者换句话来讲,轮询率便是输入设备与主机之间的沟通频率,比如1000Hz的轮询率,那便是输入设备每间隔1毫秒和主机通信一次,1秒通信1000次。

以是这个时候,如果我们忽略其他成分,输入设备和主机之间的通信最大延迟 ≈ 1毫秒。
由于传输数据是周期性的,指令要么落在上个1毫秒的区间内,要么落不才个1毫秒的区间内,之后被传送走(指令会落在1毫秒的区间内,然后在这个区间结束下个区间开始的韶光点上被传送走)。

也便是说,在1000Hz轮询率的根本上,不考虑其他成分,最大延迟会无限靠近于1ms,而最小延迟则是会无限趋近于0。
这便是轮询率周期造成的延迟,我们称之为“传输延迟”。
(不考虑其他成分的影响下,此时,“最大延迟” = “传输延迟”)

那针对付鼠标、手柄,我们是怎么测出来它们轮询率的?这就不得不提另一个东西了,这是我想测试键盘轮询率,有光阴创造的一个东西——“扫描频率”

原文如下:

The scan rate of a keyboard measures how frequently the keyboard updates (internally) the state of its key matrix. Normally, the scan rate is limited by the bounce time of the key switches used and the debounce algorithm used. For example, the debounce time of Cherry MX mechanical switches is rated at ≤5ms. So assuming a simple algorithm is used that waits 5ms for a switch signal to stabilize, then the scan rate would be limited to 200Hz.

The idea used here is that the scan rate of the keyboard effectively determines the shortest delay between a key press and a key release. Using this information we estimate the scan rate as: . ScanRate = 1 / ShortestKeyHold

Note that scan rate is not the same as poll rate. On a USB device, poll rate refers to how often the OS will check the USB device for updates. The poll rate together with the scan rate determines the maximum input latency. For example, take the example above were the scan interval is 5ms. If our poll rate is 1000Hz, then the keyboard is polled every 1ms and so the maximal input latency is 1+5=6ms. However, if the scan rate were 100Hz, then the maximal input latency would be 10+5=15ms. Note: It is possible to look up the poll rate of a USB device using software.

Take these calculations with a grain of salt.

摘自:https://blog.seethis.link/scan-rate-estimator/

看不懂没紧要,我来翻译一下,原文的大存问思便是除了轮询率之外,设备本身还存在一个扫描频率!
最大延迟和它有着相称大的关系。
(实在叫采样率也勉强说得过去hhhhh)

我们的鼠标、手柄,亦或是键盘,内部都有个微掌握器(MCU,Microcontroller Unit,又叫单片微型打算机,Single Chip Microcomputer ,或者单片机),实在质上是个微型打算机,它卖力传感器数据的记录与传输。

对付鼠标,微掌握器紧张卖力的传感器便是鼠标底部的光学引擎,光学引擎所打仗的平面,反馈的数据可以是趋近于无限的(光学引擎采集的数据肯定是有限的),以是会达到微掌握器支持的最大扫描频率。

对付手柄,微掌握器紧张卖力的传感器便是摇杆,摇杆所打仗的平面,也可以算作是无限的(摇杆本身采集的数据肯定是有限的),以是会达到微掌握器支持的最大扫描频率。

也便是说,对付一台正常的设备,它一定是“扫描频率>轮询率”的,这便是为什么我们能够测出鼠标或者手柄轮询率的缘故原由。

以是这个时候,随着“扫描频率”这个参数的引入,最大延迟又变了,最大延迟=扫描延迟+传输延迟。
假设扫描频率是2000Hz,轮询率是1000Hz,那最大延迟=0.5ms+1ms,最小延迟保持不变,还是无限趋近于0。

以是问题来了:

Q:为什么键盘轮询率测不出来?

A:我也不知道啊,我也很绝望啊!
为啥没法测?我按住一个键不松开,这不便是个连续的过程吗?该当能测才对啊!
可便是找不到测试软件!
可能就像鼠标按住左键或者右键不动、手柄只按键不动摇杆,没法测轮询率一样的道理吧,详细缘故原由我暂时不清楚,只能这样强行阐明hhhh。

抬杠:蓝牙便是差,延迟高!
哪怕轮询率同等也弗成!

正解:当蓝牙和其他连接办法轮询率保持同等时,延迟是一样的,不存在蓝牙延迟高!
正视自己很主要,摘掉有色眼镜,先从谢绝歧视做起!
你们所谓的延迟高、卡顿,那实际上是由于蓝牙的抗滋扰能力弗成导致的非常。

Q:最大延迟只和那两个参数有关吗?

A:显然不是,我们这是打消人为等诸多成分造成影响之后的数据,只考虑了硬件本身本色。
如果较真,人类本身有反应韶光,按下键盘,键程本身也须要花费韶光等等……想要深入研究我推举你看看这个:

https://www.zfrontier.com/app/flow/enxgmQEXo9RO

Q:扫描频率>轮询率是正常的,但如果小于呢?

A:举个极度例子,如果扫描延迟是10秒,传输延迟是1ms,当你利用鼠标移动时,前10秒鼠标会在电脑屏幕上保持不动,末了1ms鼠标指针会溘然跳到你鼠标第10秒停滞移动的位置上,俗称卡顿!

Q:扫描频率>轮询率是正常的,但如果轮询率过低呢?

A:同样会卡顿,鼠标指针在电脑屏幕上断断续续的,不足丝滑顺畅,就像高刷屏和60Hz普通屏幕的差异,以是理论上轮询率越高越好。
(但轮询率肯定存在边际效应,达到人类无法感知的水平,再提升就没啥意义了)

抬杠:高轮询率没用,你懂个!
你知不知道顶级电竞选手的反应速率大于90ms,奥运会短跑运动员的起跑反应在100ms附近……(此圣经摘自我投稿的八位堂手柄推广视频评论区)

正解:那我只能送您两个字,!
我当然知道人的反应韶光是有限的,不过不好意思,高轮询率还真有用!
由于运动是个连续的过程,现实天下没有帧率这个观点!
现实天下无时不刻都以无限的帧率运行!
难不成您运动起来能在现实天下实现抽帧? 失落敬失落敬!
阁下真是不一般!
以是设备的轮询率一定是越高越好,越高越靠近现实,直到人类无法感知!

全文完!

拓展链接汇总:

https://blog.seethis.link/scan-rate-estimator/

https://www.zfrontier.com/app/flow/enxgmQEXo9RO

https://www.zfrontier.com/app/flow/eMbZVvoXG5BW

标签:

相关文章

创意数码IT,创新驱动未来,技术引领潮流

随着科技的飞速发展,数码IT产业已成为推动经济社会发展的重要引擎。在这个充满无限可能的领域,创新与变革成为主旋律。本文将从创意数码...

科学 2024-12-30 阅读0 评论0

创新驱动,技术引领_IT公司的成长之路

在信息时代,科技发展日新月异,IT公司作为技术创新的先锋,肩负着推动社会进步的重要使命。本文将以一家名为“智慧星”的IT公司为例,...

科学 2024-12-30 阅读0 评论0