Electronic devices

By adopting a hardware-based mouse SoC architecture and employing hardware-implemented sensors, scroll wheel, and button scanning modules, the limitations of traditional software-simulated timing methods in high report rate mice are overcome, resulting in a high-efficiency, stable, and low-power high report rate mouse solution.

CN224287494UActive Publication Date: 2026-05-26BEIJING ONMICRO ELECTRONICS CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Utility models(China)
Current Assignee / Owner
BEIJING ONMICRO ELECTRONICS CO LTD
Filing Date
2025-05-22
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Traditional mice suffer from insufficient real-time performance, high resource consumption, and increased power consumption in high report rate scenarios, making it difficult to meet the performance needs of high-end users.

Method used

The mouse SoC architecture, which adopts a hardware-based design, includes a hardware-implemented sensor scanning module, scroll wheel scanning module, and button scanning module. It is connected to the data packet assembly module through an advanced peripheral bus, communicates directly with the CPU and memory, and generates data packets that conform to the HID protocol.

Benefits of technology

It reduces CPU involvement, lowers clock speed and power consumption, achieves a high reporting rate, improves user experience, and reduces data loss and misjudgment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN224287494U_ABST
    Figure CN224287494U_ABST
Patent Text Reader

Abstract

This disclosure provides an electronic device. The electronic device includes: one or more scanning modules, each of which is respectively connected to a corresponding peripheral device in one or more peripheral devices and a first bus in the electronic device, and is configured to receive corresponding configuration information via the first bus and collect data from the corresponding peripheral device based on the corresponding configuration information; and a data packet assembly module, the data packet assembly module being connected to the one or more scanning modules and a second bus in the electronic device, and configured to assemble the collected data from the one or more peripheral devices into a data packet of a first format, and directly transmit the data packet to the memory of the electronic device via the second bus.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of electronic technology, and more particularly to an electronic device. Background Technology

[0002] With the rapid development of esports and high-end gaming, users' demands for mouse performance are increasing. Traditional mouse report rates are typically below 1kHz, meaning the mouse reports its position and status to the computer a maximum of 1000 times per second. However, with the increase in game screen refresh rates and players' growing demands for operational precision, a 1kHz report rate is gradually becoming insufficient for high-end users. In recent years, the market demand for high report rate mice, such as 4kHz and 8kHz mice, has been growing. A high report rate means the mouse needs to report its position and status to the computer more frequently, thus providing a smoother and more precise control experience. However, achieving a high report rate mouse is not easy, mainly facing the following two challenges: 1) High hardware performance requirements: A high report rate requires higher data processing capabilities and faster transmission speeds, which places higher demands on the mouse's CPU clock speed; 2) Increased power consumption: A high report rate means the mouse needs to perform data acquisition and transmission more frequently, which leads to increased power consumption and affects battery life.

[0003] In conclusion, the market demand for high-report-rate mice is increasingly urgent, but achieving high-report-rate mice still faces many technical challenges. Therefore, developing a mouse that can solve the aforementioned problems in achieving high report rates while ensuring high performance has significant market value and application prospects. Utility Model Content

[0004] Embodiments of this disclosure provide an electronic device, comprising: one or more scanning modules, each of which is respectively connected to a corresponding peripheral device in one or more peripheral devices and a first bus in the electronic device, and is configured to receive corresponding configuration information through the first bus and collect data from the corresponding peripheral device based on the corresponding configuration information; and a data packet assembly module, the data packet assembly module being connected to the one or more scanning modules and a second bus in the electronic device, and configured to assemble the collected data from the one or more peripheral devices into a data packet of a first format, and transmit the data packet directly to the memory of the electronic device through the second bus, wherein the second bus is directly connected to the central processing unit (CPU) of the electronic device and the memory, and the first bus is connected to the CPU and the memory through the second bus.

[0005] According to an embodiment of this disclosure, the configuration information includes a scanning frequency for collecting data from the corresponding peripheral device, the scanning frequency being greater than the maximum scanning frequency at which the CPU can collect data from the corresponding peripheral device via the first bus.

[0006] According to embodiments of this disclosure, the one or more scanning modules include a sensor scanning module connected to a first sensor and configured to: receive first configuration information from the CPU via the first bus; collect and process first data from the first sensor based on the first configuration information; and transmit the processed first data to the data packetization module, wherein the first sensor is a sensor for sensing mouse movement data.

[0007] According to embodiments of this disclosure, the one or more scanning modules include a roller scanning module connected to a roller device and configured to: receive second configuration information from the CPU via the first bus; collect and process second data of the roller device based on the second configuration information; and transmit the processed second data to the data packet module.

[0008] According to embodiments of this disclosure, the one or more scanning modules include a key scanning module connected to a key device and configured to: receive third configuration information from the CPU via the first bus; collect and process third data of the key device based on the third configuration information; and transmit the processed third data to the data packet module.

[0009] According to an embodiment of this disclosure, the data packet assembly module includes a configuration module, which is configured to configure the source register address of the data packet and / or one or more data in the data packet, the destination address of the data packet and / or one or more data in the data packet in the memory, and the data bit width of the data packet and / or one or more data in the data packet.

[0010] According to an embodiment of this disclosure, the data packet assembly module includes a status indication module, which is configured to indicate whether data corresponding to the one or more scanning modules has been transmitted to the memory via one or more register status bits corresponding to the one or more scanning modules.

[0011] According to embodiments of this disclosure, each of the one or more scanning modules is a hardware module implemented using digital circuitry.

[0012] According to embodiments of this disclosure, the first bus is an Advanced Peripheral Bus (APB), and the second bus is an Advanced High Performance Bus (AHB).

[0013] According to embodiments of this disclosure, the first format is a data packet format conforming to the HID protocol of human-machine interface devices.

