Electrical stimulation for a functional electrical stimulation system

An electrical stimulation system and method for generating a stimulation signal for at least two electrodes coupled to a body part in a functional electrical stimulation system. One example embodiment includes a controller unit operable for receiving stimulation parameters and a trigger signal, and in response to receiving the trigger signal, outputting control signals based on the stimulation parameters. A voltage conversion module coupled to the unit receives the control signals and converts a supply voltage based on the received control signals. A switch receives the converted supply voltage at a first terminal and outputs a simulation signal at a second terminal. Outputting of the converted supply voltage at the second terminal by the switch is controlled by a driver module based on the received control signals.

FIELD

The described embodiments relate to electrical stimulation for a Functional Electrical Stimulation (FES) system, and more particularly are related to electrical stimulation devices and methods that may be used to generate a stimulation signal in a power-efficient manner.

INTRODUCTION

Individuals suffering from a central nervous system injury, such as a stroke, a brain injury, multiple sclerosis, cerebral palsy or partial spinal cord injuries, or other medical conditions may have mobility problems due to that injury or medical condition. Functional electrical stimulation (FES) systems may assist those individuals address those mobility problems.

Existing FES systems provide electrical stimulation to muscles that may have been paralyzed or otherwise affected due to the central nervous system injury or other medical conditions. The electrical stimulation may facilitate motion in those affected muscles. In some cases, FES systems may also help reeducate muscle movement, retard atrophy of any affected muscles due to disuse, and maintain or increase a range of motion at nearby joints.

An example application of an FES system is to enhance ankle dorsiflexion for individuals experiencing foot drop. Foot drop is a gait abnormality that stems from a weakness in a foot, damage to a peroneal nerve, or paralysis of muscles in an anterior portion of a lower leg. Foot drop may be caused by various conditions, such as muscle or spinal nerve trauma, abnormal anatomy, toxins and disease. Individuals affected by foot drop are unable to lift their foot and toes during a swing phase of their gait thereby causing their toes to be caught by the ground and their foot to drag on the ground. The FES system can assist those individuals by sending electrical stimulation signals to the affected muscles during the swing phase of their gait in order to trigger movement in those muscles so that the foot is lifted and not dragged along the ground.

Although existing FES systems are generally portable, they tend to be bulky and therefore, cumbersome for users to carry around on a daily basis. Existing FES systems also tend to lack versatility in operation and offer limited functionality.

SUMMARY

In a broad aspect, at least one embodiment described herein provides an electrical stimulation system for generating a stimulation signal for at least two electrodes for stimulating a body part in a functional electrical stimulation system. The electrical stimulation system includes a controller unit operable for receiving at least one set of stimulation parameters, receiving a trigger signal; and in response to receiving the trigger signal, outputting at least a first control signal and a second control signal based on the at least one set of stimulation parameters, a voltage conversion module coupled to the controller unit, the voltage conversion module being configured to receive at least the first control signal and converting a supply voltage based on the received first control signal, and at least one switch receiving the converted supply voltage at a first terminal and being configured to selectively output based on the second control signal a stimulation signal at a stimulation output terminal.

In at least one embodiment, the electrical stimulation system may further comprise a driver module controlling the at least one switch based on at least the second control signal, wherein the at least one switch is configured to output the converted voltage as the stimulation signal at the output terminal when the driver module configures the at least one switch to a closed position.

In at least one embodiment, at least one set of stimulation parameters may comprise a desired amplitude of the stimulation signal and wherein the first control signal may be adjusted based on the desired amplitude to correspondingly control certain parameters of the voltage conversion module.

In at least one embodiment, at least one set of stimulation parameters may further comprise a desired rise time, a desired hold time, a desired drop time, and a desired idle time of a cycle of the stimulation signal and wherein the first control signal may be adjusted based on the desired rise time, desired hold time, desired drop time and desired idle time.

In at least one embodiment, the voltage conversion module may comprise a DC/DC voltage converter having a feedback terminal and an output terminal to output the converted voltage; a feedback resistor coupling the voltage output terminal with the feedback terminal; and a variable resistor coupling the feedback terminal to a reference; and wherein the converted voltage is based on the resistance value of the feedback resistor and the resistance value of the variable resistor.

In at least one embodiment, the first control signal may comprise a value of the variable resistor for outputting the desired amplitude of the stimulation signal and wherein the value of the variable resistor is varied in time according to the received first control signal.

In at least one embodiment, at least one set of stimulation parameters may further comprise a desired period and a desired pulse width of the stimulation signal and wherein the second control signal may be adjusted based on the desired period and pulse width.

In at least one embodiment, the at least one switch may comprise a MOSFET switch and the driver comprises a MOSFET driver.

In at least one embodiment, the voltage conversion module may be configured to convert the supply voltage to a positive converted voltage and a negative converted voltage; and wherein the at least one switch may comprise a first switch configured to receive the positive converted voltage and selectively outputting based on the second control signal the positive converted voltage at an output terminal; and a second switch configured to receive the negative converted voltage and selectively outputting based on the second control signal the negative converted voltage at the output terminal.

In at least one embodiment, the controller unit may be configured to operate as a finite state machine having at least an inter pulse state, a positive pulse state, and a negative pulse state, wherein in the positive pulse state the controller unit may be configured to output the second control signal to configure the first switch to the closed position and maintain the second switch in the open position to output a positive pulse in the stimulation signal; in the negative pulse state the controller unit may be configured to output the second control signal to configure the second switch to the closed position and maintain the first switch in the open position to output a negative pulse in the stimulation signal; and in the inter pulse state the controller unit may be configured to output the first and second control signals to maintain the first switch in the open position and the second switch in the open position to output no pulses in the stimulation signal.

In at least one embodiment, when the first switch is closed the second switch is opened to output the positive converted voltage as the stimulation signal and wherein when the second switch is closed the first switch is opened to output the negative converted voltage as the stimulation signal.

In at least one embodiment, the voltage conversion module may comprise a dual DC/DC converter that is configured to output the positive converted voltage from a first output terminal and the negative converted voltage from a second output terminal; wherein the first output terminal is coupled to a first feedback terminal of the convertor via a first feedback resistor, the first feedback terminal being further coupled to a reference voltage via a first variable resistor, and the positive converted voltage is based on the resistance value of the first feedback terminal and the resistance value of the first variable resistor; and wherein the second output terminal is coupled to a second feedback terminal of the convertor via a second feedback resistor, the second feedback terminal being further coupled to the reference voltage via a second variable resistor, and the negative converted voltage being based on the resistance value of the second feedback terminal and the resistance value of the second variable resistor.

In at least one embodiment, the at least one set of stimulation parameters may comprise a desired pulse width of the stimulation signal and wherein the second control signal may be adjusted based on the desired pulse width; wherein the first switch outputs the positive converted voltage at the output terminal for a duration of time corresponding to the desired pulse width; and wherein the second switch outputs a negative discharging pulse immediately after the first switch completes outputting the positive converted voltage, whereby the negative discharging pulse shortens a voltage fall time at the output terminal.

In at least one embodiment, the width of the negative discharging pulse may be chosen based on the amplitude of the positive converted voltage outputted by the first switch, the width of the negative discharging pulse being shorter than the desired pulse width.

In at least one embodiment, the at least one set of stimulation parameters may comprise a desired amplitude, a desired rise time, a desired hold time, a desired drop time, and a desired idle time of a cycle of the stimulation signal; and wherein a plurality of negative discharging pulses may be defined in the second control signal where each discharging pulse may be defined based on an amplitude of the stimulation signal at a corresponding point in time within the cycle of the stimulation signal.

In at least one embodiment, the second control signal may comprise a first switch control signal for controlling the first switch, the first switch control signal defining a desired period, a desired pulse width, and a plurality of positive discharging pulse widths for a cycle of the stimulation signal; and a second switch control signal for controlling the second switch, the second switch control signal defining a desired period, a desired pulse width, and a plurality of negative discharging pulse widths for a cycle of the stimulation signal; wherein at least one of the first switch control signal and the second switch control signal further defines a phase offset.

In at least one embodiment, the controller unit may be configured to operate as a finite state machine having at least a positive pulse state, a positive discharge state, a negative pulse state, and a negative discharge state wherein in the positive pulse state the controller unit may be configured to output the second control signal to configure the first switch to the closed position and maintain the second switch in the open position to output a positive pulse in the stimulation signal; in the positive discharge state the controller unit may be configured to output the second control signal to open the first switch, immediately close the second switch following opening of the first switch, open the second switch after a duration of time corresponding to a negative discharging pulse width to reduce the fall time of the positive pulse in the stimulation signal; in the negative pulse state the controller unit may be configured to output the second control signal to configure the second switch to the closed position and maintain the first switch in the open position to output a negative pulse in the stimulation signal; and in the negative discharge state the controller unit may be configured to output the second control signal to open the second switch, immediately close the first switch following opening of the second switch, open the first switch after a duration of time corresponding to a positive discharging pulse width to reduce the fall time of the negative pulse in the stimulation signal.

In at least one embodiment, the negative discharging pulse width may be chosen based on the amplitude of the positive converted voltage outputted by the first switch during the previous positive pulse state and wherein the positive discharging pulse width may be chosen based on the amplitude of the negative converted voltage outputted by the second width during the previous negative pulse state.

In at least one embodiment, the first switch may comprise an opto-coupler and the second switch may comprise an opto-coupler.

In at least one embodiment, the voltage fall time at the output terminal may be no more than approximately 50 μs.

In at least one embodiment, the controller unit may further be configured to receive a mode signal indicating that a particular set of the stimulation parameters is to be selected, and wherein the plurality of stimulation control signals may be generated based on the selected set of stimulation parameters.

In at least one embodiment, a change in the trigger signal may indicate a change in the position of the user and that a particular set of the stimulation parameters is to be selected, and wherein the plurality of stimulation control signals may be generated based on the selected set of stimulation parameters.

In another broad aspect, at least one embodiment described herein provides an electrical stimulation system for generating a stimulation signal for at least two electrodes coupled to a body part in a functional electrical stimulation system. The electrical stimulation system includes a controller unit operable for receiving at least one set of stimulation parameters, receiving a trigger signal; and in response to receiving the trigger signal, outputting at least a first control signal and a second control signal based on the at least one set of stimulation parameters, a voltage conversion module coupled to the controller unit, the voltage conversion module being configured to receive at least the first control signal and to convert a supply voltage based on the received first control signal to a positive converted voltage and a negative converted voltage, a first switch configured to receive the positive converted voltage and selectively output based on the second control signal the positive converted voltage at an output terminal, and a second switch configured to receive the negative converted voltage and selectively output based on the second control signal the negative converted voltage at the stimulation output terminal.

In at least one embodiment, the controller unit may be configured to operate as a finite state machine having at least an inter pulse state, a positive pulse state, and a negative pulse state, wherein in the positive pulse state the controller unit may be configured to output the second control signal to configure the first switch to the closed position and maintain the second switch in the open position to output a positive pulse in the stimulation signal; in the negative pulse state the controller unit may be configured to output the second control signal to configure the second switch to the closed position and maintain the first switch in the open position to output a negative pulse in the stimulation signal; and in the inter pulse state the controller unit may be configured to output the first and second control signals to maintain the first switch in the open position and the second switch in the open position to output no pulses in the stimulation signal.

