GRIP REJECTION HOST PROCESSING

An example grip rejection method includes detecting a touch on a touch screen, where the touch covers an area of the touch screen. The grip rejection method includes in response to detecting a touch, determining touch coordinates representing the touch area with a touch controller. The grip rejection method includes in response to determining the touch coordinates with the touch controller, determining grip rejection information with the touch controller, where the grip rejection information includes signal strength information of the touch. The grip rejection method includes transmitting the touch coordinates and the grip rejection information of the touch.

TECHNICAL FIELD

The present invention relates to the field of computer interaction, specifically to a grip rejection method for input devices.

BACKGROUND

In various human-computer interaction scenarios, touch-based input devices (such as touch screens) have become prevalent due to their intuitive and natural user interface. However, a common challenge associated with touch-based input devices is the occurrence of unintentional or false touches, which can lead to erroneous input and degrade the user experience. This problem is particularly significant in applications where the user's fingers or palm are expected to hover or rest near the touch-sensitive surface without triggering input events.

To address this issue, existing solutions typically rely on software-based algorithms executed by a touch controller that attempt to differentiate between intentional touch gestures and accidental touches. These algorithms often involve complex signal processing techniques and heuristic rules to interpret touch patterns and determine the user's intention accurately. However, these approaches are prone to false positives or false negatives, resulting in either missed inputs or unwanted activations.

SUMMARY

In accordance with a preferred embodiment of the present invention, a grip rejection method includes detecting a touch on a touch screen, where the touch covers an area of the touch screen. The grip rejection method includes in response to detecting a touch, determining touch coordinates representing the touch area with a touch controller. The grip rejection method includes in response to determining the touch coordinates with the touch controller, determining grip rejection information with the touch controller, where the grip rejection information includes signal strength information of the touch. The grip rejection method includes transmitting the touch coordinates and the grip rejection information of the touch.

In an embodiment, an electronic device includes a touch screen, and a touch controller coupled to a memory storing instructions to be executed in the touch controller. The instructions when executed cause the touch controller to detect a touch on a touch screen, the touch covering an area of the touch screen. The instructions when executed further and in response to detecting a touch, determine touch coordinates representing the touch area with the touch controller. The instructions when executed further and in response to determining the touch coordinates with the touch controller, determine grip rejection information with the touch controller, where the grip rejection information includes signal strength information of the touch. The instructions when executed further transmit the touch coordinates and the grip rejection information of the touch.

It is to be understood that both the foregoing general description and the following detailed description are exemplary only and are not restrictive of the disclosure as claimed.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Embodiments of this application pertain to systems and methods for detecting and rejecting unintentional or unwanted grips on input devices, such as touch screens, touch pads, or other interactive surfaces.

Grip rejection algorithms differentiate between intentional touch inputs and unintended touches caused by a user's grip or accidental contact with an electronic device's touch screen. These algorithms utilize the touch screen's ability to sense multiple touch points simultaneously.

Typically, to implement a grip rejection algorithm, a touch controller analyzes various factors such as touch pressure, duration, and the number and distribution of touch points. By considering these parameters, the grip rejection algorithm distinguishes deliberate touches from inadvertent touches resulting from the user holding the device.

For example, when a user firmly grips the electronic device with the touch screen (such as a mobile phone or a tablet) with their hand, the grip rejection algorithm detects the continuous presence of multiple touch points over a prolonged period. It recognizes that these multiple touch points are not intentional inputs and discards them, preventing unintended interactions with the electronic device. In contrast, when the user intentionally interacts with the screen, the grip rejection algorithm accurately detects and responds to the desired touch inputs.

Grip rejection algorithms enhance the user experience by reducing false touches and improving the accuracy of touch recognition. They are particularly useful in scenarios where touch screens are small or bezel-less, or for thin electronic devices, all of which increase the likelihood of unintentional touches.

By leveraging the capabilities of touch screens and employing sophisticated grip rejection algorithms, electronic devices provide more reliable and precise touch interactions, making them more intuitive and user-friendly.

Conventional grip rejection algorithms are implemented in the touch controllers of electronic devices with a touch screen, which limits the grip rejection algorithm's accuracy and performance. This is due to current grip rejection algorithms not incorporating the additional information that is known by the application processor of the electronic device. The additional information known by the application processor comprises the electronic device's orientation status (horizontal or vertical), a grip rejection dynamic valid area (different applications may have different areas of the touch screen in which touch inputs are rejected), and what specific applications are executing. As a result, grip rejection algorithms that are executed solely by the touch controller miss an opportunity to significantly improve their accuracy and performance by incorporating the additional information of the application processor.

The system of this disclosure is an electronic device that executes grip rejection algorithms in the application processor. The grip rejection method of this disclosure transmits the touch coordinates and the grip rejection information determined by the touch controller to the application processor, and the application processor implements grip rejection algorithms that use the touch coordinates, the grip rejection information, and information known by the application processor for grip rejection determination. The application processor implements grip rejection algorithms that use the information from the touch controller in combination with the application information to determine whether to pass or reject a touch event. This differs from typical grip rejection methods, where the typical method only uses the information from the touch controller and executes the grip rejection algorithms in the touch controller to determine whether to pass or reject a touch event.

FIG.1illustrates an electronic device100capable of implementing the grip rejection method of this disclosure. The electronic device100is capable of determining whether to pass or reject a touch event on a touch screen104by implementing grip rejection algorithms in an application processor106. The grip rejection method uses grip rejection information and touch coordinate information passed to the application processor106by a touch controller102, and uses the additional information known to the application processor106to determine to pass or reject a touch event. The electronic device100comprises the touch screen104, the touch controller102, the application processor106, and a memory108. The electronic device100may be any device comprised of the elements mentioned above, such as a smart phone, or a tablet.