[0014] Embodiments of this disclosure provide a processing method for an electronic device, comprising: each of one or more scanning modules receiving corresponding configuration information via a first bus, wherein each of the one or more scanning modules is respectively connected to a corresponding peripheral device among one or more peripheral devices; each of the one or more scanning modules acquiring data from the corresponding peripheral device based on the corresponding configuration information; and a data packet assembly module assembling the data from the one or more peripheral devices acquired by the one or more scanning modules into a data packet of a first format, and directly transmitting the data packet to a memory via a second bus, wherein the second bus is directly connected to the central processing unit (CPU) and the memory of the electronic device, and the first bus is connected to the CPU and the memory via the second bus.

[0015] Embodiments of this disclosure provide a computer-readable storage medium having computer-readable instructions stored thereon, which, when executed by a processor, can be used to implement any method for designing and / or processing an electronic device according to embodiments of this disclosure.

[0016] This disclosure presents an electronic device and a method for processing the electronic device. This electronic device and method can be used for the design and / or processing of a mouse system-on-a-chip (SoC). It implements a mouse SoC through hardware design, including a sensor scanning module, scroll wheel scanning, button scanning, and data packet assembly module. This overcomes the limitations of traditional software-based general-purpose input / output (GPIO) analog timing methods in high report rate scenarios, providing an efficient, stable, and low-power solution for implementing high report rate mice. Attached Figure Description

[0017] The accompanying drawings are not necessarily drawn to scale. In all the drawings, for illustrative purposes, elements with similar structures or functions are often indicated by the same reference numerals or portions thereof. The drawings are merely for the purpose of facilitating the description of the various embodiments described herein. The drawings do not describe every aspect of the teachings disclosed herein and do not limit the scope of the claims. To prevent obscurity, not all components, connections, etc., are shown, and not all components have reference numerals. However, the pattern of component configuration can be readily discerned from the drawings. The drawings, together with the specification, illustrate exemplary embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure. The above and other aspects, features, and advantages of certain embodiments of the present disclosure will become more apparent from the following description taken in conjunction with the accompanying drawings, wherein:

[0018] Figure 1 A schematic diagram of an electronic device according to an embodiment of the present disclosure is shown;

[0019] Figure 2 An example structure of a sensor scanning module according to an embodiment of the present disclosure is shown;

[0020] Figure 3 An example structure of a roller scanning module according to an embodiment of the present disclosure is shown;

[0021] Figure 4 An example structure of a key scanning module according to an embodiment of the present disclosure is shown;

[0022] Figure 5 An example structure of a data packet assembly module according to an embodiment of this disclosure is shown;

[0023] Figure 6 A schematic diagram of an electronic device according to an embodiment of the present disclosure is shown; and

[0024] Figure 7 A schematic flowchart of a processing method for an electronic device according to an embodiment of the present disclosure is shown. Detailed Implementation

[0025] Before proceeding with the detailed description below, it may be advantageous to define certain words and phrases used throughout this patent document. The terms “coupled,” “connected,” and their derivatives refer to any direct or indirect communication or connection between two or more elements, regardless of whether those elements are physically in contact with each other. The terms “transmit,” “receive,” and “communicate,” and their derivatives cover both direct and indirect communication. The terms “comprising” and “including,” and their derivatives refer to, but are not limited to, those including, those including, those including, those including. The term “or” is inclusive, meaning and / or. The phrases “associated with,” “corresponding to,” and their derivatives refer to, including, being contained within, interconnected, containing, being included in, connected or connected to, coupled or coupled to, communicating with, cooperating, intertwined, juxtaposed, proximate, bound or bound to, having, having attributes, having a relationship or being related to, etc. The term “controller” refers to any device, system, or part thereof that controls at least one operation. Such a controller may be implemented in hardware, or a combination of hardware and software and / or firmware. The functionality associated with any particular controller may be centralized or distributed, local or remote. The phrase "at least one" when used with a list of items means that different combinations of one or more of the listed items may be used, and that only one item from the list may be required. For example, "at least one of A, B, and C" includes any of the following combinations: A, B, C, A and B, A and C, B and C, A and B and C.

[0026] Definitions of other specific words and phrases are provided throughout this patent document. Those skilled in the art will understand that, in many, if not most, cases, such definitions apply to the prior and future use of the words and phrases thus defined.

[0027] In this patent document, the application combination of modules and the hierarchical division of submodules are for illustrative purposes only. Without departing from the scope of this disclosure, the application combination of modules and the hierarchical division of submodules can be implemented in different ways. The embodiments of this disclosure can be implemented in different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided to make this disclosure thorough and complete, and to fully convey exemplary implementation methods to those skilled in the art. The embodiments of this disclosure can be combined in any way to form other embodiments.

[0028] In the following description, embodiments of this disclosure will be exemplarily described using a mouse SoC as an example.

[0029] In some embodiments, when implementing functions such as sensors, scroll wheels, and buttons, the mouse SoC typically uses software to simulate timing via GPIO. Some specific example implementations are shown below.

[0030] 1. Sensor data acquisition based on software simulation timing method:

[0031] The mouse sensor is responsible for sensing or acquiring mouse movement data, such as the mouse's position, coordinates, and displacement. The sensor typically interacts with the SoC (System-on-a-Chip) via the Serial Peripheral Interface (SPI) communication protocol. However, mouse SoCs usually do not integrate a dedicated sensor scanning module; instead, they use GPIO to simulate SPI timing to read sensor data.

[0032] For example, in some embodiments, the SoC simulates SPI timing through GPIO pins; the software simulates the timing of the SPI communication protocol by controlling the high and low levels of the GPIO pins, thereby interacting with the sensor; the sensor transmits the collected motion data to the SoC through GPIO, and the SoC then processes this data.

[0033] This approach may have the following drawbacks:

[0034] Simulating timings using GPIO consumes a significant amount of CPU resources, leading to reduced system efficiency.

