Abstract:
A multichannel stimulator device has a host user interface circuit for enabling a user to select a channel and easily create and display a stimulus wave signal for the selected channel and generate a data signal specifiying the channel and stimulus wave signal. The stimulator also includes a master circuit for receiving the data signal and directing it to the specified channel as a wave building instruction signal. A slave circuit associated with the channel specified receives the wave building signal and responds by generating a corresponding low power stimulus wave signal in the channel specified. Then an output circuit coupled to the slave circuit electrically isolates the low power stimulus wave signal from other channels, amplifying and converting it to a corresponding high fidelity current stimulus wave signal.

Description:
The invention relates to electrical pulse generators for stimulating biological tissue, and more particularly to a multichannel stimulator for producing controlled current pulses to be applied to animals and humans. 
     Stimulators that can deliver a controlled electrical pulse to living tissue have been found to have a number of uses for research, therapy, and rehabilitation for animals and humans. For example, when suitably applied to excite nerve fibers such pulses can mask or reduce pain from injuries, elicit sensory responses, and stimulate muscle activity not otherwise possible because of injuries. 
     One particularly promising application is for restoring muscle tone and function, such as grasping and walking, in humans paralyzed by spinal cord injuries and the like. Such muscle stimulation strong enough to elicit a coordinated limb movement is called functional electric stimulation (FES). In one type of FES, controlled current pulses are applied via a pair of surface electrodes on the patient&#39;s skin for nerve stimulation of the underlying tissue. 
     Multichannel stimulators that can deliver different, synchronized pulses to a plurality of electrode pairs at different muscle sites are particularly useful for stimulating coordinated limb movement. Such multichannel stimulators can also be used to treat a number of different patients at the same time, increasing the efficiency of staff and equipment. 
     However, there are a number of difficulties with such artificial electrical stimulation. Often it is very painful to the subject and frequently the stimulated muscles experience fatigue, reducing or even stopping their response to the electrical stimulus. This is not surprising when one considers that often the applied stimulus waveform is only a crude approximation, such as a spike or biphasic waveform, of those produced naturally in a healthy organism. Moreover, it may be that an injured organism requires a special waveform shape customized to compensate for the particular injury, etc. 
     To experiment to reduce these problems, researchers would like to experiment more freely with the custom shaping or tuning of the applied waveform and its various parameters. They would also like to have a number of channels available for this purpose. 
     Conventional stimulators are not well adapted for such experimentation to customize or tune the applied waveform. Small portable units usually have only a limited selection of predetermined, normalized waveform shapes that can be scaled in time, amplitude, and frequency of repetition. They do not enable the user to create a new shape &#34;on the fly&#34;. Moreover, their predetermined normalized waveform shapes are selected by the maker of the stimulator rather the user. 
     Larger stimulators, such as those that use a minicomputer or the like have other disappointing limitations for a user physician or therapist. Typically, they have a single central processing unit (CPU), that must divide its time between the user interface, computing waveforms for a number of channels, and coordinating the signals. As the number of channels grows, there is an increasing burden on the single CPU. Therefore, to save CPU time, such larger devices also usually rely on a limited repertoire of standardized waveforms and provide a user interface more technical than user friendly. 
     Yet a further problem arises because multichannel stimulators of whatever size must be designed to avoid leakage currents between unpaired electrodes of different channels, since such leakage produces undesirable crosstalk between channels. The conventional way to isolate each channel is for the signal produced by the stimulator to be passed through an isolation transformer before being output. However, conventional isolation transformers of reasonable price are of low fidelity, distorting and even clipping the stimulus signal. Thus, the stimulus pulses of conventional multichannel stimulators often output pulse shapes that are distorted from the ideal and difficult to shape precisely. 
     Accordingly, it is an object of the invention to provide a multichannel stimulator that enables the user great freedom to create or tune the normalized waveshape used in each channel, to adjust its parameters, and to adjust the coordination timing between the waveforms in different channels. 
     Another object of the invention is to provide a multichannel stimulator with a user-friendly interface for creating or tuning the normalized waveshape used in each channel, adjusting its parameters, and adjusting the relative timing between the waveforms in different channels. 
     Another object of the invention is to provide a multichannel computerized stimulator with both a central master processor for coordination and a separate processor for each channel to enable a large number of channels to be used without degrading overall stimulator performance. 
     Yet another object of the invention is to provide a multichannel stimulator which maintains excellent electrical isolation between different channels but also produces the stimulus signals desired by the user with high fidelity. 
     Further objects and advantages will be apparent from the following description and the accompanying drawings. 
     SUMMARY OF THE INVENTION 
     A multichannel stimulator device has a host user interface circuit for enabling a user to select a channel and easily create and display a stimulus wave signal for the selected channel and generate a data signal specifiying the channel and stimulus wave signal. The stimulator also includes a master circuit for receiving the data signal and directing it to the specified channel as a wave building instruction signal. A slave circuit associated with the channel specified receives the wave building signal and responds by generating a corresponding low power stimulus wave signal in the channel specified. Then an output circuit coupled to the slave circuit electrically isolates the low power stimulus wave signal from other channels, amplifying and converting it to a corresponding high fidelity current stimulus wave signal. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a functional block diagram of a multichannel stimulator in accordance with an embodiment of the present invention, shown coupled to a patient. 
     FIG. 2 is a graph of a typical repeating current pulse produced by the stimulator of FIG. 1 for an individual channel, showing pulse amplitude as a function of time. 
     FIG. 3 is a user interface display produced by the stimulator of FIG. 1. 
     FIG. 4 is a functional block diagram of a system master unit of the multichannel stimulator of FIG. 1. 
     FIG. 5 is a functional block diagram of one of the slave units of the multichannel stimulator of FIG. 1. 
     FIG. 6 is a functional block diagram of an isolation and amplification unit of the multichannel stimulator of FIG. 1. 
     FIG. 7 is a flowchart of a computer program used to control the system master unit of FIG. 4. 
     FIGS. 8a-8e are charts of the signal codes sent between a host computer master unit, slave unit of the stimulator of FIG. 1. 
     FIG. 9 is a flowchart of a computer program used to control one of the slave units of FIG. 5. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 is a functional block diagram of a multichannel electrical stimulator 20 in accordance with an embodiment of the present invention. Stimulator 20 is coupled to an animal or human organism, such as a patient 22, by at least one pair of electrodes 24a and 24b making electrical contact with the patient. 
     While stimulator 20 may be operated open loop, if feedback is desired, sensors 26 and 28, such as position, pressure, or motion sensors for monitoring muscle movements, can be attached to patient 22 or her limbs. Sensor 30 represents another form of feedback sensor, such as an electric eye which measures a position of patient 22 or her limbs without necessarily being attached to the patient. 
     If the user, generally a physician or therapist separate from the patient, wishes to make adjustments to the electrical pulses from stimulator 22, a suitably programmed host microcomputer 32 including a display, such as a Macintosh or IBM PC, can be provided as user friendly interface. That is, the host microcomputer 32, which has its own processor, memory, and display, can be programmed to provide status information to the user and to accept and echo back user input selections. 
     The stimulus signals are produced by a system unit 34 which can be coupled for two-way signal communication with host computer 32, such as by a two-way RS-232 serial interface 36. Generally, Macintosh or PC microcomputer host 32, will come standard with or can easily be adapted to have a two-way RS-232 serial port (not shown). Therefore, in system unit 34 a matching RS232 serial port may also be provided, the serial ports respectively on host 32 and system unit 34 being wired together by a null modem cable or the like to form interface 36. Two-way interface 36 enables selections or commands entered by the user on the host microcomputer 32 to be transmitted to system unit 34, and also enables system unit 34 to report status or feedback to the user via host 32. A serial communication speed of 300 bits/sec, or greater, will generally be sufficient for this purpose. 
     System unit 34 includes a microprocessor-based system master unit 38 coupled by a system bus 46 to a number of microprocessor-based slave units or boards 40, one slave for each channel. Each slave unit 40 in turn is coupled by a connection 42 to a corresponding isolation and amplification unit 42. Each unit 44 amplifies the channel signal it receives, producing a current pulse of like shape at an output for a corresponding pair of patient electrodes 24a, 24b. 
     For simplicity, only of the units 42 is shown coupled to a pair of electrodes 24a, 24b which are in turn electrically coupled to patient 22. However, it is to be understood that when the unit 42 of each channel is used, a corresponding different pair of electrodes 24a, 24b for that channel are wired to the unit 42 and then electrically coupled to the patient. 
     System master unit 38 is coupled to serial interface 36 to receive user selected commands from host computer 32 and send the host computer status or feedback information for display to the user. In response to the user commands, System master unit 38 also sends commands and data to the appropriate slave unit, instructing it what signal shape to generate for the channel and coordinating the relative timing between the stimulus signals in the various channels by STOP, START, and GAIN commands. 
     FIG. 2 shows an example of the general type of stimulus signals to be produced in each channel by its corresponding slave unit 40. The output of a slave unit 40 of FIG. 1 is a voltage signal of the desired shape, which is converted to an appropriate current pulse by the corresponding isolation and amplification unit 42. 
     In the embodiment of FIG. 1, both master unit 38 and each slave unit 40 use a processor equivalent to the Intel 8088, such as an NEC V20 chip, though other suitable processors may be used. Thus, one microprocessor (in master 38) determines and communicates what signal will be generated in each channel, and a second microprocessor (in each slave 40) actually digitally generates the specified stimulus signal for that channel. The digital signal generated by a slave 40 is afterwards converted to analog by a suitable digital-to-analog converter (DAC), for example one included in slave unit 40. 
     The stimulator can be operated &#34;open loop&#34;, that is, without feedback indicated how the patient is affected. However, if feedback is desired, the output from one or more patient monitoring sensors 26, 28 and 30 can be coupled to a feedback unit or board 48, which in turn is coupled to master unit 38 by system bus 46. Feedback unit 48 amplifies and interprets the feedback signals from the sensors for feedback to master unit 38 by means of polling or interrupts. Master unit 38 or the user (receiving the feedback via host computer 32) can then adjust the applied stimulus in response to the feedback information. 
     FIG. 2 shows the amplitude of a typical signal 60 generated by a slave unit 40 as a function of time. One repetition of signal 60 includes a burst portion 62 and an interwave delay 64, after which the signal may be repeated if desired as shown. Burst portion 62 in turn includes one or more repeats of a waveform 66 selected or designed by the user. By means of the user interface of host microcomputer 32, the user can determine: 
     (a) the normalized shape of waveform 66, by specifying the amplitude (quantized to 256 levels) at 50 equally spaced points along the waveform 
     (b) the duration T of waveform 66 (by specifying a &#34;frequency&#34; in Hz=1/T); typically in a range of 0.2 ms to 0.5 sec 
     (b) the gain applied to scale the waveform of (a); typically to produce an output at slave unit 40 of a maximum of +10 volts to -10 volts, which drives the output of isolation and amplification unit 42 to a maximum of +100 ma to -100 ma 
     (b) the number of times N that waveform 66 appears in the burst 62; typically 1-65,536 (64K), though 1-100 is usually the range selected by users 
     (c) the duration of interwave delay 64; typically 0-100 ms 
     FIG. 3 illustrates a typical user interface display 70 produced by the stimulator of FIG. 1. This can be produced by programming host computer 32 in any convenient programming language for that machine. Appendix 1 to this application is a source program listing that shows how this can be done in a high level language for a Macintosh microcomputer, such as Microsoft Basic. The display only shows four active stimulus channels, but in fact the stimulator is constructed to easily accommodate up to 256 different channels. If more channels are used, the display can be switched between them by the user or &#34;windows&#34; opened in the display to view a desired channel. 
     In the display of FIG. 3, the stimulus signals 60 (see FIG. 2) produced by the corresponding slave 40 of channels 1-4 are shown at the right in corresponding boxes 72, 74, 76 and 78. As is well known, if a Macintosh microcomputer is used the standard interface will include a &#34;mouse&#34; cursor control or pointing device (not shown) moved by the user&#39;s hand to move a corresponding cursor in the display 70, such as cursor arrow 71. The mouse also has at least one pushbutton that the user can push or &#34;click&#34; (rapidly push and release) to select objects covered or pointed to by cursor arrow 71. 
     In display 70, if a channel (1, 2, 3 or 4) is active a corresponding dot on the display (80, 82, 84, 86) is black, inactive having a blank dot. Thus, in display 70 channels 1-3 are shown active, while channel 4 is inactive. To adjust the stimulus signal on a channel 1, 2, 3 or 4 the user clicks the mouse over a corresponding interaction box 80a, 82a, 84a, 86a, which then changes from blank to an &#34;X&#34;. Only one channel can be activated at a time for adjustment by the user. In display 70 this is channel 1. The user then selects which signal parameter is to be adjusted by clicking on its designation. 
     For example, to alter the period T of the normalized waveform 66 (see FIG. 2) repeated in the burst portion 62, the user can click on the designation 90 &#34;-1/T=Hz&#34;. This display shows that 1/T=1000 Hz (or T=1 ms). If she clicks on this item, a keyboard (not shown) of the host computer 32 will allow her to key in a change for the reading &#34;1000&#34;. Similarly there are designations and readings for [Timeform] CYCLES 92, [Interwave] DELAY 64, % TForm 96, and [Manually Selected] Amplitude 98. 
     In addition having the corresponding slave build a repeating waveform 60 of the type shown in FIG. 2, host computer 32 can send a series of GAIN commands to the slave via master unit 38 so that the gain of the stimulus signal on selected channel will vary slowly (relative to one repetition of signal 60). For this control of the stimulus is shown for each channel in the corresponding elongated rectangles 81, 83, 85 and 87, each of which has a corresponding amplitude vs. time plot (TIME FORM or TFORM) 81a, 83a, 85a, 87a. Box 72 shows the stimulus signal being produced in channel 1, which has two 1 ms bipolar pulses per burst followed by a 18 ms delay; this indicates that the signal has a 20 ms (1+1+18) duration and is being repeated about 50 times/sec. Elongated rectangle 81 shows how the gain of this signal will vary on subsequent repetitions, from 0 to a peak after about 10 seconds, and then back to 0 after about 5 more seconds. The designation &#34;TFDUR&#34; at 106 has a reading of 28, which means that TIME FORM 81a takes 28 seconds from start to finish. The designation &#34;TH&#34; at 108 can be used to set a floor (or threshold) below which the GAIN of the TIME FORM will not be allowed to fall if desired. For example, if TH=10%, the signal of box 72 will be reduced at most to 10% of full signal strength, guaranteeing that it is continuously present and repeating. 
     Display 70 also has designations to start the Time Form (START 100) and stop it (STOP), to make the TIME FORM repeat automatically (CYCLIC) rather just appear once, to limit the maximum gain of the TIME FORM to some percentage (%TFORM 96) or for manual control of the GAIN of the waveforms of boxes 72, 74, 76 and 78. 
     If the user clicks on the WAVEFORM designation 112, a file containing the set of data for a desired normalized waveform can be selected from a menu (not shown) of those waveform files already stored on the disk drive of host computer 32, and the waveform displayed. From this menu the user can also modify and save to disk an existing normalized waveform or construct a new one entirely by indicating its shape with the mouse. The TIMEFORM designation 114 works similarly for retrieving modifying and creating TIME FORMS, while a FEEDBACK 115 choice allows the user to designate how host computer 32 should handle the feedback information from feedback board 48. 
     FIG. 4 is a functional block diagram of a system master unit 38 of the multichannel stimulator of FIG. 1. A microprocessor 120 has a clock 122 having crystal 124. In the preferred embodiment, microprocessor 120 is an equivalent of the popular 16 bit Intel 8088 microprocessor having an 8 bit data bus addressable by up to 20 address lines. For example, processor 120 can be an NEC V20 running at 6.66 MHz. Processor 120 has an address and data bus 126 al]owing for 11 address bits and 8 data bits and a control bus 128. Buses 126 and 128 bidirectionally couple processor 120 to a ROM or EPROM 130 (for program storage) and a fast static RAM 136 for scratchpad memory. 
     As an example of the master unit program for microprocessor 120 stored in ROM 130, please refer to Appendix 2 to this application. Appendix 2 is a source program listing in assembly language for the Intel 8088, this particular assembly listing was prepared for a Universal Cross-Assembler used on a Digital Equipment VAX system. 
     Bus 126 also couples processor 120 to a UART 8251, supplying a serial port 36a for the serial interface 36 shown in FIG. 1. Processor 120 polls the serial port to deterine if host computer has sent it any instructions or data. FIG. 8 shows the form of the host to master signal codes and Table 1 lists typical values for them. 
     
                                           TABLE 1__________________________________________________________________________OPERATION CODES AND CORRESPONDING DATA BYTES     OP CODE           OP CODE NUMBER OF DATA                               MEANING OFOP NAME   (IN HEX)           (IN BINARY)                   BYTES FOLLOWING                               DATA BYTES__________________________________________________________________________START     00h   0000    0FREQ (1/T)     01h   0001    2           MSB, LSBNO. OF CYCLES     02h   0010    2           MSB, LSBDELAY COUNT     03h   0011    2           MSB, LSBWAVE SHAPE     04h   0100    50          00h = -2.5 V                               80h = 0 V                               FFh = +2.5 VGAIN      05h   0101    1           00h = -MAX                               80h = 0                               FFh = +MAXRESET     06h   0110    1           DATA BYTEAUTOTEST  07h   0111    1           DATA BYTESEND DATA 08h   1000    1           DATA BYTESTOP      OFh   1111    0__________________________________________________________________________ 
    
     Scratchpad RAM 134 can be realized by a 256 byte Intel 8155 memory chip which includes for convenience two eight bit I/O ports addressable by microprocessor 120. These two ports can be used to enable the microprocessor send or receive 16 bits of information on system bus 46, which is a 16 bit bus (8 address bits, 8 data bits). 
     Program-storing ROM 134 can be realized by a two kilobyte Intel 8755 memory chip which includes for convenience an eight bit I/O port addressable by microprocessor 120 This port can be used to enable the microprocessor send or receive 8 bits of data to an 8 segment display 121. Display 131 is optional, but if the display is provided the program of Appendix 2 has microprocessor 120 indicate status and progress information for monitoring, checking, and debugging the stimulator. 
     FIG. 5 is a functional block diagram of a slave unit 40 of the multichannel stimulator of FIG. 1. A microprocessor 164 has a clock 142 having crystal 144. In the preferred embodiment, microprocessor 140 is also a NEC V20 running at 6.66 MHz. Therefore, processor 140 has an address and data bus 146 allowing for 11 address bits and 8 data bits and a control bus 148. Buses 146 and 148 bidirectionally couple processor 140 to a ROM or EPROM 150 (for program storage) and a fast static RAM 154 for scratchpad memory. 
     As an example of the slave unit program for microprocessor 140 stored in ROM 150, please refer to Appendix 3 to this application. Appendix 3 is a source program listing in assembly language for the Intel 8088. 
     Scratchpad RAM 154 can be realized by a 256 byte Intel 8155 memory chip which includes for convenience two eight bit I/O ports addressable by microprocessor 140. One of these ports can be used to enable microprocessor 140 to receive 8 data bits of information from system bus 46, which is a 16 bit bus (8 address bits, 8 data bits). The other port can couple processor 140 to an optional 8 segment single character display for debugging, etc. 
     Master unit 38 can send a particular slave 40 a wave-specifying command or data for its channel by putting an 8 bit data word on system bus 46 and then placing a prespecified eight bit binary address (e.g. channel 1=0000 0001, channel 2=0000 0010, etc.) on the system bus. Each slave unit 40 includes a comparator 162 which stores the slave&#39;s address code and compares it with the address on system bus 40; when there is a match comparator 162 sends a nonmaskable interrupt 164 to microprocessor 120, which branches to an interrupt routine for reading the data bits on bus 46 via the 8 bit port on board RAM chip 154. FIG. 8 shows the form of the master to host signal codes and Table 1 lists typical values for them. 
     Program-storing ROM 150 can be realized by a two kilobyte Intel 8755 memory chip which includes for convenience two eight bit I/O ports addressable by microprocessor 140. These ports can be used to enable microprocessor 140 to send 8 bit data words respectively to a waveform digital-to-analog converter (DAC) 166 and a gain DAC 170. The DAC&#39;s 166 and 170 are respectively coupled X2 and X1 inputs of a multiplier 168 to produce the output signal voltage of the slave. 
     Thus, microprocessor 140 in slave 40 digitally generates by means of the program of Appendix 3 a series of waveform signal levels according to data from the master unit 38 specifying the normalized a wave shape (50 points), burst number, frequency (=1/T), and interburst delay. From this data and the program it produces the digitalized amplitudes for the stimulus wave, sending them to DAC 166. Similarly, master unit 38 has also specified the instantaneous overall GAIN to be used by the slave, and this is output to DAC 170. The respective analog outputs from DAC&#39;s 166 and 177 are multiplied by multiplier 168 to give the desired amplitude of the waveform as a function of time. 
     FIG. 6 is a functional block diagram of an isolation and amplification unit 42 of the multichannel stimulator of FIG. 1. There is an input side 178 and an electrically isolated side 179. A conventional power isolation transformer receives AC input power 181 at its primary winding and produces an isolated power supply at its secondary winding. The power signal is rectified on the isolation side by power supplies 184 and 188 to produce DC power for the components on the isolation side and therefore distortion of the input AC power waveform is not of concern. 
     However, at 44 a carefully formed stimulus signal 60 is received at the input side 178 from a corresponding slave unit 40. Signal 44 is transferred without distortion to the isolated side 179 as signal 44&#39; by means of an inexpensive ($2) TRW 6N135 optical signal isolator, basically an optical transmitter and receiver pair. Signal 44&#39; is analog conditioned (such as removal of any bias needed to utilize the optical isolator 185) and then feed to a very linear power amplifier 190, such as an APEX PA08 (costing about $100), which can produce peak currents of about 100 ma. In practice it is found that the circuit of FIG. 6 can be produced for only about $150/unit. It has excellent electrical isolation at side 179 and the signal waveform of the output current 190A produced by amplifier 190 is a very high fidelity reproduction of the signal waveform of the stimulus input signal voltage 44 as the current ouptput 190A . 
     FIG. 7 is a flowchart of a computer program used to control the system master unit of FIG. 4 and FIG. 9 is a flowchart of a computer program used to control one of the slave units of FIG. 5. 
     Thus, there has been shown a novel multichannel stimulator enabling tuned stimulation with high fidelity stimulus waveforms controllable by means of a user-friendly interface. It is to be understood that various changes and modifications, and subsitutions in the form and details of the invention may be made by those skilled in the art without departing from the scope of the following claims. ##SPC1##