The touch screen104is a display device for displaying various applications (for example, phone communication, data transmission, broadcasting, camera and the like) and sense different touch inputs on the electronic device100which are processed by the touch controller102. The touch screen104acting as a display device provides a user interface that can be configured to adapt to various applications, and may receive at least one touch event through a user's body (for example, fingers including a thumb). The user interface may include a predetermined touch area. The touch screen104transmits an electrical signal corresponding to the touch event through the user interface to the touch controller102. The touch screen104may be implemented any type of touch screen, such as resistive touch screens, capacitive touch screens, surface acoustic wave (SAW) touch screens, infrared touch screens, and optical touch screens. All of which comprise a touch controller that implements grip rejection algorithms.

Resistive touch screens comprise two flexible layers coated with a resistive material and separated by a small gap. When the touch screen is pressed, the top layer contacts the bottom layer at the touch point, completing an electrical circuit. The layers comprise polyester or similar materials with a resistive coating. The touch controller applies a small voltage to the layers, and when a touch occurs, the voltage at the point of contact changes. By measuring the voltage change, the touch controller calculates the coordinates of the touch.

Capacitive touch screens utilize the principle of electrostatic capacitance. They comprise a transparent material, often glass, with a grid of electrodes. When a conductive object, like a finger, touches the touch screen, the electrostatic field around the touch screen changes. The change in the electrostatic field alters the capacitance at the touch point. The touch controller measures the capacitance at each touch point and calculates the touch coordinates based on the changes in capacitance. Capacitive touch screens offer multi-touch capabilities and are known for their responsiveness.

SAW touch screens employ ultrasonic waves that are transmitted across the surface of the touch screen. The touch screen comprises two transducers and reflectors positioned along the edges. When the touch screen is touched, the sound waves are absorbed, causing a decrease in the transmitted signal. The touch controller detects this decrease and determines the touch location based on the time it takes for the waves to reach the receiving transducer. SAW touch screens offer excellent optical clarity, high touch accuracy, and can support multiple touch points simultaneously.

Infrared touch screens comprise an array of infrared LED emitters and photodetectors placed around the touch screen's edges. The emitters create an invisible grid of infrared light beams across the touch screen surface. When an object touches the touch screen, the infrared beams are interrupted, and the photodetectors detect the interruption. The touch controller analyzes the interrupted beams and calculates the touch position based on the detected interruptions. Infrared touch screens are durable, reliable, and can work with any object that interrupts the beams, such as a finger or stylus.

Optical imaging touch screens comprise cameras or image sensors positioned behind the touch screen to capture images. When the touch screen is touched, the cameras detect the changes in light patterns caused by the contact. The touch controller analyzes the captured images and identifies the touch position based on the variation in light patterns. Optical imaging touch screens offer high touch accuracy, support multi-touch gestures, and can work with any input object that blocks or alters the light, making them versatile and suitable for various applications.

Any touch events that occur on the touch screen104are processed by the touch controller102. The touch controller102continuously scans the touch screen104, detects touch events, converts them into digital signals, calculates the touch position, and communicates the information to the electronic device's100application processor106. The application processor106then interprets the touch event and triggers the appropriate actions or responses, allowing users to interact with applications, navigate menus, draw, type, or perform various other tasks directly on the touch screen104.

The touch controller102, also known as a touchscreen controller or touch sensor controller, is an integral component of a touch screen system. The touch controller102interprets and translates the touch event detected on the touch screen104into digital signals that are processed by the electronic device's100application processor106.

The touch controller102acts as an intermediary between the touch screen104and the electronic device's100application processor106. The touch controller102serves as the interface that converts physical touch interactions into digital data, enabling the electronic device100to recognize and respond to user input accurately.

The touch controller102continuously scans the touch screen104to detect any touch or contact. The touch controller102monitors the electrical properties of the touch screen104, such as changes in capacitance, resistance, or optical properties, depending on the touch screen technology employed (e.g., capacitive, resistive, infrared). When a touch event is detected, the touch controller102registers the coordinates and other relevant information of the touch event. The other relevant information of the touch event that the touch controller102registers is the grip rejection information.

The grip rejection information of the touch event comprises a minor width, a major width, a maximum signal strength, a node count, and an edge signal strength ratio. The minor width is the width of the touch in the smallest width side of the electronic device100. The major width is the width of the touch in the largest width side of the electronic device100. The minor width side may be in a direction orthogonal to the direction of the major width side of the electronic device100. The maximum signal strength is the largest signal value detected on the touch screen104from the touch event. The node count is the number of nodes of the touch screen104that are covered by the touch event. And the edge signal strength ratio is a ratio of the sum of the outer edge signal strengths of the touch event compared to the sum of the inner edge signal strengths of the touch event.

The touch controller102converts the analog signals received from the touch screen104into digital signals that can be processed by the electronic device's100application processor106. The touch controller102performs analog-to-digital conversion, sampling the analog touch data at a high frequency and quantizing it into digital values representing the position and characteristics of the touch, as well as the grip rejection information mentioned above.

Based on the digital touch data received, the touch controller102calculates the precise coordinates of the touch point on the touch screen104of the touch event. In embodiments, the touch controller102applies algorithms to interpret the position, pressure, size, and other attributes of the touch event.