[0035] Due to the rate limitation of GPIO, the real-time performance and accuracy of sensor data reading are limited, making it difficult to meet the requirements of high reporting rates (such as 4KHz / 8KHz);

[0036] The timing of software simulations may be unstable, leading to data transmission errors or frame drops.

[0037] 2. Roller signal acquisition based on software simulation timing method:

[0038] Mouse scroll wheels (or scroll wheel devices) typically use encoders or similar devices to detect scrolling actions or corresponding scroll wheel signals. These signals are usually input to the SoC (System-on-a-Chip) via GPIO pins, where software decodes them to determine information such as the scrolling direction and number of steps.

[0039] For example, in some embodiments, the roller encoder outputs two pulse signals (phase A and phase B) with a 90° phase difference, which are connected to two GPIO pins of the SoC, respectively. The software determines the rolling direction (clockwise or counterclockwise, etc.) of the roller by detecting the sequence of level changes on the two GPIO pins. Furthermore, the software can also determine the number of rolling steps by counting the number of pulse signals.

[0040] This approach may have the following drawbacks:

[0041] GPIO level detection and software decoding introduce a certain delay, which affects the real-time performance of the scroll wheel operation;

[0042] In high reporting rate scenarios, the sampling frequency of the scroll wheel signal may be insufficient, leading to the loss or misjudgment of scrolling actions;

[0043] The software decoding implementation consumes a lot of CPU resources, which may affect the overall performance of the mouse.

[0044] 3. Key signal acquisition based on software simulation timing method:

[0045] Mouse buttons (or button devices) typically use mechanical or optical switches, and the state of the button (pressed or released, etc.) can be input to the SoC via GPIO pins.

[0046] For example, in some embodiments, one end of the push-button switch can be connected to a GPIO pin, and the other end grounded. When the button is pressed, the level of the GPIO pin is pulled low; when the button is released, the level of the GPIO pin returns to high. The software detects the button press and release actions or states by periodically scanning the level state of the GPIO pin.

[0047] This approach may have the following drawbacks:

[0048] The software scanning method for GPIO levels introduces a certain delay, affecting the real-time response of buttons;

[0049] In high-reporting-rate scenarios, the sampling frequency of button states may be insufficient, leading to the loss or misjudgment of button actions;

[0050] The software scanning method consumes a lot of CPU resources, which may affect the overall performance of the mouse.

[0051] In other words, the mouse SoC uses GPIO to simulate timing to implement sensor scanning, scroll wheel scanning, and button scanning. While this can meet the needs of mice with low report rates (below 1kHz), it may have the following problems in high report rate (4kHz / 8kHz) scenarios:

[0052] Insufficient real-time performance: The GPIO simulation timing method introduces latency, and the button, scroll wheel and sensor scanning are serial operations, which makes it difficult to meet the real-time requirements of high reporting rates.

[0053] High resource consumption: Software timing simulation consumes a lot of CPU resources, affecting the overall system performance.

[0054] High power consumption: The CPU cannot sleep when GPIO simulates timings. Frequent CPU participation will increase power consumption and affect the mouse's battery life.

[0055] Insufficient accuracy and stability: At high report rates, the sampling frequency and timing stability of GPIO may not be guaranteed, leading to misjudgment of data or uneven sampling, which affects the user experience.

[0056] Therefore, the data acquisition method based on software simulation timing has obvious limitations in the application of high report rate mice, and there is an urgent need for a more efficient and stable implementation solution to meet market demands.

[0057] To address the aforementioned issues, this disclosure proposes a hardware scanning-based mouse SoC design method and architecture. Electronic devices based on this SoC architecture may include one or more of the following modules:

[0058] Hardware-implemented sensor scanning module: The sensor scanning module, implemented through dedicated hardware, communicates directly with the sensor to achieve real-time high-frequency acquisition and processing of sensor data without the need for software or CPU intervention.

[0059] The hardware-implemented roller scanning module detects the pulse signal of the roller encoder in real time through a dedicated hardware decoder, determines the rolling direction and number of steps of the roller, and achieves efficient and accurate roller signal detection.

[0060] Hardware-implemented key scanning module: Real-time detection of key status through dedicated hardware circuitry to reduce key response delay.

[0061] The hardware-implemented data packet module packages the data collected from sensors, scroll wheel, and buttons, generating data packets that conform to the protocol or format for communication on the high-speed bus and with the CPU and / or memory (e.g., Human Interface Device (HID) protocol), and then directly transmits them to the host (e.g., CPU and / or memory).

[0062] The SoC design method or architecture according to embodiments of this disclosure can achieve at least one or more of the following advantages:

[0063] 1) Reduce CPU involvement: By implementing scanning and data packetization of sensors, scroll wheel and buttons through hardware modules, the CPU involvement is significantly reduced, thus reducing system resource consumption.

[0064] 2) Reduced clock speed and power consumption: Due to the high efficiency of the hardware module, the sampling or scanning frequency of the hardware module can be much higher than the working frequency of the CPU or software. Therefore, the SoC can run at a lower CPU clock speed, thereby reducing power consumption and extending the mouse's battery life.

[0065] 3) Achieve high report rate: The real-time performance and high efficiency of the hardware module enable the SoC to achieve a high report rate (such as 4KHz / 8KHz) at a very low clock speed, meeting the performance needs of high-end users.

[0066] 4) Improve user experience: The asynchronous design of the hardware module and uniform data sampling can effectively improve the linearity of the cursor and scroll wheel, reduce data loss and misjudgment, and significantly improve the user's operating experience.

[0067] The design method or architecture disclosed herein overcomes the limitations of traditional software-simulated timing methods in high report rate scenarios through hardware design, providing an efficient, stable, and low-power solution for the implementation of high report rate mice.

[0068] The following description, in conjunction with the accompanying drawings, will further illustrate examples of mouse SoC architectures according to embodiments of this disclosure.