In at least one embodiment, the controller unit may be configured to operate as a finite state machine having at least a positive pulse state, a positive discharge state, a negative pulse state, and a negative discharge state wherein in the positive pulse state the controller unit may be configured to output the second control signal to configure the first switch to the closed position and maintain the second switch in the open position to output a positive pulse in the stimulation signal; in the positive discharge state the controller unit may be configured to output the second control signal to open the first switch, immediately close the second switch following opening of the first switch, open the second switch after a duration of time corresponding to a negative discharging pulse width to reduce the fall time of the positive pulse in the stimulation signal; in the negative pulse state the controller unit may be configured to output the second control signal to configure the second switch to the closed position and maintain the first switch in the open position to output a negative pulse in the stimulation signal; and in the negative discharge state the controller unit is configured to output the second control signal to open the second switch, immediately close the first switch following opening of the second switch, open the first switch after a duration of time corresponding to a positive discharging pulse width to reduce the fall time of the negative pulse in the stimulation signal.

In another broad aspect, at least one embodiment described herein provides a method for generating a stimulation signal for a functional electrical stimulation system. The method includes receiving a selection of a set of stimulation parameters defining characteristics of the stimulation signal to be generated, determining values of a first control signal and a second control signal based on the set of stimulation parameters, outputting the first control signal to control an amplitude of the stimulation signal, determining a state of a finite state machine, and outputting a second control signal based on the state of the state machine, the second control signal being adapted for controlling timing for the stimulation signal.

In at least one embodiment, the set of stimulation parameters may comprise a desired amplitude of the stimulation signal, and the first control signal may be determined based on the desired amplitude.

In at least one embodiment, the set of stimulation parameters may further comprise a desired rise time, a desired hold time, a desired drop time, and a desired idle time of a cycle of the stimulation signal, and the first control signal may be determined based on the desired rise, desired hold time, desired drop time and desired idle time.

In at least one embodiment, the set of stimulation parameters may comprise a desired period and a desired pulse width of the stimulation signal, and the second control signal may be determined based on the desired period and pulse width.

In at least one embodiment, the finite state machine may comprise an inter pulse state, a positive pulse state, and a negative pulse state, wherein in the positive pulse state the second control signal may configure a first switch to a closed position and maintains a second switch in an open position to output a positive pulse in the stimulation signal; in the negative pulse state the second control signal may configure the second switch to the closed position and maintains the first switch in the open position to output a negative pulse in the stimulation signal; and in the inter pulse state the first and second control signals may maintain the first switch in the open position and the second switch in the open position to output no pulses in the stimulation signal.

In at least one embodiment, the finite state machine may comprise a positive pulse state, a positive discharge state, a negative pulse state, and a negative discharge state wherein in the positive pulse state the second control signals may configure a first switch to a closed position and maintains a second switch in an open position to output a positive pulse in the stimulation signal; in the positive discharge state the second control signals may configure the first switch to the open position, immediately configures the second switch to the closed position following the opening of the first switch, and configures the second switch to the open position after a duration of time corresponding to a negative discharging pulse width to reduce the fall time of the positive pulse in the stimulation signal; in the negative pulse state the second control signals configures the second switch to the closed position and maintains the first switch in the open position; and in the negative discharge state the second control signals may configure the second switch to the open position, immediately configures the first switch to the closed position following the opening of the second switch, and configures the first switch to the open position after a duration of time corresponding to a positive discharging pulse width to reduce the fall time of the negative pulse in the stimulation signal.

In another broad aspect, at least one embodiment described herein provides a computer readable medium comprising a plurality of instructions executable on a processor of a device for adapting the processor to implement a method of generating a stimulation signal for a functional electrical stimulation system. The computer readable medium may comprise instructions for receiving a selection of a set of stimulation parameters defining characteristics of the stimulation signal to be generated; determining values of a first control signal and a second control signal based on the set of stimulation parameters; outputting the first control signal to control an amplitude of the stimulation signal; determining a state of a finite state machine; and outputting a second control signal based on the state of the state machine, the second control signal being adapted for controlling timing for the stimulation signal.

In at least one embodiment, the computer readable medium may comprise instructions for performing various suitable aspects of any of the methods described in accordance with the teachings herein.

Other features and advantages of the present application will become apparent from the following detailed description taken together with the accompanying drawings. It should be understood, however, that the detailed description and the specific examples, while indicating preferred embodiments of the application, are given by way of illustration only, since various changes and modifications within the spirit and scope of the application will become apparent to those skilled in the art from this detailed description.

Further aspects and advantages of the embodiments described herein will appear from the following description taken together with the accompanying drawings.

DESCRIPTION OF VARIOUS EMBODIMENTS

The various embodiments described herein generally relate to electrical stimulation that can be used with an FES system, and more particularly are related to an electrical stimulation devices and methods that may be used to generate a stimulation signal in a power-efficient manner.

It should also be noted that the terms “coupled” or “coupling” as used herein can have several different meanings depending in the context in which these terms are used. For example, the terms coupled or coupling can have a mechanical or electrical connotation. For example, as used herein, the terms coupled or coupling can indicate that two elements or devices can be directly connected to one another or connected to one another through one or more intermediate elements or devices via an electrical element, electrical signal or a mechanical element depending on the particular context.

It should be noted that terms of degree such as “substantially”, “about” and “approximately” as used herein mean a reasonable amount of deviation of the modified term such that the end result is not significantly changed. These terms of degree may also be construed as including a deviation of the modified term if this deviation would not negate the meaning of the term it modifies.

At least some of the elements of the systems described that are implemented via software may be written in a high-level procedural language such as object oriented programming or a scripting language. Accordingly, the program code may be written in C, C++, SQL or any other suitable programming language and may comprise modules or classes, as is known to those skilled in object oriented programming. It should also be understood that at least some of the elements of the various systems described herein that are implemented via software may be written in assembly language, machine language or firmware as needed. In either case, the program code can be stored on a storage media or on a computer readable medium that is readable by a general or special purpose programmable computing device having a processor, an operating system and the associated hardware and software that is necessary to implement the functionality of at least one of the embodiments described herein. The program code, when read by the computing device, configures the computing device to operate in a new, specific and predefined manner in order to perform at least one of the methods described herein.

The computing devices that may be used in the various embodiments described herein generally include at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface. For example, and without limitation, the programmable devices (referred to herein as computing devices) may be a server, network appliance, an embedded device, a computer expansion module, a personal computer, a laptop, a personal data assistant, a cellular telephone, a smart-phone device, a tablet computer, a wireless device or any other computing device capable of being configured to carry out the methods described herein. The particular embodiment depends on the application of the computing device. For example, a server can be used to provide a centralized database and/or a remote programming interface while an embedded device may be used for components that are worn or otherwise directly used by the user.

In some embodiments, the communication interface may be a network communication interface. In embodiments in which elements are combined, the communication interface may be a software communication interface, such as those for inter-process communication (IPC). In still other embodiments, there may be a combination of communication interfaces implemented as hardware, software, and a combination thereof.

Program code may be applied to input data to perform at least some of the functions described herein and to generate output information. The output information may be applied to one or more output devices, in known fashion.

At least some of the programs may be implemented in a high level procedural or object oriented programming and/or scripting language, or both, to communicate with a computer system. However, other programs may be implemented in assembly or machine language, if desired. In any case, the language may be a compiled or interpreted language. The computer programs may be stored on a storage media or a device (e.g. ROM, magnetic disk, optical disc) readable by a general or special purpose programmable device, for configuring and operating the programmable device when the storage media or device is read by the programmable device to perform the procedures described herein. Embodiments of the system may also be considered to be implemented as a non-transitory computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computing device to operate in a specific and predefined manner to perform the functions described herein.

Furthermore, some of the programs associated with the system, processes and methods of the embodiments described herein are capable of being distributed in a computer program product comprising a computer readable medium that bears computer usable instructions for one or more processors. The medium may be provided in various forms, including non-transitory forms such as, but not limited to, one or more diskettes, compact disks, tapes, chips, and magnetic and electronic storage. In alternative embodiments the medium may be transitory in nature such as, but not limited to, wireline transmissions, satellite transmissions, internet transmissions (e.g. downloads), media, digital and analog signals, and the like. The computer useable instructions may also be in various formats, including compiled and non-compiled code.

Reference is first made toFIG. 1, which shows a block diagram100of components interacting with a functional electrical stimulation (FES) system102in accordance with an example embodiment. The FES system102generates stimulation signals to assist individuals, such as a user170ofFIG. 1, with damaged or paralyzed muscles in a lower leg. The FES system102may generate stimulation signals for various purposes, such as to facilitate movement of the user170, to reeducate any affected muscles in the user170, to retrain the user170to walk, or to retard atrophy in muscles due to disuse, for example.

When facilitating movement of the user170, the FES system102can generate stimulation signals to trigger movement at affected muscles. In the case of a user170with foot drop, for example, the FES system102may generate stimulation signals that are synchronized with a swing phase of a gait of that user170in order to help that user170lift the foot and prevent the foot from dragging on the ground.

As shown inFIG. 1, the FES system102includes a stimulation unit110, a sensor unit120and a controller unit130. The operation of the stimulation unit110, the sensor unit120and the controller unit130will now be further described.

The stimulation unit110, the sensor unit120and the controller unit130may communicate with each other via system network150. As also shown inFIG. 1, the FES system102may also communicate with an external system140via the system network150and/or possibly via a public network160. As will be described, the FES system102may receive signal parameters and other operational instructions from the external system140and may also transmit operational data to the external system140.

Each of the stimulation unit110, the sensor unit120and the controller unit130may include a real time calendar and clock (RTCC) component. The RTCC component may require a low frequency crystal or oscillator in order to operate. The RTCC component provides real time date and time information for the FES system102. The date information may include the year, month, day and week, and the time information may include hours, minutes, and seconds. The RTCC component may continue to operate even when the FES system102is in a sleep mode. Therefore, the RTCC component can facilitate system operations in which accurate time information is needed and with minimal power consumption. For example, the RTCC component can help ensure that a timer module at each of the stimulation unit110, the sensor unit120and the controller unit130is synchronized so that stimulation signals are triggered at the appropriate time.

The FES system102may also enter into a safe mode in response to any communication errors between any two of the stimulation unit110, the sensor unit120and the controller unit130, as well as between the FES system102and the external system140. For example, when the system network150fails to operate properly, the stimulation unit110may enter the safe mode and generate a predetermined safe stimulation signal for the user170, no stimulation signal or provide a warning to the user170that a component of the FES system102is not functioning properly.

The stimulation unit110generates and delivers electrical stimulation signals to the user170. As shown inFIG. 1, the stimulation unit110may be provided in association with a cuff180that is worn by the user170at a location on the user that is to receive the stimulation signals. In the example ofFIG. 1, the cuff180is worn on the lower leg of the user170to stimulate nerves located in the lower leg. The stimulation unit110may include various modules for generating and delivering the stimulation signal to the user170. It will be understood that the various modules may be hardware, software, and a combination of hardware and software. The stimulation unit110may be implemented in several ways as is known by those skilled in the art.