In addition to basic touch detection, touch controllers incorporate gesture recognition capabilities as well as grip rejection capabilities. The touch controller102, using gesture recognition algorithms, can identify and interpret gestures such as swipes, pinches, rotations, and multi-finger gestures, providing enhanced functionality and user interaction possibilities. The touch controller102, using grip rejection algorithms, can also identify and interpret the types of grips on the electronic device100associated with a specific user.

However, in this disclosure, the touch controller102does not determine whether to reject or pass a touch event using a grip rejection algorithm in the touch controller. The touch controller102of this embodiment determines the touch coordinates and the grip rejection information of the touch event. The touch controller102then sends the touch coordinates and the grip rejection information in two separate events to the application processor106of the electronic device100.

The touch controller102communicates with the electronic device's100application processor106, transmitting the processed touch data for further processing. The touch controller102may employ standard communication protocols such as I2C (Inter-Integrated Circuit) or SPI (Serial Peripheral Interface) to transfer the touch information to the electronic device's100application processor106.

The touch controller's102performance and capabilities significantly impact the touch screen's104responsiveness, accuracy, and overall user experience. Advanced touch controllers employ sophisticated algorithms and signal processing techniques to improve touch detection accuracy, reject unintended touches or palm contact, and enhance gesture recognition capabilities.

It is important to note that the touch controller102is distinct from the touch screen104, which physically detects the touch input. The touch controller102complements the touch screen104by converting the raw touch data into usable digital signals that can be understood by the electronic device100, facilitating seamless touch interaction and enabling a wide range of touch-based applications and functionalities.

Once the touch coordinates and the grip rejection information have been processed by the touch controller102, the touch coordinates and the grip rejection information are transferred in two separate events to the application processor106.

The application processor106is a key component in electronic devices such as smartphones, tablets, smartwatches, and other portable devices. The application processor106comprises a system-on-a-chip (SoC) designed to handle the computational and processing tasks associated with running applications and executing the electronic device's100operating system.

The application processor106serves as the brain of the electronic device100, responsible for executing instructions and managing the electronic device's100overall performance. The application processor106may comprise various components, including one or more central processing units (CPUs), graphics processing units (GPUs), memory controllers, input/output interfaces, multimedia accelerators, and other specialized processing units, in an embodiment.

The primary function of the application processor106is to execute software applications, enabling the electronic device100to perform tasks such as web browsing, running productivity tools, playing games, streaming media, and running various other software programs. The application processor106interprets and executes instructions provided by the operating system and applications, managing tasks, allocating system resources, and coordinating communication between different components of the electronic device100.

The application processor106is typically optimized for power efficiency and performance, striking a balance between processing capabilities and energy consumption to ensure optimal battery life and user experience. The application processor106comprises multiple cores, allowing for parallel processing and improved multitasking capabilities, in an embodiment.

In addition to executing software applications, the application processor106may also execute other functions such as managing device connectivity (e.g., Wi-Fi, cellular data), processing sensor inputs (e.g., accelerometer, gyroscope), and controlling multimedia processing (e.g., video decoding, image processing). The application processor106provides the necessary processing power and computational resources to enable a wide range of functionalities and features in modern electronic devices.

In this disclosure, the application processor106implements the grip rejection algorithms. The application processor106uses grip rejection algorithms that incorporate the application information (the application information comprising information known by the application processor106) in combination with the touch coordinate information and the grip rejection information that are provided by the touch controller102to determine to pass or reject a touch event.

In various embodiments, the embodiment grip rejection algorithms discussed herein in various embodiments may be executed at operating system (OS) level or lower such as at the kernel level to ensure security and having priority over other applications. By using the application processor106to perform the grip rejection algorithms, the electronic device100determines the grip status of the device with higher efficiency, and the overall performance of the grip rejection is improved. A more dynamic adjustment capability is available for grip settings when the application processor106performs the grip rejection algorithms. And, by implementing the grip rejection algorithms in the application processor106, the touch controller102has more available memory for programming that can be used for algorithms or features to improve/optimize the touch performance.

Overall, the application processor106enables the functionality and performance of electronic devices, allowing users to interact with applications and services seamlessly. The application processor's106capabilities and efficiency contribute significantly to the user experience and determine the electronic device's100overall responsiveness and performance. The application processor106executes the instructions or programs that are stored in memory108.

Memory108may be any component or collection of components adapted to store programming, event information, or instructions for execution by the application processor106. The memory108may store the grip rejection method of this disclosure for execution by the application processor106. The memory108may also store instructions for execution by the touch controller102. In an embodiment, memory108includes a non-transitory computer-readable medium. The non-transitory computer-readable medium includes all types of computer-readable media, including magnetic storage media, optical storage media, flash media, and solid-state storage media.

It should be understood that software can be installed in and sold with electronic device100. Alternatively, the software can be obtained and loaded into electronic device100, including obtaining the software through a physical medium or distribution system, including, for example, from a server owned by the software creator or from a server not owned but used by the software creator. The software can be stored on a server for distribution over the Internet, for example.

In embodiments, memory108is a dedicated memory storage for storing instructions or data specific to determining grip rejection information and determining whether to pass or reject a touch event. In other embodiments, memory108may refer to existing memory storage to store touch coordinates and grip rejection information of a touch event made by the touch controller102. In other embodiments, memory108may have the functionality of both of the previous embodiments.

The touch screen104may be further explained by its comprising layers. In an embodiment, the touch screen104comprises a touch sensing layer and a display layer, and such an embodiment is illustrated inFIG.2.

FIG.2illustrates the layers of the touch screen104of electronic device100in an embodiment. The touch screen104comprises a touch sensing layer202that is combined with a display layer204. The touch sensing layer202detects touch events on the touch screen104. The display layer204displays applications that the electronic device is executing, such as an application output, or other form of a graphical user interface (GUI).