[0069] Figure 1 A schematic diagram of an electronic device 100 according to an embodiment of the present disclosure is shown.

[0070] An example electronic device 100 based on a mouse SoC architecture according to an embodiment of this disclosure may include a data packet assembly module 101 and one or more hardware-implemented scanning modules, such as a sensor scanning module 102, a scroll wheel scanning module 103, a button scanning module 104, etc.

[0071] Each of the one or more scanning modules can be a hardware module implemented using digital circuitry.

[0072] Each of the one or more scanning modules can be connected to a corresponding peripheral device and electronic device 100 in the one or more peripheral devices, respectively, via a first bus 105. Each of the one or more scanning modules can be configured to receive corresponding configuration information from, for example, software or a CPU via the first bus 105, and to collect data from the corresponding peripheral device based on the corresponding configuration information. This configuration information may include parameters or configurations such as the operating mode, scanning frequency, timing configuration, and register configuration required for the normal operation of the one or more scanning modules.

[0073] In some embodiments, the configuration information of the corresponding scanning module may include a scanning frequency for acquiring data from the peripheral device corresponding to the scanning module, and the scanning frequency may be greater than the operating frequency of the first bus 105, or the maximum scanning frequency at which the software (or CPU 108) can acquire or scan the data of the corresponding peripheral device through the first bus 105.

[0074] In some embodiments, for example, the sensor scanning module 102 may be connected to the first sensor of the mouse. The sensor scanning module 102 may be configured to receive first configuration information for acquiring and processing data from the CPU or the like via a first bus 105; acquire and / or process first data from the first sensor based on the first configuration information; and transmit the acquired and / or processed first data to the data packetization module 101. The first sensor may be a sensor for sensing the movement data of the mouse.

[0075] In some embodiments, the hardware-implemented sensor scanning module 102 can primarily be used to efficiently acquire and process data from a sensor. This sensor may be, for example, a first sensor used to sense mouse movement data (e.g., position, coordinates, displacement, etc.).

[0076] In some embodiments, to ensure the real-time performance, accuracy, and stability of sensor data, the sensor scanning module 102 may further include, for example, Figure 2 One or more of the submodules shown.

[0077] Specifically, Figure 2 An example structure of a sensor scanning module according to an embodiment of this disclosure is shown.

[0078] like Figure 2 As shown, the sensor scanning module 102 may include one or more of the following: a communication interface configuration module 201, a parameter configuration module 202, a sensor configuration module 203, a timing configuration module 204, an interrupt configuration module 205, an error detection and recovery module 206, a low power management module 207, a working mode configuration module 208, and a data transmission module 209.

[0079] The communication interface configuration module 201 is responsible for physical connection and data communication with the sensor, including 2 / 3 / 4-wire SPI selection and GPIO multiplexing configuration.

[0080] The parameter configuration module 202 can be used to configure some relevant parameters when the sensor scanning module 102 performs scanning.

[0081] The sensor configuration module 203 can be used to configure some register addresses and sensor IDs of the sensor to be scanned, according to the sensor's user manual.

[0082] The timing configuration module 204 can be used to configure the timing signals of the sensor scanning module according to the specific timing requirements of the sensor, so as to ensure the synchronization and real-time performance of data acquisition.

[0083] The interrupt configuration module 205 can be used to trigger an interrupt notification to the main control CPU when data acquisition is completed or an abnormality occurs.

[0084] The error detection and recovery module 206 can be used to resynchronize after a two-wire SPI detects a synchronization failure.

[0085] The low-power management module 207 can be used to manage the power consumption of the module, support sleep and wake-up functions, and optimize energy consumption.

[0086] The working mode configuration module 208 can be used to configure or switch working modes such as configuration mode and scan mode.

[0087] The data transmission module 209 can be used to transmit the acquired and / or processed sensor data to the main control CPU, the data packet module 101, or other peripherals.

[0088] The parameters or settings that need to be configured for the sensor scanning module 102 (and / or the roller scanning module 103, button scanning module 104, data packet module 101, etc. described below) can be obtained from software (e.g., CPU and / or memory, etc.) via the first bus 105, or they can be determined and pre-configured based on the specifications, user manuals, specific timing requirements, etc. of the corresponding peripheral devices such as sensors, and are not limited herein.

[0089] In some embodiments, for example, the scroll wheel scanning module 103 may be connected to the scroll wheel of a mouse. The scroll wheel scanning module 103 may be configured to: receive second configuration information from a CPU or the like via a first bus 105; collect and / or process second data from the scroll wheel based on the second configuration information; and transmit the collected and / or processed second data to the data packetization module 101.

[0090] The hardware-implemented roller scanning module 103 can detect, decode, and process roller signals. Hardware-implemented roller scanning has advantages such as high efficiency, low power consumption, and strong real-time performance.

[0091] Specifically, Figure 3 An example structure of a roller scanning module according to an embodiment of the present disclosure is shown.

[0092] like Figure 3 As shown, the roller scanning module 103 may include one or more of the following: parameter configuration module 301, interrupt configuration module 302, signal input module 303, low power management module 304, status indication module 305, and data transmission module 306.

[0093] The parameter configuration module 301 can be used to configure parameters or settings such as the working mode, scanning frequency, and de-jitter time of the roller scanning module.

[0094] The interrupt configuration module 302 can be configured to trigger an interrupt notification to the main control CPU when a scroll wheel event is detected.

[0095] The signal input module 303 can be used to configure GPIO multiplexed pins for connecting the output signal of the roller encoder.

[0096] The low-power management module 304 can be used to manage the power consumption of the module, for example, by supporting sleep and wake-up functions, thereby optimizing energy consumption.

[0097] The status indicator module 305 can be used to indicate the data status of the roller scanning module.

[0098] The data transmission module 306 can be used to transmit the collected and / or processed roller data to the main control CPU, data packet module 101 or other peripherals.