The stimulation unit110may generate stimulation signals based on signal parameters stored at the stimulation unit110or signal parameters received via the system network150from the external system140or the controller unit130. The signal parameters received from the controller unit130may be determined based on a variety of factors, including an operational mode of the FES system102as selected by the user170, data provided from waveform data charts and waveform parameters, and stimulation parameters as selected by the user170and a third party, such as a doctor or clinician. The signal parameters received from the external system140may include stimulation parameters as selected by the third party. In some embodiments, the stimulation unit110may vary amplitude or frequency of a stimulation signal based on the signal parameters.

In some embodiments, the stimulation unit110may generate multiple stimulation signals to different nerves of the user170. By stimulating different nerves, different functionalities may be achieved by the FES system102. The different stimulation signals may be generated at approximately the same time. For example, one to eight stimulation channels may be available at the stimulation unit110for generating up to eight stimulation signals. Each stimulation channel may be used for stimulating a different nerve, for example.

To deliver the stimulation signal, the stimulation unit110includes at least two electrodes that are positioned substantially around a target nerve that is to receive the stimulation signal. For example, the at least two electrodes may be positioned substantially around a target nerve that is to receive the stimulation signal. Two of the at least two electrodes forms a current path there between over which the stimulation signal travels to stimulate the target nerve. For example, the electrodes may be provided in pairs.

The stimulation unit110may also generate operation data, such as stimulation status data, to be displayed at the cuff180or by the controller unit130. For example, the stimulation unit110may include a display component, such as an LCD display in some cases.

The sensor unit120may include multiple different sensors for detecting data associated with a gait of the user170and an environment of the user170. As shown inFIG. 1, similar to the stimulation unit110, the sensor unit120is generally worn by the user170. In the example ofFIG. 1, the sensor unit120is located at the foot of user170. The sensor unit120may be attached to footwear worn by the user170or embedded into or otherwise attached to an insole of the user's footwear.

The sensor unit120may process at least a portion of the detected sensor data to generate various signal parameters for the stimulation signal. The sensor unit120may also transmit the detected sensor data to other components of the FES system102, such as stimulation unit110and controller unit130, and the external system140. The detected sensor data may be transmitted in various data formats, such as in a hexadecimal or byte format.

Various sensors may be provided at the sensor unit120. The sensors may include a force sensor, a temperature sensor, a gyroscope, an accelerometer, and a compass. Different embodiments may include all or different combinations of the aforementioned sensors.

The force sensor can detect an amount of force that it receives. For a sensor unit120that is located near or in the insole of the footwear of the user170, the force sensor can detect the amount of force that is exerted by the foot of the user170while the user170walks. Based on data collected by the force sensor, the FES system102may distinguish between various movements of the user170, such as whether that user170is standing, is in mid-stride or is performing other activities.

The temperature sensor can detect a temperature of an environment of the user170, for example.

The gyroscope can detect an angular velocity of the sensor unit120when the sensor unit120is in motion. Based on the detected angular velocity, the FES system102may determine an orientation of the sensor unit120and therefore an orientation of the foot of the user170.

The accelerometer can detect an acceleration of the sensor unit120.

The compass can detect a geomagnetic field of the sensor unit120to determine the direction in which the user170is walking.

The sensor unit120may also track a passage of time with a timer module, and transmit the time data via the system network150. The sensor unit120may track the passage of time to facilitate data collection. For example, the sensor unit120may collect sensor data at predetermined time intervals, such as every 10 milliseconds, for example. A timer module may help to trigger data collection at the sensor unit120. When the FES system102is used for addressing foot drop, the sensor unit120may track the passage of time to determine a lift period of the foot. The lift period is a period of time from when the user170lifts the foot from the ground to when that foot returns to the ground. The lift period may be used for generating the signal parameters for the stimulation signal.

The controller unit130can define the signal parameters of the stimulation signal and transmit the signal parameters to the stimulation unit110via the system network150. The controller unit130may define the signal parameters based on data received from the sensor unit120, the external system140, or parameters stored locally or received at the controller unit130.

The controller unit130is generally carried or worn by the user170. The controller unit130may be a controller device dedicated for use with the FES system102. The controller unit130may be attached to a waist of user170, for example. The controller device includes hardware and software modules for operating and interacting with each of the other units in the FES system102as well as external system140. The controller device200may include one or more different user input controls for receiving input from the user170, such as a mode button210.

The controller unit130may also be provided as a controller software module that is installed onto existing computing devices that are carried by the user170. The computing devices may include, but are not limited to, an electronic tablet device, a personal computer, a portable computer, a mobile device, a personal digital assistant, a laptop, a smart phone, a WAP phone, a handheld interactive television, handheld video display terminals, gaming consoles, and other portable electronic devices, for example. The controller software module may include one or more software modules for operating and interacting with each of the other units in the FES system102as well as the external system140.

In at least some embodiments, the controller unit130provides a user control interface from which to receive user inputs for operating the FES system102. An example user control interface200for controller unit130is illustrated inFIG. 2. The user control interface200includes more icons210, such as an intensity icon210A, a diagnostic icon210B, a mode icon210C and a settings icon210D, with which user170can use for interacting with the FES system102. It will be understood that the user control interface200may include more or fewer icons than shown inFIG. 2, and that the icons may be different from those shown inFIG. 2.

When the controller unit130receives a user input activating the intensity icon210A, the controller unit130may allow the user170to vary an intensity level of the stimulation signal. Similarly, when the controller unit130receives a user input activating the settings icon210D, the controller unit130may allow the user170to alter certain operational conditions of the FES system102. The operational conditions that may be altered may vary based on user type. For example, the user170may be limited to cosmetic changes to the user control interface200, such as background colour, but a doctor or clinician with access to the user control interface200may have increased access, such as to alter signal parameters.

In response to receiving a user input activating the mode icon210C, the controller unit130may enable the user170to change the operational mode of the FES system102. Depending on the mode selected by the user170, the controller unit130may vary the signal parameters accordingly.

As described, the FES system102may be used for different purposes, such as to facilitate movement of user170, to reeducate any affected muscles, to retrain the user170to walk, or to retard atrophy of muscles due to disuse. Therefore, the FES system102may operate in different modes, such as a training mode, a walking mode, a test mode, and a sleep mode. The various different modes may be associated with stimulation signals having different intensity levels and frequencies. It will be understood that fewer or additional number of operational modes may be provided by the controller unit130in different embodiments. For example, different stimulation signal parameters may be associated with one or more of the operational modes.

The training mode may be used for reeducating affected muscles or to retard atrophy of muscles while the user170is sitting or lying down. The training mode may therefore be associated with stimulation signals with different intensities and different frequencies. The training mode may also be used for initially fitting the user170with the stimulation unit110.

The walking mode may be used for facilitating movement of the user170. As a result, the walking mode may be associated with stimulation signals with different intensities and different frequencies in comparison with stimulation signals used for the training mode.

The test mode may be used for conducting functional tests and diagnostics of the FES system102in order to identify causes of any errors in the FES system102. The test mode also may be used for calibration, or to carry out a manufacturing procedure or a repair procedure. The test mode will set the FES system100into a test mode which one can test and calibrate the FES system parameters. For example, the stimulation unit110may be tested to output constant amplitude stimulation signals at certain frequencies for automatically testing certain stimulation signal parameters and calibration procedures.

The sleep mode can help the FES system102conserve power. Although each of the stimulation unit110, the sensor unit120and the controller unit130may be equipped with a power supply, such as rechargeable lithium-ion batteries for example, power saving can be important for extending a battery life of the FES system102. Various different power states, such as a power down state, a low power state and an energy saving state may be used. For example, when the sleep mode is selected, the controller unit130may power down at least one of the stimulation unit110and the sensor unit120, or place one of the stimulation unit110and the sensor unit120in a low power state or energy saving state.

In another example of when the sleep mode is selected, the controller unit130may synchronize a power usage state as between each of the stimulation unit110, the sensor unit120and the controller unit130. For synchronizing a low power state among the stimulation unit110, the sensor unit120and the controller unit130, the controller unit130may first transmit a low power state signal to the stimulation unit110via the system network150. Once the stimulation unit110enters the low power state, the stimulation unit110may send a low power state signal to the sensor unit120. After the sensor unit120enters the low power state, the sensor unit120may send a low power state signal to the controller unit130. In response to receiving the low power state signal, the controller unit130transitions to a low power state. The power consumption of the FES system102during a low power state can be as low as several mW (nominally).

Each of the stimulation unit110, the sensor unit120and the controller unit130can exit the sleep mode in response to receipt of an interrupt signal. The interrupt signal may be a user input received by the controller unit130for changing the operational mode from sleep mode, a physical movement of the user170as detected by the sensor unit120, such as detection of a pressure change by the force sensor, or a change in resistance or a user input received by the stimulation unit110.

Still referring toFIG. 2, when the controller unit130receives a user input indicating that the diagnostic icon2108is selected, the controller unit130may prepare reports based on data associated with the operation of the FES system102. The data associated with the operation of the FES system102may be stored with at least one of the controller unit130and remotely at external system140.

The reports may be statistical reports or various usage reports. The operation data may include any data received from the sensor unit120and external system140, and any data collected by the controller unit130, such as error logs, usage logs, previous waveform parameters, and current waveform parameters. The usage logs may include time and date data, length of use, distance covered, speed, location data (e.g., data provided from the Global Positioning System (GPS)) and other related data.

Reference is now made toFIGS. 3A and 3B, which are example usage reports300A and300B, respectively, generated by the controller unit130.

The usage report300A illustrates a workout performance report. The controller unit130may generate a map310A illustrating a route covered by the user170during the workout as well as a graph320A illustrating a progress of the user170. The controller unit130may additionally provide other performance evaluations, such as the amount of calories burned during the workout. Similarly, the usage report300B is also a workout performance report. The usage report300B includes a map310B of the route of the user170and a usage summary330B. Other reports may be generated that use different colors along the routine320B to indicate the different speeds of the user170during the workout.

The reports generated by the controller unit130may be transmitted to the external system140. Doctors, clinicians or other medical professionals who receive the reports via the external system140may review the reports and adjust the signal parameters accordingly.

Referring again toFIG. 1, the external system140may include any computing device with at least one processor and memory, and capable of receiving, sending, and processing instructions associated with the operation of the FES system102. The external system140may be directly attached to the FES system102, via a USB connection, or may connect remotely with the FES system102as long as the external system140can communicate with the FES system102via the public network160or the system network150.

It will be understood that although only one external system140is illustrated inFIG. 1, multiple external systems140may interact with the FES system102at one time. The number of external systems140that may interact with the FES system102at a given time may be limited by the data transmission capacity of the system network150and the public network160. For example, the FES system102will send an alarm to a cell phone, smart phone or other suitable mobile device and at the same time may send a message to a remote computer or a computer that is located in a medical health facility under some circumstances such as when the user170falls down or drops to the ground during walking or for emergency situations.

The external system140may be an electronic tablet device, a personal computer, a workstation, a server, a portable computer, a mobile device, a personal digital assistant, a laptop, a smart phone, a WAP phone, an interactive television, video display terminals, gaming consoles and portable electronic devices or any combination of these.

Data associated with the usage of the FES system102by the user170may be transmitted to the external system140via the system network150or the public network160. A third party, such as a doctor, clinician or other medical personnel, may access the external system140to retrieve the usage data. Based on the usage data, the third party may decide to vary and update certain signal parameters associated with the stimulation signal currently generated by the stimulation unit110. The external system140may then transmit the updated signal parameters to the FES system102via the system network150or the public network160.