The touch sensing layer202comprises touch sensors. Touch sensors used to form a touch sensing layer202of a touch screen104are typically of the grid type classification. In the grid type of touch sensor, there are two sets of parallel electrodes, commonly referred to as X and Y electrodes, that are arranged orthogonal to each other. A plurality of nodes is defined by intersections of pairs of X and Y electrodes, wherein the number of nodes is a product of the number of X electrodes and the number of Y electrodes. The grid type touch sensor is generally used for a touch screen of a mobile phone, a drawing board, and others.

In an embodiment, the touch sensing layer202is a capacitive touch sensing grid of small, transparent electrodes. An X-Y grid is formed by etching two separate, perpendicular layers of conductive material with parallel lines or tracks to form the grid. Everywhere the grid lines overlap, a capacitor is created. The human body is an electrical conductor and when a user touches the touch screen104with their finger, the sensor changes the local electric field which reduces the mutual capacitance. The capacitance change at every individual point on the grid is measured to accurately determine the touch location by measuring the voltage in the other axis.

The display layer204of the touch screen104comprises light emitting electronic devices (e.g., Light Emitting Diodes (LEDs)) that display active applications and other GUIs executing on the electronic device100. Currently, the most common display technologies used for the display layer204integrated with touch sensors to form touch screens are Thin Film Transistor (TFT) Liquid Crystal Displays (LCDs) and Organic Light Emitting Diode (OLED) displays.

An example embodiment of a touch sensing layer202of the capacitive type is illustrated inFIG.3and is discussed further in the detailed description ofFIG.3.

FIG.3illustrates an example touch sensing layer202of a touch screen104. In this embodiment, the touch sensing layer202is a capacitive touch sensing layer. The touch sensing layer202is comprised of a grid formed from overlapping two separate, perpendicular layers of conductive material with parallel lines or tracks, and everywhere the lines overlap, a capacitor306is created. One of the separate parallel line layers of the grid is connected to a sense circuit302, and the other separate parallel line layer is connected to a drive circuit304. Shown inFIG.3are the horizontal sense circuit connection lines S1, S2, S3, and S4. Also shown inFIG.3are the vertical drive circuit connection lines D1, D2, D3, and D4. InFIG.3, the grid of capacitors306is a four-by-four grid, but it should be understood that this is an illustrative example and the grid of capacitors can be much larger than what is shown. The four-by-four grid ofFIG.3would correspond to a node count of the touch sensing layer202being 16 nodes in total.

Capacitive touch sensors can be classified into self-capacitance and mutual capacitance types. In the measurement of self-capacitance, the measured capacitance is between an electrode beneath a dielectric touch panel and a touch finger, or a stylus, or the like. A touch on the dielectric touch panel increases the effect of the capacitance of the electrode on the charging of a measurement capacitor forming part of the touch integrated circuit (IC) measurement circuit. Thus, the fingers and electrodes can be considered to be plates of a capacitor that form a dielectric with the touch panel. Self-capacitance type touch sensing layers have lower resolution than mutual capacitance types.

In the measurement of mutual capacitance, adjacent pairs of electrodes are arranged below the touch panel and form nominal capacitor plates. A touch control object, which may be an effective dielectric material (e.g., a dry finger or a plastic stylus), or in some cases may be conductive (e.g., a wet finger or a metal stylus), changes the capacitance associated with the electrode pair by displacing the environment (i.e., in most cases air, but possibly water or some other gas or liquid). One of the pair of electrodes is driven by a drive signal (e.g., a pulse train), which is output by the drive circuit304, and the other electrode of the pair senses the drive signal, which is sensed by the sense circuit302. The effect of touch is to attenuate or amplify the drive signal received at the sense circuit302, i.e., to influence the amount of charge collected at the sense electrode. The change in mutual capacitance between the drive and sense electrodes provides a measurable signal. It is noted that in mutual capacitance grid sensors, there is a convention to label the drive electrodes as X electrodes and the sense electrodes as Y electrodes, although this choice is arbitrary. A perhaps clearer, frequently used label is to label drive electrodes as “Tx” for transmission and the sense electrodes as “Rx” similar to telecom symbols, although the label is of course specific to measurements of mutual capacitance.

The drive circuit304and sense circuit302work collaboratively in a capacitive touch screen to sense and interpret touch inputs accurately. The drive circuit304is responsible for generating the necessary electrical signals that create an electric field across the drive lines (D1-D4) of the touch sensing layer202. The drive circuit304applies specific voltages or currents to the drive electrodes, which in turn create an electric field. When a user touches the screen, their finger or stylus disrupts this electric field, resulting in a change in capacitance.

The sense circuit302, comprising sensing electrodes, is designed to detect these capacitance changes. The sense circuit302applies a low-level alternating current (AC) signal to the sensing electrodes, or sense lines (S1-S4) which interact with the altered electric field caused by the touch input. The sense circuit302monitors the resulting electrical characteristics, such as voltage, frequency, or phase shift. These changes are analyzed to determine the presence, location, and characteristics of the touch input by the touch controller.