[0099] In some embodiments, for example, the button scanning module 104 may be connected to the button device of a mouse. The button scanning module 104 may be configured to: receive third configuration information from a CPU or the like via a first bus 105; collect and / or process third data from the button device based on the third configuration information; and transmit the collected and / or processed third data to the data packetization module 101.

[0100] The hardware-implemented key scanning module 104 can be used to detect and process mouse button presses and releases. Hardware-implemented key detection can significantly reduce CPU load and improve system real-time performance and response speed.

[0101] Specifically, Figure 4 An example structure of a key scanning module according to an embodiment of the present disclosure is shown.

[0102] like Figure 4 As shown, the key scanning module 104 may include one or more of the following: parameter configuration module 401, interrupt configuration module 402, signal input module 403, low power management module 404, status indication module 405, and data transmission module 406.

[0103] The parameter configuration module 401 can be used to configure parameters or settings such as button mode, scanning mode, scanning frequency and debouncing time of the button scanning module 104.

[0104] The interrupt configuration module 402 can be configured to trigger an interrupt notification to the main control CPU when a key press is detected.

[0105] The signal input module 403 can be used to configure GPIO multiplexed pins for detecting the level state of the button.

[0106] The low-power management module 404 can be used to manage the power consumption of the module, for example, by supporting sleep and wake-up functions, thereby optimizing energy consumption.

[0107] The status indicator module 405 can be used to indicate the current status of the key scanning module 104.

[0108] The data transmission module 406 can be used to transmit the collected and / or processed key data to the main control CPU, the data packet module 101, or other peripherals.

[0109] As described above, the electronic device 100 may further include a data packet assembly module 101. The data packet assembly module 101 may be connected to one or more scanning modules and the second bus 106 in the electronic device. The data packet assembly module 101 may be configured to assemble data from one or more peripheral devices into a data packet of a first format and transmit the data packet directly to the memory 107 of the electronic device 100 via the second bus 106.

[0110] The second bus 106 can be directly connected to the central processing unit (CPU) 108 and memory 107 of the electronic device 100, and the first bus 105 can be connected to the CPU 108 and memory 107 through the second bus 106.

[0111] In some embodiments, the first bus 105 may be an Advanced Peripheral Bus (APB) serving as a sub-bus of the system for connecting one or more peripheral devices, and the second bus 106 may be an Advanced High Performance Bus (AHB) serving as the backbone bus of the system and directly connected to the CPU and / or memory.

[0112] In some embodiments, the first format described above may be a data packet format conforming to the Human Interface Device (HID) protocol.

[0113] The hardware-implemented data packetization module 101 can be used to hardware packetize one or more data collected or acquired from sensors, scroll wheels, and buttons, generating data packets conforming to protocols or formats for communication on high-speed buses and with the CPU and / or memory (e.g., Human Interface Device (HID) protocols), thereby directly transmitting them to the host (e.g., CPU 108 and / or memory 107). The data packetization module 101 can hardware packetize one or more data collected or acquired from sensors, scroll wheels, and buttons separately, or it can hardware packetize one or more data collected or acquired from sensors, scroll wheels, and buttons together; this is not limited herein.

[0114] Specifically, Figure 5 An example structure of a data packet module according to an embodiment of this disclosure is shown.

[0115] like Figure 5 As shown, the data packaging module 101 may include one or more of the following: a data transport module 501, a configuration module 502, and a status indication module 503.

[0116] The configuration module 502 can be used to configure the source address and destination address of data transfer, as well as the data width. For example, the configuration module 502 can configure the source register address of the register used to store the assembled data packet and / or one or more data in the data packet, the destination address of the data packet and / or one or more data in the data packet in the memory 108, and the data width of the data packet and / or one or more data in the data packet, etc.

[0117] The data transfer module 501 can be used to transfer data collected by the key scanning module 104, the roller scanning module 103 and / or the sensor scanning module 102 to the memory 107 (e.g., RAM, etc.) according to the configuration of the configuration module 502 (and / or specific format requirements as described above).

[0118] The status indication module 503 can be used to indicate the data status of each module. For example, the status indication module 503 can be configured to indicate whether the data corresponding to one or more scan modules has been transferred to the memory 107 by one or more register status bits corresponding to one or more scan modules respectively.

[0119] Next, Figure 6 A schematic diagram of an electronic device 600 according to an embodiment of the present disclosure is shown.

[0120] Electronic device 600 can be as follows Figure 1 A specific example of the electronic device 100 shown.

[0121] like Figure 6 As shown, the electronic device 600 may include a CPU 108 and one or more memories, such as flash memory 610 and ARM 607. The two memories, FLASH 610 and RAM 607, can be connected to the CPU 108 via an Advanced High-performance Bus (AHB) 606. The AHB bus 606 may also connect to a USB module (e.g., a USB device controller 611) and an RF module 612 for data transmission in a wired or wireless mouse. The RF module 612 may be an RF module supporting Bluetooth (e.g., Bluetooth Low Energy (BLE)) transmission or any other wireless transmission.

[0122] The electronic device 600 may include a data packet assembly module 101, a sensor scanning module 102, a roller scanning module 103, and a key scanning module 104, etc. The data packet assembly module 101 may also be connected to the AHB bus 606. After one or more scanning modules scan data from their respective peripheral devices, they can send a request to the data packet assembly module 101, and the data packet assembly module 101 can directly transfer the relevant data to the RAM 607.

[0123] The three scanning modules and other low-speed peripherals in electronic device 600 can be connected to the Advanced Peripheral Bus (APB) 605, which can be further connected to the AHB bus 606. In addition to the aforementioned digital circuit modules, electronic device 600 may also include analog circuit modules such as a clock module, a power supply module, and a wake-up module.

[0124] As described above, the sensor scanning module 102 in the electronic device 600 may include one or more of the following: a communication interface configuration module 201, a parameter configuration module 202, a sensor configuration module 203, a timing configuration module 204, an interrupt configuration module 205, an error detection and recovery module 206, a low power management module 207, a working mode configuration module 208, and a data transmission module 209.

