Force sensing system and method
By using a force sensing system to detect user input in mobile devices, the problem of mechanical buttons being prone to aging and wear is solved, and low power consumption, long life and waterproof design are achieved.
Patent Information
- Application Number
- CN201980069549.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-05-24
- Filing Date
- 2019-10-18
- Publication Date
- 2025-04-04
- Estimated Expiration
- 2039-10-18
AI Technical Summary
Mechanical buttons used in existing mobile devices are prone to aging, wear and tear, and are difficult to design to be waterproof, resulting in shorter service life and frequent repairs.
A force sensing system is adopted, which includes an input channel, an activity detection stage and an event detection stage. The user input is detected through force sensors and the indication is generated to realize monitoring and feedback of user interaction.
It realizes a low-power, always-on force sensing module, which can effectively detect user input, extend the service life of the equipment, and is easy to design as waterproof.
Smart Images

Figure CN112912828B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a system and method for a force sensing device.
[0002] In general, such a system and method may be implemented in a controller of the device, the device comprising one or more force sensors. The present disclosure relates to the controller and the device comprising the controller, as well as corresponding methods and computer programs. The device may be a portable electrical or electronic device.
[0003] Thus, the present disclosure is generally directed to a sensor system that may form part or all of an electronic device having a user interface (eg, a mobile device, a game controller, a dashboard, etc.). Background Art
[0004] Force sensors are considered as possible input devices for electronic systems and can be used as replacements for traditional mechanical switches.
[0005] Many traditional mobile devices (e.g., mobile phones, personal digital assistants, video game controllers, etc.) include mechanical buttons to allow interaction between the user of the mobile device and the mobile device itself. However, such mechanical buttons are susceptible to aging, wear and tear, which can shorten the useful life of the mobile device and / or may require extensive repairs if a malfunction occurs. Moreover, the presence of mechanical buttons can make it difficult to make the mobile device waterproof. Therefore, mobile device manufacturers are increasingly looking to equip mobile devices with virtual buttons that act as a human-machine interface that allows interaction between the user of the mobile device and the mobile device itself. Similarly, mobile device manufacturers are increasingly looking to equip mobile devices with other virtual interface areas (e.g., virtual sliders, interface areas of the body of the mobile device other than the touch screen, etc.). Ideally, in order to obtain the best user experience, such virtual interface areas should make the user look and feel as if there are mechanical buttons or other mechanical interfaces, rather than virtual buttons or virtual interface areas.
[0006] Currently, linear resonant actuators (LRAs) and other vibration actuators (e.g., rotary actuators, vibration motors, etc.) are increasingly used in mobile devices to generate vibration feedback in response to a user's interaction with a human-machine interface of such a device. Typically, a sensor (conventionally a force sensor or a pressure sensor) detects a user's interaction with the device (e.g., a finger pressing on a virtual button of the device), and in response thereto, the linear resonant actuator may vibrate to provide feedback to the user. For example, a linear resonant actuator may vibrate in response to a user's interaction with the human-machine interface to simulate the feeling of a mechanical button click to the user.
[0007] Thus, force sensors detect force on a device to determine user interaction, such as touching, pressing, or squeezing the device. It is desirable to provide systems for processing the output of such sensors to balance low power consumption with responsive performance. There is a need in the industry for sensors for detecting user interaction with a human-machine interface, wherein such sensors and related sensor systems provide acceptable levels of sensor sensitivity, power consumption, and size. Summary of the invention
[0008] Therefore, in one aspect of the present invention and with reference to the attached Figure 2 (described in more detail later), a force sensing system for determining whether a user input has occurred is provided, the system comprising:
[0009] an input channel for receiving input from at least one force sensor;
[0010] an activity detection phase to monitor an activity level of the input from the at least one force sensor and, in response to reaching an activity level indicative of user input, generate an indication that activity has occurred at the force sensor; and
[0011] An event detection phase is used to receive the indication and determine whether a user input has occurred based on the input received from the at least one force sensor.
[0012] Such a force sensing system may be provided as a relatively low power, always on module which may provide input to a relatively high power central processing unit or application processor. The event detection stage may be power gated by the output of the activity detection stage. Thus by using an activity detection stage in conjunction with an event detection stage, the power consumption of the system may be minimized to achieve always on operation.
[0013] Force Sensors
[0014] Preferably, the system further comprises:
[0015] At least one force sensor has an output coupled to the input channel to provide the received input.
[0016] Preferably, the at least one force sensor comprises one or more of the following:
[0017] Capacitive displacement sensor;
[0018] Inductive force sensor;
[0019] Strain gauge;
[0020] Piezoelectric force sensor;
[0021] force sensing resistor;
[0022] Piezoresistive force sensor;
[0023] Thin film force sensors; and
[0024] Force sensors based on quantum tunneling complexes.
[0025] Input Channels
[0026] Preferably, the input channel is arranged to provide at least one of:
[0027] gain control adjustment of said input from said at least one force sensor;
[0028] a bias voltage adjustment for said input from said at least one force sensor;
[0029] a duty cycle of the at least one force sensor;
[0030] adjusting the sensitivity of the at least one force sensor;
[0031] polarity adjustment of the at least one force sensor; and
[0032] An offset adjustment of the at least one force sensor.
[0033] Sensor Conditioning
[0034] Preferably, the system further comprises:
[0035] A sensor conditioning stage is configured to condition an input received from the input channel to provide a conditioned force sensing signal, wherein the activity detection stage performs the activity level monitoring on the conditioned force sensing signal.
[0036] Preferably, the sensor conditioning stage is configured to perform normalization on the input received from the input channel. The normalization may be based on predetermined calibration parameters of the system and / or based on dynamically updated calibration parameters.
[0037] Preferably, the sensor conditioning stage is configured to filter the input received from the input channel to suppress noise. Preferably, the filtering comprises applying a low pass filter to the input received from the input channel. Preferably, the low pass filter is configured to have low latency.
[0038] Preferably, said sensor conditioning stage is configured to perform baseline tracking of said input received from said input channel.Preferably, said sensor conditioning is configured to allow an adjustable time constant for said baseline tracking.
[0039] Wherein the system is configured to receive inputs from a plurality of force sensors, preferably the sensor conditioning stage is configured to determine an inverse correlation matrix of the inputs received from the input channels to determine a sensor diagonalization of the inputs received from the input channels.
[0040] It will be appreciated that the sensor conditioning stage may include some or all of the above elements to provide the conditioned force sensing signal.
[0041] Activity Detection
[0042] Preferably, the activity detection stage includes a threshold setting module, which is configured to determine whether the activity level of the input or the conditioned force sensing signal from the at least one force sensor exceeds at least one threshold, wherein if the activity level exceeds the at least one threshold, the activity detection stage determines that activity has occurred at the force sensor.
[0043] Preferably, the threshold setting module is configured to monitor a signal received by the activity detection stage and compare a power level of the monitored signal to a power level threshold indicating the occurrence of activity at the sensor.
[0044] Preferably, the system further comprises a feature extraction module configured to extract features from a monitoring signal including the input from the at least one force sensor or the conditioned force sensing signal.
[0045] Preferably, the feature extraction module is configured to extract at least one of the following from the monitoring signal:
[0046] the rate of increase and / or decrease of the monitoring signal;
[0047] The activity duration of the monitoring signal; and
[0048] The monitoring signal defines classifier parameters, such as bias values.
[0049] Preferably, the threshold module is further configured to perform at least one of the following:
[0050] comparing the rate or rise and / or fall of the monitored signal to a corresponding rising threshold and / or falling threshold indicating activity occurring at the sensor;
[0051] comparing the activity duration of the monitoring signal to minimum and / or maximum duration thresholds indicative of activity occurring at the sensor; and
[0052] The monitoring signal is compared to defined classification parameters to determine whether activity has occurred at the sensor.
[0053] Preferably, the feature extraction module is power gated by the threshold setting module such that if the power level of the monitoring signal exceeds a power level threshold indicating activity occurring at the sensor, the feature extraction module is enabled.
[0054] Preferably, the indication generated by the activity detection stage and received by the event detection stage comprises:
[0055] A signal that activity has occurred and / or at least one output of said feature extraction module.
[0056] Event Detection
[0057] Preferably, the event detection phase comprises a comparison phase arranged to compare the received indication with a stored touch event model and to determine whether a user input has occurred based on the comparison.
[0058] Preferably, the event detection stage is arranged to output an indication that the event detection stage has detected a user input.
[0059] Preferably, the event detection stage is configured to detect the type of user input that has occurred by comparing the received indication with a stored touch event model to distinguish between:
[0060] A tap event (e.g., greater than 1 / 4 second in duration and less than 1 / 2 second in duration);
[0061] Press events (e.g., duration greater than 1 / 2 second),
[0062] Wherein the event detection stage is arranged to output an indication of a type of user input that has been detected.
[0063] Calibration / Diagnostics
[0064] Preferably, the system further comprises a calibration and diagnostic stage configured to receive the output of the input channel and / or the output of the sensor conditioning stage and determine whether recalibration of the system is required.
[0065] Preferably, the calibration and diagnostics phase is configured to generate a system output when recalibration of the system is required.Preferably, the system output is provided as a system interrupt for transmission to a central controller or processing unit couplable to the system.
[0066] Device
[0067] There is also provided a device comprising a force sensing system as described above. The device may comprise any suitable electronic device, such as a mobile phone or tablet device. The force sensing system is preferably arranged to be coupled to an application processor or central processing unit of any such device.
[0068] Input Path
[0069] In another aspect of the invention, it will be appreciated that the force sensing system is provided with a configurable input path from the force sensor to a component of the force sensing system. In a preferred aspect, the operating mode of the input path may be different depending on whether the system or module is performing activity detection or event detection. The signal path between the force sensor and the appropriate module may be switched taking into account power consumption, latency, etc. For example, when performing event detection, the input path may be configured in this manner to save power consumption, but this may result in a reduced signal-to-noise ratio.
[0070] method
[0071] A force sensing method is also provided, the method comprising the following steps:
[0072] receiving input from at least one sensor;
[0073] monitoring an activity level of the input from the at least one force sensor and, in response to reaching an activity level indicative of user input, generating an indication that activity has occurred at the force sensor; and
[0074] A determination is made as to whether a user input has occurred based on the input received from the at least one force sensor.
[0075] Preferably, the method further comprises the following steps:
[0076] The input received from the input channel is conditioned to provide a conditioned force sensing signal, wherein the step of activity level monitoring is performed on the conditioned force sensing signal.
[0077] It will be appreciated that the above-described features of the force sensing system may be provided as further method steps.
[0078] Further statements defining aspects of the invention and associated optional features are provided at the end of the description. BRIEF DESCRIPTION OF THE DRAWINGS
[0079] Reference will now be made, by way of example only, to the accompanying drawings in which:
[0080] Figure 1 is a schematic diagram of an apparatus according to one embodiment;
[0081] Figure 2 is with Figure 1 A schematic diagram of an exemplary force sensing system related to the apparatus;
[0082] Figure 3 is with Figure 1 A schematic diagram of another exemplary force sensing system related to the device;
[0083] Figure 4A and Figure 4B It is shown Figure 3 A graph showing how exemplary thresholds are employed by a system;
[0084] Figure 5 is a flow chart presenting an exemplary method of anomaly detection;
[0085] Figure 6 is a graph showing how a sigmoid function can be used to map parameter values to values from 0 to 1;
[0086] Figure 7 A series of graphs showing results where anomaly detection was tested on a device having six sensors or channels;
[0087] Figure 8 is a flow chart of an exemplary method of presenting event detection;
[0088] Fig. 9 is a flow chart presenting an exemplary method of adaptive threshold determination;
[0089] Fig.10 a series of graphs showing results of testing a first exemplary method and a second exemplary method of adaptive threshold determination;
[0090] Fig.11 relates to an estimation of a response time of a noise estimate in connection with a first exemplary method of adaptive threshold determination;
[0091] Fig.12 is a schematic diagram of an exemplary inductive sensing system;
[0092] Fig.13 is based on Fig.12 A schematic diagram of an exemplary implementation of a button of a system;
[0093] Fig.14 is a schematic diagram of an exemplary system for measuring phase shift;
[0094] Fig.15 is a schematic diagram of an exemplary improved system for measuring phase shift;
[0095] Fig.16 yes Fig.15 a schematic diagram of an exemplary detailed implementation of a portion of the system;
[0096] Fig.17 Presentation helps understanding Fig.15 and Fig.16 A waveform diagram of
[0097] Fig.18 is used in Figure 1 Schematic diagram of the controller of the force sensing system used in the device. DETAILED DESCRIPTION
[0098] Device
[0099] Figure 1 1 is a schematic diagram of a device 100 (e.g., a mobile or portable electrical or electronic device) according to one embodiment. The exemplary device 100 includes a portable and / or battery-powered host device such as a mobile phone, a smart phone, an audio player, a video player, a PDA, a mobile computing platform (such as a laptop or tablet computer), and / or a gaming device.
[0100] like Figure 1 As shown, the device 100 may include a housing 101 , a controller 110 , a memory 120 , a plurality of force sensors 130 , and an input and / or output unit (I / O unit) 140 .
[0101] Housing 101 may include any housing, casing, frame, or other casing suitable for housing the various components of device 100. Housing 101 may be constructed of plastic, metal, and / or any other suitable material. Furthermore, housing 101 may be adapted (e.g., sized and shaped) to make device 100 easily transportable by a user (i.e., a person).
[0102] The controller 110 may be housed within the housing 101 and may include any system, device, or apparatus configured to control the functionality of the device 100, including any or all of the memory 120, the force sensor 130, and the I / O unit 140. The controller 110 may be implemented as digital or analog circuitry in hardware or in software running on a processor, or in any combination of these.
[0103] The controller 110 may include any system, device or apparatus configured to interpret and / or execute program instructions or codes and / or process data, and may include, but is not limited to: a processor, a microprocessor, a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), an FPGA (field programmable gate array), or any other digital or analog circuit system configured to interpret and / or execute program instructions and / or process data. Thus, the code may include program code or microcode, or (for example) code for setting or controlling an ASIC or FPGA. The code may also include code for dynamically configuring a reconfigurable device (such as a reprogrammable logic gate array). Similarly, the code may include code for a hardware description language such as Verilog TM or VHDL. As will be appreciated by the skilled person, the code may be distributed between multiple coupled components that communicate with each other. Where appropriate, such aspects may also be implemented using code running on a field (re)programmable analog array or similar device to configure analog hardware. Processor control code for execution by controller 110 may be provided on a non-volatile carrier medium such as a disk, CD-ROM or DVD-ROM, a programmed memory such as a read-only memory (firmware), or on a data carrier such as an optical or electrical signal carrier. Controller 110 may be referred to as a control circuit system and may be provided as an integrated circuit such as an IC chip or as a part thereof.
[0104] The memory 120 may be housed within the housing 101, communicatively coupled to the controller 110, and include any system, device, or apparatus (e.g., computer-readable medium) configured to retain program instructions and / or data for a period of time. In some embodiments, the controller 110 interprets and / or executes program instructions and / or processes data stored in the memory 120 and / or other computer-readable media accessible to the controller 110.
[0105] The force sensors 130 may be housed within, located on, or form a part of the housing 101 and may be communicatively coupled to the controller 110. Each force sensor 130 may include any system, device, or apparatus suitable for sensing force, pressure, or touch (e.g., interaction with a human finger) and generating an electrical or electronic signal in response to such force, pressure, or touch. Exemplary force sensors 130 include or comprise capacitive displacement sensors, inductive force sensors, strain gauges, piezoelectric force sensors, force sensing resistors, piezoresistive force sensors, thin film force sensors, and force sensors based on quantum tunneling complexes. In some arrangements, other types of sensors may be employed.
[0106] In some arrangements, the electrical or electronic signal generated by the force sensor 130 may be a function of the magnitude of the force, pressure, or touch applied to the force sensor. Such an electronic or electrical signal may include a general purpose input / output signal (GPIO) associated with an input signal to which the controller 110 controls some functionality of the device 100 in response. As used herein, the term "force" may refer not only to force, but also to a physical quantity indicating force or similar to force, such as, but not limited to, pressure and touch.
[0107] I / O unit 140 may be housed within housing 101, may be distributed across device 100 (ie, it may represent multiple units), and may be communicatively coupled to controller 110. Figure 1 Although not specifically shown, the I / O unit 140 may include any or all of the following: a microphone, an LRA (or other device capable of outputting force (such as vibration)), a radio (or other electromagnetic) transmitter / receiver, a speaker, a display screen (optionally a touch screen), an indicator (such as an LED), a sensor (e.g., an accelerometer, a temperature sensor, a tilt sensor, an electronic compass, etc.), and one or more buttons or keys.
[0108] As a simple example, the device 100 may be a haptic-enabled device. As is well known, haptic technology recreates the sensation of touch by applying force, vibration or motion to a user. The device 100 may be considered, for example, as a haptic-enabled device (a device enabled with haptic technology), in which its force sensor 130 (input transducer) measures the force applied by the user on a user interface (such as a button or touch screen on a mobile phone or tablet computer), and an LRA or other output transducer of the I / O unit 140 (e.g., through a touch screen) applies force directly or indirectly to the user, for example, to give tactile feedback. Some aspects of the present disclosure (e.g., the controller 110 and / or the force sensor 130) may be arranged as part of a haptic circuit (e.g., a haptic circuit that may be provided in the device 100). A circuit or circuit system (such as the controller 110) embodying aspects of the present disclosure may be (at least partially) implemented as an integrated circuit (IC), for example, on an IC chip. One or more input or output transducers (such as the force sensor 130 or the LRA) may be connected to the integrated circuit in use.
[0109] Of course, this application to haptic technology is just one exemplary application of a device 100 that includes multiple force sensors 130. The force sensors 130 may be used simply as general input transducers to provide input (sensor) signals to control other aspects of the device 100, such as a GUI (graphical user interface) displayed on a touch screen of the I / O unit 140 or an operating state of the device 100 (such as waking a component from a low-power "sleep" state).
[0110] The device 100 is shown as including four force sensors 130, labeled s1, s2, s3, and s4, whose signals are labeled S1, S2, S3, and S4, respectively. However, for certain functionality disclosed herein, the device 100 need only include one or a pair (i.e., at least two) of force sensors 130. Exemplary pairs include s1 and s2 (on different or opposite sides of the device 100) and s1 and s3 (on the same side of the device 100). Of course, the device 100 may include more than four force sensors 130, such as additional sensors s5 to s8 arranged in a similar manner to sensors s1 to s4 but located in another area of the device 100. As another example, the device 100 may include three or more force sensors 130, which are arranged, for example, in a linear array on the same side of the device (like s1 and s3), such that some of those force sensors 130 are adjacent to each other and some are separated from each other by at least another force sensor 130.
[0111] Although Figure 1 1 is a schematic diagram, but sensors s1 to s4 are positioned so that they can receive force input from a user (particularly a user's hands) during use of device 100. In this context, user force input corresponds to a user touching, pushing, pressing, or swiping the device, optionally with one or both of their hands, near one or more of force sensors 130. In some cases, force (e.g., a threshold amount of force) may be applied at multiple force sensors at the same time or substantially at the same time (simultaneously or contemporaneously). Of course, in other cases, a user may apply user force input at a single force sensor 130. For example, a change in the amount of force applied may be detected rather than an absolute amount of force.
[0112] Thus, force sensors s1 to s4 may be positioned on the device based on anthropometric measurements of a human hand. For example, in the case of only a pair of force sensors 130, as described above, they may be disposed on the same side (e.g., s1 and s3) or opposite / different sides (e.g., s1 and s2) of the device 100. The force sensors 130 are disposed at different locations on the device, but may be very close to each other.
[0113] In one arrangement (in Figure 1 ), force sensors s1 to s4 may be arranged in a linear array or strips on one side of device 100 (another linear array of force sensors s5 to s8 may be arranged on the opposite side of device 100), and may be in close proximity to each other.
[0114] A given user force input (from a touch of device 100 in the area of force sensor 130 ) may result in force being picked up at multiple force sensors 130 , due in part to mechanical interactions between force sensors 130 (eg, such as mechanical connections through housing 101 ).
[0115] To summarize Figure 1 In the arrangement of the apparatus 100, it can be considered that the apparatus 100 includes N force sensors 130, where N=1 in some arrangements and N>1 in other arrangements. Taking N>1 (i.e., at least two force sensors 130) as an example, the force sensors 130 can be referred to as force sensors s1 to sN (or simply referred to as sensors 1 to N). Therefore, based on the input sensor signals S1 to SN originating from (or derived from or received from) the corresponding sensors 1 to N, the controller 110 can operate in the general arrangement to implement a force sensing system.
[0116] Combination Figure 2 and Figure 3 An exemplary such force sensing system will be better understood.
[0117] Force Sensing System
[0118] Figure 2 1 is a schematic diagram of an exemplary force sensing system 200A associated with device 100. System 200A is depicted as including sensors 130 (sensors 1 to N), controller 110A (as an exemplary detailed implementation of controller 110), and additional control circuitry 150 (in Figure 1 However, the system 200A may be viewed as the controller 110A alone, with the sensor 130 and the additional control circuitry 150 being located external to the system 200A.
[0119] Input sensor signals originating from sensors 1 through N are received by controller 110A at sensor input channels of the controller as indicated, for example, at physical hardware inputs of controller 110A. The functionality of controller 110A is organized into three general phases, specifically a sensor conditioning phase 300A, a sensor activity detection phase 400A, and a sensor event detection phase 500A.
[0120] The division into phases may be considered as division into sections, units or modules and may be considered as illustrative.The functionality of the controller 110A may be implemented in software (executing on a processor of the controller 110A), or in hardware, or in a combination of software and hardware.
[0121] The sensor conditioning phase 300A itself includes phases corresponding to corresponding sensor (or signal) conditioning activities or processes. Figure 2 As shown, these activities include normalization 305 , filtering (eg, low pass filtering, such as a low latency low pass filter) 310 , baseline tracking 315 , and inverse correlation matrix application (eg, to mitigate the effects or impact of mechanical crosstalk between sensors 130 ).
[0122] The sensor activity detection phase 400A itself includes phases corresponding to the corresponding detection activities or processes. Figure 2 As shown, these include a threshold setting stage 410 (e.g., for determining a signal level threshold in an adaptive manner) and a feature extraction stage 420 (e.g., for extracting certain defined features from the sensor signal for use by the sensor event detection stage 500A). The sensor activity detection stage 400A may be configured to act on the sensor signal (e.g., as conditioned by the sensor conditioning stage 300A) Figure 2 ) and / or as a sensor signal received from sensor 130.
[0123] The sensor event detection stage 500A includes a press / tap model stage 510 that is configured to classify the user force input based on the features extracted by the feature extraction stage 420. In some arrangements, the press / tap model stage 510 may be configured to act on the sensor signal as conditioned by the sensor conditioning stage 300A and / or as received from the sensor 130, together with the signal level threshold from the threshold setting stage 410.
[0124] Additional force sensing systems
[0125] Figure 3 is a schematic diagram of another exemplary force sensing system 200B, which may be considered a variation of force sensing system 200A and helps to understand in more detail how the various stages function. System 200B will form the basis of a running example.
[0126] The system 200B is depicted as including the sensors 130 (sensors 1 to N), the controller 110B (as an exemplary detailed implementation of the controller 110). As before, the system 200B may be viewed solely as the controller 110B.
[0127] Consistent with system 200A, the functionality of controller 110B is organized into three general stages, specifically a pre-processing stage 300B, an edge detection stage 400B, and an event classification stage 500B.
[0128] Stages 300B, 400B and 500B may be compared to stages 300A, 400A and 500A, respectively. For ease of understanding, similar elements have been denoted by similar reference numerals where possible. As before, the division into stages may be considered as a division into sections, units or modules, and may be considered schematic. The functionality of controller 110B may be implemented in software (executing on a processor of controller 110B), or in hardware, or in a combination of software and hardware.
[0129] In pre-processing stage 300B, as compared to sensor conditioning stage 300A, anomaly detection stage 325, recalibration request stage 330, sensor to button mapping stage 335, and neighbor sensor suppression stage 340 have replaced inverse correlation matrix stage 320. Neighbor sensor suppression stage 340 is comparable to inverse correlation matrix stage 320.
[0130] The anomaly detection stage 325 is configured to detect user force inputs that do not satisfy or deviate from a model defining one or more "normal" or "expected" user force inputs. In other words, the anomaly detection stage 325 can be configured to detect user force inputs that satisfy a model defining one or more "abnormal" user force inputs. In this way, the anomaly detection stage 325 can detect abnormal use (or misuse) of the device 100, and use this detection to raise an anomaly flag (e.g., set the value of an anomaly flag variable from 0 to 1). The anomaly flag can be used to disable other stages or impact period operations of the controller 110B as indicated (e.g., to save power or processing overhead). Exemplary functionality of the anomaly detection stage 325 is considered in detail later herein.
[0131] The recalibration request phase 330 is configured to detect characteristics of the sensor signal (as conditioned by the previous phase) that indicate a need for a recalibration process. The recalibration request phase 330 may be configured to initiate or trigger a recalibration process upon detecting that the sensor signal (as conditioned by the previous phase) no longer meets defined specifications.
[0132] The sensor-to-button mapping stage 335 is configured to combine (by appropriate weighting) (e.g., as a weighted sum or average) sensor signals originating from different sensors 130 such that each combined sensor signal corresponds to a virtual button whose position is defined relative to the position of the sensor 130. The sensor signals before the sensor-to-button mapping stage 335 may be considered as sensor signals in the sensor domain (i.e., the signals are of a pressed sensor), and the sensor signals output by the sensor-to-button mapping stage 335 may be considered as sensor signals in the button domain (i.e., the signals are of a pressed “virtual” button).
[0133] The adjacent sensor suppression stage 340 is configured to subtract a proportion of one sensor signal from another sensor signal to mitigate or suppress the effects of mechanical crosstalk between sensors 130 on the sensor signals. The adjacent sensor suppression stage 340 is shown as operating in the button domain (i.e., on the combined sensor signal), but it may operate in the sensor domain.
[0134] Despite Figure 3300B, but a sensitivity correction stage may be provided in the pre-processing stage 300B (e.g., in the signal path between the baseline tracking stage 315 and the anomaly detection stage 325). The sensitivity correction stage may, for example, adjust the sensor signal to compensate for changes in sensor sensitivity over temperature (e.g., it compensates the sensitivity of one or more sensors for a given temperature).
[0135] In the edge detection stage 400B, as compared to the sensor activity detection stage 400A, the noise power estimation stage 412 and the adaptive threshold setting stage 414 have replaced the threshold setting stage 410. In the operating example, these stages are configured to determine the signal level threshold in an adaptive manner, specifically the noise threshold below which the signal energy is dominated by the noise energy. The exemplary functionality of the noise power estimation stage 412 and the adaptive threshold setting stage 414 is considered in more detail later herein. The noise power estimation stage 412 and the adaptive threshold setting stage 414 are shown as operating in the button domain (i.e., on the combined sensor signal), but may operate in the sensor domain.
[0136] Figure 3 The feature extraction stage 420 in FIG. 2 is shown as operating in the button domain based on the sensor signals output by the adjacent sensor suppression stage 340. This is of course an example; depending on the application, the feature extraction stage 420 may operate on any of the sensor signals employed in the system 200B. In the operating example, the output of the feature extraction stage 420 is a feature stream consisting of indications of features detected in the relevant sensor signals. In the exemplary implementation described later, these indications are provided in the form of feature vectors.
[0137] A squeeze detector stage 430 is also provided in the system 200B. The squeeze detector stage 430 is configured to detect a user squeeze input in which a user has applied a compressive force to the device 100 as an exemplary user force input. The squeeze detector stage 430 is shown as operating in the sensor domain, but it may operate in the button domain (i.e., on a combined sensor signal). Such a user squeeze input may be picked up by a corresponding sensor 130 (or a corresponding virtual button) located on a different or opposite side or edge of the device 100, for example, and thus the squeeze detector stage 430 may be configured to operate on a specific pair or group of sensor signals accordingly.
[0138] A fixed (fixed) threshold detection stage 440 is also provided in the system 200B (e.g., in the edge detection stage 400B), which may be optional. The fixed threshold detection stage 440 is shown as operating in the button domain (i.e., on the combined sensor signal), but it can operate in the sensor domain. The fixed threshold detection stage 440 is configured to determine whether one or more sensor signals (e.g., the combined sensor signal) exceed a fixed threshold, for example to indicate that a basic activity level has been detected. Such an activity level may, for example, be sufficient to cause the controller 110B to transition between operating modes.
[0139] In this regard, the fixed threshold detection stage 440 (e.g., in the edge detection stage 400B) Figure 3 4 is indicated as operating in a "deep standby mode", the noise power estimation stage 412 and the adaptive threshold setting stage 414 are indicated as operating in a "standby mode", and the feature extraction stage 420 and the squeeze detector stage 430 are indicated as operating in an "active mode". For reasons of power or processing overhead efficiency, the controller 110B may be configured to transition between operating modes with certain stages disabled or placed in a low-power sleep state in certain operating modes.
[0140] For example, the noise power estimation stage 412 and the adaptive threshold setting stage 414 may be disabled unless the controller 110B is in the standby or active mode. The transition from the deep standby mode to the standby mode may occur when one or more sensor signals (or combined sensor signals) exceed the fixed thresholds described above. As another example, the feature extraction stage 420 and the squeeze detector stage 430 may be disabled unless the controller 110B is in the active mode. The transition from the standby mode to the active mode may occur when one or more sensor signals (or combined sensor signals) exceed a threshold value (such as a noise threshold value determined by the noise power estimation stage 412 and the adaptive threshold setting stage 414).
[0141] As another example, the sampling frequency, data acquisition rate, scan rate, or sampling rate at which the sensor 130 is sampled (and the corresponding sensor signal is processed) may depend on the operating mode. For example, one (very low) sampling rate may be used in deep standby mode, another (low) sampling rate may be used in standby mode, and another (high) sampling rate may be used in active mode. In an operating example, a low sampling rate of, for example, 30 Hz is used in standby mode, and a high sampling rate of, for example, 1000 Hz is used in active mode.
[0142] The event classification stage 500B includes a press / tap model stage (module) 510, which corresponds to the press / tap model stage 510 in the sensor event detection stage 500A, operates in the button domain and based on the feature stream output by the feature extraction stage 420. In some arrangements (although in Figure 3 ), the press / tap model stage 510 may be configured to act on sensor signals as conditioned by the processing stage 300B and / or as received from the sensor 130 in either the button domain or the sensor domain.
[0143] Despite Figure 3 500B after the event classification stage 500B. The post-processing stage may include a confidence adjustment stage and an event time constraint stage, which are provided, for example, in the order described, so that the confidence adjustment stage operates based on the output signal of the press / tap model stage 510, and the event time constraint stage operates based on the output signal of the confidence adjustment stage. The confidence adjustment stage and the event time constraint stage may be configured to reject events that do not meet given (e.g., different for different events) pre-defined constraints. The confidence adjustment stage may, for example, receive a virtual button confidence measure from the sensor to the button mapping stage 335.
[0144] Threshold
[0145] To help understand the functionality of each unit of the controller 110B, Figure 4A and Figure 4B is a graph showing how the system 200B (particularly the controller 110B) employs exemplary thresholds in the case of detecting a user tap (tap event) and a user press (press event), respectively, in an operational example.
[0146] exist Figure 4A and Figure 4B In each of the Figures 1 and 2, an exemplary sensor signal (or combined sensor signal) is shown as a plot of signal amplitude in Newtons (y-axis) versus time in seconds (x-axis). This can be considered to represent the input signal from any type of force sensor. For example, in the case of a resistive sensor, the voltage across the sensor can be converted to such a signal amplitude, while in the case of an inductive sensor (or resistive-inductive-capacitive sensor) driven with an AC signal, the measured phase can be converted to such a signal amplitude. Therefore, the discussion of amplitude herein will be considered to include, for example, the amplitude of the phase signal (i.e., the change in the phase signal).
[0147] In both cases, four thresholds are shown, namely a noise threshold (TH noise), a falling threshold (TH fall), a tap threshold (TH tap) and a rising threshold (TH rise), which have successively larger amplitude values in the stated order.
[0148] Figure 4A A tap event is shown in . This event is very short (approximately 100 ms in the example) and is characterized by low force. This is one motivation for using a low tap threshold TH tap to detect taps. Figure 4B A normal push event is shown in . In this case, the event is longer (approximately 330ms in the example) and the force is higher than a tap. Therefore, a higher threshold value, such as TH rise, may be used.
[0149] See also Figure 4A and Figure 4B , the controller 110B is configured in an operational example to employ these exemplary thresholds as follows.
[0150] The TH noise threshold (in the operational example) is calculated dynamically or adaptively, as explained later. In addition, if the current signal amplitude (force reading) is above the TH noise threshold, the system is configured to operate using the aforementioned high sampling rate (active mode), whereas if the current signal amplitude (force reading) is below the TH noise threshold, the system is configured to operate using the aforementioned low sampling rate (standby mode). Thus, the TH noise threshold can control the sampling rate used for each new incoming signal sequence (or signal sample), and thus control power consumption.
[0151] If the sensor signal reaches the TH rise threshold (see Figure 4A ), the system triggers the rising flag. However, Figure 4A and Figure 4B Note that this threshold is not reached in all cases, such as when a tap event occurs.
[0152] When the sensor signal rises above the tapping threshold TH tap, the system (particularly the feature extraction stage 420) begins to fill in the feature vector. In the operating example, this vector contains the length of the pulse, the gradient to the maximum peak, the time from the point where the pulse crosses the tapping threshold TH tap to the maximum peak, and the maximum value of the peak. Effectively, the feature vector contains the features of the contour or shape of the waveform defined between rising through the tapping threshold TH tap and then falling through the TH fall threshold.
[0153] If the sensor signal reaches the TH fall threshold (once it has been above the TH tap or TH rise threshold), the system sends the features (feature vectors) of the current signal sequence as obtained by the feature extraction stage 420 to the press / tap model stage 510 and triggers the fall flag. In the case where the signal only reaches the tap threshold TH tap but not the rise threshold TH rise (e.g. Figure 4A As shown), then the rising flag is also triggered at this time. Therefore, the situation in which the rising and falling flags are triggered reflects the current signal sequence.
[0154] This feature vector is updated for each sample (i.e., at the sampling rate) until it is finally sent to the model when the signal is below the falling threshold TH fall. This avoids continuously sending information to the model (i.e., the press / tap model stage 510). After the feature vector is sent to the press / tap model stage 510 for a given signal sequence, it is removed or cleared from the feature extraction stage 420 so that the feature vector can be refilled for subsequent signal sequences.
[0155] Anomaly Detection
[0156] It will be explained later how the press / tap model stage 510 uses features (particularly feature vectors) to determine whether a tap event or a press event (or some other defined event, i.e., a "desired" event) has occurred. However, before explaining the detection of such events (expected or recognized "normal" user input), the detection of anomalies (unexpected user input) will be considered.
[0157] Sensors 130 placed at any location on the device 100 are intended to measure displacement of the housing 101, which is then mapped to a force, given the sensitivity of the sensors 130. These sensors 130 can be used, for example, to measure forces in a specific location of the device 100, and trigger a 'button pressed' internal state or event when the force is above a certain level. However, there are other actions, such as twisting or bending the device 100, that can cause the housing 101 to shift and thus generate a force on the sensors 130 that is similar to a button press (in terms of force magnitude and / or duration). Such actions can potentially falsely trigger internal events or states and thereby degrade the overall performance of the force sensing system 200B.
[0158] The anomaly detection stage 325 is intended to avoid such false triggering caused by misuse (unintended use) of the device 100. Any unexpected behavior of the candidate (input) sensor signal (ie, the signal to be processed) is promptly flagged.
[0159] In the force sensing domain, the signal acquired when an expected or "normal" event occurs can be well characterized as rising from approximately zero amplitude and then falling again to approximately the same initial value after a finite period of time (see Figure 4A and Figure 4B ) signal. The anomaly detection stage 325 is configured to identify patterns (or specific or given characteristics) that do not follow such normal characteristics. In general, an anomaly flag is triggered when a signal follows a pattern that is different from an expected or normal pattern.
[0160] The exception flag may be used to disable any decisions being made at that time (e.g., regarding the type of user force input that is occurring, such as a push or tap event). For example, the exception flag may be used to disable feature extraction stage 420 and / or squeeze detector stage 430. The exception flag may also be used to disable bias tracking (e.g., by baseline tracking stage 315) in order to avoid using any of this data to update the force sensing system.
[0161] Figure 5 is a flow chart presenting an exemplary method 600 of anomaly detection performed by the anomaly detection stage 325 , the exemplary method 600 including steps 602 , 604 , and 606 .
[0162] In step 602, a candidate sensor signal is monitored. This signal may be a sensor signal originating from an individual sensor 130, or, for example, a combination (such as an average) of sensor signals originating from individual sensors 130, i.e., in the sensor domain. In another arrangement, the candidate sensor signal may be a combined sensor signal representing a virtual button as output by the sensor-to-button mapping stage 335, or an average of such combined sensor signals, i.e., in the button domain.
[0163] In step 604, it is determined whether the candidate sensor signal has a given characteristic that identifies the signal as representing an abnormal user force input (anomaly). If not (no, step 604), the method 600 returns to step 602 to continue monitoring the candidate sensor signal. If yes (yes, step 604), the method proceeds to step 606, where the anomaly is recorded (which corresponds to raising an anomaly flag). The method 600 then returns to step 602. The method 600 may terminate at any point.
[0164] A variety of approaches may be used in step 604 to detect deviations of the candidate sensor signal from an expected pattern, i.e., to detect the given characteristic or at least one given characteristic. One approach is to calculate the sum of the amplitude signals from some or all of the sensors 130, and if this sum is less than a predetermined negative value, activate an anomaly flag. This approach is further discussed below. Alternatively, the candidate sensor signal may be modeled by its statistics, and an anomaly flag may be triggered when the statistics of the incoming signal deviate from the model. Potentially different features may be used to measure this pattern inconsistency. Another possibility is to use a classification algorithm, and this possibility is mentioned later in conjunction with event detection.
[0165] As above, one possible implementation of step 604 is to detect negative forces on N channels. In one example, the parameter used to quantify this behavior is the average of the amplitudes on the N channels.
[0166]
[0167] where the sensor signal is a digital signal comprising a series of numbered samples, n is the number of samples, i is the channel number, N is the total number of channels (in the sensor world, a channel may have a 1-to-1 relationship with a force sensor 130; or in the case of a virtual button, a channel may have a 1-to-many mapping), and x i (n) represents the sensor signal of channel i.
[0168] Then, use the following sigmoid function to convert the parameters Mapped to values from 0 to 1:
[0169]
[0170] Figure 6 is to show how to use four different combinations of values of a and b to convert the parameter A graph that maps values from 0 to 1. In general, the value a controls the slope, and the value b controls the x-axis value at which the output transitions from 0 to 1. Of course, transitioning from 0 to 1 (or vice versa) is an example of a convenient digital signal processing. A sigmoid function or other mapping function may be used to map values to other ranges (eg, -1 to +1).
[0171] Figure 7 A series of graphs are shown showing the results of testing the above approach on a device 100 having six sensors (channels) 130. In particular, the configuration employed includes four sensors 130 (e.g., s1, s3, and another two) on one side of the device 100 and two sensors 130 (e.g., s2 and s4) on the other side.
[0172] In the test, the six sensors 130 (buttons) were first pressed sequentially, and then the device 100 was subjected to two types of twists. In the top graph, the individual sensor signals of the six sensors 130 are shown, and the test sequence of button presses and twists can be seen. In the middle top graph, the combined sensor signals (which correspond to the virtual buttons) are shown using a 2-to-1 mapping of sensors 130 to virtual buttons to help give a clearer indication of the force applied to the device 100. In the middle bottom graph, the average (mean) of the combined sensor signals from the middle top graph is shown (which is actually equivalent to the average of the sensor signals from the top graph), i.e. And in the bottom graph, the result of applying the above sigmoid function to the mean (at specific values of a and b) is shown.
[0173] Figure 7 This implementation of method 600 (particularly step 604 ) demonstrates that the exemplary “undesirable” distortions (ie, anomalies) of device 100 are correctly detected, since at these moments the signal in the bottommost graph changes from 0 to 1 (and otherwise is 0).
[0174] In addition to or instead of looking for negative averages (means), another possibility is to look for negative cross-correlations between specific sensor signal pairs (where such negative cross-correlations would be expected to indicate an anomaly). In this case, the middle lower graph may plot the cross-correlations of specific sensor signal pairs, and a mapping function (such as a sigmoid function) may be used to convert each plot into an anomaly detection signal that can be compared to the signal in the lowermost graph.
[0175] As before, when an anomaly is detected, the system 200B (e.g., the anomaly detection stage 325 itself) may be configured to disable one or more functions of the system (or indeed the host device 100), which is done by raising an anomaly flag. Figure 3 As shown, this may involve (selectively) disabling the baseline tracking stage 315 and / or the feature extraction stage 420 (eg, in conjunction with the press-tap model stage 510).
[0176] Thus, in general, the system is configured to identify abnormal (unwanted) user input and control the operation of the system in response. This control may (e.g., selectively) include changing the operating mode, changing the sampling rate, or disabling (or transitioning to a low power mode) one or more functions / units. This may improve power or processing overhead efficiency, or reduce the number of false positives (erroneously identified user inputs).
[0177] Event Detection
[0178] The press / tap model stage 510 will now be further considered, particularly its use of signal features (e.g., feature vectors) to determine whether a tap event or a press event (or some other qualified event associated with a corresponding "desired," "accepted," "supported," or "intended" user force input) has occurred. Basic supported events (such as tap and press events corresponding to such supported user force inputs) may be referred to as core events.
[0179] In general, the event detection functionality of the press / tap model stage 510 reduces the complexity of detecting core events based on force sensor readings (i.e., sensor signals or combined sensor signals). In the case of device 100 (such as a mobile phone or tablet computer), these core events can be tapping, pushing / pressing, and long pushing / pressing events, although these are only examples. The event detection functionality is configured to identify not only defined core events, but also combinations of defined core events that can be referred to as gestures. Exemplary gestures include up / down sliding, double tapping, and double pressing events.
[0180] Detecting a core event from one or more sensor signals may involve considering multiple signal features (signal characteristics), such as duration, maximum applied force, or the gradient of a rising pulse. Such dependencies may result in complex and large state machine implementations required just to distinguish between several different core events.
[0181] To avoid this complexity, the event detection functionality employs a classification algorithm based on the input sensor signal (or Figure 3 In the case of , operations are performed based on the feature vector to classify the user input. There are many possible algorithms, including, for example, neural networks and indeed any machine learning model.
[0182] A model can be generated from the recorded training data and implemented by a corresponding (classification) algorithm to classify a given signal sequence (extracted from the sensor signal), with the additional advantage that the real data guides the recognition problem. Such model-based core event detection can enable the algorithm to easily adapt to new data (e.g., for a new setting of sensors 130 on the device 100) while maintaining good performance based on the given training data.
[0183] Figure 8 is a flow chart presenting an exemplary method 800 of event detection performed by the feature extraction stage 420 in conjunction with the press / tap model stage 510 , the method 800 including steps 802 , 804 , 806 , 808 , and 810 .
[0184] In step 802, a signal sequence is extracted from candidate sensor signals as a sequence that may (or may not) represent a core event. This signal may be a sensor signal originating from a separate sensor 130, or (for example) a combination of sensor signals originating from separate sensors 130. In another arrangement, the candidate sensor signal may be a combined sensor signal representing a virtual button (i.e., in the button domain) as output by the sensor-to-button mapping stage 335.
[0185] review Figure 4A and Figure 4B The signal sequence can be extracted based on one or more thresholds (e.g., the noise threshold THnoise, the falling threshold THfall, the tapping threshold THtap, or the rising threshold THrise already described). Continuing with the running example, it can be considered that the signal sequence starts when the sensor signal rises above the tapping threshold THtap, and ends when the signal falls below the falling threshold THfall.
[0186] In step 804, the defined signal features are extracted from the signal sequence. In this example, when the sensor signal rises above the tapping threshold TH tap, the system (particularly the feature extraction stage 420) begins to fill in the feature vector. This vector contains the length of the pulse, the gradient to the maximum peak, the time from the point where the pulse crosses the tapping threshold TH tap to the maximum peak, and the maximum value of the peak. For each sequence, this feature vector is updated sample by sample (i.e., at a given sampling rate) until the samples constituting the sequence have been processed.
[0187] Once completed for the signal sequence in question, the feature vector is sent to the press / tap model stage 510, after which it is removed or cleared from the feature extraction stage 420 so that it can be repopulated for a subsequent signal sequence.
[0188] In step 806, the signal sequence is classified according to the feature vector of the relevant signal sequence. This involves applying the feature vector to a model generated from the recorded training data to determine whether the signal sequence can be classified as corresponding to any defined core event supported by the model. This may result in a classification of a sequence corresponding to the relevant signal sequence, the classification indicating that the signal sequence has been determined to belong to any of the core events (categories) defined by the model (if any). Thus, in some cases, the classification may indicate that the relevant sequence does not belong to (or represent) any of the core events.
[0189] In step 808, it is determined whether the plurality of signal sequences have been classified such that it can be determined whether a combination of the classifications (core events) can be identified as corresponding to a defined gesture, as mentioned above. If so (yes, step 808), the method proceeds to step 810, where such a combination of classifications is classified as corresponding to a gesture event. Otherwise (no, step 808), the method returns to step 802. Method 800 may terminate at any time.
[0190] As indicated previously, a variety of approaches may be used to classify the signal sequence based on its feature vectors in step 806. One approach is based on support vector machines (SVMs) due to their ability to generalize given small data sets (and are therefore advantageous when implemented in a "small" device 100, such as a mobile phone). As above, the set of features extracted from the signal sequence (force sensing data when the signal is above one or more thresholds) for use by the SVM classifier (in the context of a push input) may be: number of samples; area under the push waveform; gradient estimate and maximum value of the push.
[0191] The use of the SVM classifier or model by the press / tap model stage 510 will now be considered using an operating example in which the feature extraction stage 420 extracts features based on a signal sequence that begins when the signal exceeds the tap threshold TH tap and ends when the signal falls below the fall threshold TH fall. As above, in the operating example, when the signal is below the noise threshold TH noise, the sensor 130 samples at a low sampling rate (e.g., 30 Hz), and when the signal is above the noise threshold TH noise, the sensor 130 samples at a high sampling rate (e.g., 1000 Hz).
[0192] As before, the SVM classifier is useful when there will not be a large amount of data for any one device 100. It can generalize patterns from a few examples (training signal sequences or training feature vectors).
[0193] The classifier input is the feature vector created by the feature extraction stage 420. As an example, assuming a linear SVM kernel (non-linear kernels are also possible):
[0194] d i (n) = β i ·x(n)+b i
[0195] where d i (n) is the normalized input feature vector x(n) to be given by the slope β i and deviation b iThe distance of each individual model is combined to provide an estimate of the class given the input feature vector x(n) using the following error correction output code (ECOC) approach:
[0196]
[0197] Where m ip is the element in the i-th row and p-th column of the encoding matrix M. This matrix M contains only three different elements {-1,0,1}, where 0 indicates that the signal sequence of the given class was not included in the training period, and -1 and 1 indicate the label used for the given class in training.
[0198]
[0199] See, for example, “Error Correcting Output Codes for multiclass classification: Application to two image vision problems”, IEEE 16th CSI International Symposium on Artificial Intelligence and Signal Processing.
[0200] The SVM classifier can be configured for incremental learning. In particular, the model defined in the classifier can be updated while it is being used, so that the self-general model is adapted to each user to improve the final performance. This learning can be semi-supervised, so it will learn from the estimate output by the SVM classifier (i.e., the model) in view of additional information indicating whether the new estimate output by the SVM classifier (i.e., the model) is sufficient for model adaptation. The learning can also be (fully) supervised, so that it will learn from the new estimate output by the SVM classifier (i.e., the model) in view of known user input; or unsupervised, so that it will learn from its estimate without using additional information.
[0201] With respect to supervised or semi-supervised learning, the controller 110B (or a separate application processor) may be able to provide additional information. For example, if a tap is triggered, but in a given state of the device 100 that does not support functionality, it may be assumed that the estimate is wrong and insufficient for model adaptation. As another example, the device 100 may operate in a training mode when a specific user input (core event) is invited.
[0202] In accordance with step 810 of method 800, the push / tap model stage 510 can be configured to detect gestures that occur, for example, within a limited time period based on multiple classifications. The SVM classifier can return a core event, which, as an example, can be a push / press, a long push / press, or a tap. Then, an event classifier operating in accordance with step 810 can find gesture events, such as double taps or double presses. This occurs when two taps or two presses are detected within a given time period.
[0203] Incidentally, the classification algorithm may be adapted when detecting a gesture so that it is more likely to detect a second and any subsequent core events after detecting the first core event of the gesture. This may involve shifting (e.g., translating) the relevant hyperplane in the context of the SVM classifier. For example, after detecting a tap (as the first core event), the classification algorithm may be adapted so that it is more likely (than before) to detect a second tap within a defined time period, given that it is (very) likely that the user input is a tap as part of a double tap gesture. In the case of gestures involving more than two core events, the classification algorithm may be adapted after each subsequent core event is detected, given that the likelihood of such a gesture being expected is increasing. For example, after such a gesture has been detected, the classification algorithm may be adapted so that it is less likely (than before) to detect a core event within the defined time period, given that it is (very) likely that the user is pausing before making further user input.
[0204] It is mentioned above that the classification algorithm and the identification of core events can be used to identify anomalies (i.e., unwanted user input). It will be understood that the classification algorithm can be trained and / or preconfigured to identify both core events and abnormal events, or only one of them, and respond accordingly. In the case of a core event, a suitable indication can be provided to (for example) an application processor for further processing (e.g., to control the device 100). In the case of an abnormal event, the control may include changing the operating mode, changing the sampling rate, or disabling one or more functions / units (or transitioning to a low power mode) as mentioned above.
[0205] To avoid complexity in the classification algorithms, it may be advantageous to provide one classification algorithm for detecting core events (implemented in the press / tap model stage 510), and another classification algorithm for detecting abnormal events (implemented in the abnormal detection stage 325). Figure 3 Consistently, the classification algorithm for core events may operate in the button domain, and the classification algorithm for abnormal events may operate in the sensor domain.
[0206] The classification algorithm for anomalies (e.g., SVM classifier) may take the sensor signal as its input (or extracted feature vector), or, for example, be configured to look for the output of one or more previous blocks of, for example, negative mean and negative cross-correlation as mentioned above. For classification algorithms applicable to core events, supervised, semi-supervised, and unsupervised learning may be applicable. The present disclosure will be understood accordingly.
[0207] Adaptive threshold setting
[0208] As mentioned previously, in some arrangements, one or more thresholds are set dynamically or adaptively, such as any of the noise threshold TH noise, the falling threshold TH fall, the tap threshold TH tap and the rising threshold TH rise.
[0209] Taking the noise threshold TH noise into account (particularly in the operating example), in this way, the chance of false detection or non-detection of events can be reduced and the power consumption of the force sensing system can be reduced at the same time.
[0210] First, consider false detection or failure to detect. In order to detect impact or short pushes (such as taps), the detection threshold (such as TH noise) needs to be as low as possible, otherwise there is a risk of not detecting such short events in low sampling frequency mode (standby mode). On the contrary, if this threshold is too low, the possibility of false triggering events is greatly increased. Secondly, consider power consumption. It has been described above that in the operating example, a low sampling rate is used when it is lower than the detection threshold (TH noise), and a high sampling rate is used when it is higher than the detection threshold. Considering power consumption, it is beneficial to reduce the time spent in high-frequency mode (which implies increasing the detection threshold).
[0211] The desired detection threshold (TH noise) may be a threshold that minimizes the risk of missed alarms while avoiding false alarms. Such a threshold should not be lower than the noise present in the sensor signal, otherwise the noise itself will falsely trigger an event. With this in mind, in one arrangement, the noise power estimation stage 412 and the adaptive threshold setting stage 414 are configured to adaptively set this minimum threshold (TH noise) to a level that is an estimate of the noise level derived from the sensor signal. This adaptive threshold also has a direct impact on power consumption by reducing the likelihood that the system moves to a high sampling rate (active) mode when no event is present and reducing the chance of false alarms caused by signal noise.
[0212] Fig. 9 is a flow chart presenting an exemplary method 900 of adaptive threshold determination performed by the noise power estimation stage 412 in conjunction with the adaptive threshold stage 414 , the method 900 including steps 902 , 904 , and 906 .
[0213] In step 902, a sensor input signal is received. This signal may be a sensor signal originating from a single sensor 130, or (for example) a combination of sensor signals originating from single sensors 130. In another arrangement, the sensor signal (with Figure 3 The consistent) can be a combined sensor signal representing a virtual button as output by the sensor to button mapping stage 335.
[0214] In step 904, the noise power estimation stage 412 estimates the noise level of the system, and in step 906, the adaptive threshold setting stage 414 sets the noise threshold TH noise based on this estimate. As indicated by the dashed arrow from step 906 back to step 904, steps 904 and 906 may be performed on a continuous basis, i.e., the noise threshold TH noise is adaptively set based on the received sensor input signal.
[0215] Two exemplary methods for adaptively setting the noise threshold TH noise in steps 904 and 906 will now be considered.
[0216] The first method includes a recursive averaging (or recursive filtering) algorithm to be performed by the noise power estimation stage 412 .
[0217] The recursive averaging algorithm effectively constitutes an IIR (infinite impulse response) filter, where the two values of α correspond to a fast rise and a slow fall to track the peak envelope of the noise λ(n), as follows:
[0218] λ(n)=[λ(n-1).p]+[{α.λ(n-1)+(1-α).|x(n)|}.{1-p}]
[0219] Where p is the presence probability (the probability that a user input or "event" exists), x(n) is the current input, and α is the forgetting factor.
[0220] To track the envelope, the two values of α used are as follows:
[0221] α=α 下降 , when λ(n)>|x(n)|
[0222] α=α 上升 , when λ(n<|xn|
[0223] Using two values of α results in an asymmetric recursive averaging algorithm. Of course, these values can be set to be the same as each other to allow a symmetric recursive averaging algorithm to be obtained.
[0224] The absolute value of the input is used to account for rapid changes from negative to positive seen in extreme cases, such as when a long press is greater than the sensor timeout or when force is applied next to the button and then released.
[0225] Adaptive noise threshold stage TH noise (TH noise) is determined by the adaptive threshold setting stage 414 by setting the bias TH bias Add to λ(n) and constrain the maximum value so that it does not exceed TH fall (TH fall) to calculate.
[0226] TH noise (n) = min (λ (n) + TH bias , TH fall )
[0227] The minimum value is also constrained:
[0228] TH noise (n) = max(λ(n) + TH bias , TH noiseMin )
[0229] In the first method, the existence probability is set to 0 or 1 as follows:
[0230] p=1,when x(n)>THnoise(n-1)
[0231] p=0,when x(n)≤THnoise(n-1)
[0232] Therefore, when p=1, the noise threshold TH noise can be changed dynamically (sample by sample) based on the current value (and historical values) of the sensor signal x(n). Otherwise, when p=0, the noise threshold TH noise is maintained.
[0233] The second method is based on the first method, but adopts a mapping between signal characteristics and values of existence probability p from 0 to 1, so that there are possible (dynamically changing) combinations between dynamically changing the noise threshold TH (which happens entirely when p=1) and keeping the noise threshold TH noise (which happens entirely when p=0).
[0234] This can be seen by reconsidering the following equation:
[0235] λ(n)=[λ(n-1).p]+[{α.λ(n-1)+(1-α).|x(n)|}.{1-p}]
[0236] For example, when p=0.5, it can be considered that there is a 50:50 mix or contribution between dynamically changing the noise threshold TH and maintaining the noise threshold TH noise.
[0237] A second approach may for example involve calculating (on an ongoing basis) a signal characteristic such as the SNR (Signal to Noise Ratio) and employing a mapping between the SNR and the probability of presence p such that the value of p varies with the SNR. Alternatively other signal characteristics may be determined by having a corresponding mapping with the probability of presence p.
[0238] The second method can be enhanced using a technique called Improved Minimum Controlled Recursive Averaging (IMCRA). In this regard, reference may be made to IEEE Transactions on Speech and Audio Processing, Vol. 11, No. 5, pp. 466-475. The enhanced method may involve adding more than one iteration to search for the minimum in the buffer.
[0239] Fig.10 A series of curve graphs showing the results in the case of the above two exemplary methods of testing, the first method is called RA (recursive averaging) and the second method uses the IMCRA technology and is called IMCRA. In the experiment, 5dB of additive noise is applied to the system to evaluate the response of noise tracking. As mentioned above, because the sampling rate is variable, display frames or sample numbers rather than time. There are five tapping events in the low noise section, five tapping events in the high noise section, and then five tapping events in the last low noise section.
[0240] It can be seen that using the first method (recursive averaging) results in more false acceptances in high noise segments compared to the second method because the noise tracking is less accurate.
[0241] Fig.11 Estimation of the response time of noise estimation related to the recursive averaging method is concerned. The recursive averaging noise variance estimation is based on a slow rise and fast decay with a bias.
[0242] By studying the rise and fall group delays, the IIR filter coefficients in the response time can be inferred, such as Fig.11 Specifically, when the system is running in standby mode at 30 Hz, the system responds to a noise decrease within 0.66 samples or 22 ms and a noise increase within 19 samples or 633 ms. Fig.10 As can be seen in , the second method using IMCRA can be tuned to achieve similar performance as the first (recursive averaging) method.
[0243] Inductive sensing, resistive-inductive-capacitive sensing
[0244] It will be apparent that the above techniques are generally applicable to force sensing. Exemplary types of force sensors mentioned above include capacitive displacement sensors, inductive force sensors, strain gauges, piezoelectric force sensors, force sensing resistors, piezoresistive force sensors, thin film force sensors, and force sensors based on quantum tunneling complexes.
[0245] An example involving inductive sensing will now be considered by way of example. The above techniques are applicable, for example, to achieving dynamic accuracy in an inductive sensing system. Systems and methods can reduce power consumption in an inductive button sensing system by dynamically changing measurement settings based on conditions in the system. Although the following considers an inductive sensing system (e.g., employing a resistive-inductive-capacitive sensor), it will be appreciated that these considerations are equally applicable to other types of sensor systems. The present disclosure will be understood accordingly.
[0246] Fig.12 An exemplary inductive sensing system 1000 is shown in FIG.
[0247] refer to Fig.12 , inductive sensing consists of a metal plate 1002 and an inductor 1004 located at a certain distance. When current (I) passes through the inductor 1004, the magnetic field induces eddy currents inside the metal plate 1002. When a force is applied to the metal plate 1002, this changes the distance from the metal plate 1002 to the inductor coil 1004, and changes the coupling between the inductor 1004 and the metal plate 1002, and the coupling coefficient k, inductor L2, and loss resistance RL from the model change. The distance change in turn modifies the effective impedance into the inductor (ZL).
[0248] In this inductive sensing system 1000, force or mechanical movement in the metal plate 1002 will cause the inductance to change. Fig.13 As shown, this can be used to implement a button.
[0249] Fig.14 An exemplary system 1100 that measures a phase shift that is proportional to a coil inductance and is similar to those described previously is shown in FIG.
[0250] refer to Fig.14 , the exemplary system 1100 includes a digitally controlled oscillator (DCO) 1110 , a driving circuit (driver) 1120 , a sensor (sensor) 1130 , a QI receiving path 1140 , a processing block 1150 , and a button press detection block (input determination block) 1160 .
[0251] The DCO 1110 outputs a clock at the carrier frequency (Fc), referred to as a 0 degree output. The DCO 1110 outputs a second square wave clock that is theoretically shifted 90 degrees relative to the main output, referred to as a 90 degree output.
[0252] The output of the VCO (DCO) is coupled to the input of driver 1120. Driver circuit 1120 drives a pseudo-sinusoidal current at a frequency and phase alignment with a 0 degree clock input. Driver circuit 1120 drives a fixed amplitude current.
[0253] In this example, the sensor (sensor) 1130 includes an RLC circuit (corresponding to Fig.12 and Fig.13 The sensor shown in FIG. 1004 and FIG. 1005 is a resistive-inductive-capacitive sensor. The inductance in the circuit is formed by the coil and the metal plate (e.g., coil 1004 and metal plate 1002). The voltage across sensor 1130 is generated based on the response of the RLC filter to the current driven onto the sensor (alternatively, the system may respond to the voltage driven onto the sensor to generate the current to be measured). Fig.14 The R component is not shown in FIG, but will exist as an intentional or parasitic circuit component.
[0254] The QI receive path 1140 receives the voltage across the sensor 1130 and includes a low noise input amplifier (amplifier) 1141, an I path, and a Q path. The Q path is coupled to the output of the amplifier 1141 and includes: an analog multiplier 1142 whose input is coupled to the VCO (DCO) output that is 90 degrees phase shifted relative to the current transmitted by the driver circuit 1120 and the output of the amplifier 1141; a low pass filter 1143, which is coupled to the output of the analog multiplier 1142; and an ADC 1144, which is coupled to the output of the low pass filter 1143 to digitize the Q path voltage signal. The I path is coupled to the output of amplifier 1141 and includes: an analog multiplier 1145 whose input is coupled to a VCO (DCO) output that is phase-aligned with respect to the current transmitted by driver circuit 1120 and the output of amplifier 1141; a low-pass filter 1146, which is coupled to the output of analog multiplier 1145; and an ADC 1147, which is coupled to the output of low-pass filter 1146 to digitize the I path voltage signal.
[0255] A processing block (post-processing) 1150 generates amplitude and phase information for the QI path, wherein the I path ADC output is coupled as an input into the processing block 1150 and the Q path ADC output is coupled as an input into the processing block 1150 .
[0256] The button press detection block (input determination block) 1160 observes the phase information to determine whether the phase shift recorded by the IQ detection path 1140 is interpreted as a button press.
[0257] In this system, to perform one scan of the RLC sensor 1130, the VCO (DCO) 1110 and the driver circuit 1120 are activated. After the low pass filters 1143, 1146 have stabilized, the ADCs 1144, 1147 are activated and one or more ADC samples are captured, with a nominal frequency of 500kHz (as an example). The duration of capturing the ADC samples is called the conversion time. Each ADC sample contains a certain amount of noise due to analog and digital factors, including but not limited to circuit thermal noise, circuit flicker noise, and digital quantization noise.
[0258] One or more ADC samples are filtered to attenuate noise, and processing converts the I and Q signals into phase and amplitude information.
[0259] Those skilled in the art will recognize that although filtering is described as occurring at the ADC input, it may occur at multiple locations in the processing path, such as at the ADC output.
[0260] The power in the system can vary based on a variety of factors, such as scan rate, transition time, and drive current. If more scans are performed in a certain time measurement, the power will increase compared to performing fewer scans. Longer transition times require the circuit to be active for a longer time, thereby increasing power consumption. The higher drive current generated by the driver 1120 will provide a larger signal, which increases the signal-to-noise ratio of the system, thereby improving performance but increasing power consumption.
[0261] One possibility is to use fixed scan rate, conversion time and drive current for a given setting. Against this background, an improved system will now be considered, wherein the system dynamically adjusts the scan rate, conversion time and / or drive current (or one or more other system parameters) according to system conditions to minimize power consumption (or to achieve a given performance target).
[0262] For ease of comparison, Fig.15 Similar to Fig.14 An exemplary improved system 1200 is shown in the form of . Fig.15 The improved system includes Fig.14 The corresponding components in Fig.14 to understand and not consider it further.
[0263] In addition to such elements, system 1200 also includes a dynamic monitoring block 1270. Driving circuit (driver) 1220 corresponds to driving circuit (driver) 1120, processing block 1250 corresponds to processing block 1150, and button press detection block (input determination block) 1260 corresponds to button press detection block (input determination) 1160.
[0264] Dynamic monitoring block (parameter control block) 1270 observes the state of the system (e.g., based on the output of processing block 1250 and / or button press detection block 1260) and changes system parameters in response to the state of the system. Monitoring may include, for example: Q / I value (in Fig.15 1260); phase and amplitude outputs from processing block 1250; and / or intermediate states of button press algorithm 1260. System parameters may include, for example: scan rate, transition time, and / or drive current.
[0265] System parameters (e.g., drive current of driver 1220, or transition time or scan rate of processing block 1250) may be varied so that a lower power mode is engaged when the phase signal is away from a triggering system event, and a higher power mode is engaged when the system is closer to a triggering system event.
[0266] It will be appreciated that other arrangements may be similar in implementation. Fig.15 The above systems depicted are different. For example, DCO 1110 may be configured as a VCO, or a DAC that may be driven by a digitally generated sine wave.
[0267] In one arrangement, the dynamic monitoring block 1270 observes the distance between the measured phase value and the button press threshold. When the measured phase value is far from the button press threshold, the system can operate in a low performance mode, and when the measured phase value is close to the button press threshold, the system can operate in a high performance mode. Thus, according to the techniques described earlier in this document, the system can operate in different modes based on comparisons with thresholds.
[0268] Fig.16 Shown in Fig.15 An exemplary such implementation of the system (for simplicity, Fig.16 Only shown in Fig.15 certain components of the system).
[0269] exist Fig.16 In the implementation scheme, when the measured phase (from the sensor) exceeds the button threshold, a button press system event is considered to occur. In addition, when the measured phase exceeds the high performance threshold, a high performance setting (system parameter) is used, and when the measured phase does not exceed the high performance threshold, a low performance setting is used.
[0270] like Fig.16 As shown, the exemplary button press algorithm includes a baseline tracking function 1261 that high pass filters the raw phase output. In the exemplary arrangement, the high pass filter is constructed by a first order high pass filter with a corner frequency of 1 Hz. The output of the baseline tracking is compared to a button threshold (e.g., by a subtractor 1262). If the output of the baseline tracking is above the button threshold (determined by a comparison unit 1263), a button press system event is declared.
[0271] Dynamic monitoring block 1270 (eg, in a storage device) includes a set of high performance mode settings (system parameters), a set of low performance mode settings (system parameters), and high performance mode thresholds. Thus, there are different operating modes with corresponding different system parameter settings.
[0272] A comparison is made by unit 1271 between the high performance threshold and the distance between the button press and the button press threshold. Dynamic monitoring block 1270 outputs a high performance or low performance mode setting based on the result of the comparison (e.g., using selector 1272). The setting may include a scan rate, a conversion time, or a drive current. Fig.17 The exemplary waveforms shown may better understand this operation.
[0273] refer to Fig.17 , shows the phase signal versus time as the sensor coil inductance is displaced by pressing the button, resulting in a phase shift. The gray band around the phase signal shows the system noise. When the high performance threshold is reached, high performance mode is entered. When entering high performance mode, the system noise decreases due to the use of the high performance settings, as indicated by the change in the width of the gray band (decreasing). After a period of time, as shown in Fig.17 As indicated, the button press threshold is crossed and the button press is asserted.
[0274] Thus a (programmable) current can be driven into the sensor. Dynamically changing this current drive has an impact on noise, SNR and EMI. This can be summarized as changing the electrical signal driven into the sensor. There can also be a conversion time that can be programmable based on digital filtering. Dynamically changing the conversion time directly changes the phase accuracy. There can also be a programmable scan rate, and the programmable scan rate can also be changed dynamically.
[0275] Although examples have been shown, there are of course several system variations possible based on this general teaching.
[0276] For example, although a single high performance threshold has been shown, this is one example. Multiple thresholds with different performance settings may be used. As another example, the performance setting may be a mathematical function of the distance between the phase signal and the button press threshold.
[0277] As another example, although the tightness of the trigger button press is used to decide when to engage, this is one example. The high performance mode can be selectively engaged or disengaged based on the amplitude signal rather than the phase signal. If the input signal has deviated from a stable operating condition, the high performance mode can be engaged. This can be accomplished by taking the derivative of the signal and comparing the derivative to a window or range.
[0278] As another example, although the system has been described as an inductive sensing system, this is only an example. A system with a variable capacitor will produce a similar electrical characteristic shift in the sensor. There is no need for a possible system implementation to assume that the inductive shift causes the sensor characteristic to change.
[0279] As another example, although the inductive sensing system has been described as a fixed frequency driver and an IQ receive path that measures phase and amplitude, this is an example. Changes in an RLC circuit can be measured by operating the RLC circuit as an oscillator and measuring the frequency of the oscillation.
[0280] In general, a system generally conforming to the above may be considered to include: an inductor for a digital system that digitally converts an inductor displacement into a digital value; a processing block that interprets the digital value into a system event; and a dynamic monitoring block that monitors the system state relative to the system event; wherein a system configuration parameter is adjusted based on the distance of the digital value from the triggering system event. The processing block that interprets the digital value into the system event may be a button detection block. The system event may be a button press. The adjusted system configuration parameter may be a scan rate, a conversion time, or a drive current, or any combination of these parameters.
[0281] It will be apparent that such a system with an inductive sensor is an example where threshold values as described above can be used to control the way a system operates, including system parameters (affecting performance), sampling rates, and which units or stages are active or inactive (or in a low power state). Figures 12 to 17 The teachings of may be applicable to actual implementations of controller 110 , 110A, or 110B.
[0282] Force Sensing Direct Access Mode
[0283] In further aspects of the present invention and with reference to the attached Fig.18 , multiple force sensors may be provided in a device (such as device 100), wherein the force sensors provide input to a central force sensor system module. The force sensor system module may be provided with multiple input paths and suitable components (such as at least one digital signal processing (DSP) core ( Fig.18 HALO in the system), memory, clock, interrupt module, etc.).
[0284] The force sensor system module may be arranged to communicate with a central processing unit (CPU) or an application processor (AP) of the device 100. The force sensor system module may further be arranged to communicate with a sensor hub, which may further communicate with the CPU or AP. The force sensor system module may provide additional functionality, such as a tactile module for controlling and operating tactile outputs in the device 100.
[0285] The combination of the central force sensor system module, application processor (AP), and sensor hub may be referred to as controller 110C, and may be considered an actual implementation of controller 110 , 110A, or 110B.
[0286] The force sensing algorithm is used to determine the occurrence of user input based on the output of the force sensor. The force sensing algorithm may be provided in the sensor hub, and / or may be provided in the force sensor system module, such as in the HALO DSP core.
[0287] The following interfaces provide communication to and from the force sensor system module:
[0288] Master I2C Slave
[0289] Used to configure the force sensor system module. It is configured to access the register space and is used by the driver software to configure various aspects of the tactile functionality and force sensing input path. For example:
[0290] Force sensing input path configuration, including parameters related to the analog and digital HW involved.
[0291] Force sensing acquisition rate.
[0292] Operation mode.
[0293] Signal level (re)calibration request.
[0294] FIFO configuration.
[0295] Auxiliary I2C slave device
[0296] Used to obtain direct information from the force sensing input path according to the configuration of the force sensor system module
[0297] IRQ1
[0298] Used by the force sensor system module to indicate any interrupt that requires attention to the sensor system module driver SW.
[0299] IRQ2
[0300] Used to indicate that a new set of force sensing samples are available.
[0301] operate
[0302] When operating the force sensor system module in direct access mode, the following steps can be performed:
[0303] 1) The driver configures the force sensor system module through the main I2C interface.
[0304] 2) The force sensor system module begins acquiring force sensing samples at each of the connected force sensors at the configured rate (eg, at 50 Hz).
[0305] a. When a single set of samples has been acquired, the Halo DSP core writes these samples into the FIFO and raises IRQ2.
[0306] b. The sensor hub (or equivalent function) extracts the data from the FIFO and clears IRQ2.
[0307] 3) Repeat the steps under 2) at the programmed acquisition rate.
[0308] model
[0309] The force sensor system module can be configured to operate in 3 modes as part of the direct access mode.
[0310] A. Only raw samples are communicated through FIFO and auxiliary I2C interface
[0311] B. Apply a baseline removal filter (ie, a high pass filter with a very low frequency pole) to the raw samples before passing them through the auxiliary I2C interface.
[0312] C. Applying both baseline filter and activity detection threshold: The latest set of force sensing samples is delivered over the auxiliary I2C interface only when the (baseline removed) signal exceeds a configurable threshold.
[0313] A force sensor tactile controller can be configured to operate in at least a first mode and a second mode, wherein: in the first mode, the controller is operable to generate a tactile output signal for output to a tactile output transducer based on force sensor input from at least one force sensor; and in the second mode, the controller is operable to send force sensing communications to another controller based on the force sensor input, and output the tactile output signal to the tactile output transducer based on tactile communications received from the other controller in response to the force sensing communications.
[0314] Such a force sensor haptic controller may be referred to simply as a controller or haptic controller (and may be embodied by controller 110, 110A, 110B, or 110C as described herein) or as a force sensor system or force sensor system module. Thus, the force sensor haptic controller may be configured to operate in accordance with any or all of the other techniques described herein. Indeed, any of the techniques disclosed herein may be employed in combination.
[0315] The force sensor haptic controller can be configured to operate in at least a third mode, wherein: in the second mode, the haptic communication is a haptic output signal; and in the third mode, the controller is operable to send a force sensing communication to another controller based on the force sensor input, receive a haptic communication from the other controller in response to the force sensing communication, generate a haptic output signal based on the haptic communication, and output the haptic output signal to the haptic output transducer. Thus, the force sensor haptic controller can be configured to cooperate with another controller (in the third mode) to obtain a haptic output signal.
[0316] In a third mode, the haptic communication may include characteristic haptic data, for example, the force sensor haptic controller generates a haptic output signal based on the characteristic haptic data.
[0317] Force sensing communications may include: raw sensor data received in a force sensor input; filtered sensor data generated by filtering the raw sensor data; and / or activity detection data, the activity detection data also including data samples of the raw sensor data or the filtered sensor data, except for those values that do not exceed or meet the activity detection threshold.
[0318] The force sensor haptic controller can be configured to selectively operate in a mode based, for example, on: an operating state of the force sensor haptic controller; an operating state of another controller; an operating state of the force sensor; an operating state of the tactile output transducer; and / or control signals optionally received from a signal source external to the force sensor haptic controller (e.g., a sensor or interface or device).
[0319] The force sensor haptic controller may be configured for use in a host device, such as device 100, where the force sensor haptic controller is configured to selectively operate in a mode based on an operating state of the host device. The force sensor haptic controller may be configured to operate in a first mode when the host device is in a low power or sleep state, and to transition to another mode when the host device transitions to a higher power or awake state.
[0320] A force sensor haptic controller (like the controllers described herein) may be implemented as or as part of an integrated circuit (such as an IC chip). A host device may be provided that includes a force sensor haptic controller and optionally another controller. The other controller may be an application processor / multi-application processor (applications processor) or a sensor hub controller of the host device. The host device may include at least one force sensor and / or a tactile output transducer. The tactile output transducer may be a linear resonant actuator, and the at least one force sensor may include any of the types of force sensors described herein.
[0321] Recalibration
[0322] The force sensor system module can perform recalibration: Recalibration may be required in rare cases where the input signal after removing the DC offset exceeds the maximum input range of the AFE. In this case, the offset calibration needs to be performed again.
[0323] This condition may be enforced when the cumulative contribution of aging, temperature drift, and strong static forces exceeds a threshold limit (eg, 50N).
[0324] Recalibration can be performed autonomously by the force sensor system module, or can be initiated by the host through the master I2C port.
[0325] Autonomous recalibration combined with a baseline removal filter is the preferred combination, but it may be provided as an option that can be switched on or off.
[0326] When recalibration has been performed, the sensor hub may be informed via the second I2C interface.
[0327] FIFO message configurability
[0328] The format of the messages in the FIFO will be defined by the firmware running in the Halo Core. Therefore, the messages in the FIFO can be defined in any way that best suits the needs of the sensor hub.
[0329] The above architecture allows the force sensor system module to be powered down after force sensing samples have been acquired. Always-on operation may require only a small set of data bits (i.e., a FIFO) (which may be retrieved via a second I2C interface), while keeping this FIFO securely separate from any other storage space in the device.
[0330] As from Figure 1 Obviously, it will be understood that the controller 110 (force sensing system) alone as well as the device 100 comprising the controller 110 may embody the present invention. The corresponding methods and computer programs may also embody the present invention.
[0331] It should be noted that the embodiments mentioned above illustrate the invention rather than limit it, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. The word "comprising" does not exclude the presence of elements or steps other than those listed in the claims, "a" or "an" does not exclude a plurality, and a single feature or other unit may fulfill the functions of several units cited in the claims. Any reference signs or numbers in the claims should not be construed as limiting their scope.
[0332] The invention is not limited to the embodiments described herein and may be modified or adapted without departing from the scope of the invention.
[0333] This disclosure extends to the following statements:
[0334] Event and anomaly detection
[0335] A1. A device comprising:
[0336] at least one force sensor; and
[0337] A controller is operable, in a classification operation, to determine whether a candidate input sensor signal originating from the at least one force sensor has a given characteristic.
[0338] Event Detection
[0339] A2. An apparatus according to statement A1, wherein the classification operation includes employing a classification model to determine whether a signal sequence extracted from the candidate input sensor signal belongs to one or more categories defined by the classification model.
[0340] A3. An apparatus according to statement A2, wherein the controller is operable to:
[0341] generating a feature-based definition of the signal sequence by extracting at least one defining feature from the signal sequence; and
[0342] A determination is made whether the signal sequence belongs to the one or more categories based on a feature-based definition of the signal sequence.
[0343] A4. An apparatus according to statement A3, wherein the feature-based definition includes each feature extracted from the signal sequence and is optionally a feature vector.
[0344] A5. An apparatus according to any one of statements A2 to A4, wherein the classification model is a support vector machine model defined by a support vector machine classification algorithm.
[0345] A6. An apparatus according to statement A5, wherein the controller is configured to employ a supervised learning algorithm to define the classification model based on training data, wherein the training data comprises a set of training signal sequences.
[0346] A7. An apparatus according to statement A6, wherein the training data comprises information of the set of training signal sequences and the categories to which they belong.
[0347] A8. An apparatus according to statement A6 or A7, wherein the supervised learning algorithm is a support vector machine learning algorithm.
[0348] A9. An apparatus according to any one of statements A5 to A8, wherein the controller is operable to update the classification model based on: the signal sequence extracted from the candidate input sensor signal,
[0349] Optionally, the determination is made by a relevant classification operation,
[0350] and optionally, context information, said context information defining a context in which said at least one force sensor obtains said signal sequence.
[0351] A10. An apparatus according to any one of statements A5 to A9, wherein the classification model is a linear classification model or a nonlinear classification model.
[0352] A11. An apparatus according to any one of statements A2 to A10, wherein the controller is configured to employ a support vector clustering algorithm to define the classification model based on training data, the training data comprising a set of training signal sequences.
[0353] A12. An apparatus according to any one of statements A2 to A11, wherein the controller is operable to determine whether a defined core event or a defined exception event has occurred based on determining the category to which the signal sequence belongs.
[0354] A13. An apparatus according to statement A12, wherein the controller is operable to:
[0355] operating in an abnormal mode; and / or
[0356] disable one or more features; and / or
[0357] sampling the force sensor at a given abnormal mode sampling rate; and / or
[0358] Operate using exception mode system parameters.
[0359] A14. An apparatus according to any one of statements A2 to A13, wherein the controller is operable to perform the classification operation on a set of the signal sequences extracted from the candidate input sensor signals in a given order.
[0360] A15. An apparatus according to statement A14, wherein the controller is operable to determine whether a defined gesture event has occurred based on: determining a combination of categories to which a plurality of said signal sequences belong,
[0361] Optionally, the at least one force sensor obtains the timing of the plurality of signal sequences and / or the at least one force sensor from which the plurality of signal sequences are obtained.
[0362] A16. An apparatus according to statement A14 or A15, wherein the controller is operable to adapt the classification model for a second one of the extracted signal sequences in the sequence based on determining the class to which the first one of the extracted signal sequences in the sequence belongs,
[0363] Optionally, wherein the classification model is adapted for the second one of the extracted signal sequences to:
[0364] increasing a probability of determining that a defined gesture event has occurred based on said first and said second of said extracted signal sequences; or
[0365] A probability of determining that the second one of the extracted signal sequences belongs to a category, thereby determining that the first and the second one of the extracted signal sequences correspond to the defined gesture event, is increased.
[0366] Anomaly Detection
[0367] A17. An apparatus as described in statement A1, wherein the apparatus comprises at least two force sensors, and wherein the candidate input sensor signal is generated by combining multiple input sensor signals originating from the force sensors.
[0368] A18. An apparatus according to statement A17, wherein the candidate input sensor signal is generated by averaging the plurality of input sensor signals, optionally by averaging the amplitudes of the plurality of input sensor signals on a sample-by-sample basis.
[0369] A19. An apparatus according to statement A1, A17 or A18, wherein the classification operation includes determining whether the characteristic is present on a sample-by-sample basis.
[0370] A20. An apparatus according to any of statements A1 and A17 to A19, wherein the characteristic includes the amplitude of the candidate input sensor signal being negative.
[0371] A21. An apparatus according to any one of statements A1 and A17 to A20, wherein the characteristic includes the amplitude of the candidate input sensor signal being greater than a threshold.
[0372] A22. An apparatus according to any one of statements A1 and A17 to A21, wherein the classification operation includes employing a mapping function to map the amplitude of the candidate input sensor signal to a value within a predefined range of values.
[0373] A23. An apparatus as described in statement A22, wherein the mapping function comprises a sigmoid function.
[0374] A24. An apparatus as described in statement A1, wherein the apparatus comprises at least two force sensors, and wherein the characteristic comprises a cross-correlation of a pair of input sensor signals originating from the force sensors being negative.
[0375] A25. An apparatus according to any one of statements A1 and A17 to A24, wherein the characteristic is a deviation of one or more signal features or signal statistics of the candidate input sensor signal from a defined model.
[0376] A26. An apparatus according to any one of statements A1 and A17 to A25, wherein the classification operation is an anomaly detection operation, and wherein the controller is operable to determine that an anomaly is occurring if it is determined that the candidate input sensor signal has the given characteristic.
[0377] A27. An apparatus according to any one of statements A1 and A17 to A26, wherein the controller is operable to enter an abnormal operating mode upon determining that the candidate input sensor signal begins to have the given characteristic, and is operable to exit the abnormal operating mode upon determining that the candidate input sensor signal stops having the given characteristic.
[0378] A28. An apparatus according to any one of statements A1 and A17 to A27, wherein the controller is operable to:
[0379] operating in an abnormal mode; and / or
[0380] disable one or more features; and / or
[0381] sampling the force sensor at a given abnormal mode sampling rate; and / or
[0382] Operate using exception mode system parameters.
[0383] ---------
[0384] A29. A device according to any of the preceding statements, wherein the force sensor is located on the device based on anthropometric data of a human hand.
[0385] A30. An apparatus according to any of the preceding statements, wherein each of the force sensors comprises one or more of the following:
[0386] Capacitive displacement sensor;
[0387] Inductive force sensor;
[0388] Strain gauge;
[0389] Piezoelectric force sensor;
[0390] force sensing resistor;
[0391] Piezoresistive force sensor;
[0392] Thin film force sensor;
[0393] Force sensors based on quantum tunneling complexes;
[0394] Inductive sensors; and
[0395] Resistive-inductive-capacitive sensors.
[0396] A31. An apparatus according to any of the preceding statements, wherein the controller is configured to control the operation of the apparatus based on the output of the classification operation.
[0397] A32. An apparatus according to any of the preceding statements, comprising one or more input / output components, wherein the controller is configured to control the operation of at least one of the input / output components based on the output of the classification operation.
[0398] A33. A device according to any of the preceding statements, which is a portable electrical or electronic device, such as a portable phone or a computer.
[0399] A34. A controller for use in an apparatus comprising at least one force sensor, the controller being operable in a classification operation to determine whether a candidate input sensor signal originating from the at least one force sensor has a given characteristic.
[0400] A35. A method of controlling an apparatus comprising at least one force sensor, the method comprising determining in a classification operation whether a candidate input sensor signal originating from the at least one force sensor has a given characteristic.
[0401] A36. A computer program which, when executed on a device comprising at least one force sensor, causes the device to determine in a classification operation whether a candidate input sensor signal originating from the at least one force sensor has a given characteristic.
[0402] Adaptive Noise
[0403] B1. A device comprising:
[0404] at least one force sensor; and
[0405] a controller operable based on a candidate input sensor signal derived from the at least one force sensor to:
[0406] deriving a noise threshold for use with the candidate input sensor signal based on a running estimate of noise in the signal; and
[0407] Based on a comparison between the candidate input sensor signal and the noise threshold derived for use with the signal, controlling one or more of the following:
[0408] an operating mode of the controller;
[0409] a sampling rate at which the at least one force sensor is sampled;
[0410] System parameters, such as performance parameters; and
[0411] Which of the multiple units of the controller are disabled or operating in a low power mode.
[0412] B2. A method of adaptively deriving a noise threshold for use with a given signal, the method comprising: calculating the threshold based on a running estimate of the noise in the signal.
[0413] B3. A method according to statement B2, comprising: recursively calculating the noise threshold based on a current value and a previous value of the signal.
[0414] B4. A method according to statement B2 or B3, comprising: calculating a current value of the noise threshold based on a combination of a previous value of the noise threshold and a current value of the signal.
[0415] B5. A method according to statement B4, wherein the combination is a sum, such as a weighted sum.
[0416] B6. A method according to statement B5, wherein when the value of the signal decreases, the weighted sum is defined by a first weighting, and when the value of the signal increases, the weighted sum is defined by a second weighting different from the first weighting.
[0417] B7. A method according to any one of statements B2 to B6, comprising: constraining the threshold value within an upper limit value and a lower limit value.
[0418] System parameter control
[0419] C1. A sensor system comprising:
[0420] a sensor operable to generate a sensor signal indicative of a user input;
[0421] an input determination block operable to determine whether a defined user input has occurred based on the sensor signal; and
[0422] A parameter control block is operable to control a system parameter based on the sensor signal such that operation of the sensor system is dependent on the sensor signal.
[0423] C2. A sensor system according to statement C1, wherein:
[0424] the input determination block being configured to determine whether a defined user input has occurred based on the sensor signal and a user input definition, optionally based on a comparison between the sensor signal and the user input definition; and / or
[0425] The parameter control block is configured to control the system parameter based on the sensor signal and a parameter control definition, optionally based on a comparison between the sensor signal and the parameter control definition.
[0426] C3. A sensor system according to statement C2, wherein the user input definition includes one or more of the following:
[0427] at least one user input threshold;
[0428] at least one range of user input values; and
[0429] A user input relationship defining an expected mathematical relationship between the sensor signal and a determination that the defined user input has occurred.
[0430] C4. A sensor system according to statement C2 or C3, wherein the parameter control definition includes one or more of the following:
[0431] At least one parameter controls the threshold;
[0432] at least one parameter controls a range of values; and
[0433] A parameter control relationship defines an expected mathematical relationship between the sensor signal and the system parameter.
[0434] C5. A sensor system according to any one of statements C2 to C5, wherein the parameter control definition defines when the system parameter should be controlled to cause the sensor system to operate in the following mode:
[0435] High performance mode; and / or
[0436] Low performance mode; and / or
[0437] Each of several different performance modes.
[0438] C6. A sensor system according to any of the preceding statements, wherein:
[0439] The input determination block is configured to determine whether a defined user input has occurred based on a signal value derived from the sensor signal; and / or
[0440] The parameter determination block is configured to control the system parameter based on a signal value derived from the sensor signal.
[0441] C7. A sensor system according to statement C6, wherein the signal value includes one or more of the following:
[0442] the amplitude of the sensor signal;
[0443] the Q or I component of the sensor signal;
[0444] a phase of the sensor signal;
[0445] The frequency of the sensor signal; and
[0446] The derivative or integral or average or running average of the amplitude, phase or frequency of the sensor signal.
[0447] C8. A sensor system according to statement C6 or C7, wherein the parameter control block is configured to determine the proximity between the signal value and the value at which the input determination block will determine that a defined user input has occurred, and control the system parameter based on the determined proximity.
[0448] C9. A sensor system according to any one of statements C6 to C8, wherein:
[0449] The parameter control block is configured to determine whether the signal value exceeds a threshold value, and if the signal value exceeds the threshold value, control the system parameter to have a first setting, and if the signal value does not exceed the threshold value, control the system parameter to have a second setting different from the first setting; and / or
[0450] The parameter control block is configured to determine whether the signal value exceeds a plurality of different thresholds, and to control the system parameter to have a different setting depending on which of the different thresholds has been exceeded.
[0451] C10. A sensor system according to any of the preceding statements, wherein:
[0452] The input determination block is operable to transition through at least one intermediate state when determining whether the qualifying user input has occurred; and
[0453] The input determination block is configured to control the system parameter based on the parameter control block transitioning through a particular one of the intermediate states or based on a current state of the input determination block.
[0454] C11. A sensor system according to any of the preceding statements, wherein the system parameters control one or more of the following:
[0455] The input determination block or the parameter control block obtains or processes a scan rate of samples from the sensor;
[0456] a conversion time, the conversion time being the period of time during which samples from the sensor are captured for conversion into digital samples;
[0457] an amplitude, phase or frequency of a drive signal for driving at least one of the sensor, the input determination block and the parameter control block;
[0458] a voltage level of a supply voltage for powering at least one of the sensor, the input determination block, and the parameter control block;
[0459] a clock frequency of a clock signal for controlling at least one of the sensor, the input determination block, and the parameter control block;
[0460] whether one or more components of the system are disabled or operating in a low power mode;
[0461] whether to perform signal filtering on the sensor signal;
[0462] a signal-to-noise ratio of the sensor signal;
[0463] the accuracy of the sensor system or the input determination module or the parameter control module;
[0464] determining whether a defined user input has occurred based on the sensor signal; and
[0465] The power consumption of the sensor system.
[0466] C12. A sensor system according to any of the preceding statements, wherein the parameter control block is configured to control the system parameters based on the sensor signals either instantly or dynamically or continuously or periodically or from time to time.
[0467] C13. A sensor system according to any of the preceding statements, wherein the sensor comprises one or more of the following:
[0468] Capacitive displacement sensor;
[0469] Inductive force sensor;
[0470] Strain gauge;
[0471] Piezoelectric force sensor;
[0472] force sensing resistor;
[0473] Piezoresistive force sensor;
[0474] Thin film force sensor;
[0475] Force sensors based on quantum tunneling complexes;
[0476] Inductive sensors;
[0477] Resistive-inductive-capacitive sensors; and
[0478] Force sensor.
[0479] C14. A sensor system according to any of the preceding statements, comprising a plurality of said sensors, wherein:
[0480] The input determination block is operable to determine, for each of the sensors or a group of the sensors, whether a defined user input has occurred; and / or
[0481] The parameter control block is operable to control the system parameter per the sensor or for a group of the sensors based on the sensor signal such that operation of the sensor system per the sensor or for a group of the sensors is dependent on the sensor signal or a related signal.
[0482] C15. A host device comprising a sensor system as described in any of the preceding statements, the host device optionally being an electrical or electronic device or a mobile device.
[0483] C16. A method of controlling a sensor system, the sensor system comprising a sensor operable to generate a sensor signal indicative of a user input, the method comprising:
[0484] determining whether a defined user input has occurred based on the sensor signal; and
[0485] A system parameter is controlled based on the sensor signal such that operation of the sensor system is dependent on the sensor signal.
[0486] C17. A computer program, when executed on a sensor system comprising a sensor operable to generate a sensor signal indicative of a user input, causes the sensor system to perform a method comprising:
[0487] determining whether a defined user input has occurred based on the sensor signal; and
[0488] A system parameter is controlled based on the sensor signal such that operation of the sensor system is dependent on the sensor signal.
[0489] C18. A sensor system comprising:
[0490] a sensor operable to generate a sensor signal indicative of a user input;
[0491] an input determination block operable to determine whether a defined user input has occurred based on the sensor signal; and
[0492] A mode control block is operable to control in which of a plurality of operating modes the system operates based on the sensor signal.
[0493] C19. A sensor system comprising:
[0494] a sensor operable to generate a sensor signal indicative of a user input;
[0495] an input determination block operable to determine whether a defined user input has occurred based on the sensor signal; and
[0496] a parameter control block operable to control a system parameter based on the sensor signal such that the sensor system:
[0497] operating in a high performance mode or a low performance mode according to the sensor signal; or
[0498] operating in a high accuracy mode or a low accuracy mode based on the sensor signal; or
[0499] The system operates in a high power mode or a low power mode according to the sensor signal.
[0500] Operation Mode
[0501] D1. A force sensor haptic controller configured to operate in at least a first mode and a second mode, wherein:
[0502] In the first mode, the controller is operable to generate a tactile output signal for output to a tactile output transducer based on a force sensor input from at least one force sensor; and
[0503] In the second mode, the controller is operable to send force sensing communications to another controller based on the force sensor input and to output the tactile output signal to the tactile output transducer based on tactile communications received from the other controller in response to the force sensing communications.
[0504] D2. A force sensor haptic controller according to statement D1, configured to operate in at least a third mode, wherein:
[0505] In the second mode, the tactile communication is the tactile output signal; and
[0506] In the third mode, the controller is operable to send force sensing communications to the other controller based on the force sensor input, receive tactile communications from the other controller in response to the force sensing communications, generate the tactile output signal based on the tactile communications, and output the tactile output signal to the tactile output transducer.
[0507] D3. A force sensor haptic controller according to statement D2, wherein in the third mode, the haptic communication includes characteristic haptic data.
[0508] D4. A force sensor haptic controller according to any of the preceding statements, configured such that the force sensing communication comprises:
[0509] raw sensor data received in said force sensor input;
[0510] Filtered sensor data generated by filtering the raw sensor data; and / or
[0511] Activity detection data including data samples of the raw sensor data or the filtered sensor data in addition to data samples whose values do not exceed an activity detection threshold.
[0512] D5. A force sensor haptic controller according to any of the preceding statements, configured to selectively operate in said mode based on:
[0513] an operational state of the force sensor haptic controller;
[0514] the operating state of the other controller;
[0515] an operating state of the force sensor;
[0516] The operating state of the tactile output transducer; and / or
[0517] A control signal, the control signal optionally being received from a signal source external to the force sensor haptic controller.
[0518] D6. A force sensor haptic controller according to any of the preceding statements, configured for use in a host device, wherein the force sensor haptic controller is configured to selectively operate in the mode based on an operating state of the host device.
[0519] D7. The force sensor haptic controller of statement D6, configured to operate in the first mode when the host device is in a low power or sleep state, and to transition to another of the modes when the host device transitions to a higher power or awake state.
[0520] D8. A force sensor haptic controller according to any of the preceding statements, implemented as or as part of an integrated circuit (such as an IC chip).
[0521] D9. A host device comprising the force sensor tactile controller of any of the preceding statements and optionally comprising the other controller.
[0522] D10. The host device of statement D9, wherein the other controller is an application processor or a sensor hub controller of the host device.
[0523] D11. A host device according to statement D9 or D10, which includes the at least one force sensor and / or the tactile output transducer.
[0524] D12. A host device as described in statement D11, wherein the tactile output transducer is a linear resonant actuator.
[0525] D13. A host device according to statement D11 or D12, wherein the at least one force sensor includes one or more of the following:
[0526] Capacitive displacement sensor;
[0527] Inductive force sensor;
[0528] Strain gauge;
[0529] Piezoelectric force sensor;
[0530] force sensing resistor;
[0531] Piezoresistive force sensor;
[0532] Thin film force sensor;
[0533] Force sensors based on quantum tunneling complexes;
[0534] Inductive sensors; and
[0535] Resistive-inductive-capacitive sensors.
Claims
1. A force sensing system for determining whether a user input has occurred, the system comprising: an input channel for receiving input from at least one force sensor; an activity detection phase to monitor an activity level of said input from said at least one force sensor and, in response to reaching an activity level indicative of user input, generate an indication that activity has occurred at said force sensor; as well as an event detection phase to receive the indication and determine whether a user input has occurred based on the input received from the at least one force sensor; The system is configured to transition from a deep standby mode to a standby mode and then to an active mode as the activity level of the input from the at least one force sensor increases, and the system is configured to enable at least one module of the force sensing system from a disabled state or a low power state with each transition.
2. The system of claim 1, the system being configured such that a sampling frequency, a data acquisition rate, a scan rate, or a sampling rate at which the at least one force sensor is sampled is dependent on an operating mode.
3. A system as described in claim 1 or 2, wherein the system is configured to transition between a deep standby mode, a standby mode and an active mode depending on the activity level of the input from the at least one force sensor, and the system is configured so that the sampling frequency, data acquisition rate, scan rate or sampling rate of sampling the at least one force sensor depends on the operating mode.
4. The system of claim 1 or 2, wherein: The activity detection stage includes a first threshold module, a second threshold module and a feature extraction module; the first threshold module being configured to determine whether an activity level of the input from the at least one force sensor exceeds a first threshold, the first threshold being indicative of a base activity level, and the second threshold module being configured to determine whether an activity level of the input from the at least one force sensor exceeds a second threshold; The feature extraction module is configured to extract features from a monitoring signal, the monitoring signal comprising the input from the at least one force sensor; The first threshold module is configured to operate in a deep standby mode; the second threshold module being power gated by the first threshold module such that if the activity level of the input from the at least one force sensor exceeds the first threshold, the deep standby mode is transitioned to a standby mode and the second threshold module is enabled; The feature extraction module is power gated by the second threshold module such that if the activity level of the input from the at least one force sensor exceeds the second threshold, the standby mode is transitioned to an active mode and the feature extraction module is enabled.
5. The system of claim 4, wherein: The first threshold is a fixed threshold; and The second threshold is a noise threshold and / or an adaptive threshold.
6. The system of claim 5, wherein the second threshold module is configured to adaptively derive the noise threshold based on a running estimate of noise in the input from the at least one force sensor.
7. The system of claim 4, wherein the second threshold module and the feature extraction module are configured to be disabled or placed in a low power state unless the system is in the standby mode or the active mode.
8. The system of claim 4, wherein the feature extraction module is configured to be disabled or placed in a low power state unless the system is in the active mode.
9. The system of claim 1 or 2, comprising: A parameter control block is operable to control a system parameter based on a sensor signal such that operation of the force sensing system is dependent upon the sensor signal.
10. The system of claim 9, wherein the system parameters control one or more of: The input determination block or the parameter control block obtains or processes a scan rate of samples from the sensor; a conversion time, the conversion time being the period of time during which samples from the sensor are captured for conversion into digital samples; the amplitude, phase or frequency of a drive signal used to drive the sensor; a voltage level of a supply voltage for powering at least one of the sensor, the input determination block, and the parameter control block; a clock frequency of a clock signal for controlling at least one of the sensor, the input determination block, and the parameter control block; whether one or more components of the system are disabled or operating in a low power mode; whether to perform signal filtering on the sensor signal; a signal-to-noise ratio of the sensor signal; and The power consumption of the force sensing system.
11. The system of claim 1 or 2, wherein the system further comprises: A sensor conditioning stage is configured to condition input received from the input channel to provide a conditioned force sensing signal, wherein the activity detection stage performs activity level monitoring on the conditioned force sensing signal.
12. The system of claim 11, wherein the system is configured to receive input from a plurality of force sensors.
13. A system as claimed in claim 1 or 2, which is configured to determine in an anomaly detection operation whether the input from the at least one force sensor or an average or other combination or cross-correlation of the inputs from the corresponding force sensors has characteristics indicative of abnormal user input.
14. The system of claim 13, configured to employ a mapping function in an abnormality detection operation to map the amplitude of a drive signal for driving the sensor to a value within a predetermined range of values.
15. The system of claim 13, configured to, if the presence of the characteristic is determined in the anomaly detection operation: operating in an abnormal mode; and / or disable one or more features; and / or sampling the at least one force sensor at a given abnormal mode sampling rate; and / or Operate using exception mode system parameters.
16. A system as described in claim 1 or 2, which is configured to determine in an anomaly detection operation whether the input from the at least one force sensor or the average or other combination or cross-correlation of the inputs from the corresponding force sensors has characteristics indicating abnormal user input by comparing with an anomaly detection model including a support vector machine model defined by a support vector machine classification algorithm.
17. A system as described in claim 11, wherein the activity detection stage includes a threshold setting module, which is configured to determine whether the activity level of the input or the conditioned force sensing signal from the at least one force sensor exceeds at least one threshold, wherein if the activity level exceeds the at least one threshold, the activity detection stage determines that activity has occurred at the force sensor.
18. The system of claim 17, wherein one of the thresholds is a noise threshold, and wherein the threshold setting module is configured to adaptively derive the noise threshold based on a running estimate of noise in the input from the at least one force sensor.
19. The system of claim 18, wherein the threshold setting module is configured to calculate a current value of the threshold based on a combination of a previous value of the noise threshold and a current value of the input from the at least one force sensor.
20. A system as claimed in claim 1 or 2, wherein the event detection phase comprises a comparison phase arranged to compare the received indication with a stored touch event model and to determine whether a user input has occurred based on the comparison.
21. The system of claim 20, wherein the touch event model comprises a machine learning model defined by a machine learning classification algorithm.
22. A system as described in claim 21, which is configured to employ a supervised learning algorithm to define a machine learning model based on training data and / or update the machine learning model based on determinations made using the machine learning model and contextual information, wherein the contextual information defines the context in which the input from the at least one force sensor is obtained.
23. The system of claim 21, wherein the event detection stage is configured to determine whether the user input corresponds to a defined type of user input or a defined sequence of defined types of user input based on a comparison with the touch event model.
24. The system of claim 23, wherein the event detection stage is operable to adapt the machine learning model for a second received indication based on determining a defined type of user input to which the first received indication corresponds, wherein the machine learning model is adapted for the second received indication to: increasing a probability of determining that a defined sequence of defined types of user input has occurred based on said first received indication and said second received indication; or The probability of determining that the second received indication corresponds to a defined type of user input, thereby determining that the first received indication and the second received indication correspond to a defined sequence of defined types of user input, is increased.
25. A system as claimed in claim 1 or 2, wherein the event detection stage is configured to detect the type of user input that has occurred by comparing the received indication with a stored touch event model to distinguish: Tap events; Press event, Wherein the event detection stage is arranged to output an indication of a type of user input that has been detected.
26. The system of claim 11, wherein the system further comprises a calibration and diagnostic phase configured to receive the input received from the input channel and / or the output of the sensor conditioning phase and determine whether the system needs to be recalibrated.
27. The system of claim 26, wherein the calibration and diagnostic phase is configured to generate a system output when recalibration of the system is required.
28. The system of claim 1 or 2, comprising a configurable input path for receiving input from at least one force sensor, wherein the input path is configurable depending on whether the system is performing activity detection or event detection.
29. An apparatus comprising the force sensing system of any one of claims 1 to 3.
30. A force sensing method for a force sensing system as claimed in any one of claims 1 to 3, the method comprising the following steps: receiving input from at least one sensor; monitoring an activity level of the input from the at least one force sensor and, in response to reaching an activity level indicative of user input, generating an indication that activity has occurred at the force sensor; as well as determining whether a user input has occurred based on the input received from the at least one force sensor; The system is configured to transition from a deep standby mode to a standby mode and then to an active mode as the activity level of the input from the at least one force sensor increases, and the system is configured to enable at least one module of the force sensing system from a disabled state or a low power state with each transition.
31. The method of claim 30, further comprising the steps of: The input received from the input channel is conditioned to provide a conditioned force sensing signal, wherein the step of activity level monitoring is performed on the conditioned force sensing signal.
Citation Information
Patent Citations
Method for determining when a force sensor signal baseline in a force-based input device can be updated
US20080167832A1
Touch action recognition system and method
US20090153499A1
User interface methods and systems for providing force-sensitive input
US20110167391A1
Touch Sensor With Force Sensing
US20130141382A1
Touchscreen including force sensors
WO2014094283A1