The external system140may also include any device capable of measuring various physiological parameters, such as heart rate and blood oxygen levels. These devices may be worn or carried by the user170or attached to at least one unit of the FES system102. Any physiological information received by the FES system102may be analyzed and used for adjusting signal parameters of the stimulation signals. For example, the physiological information may indicate that the heart rate of the user170exceeds a recommended heart rate threshold and the FES system102may respond by decreasing an intensity of the stimulation signal or disabling the stimulation signal in order to minimize any risk of injury. The physiological information received by the FES system102may also be stored at the FES system102or at a remote storage system.

The system network150includes any network capable of carrying data between each of the stimulation unit110, the sensor unit120and the controller unit130, as well as between the FES system102and the external system140. System network150may include one or more wireless communication networks, such as Wireless LAN (WLAN), a local area network implemented by using technologies such as, but not limited to Bluetooth™ technology or may be infrared light in certain circumstances, and other networks implemented using similar protocols and technologies. The system network150may also include multiple sub-networks.

Networks implemented using Bluetooth technologies may be Personal Area Networks (PAN) and can provide enhanced security in comparison with other wireless networks. It is well known that a Bluetooth communication network is capable of exchanging data between different devices over short distances using short-wavelength radio transmissions in the ISM radio band of 2,400 to 2,480 MHz.

Due to the multiple different units within the FES system102that may be required to communicate with each other, the FES system102may require multi-point connections. When the system network150is implemented with Bluetooth technology, the system network150may facilitate multi-point connections by entering a special command mode in which two different protocols are used. The two different protocols include the standard Bluetooth communication protocol and an FES system protocol that converts data provided in the standard Bluetooth communication protocol into data recognizable by each of the different units within the FES system102.

In a command mode, any data received by system network150is first interpreted based on the standard Bluetooth communication protocol. Based on the standard Bluetooth communication protocol, the received data is processed and encapsulated with extra bytes in order to match data traditionally provided in the command mode. The processed data can then be interpreted using the FES system protocol.

In embodiments in which the system network150is implemented using Bluetooth technology, the FES system102may operate to minimize errors in data transmission due to various environment factors. For example, the FES system protocol may introduce a call-respond mechanism to ensure communication reliability with the system network150.

The public network160can include any network capable of carrying data between the external system140and the FES system102. Generally, the public network160may be any communication network that is used as the system network150. However, unlike the system network150, the public network160may also facilitate communication for the external system140when it is outside of the range of system network. For example, the public network160may include the Internet, Ethernet, a plain old telephone service (POTS) line, a public switch telephone network (PSTN), an integrated services digital network (ISDN), a digital subscriber line (DSL), coaxial cable, fiber optics, satellite, mobile, wireless (e.g. Wi-Fi, WiMAX), SS7 signaling network, fixed line, local area network, wide area network, and others, including any combination of these.

Referring now toFIG. 4, therein illustrated is a schematic diagram of the stimulation unit110according to an example embodiment. The stimulation unit110may be provided as an apparatus separate from the sensor unit120and the controller unit130; however the stimulation unit110may be in communication with at least one of the sensor unit120and the controller unit130. For example, the stimulation unit110may be provided as a flexible printed circuit board (PCB). Use of the flexible PCB in the stimulation unit110can offer substantial advantages over conventional PCBs. The flexible PCB is generally lighter than conventional PCBs. Also, the flexible PCB is more malleable and can be bent to accommodate movement of body parts where the stimulation unit110is worn by the user.

The stimulation unit110includes a microcontroller210for receiving and transmitting data signals. The microcontroller210may be implemented in hardware or software, or a combination of both. It may be implemented on a programmable processing device, such as a microprocessor or microcontroller, Central Processing Unit (CPU), Digital Signal Processor (DSP), Field Programmable Gate Array (FPGA), general purpose processor, and the like. The programmable processing device is generally coupled to program memory or has its own program memory. The program memory may be used to store instructions used to program the microcontroller210to perform various functions as described herein. The program memory can include non-transitory storage media, both volatile and non-volatile, including but not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, magnetic media, and optical media. For example the microcontroller may be a PIC24 series microcontroller.

The microcontroller210is coupled to a communication interface220, which has an antenna225for receiving and transmitting wireless signals. The connection with the communication interface220allows the microcontroller210to receive data signals from at least one of the sensor unit120, the controller unit130, and the external system140over the system network150. The microcontroller210is operable to receive over the system network150at least one set of stimulation parameters that define characteristics of one or more stimulation signals generated by the stimulation unit110. The microcontroller210is further operable to receive a trigger signal.

In at least some embodiments, stimulation parameters are received at the microcontroller210of the stimulation unit110in real time. Accordingly, stimulation signals generated by the stimulation unit110may be based on real time stimulation parameters. When characteristics of the stimulation signals generated by the stimulation unit110are to be modified, different stimulation parameters will be received at the microcontroller210.

According to one example embodiment, the at least one set of stimulation parameters are received at the microcontroller210ahead of time. That is, the at least one set of stimulation parameters can be received prior to the stimulation signals having to be generated by the stimulation unit110. The at least one set of stimulation parameters that are received can be stored within the microcontroller210to be retrieved at a later time.

For example, the at least one set of stimulation progress can be downloaded over the system network150from either the external system140or the controller unit130.

In another example, based on physiological changes of a user, a doctor may wish to adjust stimulation signals applied to the user. The doctor may do so by submitting updated stimulation parameters from the external system140to the stimulation unit110.

In another example, the microcontroller210can receive a plurality of sets of stimulation parameters. One or more sets of the plurality of received stimulation parameters may be associated with a particular operation mode. For example, different sets of stimulation parameters may be associated with each one of the training mode, walking mode, test mode, or sleep mode. Furthermore, within each mode, additional sets of stimulation parameters may be available. For example, different sets of stimulation parameters may be available for selection based on terrain, weather, etc. Accordingly, a set of stimulation parameters may be selected based on the selected operational mode. For example, the microcontroller210may receive from one of the sensor unit120, the controller unit130or external system140a mode signal indicating an active operational mode, which further indicates a particular set of stimulation parameters to be selected. This allows stimulation signals generated by the stimulation unit110to be varied according to the selected operational mode.

Different sets of stimulation parameters may also be associated with different values of the various sensors provided by the sensor unit120. For example different stimulation parameters may be associated with varying amounts of force received by the force sensor, varying temperatures detected by the temperature sensor, varying orientation data from the sensor unit120indicating a change in the position of the user, varying accelerations detected by the accelerometer, or a varying magnetic field detected by the compass. Accordingly, a set of stimulation parameters may be selected based on one type of sensor data or a combination of various sensor data.

According to various example embodiments, the stimulation unit110may include a display device234. For example the display device234can be a liquid crystal display as indicated in the example shown inFIG. 4. The display device234is coupled to the microcontroller210and receives data therefrom. The display device234can be used to display information related to the status of the stimulation unit110. For example the display device234can display one or more of a currently selected operation mode, an identifier of the selected set of stimulation parameters, or the fact that a suitable set of stimulation parameters is not available.

According to various example embodiments, the stimulation unit110may include one or more indicator lights230,232. For example the one or more indicator lights230,232may be light emitting diodes that emit different colors. The one or more indicator lights230,232are coupled to the microcontroller210and receive data therefrom. The lights230,232can be used to display information related to the status of the stimulation unit110. For example, the red light230may be turned on to indicate that the stimulation unit110is powered on and the green light232may be turned onto indicate that the stimulation unit110is currently operating to generate stimulation signals.

The stimulation unit110includes a signal generation submodule240coupled to the microcontroller210for generating one or more stimulation signals to be delivered to the user170. Based on the at least one set of stimulation parameters, the microcontroller210outputs a plurality of stimulation control signals for controlling the signal generation submodule240. The plurality of control signals are received by the signal generation submodule240. The signal generation submodule240includes an amplitude controller unit250, a controller unit260and a waveform generator270. The waveform generator270is then further coupled to contact electrodes280that are part of the cuff180. The contact electrodes280are generally positioned to contact an area of the user170that is to be stimulated. Stimulation signals generated by the waveform generator270are outputted via a stimulation channel output284to the contact electrodes280for stimulating a body part of the user170.

According to various example embodiments, the stimulation unit110can include a plurality of signal generation submodules240. For example, a given signal generation submodule240may be provided for each of the stimulation channels available at the stimulation unit110. Each of the stimulation submodules240may generate one of the stimulation signals over one of the channels. For example, the plurality of signal generation submodules240can be controlled by the microcontroller210.

The values of the control signals outputted by the microcontroller210correspond to values of the selected set of stimulation parameters. That is, the values of the control signals outputted by the microcontroller210are adjusted based on values of the selected set of stimulation parameters. According to various example embodiments, the stimulation parameters define the value of the control signals sent to the signal generation submodule240.

The values of the control signals outputted by the microcontroller210can also be adjusted based on stimulation parameter values that are calculated on-the-fly. For example, data from the sensor unit120may be received at the microcontroller210via the communication interface220. The data from the sensor unit120is then analyzed and stimulation parameters are calculated based on the analysis. Values of the control signals corresponding to the calculated stimulation parameters are then sent to the signal generation submodule240.

Alternatively, the stimulation parameters define characteristics of the stimulation signals that are to be generated. In this case, the microcontroller210may have a stored waveform data chart (an example of which is shown in Table 1) that define values of the control signals that are to be sent to the signal generation submodule240such that when the elements of the signal generation submodule240are controlled according to the control signals, the generated stimulation signals will have the characteristics defined by the waveform parameters. The waveform data chart may be compiled based on specifications of one or more elements of the signal generation submodule240. For example, different models of the stimulation unit110can have different specifications, such as size of the stimulation unit110, power output, output channel number, or battery capacity. Using a stored waveform data chart that is compiled according to the specifications of the signal generation submodule240allows stimulation parameters to be defined independently of the specifications of the stimulation unit110. For example, a doctor can apply a particular set of stimulation parameters to multiple patients who are wearing stimulation units110having different specifications. The use of a stored waveform data chart ensures that the same stimulation signals generated based on the particular set of stimulation parameters are applied to each of the patients despite the patients using differently specified stimulation units110.

According to various example embodiments, the microcontroller210outputs the control signals in response to the received trigger signal. For example, the trigger signal may indicate when control signals should be output to generate stimulation signals for stimulating a body part of the user170or when control signals should not be outputted so that the user170is not stimulated. For example, a trigger signal may be sent from the sensor unit120. The trigger signal may be generated based on a change in position of the user170sensed by the sensor unit120. It will be appreciated that in some positions (for example, a resting position), the user170does not require stimulation of the body part, while in other positions (ex: standing, moving), the user170benefits from stimulation of the body part.

Referring now toFIG. 5A, therein illustrated is a waveform300of an amplitude portion of an example stimulation signal that is generated by the stimulation unit110. As shown inFIG. 5A, a positive amplitude waveform308and a negative amplitude waveform316are shown simultaneously and superimposed. It will be understood that the positive amplitude waveform308and the negative amplitude waveform316corresponds to an intermediate signal generated within the signal generation submodule240.