[0125] A specific implementation of the sensor scanning module 102 is shown below.

[0126] The communication interface configuration module 201 is configured for 2-wire / 4-wire SPI selection and multiplexed pin configuration of GPIOs (e.g., GPIO 109 or other GPIOs connected to the corresponding scan module and / or peripheral devices).

[0127] The parameter configuration module 202 is used to configure parameters such as scanning frequency, scanning mode, sensor coordinate data format, and sensor coordinate high-order data format (only applicable to 12-bit and 16-bit coordinate data formats). The high-order data format refers to the arrangement of the high-order and low-order bytes when storing multi-byte data in memory. For example, in some embodiments, the high-order data format may include big-endian, little-endian, etc.

[0128] The sensor configuration module 203 is used to configure some register addresses and / or related data of the sensor to be scanned. These addresses and / or data may include one or more of the following: sensor ID register address, sensor ID value, sensor motion status register address, sensor X-axis coordinate low-order data register address, sensor Y-axis coordinate low-order data register address, sensor coordinate high-order data register address 1, and sensor coordinate high-order data register address 2.

[0129] The timing configuration module 204 configures the TR and TNS registers to meet the specific timing requirements of different sensors for SPI. The TR register is used to configure the timing parameters of DATA in SPI communication. The TNS register is used to configure the timing parameters of NCS in SPI communication.

[0130] The error detection and recovery module 206 adjusts the high and low levels of the serial clock (SCLK) signal by configuring the resynchronization (RESYNC) register, thereby achieving the purpose of resynchronizing the two-wire SPI when the configured and / or acquired sensor IDs are inconsistent.

[0131] The interrupt configuration module 205 can be used to enable or disable one or more interrupt modes, such as scan completion interrupt, resynchronization start interrupt, resynchronization end interrupt, interrupt triggered during resynchronization when scanning occurs, and configuration mode completion interrupt. One or more of these interrupt modes can be enabled according to actual needs. For example, if the scan completion interrupt is enabled, an interrupt will be triggered when the scan is completed.

[0132] The low-power management module 207 may include circuitry that enables or disables low-power modes (e.g., sleep mode) and wake-up modes. For example, it may be used to enable the wake-up function when needed, while the system is in a low-power mode to save power.

[0133] The operation process of the sensor scanning module 102 may include a sensor initialization process and a scanning process.

[0134] During the sensor initialization process, the operating mode of the sensor scanning module 102 can be set to configuration mode via the operating mode configuration module 208. Next, sensor data read / write operations can be performed by manipulating the CFG_ADDR and CFG_DATA registers in the sensor scanning module 102, enabling a series of sensor-customized initialization processes such as sensor reset, calibration, and parameter configuration.

[0135] Before the scan begins, a scan completion interrupt can be enabled via the interrupt configuration module 205. For example, after the scan completion interrupt is enabled, the corresponding status bit in the interrupt status register can be set (e.g., set to 1 or 0) when the scan is complete.

[0136] In the scanning process, the working mode of the sensor scanning module 102 can be switched to scan mode by the working mode configuration module 208 to start data acquisition or scanning. For example, the scanning function of the sensor scanning module 102 can be enabled to start data acquisition or scanning.

[0137] Finally, the collected or acquired X-axis and Y-axis coordinate data can be transmitted through the data transmission module 209 and processed accordingly.

[0138] In some embodiments, the above-mentioned modules or functions of the sensor scanning module 102 can be implemented by one or more registers and related circuits as shown in Table 1 below.

[0139] [Table 1]

[0140]

[0141]

[0142] The roller scanning module 103 may include one or more of the following: parameter configuration module 301, interrupt configuration module 302, signal input module 303, low power management module 304, status indication module 305, and data transmission module 306.

[0143] The operation process of the roller scanning module 103 may include an initialization configuration process and a scanning process.

[0144] During the initialization configuration process, the signal input module 303 can be used to configure the multiplexed pins of GPIO (e.g., GPIO 109 or other GPIOs connected to the corresponding scan module and / or peripheral devices) for connecting the output signals of the roller. That is, the signal input module 303 is used to configure the GPIO multiplexing function.

[0145] The parameter configuration module 301 can be composed of one or more sub-configuration circuits. For example, the operating mode, scanning frequency, and de-jitter time of the roller scanning module 103 can be configured separately through these one or more sub-configuration circuits.

[0146] One or more interrupts (e.g., scroll wheel event triggered interrupt) can be enabled or disabled through the interrupt configuration module 302.

[0147] The low-power management module 304 may include circuitry that enables or disables low-power modes (e.g., sleep mode) and wake-up modes. For example, it may be used to wake up the system when needed by enabling the wake-up function when the system is in a low-power mode to save power.

[0148] After completing one or more of the above configurations, the roller scanning module 103 can be enabled to start the scanning process.

[0149] For example, if the above-mentioned scroll event trigger interrupt is configured to be enabled, an interrupt will be triggered when a scroll event or scroll data is scanned.

[0150] After successfully scanning for data, the corresponding status bit of the status indicator module 305 can be set, for example, to 1 or 0. This status bit can be used to indicate whether data was successfully scanned, or whether the current data is valid, etc.

[0151] Finally, the collected or acquired roller data can be transmitted through the data transmission module 306 and processed accordingly.

[0152] In some embodiments, the above-described modules or functions of the roller scanning module 103 can be implemented by one or more registers and related circuits as shown in Table 2 below.

[0153] [Table 2]

[0154]

[0155] The key scanning module 104 may include one or more of the following: parameter configuration module 401, interrupt configuration module 402, signal input module 403, low power management module 404, status indication module 405, and data transmission module 406.

[0156] The operation process of the key scanning module 104 may include an initialization configuration process and a scanning process.

