本帖最后由 超电磁侠 于 2017-8-1 13:42 编辑
经历一年的研发和各种测试,整套系统终于定型了。给自己研发的鼠标写评测感觉有点怪怪的,就像父母给自己的孩子写评价,客观二字最难平衡,至少我会做到的一点是毫无保留,该吹的b还是要吹的。 RGB(0,0,0)">
先给主角们一张集体照,这套系统暂名为UHM Series, 下图为UHM-5和UHM-5201。 不要奇怪为什么是 罗技g1的壳子(这个壳子其实也是山寨的),word的哥,没有量产的条件(其实就是钱),我拿头去开模。所以只能将就了, 这个壳我也是几乎将整个阿里巴巴看了个遍才决定使用的,别说,实际用下来并不差。 我自己手焊的,手工还行吧?
这个外壳的按键柱并没有那个耐磨的塑料片来防止出现双响的问题,所以我想了一个解决办法,这个是一种导热双面胶,外面是一层pet塑料膜,实际使用下来还不错。
64.2克,没算线的重量。 这个重量挺让我意外的。以前的使用经验是,鼠标不能太轻,太轻不好控制,这个鼠标的实际使用完全颠覆了这个看法。我认为原因是传感器的性能提升和 鼠标垫摩擦力的配合(这块mass用了起码3年,表面比一般的布垫会涩一点)。以前的鼠标因为传感器精度的关系,多数容易发飘,所以需要鼠标的重量去抵消,现在的传感器牛的很。我个人的使用感受是,手部没那么容易疲劳。习惯了轻量化,反而用重的鼠标的时候会感到厌恶。 接下来讲重点, 鼠标为啥会多了一个盒子一样的东西呢?
这就是我这套8khz电子竞技外设的重点。同样是USB2.0 存在full speed 和high seed的区别。Full speed的情况下,可以做到1ms的回报率(USB是主机主导的总线,主机每1ms向设备要一次数据,称为回报率),high speed的情况下可以达到125us,1ms=1000us。那么既然存在这么厉害的规格,为啥没有实际生产的产品呢?原因很简单,就是成本和设计的矛盾。High speed的情况下,USB的差分信号上升下降时间是皮秒级别。(一个简单的事实就是,要完整测试USB2.0 high speed信号,要用到带宽2Ghz的示波器),这对信号完整性要求比较高。而且鼠标本身空间有限,要用的话,以目前的MCU的选择,就只能用BGA封装的芯片,尺寸也是比较大。那么结合信号完整性的要求,鼠标本身的PCB设计要么用多块双面板,或者直接用四层板。 我的方法就是直接将USB2.0 high speed的部分分离出来,这里有个好处,就是将来升级引擎,高性能的USB部分都可以保留。具体的逻辑设计就不能详细说了,专利还在申请中。可以肯定的一点是,绝对不是将普通鼠标进行转接。虽然鼠标跟USB核心的连接用了usb的线和接头,其实是为了方便,本身就不是USB的数据。但是直接插到USB上是无法使用的。
上图,平均125us的usb polling rate,图是鼠标静止的时候所截,注意我的使用环境。应该能代表日常重度多任务了,期货、股票、两个浏览器平均每个10个窗口以上,再加上一个坦克世界。在这样的环境下测定的polling rate,不用放大,肯定是波动比较厉害,因为windows本身没有去将鼠标的移动作为一个重点保障的对象。这个你们测一下自己手头上1khz的鼠标就知道了,差不多的波动。 那么8khz对cpu的负担有没有加重呢? 这个是高速不停甩动的时候截的屏,只增加了7%左右,那么没人会在游戏的时候这样去持续甩, 可以判断在玩游戏的时候不会影响帧率。 这个测试甩动的轨迹,对的,我增加了响应的次数去达到8khz,本身我的USB引擎可以做到8khz,但是因为pmw3325的响应只能达到5khz,(也就是pmw3325你最多只能每秒问他5千次数据,多了它响应不到就给你发0),所以你看到的x count 平均值不是一条线。
这个就是降到5khz的时候的x count平均值,可以看到是一条线了。虽然上一副图中间插入了数据是0的包,这个实际并不会影响鼠标的移动轨迹,估计是windows的驱动会直接忽略这种包。但是提高的polling rate有助于按键的快速触发和保持polling的稳定性,可以看到采样点的密度,即使是5khz,我就问这个市场上还有谁?
我也是服了自己,以前只懂c,硬是用python写了一个设置用的GUI程序,然后发现,GUI编程其实就是复杂一点点,以前学用VC来做,一直不入门,简直吐血,看来是方向问题。 设置程序除了常规设置,可以分别升级引擎和鼠标的固件。引擎有一套完整的备份,刷不死,出问题用跳线入安全模式再刷就行。
最后补充说一下鼠标的本体的一个技术特点, 机械 微动按键是用无延迟的去抖(也不是电阻电容的硬去抖),一触即发,理论延迟就是125us,不会出现“明明开镜按了开了枪,但是没反应”这种情况。
这个鼠标挖掘尽pmw3325 5khz响应的能力并同步到usb发送,加上无延迟的按键和轻量化,是一整套系统。不要单纯去做传感器数据上的比较。
有兴趣的坛友可以私信我,目前的条件就先不量产了, 先做封闭测试试试用户的感受,我相信好东西总会发光。
7-16 更新一个在cpu低负载情况下测试的polling rate图, 这个是用给别人做的测试机所测,结果很漂亮,记录一下。
7-21 修正了关于x count平均值的描述。下一篇帖子翻译一下mouse tester的用法。
8-1 3360版ready, 3325版固件更新,修正bug:1、取消鼠标部分的优化编译(快不了多少,几us),2、更新core engine的读取逻辑。todo:3360版的手动lod校正功能
|