According to various example embodiments, the amplitude controller250receives at least a first control signal252of the control signals outputted by the microcontroller210and controls the waveform generator270such that at least one of the positive amplitude waveform308and the negative amplitude waveform316is generated. The positive amplitude waveform308and negative amplitude waveform316represent intermediate signals in the generation of stimulation signals. The first control signal252corresponds to a desired amplitude of the stimulation signal to be outputted. The desired amplitude can be indicated within the selected set of stimulation parameters. For example, the value of the first control signal252is determined by referencing the waveform data chart and finding the defined value of the first control signal for generating a stimulation signal having the given desired amplitude.

For example, the first control signal252may be a time varying signal corresponding to desired amplitude values over time. The desired amplitude values over time may be indicated within the selected set of stimulation parameters.

Alternatively where the stimulation signal is to be repeated more than once, the selected set of stimulation parameters can define characteristics of a cycle of the stimulation signal. For example, the stimulation parameters can define a desired amplitude u322, a rise time tt1324, a hold time tt2328, a fall time tt3332, and an idle time tt4336. The rise time tt1324of the stimulation signal corresponds to when the amplitude value rises from a reference value (e.g., 0V) to the desired amplitude value u322. The hold time tt2328of the stimulation signal corresponds to how long the desired amplitude is maintained. The fall time tt3332corresponds to when the amplitude value falls from the desired amplitude value back to the reference value. The idle time tt4336corresponds to how long the stimulation signal is maintained at the reference value before the start of another stimulation cycle. The entire duration of the stimulation cycle has a time T340.

According to one example embodiment, the selected set of stimulation parameters only defines the positive portion of the desired amplitude values, and a corresponding negative waveform is simply the negative of the positive waveform. That is, the negative waveform is symmetric with the positive waveform about the reference value.

Referring now toFIG. 5B, therein illustrated is a waveform302of a pulsed portion of an example stimulation signal that is generated by the stimulation unit110. As shown inFIG. 5B, a positive pulse signal342and a negative pulse signal344are shown simultaneously and superimposed. According to one example embodiment, the positive pulse signal342and the negative pulse signal344are generated separately. It will be understood that the positive pulse signal342and the negative pulse signal344correspond to intermediate signals generated within the signal generation submodule240. For example, a second control signal262may be used which is a time varying signal defining output values over time.

The selected set of stimulation parameters can define a duration of a pulse (i.e. desired pulse width) and an interval between two adjacent pulses (i.e. period of the pulse). For example, the stimulation parameters may define the duration of a positive pulse and interval between two adjacent positive pulses and also the duration of a negative pulse and the interval between two adjacent negative pulses. The stimulation parameters may further define an offset (i.e. phase) between the positive pulses and the negative pulses.

According to one example embodiment, the desired positive pulse signal and the desired negative pulse signal may be defined together. For example the stimulation parameters may define duration t1346, duration t2348, and duration tt352. The duration t1346defines the duration of a non-zero positive pulse of the positive pulse signal342(i.e. desired pulse width). In some example embodiments, the duration t1346also defines the duration of a non-zero negative pulse of the negative pulse signal344. However, in some example embodiments, different parameters (such as t1p and t1n) may be used with different values when the duration (t1p) of the non-zero positive pulse and the duration (t1n) of the non-zero negative pulse are not equal. The duration t2348defines the duration of the interval between the end of a positive pulse and the start of the next negative pulse. The duration tt352defines the duration of the interval between the start of two adjacent positive pulses, which may also correspond to the duration of the interval between the start of two adjacent negative pulses (i.e. desired period). It will be appreciated that the manner of defining the positive and negative pulse signals342and344are described for example purposes only and that other ways of defining the positive and negative pulse signals342and344may also be used in other embodiments.

For example, the second control signal262may be used to define the start times and stop times of the positive amplitude waveform308and the start times and stop times of the negative amplitude waveform316. These output values may be indicated within the selected set of stimulation parameters.

According to various example embodiments, the period controller260receives at least a second control signal262of the control signals outputted by the microcontroller210and controls the waveform generator270based on the second control signal262. The waveform generator270is controlled so that the generated positive and negative amplitude waveforms308and316ofFIG. 5Ais outputted as the stimulation signal based on one or both of the negative and positive pulse signals342and344. For example, the positive amplitude waveform308is outputted as the stimulation signal at durations of time corresponding to when the positive pulse signal342has a non-zero value and the negative amplitude waveform316is outputted as the stimulation signal at durations of time corresponding to when the negative pulse signal344has a non-zero value. According to at least some embodiments, the positive pulse signal342and the negative pulse signal344cannot simultaneously have non-zero values, as such a signal may be damaging to the device, for the safety of the user170.

Referring now toFIG. 5C, therein illustrated is a combination of the waveform300and waveform302of an example stimulation signal that is generated by the stimulation unit110. An overlap in time of a non-zero positive pulse signal342with a non-zero positive amplitude waveform308represents when the positive waveform308is outputted as the stimulation signal. An overlap in time of a non-zero negative pulse signal344with a non-zero negative amplitude waveform316represents when the negative waveform316is outputted as the stimulation signal.

Referring now toFIG. 5D, therein illustrated is an example stimulation signal360outputted from the waveform generator270. Due to controlling of the amplitude waveforms308and316according to one or both of the negative and positive pulse signals342and344, the generated stimulation signals appears as a pulsed signal having a time varying amplitude. The variation of the amplitude is defined by the positive and negative amplitude waveforms308and316. Whether the positive waveform308, negative waveform316, or reference value is outputted is defined by the non-zero pulses of the positive pulse signal342and negative pulse signal344. It will be appreciated that the generated stimulation signal360resembles an amplitude modulated signal wherein the amplitude waveform300is the envelope wave and the pulsed signals302acts as the carrier wave.

Referring now toFIG. 6, therein illustrated is a circuit diagram of a portion of an example signal generation submodule240aaccording to an example embodiment. The signal generation submodule240aincludes a voltage supply404that provides voltage to a voltage converter module408coupled to the voltage supply404. The voltage converter module408receives the first control signal252of the simulation control signals and converts the voltage received from the voltage supply404based on the value of the first control signal252. The signal generation module240amay be used in situations where it is required to provide a stimulation signal that only has one polarity.

According to this example embodiment, the voltage converter module408includes a DC/DC Boost voltage converter408and a variable resistor412. A feedback resistor416couples a voltage output terminal420of the DC/DC voltage converter408to a feedback terminal424of the DC/DC voltage converter408. The variable resistor412further couples the feedback terminal424to a reference428, such as ground. Due to the voltage output terminal420being coupled to the feedback terminal424, the value of the converted voltage outputted from the voltage output terminal420can be greater than the voltage from the voltage supply404. The converted voltage is based on the resistance value RFBof the feedback resistance416and the resistance value Rvarof the variable resistance412. The converted voltage420may be based on a ratio of the resistance value of the feedback resistance416and the resistance value of the variable resistance412. For example, the converted voltage may be calculated according to equation 1.

According to at least one embodiment, the first control signal252is a time varying signal and the value Rvarof the variable resistance412is varied in time according to the first signal252. Accordingly the converted voltage outputted at output terminal420also varies in time to form a waveform with a time-varying amplitude. As shown inFIG. 6, one of the positive amplitude waveform308or the negative amplitude waveform316can be outputted from the voltage conversion module.

According to at least one embodiment, the variable resistor412may be implemented as part of a digital potentiometer. The digital potentiometer412receives the first control signal252from the microcontroller210. In this case the first control signal252can be a digital signal.

Since the converted voltage outputted from the output terminal420is based on the resistance value Rvarof the variable resistor412, the first control signal252is used to define values of the resistance Rvarthat is to be set. The microcontroller210outputs a given resistance value Rvarin the first control signal252based on a desired amplitude value of the stimulation signal to be generated. For example, for a given desired amplitude value that is defined in the stimulation parameters, the microcontroller210can retrieve, from the waveform data chart, a corresponding resistance value Rvarfor adjusting the variable resistor412. Adjusting the variable resistor412to have the resistance value Rvarresults in the converted voltage outputted from output terminal420to have approximately the desired amplitude value. For example, for a range of desired amplitude values of the stimulation signal that is to be generated, the corresponding resistance values Rvarof the variable resistor412can be predetermined and stored in the waveform data chart. For example, determination of the resistance values Rvarcorresponding to different desired amplitude values of the stimulation signal can be made when designing or configuring the stimulation unit110.

Referring now to Table 1, therein illustrated is an example waveform data chart showing resistance values Rvar(in kΩ) for different values RFB(in kΩ) of the feedback resistor416and different desired voltage amplitude values. Resistance values Rvarmay be determined according to the equation

Vout=Vi⁢⁢n⁡(1+RFBRVar)
for this example embodiment.

When designing the voltage conversion module408, the resistance value RFBof the feedback resistor416may be selected based on an expected range of voltage amplitudes, the voltage of the power supply404, the range of positive resistance values of available variable resistor412and the resolution of the variable resistor412. For example, a 100 kΩ feedback resistor416is optimal for achieving voltage amplitudes in an amplitude range of 2V to 20V from a power supply supplying 3.3V and for a variable resistor having a range of possible resistance values between 0Ω and 200 kΩ. According to this configuration, if the stimulation parameters define a desired voltage amplitude of 15 V, the first control signal252will include a resistance value Rvarof 9.090909 kΩ for adjusting the variable resistor412.

It will be appreciated that adjusting of the resistance value Rvarof the variable resistor412results in an adjusting of the converted voltage420. Accordingly the amplitude controller250of the signal generation submodule240acan be implemented using the variable resistor412.

Continuing withFIG. 6, the output terminal420of the voltage converter module408is coupled to a first terminal430of a switch432. The second terminal434of the switch is coupled to a submodule output284of the signal generation submodule240a, which outputs the generated stimulation signal. For example, the output284is coupled to the contact electrodes280.

Controlling of the switch432between its open position and its closed position provides selective control of whether the converted voltage of the output terminal420is outputted at the stimulation channel output284. When a positive or negative amplitude waveform is outputted at the output terminal420of the voltage converter408, controlling of the switch432controls whether the amplitude waveform is outputted as the generated stimulation signal. Closing the switch432outputs the amplitude waveform as the generated stimulation signal. Opening the switch432creates an open circuit, and a reference value (e.g. 0V) signal is outputted as the stimulation signal at the stimulation channel output284.

The signal generation submodule240aincludes a driver module440that is a switch driver for controlling the switch432between its open and closed state. The driver module440receives the second control signal262and controls the switch432based on the value of the second signal262. As described above, the second signal262can be a pulsed wave. Accordingly, the driver module440controls the switch432to move to the closed position during a time interval corresponding to a nonzero (i.e. positive or negative) pulse. The driver module440controls the switch432to move to the open position during time intervals corresponding to when there is no pulse (i.e. the pulse value is zero). It will be appreciated that controlling the switch432in this manner results in the converted voltage from the output terminal420being outputted as the stimulation signal at the stimulation channel output284only at time intervals corresponding to a non-zero pulse in the pulse signal. As shown inFIG. 6, since only one of the positive amplitude waveform308or the negative amplitude waveform316can be outputted from the voltage conversion module408, the switch432is operable to output only one of the amplitude waveforms308,316as the stimulation signal at stimulation channel output284.

In at least some embodiments, the switch432is a MOSFET switch and the switch driver module440includes a MOSFET driver. As shown inFIG. 6, a first intermediate control signal444from the driver module440is coupled to a gate terminal of the MOSFET switch432and a second intermediate control signal448is coupled to a source terminal of the MOSFET switch432. Advantageously, use of a MOSFET switch and a MOSFET driver provide for fast switching, increased power efficiency and lower power consumption.