[0157] During the initialization configuration process, the signal input module 403 can be used to configure the multiplexed pins of GPIO (e.g., GPIO 109 or other GPIOs connected to the corresponding scan module and / or peripheral devices) for detecting the level state of the button. That is, the signal input module 403 is used to configure the GPIO multiplexing function.

[0158] The parameter configuration module 401 can be composed of one or more sub-configuration circuits. For example, the key mode (such as three-key or five-key selection), scanning mode, scanning frequency, and debouncing time can be configured separately through these one or more sub-configuration circuits.

[0159] One or more interrupts (e.g., key press trigger interrupt) can be enabled or disabled through the interrupt configuration module 402.

[0160] The low-power management module 404 may include circuitry that enables or disables low-power modes (e.g., sleep mode) and wake-up modes. For example, it may be used to wake up the system when needed by enabling the wake-up function when the system is in a low-power mode to save power.

[0161] After completing one or more of the above configurations, the key scanning module 104 can be enabled to start the scanning process.

[0162] For example, if the above-mentioned key press trigger interrupt is configured to be enabled, an interrupt will be triggered when a key press is detected. At the same time, the corresponding status bit of the status indicator module 405 can be set, for example, to 1 or 0.

[0163] Finally, the collected or acquired key scan results (each bit of the data register corresponds to the pressing state of a key) can be transmitted through the data transmission module 406 and processed accordingly.

[0164] In some embodiments, the above-mentioned modules or functions of the key scanning module 104 can be implemented by one or more registers and related circuits as shown in Table 3 below.

[0165] [Table 3]

[0166]

[0167] The data package module 101 may include one or more of the following: data transport module 501, configuration module 502, and status indication module 503.

[0168] The configuration module 502 can be composed of one or more sub-configuration circuit sections. For example, the data source address (e.g., source register address) and target RAM address (e.g., target address in RAM) of the button scanning module 104, sensor scanning module 102, and scroll wheel scanning module 103 can be configured separately through these one or more sub-configuration circuits. Typically, the data length of the buttons and scroll wheel is only one byte, but the bit width of the coordinate data of different sensors may be different, so the bit width of the coordinate data can also be configured through the configuration module 502.

[0169] After one or more of the key scanning module 104, sensor scanning module 102 and / or roller scanning module 103 scans data, the scanning module that scanned the data can send a data transfer request to the data packet module 101. At the same time, if the data transfer function of the data packet module 101 is enabled, the data transfer module 501 can transfer the scanned data from the source register to the RAM according to the configuration in the configuration module 502.

[0170] After the data transfer is completed, the corresponding status bit in the status indicator register in the status indicator module 503 can be set, for example, to 1 or 0.

[0171] In some embodiments, the above-mentioned modules or functions of the data packet module 101 can be implemented by one or more registers and related circuits as shown in Table 4 below.

[0172] [Table 4]

[0173]

[0174] When applying the above SoC to mouse products (taking the data width of 1 byte as an example), a four-byte array mouse_data[4] can be defined in the firmware program to store button data, X coordinate data, Y coordinate data and scroll wheel data in sequence.

[0175] First, each scanning module can be initialized and configured. Then, the data packet assembly module can be initialized by enabling the data transfer function of each scanning module through the CONFIG register, setting the coordinate data bit width to 1 byte, setting the data source address to the corresponding source data register address of the scanning module, and setting the data destination address to the corresponding address in the mouse_data array. Finally, the functions of each scanning module are enabled again, and scanning begins.

[0176] If the mouse is not in use, the SoC can remain in sleep mode. When one or more of the following actions occur—button press, movement, or scroll wheel movement—the corresponding hardware scanning module will collect data according to its initialization configuration and transmit the data to the target address mouse_data array configured in the firmware according to the source address configuration of the data packet assembly module. Simultaneously, since the wake-up function is enabled in the initialization configuration of each scanning module, the CPU will also be woken up. The woken-up CPU will then query the status bits of the DATD_VALID_STATUS register of the data packet assembly module. If one or more status bits are set, it means that the data packet assembly module has moved the scanned corresponding data to the mouse_data array. The CPU then sends the mouse_data to the host via the USB or RF interface and then returns to sleep mode.

[0177] The embodiments disclosed herein innovatively propose a mouse SoC design method and architecture including a hardware-based sensor scanning module, a scroll wheel scanning module, a button scanning module, and a data packet assembly module. The mouse SoC implemented through this design method or architecture not only has significant advantages in high performance, low power consumption, and user experience, but also provides a completely new technical route for mouse SoC design, possessing significant innovative value and application potential within the industry.

[0178] Next, Figure 7 A schematic flowchart of a processing method 700 for an electronic device according to an embodiment of the present disclosure is shown.

[0179] like Figure 7 As shown, a processing method 700 for an electronic device according to an embodiment of this disclosure may include: in step S701, each of one or more scanning modules receives corresponding configuration information via a first bus, wherein each of the one or more scanning modules is respectively connected to a corresponding peripheral device among one or more peripheral devices; in step S702, each of the one or more scanning modules collects data from the corresponding peripheral device based on the corresponding configuration information; and in step S703, a data packet assembly module assembles the data from the one or more peripheral devices collected by the one or more scanning modules into a data packet of a first format, and directly transmits the data packet to a memory via a second bus. In some embodiments, the second bus is directly connected to the central processing unit (CPU) and the memory of the electronic device, and the first bus is connected to the CPU and the memory via the second bus.

[0180] In some embodiments, the configuration information includes a scanning frequency for collecting data from the corresponding peripheral device, the scanning frequency being greater than the maximum scanning frequency at which the CPU can collect data from the corresponding peripheral device via the first bus.

[0181] In some embodiments, the one or more scanning modules include a sensor scanning module connected to a first sensor and configured to: receive first configuration information from the CPU via the first bus; collect and process first data from the first sensor based on the first configuration information; and transmit the processed first data to the data packetization module, wherein the first sensor is a sensor for sensing mouse movement data.

