The disclosure relates a peripheral device of a computer system, preferably to a USB device. Some input devices, for instance mouse, trackball and keyboard, are known for decades and other input devices have been developed only recently, for instance electronic input pen (Apple (may be a trademark) pen, stylus pen) and three-dimensional mouse (for instance Spacemouse (may be a trademark)).
On one side, there are main stream applications of input devices. Exemplary, typing a text and/or navigating within a text. On the other side there are special applications of input devices, for instance in CAD (Computer Aided Design) or Gaming (E-Sport).
Time aspects are defined for instance within the USB (Universal Serial Bus) or in another standard specification, for instance a base interval between two trigger events. It is possible to transmit several data within one specified base interval. However, there is no exact timing possible within an interval.
It is an object of the invention to provide an improved device, especially an improved input device that allows the consideration of further time aspects. The device should be preferably simple and/or cost efficient and/or provide comfort to the user and/or for service in case of errors and/or of maintenance. Preferably, the device should allow exact timing also within a base interval. Furthermore, it should be preferably be possible to use device drivers of the operating system, especially without modifications. Furthermore, a corresponding method and other corresponding technical solutions shall be given.
This object is solved by the system according to claim 1. Further embodiments are given in the dependent claims. Furthermore, the object is solved by the subject matter of the independent claims.
Device, preferably USB device, comprising:
wherein the processor is configured to be externally triggered by trigger events to send at least one data packet comprising the data to be forwarded via the interface unit.
A first aspect of the disclosure relates to a device, preferably a USB device, comprising:
wherein the processor is configured to be externally triggered by trigger events to send at least one data packet comprising the data to be forwarded via the interface unit.
The device may be or may comprise an input device for user input, especially mechanical user input:
Alternatively, the device may be an output device, for instance an optical output device. The output device may also generate data which is similar to input data, for instance during maintenance. An example for an optical output device is an LED string controller device. However, the disclosure may also be used for other peripheral output devices, e.g. for a printer, a monitor, a touchscreen, a speaker and/or for a sound card.
The memory unit may comprise a programmable memory, for instance an EEPROM (Electrical Erasable Programmable Read Only Memory) or another type of non-volatile memory, for instance a Flash EEPROM or a solid-state drive (SSD).
The interface unit may be a USB device function which may be implemented in several ways as is mentioned below, e.g. integrated within an MCU (Micro Controller Unit), on a separate MCU or on a separate USB PHY (USB Physical IC) controlled for instance by an MCU.
The processor may be a CPU (Central Processing Unit), an MCU (comprising for instance memory and more peripheral units compared to a CPU. The processor may execute instructions of software.
The processor may be configured to send the data packet according to a device class definition which is specified by the USB Implementers Forum or to another standard. The processor may be configured to generate the data to be forwarded according to a pre-given time interval which is shorter than the time between two successive trigger events or to generate time data which indicates the time at which the data to be forwarded has been generated or which allows to calculate this time, wherein preferably the usage of the pre-given time interval or the usage of the time data is defined according to a custom and/or user defined extension of the device class definition.
It is possible to have exact time data also between the base interval which is specified in a standard based on the additionally time aspects which are considered in both cases, e.g. using a pre-given time interval or using time data. The pre-given time interval is less than the time interval specified in the standard and named as base interval. The pre-given time interval may not be transmitted between sender (transmitter) and receiver or in the opposite direction if it is known in both devices.
This may be named as an implicit timing scheme. However, if the pre-given time interval may be changed a corresponding communication is possible.
The transmission of time data is an explicit timing scheme which allows more flexibility and/or which creates less data.
Custom and/or user defined means that the definition is not within the standard, for instance not within the USB specification or within RS485 or within CAN (Controller Area Network). The custom and/or user defined definition has not to be agreed with other parties which reduces effort during product development. Furthermore, the custom and/or user defined extensions are not so obvious for third parties because only firmware may be involved which may not be read without additional effort by third parties.
The processor may be configured to detect the data to be forwarded at, at least two time points between two successive trigger events. The processor may be configured to generate a sequence of the data to be forwarded within the data packet. The place of the data to be forwarded within the sequence may corresponds to the place of a respective one of the at least two time points within a sequence of time points in which later time points have higher positions within the sequence compared to earlier time point. A fixed time interval may be used in order to specify the at least two time points.
Thus, an implicit timing scheme may be used based on the two sequences. Within the sequence of data to be forwarded all members or only “filled” members may be transmitted. If only “filled” members of the sequence are transmitted it is possible to transmit data which specifies the place number or the position within the sequence of data.
At least one data package may be generated from the data to be forwarded which data is implicitly mapped to time-stamps for instance according to at least two or at least three time points between two successive trigger events. A fixed time interval may be used in order to determine the points in time beginning for instance from a start time point. At least 10 time points, at least 100 time points, at least 1000 time points may be used between two successive (immediately following to each other) trigger events. Less than for instance 1 million time points may be used depending for instance on the calculation power of the used processors.
In an explicit timing scheme, the processor may be configured to determine a corresponding time data for the data to be forwarded, e.g. an interval data using a fixed reference time point or a time interval relative to the time which is relevant for a preceding time data. Alternatively, it is possible to use exact time data, e.g. hour, minute, second, millisecond, microsecond or only a part of these data in order to save memory and transmission capacity. The processor may be configured to transmit the time data via the interface unit.
The data package may be generated from data to be forwarded, for instance from user input data, which is explicitly mapped with time stamp data comprising at least one timestamp which specifies a time between two successive trigger events and wherein the time stamp data is included within the data package or within a separate data package that is also transmitted via the interface unit. Time data may be generated at least 10 times, at least 100 times, at least 1000 times between two successive trigger events according to a standard base interval. Time data for less than for instance 1 million time points may be generated within one base interval depending for instance on the calculation power of the used processors.
The device may be preferably a mouse device or a keyboard. The device may comprise at least one input element which is configured to detect haptic user input and to generate the data to be forwarded or to deliver data which is used to generate the data to be forwarded. The haptic input may be detected according to the instructions of the firmware program the device. The processor may be configured to detect/generate user input data. A mouse device may comprise a wheel or ball for detecting rotation, a movement detection device (sensor) which detects movement in at least on direction, two directions or three directions, and/or/at least one switch, for instance two buttons (left button and right button) or three buttons (plus middle button). Furthermore, the mouse may comprise a number keypad, for instance on a side face. The same may be valid for a trackball. The movement of a cursor on a display may be made smoother and more uninterrupted using the proposed mouse device.
In the case in which the device comprises a keyboard, the data to be forwarded may describe the pressing of a key of the keyboard, e.g. a keycode may be used. The keyboard may not be part of a mouse device. The keyboard may comprise alphanumeric keys, for instance more than 100 keys.
Furthermore, for both the mouse device and the keyboard the input may be made more precise. This may be an advantage in E-sport and gaming.
The device may be a device which fulfills the HID (Human Device Interface) class specification of the USB specification. Data to be forwarded may include user input data. The custom/user extension of the HID class specification may be used to define the time data in more detail, for instance type, length, place in the data packet. Optionally, report descriptors may be defined using the custom/user extension of the HID class specification.
The device may comprise a computer mouse. Furthermore, the device may comprise a motion sensor which generates the data to be forwarded depending on a position or a movement of the computer mouse. The device (especially the processor) may be configured to poll the sensor more than two, more than three, more than ten or more than 100 times between a first trigger events and an immediately successive trigger event, e.g. within a base interval defined by a standard. Additionally or alternatively, data which is polled between the first trigger event and the second trigger event may be sent, for instance completely or to at least 90 percent, in a report for the time interval which is defined by the first trigger event and the second trigger event. This may be different from known devices which transmit the polling data only in report that is valid for the next two trigger events.
The sensor may be a CCD (Charge Coupled Device) motion sensor having or comprising at least 20 pixels, for instance at least 36 pixels (x-direction) by 36 pixels (y-direction) or 30 pixels (x-direction) by 30 pixels (y-direction). Alternatively, a CMOS (Complementary Metal Oxide Semiconductor) sensor may be used for optical detection of the movement of the mouse device. A further example is a sensor which measures the movement based on interference using laser light.
Excellent performance of the mouse device may result from using the invention together with a polling sensor which may be polled 5000 times or more than 5000 times or 10000 times or more than 10000 times per second. It may be possible to prevent that the sensor sums up successive movement events, e.g. the spatial resolution of the sensor may be used completely. Alternatively, the resolution may be made higher as in prior art devices.
The input element may be an analog input element. The device may comprise at least one transforming unit which transforms an analog output signal of the input element to a digital value. The transforming unit may comprise or may be an analog digital converter (ADC), for instance an ADC having an output bit width of at least 2 bits, 4 bits, 8 bits 10 bits or more. Other transforming units are possible as well which do not comprise an ADC.
The device may be an optical output device. The optical output device may comprise at least one connection port for the electrical and/or mechanical connection to at least one LED (Light Emitting Diode) string and/or the LED string(s). The optical output device may control the operation of the LEDs of the LED string dependent on data received from a main processing device via the at least one interface or via a further interface. It may be possible to measure electrical parameters at the connection to the LED string and to visualize these parameters using a GUI as is explained in more detail below.
Thus, the data to be forwarded may be read from the optical output device. The optical output device may comprise LEDs, preferably RGB (Red, Green, Blue) LEDs, monochrome LEDs or LEDs of other colors. The LEDs may be electrically connected to form an LED-string. The data which is read may be measurement data. A GUI may be used to display the measurement data with high time resolution but with low overhead with regard to the main function of the optical output device.
The device may be a device which fulfills the CDC (Communication Device Class) class specification. The custom/user specified or defined extension of the CDC class specification may be used to define the usage of the time data in more detail. Type, length, place of data within a data packet may be defined.
Alternatively or additionally, the device may a device which fulfills the MSC (Mass Storage Class) class specification of the USB specification. The custom/user defined extension of the MSC class specification is used to define the usage of the time data in more detail. Type, length, place of data within a data packet may be defined.
Composite devices may be used, for instance in order to ease firmware loading and/or to transfer measured data from the device, for instance from a computer mouse device.
The processor may be configured to generate for data to be forwarded within the same data package at least two time data which indicate the time interval between the time points relevant for a respective pair of two successive time data to be forwarded or which indicate the time interval between a reference time point and the time point relevant for the respective one of the at least two time-interval data. The processor may be configured to transmit the at least two time-interval data via the interface. The same data packet or a different data packet may be used to transmit the time data compared to the packet which comprises the data (user input data) to be forwarded. The time data may be comprised within the same data structure or within a different data structure compared to the data structure which is defined for the data to be forwarded. The time data may be used to calculate time stamp data for forwarded date within data packets.
The processor may be configured to generate time interval data which may be included within the header of a data package which comprises several of the data to be forwarded. Preferably, a time interval specified within the time interval data may allow the calculation of a time stamp for the data to be forwarded. All data of the sequence may be included within the data package. Alternatively, only some of the data of the sequence may be transmitted, for instance by using data which indicates the position within the sequence. No further time stamp data may be transmitted within a package. Preferably only one time-interval data is transmitted per packet.
The invention relates further to a Computer device, comprising:
wherein the memory is configured to include at least one program which enables the usage of a graphical user interface, and
a) wherein the memory is configured to store a device driver for a device according to one of the claims 2 to 12, and
wherein the memory comprises at least one application program which receives the data to be forwarded and which considers the pre-given interval or the time data for processing of the data to be forwarded,
wherein for variant a) the graphical user interface enables a graphical visualization/representation of the data to be forwarded according to the pre-given time interval or according to the time data using a time axis.
In a variant b) the memory is configured to store a device driver for one of the following devices:
wherein for variant b) the graphical user interface enables a graphical visualization/representation of the data to be forwarded using a time axis and using the time interval between the trigger events as specified in the USB standard.
A device driver of the operating system may be used, e.g. Windows, IOS, Linux etc.
However, proprietary device drivers of companies which produce only peripheral devices may also be used. The application may be a gaming program. The visualization of the GUI may be similar to an oscilloscope function. However, there may be no extra probe which can be contacted freely to arbitrarily test points. Thus, the probe may be hard wired within the device, for instance hard wired to an input element or another element of USB device. The GUI function is preferably a function in addition to main function of application program.
The visualization function may be included without much overhead compared to the main function of the input device or of the output device. Nevertheless, the visualization function may have a very high time resolution because of the usage of the pre-given time interval and/or of the time data. The GUI may be implemented in a device driver program and/or within the application program.
The computer device may be configured to generate the trigger events according to the USB specification using a time interval of 1 millisecond according to USB specification 2.0 or of 125 microseconds USB specification 2.0 or according to a future USB specification which is higher than 3.0 or to another USB specification which defines a time interval less than 125 microseconds.
The computer device may comprise a threshold setting unit which allows to set at least one threshold value of the device which forwards the data to be forwarded. The threshold may be displayed and/or set within the GUI (graphical User Interface). Furthermore, the result of setting the threshold may be displayed in the GUI, preferably in real time, e.g. having delay of less than 10 ms or of less than 1 ms. Thus, it is possible to set the threshold value in real time in a sophisticated manner. The threshold may refer for instance to the detection of click of mouse button or of a keyboard key or button. The threshold setting unit may be realized using part of application program and/or of device driver. The threshold may be set manually and/or automatically.
The graphical user interface may be configured to display performance data of the device, preferably of a computer mouse device and preferably at least one of the following performance data:
Thus, it is possible to visualize the performance data of the device in real time, i.e.
within less than 20 milliseconds or within less than 10 ms or within less than 1 ms. This may enable to select optimized threshold values for the operation of the device.
The invention relates further to a method for operating a device according to any one of the embodiments mentioned above.
The visualization function of the graphical user interface may be used by a service person in order to detect an error of the device which forwards the data to be forwarded. Alternatively or additionally, the visualization function of the graphical user interface may be used by a service person or by a user in order to set at least one threshold value for the operation of the device which forwards the data, preferably manually and/or automatically. Enhanced usability, service and maintenance is possible thereby.
The visualization function may be an auxiliary function of the device which forwards the data to be forwarded and wherein a main function of the device which forwards the data to be forwarded is an input function of haptic data from a user or an optical output function. The visualization function may be hard wired to a circuit node of the device, for instance of an input device or an output device.
The foregoing has outlined rather broadly the features and technical advantages of embodiments of the present disclosure. Additional features and advantages of embodiments of the present disclosure will be described hereinafter. These features may be the subject-matter of dependent claims. It should be appreciated by those skilled in the art that the conception and specific embodiments disclosed may be readily utilized as a basis for modifying or designing other structures or processes for realizing concepts which have the same or similar purposes as the concepts specifically discussed herein. It should also be recognized by those skilled in the art that equivalent constructions do not depart from the spirit and scope of the disclosure, such as defined in the appended claims.
For a more complete understanding of the presently disclosed concepts and the advantages thereof, reference is now made to the following description in conjunction with the accompanying drawings. The drawings are not drawn to scale. In the drawings the following is illustrated in:
Input device I may be:
There may be a bus 120 between processor P and memory M. Further units of computer device 110 are not shown but are known to the person skilled in the art, for instance a power supply unit, an optional internet connection, etc. Alternatively, a server solution may be used that uses calculation power and/or memory space available on the internet supplied by other service providers or on an intranet of a company.
Computer device 110 may comprise:
Hardware of the peripheral device, for instance input device I.
All input elements may comprise the same elements, for instance a push button plate in addition to push button 317. A key code may be defined and used for each push button. Push button 317 may belong to a left mouse button of input device I or of mouse device I.
Memory M2 or 318 may comprise a firmware 322, FW that includes operation instructions for the processor or controller 316. The methods mentioned in the following may be executed if the instructions of firmware 322, FW are processed by the processor or controller 316. Alternatively, a circuit without a processor and a controller 316 may be used, for instance an FPGA (Field Programmable Gate Array), PLA (Programmable Logical Array), ASIC (Application Specific Integrated Circuit), etc. A finite state machine may be realized using a processor or a device without a processor.
In more generally words, device I may be a USB device, comprising:
A first embodiment relates to an implicit operation mode of considering time aspects, see description of
Device I may be a device which fulfills the HID and/or HID/CDC and/or the MSC class specification of the USB specification. The data DS1 to DSn to be forwarded may include user input data. An extension of the HID and/or HID/CDC and/or the MSC class specification may be used to define the structure of data DS1 to DSn and/or the structure of time data TD1, TD2 in more detail, see
Device I may comprise or may be a computer mouse device I. The data DS1 to DSn to be forwarded may describe a position or a movement of the computer mouse I or the pressing of a button of the computer mouse I.
Analog switches/push buttons may be used in keyboard KB. A transformation unit TrU, may be used to convert the analog values to digital values. Transformation unit TrU may comprise an ADC (Analog Digital Converter). The bit-width of the ADC may be as specified in the first part of the description, e.g. 10 bit.
In more general words the following is valid for the first embodiment:
The time interval In may be specified by the value of time interval data TIN which may be transmitted once for each data packet DP1 or only when the length or duration of the time interval In has to be changed. Time interval In is less than the interval IB between two trigger events Tr1 and Tr2. Interval IB is 1 ms (millisecond) or 125 us (microseconds) according to the USB specification. Time interval In may be half or less than half, a third or less than a third, etc. a tenth or less than a tenth compared to the interval IB which is used at the moment for the transmission of input data which belongs to time points t1 to tn. It goes without saying that different kinds of data reduction may be used. It is for instance possible to transmit only values which are different from zero. Furthermore, it is possible to indicate the position within the sequence by additional position data.
It is possible to use at least one counter in order to determine the duration of time interval In for each sampling event. The counter may be incremented or decremented using a constant clock rate. The counter may be set to zero or to a start value again and again. Alternatively, other modes of counter setting may be used.
Exemplary, the input data may be data of a mouse wheel and/or of position (x, y (z)) or of position-change (x, y (z)) of the mouse device I or a key code of a key pressed on the mouse device I. It is for instance possible to sample the x-position or the change of the x-position as is apparent from
Thus,
In the second embodiment, the processor MCU is configured to determine a corresponding time data TD1, TD2 for the data DS1 to DSn to be forwarded.
Furthermore, the processor MCU is configured to transmit time data TD1, TD2 via the interface unit IF2. The description of
An interval IB between two further successive trigger events Tr3 and Tr4 is 1 ms (millisecond) or 125 us (microseconds) according to the USB specification. Thus, all time intervals for events between trigger events Tr1 and Tr2 may be less than IB. There are the following possibilities for generating time data TD1, TD2:
It is possible to use at least one electrical counter in order to determine the values for the duration of the time intervals. The counter may be incremented or decremented using a constant clock rate.
Exemplary, the input data may be data of a mouse wheel and/or of position (x, y (z)) or position (x, y (z)) change of the mouse device or a key code of a key pressed on the mouse. It is for instance possible that the user clicks the left mouse button at time t10.
The form of the definition is for instance known from the computer language C, C#, Swift, etc. There is the following meaning of the terms:
The data structure DATA_STRUCT may be used for the transmission of physical parameters, for instance of temperature values or other values.
Other appropriate definitions are of course possible as well.
Data, especially input data or measurement data (for instance from an optical output device 800 as illustrated in
There may be the following possibilities to transmit time related data In, TD1, TD2 within a data package DP1 which includes also the data DS1 to DSn to be transmitted, e.g. input data:
Furthermore, it is possible to transmit the time related data TD1 to TD2 or TIN in a separate data package which does not include the data DS1 to DSn to be forwarded, i.e. the input data. However, the same order may be used in the two sequences to map input data to time related data.
A further possibility is to consider the time implicitly and to not to transmit time related data at all, see for instance
Time related data may be transmitted in header H1, see for instance time interval data TIN. The header may be valid for all data included within one data packet DP1.
Thus, there is a first possibility (see also
A second possibility (see also
A third possibility is the implicit consideration of further time aspects as mentioned above.
The following is valid for the graphical user interface 700 if used in the first embodiment (
A third embodiment relates to the usage of the graphical user interface 700 without extending the USB specification and/or an USB device class specification, e.g. HID, CDC, MSC, with regard to the consideration of additional time aspects. The following may be valid for the third embodiment.
Computer device 110 may comprise:
In more detail the following may be valid for all three embodiments of the graphical user interface 700. Graphical user interface 700 may comprise:
Furthermore and optionally, the graphical user interface 700 may be configured to display performance data of the device. The following data may be displayed for a computer mouse device (I) or for other devices. At least one, at least two, at least three, at least four or all of the following performance data may be displayed for instance:
This may enable advanced maintenance and/or advanced setting of at least one threshold value. The following is an example for a table which may be displayed in GUI 700:
The sensor may be a motion sensor which delivers values for the x-motion and/or for the y-motion of the mouse. The sensor may be able to output a sum of values of motion data. However, is polling is fast enough summing up of values may not be necessary any more. A polling rate of 10000 per second is only an example. Other polling rates may be possible as well, for instance within the range of 5000 to 30000 times per second.
Optical output device 800 may comprise a control unit CPU8 which controls the operation of LEDs LED1a to LED2n (n is a natural number, for instance within the range of 1 to 10000 or within the range of 1 to 1000 or within the range of 1 to 100) of the at least one LED string Str1, Str2 dependent on data received from a main processing device, for instance computer device 110, via an interface IF3.
LED strings Str1, Str2, Str-n (n is a natural number, for instance 6 or more, or more than 24) may use WS281x, for instance WS2812 or other programmable LEDs that have integrated own capabilities in the strip. This is also known as addressable RGB (Red Green Blue) Strips.
LED strings Str1, Str2 including a serial connection of LEDs may be used for instance in order to lighten the keys of a keyboard KB, see for instance WO 2014/131699 A1, especially second aspect. Further examples of LED strings Str1, Str2 are known from WO 2020/147930 A1. Both documents are included by reference herewith for all purposes, especially for all legal purposes.
It is possible to use graphical user interface (GUI) 700 in order to display the signal at the beginning of the strip, for instance a current signal, a voltage signal, a resistance signal etc. The measurement data may be transmitted using time aspects mentioned above for the first embodiment (
The optical device 800 may fulfill the HID and/or HID/CDC and/or MSC specification or another USB device class specification which may be extended or not, especially with regard to the transmission of the measurement data. An extension of the HID and/or HID/CDC and/or MSC class specification may be used to define the structure of data DS1 to DSn and/or the structure of time data TD1, TD2 in more detail.
Thus, the data to be forwarded describes the pressing of a key K1 to Ky of keyboard KB. Keyboard KB, especially an alpha numeric keyboard, may have at least 50 key switches, usually not more than 200 key switches or not more than 2000 key switches/push buttons. Keyboard KB may be a device separate from computer device 110 or it may be an integral part of computer device 110. Alternatively, keyboard KB may have less switches/push buttons. A keypad may have between 10 and 20 key switches, especially a keypad used for entrance control.
For instance, keyboard KB may comprise of at least one, two, three, four, five or all of:
Alternatively, a keypad, a game console, a game pad or a computer mouse that has a lot of buttons, for instance more than 10 buttons may be used in the same way as keyboard KB.
Data transfer of input data from keyboard KB to main computer device 110 may be realized according to the first embodiment (
The third embodiment may be valid for keyboard KB as well, i.e. using graphical user interface 700 with timing aspects only as defined in the USB specification, i.e. using the basis interval IB of the USB specification without an extension.
Analog switches/push buttons may be used in keyboard KB. Transformation unit TrU, see
In other words, USB full speed FS micro frame (polling) is defined to be once every 1 millisecond for 12 Mbit/s (Megabit per second) bandwidth. USB high speed HS micro frame (polling) is defined to be once every 125 microseconds for a bandwidth of 480 Mbit/s or 60 MB/s (Megabyte per second)
Thus, full speed FS has a limitation to 1 kHz (Kilohertz). The invention is based for instance on the following idea: If the delay of 1 ms (millisecond) is accepted and if more data is transferred within the basic interval IB considering further time aspects then it is possible to break the limitation, i.e. there may be a higher time resolution within the data packet DP1 or within a series of data packets DP1 which are transferred each millisecond. If for example the time interval of 1 ms is separated or divided into 10 segments or sub-intervals then it is possible to have a time period of 100 microseconds between two subsequent data values corresponding to 10 kHz. Factor 100 gives 100 kHz and factor 1000 for dividing gives 1 MHz and so on. This may enable a very high time-resolution of input values.
The same idea holds for high speed HS USB where chips are more expensive compared to chips for full speed FS USB. High speed HS has a specified limitation to 8 kHz (Kilohertz). If the delay of 125 microseconds is accepted and if more data is transferred within the basic interval IB considering further time aspects then it is possible to break the limitation, i.e. there may be a higher time-resolution within the packet DP1 or within the packets DP1 of a series of data packets which are transferred each millisecond. If for example the time interval of 1 microsecond is separated or divided into 10 segments or sub-intervals then it is possible to have a time period of 12.5 microseconds between two subsequent data values corresponding to 80 kHz. Factor 100 gives 800 kHz and factor 1000 for dividing gives 8 MHz and so on. This may enable extremely high time-resolution of input values.
This idea is for instance especially interesting for computer mouse devices I. Especially for high end devices which are used for instance by gamers or users of other E-sports (electronic sports). Furthermore, this may be relevant for keyboard KB, touchscreens, electronic pen devices, etc.
It is possible to mitigate the delay of 1 ms or of 125 microseconds if for instance analog technique is used for detection of movements of an input device I, KB, for detection whether a button 317, K1 is pressed, etc. Analog technique may allow shorter times for the detection of input events compared to mainly digital approaches. It is for instance possible to detect a signal in analog technique within 200 microseconds compared to a detection based on digital technique in 10 ms to 20 ms. Analog switches may be used for instance which have an analog output signal which indicates how “deep” the switch is pressed. The analog output signal may comprise more than two values, for instance at least three values, at least four values at least eight values and so on, especially if the analog signal is converted to a digital signal for further processing using for instance an analog digital converter ADC or another device.
The transmitted data DS1 to DSn which has a high time resolution may be used for at least one of the following purposes or for multi-purposes, for instance:
A special protocol may be used to represent single data values, for instance a serial protocol. Bit values may be encoded using for instance ASCII (American Standard Code for Information Interchange) code or other codes, e.g. Huffman Code etc. The protocol may be a proprietary protocol of a company or may be a standard protocol which was agreed to by at least two companies.
Timing information may be encoded implicitly by a fixed timing to save transmission capacity and memory space for storing the data. Alternatively, timing data may be transmitted in data pairs or separately for data value blocks within one data package DP1.
Movement data of a mouse input device I may be transmitted for instance. It may be a non-preferred approach to transmit the x-movement values and the y-movement value for two subsequent micro frames A and B. For micro frame A two “old” values may be transmitted and for micro frame B two “sum values” may be transmitted for the x-movement and the y-movement which has took place in the meantime, i.e. between the transmission for micro frame A and for micro frame B. However, this can result in a comparably coarse detection precision. If it is assumed that the mouse is moved 10 pixels in x-direction and 15 pixels opposite to the x-direction the result of summing up the pixels is −5 pixels. Contrary, using the new approach each movement, especially a movement by each pixel may be detected and the corresponding event may be stored and/or transmitted exactly, i.e. first pixel in x-direction, second pixel in x-direction etc. until tenth pixel in x-direction, first pixel opposite the x-direction, second pixel opposite to the x-direction and so on until the 15th pixel opposite to the x-direction.
The transmitted values are received for the corresponding time frames and a program may calculate the correct time stamps if an implicit timing scheme is used. If timing data is transmitted explicitly, the program may use the exact timing data for further processing of the data values which are also transmitted.
The idea may be used together with the well-known USB (Universal Serial Bus) protocol, i.e. USB 1.0, 2.0 (Apr. 27, 2000, Revision 2.0), 3.0 or higher developed by the companies Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC and Philips. This USB protocol is widely used in the computer industry, in the smartphone industry and in other industries.
Furthermore, the idea may be used together with USB Device Class Definition(s), for instance:
USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport,
USB Mass Storage Class Bulk-Only (BBB) Transport,
USB Mass Storage Class UFI Command Specification,
USB Mass Storage Class Bootability Specification,
USB Mass Storage Class Compliance Test Specification,
USB Lockable Storage Devices Feature Specification (LSD FS).
However, HID may not only be relevant for USB but also for other protocols, for instance for the Bluetooth protocol of the Bluetooth Special Interest Group (SIG). Appropriate and/or corresponding changes similar to the changes mentioned above may also be made for Bluetooth or other protocols,
The invention may be use in all cases in which a time slot is defined in a standard and in which exact timing should also be used for data which is transmitted within a basic time slot. Examples for such standards are:
CAN is specified in ISO (International Standardization Organization) 11898-1 to ISO 11898-6 and in SAE (Society of Automotive Engineers) J2284- J2284-5.
Although embodiments of the present disclosure and their advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made therein without departing from the spirit and scope of the disclosure as defined by the appended claims. For example, it will be readily understood by those skilled in the art that many of the features, functions, processes and methods described herein may be varied while remaining within the scope of the present disclosure. Moreover, the scope of the present application is not intended to be limited to the particular embodiments of the system, process, manufacture, method or steps described in the present disclosure. As one of ordinary skill in the art will readily appreciate from the disclosure of the present disclosure, systems, processes, manufacture, methods or steps presently existing or to be developed later that perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such systems, processes, methods or steps. The embodiments mentioned in the first part of the description may be combined with each other. The embodiments of the description of Figures may also be combined with each other. Further, it is possible to combine embodiments mentioned in the first part of the description with examples of the second part of the description which relates to
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2020/078168 | 10/7/2020 | WO |