基于 NXP LPC5528 平台的鼠标 8K Report Rate 实现

一、概述

       在当下电竞运动的火热趋势下,电竞游戏覆盖了全国大部分年轻人的日常生活中。与此同时,我们对电竞设备的要求也越来越高,跟手机的迭代更新一样,过去的配置难以满足我们的游戏体验。为了让大家更直观地感受科技的进步,本文将会给大家推出基于 NXP LPC5528 平台的 8K Report Rate 游戏鼠标。

 

二、环境搭建

2.1 SDK 下载

       本文基于NXP LPC5528 IC,SDK 和软件可在NXP 官网 https://mcuxpresso.nxp.com 下载,或者直接在 MCUXpreeso IDE 中下载,下载路径如以下图 2.1 - 1:

 

 

                                                                                                                                                 图 2.1 - 1

 

       先点击左边方框进入已下载 SDK 界面,然后点击右框中的小图标进入 SDK Install 界面,如下图2.1 – 2,在搜索栏输入 IC 型号即可找到你需要的 SDK 。



                                                                                                                                                图 2.1 - 2

2.2 硬件

       本文基于 LPC5528 DK 板进行开发,DK 板如图 2.2 所示。

                                                                                             

                                                                                                                                                图 2.2

2.3 开发软件

       SDK 支持 IAR、Keil、MCUXpreeso IDE 三种开发软件、本文以 MCUXpreeso IDE 为开发环境作为介绍。

三、工程介绍

3.1  USB 硬件设计

       很多玩家在打游戏的时候都喜欢用有线的游戏鼠标,无需充电,反应迅速,这也是有线 Gaming Mouse 的可持续性原因之一。不难知道,Gaming 对 MCU 的要求普遍较高,USB Report Rate(USB 回报率)要极高,能够支持光学传感器的高采样率,能够支持各种灯效。本文中提及的 LPC5528 包含了以上优点,还能够通过各种 USB 兼容性测试。主要是因为它有一路 High-Speed USB(USB 2.0),能够支持 8K 回报率。LPC5528 High-Speed USB 的原理图设计如图 3.1 -1。

 
v                                            

                                                                                                                                                图 3.1 – 1

 

       LPC5528 的 High-Speed USB 能够与主机进行 480Mbps 的数据交换,完全满足需求。那么如何有效传送数据? 在忽略硬件设计干扰的前提下,传输数据的高效性主要跟按键、鼠标光学传感器扫描,LED 控制,软件算法有关。有效传送时间是大于按键扫描等外设驱动的全部时间之和的,全部时间和有效传送时间的对应关系我们可以参考图 3.1 – 2。

 
                                             

                                                                                                                                                图 3.1 – 2

 

       为了更加贴近地还原使用轨迹,我们要提高回报率,也即是提高有效传送时间的效率,避免鼠标在移动的时候出现丢失数据的现象。

3.2  LPC5528 有线 Gaming Mouse Demo 实现

       首先我们从 SDK 中打开一个基于 Freertos 架构的 USB 鼠标例程,可以参考图 3.2 – 1。

 
                                           

                                                                                                                                                图 3.2 - 1

 

       运行默认代码是全速 USB 下的鼠标画框现象,回报率是 250 Hz,具体代码可以参考图 3.2 – 2。

 


                                           

                                                                                                                                                图 3.2 - 2

 

       要实现 8K Report Rate,因为全速USB最高只能达到 1K Report Rate,这是协议规定的。因此我们要用高速 USB来实现 8K。我们需要在 usb_device_config.h 中修改宏定义,关闭全速 USB,启用高速USB,按照图 3.2 – 3 配置:

 
                                           

                                                                                                                                                图 3.2 - 3

 

       修改完后高速 USB 就被启用了,高速 USB 默认的回报率是 250 Hz,效果如图 3.2 – 4:

 


                                                                                                                                                图 3.2 - 4

 

       回报率修改处如图 3.2 – 5 红框部分,默认是 0x06U:

 
                                           

                                                                                                                                                图 3.2 – 5  

 

       通过测试,可以得出一个关于 HS USB 描述符和回报率对应关系的表,如图 3.2 – 6 所示:

                                           

                                                                                                                                                图 3.2 – 6  

 

       本文中,我们要实现的是 8K Report Rate,只需要把宏定义 HS_HID_MOUSE_INTERRUPT_IN_INTERVAL 改为 0x01U 即可。如图 3.2 – 7:

 
                                           

                                                                                                                                                图 3.2 – 7  

       

       因为 8K速率太高,无法用前面使用的 AresonMouseTestProgram软件来查看结果,回报率测试结果我们可以用 Bus Hound 软件来查看,测试结果如图 3.2 – 8:

 
                                           

                                                                                                                                                图 3.2 – 8  

       

       从图中我们可以看到传输时间达到了125 us,8K 的Report Rate。

       通过前面的讲解,我们可以轻松地实现 8K Report Rate 测试,但是在实际的产品中,如此高的回报率需要考虑到很多影响因素,比如光学传感器的通信波特率,采样率能否达到 8Mbps、代码的运行流程、硬件设计的干扰等等。所以需要我们学习的还有很多。

 

四、参考资料

       [1] LPC55S6x/LPC55S2x/LPC552x User manual.pdf

       [2] LPC55S2X-LPC552X.pdf

       [3] LPCXpresso55S28_Board_Schematic_RevA2.pdf

 

 

 

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论