[0182] In some embodiments, the one or more scanning modules include a roller scanning module connected to a roller device and configured to: receive second configuration information from the CPU via the first bus; collect and process second data of the roller device based on the second configuration information; and transmit the processed second data to the data packet module.

[0183] In some embodiments, the one or more scanning modules include a key scanning module, which is connected to a key device and configured to: receive third configuration information from the CPU via the first bus; collect and process third data of the key device based on the third configuration information; and transmit the processed third data to the data packet module.

[0184] In some embodiments, the data packet assembly module includes a configuration module, which is configured to configure the source register address of the data packet and / or one or more data in the data packet, the destination address of the data packet and / or one or more data in the data packet in the memory, and the data bit width of the data packet and / or one or more data in the data packet.

[0185] In some embodiments, the data packetization module includes a status indication module, which is configured to indicate whether data corresponding to the one or more scanning modules has been transferred to the memory via one or more register status bits corresponding to the one or more scanning modules.

[0186] In some embodiments, each of the one or more scanning modules is a hardware module implemented using digital circuitry.

[0187] In some embodiments, the first bus is an Advanced Peripheral Bus (APB) and the second bus is an Advanced High Performance Bus (AHB).

[0188] In some embodiments, the first format is a data packet format conforming to the HID protocol of human-machine interface devices.

[0189] Embodiments of this disclosure also provide a computer-readable medium having instructions stored thereon that, when executed, can be used to implement method 700 as described above or any other method according to embodiments of this disclosure.

[0190] This disclosure uses a mouse SoC as an example for illustrative description. It should be understood that the methods or architectures provided in the embodiments of this disclosure can also be applied to any other device or product that requires efficient, stable, and low-power high-frequency data acquisition, and this disclosure does not impose any limitations.

[0191] It should be understood that the methods described above in conjunction with various embodiments or accompanying drawings are merely examples. Embodiments of this disclosure may also allow for any additions, deletions, substitutions, or combinations of any steps or elements in the methods or structures shown above. The steps in the methods of the embodiments of this disclosure may be performed in parallel or in any other order not shown, and this is not limiting.

[0192] Although this disclosure has been described with reference to exemplary embodiments, various changes and modifications may be suggested to those skilled in the art. This disclosure is intended to cover such changes and modifications that fall within the scope of the appended claims.

[0193] Nothing described in this disclosure should be construed as implying that any particular element, step, or function is an essential element that must be included within the scope of the claims. The scope of the patent subject matter is defined only by the claims.

[0194] Exemplary embodiments according to this disclosure have been disclosed herein, and although specific terminology has been used, it is used and interpreted in a general and descriptive sense only and not for limiting purposes. In some instances, features, characteristics, and / or elements described in connection with particular embodiments may be used alone or in combination with features, characteristics, and / or elements described in connection with other embodiments, unless otherwise stated. Therefore, those skilled in the art will understand that various changes in form and detail may be made to this disclosure without departing from the spirit and scope of the claims.

Claims

1. An electronic device, characterized in that, include: One or more scanning modules, each of which is respectively connected to a corresponding peripheral device in one or more peripheral devices and a first bus in the electronic device, and is configured to receive corresponding configuration information through the first bus and collect data from the corresponding peripheral device based on the corresponding configuration information; and A data packet assembly module is connected to the one or more scanning modules and a second bus in the electronic device, and is configured to assemble the acquired data from the one or more peripheral devices into a data packet of a first format, and transmit the data packet directly to the memory of the electronic device via the second bus. The second bus is directly connected to the central processing unit (CPU) and the memory of the electronic device, and the first bus is connected to the CPU and the memory through the second bus.

2. The electronic device according to claim 1, characterized in that, The configuration information includes a scanning frequency for collecting data from the corresponding peripheral devices, and the scanning frequency is greater than the maximum scanning frequency at which the CPU can collect data from the corresponding peripheral devices through the first bus.

3. The electronic device according to claim 1, characterized in that, The one or more scanning modules include a sensor scanning module, which is connected to a first sensor and configured to: Receive first configuration information from the CPU via the first bus; Based on the first configuration information, the first data from the first sensor is collected and processed; and The processed first data is then transmitted to the data packet module. The first sensor is a sensor used to sense the movement data of the mouse.

4. The electronic device according to claim 1, characterized in that, The one or more scanning modules include a roller scanning module, which is connected to a roller device and configured to: Receive second configuration information from the CPU via the first bus; Based on the second configuration information, the second data of the roller device is collected and processed; and The processed second data is then transmitted to the data packet module.

5. The electronic device according to claim 1, characterized in that, The one or more scanning modules include a key scanning module, which is connected to a key device and configured to: Receive third configuration information from the CPU via the first bus; Based on the third configuration information, the third data of the key device is collected and processed; and The processed third data is then transmitted to the data packet module.

6. The electronic device according to claim 1, characterized in that, The data packet assembly module includes a configuration module, which is configured to configure the source register address of the data packet and / or one or more data in the data packet, the destination address of the data packet and / or one or more data in the data packet in the memory, and the data bit width of the data packet and / or one or more data in the data packet.

7. The electronic device according to claim 1, characterized in that, The data packet module includes a status indication module, which is configured to indicate whether data corresponding to the one or more scanning modules has been transmitted to the memory by one or more register status bits corresponding to the one or more scanning modules.

8. The electronic device according to claim 1, characterized in that, Each of the one or more scanning modules is a hardware module implemented using digital circuitry.

9. The electronic device according to claim 1, characterized in that, The first bus is the Advanced Peripheral Bus (APB), and the second bus is the Advanced High Performance Bus (AHB).

10. The electronic device according to claim 1, characterized in that, The first format is a data packet format that conforms to the HID protocol of human-machine interface devices.