This disclosure is generally directed to touch-sensitive display screens. More specifically, this disclosure relates to an analog resistive multi-touch display screen.
Touch-sensitive display screens or “touch screens” are extremely popular in devices like mobile handsets and portable computers. A touch screen displays information to a user and receives user input when the user touches the screen. Two common types of touch screens are resistive and capacitive touch screens.
In a resistive touch screen, a resistive network forms different voltage dividers in the x and y directions depending on where the user touches the screen. Resistive touch screens are typically low-cost devices and work well with a stylus or while the user is wearing gloves. However, most resistive touch screens do not support “multi-touch,” meaning multiple objects touching the screen cannot be tracked simultaneously. Resistive touch screens that can support multi-touch usually require a large number of wires coupled to the screens in both the x and y directions to detect and track multiple objects. These types of resistive touch screens are not compliant with “four-wire” or “eight wire” touch screen technology, which uses only four or eight wires coupled to a touch screen to provide signals to and receive signals from the touch screen.
In a capacitive touch screen, the screen itself forms a capacitance that is altered depending on where a user (who has his or her own capacitance) touches the screen. Capacitive touch screens do support multi-touch, which allows users to perform multi-touch operations such as zooming or rotating. However, capacitive touch screens are usually not as accurate as resistive touch screens (at least for character recognition), and capacitive touch screens typically cannot be used with a stylus or while the user is wearing gloves.
This disclosure provides a method, system, and apparatus supporting resistive multi-touch display screens.
In a first embodiment, a method is provided for supporting resistive multi-touch with a touch-sensitive display screen. The display screen includes a resistive network that varies depending on where the display screen is contacted. The display screen has a first plane resistance and a second plane resistance when the display screen is not contacted. The method includes, detecting one or more objects contacting the display screen. The method also includes identifying coordinates of multiple contact points on the display screen based on a change in at least one of the plane resistances. The change is caused by one or more parallel resistances created in the display screen by the multiple contact points.
In a second embodiment, a system for supporting resistive multi-touch includes a touch-sensitive display screen having a resistive network that varies depending on where the display screen is contacted. The display screen has a first plane resistance and a second plane resistance when the display screen is not contacted. The system also includes a touch controller configured to identify coordinates of multiple contact points on the display screen based on a change in at least one of the plane resistances. The change is caused by one or more parallel resistances created in the display screen by the multiple contact points.
In a third embodiment, an apparatus for association with a resistive touch-sensitive display screen includes a controller configured to detect one or more objects contacting the touch-sensitive display screen. The display screen includes a resistive network that varies depending on where the display screen is contacted. The display screen has a first plane resistance and a second plane resistance when the display screen is not contacted. The controller is also configured to identify coordinates of multiple contact points on the display screen based on a change in at least one of the plane resistances. The change is caused by one or more parallel resistances created in the display screen by the multiple contact points.
Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
For a more complete understanding of this disclosure and its features, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
The touch screen 102 represents an analog resistive touch-sensitive display. When a user touches the touch screen 102, the contact creates different voltage dividers in the touch screen 102, which can be used to determine coordinates of the contact point(s). Note that while
The touch screen 102 could be used in any suitable device or system. For example, the touch screen 102 could form part of a mobile handset, such as a mobile telephone or a personal digital assistant. The touch screen 102 could also form part of a portable computing device, such as a notebook or laptop computer. The touch screen 102 could further form part of a desktop computer or other non-portable device. These examples are for illustration only, and the touch screen 102 could be used in any other device or system.
The touch controller 104 detects when the touch screen 102 is contacted by at least one object, such as a user's finger or stylus. The touch controller 104 also determines the location(s) of contact on the screen 102. When a single touch on the screen 102 is made, the touch controller 104 can identify the coordinates of the touch on the screen 102 (such as x and y coordinates). When multiple touches on the screen 102 are made simultaneously, the touch controller 104 can identify the coordinates of each touch on the screen 102. The touch controller 104 can output the coordinates to the device controller 106. The touch controller 104 includes any suitable structure for identifying coordinates of at least one object contacting a touch screen. The touch controller 104 could be implemented using software instructions executed by at least one processing unit, or the touch controller 104 could be implemented using hardware components such as a hardware state machine. As particular examples, the touch controller 104 could represent a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or field programmable gate array (FPGA).
The device controller 106 controls the operation of the device 100 in which the touch screen 102 resides. The device controller 106 can perform a wide variety of operations depending on the device 100. The functions performed by the device controller 106 can be based on the coordinates of one or more objects touching the screen 102. For example, in a mobile handset, the device controller 106 could initiate outgoing telephone calls, answer incoming telephone calls, allow a user to surf the Internet, and allow the user to send and receive email messages. The device controller 106 includes any suitable structure for controlling a larger device in which the touch screen 102 resides. As examples, the device controller 106 could represent a microprocessor, microcontroller, DSP, ASIC, or FPGA.
In particular embodiments, the device controller 106 represents a microprocessor or other device that can enter at least one low-power mode of operation. When in this mode, the touch controller 104 can scan the touch screen 102 and detect if and when the touch screen 102 is contacted by an object. When contact is detected, the touch controller 104 can send an interrupt or other signal to the device controller 106, causing the device controller 106 to exit the low-power mode of operation.
The touch controller 104 is coupled to the touch screen 102 using a connector 108, which in this example represents a four-wire connector. The connector 108 can be used to provide voltage or current signals to the touch screen 102 and receive voltage or current signals from the touch screen 102. This allows the touch controller 104 to, for example, send signals to drive the touch screen 102 and receive signals that vary based on where the touch screen 102 is contacted. Note that the use of a four-wire connector is for illustration only and that any other suitable connector, such as an eight-wire connector, could be used.
In this example, the touch screen 102 is a resistive touch display, and the touch controller 104 includes or otherwise implements logic supporting multi-touch detection. The touch controller 104 can therefore detect and track multiple objects contacting the touch screen 102. This allows, for example, the user to use two fingers to invoke operations like zoom in, zoom out, and rotate. Moreover, this can be accomplished using a reduced number of wires connected to the touch screen 102, such as standard four-wire or eight-wire connectors.
As shown in
When a user's finger or other object contacts the touch screen 102, the membrane 114 and the conductive film 110a move towards the conductive film 110b. When the conductive films 110a-110b touch, this forms an electrical, path between the conductive films 110a-110b. The conductive films 110a-110b form a resistive network, and the resistive network changes based on where the screen 102 is contacted. As described below, the electrical path can be used to detect where at least one object has contacted the touch screen 102. When the object is removed from the touch screen 102, the insulative spacer dots 112 help to push the conductive films 110a-110b apart and break the electrical path.
Although
As shown in
When an object contacts the touch screen 102 at a single point 206, this effectively creates two resistances 208a-208b in the horizontal (x) direction and two resistances 210a-210b in the vertical (y) direction. The resistances 208a-208b form a first voltage divider, and the resistances 210a-210b form a second voltage divider. The value of each resistance 208a-208b, 210a-210b varies depending on where the point 206 is located on the screen. These resistances 208a-208b, 210a-210b can therefore be used to identify the coordinates of the point 206. For instance, applying a voltage to the X+ wire and grounding the X− wire can generate a voltage at the point 206, and this voltage can be measured using the Y+/Y− wire(s) and used to calculate the x coordinate of the point 206. Similarly, applying a voltage to the Y+ wire and grounding the Y− wire can generate a voltage at the point 206, and this voltage can be measured using the X+/X− wire(s) and used to calculate the y coordinate of the point 206. The x and y coordinates could be provided to the device controller 106 or used in any suitable manner.
When two objects contact the touch screen 102 at two points 212a-212b as shown in
As shown here, parallel resistances can form in the touch screen 102, such as resistances 216 and 220. Since parallel resistances have a lower overall resistance than each individual resistance, this lowers the overall resistance in the x plane (between terminals 202a-202b) and/or in the y plane (between terminals 204a-204b). The description below provides a technique for determining the coordinates of the multiple points 212a-212b based on the resistance drop in the x and/or y plane due to parallel resistances created by multiple contacts with the touch screen 102.
Although
As shown in
As shown in
Although
One or more objects contacting the touch screen are detected at step 404. This could include, for example, the touch controller 104 activating a constant current source or sink on the X+/X− wires to generate a drive signal and measuring a voltage on the Y+ and/or Y− wire as a sense signal. This could also include the touch controller 104 activating a constant current source or sink on the Y+/Y− wires to generate a drive signal and measuring a voltage on the X+ and/or X− wire as a sense signal. If no touch is present, the measured voltages should be equal to approximately zero. When at least one touch is present, at least one of the measured voltages should be greater than zero.
A decision is made whether the detected touch is a multi-touch event at step 406. This could occur in various ways. For example, the x and y plane resistances could be measured again, and a determination could be made whether either plane resistance has fallen significantly. As shown in
If the detected touch is not a multi-touch event, the coordinates of a single touched point are identified at step 408. This could include, for example, the touch controller applying a current on the X+/X− wires to generate a drive signal and measuring a voltage on the Y+ and/or Y− wires as a sense signal. This could also include the touch controller applying a current on the Y+/Y− wires to generate a drive signal and measuring a voltage on the X+ and/or X− wires as a sense signal. The measured voltages can be used to identify the voltage dividers formed by the resistances 208a-208b and 210a-210b, which indicates the location of the single touch.
If the detected touch is a multi-touch event, one or more changes in the plane resistance(s) are identified at step 410. As noted above, these differences are caused by the parallel resistances created by the multiple touches. The decrease in plane resistance is proportional to the touch area and the distance between the points 212a-212b, which allows for the detection of both touch pressure and multi-touch. Touch pressure denotes the pressure by which an object contacts the touch screen 102, where greater touch pressure can result in larger areas of the films 110a-110b contacting each other. Using changes in the horizontal and vertical plane resistances, the coordinates of the multiple touches are determined at step 412. This could include, for example, the touch controller 104 applying a current on the X+/X− wires to generate a drive signal and measuring a voltage on the Y+ and/or Y− wire as a sense signal (and vice versa). This could also include the touch controller 104 using the voltage measurements and the change(s) in plane resistances to calculate the coordinates of the multiple touches. As described in more detail below, this could further include the touch controller 104 calculating one or more correction factors. The parallel resistance formed by the resistances in the screen 102 (such as resistances 218a-218d) can create errors in the measurement of the coordinates for the points 212a-212b. With a known proportion of the total x resistance and the total y resistance (which could be expressed as the dimensions of the touch screen 102), correction factors can be calculated using the plane resistances in the x and y directions as measured during the “no touch” condition of step 402. These correction factors can be used to reduce the error in the determination of the coordinates.
The identified coordinates are output or used in some manner at step 414. This could include, for example, the touch controller 104 providing the identified coordinates or sets of coordinates to the device controller 106.
Although
As shown in
A drive signal is provided on the X+/X− wires at step 502. This could include, for example, the touch controller 104 sourcing a constant current on the X+wire or sinking a constant current on the X− wire. The Y+ wire is coupled to a sensor and the Y− wire is grounded at step 504. This could include, for example, the touch controller 104 coupling the Y+ wire to the ADC 304. A sense signal on the Y+ wire is measured at step 506. This could include, for example, the ADC 304 converting the voltage on the Y+ wire into a digital value. A determination is made whether the measured Y+ signal is greater than a threshold value TH (such as zero) at step 508. If so, at least one object is touching the screen 102, and the coordinate measurement process is initiated at step 510. Otherwise, no touch of the screen is occurring, and an x calibration value is measured and saved at step 512. This could include, for example, the touch controller 104 determining the value of U0x by measuring the voltage on the X+ wire. If the drive signal is a constant current, the voltage on the X+ wire can be measured and is indicative of the plane resistance in the x direction.
Another drive signal is provided on the Y+/Y− wires at step 514. This could include, for example, the touch controller 104 sourcing a constant current on the Y+ wire or sinking a constant current on the Y− wire. The drive signal provided at step 514 may or may not equal the drive signal provided at step 502. The X+ wire is coupled to a sensor and the X− wire is grounded at step 516. This could include, for example, the touch controller 104 coupling the X+ wire to the ADC 304. A sense signal on the X+ wire is measured at step 518. This could include, for example, the ADC 304 converting the voltage on the X+ wire into a digital value. A determination is made whether the measured X+ signal is greater than a threshold value TH (such as zero) at step 520. If so, at least one object is touching the screen 102, and the coordinate measurement process is initiated at step 522. Otherwise, no touch of the screen is occurring, and a y calibration value is measured and saved at step 524. This could include, for example, the touch controller 104 determining the value of U0y by measuring the voltage on the Y+ wire. If the drive signal is a constant current, the voltage on the Y+ wire can be measured and is indicative of the plane resistance in the y direction.
The method 500 shown in
The coordinate measurement process can involve the various steps shown in
As shown in
A correction factor for the x coordinate is determined using the previously-identified calibration values at step 606. This could include, for example, the touch controller 104 calculating a correction factor cfx based on the U0x and U0y values identified during the method 500. In particular embodiments, the correction factor cfx could be calculated as:
Sense signals on the X+, Y+, and Y− wires are measured at step 608. This could include, for example, the touch controller 104 using the ADC 304 to measure the sense signals. The signal on the X+ wire may be denoted U1x, the signal on the Y+ wire may be denoted U2x, and the signal on the Y− wire may be denoted U3x. A voltage difference is determined using the X+ signal measurement at step 610. In particular embodiments, the voltage difference dx could be calculated as:
dx=U0x−U1x.
An x coordinate voltage is determined using the Y+ and Y− signal measurements at step 612. In particular embodiments, the x coordinate voltage Ux could be calculated as:
Ux=(U2x+U3x+dx)/2.
A corrected touch distance is determined at step 614. The corrected touch distance is associated with the touch area or the distance between two touched points in the x direction. For example, as shown in
tdx=dx*cfx.
Note that the value of tdx can be compared to a threshold value to determine whether a single point or multiple points are contacted on the touch screen 102. When a single point is contacted on the touch screen 102, the value of tdx may be at or near zero.
A normalized x coordinate is determined at step 616, and a determination is made whether a multi-touch event is occurring at step 618. The normalized x coordinate may represent the x coordinate of a single touched point. If the value of tdx indicates that a single point is touched, the normalized x coordinate can be used as the x coordinate of the touch, and the method 600 can end. The normalized x coordinate may also represent the center x coordinate of multiple touch points as shown in
X=Ux/U0x.
When multiple points are being touched, normalized X1 and X2 coordinates are determined at steps 620-622. The normalized X1 and X2 coordinates represent the x coordinates of the two contacted points 902a-902b or 904a-904b as shown in
X1=(Ux+tdx/2)/U0x
X2=(Ux−tdx/2)/U0x.
As shown here, the method 600 can be used to identify whether a single touch or multiple touches on the touch screen 102 are occurring. If a single touch occurs, the x coordinate X of the single touch can be determined. If two touches occur, the x coordinates X1 and X2 of the two touches can be determined.
The method 700 of
A correction factor for the y coordinate is determined using the previously-identified calibration values at step 706. This could include, for example, the touch controller 104 calculating a correction factor cfy based on the U0x and U0y values identified during the method 500. In particular embodiments, the correction factor cfy could be calculated as:
Sense signals on the Y+, X+, and X− wires are measured at step 708. This could include, for example, the touch controller 104 using the ADC 304 to measure the sense signals. The signal on the Y+ wire may be denoted U1y, the signal on the X+ wire may be denoted U2y, and the signal on the X− wire may be denoted U3y. A voltage difference is determined using the Y+ signal measurement at step 710. In particular embodiments, a voltage difference dy could be calculated as:
dy=U0y−U1y.
A y coordinate voltage is determined using the X+ and X− signal measurements at step 712. In particular embodiments, the y coordinate voltage Uy could be calculated as:
Uy=(U2y+U3y+dy)/2.
A corrected touch distance is determined at step 714. The corrected touch distance represents the difference between the Y1 and Y2 coordinates of the two contacted points. In particular embodiments, the corrected touch distance tdy could be calculated as:
tdy=dy*cfy.
Once again, note that the value of tdy can be compared to a threshold value to determine whether a single point or multiple points are contacted on the touch screen 102. When a single point is contacted on the touch screen 102, the value of tdy may be at or near zero.
A normalized y coordinate is determined at step 716, and a determination is made whether a multi-touch event is occurring at step 718. The normalized y coordinate may represent the y coordinate of a single touched point. If the value of tdy indicates that a single point is touched, the normalized y coordinate can be used as the y coordinate of the touch, and the method 700 can end. The normalized y coordinate may also represent the center y coordinate of multiple touch points as shown in
Y=Uy/U0y.
When multiple points are being touched, normalized Y1 and Y2 coordinates are determined at steps 720-722. The normalized Y1 and Y2 coordinates represent the y coordinates of the two contacted points 902a-902b or 904a-904b as shown in
Y1=(Uy+tdy/2)/U0y
Y2=(Uy−tdy/2)/U0y.
As shown here, the method 700 can be used to identify whether a single touch or multiple touches on the touch screen 102 have occurred. If a single touch occurs, the y coordinate Y of the single touch can be determined. If two touches occur, the y coordinates Y1 and Y2 of the two touches can be determined.
If two touches have occurred as shown in
As shown in
In this way, the touch controller 104 can detect when at least one touch occurs using the method 500 and, when no touch occurs, collect calibration data. Once at least one touch is detected, the touch controller 104 can use the methods 600 and 700 to identify the possible x and y coordinates of the touch(es). If a single touch has occurred, the x and y coordinates can be output to the device controller 106. If multiple touches have occurred, the touch controller 104 can use the method 800 to identify the appropriate set of coordinates for the multiple touches, and the appropriate set of coordinates can be output to the device controller 106. The device controller 106 could then perform various functions depending on the coordinate(s) of the touched point(s).
Although
In some embodiments, the drive signals (such as constant currents) described above may be adaptive or dynamic. For example, the drive signals could be adjusted to obtain optimal measurements of a sense signal (such as voltage or current) on the X+, X−, Y+, and Y− wires. In particular embodiments, the drive signal can be set so as to scale the sense signal measurements into a range suitable for the ADC 304 being used. This may be useful, for instance, when the touch controller 104 can be used with different touch screens 102 having different resistive networks. Also, note that additional components can be added to support other functions in the device 100. For example, filtering components can be used to filter various signals in the device 100.
In some embodiments, various functions described above are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory.
It may be advantageous to set forth definitions of certain words and phrases that have been used within this patent document. The term “couple” and its derivatives refer to any direct or indirect communication between two or more components, whether or not those components are in physical contact with one another. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like.
While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this invention. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this invention as defined by the following claims.