The drive circuit304employed in capacitive touch screens plays a pivotal role in facilitating accurate and reliable touch input detection. The drive circuit304is responsible for generating the necessary electrical signals that drive the touch screen electrodes, or drive lines D1-D4. The drive circuit304is coupled to the drive lines (D1-D4). By applying specific voltages or currents to the drive lines (D1-D4), such as sine waves or square waves, the drive circuit304creates an electric field across the touch sensing layer202. This electric field interacts with the conductive properties of a user's touch, resulting in a measurable change in capacitance of the capacitor306formed between the overlap of a drive line (D1-D4) and a sense line (S1-S4). The drive circuit304precisely controls the timing, voltage levels, and waveform characteristics to ensure optimal touch sensitivity and responsiveness. By carefully modulating the signals, the drive circuit304enables the touch controller to accurately detect and interpret touch inputs, enabling seamless user interaction and intuitive operation of the capacitive touch screen interface.

A sense circuit302is an integral component utilized in capacitive touch screens to accurately measure and interpret the electrical changes caused by user touch. Its primary function is to detect variations in capacitance resulting from the proximity or direct contact of a user's finger or stylus. The sense circuit302comprises a series of sensing electrodes, or sense lines (S1-S4), typically located beneath the touch screen surface in the touch sensing layer202, that are responsible for detecting these capacitance changes. By applying a low-level alternating current (AC) signal to the sensing electrodes (S1-S4), the sense circuit302can monitor the resulting electrical characteristics, such as voltage, frequency, or phase shift. This enables the sense circuit302to discern the presence and location of touch inputs with high precision. By analyzing the collected data, the sense circuit302cooperates with the touch controller102to accurately interpret the user's gestures and translate them into corresponding commands or actions, enhancing the overall touch screen performance and user experience.

The drive circuit304and sense circuit302work together in a synchronized manner. The drive circuit304generates the necessary signals to create the electric field, while the sense circuit302monitors and analyzes the resulting changes in capacitance of the capacitors306. The touch controller102, which receives inputs from the sense circuit302, interprets the collected data and translates it into corresponding information. In the case of this disclosure, the touch controller102determines the grip rejection information and the touch coordinate information of the touch event and transmits that information as two separate events to the application processor. By employing grip rejection algorithms on the information provided by the touch controller102and combining the additional application information available to the application processor106, the application processor106determines the grip rejection status of the touch event. In other embodiments, the touch screen technology comprises any type of touch screen that determines the same touch coordinate and grip rejection information. The grip rejection method of this disclosure is described inFIG.4.

FIG.4shows a flowchart of the grip rejection method of this disclosure in an embodiment. The processes are performed by either the touch controller102or the application processor106of the electronic device of this disclosure, and are separated into two boxes. The boxes within the large box (labeled102) on the left are processes performed by the touch controller102of the electronic device. The boxes within the large box (labeled106) on the right are processes performed by the application processor106of the electronic device.

The grip rejection method illustrated inFIG.4starts when a touch event is detected on the touch screen of the electronic device. Once the touch event is detected, the grip rejection method begins with the processes performed by the touch controller102. The touch controller102processes start with box401, wherein the touch controller102calculates the coordinates of the touch event on the touch screen.

After the touch controller102calculates the touch coordinates of the touch, the grip rejection method continues to box402. In box402, the touch controller102determines the grip rejection information of the touch. The grip rejection information includes the major width of the touch, the minor width of the touch, the maximum signal strength of the touch, the node count of the touch, and the edge signal strength ratio of the touch, which have been defined above. Once the grip rejection information is determined by the touch controller102, the grip rejection method proceeds to box403.

In box403, the touch controller102reports the touch coordinates and the grip rejection information of the touch to the application processor106. The touch coordinates are sent to the application processor106in a separate event from the grip rejection information. Two separate events are sent to the application processor, where the first event contains the touch coordinates and the second event contains the grip rejection information. For example, the first event and second event may be sent in different data packets with associated headers. Both events are sent to the application processor106by the connection between the touch controller102and the application processor106through standard communication protocols, such as I2C or SPI. As previously described, the grip rejection information may include in an embodiment all of the raw data extracted from the touch. In an embodiment, the grip rejection information may include processed data of the touch such as major width of the touch, the minor width of the touch, the maximum signal strength of the touch, the node count of the touch, and the edge signal strength ratio of the touch.FIG.7along with description below describe how the grip rejection information is organized to be sent to the application processor106.

The steps performed at the touch controller102are complete after the touch controller102transmits the touch coordinates and the grip rejection information to the application processor106. The grip rejection method processes the remaining steps of the method with the application processor106. The first process performed by the application processor106of the grip rejection method is in box404.

In box404, the application processor106receives the touch coordinate event and the grip rejection information event that have been sent by the touch controller102. The application processor106uses information provided by the touch controller102and combines the information with application information that is available to the application processor106. This combination improves grip distinguishing capabilities, which is not possible if the touch controller102independently performs the grip rejection determination.

After receiving the touch coordinate event and the grip rejection information event from the touch controller102at the application processor106, the grip rejection method proceeds to box405. In box405, the application processor106checks the application information that is only available to the application processor106. The application information can be a number of different kinds of information provided to the application processor106by different devices included in the electronic device. The application information comprises the orientation status of the electronic device (such as the device is positioned in a vertical, or horizontal orientation), what applications are currently active on the device (such as a game being played, or a video being displayed on the device), and a grip rejection dynamic valid area (an area of the touch screen that an application wants to ignore touch events in). Examples of such information may include a user playing a certain game or the use of a certain app that has touch buttons at certain locations of the touch screen.

For example, in an embodiment, a game is running on the electronic device and the orientation of the device is consistent with the horizontal orientation. In this example, the application processor106would know typical grip configurations of the electronic device when held in the horizontal orientation and with a game running. The application processor106would also know the grip rejection dynamic valid area that the game wants to reject touch events located in.