It will be appreciated that control signals from the switch driver module440based on the received second control signal262results in a control of when the amplitude waveform is outputted as the stimulation signal. Accordingly the period controller260of the signal generation submodule240acan be implemented using the driver module440.

According to the example embodiment shown inFIG. 6, the voltage converter is provided with only one voltage output420and only one switch. Therefore only one of the positive amplitude waveform or the negative amplitude waveform may be formed by the voltage converter module408. Also only one of the positive pulse signal342or the negative pulse signal344is received as the second control signal262at the driver module440. As a result, the stimulation signal that is outputted has only a positive component or a negative component.

Referring now toFIG. 7A, therein illustrated is a schematic diagram of an example signal generation submodule240′ capable of generating a stimulation signal having both a positive and a negative component. It will be appreciated that the embodiment ofFIG. 7Aresembles portions of the example signal generation submodule240shown inFIG. 6and has several elements repeated.

A voltage converter508is coupled to the voltage supply404. A first feedback terminal resistor416couples a positive voltage terminal420of an upper portion of the voltage convertor508to a first feedback terminal424of the voltage converter408. A first variable resistor412further couples the first feedback terminal424to a reference voltage428. The converted voltage outputted from the positive voltage terminal420corresponds to the positive amplitude signal308. The voltage converter508further includes a lower portion. A second feedback resistor516couples a negative voltage terminal520of the lower portion of the voltage converter508to a second feedback terminal524of the lower portion. A second variable resistor512further couples the second feedback terminal524to the reference voltage428. The converted voltage outputted from the negative voltage terminal520corresponds to the negative amplitude signal316.

As shown inFIG. 7A, the upper and lower portions are implemented within a single dual-boost DC/DC converter508operable to convert the supply voltage404and output two converted voltages. The value of the first converted voltage Vout+outputted at the first output terminal420is based on the resistance value RFB1of the first feedback resistor416and the resistance value Rvar1of the first variable resistance. The value of the second converted voltage Vout−outputted at the second output terminal520is based on the resistance value RFB2of the second feedback resistor516and the resistance value Rvar2of the second variable resistance512. For example, according to a suitably designed dual DC/DC voltage converter, the first converted voltage Vout+and the second converted voltage Vout−can be computed according to equations 2 and 3.

In at least some embodiments, the first variable resistor412and the second variable resistor512may be implemented as part of a dual digital potentiometer. The dual potentiometer receives the first control signal252from the microcontroller210. In this case the first control signal252can be a digital signal.

Furthermore, the first control signal252may include at least two components. For example, the two components may be sent as separate control signals. A first component of the first control signal252indicates a resistance value Rvar1for adjusting the first variable resistor412so that the converted voltage outputted at the first output terminal420has the desired positive amplitude value defined in the selected set of stimulation parameters. A second component of the first control signal252indicates a resistance value Rvar2for adjusting the second variable resistor512so that the converted voltage outputted at the second output terminal520has the desired negative amplitude value defined in the selected set of stimulation parameters. For example, the values Rvar1and Rvar2can be determined according to a waveform data chart stored in the microcontroller210.

The example signal generation submodule240′ further includes a first switch432for selectively outputting the positive amplitude waveform308through control of the switch432based on the positive pulse signal342of the second signal262received at the first driver module440. The example signal generation submodule240′ also includes a second switch532for selectively outputting the negative amplitude waveform316through control of the second switch532based on a negative pulse signal344of the second signal262received at a second driver module540. Both the first switch432and the second switch532may be MOSFET switches and both the first and second switch driver modules440and540may be MOSFET drivers. In at least some embodiments, the first driver module440and the second driver module540are implemented as part of a dual isolated MOSFET driver.

As shown inFIG. 7A, the first intermediate control signal444from the first driver module440is coupled to a gate terminal of the first MOSFET switch432and a second intermediate control signal448is coupled to a source terminal of the first MOSFET switch432. A second intermediate control signal544from the second driver module540is coupled to a gate terminal of the second MOSFET switch532and a second intermediate control signal548is coupled to a source terminal of the second MOSFET switch532. Since the negative amplitude waveform316is negative, the second output terminal520of the converter508is coupled to the source terminal of the second MOSFET switch532.

The second control signal262may include at least two components262aand262b. For example, the two components may be sent as separate control signals. A first component of the second control signal262amay include the positive pulse signal342for controlling the first switch432. A second component of the second control signal262bmay include the negative pulse signal344for controlling the second switch532. For example, the microcontroller512is enabled to generate the positive pulse signal342and the negative pulse signal344based on characteristics defined in the selected set of stimulation parameters.

The output terminal434of the first switch432(the source terminal in the case of a MOSFET switch) and the output terminal534of the second switch532(the drain terminal in the case of a MOSFET switch) may be coupled together to form a single stimulation channel output284.

In at least one embodiment, selection of which of the positive amplitude waveform308or the negative amplitude waveform316is outputted as the stimulation signal at the stimulation channel output284at a given time is made through appropriate timing of the non-zero pulses of the positive pulse signal342driving the first driver module440and the negative pulse signal344driving the second driver module540. For example, when it is desired that only one of the positive amplitude waveform308or the negative amplitude waveform316is outputted at the stimulation channel output284at a given time, only one of the positive pulse signal342and the negative pulse signal344is allowed to have a non-zero pulse at any given time.

According to at least one example embodiment, the microcontroller210may implement a finite state machine having at least an inter-pulse state, a positive state, and a negative state. Each of the states are exclusive of one another and the microcontroller210can only be in one of the states at any given time.

In the inter-pulse state, the microcontroller210outputs the second control signals262aand262bto have a positive pulse signal342having a zero value and a negative pulse signal344also having a zero value. It will be appreciated that this corresponds to the portion of pulse signals342,344between non-zero pulses. In this state, both the first switch432and the second switch532are configured to be in the open position. Accordingly, neither of the positive amplitude waveform308and the negative amplitude waveform316are output as the stimulation signal at the stimulation channel output284. The inter-pulse state can also correspond to an idle state of the stimulation unit110when a reference value (e.g. 0 V) is outputted as the stimulation signal.

In the positive state, the microcontroller210outputs a negative pulse signal344having a zero value as part of the second control signal262b. In this state, the microcontroller210is allowed to output a positive pulse signal342having a non-zero value as part of the second control signal262b. In this state, the first switch432may be controlled to move to the closed position and the second switch532is controlled to move to the open position. Consequently, the positive amplitude waveform308is outputted as the stimulation signal at the stimulation channel output284.

In the negative state, the microcontroller210outputs a positive pulse signal342having a zero value as part of the second control signal262a. In this state, the microcontroller210is allowed to output a negative pulse signal344having a non-zero value as part of the second control signal262b. In this state, the second switch532may be controlled to move to the closed position and the first switch432is controlled to move to the open position. Consequently, the negative amplitude waveform316is outputted as the stimulation signal at the stimulation channel output284.

In at least one embodiment, the finite state machine of the microcontroller210is composed of only the inter pulse state, the positive pulse state, and the negative pulse state. Limiting the finite state machine to only these three states ensures that at most one of the positive amplitude waveform308and the negative amplitude waveform316is outputted at the stimulation channel output284any given time. This is advantageous, as ensuring that only one of the positive amplitude waveform308and the negative amplitude waveform316is outputted at the stimulation channel output284at any given time guards against device overload (high current through switches432and532at the same time), which may damage one or more components of the system.

Referring now toFIG. 7B, therein illustrated is a circuit diagram of an alternate example embodiment of the signal generation module500. According to this alternate example embodiment, the first switch432is implemented as a first solid-state relay driven by a first optocoupler460and the second switch532is implemented as a second solid-state relay driven by a second optocoupler560. Advantageously, use of optocouplers460,560provides faster turn off time while reducing the number of components required.

Referring now toFIG. 8, therein illustrated is a flowchart of an example embodiment of a method600for controlling the generation of a stimulation signal for an FES system. For example, the microcontroller210of the stimulation unit110can be configured to carry out the method600.

At604, the microcontroller210outputs control signals to initialize the various elements of the signal generation submodule240. For example, the microcontroller210sends initializing signals to the voltage converter508and the potentiometer forming the voltage conversion module. The microcontroller210can further send initializing signals to the switch driver module. The initialization signals may be outputted in addition to the first control signal252and the second control signal262.

At608, the microcontroller210receives a currently selected set of stimulation parameters. The set of stimulation parameters may be pre-selected, selected according to trigger signals received at the microcontroller210from another unit of the FES system102, or received in real-time from another unit of the FES system102. The selection of the set of stimulation parameters may be intermittently updated. For example, the controller unit130may send commands and updated data to the stimulation unit110to change the current set of stimulation parameters. The current set of stimulation may also be changed by some special situation, such as different terrain or a different mode or operation, for example.

At612, the microcontroller210determines the values of the first control signal252and the second control signal262according to the characteristics defined in the selected set of stimulation parameters. For example, the values of the first control signal252and the second control signal262corresponding to the defined stimulation parameters can be retrieved from the stored waveform data chart.

At616, the first control signal252is outputted. The first control signal252is received at the voltage conversion module for generating the intermediate positive amplitude waveform308and the intermediate negative amplitude waveform316.

At620, the current state of the finite state machine of the microcontroller210is queried. If the finite state machine of the microcontroller210is in the inter pulse state, the method proceeds to624. If the finite state machine of the microcontroller210is in the positive pulse state, the method proceeds to628. If the finite state machine of the microcontroller210is in the negative pulse state, the method proceeds to632.

At624, the finite state machine of the microcontroller210is in the inter pulse state and the microcontroller210outputs the second control signal262to have a zero value in the positive pulse signal342and a zero value in the negative pulse signal344.

At628, the finite state machine of the microcontroller210is in the positive pulse state and the microcontroller210outputs a positive pulse signal342having a non-zero value in the second control signal262but is restricted from outputting a negative pulse signal344having a zero value at the same time.

At632, the finite state machine of the microcontroller210is in the negative pulse state and the microcontroller210outputs a negative pulse signal344having a non-zero value in the second control signal262but is restricted from outputting a positive pulse signal342having a zero value at the same time.

According to various example embodiments, acts616to632may be repeated to continue outputting first control signals252and second control signals262to the signal generation submodule240while the user170is using the FES system. Additionally, the method600may periodically return to acts608and612to receive updated stimulation parameters and further adjust the first control signals252and second control signals262based on the updated stimulation parameters.

A non-zero positive pulse signal342or a non-zero negative pulse signal344to output the positive amplitude waveform308and the negative amplitude waveform316may be subject to transient forces. According to various embodiments, the transient time is selected to be about 50 μs. For example, the transient time can be selected to be between 50 μs and 200 μs.

According to one example embodiment, where the voltage converter module408has a similar transient time performance, it is possible to only turn on the voltage converter module408to output the positive amplitude waveform308when the finite state machine is in the positive pulse state and to only turn on the voltage converter module408to output the negative amplitude waveform316when the finite state machine is in the negative pulse state. When the finite state machine is in the inter pulse state, the voltage converter module408is turned off. Advantageously, turning on the voltage converter module408only in the positive pulse state or negative pulse state provides for a saving in power.

