(58)【調査した分野】(Int.Cl.,DB名)
刺激イベントを制御するために用いられる1又は複数のレジスタは、DMAコントローラーとメモリを含むマイクロコントローラーユニット(MCU)の入力/出力ポートに対応する、請求項1〜4のいずれか一項に記載の埋め込み型刺激システム。
刺激イベントを制御するために用いられる1又は複数のレジスタが、DMAコントローラーを含むマイクロコントローラーユニット(MCU)の入力/出力ポートに対応する、請求項13又は14に記載の方法。
【発明を実施するための形態】
【0018】
本発明の実施例による神経刺激システムが
図1に示されている。本実施例において、システム110は埋め込み型神経刺激装置(INS)112を含み、埋め込み型パルス発生器(IPG)と時折称されることもある。INS112は、典型的には、患者の体内の皮下ポケットに埋め込まれる。一または複数の導線114は、INS112に接続されており、各導線には一つまたは複数の電極116を有している。例えば、4本の導線114がINS112に接続されることができ、各導線には4個の電極116が含まれている。あるいは、多くのまたは少ない電極付きの、多くのまたは少ない本数の導線を使用してもよい。INS112は、ハウジング113(ケースまたはカンと称することがある)内に収容された電子回路118を備えている。電極116は、INS112のコネクタ120に導線114を接続することにより、電子回路118に電気的に接続されている。これに限定するものではなく、一つまたは複数の導線114は、電極が背根または背根の神経節の上または近傍に配置されるように位置決めすることができる。このような刺激に関するさらなる詳細は、米国特許番号7,450,993, 発明の名称「神経節への選択的刺激法」や、米国特許出願番号12/607,009, 発明の名称「医学的条件に対する選択的刺激システムと信号パラメータ」に提供されており、いずれも本書に含まれる。
【0019】
電子回路118は、電気的に刺激信号(神経刺激信号、神経刺激波形、また単に刺激信号と呼ぶことがある)を発生させ、少なくとも電極の1つは陽極に接続されており、少なくとも電極の一つは陰極に接続されている、少なくとも2つの電極116を介して神経組織へ提供するために用いることができる。INS112のハウジング113は、電導性であり、電極として作動することができる。外部のプログラマー122又は126は、様々な刺激パラメータ及び/又は電子回路118への他の指示をプログラムするために使用することができる。プログラマーには、プロセッサー(または他のタイプのコントローラー)、および一つまたは複数のコードモジュールを保存することができるメモリが含まれる。プロセッサーまたは他のコントローラーは、プログラムのプロトコル中の患者からのフィードバックにもとづき、INS112のプログラミングを行うために、一つまたは複数のコードモジュールを実行することができる。例えば、外部のプログラマー122又は126は、特定の神経刺激パラメータをテストしたり、あるパラメータを調整したり、及び/又は、慢性的な痛みの処置のためにINSで用いられるパラメータをプログラムするために、INS112に指示を伝達することができる。外部のプログラマー122又は126は、ラジオ周波数または他のワイヤレス信号により電子回路118と通信できる遠隔測定装置を保有していてもよい(または結合されていても良い)。遠隔測定装置がプログラマーの内部又は結合されているかにかかわらず、プログラマーは遠隔測定回路を含んでいても良い。INS112には、同様に、INSのメモリに保存されたコードモジュールを実行することができるプロセッサー(または他のタイプのコントローラー)を含んでいてもよい。
【0020】
一般に二つのタイプのプログラマーがあるが、いずれもINS112とワイヤレスで通信及び操作可能である。ブロック122で表示されたプログラマーは、「臨床医プログラマー」としばしば言及されることがあるが、INSの製造メーカの代表者、臨床医、内科医及び/又は医療関係者(これらを総称して「プログラミング関係者」と称する)によって使用することができる。ブロック126は、他のタイプのプログラマーを表示しており、INS112が埋め込まれた患者により主に制御されるものであり、「患者プログラマー」としばしば言及される。
【0021】
神経刺激(単に刺激と称することがある)を特定の導線を使用してどのように伝達されるかを規定する刺激パラメータのセットは、このセットが導線を介して患者に伝達される刺激療法を決めることになることから「導線セット」と称することができる。一つ又は複数の導線セットが、刺激パラメータのセットのグループにともにグループ化され、これを「シミュレーションセット」と称することができる。刺激パラメータの一つのセット(すなわち、導線セット)は、患者の体内患部に処置を施すために有益であり、刺激パラメータの第2のセット(すなわち、第2の導線セット)は、体内の第2の位置における条件を処置するときに有益である。もしこれらの導線セットが同じ刺激セットにグループ化されている場合、その刺激セットが選択されていると、体内の第1の位置と第2の位置に刺激が伝達される。同じ刺激セットにグループ化された一つ以上の導線セットが、体の共通の位置に処置を施すことができるようにすることも可能である。
【0022】
各導線セットのデータには、導線情報、電極構成情報および刺激波形情報が含まれる。より詳細に実施例では、各導線セットは、導線の一つ、導線の複数の電極(例えば、4電極)がどのように構成(すなわち、陽極、陰極または不活性電極)を特定し、また、その導線を用いて伝達される刺激波形の大きさ、パルス幅および繰返比率を特定する。実施例では、各刺激セット用のデータは、一つまたは複数の導線セット(例えば、4つの導線セットまで)のどのセットが、刺激セットに含まれるかを特定する。例えば、12個の導線セット(すなわち、導線セット1、導線セット2、…導線セット12)があるとき、1つの刺激セットは導線セット2、導線セット5、導線セット7および導線セット11を含むことができる。その刺激セットが選択され/活性化されている期間の間、刺激は4つのすべての導線(その時間内に刺激が複数の導線の一つを通じてのみ伝達されてもよいが)を用いて伝達される。一つ以上の導線セットが同じ導線(すなわち、同じ導線情報を有することができる)を特定することができ、また、異なる電極構成情報及び/又は異なる刺激波形情報を有することができる。例えば、導線セット1、導線セット2および導線セット3は、同じ導線を用いて刺激が伝達される異なる方法を明記することができる。いくつかの実施例では、同じ導線を特定する二つの導線セットが同じ刺激セットにグループ化することはできない。
【0023】
実施例によれば、外部プログラマー(例えば、臨床医プログラマー122)は、ワイヤレスで複数の導線セット(例えば、12導線セットまで)用の情報と刺激セット(例えば、4つの刺激セットまで)用の情報をINS112に送信する。一つまたは複数の導線セット用のデータは、導線セットデータと称することがあり、また、一つまたは複数の刺激セット用のデータは、神経セットデータと称することがある。より一般的に、外部プログラマーからINS112に伝達されるデータは、INSにより用いられ刺激信号を発生するが、神経刺激データと称することがある。そのような神経刺激データは、導線セットデータと神経セットデータを含むことができるが、これに限定するものではない。いいかえれば、上記に説明した以外の方法により、INSに伝達される神経刺激に関する情報をまとめることが可能であり、そのような他の方法により、神経刺激データを発生して用いることができ、これらのものは本発明の範囲に含まれるものである。それにもかかわらず、この説明の残りの部分では、外部プログラマー122または126が、複数の導線セット(例えば、12導線セットまで)と複数の刺激セット(例えば、4つの刺激セットまで)をINS112へプログラムするために用いられるものとする。
【0024】
INS112が、導線セットデータと刺激セットデータを外部プログラマーから受領すると、INS112は、不揮発性メモリ(例えば、フラッシュ)(これに限定するものではないが)のようなメモリ(例えば、320)の一部に導線セットデータと刺激セットデータを保存する。また、メモリ(例えば、320)には、どの刺激セットが現在、活性化/選択されているかを示す、電流刺激セットのパラメータが保存される。INS112により神経刺激信号を生成するために使用される神経刺激データ(例えば、導線セットデータや刺激セットデータ)がどのようにINS112に保存されるかに関する詳細は、以下の通り提供される。
【0025】
電子回路118(Electronic Circuitry 118)
図2は、本発明の実施例において、INS112の電子回路118の詳細を示すために用いられる。
図2において、INS112には、マイクロコントローラーユニット(MCU)210、電力管理回路220、充電駆動回路230、刺激駆動回路240、測定回路250および遠隔測定回路260が含まれている。MCU210は、中央処理装置(CPU)を含んでいるが、例えば、以下、
図3と
図4にてさらなる詳細が記載されているように、INSの多くの機能を制御することができる。
【0026】
電力管理回路220は、バッテリー222に接続するように図示されており、様々な他の回路に電力を供給するため、適切な電圧及び/又は電流レベルを発生するように用いられる。従って、電力管理回路220は、これに限定されるのではないが、昇圧形及び/又は降圧形コンバータのような、DC−DC変換器(DC-DCコンバータ)を含むことができる。さらに、またはその代わりに、電力管理回路220は、他のタイプの電圧発生器を含むことができる。電力管理回路220は、バッテリー222を交換したり再充電が必要となったときに、患者及び/又は医療関係者に知らせるため、バッテリー222の残量バッテリー寿命をモニターすることもできる。
【0027】
図1や
図2に示されてはいないが、INS112は、患者の組織に刺激を伝えるために用いられる治療出力コンデンサに保存されている充電を維持、調整及び/又は制御するための制御コンデンサを含むことができる。充電駆動回路230は、そのような制御コンデンサを含むことができ、また充電するために用いることができる。充電駆動回路230は、また、適切な充電に維持、及び/又は、必要に応じて変化されることを確保するために、治療出力コンデンサに保存されている電圧をサンプリングするために用いることができる。充電駆動回路230の代表的なものの詳細が、
図4Aに図示されており、記載されている。
【0028】
刺激駆動回路240は、一つまたは複数の導線114に電気的に接続されているように図示されており、各導線は少なくとも2つの電極116が含んでいる。これからの説明では、他に述べられていない限り、埋込型システム110は、4本の導線を有し、各導線は4つの電極を含んでいる。しかしながら、本発明の範囲内において、多くのまたは少ない導線、また多くのまたは少ない電極も可能である。刺激駆動回路240では、特定の導線を選択し、選択された導線の電極を構成することができる。刺激駆動回路240の代表的なものの詳細は、
図4Bに図示されており、記載されている。
【0029】
遠隔測定回路250は、例えば、導線のインピーダンス、導線の出力電流、導線の出力電圧、バッテリーの電圧、バッテリーの電流、これらに限定されるものではないが、を測定するために用いられることができる。
【0030】
遠隔測定回路260は、アンテナ262は、例えば同軸ケーブル又は他の通信線により電気的に接続された無線周波数(RF)送受信機であってもよい。遠隔測定回路260は、臨床医プログラマー及び/又は患者プログラマー(例えば、122及び/又は126)の遠隔送受信機との間でアンテナ262を介して信号を送受信するための周知の回路を含むことができる。
【0031】
以下にさらに詳細が記載されているとおり、電子回路118は、神経刺激信号を発生させ、また、選択された導線の選択された電極に刺激エネルギを結びつけるために、スイッチ(電子回路118のスイッチ)を制御することができる。刺激パルスは、メモリ(例えば、
図3のメモリ320)に保存された神経刺激データにより特定されたパラメータに従って発生される。上述したように、特定することができる代表的なプログラム可能なパラメータは、神経刺激用波形(神経刺激信号としても知られている)のための、パルスの大きさ、パルス幅およびパルス比率(繰返比率や周波数としても知られている)を含んでいる。さらに、電子回路118は、刺激の伝達をおこなうための異なる電極構成を選択するために、スイッチを制御することができる。
【0032】
MCU210
図3は、本発明の実施例で用いられるマイクロコントローラーユニット(MCU)210の代表的な構成要素を図示しており、例えば、これに限定されるものではないが、患者の脊髄にまたはその近傍に、またはその部分に、伝達される刺激を制御し、また例えばこれに限定されるものではないが背根または背根神経節の刺激を制御する。
図3を参照すると、MCU210には、アドレスバス312とデータバス314に接続された中央処理装置(CPU)310が含まれている。アドレスバス312は、24ビットバスとできるが、これに限定されるものではない。データバスは、16ビットバスとできるが、これに限定されるものではない。また、アドレスバス312とデータバス314に接続されているのが、メモリ320、ダイレクトメモリアクセス(DMA)コントローラー330、タイマー340、及び入力/出力(I/O)ポート350である。DMAコントローラーは、しばしばデータ転送コントローラーと称されることがある。また、
図3で示されるように、CPU310やMCUの他の構成要素、及び/又は電子回路118の他の構成要素に提供される異なる周波数を有するクロック信号を発生させることができるクロックシステムが360設けられている。さらに、電力制御器370は、CPU310が低出力モードに入るときに制御を行い、及び/又は、クロックシステム360のある部分を(電力を節約するために)少なくとも部分的にいつどのように不作動にするかを制御することができる。電力制御器370は、電力管理モジュール(PMM)とも称されることがある。
【0033】
メモリ320は、これらに限定するものではないが、RAM、ROM、NVRAM、EEPROM、フラッシュメモリ等を含む揮発性及び/又は不揮発性メモリでよい。
図5に示すとおり、メモリ320は、多数のテーブルのデータを保存することができる。このようなテーブルは、例えば、コードモジュールに保存された指示にもとづき、また外部プログラマーから受領した神経刺激データにもとづき、CPU310により作成される。さらに、
図5に示されるように、テーブルがCPU310により作成され、メモリ320に保存された後は、DMAコントローラー330が、CPU310の干渉なしに、あったとしても極めて少なく、テーブルからタイマー340や入力/出力ポート350の1つにデータを転送することができる。
【0034】
図2で示されるすべての構成要素を1つのMCU内に有する長所は、このようなすべての要素が単一の集積回路(IC)チップによりまかなうことができる点にある。それにもかかわらず、
図3で示された構成要素のすべてまたはある部分がMCUチップに配置されていないものであっても、本発明の範囲内のものである。例えば、CPU310が一つのチップに備えられ、DMAコントローラー340が他のチップに備えられてもよい。
【0035】
本発明の特定の実施例によれば、少なくともいくつかの入力/出力(I/O)ポート350は、出力ポート(入力ポートに相対する)と構成されており、刺激制御のために使用されており、これらのポートは、刺激制御ポート350と称されることもできる。このような実施例では、一つまたは多くのレジスタ、またはその部分は、I/Oポートと関連づけられ、I/Oポートに接続された回路を制御するために使用されるビット(すなわち、高または低ロジックレベルのビット)を保存する。I/Oポートに接続されることができる(これにより、ポートに書かれるビットにより制御される)回路の例には、充電制御駆動回路230や刺激駆動回路240が含まれても良いが、これらに限定するものではない。
【0036】
上記に説明した通り、クロックシステム360は、CPU310やMCU210の他の構成要素に提供される、異なる周波数を有するクロック信号を発生する。例えば、クロックシステム360は、比較的高い周波数(例えば、100kHz)のクロック信号を発生するメインクロック回路362を有している。クロックシステム360は、比較的低い周波数(例えば、32.768kHz)のクロック信号を発生する副クロック回路364を有しており、これによりメインクロック回路362よりも少ない電力を消費する。メインクロック回路により発生した高周波数のクロック信号は、例えば、CPUができるだけ速く演算される処理を実行しているときに、CPU310により使用されている。電力を節約するため、メインクロック回路362は、適当なときは少なくとも部分的に不作動とされ、一方、副クロック回路364により発生された低周波数のクロック信号が、例えば、時間を維持するためのタスクや、低周波数のクロック信号の使用が性能をそこなわないタスクを行うために用いられている。電力を節約するために、低周波数のクロック信号が必要とされないときは、副クロック回路364を少なくとも部分的に無不作動にしておくことも可能である。電力制御器370は、電力管理モジュール(PMM)と称されることがあるが、クロック回路の部分的な不作動を制御することができる。
【0037】
メモリ320、DMAコントローラー330、タイマー340および刺激制御ポート350についてのさらなる詳細は、
図5に記載されている。しかしながら、本実施例における充電駆動回路230、刺激制御回路240については、先に
図4Aと
図4Bにもとづいて記述されている。
【0038】
充電駆動230(Charge Engine 230)
充電駆動回路230(単に充電駆動と称することもある)の代表的な例の詳細は、
図4Aに記載されている。
図4Aにおいて、充電駆動は、複数(本実施例では、4個)のデジタル−アナログ変換器(DACs)414を含んで示され、各デジタル−アナログ変換器(DACs)は対応するレジスタ412により駆動される。実施例では、レジスタ412の各々は、導線を介して伝達するための二相性パルスの各フェーズの大きさを規定するために使用されるデジタル振幅値を保存する。二相性パルスの例は、
図6に示されている。
【0039】
レジスタ412に保存されるデジタル振幅値は、臨床医プログラマー122により特定される導線セット情報により規定することができ、患者プログラマー126とのユーザインターフェース(例えば、アップ/ダウン・ボタン等)を用いて後で調整することができる。以下に説明するとおり、例えば、刺激セットが活性化/選択されること(例えば、メモリに保存された電流刺激セットのパラメータによる特定)にもとづき、CPU310は振幅値を振幅レジスタ412に書き込む。
【0040】
図4Aにおいて、L1振幅レジスタ412、Cont.DAC1 414および対応するサンプルホールド(S/H)回路416は、第1の充電制御チャンネルと考えることができる。したがって、
図4Aでは、導線L1,L2,L3およびL4の4つの充電制御チャンネルが図示されている。
【0041】
使用可能になると、各DAC414は、対応するレジスタ412によりDACの入力に提供されるデジタル値に比例するアナログ出力電圧を発生させる。各DACの出力には、DACを下流にある回路と隔離させるためのバッファー416が配置されている。充電制御ビットのサンプルビットが活性のとき、サンプルスイッチ(S/H回路416の)が閉じており、制御コンデンサ418は充電され、対応するDAC414の出力に従った電圧を保存するようになる。
【0042】
充電駆動回路230は、また、導線L1,L2,L3およびL4の各々のための治療出力コンデンサ430を含むように示されている。さらに以下に詳細を説明するように、各治療出力コンデンサ430に保存された電圧は、導線用2相シミュレーションパルスを生じさせることに用いることができる。
【0043】
充電駆動回路230は、また、制御コンデンサ418の一つに保存された電圧と、対応する治療出力コンデンサ430の一つに保存されている電圧とを選択的に比較する比較器420を含むように示されている。比較器420の出力は、閉じると治療出力コンデンサ430への充電を増加させ、開くと治療出力コンデンサ430からゆっくりと放電が行われるスイッチ(S_charge)を制御するために用いられる。
図4Aに示された電圧発生器440は、電力管理回路220の一部を構成するものと考えることができる。
【0044】
レジスタ412は、
図3に示されるアドレスバス312とデータバス314に接続することができ、これにより、CPUがレジスタ412に書き込むことができるようになっている。これに代えて、レジスタ412は、レジスタとCPUの間に接続されるシリアルバスを用いて書き込まれてもよい。レジスタ412に保存されているデジタル振幅値は、ユーザインターフェース、例えば、上述したように、臨床医プログラマー122または患者プログラマー126のアップ/ダウン・ボタン等を介して変更することもできる。このようなユーザインターフェースはユーザにより制御されるものであり、プログラマーは無線で指示をINS112に送り、レジスタ412にある値を増加させたり、減少させたりすることができる。実施例では、一つまたは複数の充電制御ビットが、CPUがレジスタ412に保存されているデジタル振幅値を変更させる割り込みを生じさせることができる。
【0045】
刺激駆動回路240 (Stimulation Engine 240)
刺激駆動回路240(単に刺激駆動と称することがある)の詳細は、
図4Bを参照して説明する。
図4Bにおいて、刺激駆動240は、刺激イベントデータの電極構成ビット(例えば、8ビット)により制御される電極スイッチSEL1−SEL8を含むように示されている。
図4Bの右下側のコーナーに、刺激イベントデータの導線選択ビット(例えば、4ビット)により制御される各導線(それぞれの導線が選択されるか否かを制御することに用いられる)のための4つの一群のスイッチを含むように示されている。実施例では、刺激信号の刺激パルスを発生させるために、導線L1,L2,L3およびL4のいずれかが(導線選択ビットを用いて)選択され、少なくとも電極の一つはスイッチSEL1−SEL4を用いて治療出力コンデンサ430の一つに接続することで陽極として構成され、少なくとも電極の一つはスイッチSEL5−SEL8を用いて陰極VEと接続することで陰極として構成される。
【0046】
以下の説明から明らかなとおり、DMA制御された神経刺激に関連する本発明の多くの実施例が、充電駆動230や刺激駆動240の機能を果たす代替回路を用いて実施することができる。いいかえれば、DMA制御された神経刺激に関連する本発明の実施例は、
図4Aと
図4Bに示された回路に限定されるものではない。
【0047】
DMA制御された神経刺激(DMA Controlled Neurostimulation)
上記で説明したとおり、特定の実施例においては、INS112には複数(例えば、12まで)の導線セットと複数(例えば、4つまで)の刺激セットをメモリ(例えば、320)に保存することができる。各導線セットは、複数(例えば、4つ)の導線の一つと関連付けることができ、どの導線を作動可能にするかどうか、導線(導線が作動可能とされたとき)の4つの電極のうちのどの電極をどのように構成(すなわち、陽極として、陰極として、または不活性)するか、また導線を介して伝達される刺激の振幅値、パルス幅および繰り返し比率をどのように設定するかを特定することができる。各刺激セットは、一つ以上の導線セットが同一期間(例えば、それらは、ある期間多重送信されている)に活性化されるように、複数(例えば、4つまで)の導線セットをグループ化できる。また、刺激セットが現在、活性化/選択されているかを特定する電流刺激セットのパラメータがメモリに保存されていてもよい。
【0048】
本実施例によれば、メモリ320(例えば、フラッシュ)に保存された導線セットデータと刺激セットデータ(より一般的には、神経刺激データ)は、INS112のMCU210のCPU310によりアクセスされる。どの刺激セットが活性化/選択されたかにもとづき(現在の刺激セットパラメータにより特定される)、CPU310は刺激イベントデータと次の刺激イベントタイムデータを生成して保存する。これらは、メモリ320(例えば、RAM)の中に二つの参照テーブル(LUTs)として保存される。このようなLUTの例は、
図5の522、524と表示されたものである。実施例によれば、異なる刺激セットが(例えば、外部のプログラマーを介して)活性化/選択される毎に、新しく活性化/選択された刺激セットに対応するために2つの参照テーブルが再作成される。刺激セットが活性化/選択されることにもとづき(例えば、電流刺激セットのパラメータで特定される)、CPU310も振幅値を振幅値レジスタ412(
図4Aを参照)に書き込むことができる。
【0049】
本発明の実施例において、DMAコントローラー330がどのように神経刺激信号を発生させているかの詳細について説明する。
図5の模式図において、メモリ320は、刺激イベントデータを保存するメモリ522の一部と、次の刺激イベントタイムデータを保存するメモリ524の一部を含んでいる。メモリ522の部分に保存されている刺激イベントデータは、N刺激イベントを定義するために使うことができる。実施例によれば、N刺激イベントのそれぞれは、導線選択ビット(例えば、4ビット)、電極構成ビット(例えば、8ビット)および充電制御ビット(例えば、4ビット)により規定される。したがって、例えば、各刺激イベントは2バイト(すなわち、4+8+4=16ビット=2バイト)により規定されるため、メモリ522の部分に保存されている刺激イベントデータは2*Nバイトのデータとなる。メモリ524の部分に保存されている次の刺激イベントタイムデータは、N刺激イベントのタイミングを規定するために用いられ、例えば、次の刺激イベントタイミングデータは16ビット(すなわち、2バイト)により規定される。このため、例えば、メモリ524の部分に保存されている次の刺激イベントタイムデータは、2*Nバイトのデータとなる。刺激イベントデータのさらなる詳細は、導線選択ビット、電極構成ビットおよび充電制御ビットを含めて、以下で説明する。
【0050】
刺激イベントデータを保存するメモリ522の部分は、第1テーブル、例えば、データブロックをそれぞれ有する複数のN刺激イベントエントリーを含む参照テーブル(LUT)とすることができる。同様に、次の刺激イベントタイムデータを保存するメモリ524の部分は、第2テーブル、例えば、データブロックをそれぞれ有するNの次の刺激イベントタイムエントリーを含む第2参照テーブルとすることができる。
【0051】
DMAコントローラー330は、DMAチャンネル532(刺激イベントDMAチャンネルと称されることがある)とDMAチャンネル534(次の刺激イベントタイムDMAチャンネルと称されることがある)を含む、少なくとも2つのDMAチャンネルを含んでいる。各DMAチャンネルは、CPU310がコピー/転送を担うときは、CPU310に過剰な負担をかけないように、メモリのブロックをある場所から他の場所へコピー(転送)するために用いられる。
【0052】
タイマー340は、タイマーカウントレジスタ542と2つのタイマー比較レジスタ544、546(取り込み比較レジスタとしても知られている)を含むように図示されている。タイマー比較レジスタ544は、刺激イベントをトリガーすることから、イベントタイマー比較レジスタと称されることがある。タイマー比較レジスタ546は、タイマーカウントレジスタ542をリセットすることから、リセットタイマー比較レジスタと称されることがある。タイマーカウントレジスタ542は、クロック(CLK)信号を受信し、クロック信号1サイクル毎にインクリメントされる。タイマーカウントレジスタ542の内容は、イベントタイマー比較レジスタ544の内容、及び、リセットタイマー比較レジスタ546の内容と比較される。本発明の実施例によれば、タイマーカウントレジスタ542の内容とイベントタイマー比較レジスタ544の内容が等しいときは、タイマー340はDMAチャンネル532、534(破線547、548で表示される)をトリガーさせる。あるいは、タイマー340は、タイマーカウントレジスタ542の内容とイベントタイマー比較レジスタ544の内容が等しいとき(破線547で示される)、DMAチャンネル532をトリガーすることができ、DMAチャンネル532(転送開始次第、又は、転送完了次第)は、DMAチャンネル534をトリガーすることができる。
【0053】
本発明の実施例によれば、タイマーカウントレジスタ542の内容とリセットタイマー比較レジスタ544の内容が等しいときは、タイマーカウントレジスタ542は、破線549で示されるように、ゼロ(または、他の設定値)にリセットされる。実施例によれば、タイマーカウントレジスタ542がリセットされると、割り込みがCPU310に送信される。他の実施例では、DMAチャンネル532が、刺激イベントデータを保存するメモリ522の最後のブロックデータを転送すると、タイマーカウントレジスタ542はゼロ(または、他の設定値)にリセットされ、割り込みがCPU310に送信される。
【0054】
DMAチャンネル532は、トリガーされると、メモリ522の部分(刺激イベントデータを保存)からメモリのブロックを刺激コントロールポート350と関連するレジスタに移転(コピー)する。DMAチャンネル532と関連するポインターは、DMAチャンネル532がトリガーされるたびにインクリメントされ、次にDMAチャンネル332がトリガーされると、刺激イベントデータの次のブロックが刺激コントロールポート350に関連するレジスタに転送される。ポインターは、刺激イベントを規定するために用いられるデータの量だけインクリメントされるが、この例では2バイトとなっている。ポインターが、メモリ522(例えば、
図5の刺激イベントN-1)を示した後、ポインターは、メモリ522(すなわち、
図5の刺激イベント0)の最初のブロックを再び示すようにリセットされる。
【0055】
刺激イベントデータの各ブロックは、一つまたは複数の刺激イベントを規定するために用いられる。ここで用いられる刺激イベントは、ある時点において発生するようにコントロールされる回路の状態の変更をいう。例えば、刺激イベントは、複数の導線からどの導線を選択するか、選択された導線のどの電極を陽極と接続させるか、選択された導線のどの電極を陰極と接続させるか、選択された導線のどの電極を不活性すなわち中立又はオフにするかを制御する回路の状態を変更することができる。他の例では、刺激イベントは、一つまたは複数の特定のコンデンサを充電したり放電させたりすることができる。実施及び特定の刺激イベントによるが、刺激イベントが開始すると、刺激イベントはそれ自身で休止してもよいし、次の刺激イベントが開始するときに終了してもよい。複数の刺激イベントは、例えば、導線が選択されると同時にその銅線の電極が構成されたときに、同時に開始することもできる。
【0056】
トリガーされると、DMAチャンネル534が、メモリ524の部分(次の刺激イベントタイムデータを保存している)からタイマー340のイベントタイマー比較レジスタ544へ、メモリのブロックを転送(コピー)する。DMAチャンネル534と関連するポインターは、DMAチャンネル534がトリガーされるたびにインクリメントされ、次にDMAチャンネル334がトリガーされると、次の刺激イベントタイムデータの次のブロックが転送される。ポインターは、次の刺激イベント時間を定めるために用いられるデータの量によりインクリメントされ、この例では2バイトである。ポインターが、メモリ524の最後のブロック(例えば、
図5でタイム0)を示すと、ポインターは、メモリ524の最初のブロック(すなわち、
図5でタイム1)を再び示すようにリセットされる。
【0057】
メモリ524の部分(次の刺激イベントタイムデータを保存する)について言及すると、タイムN-1の値は、タイムN-2の値よりも大であり、・・・タイム4の値より大であり、タイム3の値より大であり、タイム2の値より大であり、タイム1の値より大である。したがって、ポインターがあるブロックから次のブロックに変化すると、タイマー比較レジスタの内容は、タイム0に到達するまで、増加するように維持される。この方法では、タイマー340が次のトリガー信号を発生する時間(タイマー比較レジスタ544に保存されている)が繰返しアップデートされる。他の実施例では、メモリ524の部分(例えば、テーブル524)は、次のイベントまでの時間の長さを示すデルタ・タイム値を保存することができ、新しい次の刺激イベントタイムデータ値がイベントタイム比較レジスタ544にDMAコントローラー530によりコピーされるたびに、タイムカウントレジスタ522は、リセットされる(または、タイムカウントレジスタ522をリセットする代わりに、次の刺激イベントタイムデータ値がイベントタイム比較レジスタの値に追加されることができる)。
【0058】
CLK信号(タイマーカウントレジスタ542に提供される)が50kHzクロック信号であり、50,000の値がリセットタイマー比較レジスタ546に保存されていると単純化する。この例では、タイマーカウントレジスタ542は、1秒間に0から50,000(2進法ビットで0000000000000000から2進法ビットで1111010000100100000)をカウントし、その終わりにくるとタイマーカウントレジスタ542は0にリセットされ、1秒毎に0から50,000へのカウントを繰り返す。したがって、この例では、刺激イベントデータを保存するメモリ522の部分と、次の刺激イベントタイムデータを保存するメモリ524の部分は、1秒間に相当する刺激情報を保存する。この時間間隔は、タイマーリセットレジスタ546に保存されている値を変更すること、及び/又は、クロック信号の周波数を変更することにより、増減することが可能である。例えば、0.5秒間に相当する刺激情報は、刺激イベントデータを保存するメモリ522と、次の刺激イベントタイムデータを保存するメモリ524に保存することができ、50,000の値はタイマーリセットレジスタ546に保存することができ、100kHzのクロック信号を、タイマーカウントレジスタ452をインクリメントするために用いることができる。これらは、リセットタイマー比較レジスタ546に保存することができる値やクロック周波数を単に例示したものにすぎなく、限定するために意味するものではない。この説明から認識されるように、リセットタイマー比較レジスタ546及び/又はクロック周波数に保存されている値を選択することにより、ほとんどのいかなる時間に相当するデータもメモリ522とメモリ524の部分に保存することができる。実施例では、各時間に相当する期間の終わり(例えば、1秒間に相当する終わり)でタイマーカウントレジスタ542を積極的にリセットするよりは、刺激イベントデータと次の刺激イベントタイムデータ(メモリ522と524に保存されている)がある期間に発生し、これにより各期間の終わりでタイマーカウントレジスタ542を最初のゼロ0に戻るようにすることができる。例えば、タイマーカウントレジスタが16ビットカウンターであるとすると、タイマーカウントレジスタ542が、2進法ビット0000000000000000から2進法ビット1111111111111111(10進法の65535に対応する)をカウントすると、タイマーカウントレジスタ542の次の値は自動的に0000000000000000となる。タイムカウントレジスタに提供されるクロック信号を65,535Hzと単純化して仮定すると、16ビットタイマーカウントレジスタ542は、各1秒間に相当する時間の終わりで自動的にリセットされる。このような実施例では、CPU310が各時間ごとにDMAチャンネルを再開する必要がない。今後の説明では簡単にするために、CLK信号は50kHzのクロック信号であり、50,000の値がリセットタイマーレジスタ546に保存され、これにより、メモリ522と524の部分に保存される刺激情報は1秒間に相当する時間となる。
【0059】
上記に説明したとおり、メモリ522と524の部分は、ある期間(例えば、1秒間)に相当する神経刺激信号を発生するように用いることができる。実施例によれば、神経刺激信号の時間は、繰り返し可能であり、神経刺激は所望された時間だけ、伝達することができる。いいかえれば、神経刺激の時間の長さ(例えば、1秒間)は、例えば、患者またはプログラムを行う人によりスイッチが切れるまで、異なる刺激セットが患者またはプログラムを行う人により選択され/または活性化されるまで、または、プログラム処置スケジュールにより変更されるまで、無期限に繰返すことができる。もしメモリ522と524が1秒間の刺激イベントを発生させるデータのブロックを保存しており、CLK信号の周波数が整数のHzであれば、刺激イベントは、1秒間ごとに正確に繰り返されることができる。もしメモリ522と524が、0.5秒相当の刺激イベントを発生させるためのデータブロックを保存していれば、CLK信号の周波数は、刺激イベントが正確に0.5秒相当の時間で繰り返すようにするために偶数のHzである必要がある。いいかえれば、CLK周波数を選択するときに、メモリ522と524に保存されているデータに相当する時間を考慮しなければならない。
【0060】
図5に示されるように、メモリ522に刺激イベントデータのブロックNが保存されており、同様に、次の刺激イベントタイムデータのブロックNは、メモリ524に保存されている。メモリ522にブロックNを保存する順番は、刺激イベント0、刺激イベント1、刺激イベント2、刺激イベント3・・・刺激イベントN-2、最後のエントリがN-1となっており、メモリ524に保存されているブロックNの順番は、次の刺激イベントタイム1、次の刺激イベントタイム2、次の刺激イベントタイム3、次の刺激イベントタイム4・・・次の刺激イベントタイムN-1,最後のエントリは、次の刺激イベントタイム0となる。現在のイベントデータが転送されると(イベントトリガータイムは到達しているため)、このようにテーブルは記憶され、次のトリガータイムは、同時にまたはほぼ同時にイベントタイム比較器に読み込まれる。
【0061】
一つのDMAチャンネルは、データをある行先にのみ転送できることから、実施例では、2つのテーブルと2つのDMAチャンネルが刺激イベントデータと次の刺激イベントタイミングデータの両者を転送できるようになっており、DMAチャンネルの一つは刺激イベントデータを入力/出力ポート350に転送するために用いられており、他のほうは次の刺激イベントタイミングデータをタイマー340のレジスタ544に転送するために用いられている。
【0062】
要するに、実施例によれば、DMAコントローラー330は、LUT522、524にアクセスし、導線の選択、電極の構成および刺激信号波形を制御する。DMAチャンネル532は、刺激イベントデータLUT522からMCUの入力/出力ポート350へ刺激イベントデータをコピーするために用いられ、DMAチャンネル534は、次の刺激イベントタイミングデータを、次のイベントタイミングデータLUT524からMCU210のタイマー340の比較レジスタ544へコピーするために用いられる。入力/出力ポート350へコピーされたデータは、スイッチの制御や、導線の選択、電極構成および波形増幅を制御する論理回路を制御するために使われる。このような回路の例は、
図4Aと
図4Bに示されている。タイマー340の比較レジスタ544にコピーされたタイミングデータは、次の刺激イベントタイミングデータの次のブロックが、次の刺激イベントタイミングデータLUT524からタイマー340の比較レジスタ544にコピーされるタイミングと、刺激イベントデータの次のブロックが、刺激イベントデータLUT522からMCU210の入力/出力ポート350へコピーされるタイミングを制御するために用いられる。ソフトウエアポインターは、トリガーにもとづきインクリメントされ、DMAチャンネル532と534を用いてLUTのどのブロックをコピーするかを特定するために用いられる。上述した通り、刺激は、選択/活性化された刺激セットに対応するように伝達される。
【0063】
実施例によれば、CPU310は、パルス衝突が発生しないように(例えば、パルスは一つの導線を通じてのみ伝達されるように)、LUT522、524を作成する。例えば、一つの導線を用いて伝達される刺激周波数(パルス繰返し比率とも称される)が40Hzであり、他の導線を用いて伝達される刺激周波数が42Hzとしたとき、両導線が、まったく同じ時間に刺激駆動回路240からパルスを受け取るときがある。刺激駆動回路240がある時間に一つのパルスを一つの導線にのみ伝達できることができるのであれば、CPU310は、どの導線が最初のパルスを受け取るか、そしてどの導線が次のパルスを受け取るかを決定する必要があり、これにより、衝突を避けることになる。CPU310は、事前に(例えば、デバイスがスイッチオンになっているか、または新しい刺激セットが活性化/選択されているか)決定しているので、CPU310は、潜在的衝突がまさに発生するときに急いで(リアルタイムで)決定する必要はない。このことは、CPU310が他のタスクをより速く処理できるようにし、著しく電力消費を減少させることができる。CPU310は、パルスが各導線を介していつ伝達されるかを決定するために、ソフトウエアモデュールで定義されたスケジュールアルゴリズムを用いることができる。ある導線を用いて伝達される刺激周波数が40Hzであり、他の導線を用いて伝達される刺激周波数が依然として42Hzであるとした例を続けると、導線は依然1秒間に40パルスと42パルスをそれぞれ伝達し、あるパルスは衝突を避けるために、少し後方か前方へ移動するかもしれない。
【0064】
ある期間(例えば、1秒間)に対応する衝突は、期間毎(例えば、次の1秒間)に繰り返す。従って、ある期間(例えば、1秒間)について衝突が処理される(避ける)と、CPUの処理に負担をかけることなくすべての繰り返しの期間に対して処理がなされる。
【0065】
なお、ある刺激イベント(メモリ320に保存されている)は、コンデンサの充電、コンデンサ及び/又はこれに類するものに保存された充電のサンプリングを起こすことができる。このような充電及び/又は刺激イベントのサンプリングは、実際の刺激パルスを伝達するよりは、刺激波形の次の刺激パルスを伝達するための準備に用いられる。このような充電及び/又は刺激イベントのサンプリングがなされているとき、これらは充電コントロールビットを用いて制御されることができ、実際の刺激パルスの伝達間に生じることがあり、導線のいずれもが選択されない(すなわち、導線選択ビットがどの導線も選択されていない)こともありうる。また、このような充電及び/又は刺激イベントのサンプリングがなされているとき、どの電極も陽極として接続されておらず、また、どの電極も陰極として接続されていなくてもよい(例えば、すべての電極が中立、すなわち、不活性であってもよい)。他の特定の実施例では、刺激イベントデータテーブル522には、どの導線も選択されない4導線選択ビット(例えば、ビット0000)、全ての電極が陽極として接続されておらず、全ての電極が陰極として接続されていない8電極選択ビット(例えば、ビット00000000)や、充電コントロールコンデンサ(例えば、
図4Aの418)によりサンプルされ、かつ、保持されるための充電を生じさせる4充電コントロールビット(例えば、0010)を含んでいる。いいかえれば、刺激イベントは、あるレベルから他のレベルへ波形の転移を生じさせ、及び/又は、サンプリングを生じさせ、及び/又は、波形のレベルを他のレベルへ変化させるために用いられるコンデンサに保存される電荷を充電させる。
【0066】
逆に、導線選択ビットと電極構成ビットが、実際の刺激パルスを患者の組織に伝えるために用いられるときは、充電コントロールビットが充電及び/又はサンプリングを引き起こさないことが可能となる。他の具体例では、刺激イベントデータテーブル522には、最初の導線(L1)が選択されている4導線選択ビット(例えば、ビット0001)、導線のもっとも離れた電極を陽極として接続し、かつ、導線の最も近い電極を陰極として接続した(他の二つの中間の電極は中性となる)8電極選択ビット(例えば、ビット10000011)と、充電及び/又はサンプリングがなされてない4充電コントロールビット(例えば、0000)を含むことができる。
【0067】
上述したとおり、実施例によれば、各刺激イベントは、導線選択ビット(例えば、4ビット)、電極構成ビット(例えば、8ビット)および充電コントロールビット(例えば、4ビット)から規定される。例えば、
図1で説明したとおり、脊髄刺激システムは、4つの埋め込み型導線を含み、各導線は4つの電極を含むことができる。導線選択ビットが、4つの導線のどれが刺激を伝達するために用いられるかを特定するために用いられている。ある実施例では、一つの導線のみが一度に刺激を伝達することができるようになっている。ある実施例では、ビット0001が最初の導線(L1)を選択でき、ビット0010が第2の導線(L2)を選択でき、ビット0100が第3の導線(L3)を選択でき、および、ビット1000が第4の導線(L4)を選択できるようになっている。他の実施例では、ビット0001が最初の導線(L1)を選択でき、ビット0010が第2の導線(L2)を選択でき、ビット0011が第3の導線(L3)を選択でき、ビット0100が第4の導線(L4)を選択できるようになっている。ここで記載された実施例では、刺激イベントデータに相当する2バイトの最初の4ビット(すなわち、4つの最も有効なビット(MSBs))は導線を選択するために用いられることが考えられるし、しかし、そのようなケース(すなわち、多かれ少なかれ、ビットが導線の選択に用いられたり、そのようなビットは、刺激イベントデータのブロックのMSBsである必要はない)である必要はない。他の実施例では、3つの導線選択ビットが4つの導線のどの導線が刺激を伝達するために用いられているかを特定するために用いることができる。例えば、ビット00が第1の導線(L1)を選択でき、ビット01が第2の導線(L2)を選択でき、ビット10が第3の導線(L3)を選択でき、ビット11が第4の導線(L4)を選択でき、第3のビットが導線を通電させるビットの役割を担う。たった一つの導線のみを同時に可能としたいのであれば、この後の実施例は同時に一つの導線以上を作動させることを不可能(瑕疵により)としている。他の変形例は、本発明の範囲内において可能である。
【0068】
電極構成ビット(例えば、8ビット)は、どの電極を陽極(正極を有し)、陰極(負極を有し)、または中性の電極(電極は刺激エネルギを伝達するために使用されていない、すなわち、不活性の状態)とするかを特定するために用いることができる。各導線に4つの電極があると仮定すると、本実施例によれば、一組のビット(2ビット)が、各電極の構成を特定するために用いられている。例えば、8つの電極構成ビットの2最下位のビット(LSBs)が最も離れた電極の構成を特定するために用いられ、次の2つのLSBsが次に最も離れた電極の構成を特定するために用いられており、次の2つのLSBsが次に最も離れた電極の構成を特定するために用いられており、2最上位のビット(MSBs)が最も近い電極の構成を特定するために用いられる。ここで用いられている近いまたは遠いという文言は、導線が接続されているINS112に対してである。実施例では、一対の電極構成ビットの一つが電極が活性または中性であるかを特定するために用いられ、当該一対の電極構成ビットの他の一つは、活性化された電極が陽極かまたは陰極として接続されているかを特定するために用いられる。例えば、適当なビット位置のa1は電極が活性化していることを特定でき、a0は電極が中性(または、逆)であることを特定でき、適当なビット位置のa1は活性電極が陽極であることを特定でき、a0は活性電極が陰極(または、逆)であることを特定できる。他の実施例では、一対の電極構成ビットの一つは、電極が陽極として接続されているかどうかを特定するために用いられ、一対の電極構成ビットの他の一つは、電極が陰極として接続されているかどうかを特定するために用いられる。例えば、ビット10は電極が陽極として接続されていることを特定でき、ビット01は、電極が陰極として接続されていることを特定でき、ビット00は、電極が中性であることを特定できる。これらの説明は、電極構成ビットが導線用の電極構成を決めるためにどのように用いられるかを示すいくつかの実施例であり、これらに限定されるものではない。他の変形例は、本発明の範囲内で可能である。
【0069】
実施例によれば、充電コントロールビットは、治療出力コンデンサに蓄えられた電荷を維持、調整及び/又は制御する制御コンデンサ(例えば、
図4Aの418)を充電したりサンプリングするために用いられ、治療出力コンデンサは刺激を患者の組織に伝達するために用いられる。制御コンデンサ(例えば、
図4Aの418)に保存された電荷は、複数のデジタル・アナログ変換器(DACs)(例えば、
図4Aの414)を用いて発生される。実施例では、充電コントロールビット(例えば、4ビット)は、複数のDACsを含むチップを選択的に作動させるワンビット(例えば、DACチップが(CS)ビットを選択する)と、DACsを作動させるために用いられるワンビット(例えば、DAC ENビット)と、DACsの出力をサンプル−ホールドするために用いられるスイッチを制御するワンビット(例えば、サンプルビット)と、治療出力コンデンサ(例えば、
図4Aの430)を適切に充電するために用いられるワンビット(例えば、充電ビット)が含まれている。他の変形例は、本発明の範囲内で可能である。
【0070】
上述のとおり、トリガーされると、DMAチャンネル532は、刺激コントロールポート350と連動するレジスタへ刺激イベントデータを転送し、DMAチャンネル534は、次の刺激イベントタイムデータをタイマー比較レジスタ544に転送する。まさに説明したとおり、導線を選択したり、選択された導線の電極を構成したり、刺激出力の振幅を維持するために、刺激イベントデータが用いられる。
【0071】
図5において、メモリ522、524(LUT)のデータを入力/出力ポート、レジスタ等にコピーするために、2つのDMAチャンネル532、534が用いられるように図示されている。一つまたは複数の追加のDMAチャンネルと、一つまたは複数の追加のメモリ(LUT)が他の機能をコントロールするために使用されるものも、本発明の範囲内である。例えば、第3のDMAチャンネルが、保存された波形振幅値をメモリからDACs(と連動するレジスタ)の入力にコピーするために用いられてもよい。このような第3のDMAチャンネルは、例えばイベントデータの各ブロック内にある充電コントロールビットによりトリガーされてもよい。他の変形例は、本発明の範囲内で可能である。
【0072】
上記実施例によれば、マルチビットレジスタ、入力/出力ポート等(データはDMAチャンネルにより転送される)にはデータビットのパラレルの転送を受け取るパラレル入力を含まれると解釈される。しかしながら、構成要素(DMAチャンネルがデータを転送する)がシリアルデータインプット(パラレルデータインプットに相対する)を有している例でも良い。そのような構成要素は、例えば、シリアルクロック入力(SCLK)とシリアルデータインプット(SDI)を有することができる。DMAチャンネルを用いて、そのような構成要素にデータを提供するとき、テーブルに保存されたデータの各ブロックには、DMAチャンネルによりシリアルクロック入力(例えば、a1ビットが低から高への変化を示し、a0ビットが高から低への変化を示す、又はその反対)に提供されるシリアルクロック変化を示すシリアルクロックビットと、シリアルクロック入力の低から高への変化(または、高から低への変化)のときにシリアルデータインプットに連続的に転送されるデータを示すデータビットとを含むことができる。例えば、構成要素が、シリアルクロック入力とシリアルデータインプットを含む16ビットDACであることを考えると、テーブルは、DACに連続的に転送される各16ビットワード向けの32セパレート2ビットブロックを含むことができる。
【0073】
刺激信号波形例 (Exemplary Stimulation Waveform)
図6に、4本の導線の第1の導線(導線1またはL1)を介して伝達される刺激信号波形例が示されている。
図6において、刺激信号波形は、イベントタイム0で、正の振幅値(amp1)を有している。実施例によれば、メモリ522、524にそれぞれ保存されている刺激イベントデータのブロックと次の刺激イベントタイムデータのブロックは、この波形の変化を定めるために用いられる。例えば、
図4と
図5を参照すると、イベントタイム0のデータは、イベントが生じる時を示しており、刺激イベント0のデータは、この時に何が生じるかを示している。より具体的には、刺激イベントデータ0には、導線L1(例えば、
図5において、スイッチL1を閉じることにより)を選択する導線選択ビットと、導線L1の一つまたは複数の電極を陽極(例えば、
図5のスイッチSEL1−SEL4の一つまたは複数のスイッチを閉じることにより)として構成し、導線L1の一つまたは複数の電極を陰極(
図5のスイッチSEL5−SEL8の一つまたは複数のスイッチを閉じることにより)として構成する電極形成ビットとを含む。
【0074】
図6をさらに参照すると、イベントタイム0とイベントタイム1の間は、イベントタイム0とイベントタイム1の間でコンデンサが放電するため多少の減衰を除き、概して正の振幅値(amp1)である。イベントタイム1にて、刺激イベント1のデータが正の振幅値からゼロに波形を変化させる。より具体的には、刺激イベント1のデータの電極構成ビットは、導線L1のすべての電極が不活性である(すなわち、陽極又は陰極として接続されていない)ことを示している。
【0075】
図6をさらに参照すると、イベントタイム2において、波形は負の値(-amp1)に変位するように図示されている。特に、刺激イベント2のデータの導線選択ビットは、導線L1が選択されていることを特定でき、(刺激イベント0により)陽極として構成された電極が陰極として構成され、(刺激イベント0により)陰極として構成された電極が陽極として構成されることを特定している。いいかえれば、正の振幅値(amp1)をなすために用いられていた陽極/陰極構成を反転させることにより、負の振幅値(-amp1)が得られる。
【0076】
イベントタイム2とイベントタイム3の間において、イベントタイム2とイベントタイム3の間でコンデンサが放電するための多少の減衰を除き、概して負の振幅値(-amp1)である。イベントタイム3にて、刺激イベント1のデータは、負の振幅値からゼロへ波形を変化させる。特に、刺激イベント3のデータの電極構成ビットが、導線L1のすべての電極が不活性(すなわち、接続されていない)であることを特定している。
【0077】
イベントタイム3にて、波形はゼロに戻り、少なくともイベントタイム4までゼロのままである。刺激イベント3のデータは、導線L1がイベントタイム3で選択され、弛緩期間の開始となる。弛緩期間中は、電極構成ビット(刺激イベント3のデータにより形成)は、2相の刺激パルスを伝達するために用いられた導線L1の電極は、こらの電極に残る電荷を放電するためグラウンドに接続されている。さらに、イベントタイム3からイベントタイム4の間の弛緩期間は、導線L1用治療出力コンデンサは再充電されることができる。この再充電を行うために、刺激イベント3の導線選択ビットは導線L1を選択し、充電コントロールビットの充電ビットは活性化されなければならない。
【0078】
図6をさらに参照すると、イベントタイム4は、弛緩期間の終わりを示している。
図6に示される通り、導線L1を介して伝達される次の2相の刺激パルスは、イベントタイム4+Xまで開始しない。イベントタイム4とイベントタイム4+Xの間、メモリ522、524に保存されている刺激イベントデータと次の刺激イベントタイムデータに従い、一つまたは複数の導線(例えば、L2,L3及び/又はL4)を介して刺激パルスが伝達されることができる。さらに、及び/又は、この代わりに、イベントタイム4とイベントタイム4+Xの間で、刺激イベントデータと次の刺激イベントタイムデータは、サンプルされている他の導線に対応する充電コントロールコンデンサ418を充電できるし、及び/又は、充電されている他の導線に対応する治療出力コンデンサ430を充電することができる。
【0079】
クロック省電力の特徴(Clock Power Saving Features)
図3で説明したように、クロックシステム360は、MCU210の構成要素と電子回路118の他の構成要素に提供される異なる周波数を有するクロック信号を発生する。例えば、クロックシステム360は、比較的高い周波数(例えば、100kHz)のクロック信号を発生させるメインクロック回路362と、比較的低い周波数(例えば、32.768kHz)のクロック信号を発生させる共に、メインクロック回路より電力を少なく消費する副クロック回路364が含まれている。メインクロック回路362により発生された高い周波数のクロック信号は、例えば、CPUができるだけ急いでタスクを処理するときに、CPU310により用いられてもよい。
【0080】
上記で説明したとおり、実施例では、CPU310は、メモリ320に保存されている神経刺激データにアクセスし、そのときにどの刺激セットが活性化/選択されているかにもとづき、CPU310は、刺激イベントデータや次の刺激イベントタイムデータを生成し、
図5の2つのルックアップテーブルLUT(早見表)522、524として保存される。メモリ320に保存された神経刺激データは、これらは外部のプログラマーから受領されるが、上述したとおり、電極構成情報と刺激波形情報を含むことができる。刺激波形情報は、例えば、伝達される刺激波形の振幅、パルス幅、パルスの繰返し率を特定することができる。
【0081】
図5に記載したとおり、タイマーカウントレジスタ542は、クロック(CLK)信号によりインクリメントされるが、イベントタイマー比較レジスタ544と比較され、DMAチャンネルの少なくとも一つがいつトリガーされるかを決定する。このクロック信号の周波数は、神経刺激信号の最小パルス幅の増加を特定することで達成され、小パルス幅の増加により高パルス幅の分解能を可能とする。
【0082】
実施例では、刺激イベントデータと次の刺激イベントタイムデータが発生すると、CPU310が、特定のクロック信号周波数(例えば、100kHz)が
図5のタイマーカウントレジスタ542を増加するようなデータを発生する。例えば、100kHzクロック信号が10 usecパルス幅の増加(すなわち、1秒/100k=10.0 usec)を提供する一方、32.768kHzクロックが30.5 usecパルス幅の増加(すなわち、1秒/32.768k=30.5 usec)を提供する。より一般的には、クロック信号が高くなれば、パルス幅増加は小さくなり、パルス幅の分解能は大きくなる。しかしながら、同様のクロック回路が異なるクロック信号周波数を発生させることを考えると、クロック信号が高くなると、電力消費が高くなる。したがって、実施例では、電力は、特定のパルス幅分解能を達成するために、最も遅いクロック信号を用いて変換することができる。
【0083】
特定の実施例では、刺激イベントデータと次の刺激イベントタイムデータが発生すると、CPU310は最初に、保存された神経刺激データにより定められた神経刺激を行うに必要な最小のパルス幅増加量を決定する。この決定にもとづき、低電力消費の副クロック回路364により発生するクロック信号が、
図5のタイマーカウントレジスタ542をインクリメントするクロック信号として用いられるに充分な分解を有しているか否かや、高電力消費のメインクロック回路362により発生するクロック信号がタイマーカウンターレジスタ542をインクリメントするため用いることが必要かどうかを、CPU310は決定する。
【0084】
副クロック回路364により発生するクロック信号が使用するに充分な分解能を有していれば、CPU310は、副クロック回路364により発生する低クロック信号がタイマーカウントレジスタ542をインクリメントするために用いられると考え、刺激イベントデータと次の刺激イベントタイムデータを生成する。これにより、DMAコントローラー330が神経刺激を制御しているときに、メインクロック回路362(他の目的のために必要とされない限り)は少なくとも部分的に不作動状態とすることができる。これに反して、副クロック回路364により発生するクロック信号を用いて充分な分解能を有していないときは(すなわち、メインクロック回路により発生するクロック信号が必要とされるとき)、メインクロック回路362により発生する高クロック信号がタイマーカウントレジスタ542をインクリメントするために用いられると考え、刺激イベントデータと次の刺激イベントタイムデータを、CPU310が発生する。後の例では、副クロック回路364は、省電力のために、用いられていないときは少なくとも部分的に不作動状態とすることができる。
【0085】
他の実施例では、副クロック回路364により発生するクロック信号の周波数は、調整可能であり、選択された刺激セットと連動する刺激波形の伝達を制御するように最適なまたは最適に近い周波数が選択される。例えば、副クロック回路364の周波数は、所望の信号を生成することが必要となる他のイベント、及び、所望の信号分解能を提供するために、最も遅いクロック信号周波数になるようにプログラムされている。CPU310は、この周波数を決定し、この決定された周波数にもとづき、刺激イベントデータと次の刺激イベントタイムデータを生成する。
【0086】
図1−6にて示された実施例では、第1DMAチャンネルが(メモリの最初の部分に保存された)刺激イベントデータを入力/出力ポート又はレジスタに転送し、これにより回路の状態を変化させ、第2DMAチャンネルが(メモリの第2の部分に保存された)次の刺激イベントタイミングデータを、刺激イベントと関連するタイミングを制御するために用いられるタイマーに転送するために用いられている。他の実施例では、2以上のDMAチャンネルチャンネルを用いられることができる。例えば、刺激波形の振幅をコントロールするために用いられる振幅値(メモリの第3の部分に保存されている)を転送するために第3DMAチャンネルが用いることができる。
【0087】
上述のとおり、本発明の実施例は、慢性痛を有する患者に対し、神経刺激をコントロールために用いることができる。例えば、本発明の実施例は、以下の症状に適用されるものであり、これらに限定されるものでない。腰椎手術に起因する神経因性疼痛、診断ブロックにより診断された腰部の側面への慢性難治性腰痛、診断ブロックにより診断された仙腸関節の間接病、脊椎管窄症、神経根衝突‐非外科的候補、未知の病因による椎間板起因の痛み、複合性局所疼痛、帯状疱疹後神経痛、糖尿病性神経痛、難治性痛みを伴う末梢血管疾患、レーノー現象、幻肢痛、全般的な求心路遮断痛、慢性難治性アンギナ、外傷性後頭痛、さまざまな内臓痛(例えば、膵炎等)、ポスト乳房切除痛、外陰部痛、精巣痛、痛みを伴う自己免疫不全、限られた痛い分布によるポスト脳卒中痛、反復局所的鎌状赤血球危機、腰髄神経根障害、胸部神経根神経病、頸部神経根症、頸部軸の首痛、むちうち、限定痛を有する多発性硬化症。
【0088】
本発明の実施例は、これらに限定されるものでないが、パーキンソン病、多発性硬化症、奥部障害を脱髄すること、身体的および作業療法によって援助された神経刺激、脊髄損傷、神経再生によって援助される療法、ぜんそく、慢性心不全、肥満、急性虚血のような発作のような痛みを伴わない疾病に用いることができる。
【0089】
上述のとおり、神経刺激は、後根または後根神経節の刺激を含み、これに限定されるものではないが、患者の脊髄にまたはその近傍に伝達される。神経刺激は、これに限定されるものでないが、頭蓋の経頭蓋、皮質の、皮質下、小脳または深部脳に例示されるような脳タイプ神経刺激であっても良い。
【0090】
本発明の実施例は、これに限定されるものではないが、心臓に刺激を施すような神経刺激以外のタイプに適用されても良い。例えば、刺激イベントデータと次の刺激イベントタイミングデータは、DMAチャンネルにより適切な回路に転送され、先のR波またはペースイベント(または他の心臓イベント)に続くウインドウタイム内にR波(または、他のタイプの波形)が検出されないときに実施される心臓ペーシングタイプの刺激をコントロールすることができる。これは、単なる例を示したものであり、限定されるものではない。
【0091】
本発明の実施例は、薬ポンプや他の埋め込み型、非埋め込み型、または部分的に埋め込み型の医療機器にも適用可能である。
【0092】
本発明の実施例は、特定の機能や相互関係を図示するブロック図を用いて説明している。これらのブロックの機能の境界は、説明の便宜上、示しているものである。特定の機能や相互関係が適切に実施する限り、他の境界を設定することができる。このような他の境界は、本発明の範囲や趣旨に入るものである。
【0093】
上述の発明は、明確性や理解のために、図や例を用いて説明したが、様々な代替例、変形例及び均等物が用いることができることは明らかであり、上述の説明は本発明の範囲を限定するものであってはならない。
なお、下記の記載は、出願時の請求項の記載であり、新規事項を追加するものではない。
(項目1)
ある期間に実施される刺激イベントに対応する刺激イベントデータのブロックを保存する第1テーブルと、
当該期間に対応する次の刺激イベントタイムデータのブロックを保存する第2テーブルと、を含む、メモリと、
刺激イベントデータのブロックの1つを、第1テーブルから刺激イベントを制御するために用いられる1又は複数のレジスタへ選択的に転送する第1DMAチャンネルと、
次の刺激イベントタイムデータのブロックの1つを、第2テーブルから刺激イベントと連動するタイミングを制御するために用いられるタイマーへ選択的に転送する第2DMAチャンネルと、を含む、ダイレクトメモリアクセス(DMA)コントローラーと、を備える、埋め込み型刺激システム。
(項目2)
カウントレジスタと第1比較レジスタを有するタイマーをさらに備え、
次の刺激イベントタイムデータの各ブロックは、第2DMAチャンネルによりタイマーに転送されるときにタイマーの第1比較レジスタに保存される値を有しており、
タイマーのカウントレジスタは、カウント値を保存し、かつ、クロック信号に依存したカウント値をインクリメントし、
第1比較レジスタは、第1比較レジスタに保存された値とカウントレジスタのカウント値とを比較し、第1比較レジスタに保存された値とカウントレジスタのカウント値とが等しいとき、第1トリガーを発生させ、
第1DMAチャンネルは、刺激イベントデータの次のブロックを、第1テーブルから第1比較レジスタにより発生された第1トリガーに従った刺激イベントを制御するために用いられる1又は複数のレジスタへ転送する、項目1に記載の埋め込み型刺激システム。
(項目3)
第2DMAチャンネルは、次の刺激イベントタイムデータの次のブロックを、次の1つ
、
第1比較レジスタにより発生される第1トリガーの信号、
転送を開始する第1DMAチャンネルに反応して発生するトリガー信号、又は
転送を完了する第1DMAチャンネルに反応して発生するトリガー信号、
に従って、第2テーブルから第1比較レジスタに転送する、項目2に記載の埋め込み型刺激システム。
(項目4)
タイマーは、リセット値を保存し、かつ、リセット値とカウントレジスタのカウント値とを比較する第2比較レジスタを含んでおり、
保存されたリセット値がカウントレジスタの値と等しくなるときに、カウントレジスタがリセットされる、項目3に記載の埋め込み型刺激システム。
(項目5)
刺激イベントを制御するために用いられる1又は複数のレジスタは、DMAコントローラーとメモリを含むマイクロコントローラーユニット(MCU)の入力/出力ポートに対応する、項目1〜4のいずれか一項に記載の埋め込み型刺激システム。
(項目6)
刺激イベントデータの各ブロックは、刺激イベントに対応し、かつ、
刺激イベントのために選択された複数の導線の一つを特定する第1グループのビットと、
刺激イベント中に選択された導線の電極とどのように接続するかを特定する第2グループのビットと、が含まれており、
第1グループのビットは、第1DMAチャンネルにより、導線選択を制御する回路に接続された入力/出力ポートに対応する1又は複数のレジスタの第1部分に転送され、
第2グループのビットは、第1DMAチャンネルにより、電極構成を制御する回路に接続された入力/出力ポートに対応するレジスタの第2部分に転送される、項目5に記載の埋め込み型刺激システム。
(項目7)
1又は複数の導線を介して伝達される刺激信号を定める刺激データを受信、又はアクセスする中央処理装置(CPU)をさらに備え、
刺激データにもとづき、CPUはメモリに保存されている第1テーブルと第2テーブルを生じさせ、
CPUが第1テーブルと第2テーブルを生じさせた後、DMAコントローラーはCPUの割り込みなしに前記期間に刺激イベントを制御し、これによりCPUは刺激イベントを行うことに関連しない他のタスクを行うこと、及び/又は、前記期間の間低電力モードに入ることを可能とする、項目1〜6のいずれか一項に記載の埋め込み型刺激システム。
(項目8)
CPUは、刺激データにもとづきパルスの潜在的衝突を特定し、
DMAコントローラーが、第1テーブルと第2テーブルに従って、刺激イベントをある期間制御するとき、CPUは特定された潜在的パルス衝突を避けるように第1テーブルと第2テーブルを生成する、項目7に記載の埋め込み型刺激システム。
(項目9)
カウント値をインクリメントするためにカウントレジスタにより用いられる第1クロック信号を発生させる第1クロック回路と、
CPUが低電力モードにないときにCPUにより用いられる第2クロック信号を発生させる第2クロック回路と、をさらに備え、
第2クロック回路により発生された第2クロック信号は、第1クロック回路により発生された第1クロック信号より高い周波数を有し、第2クロック回路は第1クロック回路より多くの電力を使用し、
CPUが低電力モードにあるとき、第2クロック回路は少なくとも部分的に不作動になっている、項目7に記載の埋め込み型刺激システム。
(項目10)
第1周波数を有するクロック信号を発生させる第1クロック回路と、
CPUが低電力モードにないときに前記CPUにより用いられる、第1周波数より高い第2周波数のクロック信号を発生させる第2クロック回路と、をさらに備え、
第2クロック回路は、第1クロック回路よりも多くの電力を消費し、
CPUにより受領され、または、アクセスされた刺激データに基づき、CPUは、第1クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる第1クロック信号として充分な分解能を有しているかどうか、または、第2クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる第1クロック信号として用いる必要があるかどうかを決定し、
第1クロック回路により発生されたクロック信号がカウント値をインクリメントさせるためにカウントレジスタが用いる第1クロック信号として充分な分解能を有していれば、第1クロック回路により発生されたクロック信号が第1クロック信号として用いられ、かつ、第2クロック回路は少なくとも部分的に不作動となり、
第2クロック回路により発生されたクロック信号が、カウント値をインクリメントさせるためにカウントレジスタが用いる第1クロック信号として用いる必要があるならば、第2クロック回路により発生されたクロック信号が第1クロック信号として用いられ、かつ、第1クロック回路は少なくとも部分的に不作動となる、項目7に記載の埋め込み型刺激システム。
(項目11)
第1テーブルと第2テーブルは、第1周波数を有するクロック信号と第2周波数を有するクロック信号のいずれが第1クロック信号として用いられているかに従って、CPUにより作成される、項目10に記載の埋め込み型刺激システム。
(項目12)
埋め込み型刺激システムを用いた使用方法であり、
ある期間に実施される刺激イベントに対応する刺激イベントデータのブロックを第1テーブルに保存すること、
前記期間に対応する次の刺激イベントタイムデータのブロックを第2テーブルに保存すること、
第1テーブルから、刺激イベントを制御するために用いられる1又は複数のレジスタへ刺激イベントデータのブロックの1つを選択的に転送すること、
第2テーブルから、刺激イベントと連動するタイミングを制御するために用いられるタイマーへ次の刺激イベントタイムデータのブロックの1つを選択的に転送すること、を備える、埋め込み型刺激システムを用いた使用方法。
(項目13)
DMAコントローラーの第1ダイレクトメモリアクセス(DMA)チャンネルは、刺激イベントデータのブロックの1つを、第1テーブルから刺激イベントを制御するために用いられる1又は複数のレジスタへ選択的に転送するために用いられ、
DMAコントローラーの第2DMAチャンネルは、次の刺激イベントタイムデータのブロックの1つを、第2テーブルから刺激イベントと連動するタイミングを制御するために用いられるタイマーへ選択的に転送するために用いられる、項目12に記載の方法。
(項目14)
次の刺激イベントタイムデータの各ブロックは、タイマーに転送されたときにタイマーの第1比較器に保存される値を有しており、この方法はさらに、
クロック信号に従ってカウント値をインクリメントすること、
第1比較レジスタに保存された値とカウント値とを比較すること、
第1比較レジスタに保存された値とカウントレジスタのカウント値とが等しいときに、第1トリガーを発生させること、
刺激イベントデータの次のブロックを、第1テーブルから、第1トリガーに従って刺激イベントを制御するために用いられるレジスタへ転送すること、を備える項目13に記載の方法。
(項目15)
刺激イベントを制御するために用いられる1又は複数のレジスタが、DMAコントローラーを含むマイクロコントローラーユニット(MCU)の入力/出力ポートに対応する、項目13に記載の方法。
(項目16)
刺激イベントデータの各ブロックは、刺激イベントに対応し、下記の
刺激イベントのために複数の導線のどれが選択されたかを特定する第1グループのビットと、
刺激イベントの間、選択された導線の電極がどのように接続されているかを特定する第2グループのビットと、を含んでおり、
第1グループのビットは、導線の選択を制御する回路に接続された入力/出力ポートに対応する1又は複数のレジスタの第1部分に第1DMAチャンネルにより転送され、
第2グループのビットは、電極構成を制御する回路に接続された入力/出力ポートに対応する1又は複数のレジスタの第2部分に第1DMAチャンネルにより転送される、項目15に記載の方法。
(項目17)
1又は複数の導線を介して伝達される刺激信号を定める刺激データにもとづき第1テーブルと第2テーブルを作成するためにCPUを使用すること、
第1テーブルと第2テーブルを作成するためにCPUを使用した後、CPUの割り込みなしに前記期間に刺激イベントを制御するためにDMAチャンネルを使用し、これによりCPUが、刺激イベントに関連しないタスクを処理、及び/又は、前記期間低電力モードに入ることを可能とすること、をさらに備える項目13に記載の方法。
(項目18)
刺激データに基づき潜在的パルス衝突を特定すること、
第1テーブルと第2テーブルを作成するためにCPUを使用するとき、DMAコントローラが第1テーブルと第2テーブルに従って前記期間刺激イベントを制御するときに特定された潜在的パルス衝突を避けるように第1テーブルと第2テーブルを作成すること、をさらに備える項目17に記載の方法。
(項目19)
第1周波数を有するクロック信号を発生させるために第1クロック回路を使用すること、
CPUが低電力モードにないときにCPUにより使用され、第1周波数より高い第2周波数を有するクロック信号を発生させるために、第1クロック回路よりも多くの電力を消費する第2クロック回路を使用すること、
刺激データに基づき、第1クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる第1クロック信号として用いられるに充分な分解能を有しているかどうか、または、第2ロック回路により生成したクロック信号が、カウント値をインクリメントするために用いられる第1クロック信号として用いる必要があるかを決定すること、をさらに備え、
第1クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる第1クロック信号として用いられるに充分な分解能を有していれば、第1クロック回路により生成されたクロック信号を第1クロック信号として用い、少なくとも部分的に第2クロック回路を不作動とし、
第2クロック回路により生成されたクロック信号が、カウント値をインクリメントするために用いられる第1クロック信号として用いられる必要があれば、第2クロック回路により生成されたクロック信号を第1クロック信号として用い、少なくとも部分的に第1クロック回路を不作動とする、項目17に記載の方法。
(項目20)
第1テーブルと第2テーブルは、CPUにより、第1周波数を有するクロック信号または第2周波数を有するクロック信号のいずれが第1クロック信号として用いられているかに従って生成される、項目19に記載の方法。
(項目21)
埋め込み型刺激システムであり、
各電極が陽極、陰極または中性電極として接続可能とされている複数の電極をそれぞれ有する複数の導線と、
中央処理ユニット(CPU)と、
複数のポートと、
メモリと、
タイマーと、
ダイレクトメモリアクセス(DMA)コントローラーと、を備え、
メモリは、
予め設定された期間に生じさせる複数の刺激イベントのそれぞれのための刺激イベントデータのブロックであって、各刺激イベントデータのブロックは、
どの導線が刺激イベント用に選択されるか、
刺激イベントの間、選択された導線の電極がどのように接続されるか、
を特定する刺激イベントデータブロックと、
前記予め設定された期間に生じさせる複数の刺激イベントのための次の刺激イベントタイムデータのブロックであって、次の刺激イベントタイムデータのそれぞれは、複数の刺激イベントの次のイベントをいつ開始するかを特定する、次の刺激イベントタイムデータブロックと、を保存し、
タイマーは、
カウント値を保存し、第1クロック信号に従ってカウント値をインクリメントするカウントレジスタと、
次の刺激イベントタイムデータのブロックの1つに対応するタイム値を保存し、タイム値とカウントレジスタの値とを比較し、タイム値がカウントレジスタの値と等しいときに第1トリガーを発生させる第1比較レジスタと、を有し、
ダイレクトメモリアクセス(DMA)コントローラーは、
第1比較レジスタにより生成された第1トリガーに従って、CPUに干渉されることなくメモリからポートに、刺激イベントデータの1つのブロックを転送する第1DMAチャンネルと、
第1比較レジスタにより生成される第1トリガーに従って、または、第1DMAチャンネルが転送開始又は転送完了に従って、CPUに干渉されることなくメモリからポートに、次の刺激イベントデータの1つのブロックを一度に転送する第2DMAチャンネルと、を含む、埋め込み型刺激システム。
(項目22)
タイマーは、第2の値を保存し、第2の値とカウントレジスタのカウント値とを比較し、保存された第2の値がカウントレジスタの値と等しいときに第2のトリガーを発生する第2比較レジスタを含んでおり、
第2の値は、前記予め設定された期間を特定し、
第2のトリガーは、カウントレジスタに保存されたカウント値をリセットする、項目21に記載の埋め込み型刺激システム。
(項目23)
メモリは、
前記予め設定された期間に発生させる複数の刺激イベントのそれぞれのための刺激イベントデータを保存する第1テーブルと、
前記予め設定された期間に発生させる複数の刺激イベントのそれぞれのための次の刺激イベントタイムデータを保存する第2テーブルと、を備える、項目22に記載の埋め込み型刺激システム。
(項目24)
第1と第2DMAチャンネルは、次のイベントの少なくとも一つに応じて再初期化される、
(1)第1DMAチャンネルが、第1テーブルに保存された最後の刺激イベントデータをポートに転送したとき
(2)第2DMAチャンネルが、第2テーブルに保存された最後の次の刺激イベントデータを第1比較レジスタに転送したとき
(3)第2トリガーがカウントレジスタに保存されたカウント値をリセットしたとき、
項目22に記載の埋め込み型刺激システム。
(項目25)
CPU、ポート、メモリ、タイマー、DMAコントローラーが同じマイクロコントローラー(MCU)の構成要素である、項目21〜24のいずれか一項に記載の埋め込み型刺激システム。