Once the application processor106has checked the application information of the electronic device, the grip rejection method continues to box406. In box406, the application processor106uses the information from the touch controller102and the application information to determine to reject or to pass the touch event on the touch screen by using different grip rejection algorithms. All of the grip rejection algorithms are implemented in tandem with the application information in the application processor106to further improve the grip rejection method's proficiency and accuracy. From the grip rejection information provided by the touch controller102, the application processor106determines the grip type, such as edge thumb and corner palm, or more. An accurate determination of the grip type achieves better performance for grip rejection.

In box406, the different grip rejection algorithms comprise proximity rejection, palm rejection, pressure rejection, finger shape analysis, gesture recognition, and multitouch analysis. In proximity rejection, the grip rejection algorithm detects touch inputs that occur close to the edges of the touch screen, and assumes that these touch inputs are unintended touches caused by the user's grip. In palm rejection, the grip rejection algorithm identifies and rejects touch inputs that occur simultaneously within a large area of contact, which is characteristic of a user's palm resting on the touch screen. In pressure rejection, the grip rejection algorithm utilizes the pressure-sensitive capabilities of the touch screen by detecting touch inputs with low pressure or light contact, and then considering those touch inputs accidental touches from the user's grip. In finger shape analysis, the grip rejection algorithm analyzes the shape and size of touch inputs, and the algorithm distinguishes between the unique patterns created by fingers as opposed to those caused by other objects or unintended touches. In gesture recognition, the grip rejection algorithm identifies specific gestures or patterns associated with intentional touches, such as swipes, taps, or pinches, and filters out touch inputs that do not match recognized patterns. In multitouch analysis, the grip rejection algorithm analyzes the number and arrangement of touch inputs, and the multitouch algorithms can differentiate intentional multitouch interactions from accidental touches caused by the user's grip.

All of the grip rejection algorithms used in box406incorporate the application information from the application processor106to improve their accuracy. As an example, in the proximity rejection grip rejection algorithm case, the application processor106may use the information from the touch controller102in the grip rejection algorithm as well as the dynamic valid area from an open application on the electronic device to further reduce the active monitoring area for touch inputs on the touch screen. As another example, in the palm rejection grip rejection algorithm case, the application processor106may use the touch information from the touch controller102and the orientation status of the electronic device from the application information, to determine an edge palm case and reject the large area of contact around the edge of the electronic device.

After completing the steps of box406, the grip rejection method has determined to pass or reject the touch event. If the touch event is determined to pass the grip rejection method, the touch information will be passed to any application currently executing on the electronic device for actions associated with the executing application (such as, clicking a button). If the touch event is determined to be rejected by the grip rejection method, the touch information will not be passed to any applications executing on the electronic device, hence the touch event is rejected (ignored). Once the application processor106has determined whether to pass or reject the touch event (box406), the grip rejection method returns to a state of waiting for a new touch event to occur on the touch screen of the electronic device. In addition, as the grip rejection method is performed in a restricted portion of the OS, the applications cannot corrupt the output from the grip rejection method.

Example touch events are illustrated inFIGS.5-6.

FIG.5shows an example touch event on the electronic device100, in an embodiment. InFIG.5, the electronic device100of this disclosure is depicted as a smartphone. The electronic device100is in a vertical orientation, which is information that is known by the application processor. The touch event depicted inFIG.5is a thumb touch501. As was detailed previously, two elements of the grip rejection information that are passed to the application processor by the touch controller are the major and minor widths of the touch event. Illustrated inFIG.5is the thumb touch501, which has a major width502, and a minor width503.

The minor width503of the thumb touch501is the largest width of the thumb touch501that is parallel to the minor (or smaller dimension) side of the electronic device100. In other words, the minor width503is the width of the thumb touch501in the smaller side of the electronic device100. The major width502of the thumb touch501is the largest width of the thumb touch501that is parallel to the major (or larger dimension) side of the electronic device100. In other words, the major width502is the width of the thumb touch501in the larger side of the electronic device100. Both the major width502, and the minor width503of the thumb touch501would be determined by the touch controller of electronic device100and passed to the application processor106to determine whether to reject/pass the thumb touch501.

FIG.6shows an example touch event on the electronic device100, in an embodiment. InFIG.6, the electronic device100of this disclosure is depicted as a smartphone. The electronic device100is in a horizontal orientation, which is information that is known by the application processor. The touch event depicted inFIG.6has a palm touch602, which is illustrated at the bottom-left corner of the screen. Above and to the right of the palm touch602is a corresponding thumb touch601of the touch event. In the grip rejection method of this disclosure, the application processor would determine that the palm touch602is the result of a user's palm touching the touch screen, and that the thumb touch601is the result of the user's thumb touching the touch screen.

An example scenario for the touch event illustrated inFIG.6would be the case of a user playing a game on the electronic device100. In an embodiment, the thumb touch601would be determined as a valid touch and passed by the grip rejection method of this disclosure. The palm touch602would be rejected by the grip rejection method of this disclosure. The application processor of the electronic device100would use the touch coordinate information and the grip rejection information passed to it by the touch controller, as well as the application information (in this case, the game running on the device and the horizontal orientation of the device) to determine that the palm touch602is a result of the way the electronic device is gripped. The application processor106would use a grip rejection algorithm (such as the palm rejection algorithm) to determine that the palm touch602corresponds to a grip type called corner palm. By incorporating the application information as well, the grip rejection method may determine the corner palm may be a result of the game running on the device having a dynamic grip area, which the application processor would know to reject touch events within that area of the touch screen.