According to an alternative embodiment, the opening and closing of the first switch432and second switch532may be coordinated to reduce the voltage fall time at the stimulation channel output284. Without modification to reduce fall time, when the first switch432is closed to output a positive converted voltage outputted from the first output terminal420, the voltage at the stimulation channel output284will gradually fall back to zero amplitude value. Likewise without modification to reduce fall time, when the switch532is closed to output a negative converted voltage outputted from the first output terminal420, the voltage at the stimulation channel output284will gradually fall back to zero amplitude value. The time required to reach zero amplitude value defines the voltage fall time. This time is generally constrained by the characteristics of the components connected to the stimulation channel output284, such as the switches432,532. For example, a typical voltage fall time for a MOSFET switch that is driven by a Dual, high Voltage, Isolated MOSFET Driver is on the order of several milliseconds while a typical fall time for an optocoupler is approximately 100 us or higher (ex: 80 us or higher).

Referring now toFIG. 9, therein illustrated are an example positive pulse signal waveform342, an example negative pulse signal waveform344corresponding in time, and an example waveform644outputted at the stimulation channel output284without any modifications to reduce fall time. For illustrative purposes only, the example outputted waveform644has an exaggeratedly long fall time following the end of a non-zero pulse.

Referring now toFIG. 10, therein illustrated is an example output plot at the stimulation channel output284showing the voltage fall times of a representative optocoupler when no modifications have been made to reduce fall time. It will be appreciated that a voltage fall time650from a positive outputted signal is on the order of hundreds of microseconds. Similarly, the voltage fall time652from a negative outputted signal is also on the order of hundreds of microseconds.

According to various electrical stimulation applications, a shorter rise time and/or fall time may increase precision in the stimulation signal provided to the user170, which further provides for faster and more accurate response for movement of the user170. For example, it was observed that a fall time that was less than 50 μs may be beneficial.

According to the teachings herein, to achieve a faster fall time, the first switch432may be first controlled to output at the stimulation channel output284the positive waveform308(i.e. the positive converted voltage of the first output terminal420) for a duration of a non-zero pulse of the positive pulse signal342. The second switch532may then be controlled to output at the stimulation channel output284a negative discharging pulse immediately after the first switch completes outputting the positive waveform308. That is, the negative discharging pulse is outputted during the voltage fall time of the positive pulse in the outputted positive waveform308. It was observed that outputting the negative discharging pulse in this fashion shortens the fall time of the positive pulse at the stimulation channel output284, for example, to a time of less than about 50 μs.

Similarly, the second switch532may be controlled to output at the stimulation channel output284the negative waveform316(i.e. the negative converted voltage of the second output terminal520) for a duration of the non-zero pulse of the negative pulse signal344. The first switch432may then be controlled to output at the stimulation channel output284a positive discharging pulse immediately after the second switch532completes outputting the negative waveform316. That is, the positive discharging pulse may be outputted during the voltage fall time of the negative pulse in the outputted negative waveform316.

Referring now toFIG. 11, therein illustrated are an example positive pulse waveform651with positive discharging pulses652, an example negative pulse waveform654with discharging pulses656corresponding in time, and an example waveform658outputted at the stimulation channel output284. It will be appreciated that the negative pulse waveform654includes a first negative discharging pulse656that is synchronized in time to start immediately following the end of a first non-zero pulse658of the positive pulse waveform651. The corresponding outputted pulse670has a fall time that is substantially shorter than the fall time of an outputted pulse illustrated inFIG. 9.

Similarly, the positive pulse waveform652includes a first positive discharging pulse652that is synchronized in time to start immediately following the end of a non-zero pulse672of the negative pulse waveform654. The corresponding outputted pulse676also has a fall time that is substantially shorter than the fall time of an outputted pulse illustrated inFIG. 9.

Referring now toFIG. 12, therein illustrated is an example output plot at the stimulation channel output284showing the voltage fall times of a representative optocoupler when aided by discharging pulses. It will be appreciated that a voltage fall time678is substantially shorter than the voltage fall time650illustrated inFIG. 10.

Referring now toFIG. 13, therein illustrated is an example output plot at the stimulation channel output284showing both a positive pulse680of the outputted positive waveform308and a negative pulse682of the outputted negative waveform316. It will be appreciated that the voltage fall time for both the outputted positive pulse680and outputted negative pulse682are on the order of tens of microseconds (i.e. less than 50 μs), thereby achieving increased precision. Accordingly, providing a discharging pulse of the opposite sign immediately following the completion of an outputted pulse substantially shortens the voltage fall time of the outputted pulse at the stimulation channel output284.

According to various example embodiments, the duration, or width, of a negative discharging pulse656is substantially shorter than the duration of a corresponding non-zero pulse658of the positive pulse waveform651. The duration of the negative discharging pulse656is chosen so as to avoid outputting an undesired negative pulse at the stimulation channel output284immediately following the outputting of the positive waveform308. For example, to avoid outputting the negative pulse, the duration of the negative discharging pulse656is chosen to be shorter than a fall time from the positive waveform308.

Similarly, the duration, or width, of a positive discharging pulse652is substantially shorter than the duration of a corresponding non-zero pulse672of the negative pulse waveform654. The duration of the positive discharging pulse652is chosen so as to avoid outputting an undesired positive pulse at the stimulation channel output284immediately following the outputting of the negative waveform316. For example, to avoid outputting the positive pulse, the duration of the positive discharging pulse652is chosen to be shorter than a fall time from the negative waveform316.

According to various example embodiments, the duration of a negative discharging pulse656may be chosen based on the amplitude of the positive waveform308(i.e. the converted voltage outputted from the first output terminal420) at a corresponding point in time. As described herein above, the positive converted voltage outputted from the first output terminal420is a time varying signal that may be defined by a desired amplitude u322, a rise time tt1324, a hold time tt2328, a fall time tt3332, and an idle time tt4336. The amplitude of the positive waveform at the moment of a given non-zero pulse658of the positive pulse waveform651may be different depending on whether that non-zero pulse658occurs during the rise time tt1324, a hold time tt2328, a fall time tt3332, or an idle time tt4336. Accordingly, the duration of the negative discharging pulse656corresponding in time to that non-zero positive pulse658(i.e. immediately following that non-zero positive pulse658) is chosen based on the amplitude value of the positive waveform308outputted at the time. That is, the duration of the negative discharging pulse656may be chosen based on the amplitude of the stimulation signal at a corresponding point in time. The duration of a positive discharging pulse652may be chosen in a similar manner based on the amplitude of the negative waveform316at a corresponding point in time.

According to one example embodiment, it was observed that the duration of a given negative discharge pulse656(or positive discharge pulse652) increased quadratically with an increase in the amplitude value of the positive waveform308(or negative waveform316). For example, it may be possible to calculate a suitable duration of a negative discharge pulse656(or positive discharge pulse652) based on a given amplitude value of the positive waveform308(or negative waveform316) at a corresponding point in time. An example of such a relation is shown in equation 4 and calculated and actual values are shown in Table 2.
Duration (μs)=3+Intensity2/4  (4)

TABLE 2Discharge Pulse Duration Based on Pulse IntensityIntensityCalculated Value (μs)Actual Value (μs)13.25324435.25547759.25961211715.251581919923.2523

According to one example embodiment where the stimulation parameters define characteristics of a cycle of the stimulation signal, the stimulation parameters may further define the durations of the negative discharging pulses656(or positive discharging pulses652) across the cycle of the stimulation signal. Given the amplitude values of the stimulation signal over the cycle, each negative discharging pulse656(or positive discharging pulse652) may have a duration that is defined based on an amplitude of the stimulation signal at a corresponding point in time within the cycle of the stimulation signal. For example, the durations of one or more negative discharging pulses656may be defined based on the second control signal262outputted from the microcontroller210.

For example, the second control signal262may have a first switch control signal component for controlling the first switch432. The first switch control signal component may define a duration of the interval between the start of two adjacent non-zero positive pulses (i.e. desired period), the duration of a non-zero positive pulse (i.e. desired pulse width) and a plurality of discharging pulse widths of the positive discharging pulses over the cycle of the stimulation signal. The second control signal262may further have a second switch control signal component for controlling the second switch532. The second switch control signal component may define a duration of the interval between the start of two adjacent non-zero negative pulses, the duration of a non-zero negative pulse and a plurality of discharging pulse widths of the negative discharging pulses over the cycle of the stimulation signal. The second control signal262may further define (e.g. as part of the first switch control signal or the second switch control signal) a duration of time between a non-zero positive pulse and a non-zero negative pulse (i.e. a phase offset).

According to one example embodiment, the microcontroller210may implement a finite state machine having at least a positive state, an inter-pulse positive state, a negative state and an inter-pulse negative state. Each of the states are exclusive of one another and the microcontroller210can only be in one of the states at any given time.

In the positive state, the microcontroller210outputs a positive pulse signal344having a zero value as part of the second control signal262awhich results in the output of the positive pulse signal342. In this state, the first switch432may be controlled to move to the closed position (e.g. the switch432is on) and the second switch532is controlled to move to the open position (e.g. the switch532is off). Consequently, the positive amplitude waveform308is outputted as the stimulation signal at the stimulation channel output284.

In the inter-pulse positive state, the microcontroller210flows through several sub-states. In the first sub-state, the microcontroller210outputs the second control signals262aand262bto have a positive pulse signal342having a zero value and a negative pulse signal344also having a zero value. In this first sub-state, both the first switch432and the second switch532are configured to be in the open position (e.g. the switches432and532are off). Immediately after entering the first-sub-state, the microcontroller210enters a second sub-state to output a second control signal to have a negative pulse signal344having a non-zero value, thereby outputting a negative discharging pulse. The duration of the second sub-state corresponds to a duration of the negative discharging pulse. The microcontroller210then leaves the second sub-state and enters a third sub-state to output the second control signals262aand262bto have a positive pulse signal342having a zero value and a negative pulse signal344also having a zero value.

In the negative state, the microcontroller210outputs a positive pulse signal342having a zero value and the second control signal262bto output a negative pulse signal344having a non-zero value. In this state, the first switch532may be controlled to move to the closed position (e.g. the switch532is on) and the first switch432is controlled to move to the open position (e.g. the switch432is off). Consequently, the negative amplitude waveform316is outputted as the stimulation signal at the stimulation channel output284.

In the inter-pulse negative state, the microcontroller210flows through several sub-states. In the first sub-state, the microcontroller210outputs the second control signals262aand262bto have a positive pulse signal342having a zero value and a negative pulse signal344also having a zero value. In this first sub-state, both the first switch432and the second switch532are configured to be in the open position (e.g. the switches432and532are off). Immediately after entering the first-sub-state, the microcontroller210enters a second sub-state to output a second control signal to have a positive pulse signal342having a non-zero value, thereby outputting a positive discharging pulse. The duration of the second sub-state corresponds to a duration of the positive discharging pulse. The microcontroller210then leaves the second sub-state and enters a third sub-state to output the second control signals262aand262bto have a positive pulse signal342having a zero value and a negative pulse signal344also having a zero value.

Referring now toFIG. 14therein illustrated is a flow chart of an example embodiment of a method1400for controlling the generation of a stimulation signal for an FES system. For example, the microcontroller210of the stimulation unit110can be configured to carry out the method1400. Acts604to616correspond substantially to acts604to616as described herein with reference to method600.