Traditional grip rejection algorithms that are implemented in the touch controller have a difficult time with corner palm grip type events, like the touch event illustrated in FIG.6. Traditional grip rejection algorithms executed in the touch controller would likely pass both the palm touch602and the thumb touch601illustrated inFIG.6. An advantage of the grip rejection method of this disclosure is the improved grip type determination proficiency that is possible when the grip rejection algorithms are implemented by the application processor of the electronic device100and include the application information.

As a result of incorporating the additional information from the application processor, the application processor can more accurately determine to reject the palm touch602, and to pass the thumb touch601as an intentional touch. The application processor106knows the orientation of the electronic device100(horizontal orientation), and can use the additional information from the game application running on the electronic device100to help determine the grip rejection for the touch event.

Illustrated inFIG.7is a table showing how the grip rejection information event that is passed from the touch controller to the application processor is organized. The grip rejection information event is contained in 8 bytes. The rows of the table are individual bytes and are the different elements that are parts of the grip rejection information. The columns of the table correspond to the 8 individual bits that comprise each of the 8 bytes of the grip rejection information event. The columns (individual bits) are organized as going from Bit0 to Bit7 read from right to left. The rows (individual bytes) are organized as going from Byte0 to Byte7 read from top to bottom.

The first row (starting from the top) corresponds to Byte0 and contains a Touch ID that is assigned to the touch event and is also used to determine the touch coordinate information event that corresponds to the same touch event (both the touch coordinate information event and the grip rejection information event are tagged with the same Touch ID). Bit0-Bit1 are shown inFIG.7to be filled with “0x2,” which is a hexadecimal expression that means “10” in binary. Thus, that means that Bit1 is set to 1, and Bit0 is set to 0. Bit2-Bit5 contain the Touch ID of the corresponding touch event's grip rejection information stored in the grip rejection information event. Bit6-Bit7 are reserved.

The second row corresponds to Byte1 and contains the minor width of the touch event. All 8 bits of Byte1 are used for the minor width of the touch event.

The third row corresponds to Byte2 and contains the major width of the touch event. All 8 bits of Byte2 are used for the major width of the touch event.

The fourth row corresponds to Byte3 and contains the edge signal strength ratio of the touch event. All 8 bits of Bytes are used for the edge signal strength ratio of the touch event.

The fifth row corresponds to Byte4 and contains the node count of the touch event. All 8 bits of Byte4 are used for the node count of the touch event.

The sixth row corresponds to Bytes and contains the first 8 bits (bit 0-7) of the maximum signal strength value of the touch event. As a result of the maximum signal strength value's capability of being a large range of values, the maximum signal strength value requires 16 bits (or 2 bytes) to fully express the maximum signal strength values. Thus, this element of the grip rejection information is split into two bytes where the first 8 bits are contained in Byte5. Bit0-Bit7 correspond to bits 0-7 of the maximum signal strength value.

The seventh row corresponds to Byte6 and contains the second 8 bits (bit 8-15) of the maximum signal strength value of the touch event. As a result of the maximum signal strength value's capability of being a large range of values, the maximum signal strength value requires 16 bits (or 2 bytes) to fully express the maximum signal strength values. Thus, this element of the grip rejection information is split into two bytes where the second 8 bits are contained in Byte6. Bit0-Bit7 correspond to bits 8-15 of the maximum signal strength value. Bit0 corresponds to bit 8, Bit1 corresponds to bit 9, etc. Bity corresponds to bit 15 of the maximum signal strength value of the touch event.

The eighth row corresponds to Byte7 and contains the event left count. The event left count corresponds to the amount of events that are still in the buffer. The application processor uses this information to read events an amount of times that corresponds to the event left count. The event left count is stored in Bit0-Bit5. Bit6-Bit7 are reserved.

Once the grip rejection information event determined by the touch controller is passed to the application processor in the organizational manner illustrated inFIG.7, the application processor uses that information to accurately determine a grip rejection classification for the touch event.FIG.8is a flow chart illustrating embodiments of the present disclosure.

In an embodiment, a grip rejection method includes detecting a touch on a touch screen, where the touch covers an area of the touch screen (box810). The grip rejection method includes determining touch coordinates representing the touch area with a touch controller (box820). The grip rejection method includes determining grip rejection information with the touch controller (box830). The grip rejection information includes signal strength information of the touch. The grip rejection method includes transmitting the touch coordinates and the grip rejection information of the touch (box840).

The various boxes described above may be implemented as further described usingFIG.4above. For example, in an embodiment, box820may be implemented as box401inFIG.4.

Example embodiments of the invention are described below. Other embodiments can also be understood from the entirety of the specification as well as the claims filed herein.Example 1. A grip rejection method includes detecting a touch on a touch screen, where the touch covers an area of the touch screen. The grip rejection method includes in response to detecting a touch, determining touch coordinates representing the touch area with a touch controller. The grip rejection method includes in response to determining the touch coordinates with the touch controller, determining grip rejection information with the touch controller, where the grip rejection information includes signal strength information of the touch. The grip rejection method includes transmitting the touch coordinates and the grip rejection information of the touch.Example 2. The method of example 1, further includes receiving the touch coordinates and the grip rejection information transmitted from the touch controller at an application processor. The grip rejection method further includes, based on the touch coordinates, the grip rejection information, and application information available at the application processor of an electronic device, determining a grip classification of the touch by executing a grip rejection algorithm with the application processor.Example 3. The method of one of examples 1 or 2, where the signal strength information includes a minor width of the touch that corresponds to the small width side of the touch screen. The signal strength information includes a major width of the touch that corresponds to the large width side of the touch screen. The signal strength information includes a maximum signal strength value that corresponds to the maximum value reported to the touch controller by a touch sensor of the touch screen for the touch. The signal strength information includes a node number of the touch that corresponds to the number of nodes of the touch controller occupied by the touch. The signal strength information includes an edge signal ratio that corresponds to a sum of the outer edge signal strengths of the touch compared to a sum of the inner edge signal strengths of the touch.Example 4. The method of one of examples 1 to 3, where the application information available at the application processor includes the electronic device's orientation status, where the orientation status includes whether the electronic device is in a horizontal or a vertical orientation.Example 5. The method of one of examples 1 to 4, where the application information available at the application processor includes a dynamic area of the touch screen that touch events that occur within the dynamic area will be rejected while an application is active on the electronic device.Example 6. The method of one of examples 1 to 5, where the application information available at the application processor includes the applications active on the electronic device.Example 7. The method of one of examples 1 to 6, where the application information available at the application processor includes the electronic device's orientation status, the orientation status includes whether the electronic device is in a horizontal or a vertical orientation. The application information available at the application processor includes a dynamic area of the touch screen that touch events that occur within the dynamic area will be rejected while an application is active on the electronic device. The application information available at the application processor includes the applications active on the electronic device.Example 8. The method of one of examples 1 to 7, where the grip rejection algorithm includes proximity rejection, palm rejection, pressure rejection, finger shape analysis, gesture recognition, and multitouch analysis, in combination with the application information available at the application processor.Example 9. The method of one of examples 1 to 8, where the touch coordinates are transmitted in a first event.Example 10. The method of one of examples 1 to 9, where the grip rejection information is transmitted in a second event.Example 11. The method of one of examples 1 to 10, where the grip rejection information transmitted in the second event includes 8 Bytes numbered 0-7, where Byte 0 includes the Touch ID of the touch. Byte 1 includes the minor width of the touch. Byte 2 includes the major width of the touch. Byte 3 includes the edge signal strength ratio of the touch. Byte 4 includes the node count of the touch. Byte 5 includes the first 8 bits of the maximum signal strength value of the touch. Byte 6 includes the second 8 bits of the maximum signal strength value of the touch. And Byte 7 includes the event left count.Example 12. An electronic device includes a touch screen, and a touch controller coupled to a memory storing instructions to be executed in the touch controller. The instructions when executed cause the touch controller to detect a touch on a touch screen, the touch covering an area of the touch screen. The instructions when executed further and in response to detecting a touch, determine touch coordinates representing the touch area with the touch controller. The instructions when executed further and in response to determining the touch coordinates with the touch controller, determine grip rejection information with the touch controller, where the grip rejection information includes signal strength information of the touch. The instructions when executed further transmit the touch coordinates and the grip rejection information of the touch.Example 13. The device of example 12, further includes an application processor of the electronic device coupled to a second memory storing a second set of instructions to be executed in the application processor. The second set of instructions when executed cause the application processor to receive the touch coordinates and the grip rejection information transmitted from the touch controller, and based on the touch coordinates and the grip rejection information and information available at the application processor of the electronic device, determine a grip classification of the touch by executing a grip rejection algorithm with the application processor.Example 14. The device of one of examples 12 or 13, where to determine the signal strength information, the touch controller is programmed to determine a minor width of the touch that corresponds to the small width side of the touch screen. The touch controller is programmed to determine a major width of the touch that corresponds to the large width side of the touch screen. The touch controller is programmed to determine a maximum signal strength value that corresponds to the maximum value reported to the touch controller by a touch sensor of the touch screen for the touch. The touch controller is programmed to determine a node number of the touch that corresponds to the number of nodes of the touch controller occupied by the touch. And the touch controller is programmed to determine an edge signal ratio that corresponds to a sum of the outer edge signal strengths of the touch compared to a sum of the inner edge signal strengths of the touch.Example 15. The device of one of examples 12 to 14, where the application information available at the application processor includes the electronic device's orientation status, the orientation status including whether the electronic device is in a horizontal or a vertical orientation.Example 16. The device of one of examples 12 to 15, where the application information available at the application processor includes a dynamic area of the touch screen that touch events that occur within the dynamic area will be rejected while an application is active on the electronic device.Example 17. The device of one of examples 12 to 16, where the application information available at the application processor includes the applications active on the electronic device.Example 18. The device of one of examples 12 to 17, where the application information available at the application processor includes the electronic device's orientation status. The orientation status includes whether the electronic device is in a horizontal or a vertical orientation. The application information available at the application processor includes a dynamic area of the touch screen that touch events that occur within the dynamic area will be rejected while an application is active on the electronic device. And the application information available at the application processor includes the applications active on the electronic device.Example 19. The device of one of examples 1 to 18, where the grip rejection algorithm includes proximity rejection, palm rejection, pressure rejection, finger shape analysis, gesture recognition, and multitouch analysis, in combination with the information known by the application processor.Example 20. The device of one of examples 12 to 19, where the touch coordinates are transmitted in a first event.Example 21. The device of one of examples 12 to 20, where the grip rejection information is transmitted in a second event.Example 22. The device of one of examples 12 to 21, where the grip rejection information transmitted in the second event includes 8 Bytes numbered 0-7, where Byte 0 includes the Touch ID of the touch. Byte 1 includes the minor width of the touch. Byte 2 includes the major width of the touch. Byte 3 includes the edge signal strength ratio of the touch. Byte 4 includes the node count of the touch. Byte 5 includes the first 8 bits of the maximum signal strength value of the touch. Byte 6 includes the second 8 bits of the maximum signal strength value of the touch. And Byte 7 includes the event left count.