At620, the current state of the finite state machine of the microcontroller210is queried. If the finite state machine of the microcontroller210is in the positive state, the method proceeds to1424. If the finite state machine of the microcontroller210is in the inter pulse positive state, the method proceeds to1428. If the finite state machine of the microcontroller210is in the negative state, the method proceeds to1432. If the finite state machine of the microcontroller210is in the inter pulse negative state, the method proceeds to1436.

At1424, the finite state machine of the microcontroller210is in the positive state and the microcontroller210outputs the second control signal262to have a non-zero value in the positive pulse signal342and a zero value in the negative pulse signal344.

At1428, the finite state machine of the microcontroller210is in the first sub-state of the inter pulse positive state, and the microcontroller210outputs the second control signal262to have a zero value in the positive pulse signal342and a zero value in the negative pulse signal344. The microcontroller210then enters the second sub-state1440to output a negative pulse signal344having a non-zero value in the second control signal262to output the negative discharging pulse656but is restricted from outputting a positive pulse signal342having a non-zero value at the same time. The microcontroller210then enters the third sub-state1444to output the second control signal262to have a zero value in the positive pulse signal342and a zero value in the negative pulse signal344.

At1434, the finite state machine of the microcontroller210is in the negative state and the microcontroller210outputs the second control signal262to have a non-zero value in the negative pulse signal344and a zero value in the positive pulse signal342.

At1436, the finite state machine of the microcontroller210is in the first sub-state of the inter pulse negative state, and the microcontroller210outputs the second control signal262to have a zero value in the positive pulse signal342and a zero value in the negative pulse signal344. The microcontroller210then enters the second sub-state1448to output a positive pulse signal342having a non-zero value in the second control signal262to output the positive discharging pulse652but is restricted from outputting a negative pulse signal344having a non-zero value at the same time. The microcontroller210then enters the third sub-state1452to output the second control signal262to have a zero value in the positive pulse signal342and a zero value in the negative pulse signal344.

Referring now toFIGS. 15-1 and 15-2, therein illustrated is a circuit diagram of an example implementation of the signal generation submodule240″. According to the example implementation, the voltage converter is implemented using a dual DC/DC convertor708such as a Linear Technology LT3463 Dual Micropower DC/DC Convertor having Schottky Diodes. The dual DC/DC convertor708receives voltage from a voltage supply404and outputs a positive converted voltage, which may represent the positive amplitude waveform308at positive voltage output716. The dual DC/DC convertor708also outputs a negative converted voltage, which may represent the negative amplitude waveform316at the negative voltage output718.

The first and second variable resistors412,512are implemented using a dual potentiometer712such as Microchip MCP426X Dual SPI Digital Potentiometer with Non-Volatile Memory. A positive converted voltage output716of the dual DC/DC convertor708is coupled to a first terminal720(P1A) of the first internal potentiometer. A wiper terminal724(P1W) of the first internal potentiometer is coupled to a first feedback terminal732of the dual DC/DC convertor708. A second terminal728(P1B) of the first internal potentiometer is coupled to ground736. The internal resistance of the first internal potentiometer of the dual potentiometer712can be controlled to achieve a desired ratio of resistances. According to the selection of resistance values of intermediate resistors, the value of the converted voltage outputted at voltage output716can be calculated according to equation 5.

Vout=1.25*(1+147-R2.7+R)(5)
Equation 5 may be derived from equation 6:

Vout=Vi⁢⁢n⁡(1+RFBRVar)(6)
wherein Vinis equal to 1.25 V. RFBis equal to the resistance between the positive voltage output716and the wiper terminal724. The parameter RVaris equal to the resistance between the wiper terminal724and ground (GND). For this example embodiment, given that the resistance between the first terminal720and the second terminal728is 100 kΩ and that the resistor between the wiper terminal724and the second terminal728is equal to R (an internal variable resistance of the Potentiometer), the resistor RFBin this case is equal to 100 kΩ−R+47 kΩ (the value of the resistor R10between the positive voltage output716and the first terminal716). The parameter RVaris equal to R+2.7 kΩ (the value of the resistor R12connecting the second terminal728and GND).

Referring now to Table 3, therein illustrated is an example waveform data chart showing resistance values R for different desired voltage amplitude values. The variable resistor within the MCP426X Dual SPI Digital Potentiometer is configured using a resistor network having a resistor ladder formed of a series of equal value resistors. A desired resistance value R of the potentiometer can be achieved by selecting an appropriate number of the equal value resistors. For an 8-bit device, the resolution of the equal value resistors may be 3900. The Mcp4261-calculated values in Table 3 represent a desired number of the equal value resistors to achieve the desired value R. The Mcp4261_Real_value represents an actual selected number of equal value resistors to achieve the desired value R given the resolution of the device.

A negative converted voltage output718of the dual DC/DC convertor708is coupled to a first terminal736(P0A) of the second internal potentiometer. A wiper terminal740(P0W) of the second internal potentiometer is coupled to a second feedback terminal742of the dual DC/DC convertor708. A second terminal744(P0B) of the first internal potentiometer is coupled to a reference terminal746of the dual potentiometer708. The internal resistance of the second internal potentiometer of the dual potentiometer712can be controlled to achieve a desired ratio of resistances. The value of the negative converted voltage outputted at the negative voltage output718can be determined in a similar manner as determining the value of the positive converted voltage.

The required resistance values for controlling the dual potentiometer712are included in the first control signal252, which is received as a serial data input at an SPI port750of the dual potentiometer712. Accordingly, the microcontroller210can be configured to appropriately format the data in the first control signal252in order to be readable by the dual potentiometer712. The first control signal received at the SPI port750may include both the resistance values of the first internal potentiometer for converting the supply voltage to the positive converted voltage and the resistance value of the second internal potentiometer for converting the supply voltage to the second converted voltage.

Continuing withFIGS. 15-1 and 15-2, the positive output terminal716is coupled to a terminal of the first switch432and the negative output terminal718is coupled to a terminal of the second switch532. The first switch432and the second switch532are both MOSFET switches. The period controller260may be implemented using a Supertex HT0440 Dual, High Voltage, Isolated MOSFET Driver, for example. The MOSFET driver receives a control signal containing information for driving the first switch432at a first input terminal758. The control signal received at the first input terminal754may be the first component262aof the second control signal262that is outputted by the microcontroller210and that includes the positive pulse signal342. The MOSFET driver receives a control signal containing information for driving the second switch532at a second input terminal758. The control signal received at the second input terminal758may be the second component262bof the second control signal262that is outputted by the microcontroller210and that includes the negative pulse signal344. A first positive voltage output (A+) is coupled to a gate terminal of the MOSFET switch432and sends the first intermediate control signal444thereto. A first negative voltage output (A−) is coupled to a source terminal of the MOSFET switch432and sends the second intermediate control signal448thereto. A second positive voltage output (B+) is coupled to a gate terminal of the MOSFET switch432and sends the first intermediate control signal548thereto. A second negative voltage output (B−) is coupled to a second source terminal of the MOSFET switch532and sends the second intermediate control signal544thereto.

The source terminal of the first switch432and the drain terminal of the second switch532are coupled together and form the stimulation channel output284.

Referring now toFIGS. 16-1 and 16-2, therein illustrated is a circuit diagram of an alternate example embodiment of a signal generation module500′. According to this alternate example embodiment, the first switch432, second switch532and the period controller260is implemented as a unitary dual optocoupler760having a high-voltage Darlington output stage. For example, the dual optocoupler760may be implemented by a CPC1302 optocoupler from IXYS instead of using the HT0440 The CPC1302 is much faster than the HT0440 and therefore the CPC1302 will allow for a faster turn off time as well as a reduction in components (note that the transistors Q2and Q3shown inFIGS. 15-1 and 15-2do not need to be used in the design shown inFIGS. 16-1 and 16-2).

Further information on the functions performed by the stimulation unit110includes the following.

1. Initialize Communication with sensor unit120and the control unit130The stimulation unit110initializes the communication channels for the sensor unit120and the control unit130. The stimulation unit110may also display an error message if any error is detected during communication. For example, the error information may be: “sensor unit120xxxxxx is not ready” or “control unit130xxxxxx is not ready”. Here “xxxxxx” is the id of sensor unit120or control unit130.

2. Communication for stimulation parametersThe Date/Time setting dialog interface is displayed if there is no date/time data (for example the battery is charged after it run out). The stimulation unit110then tries to connect to the control unit130to download the stimulation parameters if there are no available stimulation parameters. The stimulation unit stops trying to communicate with the control unit130if the control unit130is not available and then displays: “Please contact your doctor to get the waveform parameters”.

3. Orthotic application history record (logging)The stimulation unit110is configured to record the parameters and date/time when the stimulation parameters are changed or adjusted. The stimulation unit110then records the time when it starts and stops generating the stimulation signal (except for self-tests). The stimulation unit110may also be configured to transfer the records to the control unit130before the storage space on the stimulation unit110is used up.

4. Output the pulses to ElectrodesThe stimulation unit110can output the stimulation signal to the electrodes and receive the trigger signals from sensor unit120. The period T may be decided by trigger signals and the amplitude u may be decided by the current amplitude setting in the stimulation unit110.

5. Self-TestThere can be various tests that are done such as, but not limited to, a) a Battery Status check; b) a Bluetooth communication channels check; c) a check for electrodes contacted situation by measuring the voltage at a test resistor when a 30 V signal is applied to the electrodes of the stimulation unit110; and d) Display error messages on the LCD screen and sound an audible alarm if a critical error is detected and possibly flashing the LEDs to indicate the error code.

6. Execute the commands from control unit130There are various commands that may be sent to the stimulation unit from the control unit130including: a) Mode Change Command to change operation to a particular mode (there may be four modes: Sleep, Training, Walking, and Test); b) Stimulation Control Command to control stimulation including various commands such as, but not limited to, stopping an output stimulation signal, starting to provide an output stimulation signal depending on the operation mode, increasing the amplitude of the stimulation signals and decreasing the amplitude of the stimulation signals pulses, for example; c) Waveform parameter setting commands that can be used to set values for various parameters such as, but not limited to, T, tt1, tt2, tt3, u, tt, t1, and t2; and d) The Date/Time setting Command to set at least one of year, month, day, hour, minute, and second.

7. Display Error MessagesThe stimulation unit110may display several error messages including error messages for the sensor unit120. Examples of the error messages include, but are not limited to: a) a battery error message such as “stimulation system110Battery is low” in which case the stimulation unit110can produce the audible alarm slowly, and “sensor unit120Battery is low” in which case the stimulation unit110can produce the audible alarm slowly; b) Bluetooth connection error messages such as “sensor unit120is not ready” in which case the stimulation unit110can produce the Audible alarm quickly, and “control unit130is not ready” in which case the stimulation unit110can produce the Audible alarm slowly; and c) electrodes are not placed properly error messages such as “Electrodes are not placed properly” in which the stimulation unit110can produce the audible alarm quickly.

Various embodiments of systems, device and methods that can be used to generate a stimulation signal for an FES system have been described here by way of example only. Various modifications and variations may be made to these example embodiments without departing from the spirit and scope of the embodiments, which is limited only by the appended claims. Also, in the various user interfaces illustrated in the figures, it will be understood that the illustrated user interface text and controls are provided as examples only and are not meant to be limiting. Other suitable user interface elements may be possible.