FR 2499265 A1 19820806 FR 8205151 A 19820326 Stimulateur de tissu humain commandé par microprocesseur. L'invention est du domaine des implants électroniques. Elle vise plus précisément des stimulateurs de tissus biologiques multimodes extérieurement programma- bles. Les stimulateurs neuraux offrent de grandes promes- ses pour soulager les effets de divers désordres physiolo- giques. Par exemple, des électrodes peuvent être implantées en des sites du cerveau humain pour contrôler des désordres neurologiques ou le long de l'épine dorsale pour bloquer des douleurs intraitables. Bien que les stimulateurs neuraux présentent beaucoup des caractéristiques des régula- teurs du rythme cardiaque, la grande diversité des applica- tions neurologiques fait échouer les tentatives pour adap- ter la technologie du régulateur de rythme et définir des paramètres de normalisation. Les exigences de fréquen- ces, de largeur et d'amplitude varient/par facteurs de 10 d'une application neurologique à une autre. En outre, les paramètres optimaux pour un patient donné peuvent varier dans une large mesure dans le temps. La complexité des exigences fonctionnelles suggère l'utilisation d'un stimulateur neural généralisé, program- mable à objets multiples. Pour des états chroniques un stimulateur actionné par pole, bien implanté et commandé à distance est indiqué. Du fait que la cadence d'impulsions peut largement dépasser le rythme cardiaque de une à deux pulsations par seconde (pps), l'épuisement de la pile est toutefois un problème très aigu. En outrq, la comple- xité accrue des variables programmées accroît les chances d'erreurs. En dépit de la complexité du système en entier, la consommation d'énergie et le nombre de composants élec- troniques doivent être compris entre certaines limites. Le degré exceptionnellement élevé de l'adaptation program- mable et la cadence d'impulsion relativement élevée d'un stimulateur neural idéal nécessitentune approche totalement nouvelle à la fois des circuits électroniques internes et de la programmation externe. L'invention a donc pour objet de fournir un degré très élevé de souplesse programmable dans un stimulateur implantable avec un minimum de consommation d'énergie. L'invention a pour but corrollaire de fournir une techni- que fiable pour établir des valeurs de paramètres d'impul- sions dans une plage extensible.- Pour ce faire,-on met en oeuvre selon l'invention un stimulateur programmable de l'extérieur et commandé par microprocesseur, ce stimulateur comportant un générateur d'impulsions pour conférer des impulsions de sortie pour stimulation à des électrodes multiples connectées de façon indépendante. Un simple microprocesseur confetti (intégré) associé à une mémoire morte (ROM) met en oeuvre un système processeur de données à programme mémorisé qui positionne un certain nombre de verrous multibits pour établir les paramètres d'impulsion désirés. La donnée paramétrique transmise à l'extérieur est décodée par le système de traitement, confirmée par télémétrie à deux voies et chargée dans des registres de commande. Le microprocesseur obtient des valeurs mémorisées correspondansà partir dè tables paramétriques dans la mémoire morte (désignée ici et dans ce qui suit par ROM) et ensuite positionne les verrous d'amplitude, de cadence et de largeur. Les verrous de largeur et de cadence d'impulsion prépositionent les décomp- teurs de largeur et de cadence discrets. Des horloges, lente et rapide, séparées actionnent les compteurs de cadence et de largeur, respectivement. Pour économiser l'énergie, -'horloge rapide n'est sollicitée que brièvement à chaque fois que le compteur de cadence compte qu'il est temps de fournir une impulsion de sortie. Lors- qu'elle fonctionne, l'horloge rapide se branche à l'entrée d'horloge lente sur le microprocesseur. Le signal de dér6glage, inférieur à la barre (ZERO), provenant du comp- teur de cadence produit une requête d'interruption au microprocesseur qui appelle un sous-programme pour reprogram- mer les verrous de polarité des électrodeset du boîtier avant de mettre en service chaque impulsion de sortie. Ce système permet de connecter alternativement plusieurs électrodes (y compris le boîtier, si on le désire) comme anodes et cathodes. Le microprocesseur régie un cycle fonctionnement/ repos commandé avec un programme de comptage à cycle ordi- nationnel interne qui met hors fonction la capacité d'inter- ruption pendant la partie repos du cycle et programme la cadence à un minimum fixé. Les tables de réglage en fonctionnement et en repos dans la ROM prennent en considé- ration la fréquence variable de cadence des intervalles d'horloge rapide. L'horloge lente continue peut être arrêtée au moyen d'un interrupteur à languette actionné magnétiquement lorsque la sortie de barre (ZERO) du compteur de cadence n'est pas basse. La réception de la première impulsion de donnée produite extérieurement met en marche l'horloge rapide et la programmerie ou logiciel fait que le proces- seur remet en marche l'horloge lente tout en reprogrammant les verrous. Dans la forme de réalisation préférée, les trans- missions IR modulées de largeur d'impulsion à l'implant sont codées dans une série de trente bits, trois bits de commande suivi d'un mot de donnée à 27 bits représentant les paramètres choisis. Le mot de donnée est chargé dans des registres temporaires, confirmé par télémétrie magnéti- que à signaux réfléchis et transféré à des registres de commande. Les bases numériques fonctionnement et repos, et les données de connection du boîtier et des électrodes sont chargées dans des registres correspondants. Après - la partie fonctionnement du cycle, la base numérique de repos est transférée à un registre de cycle qui est amené à zéro par la programmerie après quoi l'interruption est mise en service et la base numérique de fonctionnement esL chargée dans le registre de cycle et accrue de façon similaire. Tous les registres sont pourvus de registres e mémoire-brouillon séparés dans un simple confetti de microprocesseur dans l'implant. De même, le programmeur extérieur est de préférence mis en oeuvre par un système base de microprocesseur qui code, mémorise, transmet, reçoit, décode et compare les données du paramètre d'im- pulsion, et contrôle de façon répétée la proximité avec l'implant. L'invention sera mieux comprise à la lecture de la description suivante d'une forme de réalisation de stimulateur neural: - la figure 1-est un schéma synoptique du systè- me stimulateur neural programmable selon l'invention; - la figure 2 est un schéma du module de communi- cation de la figure 1; - la figure 3 est un schéma synoptique du contrô- leur-à base de microprocesseur de la figure 1; - la figure 4 est un schéma synoptique dugénérateur d'impulsion et des verrous de la figure 1. - la figure 5 est un schéma de forme d'onde asso- cié à des impulsions de stimulateur de polarité alternan- tes et de transmission de données; - la figure 6 illustre un modèle typique de bits en série pour la commande de charge suivi par un mot de donnée; - la figure 7 est un schéma des positions de bits du mot de donnée dans une paire de registres sur le confetti de microprocesseur; - la figure 8 est un schéma synoptique du pupitre de programmation et de la tête de télémétrie de la figure 1. Le système tout entier est organisé comme représen- té sur la figure 1. Un implant électronique 10 communique avec un pupitre de programmeur 12 par l'intermédiaire d'un module de communications à deux voies 14 dans l'implant et une tête télémétrique externe 16, comme décrit en plus grand détail dans ce qui suit. Le module de communications 14 vient en interface avec un contrôleur 18 à base de microprocesseur qui établit et programme les paramètres suivants selon les données transmises, reçues-par le modu- le de communications 14: la cadence d'impulsion, la largeur d'impulsion ou la durée d'impulsion, l'amplitude du courant, les temps de fonctionnement et de repos pour les trains d'impulsions, l'état de connexion électrique de chaque électrode et du boîtier métallique, (c'est-à-dire déconnec- tee, connectée comme anode ou connectée comme cathode), et si la polarité choisie est constante ou alternative d'impulsion en impulsion. Lorsqu'intervient un nouveau programme, le contrô- leur 18 positionne un certain nombre de verrous 20 de paramètres d'impulsion pour établir les paramètres de cadence, de largeur et d'amplitude pour un générateur d'impulsions 22 extérieur au contrôleur 18. Individuelle- ment des lignes de rythme I/0 d'impulsions 1, 2 et 3 sol- licitent les verrous correspondants pour obtenir les va- leurs paramétriques à partir d'une voie omnibus ou bus de données 24 qui est effectivement constitué par la voie omnibus ou bus d'adresse de mémoire comme explicité dans ce qui suit. Le signal de sortie du générateur d'impulsion est connecté pour faire passer le courant à travers les électrodes choisies dans la direction choisie (polarité) par un contrôleur de connection d'électrode 26. Les pola- rités choisies et les électrodes sont déterminées sur une base d'impulsion par impulsion. Les verrous de con- nection d'électrode 28 sont rythmés (I/04, I/05) immédiate- ment avant la production de chaque impulsion pour obtenir à nouveau les données applicables du contrôleur 18. En outre, I/04 met en service la sortie du générateur d'impul- sion 22. En omettant l'impulsion de mise en service I/04, le contrôleur 18 met en vigueur un temps de repos.Le cycle fonctionnement/repos est réglé continument par la program- merie dans le contrôleur 18. Comme représenté sur la figure 2, le module de communication 14 renferme un transpondeur résonant 30 modaulé par impédance renfermant une bobine syntonisée avec un shunt transistorisé commandé par la sortie Q du contrôleur dé microprocesseur 18. Le signal binaire Q qui conditionne le transistor shunt dans le transpondeur résonant 30 modifie l'amplitude et la phase du signal émis à nouveau par la bobine syntonisée en présence d'un champ magnétique porteur appliqué par la tête télémétrique externe 16. La modulation de l'impé- dance de charge de la bobine syntonisée est prélevée dans la tête télémétrique 16- en tant que modulation de phase, comme décrit en détail dans la demande de brevet US n0153 093 (CEP-103) déposée le 27 mai 1980 par Slocum et al, et intitulée "Système télémétrique pour implant". La tension aux bornes dé'la bobine du transpondeur résonant est détectée à son niveau par le circuit transisto- risé 32 dont. la sortie actionne un circuit monostable 34 pour mettre en circuit un récepteur à infrarouge norma- lement au repos 36. Dans le récepteur, la chute de tension aux bornes d'un phototransistor est amplifiée et appliquée à l'entrée de repositionnement d'un basculeur de données 38 dont la sortie de barre Q forme l'entrée primaire de donnée pour le contrôleur de microprocesseur, barre (EF2). Le module de communication 14 comporte également un circuit interrupteur à languette 40 sensible à un champ magnétique appliqué de l'extérieur par un aimant (non représenté) tenu à la main. La sortie du circuit interrupteur à languette 40 régule le basculeur inverseur 42 à interrup- teur à languette pour permettre au patient de mettre le stimulateur en ou hors service. Le contrôleur 18, comme représenté sur la figure 3, comporte une unité de traitement centrale à un confetti CMOS (semi-conducteur à oxyde métallique symétrique complé- mentaire) à 8 bits, orientée à registre et à multiplet, en particulier le microprocesseur 50 RCA CPP 1802 COSMAC. Ce microprocesseur particulier est caractérisé par le fait qu'il comporte des registres de mémoire-brouillon à 18 bits sur confetti et une organisation parallèle à 8 bits avec une voie omnibus de donnée bidirectionnelle et-ne voie omnibus à adresse de mémoire (MA). Le micro- processeur 50 est couplé avec une ROM IK 52, en particulier la RCA CDP 1833, renfermant 1.024- bits de mémoire uniquement à lecture fixe. Le contenu de la ROM est donné en forme numérique hexadécimale. La mémoire uniquement de lecture est adressée par une voie omnibus (MA) à 8 bits et la donnée est transférée du multiplet adressé de mémoire au microprocesseur sur la voie omnibus de donnée. Dans la forme de réalisation préférée, la voie omnibus MA sert également de voie omnibus de données pour transférer les données paramétriques aux verrous de paramètre. La base de temps ou rythme pour toutes les opérations dans le microprocesseur 50 est fourni soit par une horloge lente 54 (600 Hz) avec une période de 1,67 millisecondes (ms) ou pour une horloge rapide 56 (100 KHz) avec une période 10 microsecondes. Les horloges 54 et 56 sont mises en oeuvre au moyen d'oscillateurs séparés du type déclen- cheur de Schmitt, contrôlés par RC pour épargner le courant. La consommation de courant est également réduite au minimum en utilisant l'horloge lente à la place de l'horloge rapide pour la plupart des opérations puisque la fuite du courant dans le circuit CMOS est proportionneleà la cadence de fonctionnement et que l'horloge rapide fonctionne 167 fois plus vite que l'horloge lente. Le multiplexeur sélec- teur d'horloge 58 applique la sortie de l'horloge rapide ou lente à l'entrée d'horloge du microprocesseur 50. L'horloge rapide 56 est mise en service par le multiplexeur de mise en service de l'horloge rapide. Le microprocesseur 50 est connecté pour recevoir des signaux d'entrée sur la ligne de demande d'interruption, barre (INT); la ligne d'indicateur externe 1, barre (EF1); et la ligne d'indicateur externe 2, barre (EF2). L'entrée de barre (EN2) est la sortie du récepteur IR36. La sortie du microprocesseur 50 apparaît sur les lignes NO, Ni et N2, les bits dits de commande, conditionné par l'impulsion de base de temps interne B (TPB) à un -décodeur d'instruction de sortie 62 qui décode le mot à trois bits en cinq lignes de rythme I/O actionnées individuellement. Les bits de - rommande N sont normallement bas, et le code à 3 bits signi- fie huit différents codes de sortie dont seulement cinq sont utilisés. Une des cinq lignes de rythme I/0 du déco- deur 62 progresse lorsque le nombre binaire à 3 bits corres- pondant est présenté au décodeur. Comme représenté sur la figure 4, les lignes de rythme I/0 sont connectées à des verrous multibits (groupes de basculeurs). La reprogrammation des verrous est réalisée par l'intermédiaire d'un décodeur d'instruction de sortie 62 (Fig. 3). Les lignes de rythme 1/01- I/05 établissent la cadence, la durée, le courant de sortie (amplitude), la polarité d'électrode et la polarité du bottier, respec- tivement par l'intermédiaire de la voie omnibus MA. Lorsque le microprocesseur 50 fournit une commande 1/01, un bit "1" est présenté aux entrées du décodeur d'instructions de sortie.Il en résulte que la sortie I/01 du décodeur augmente; toutes les autres sorties restent basses. Puisque cette ligne est liée à l'entrée de rythme d'un verrou de cadence 70 à 8 bits, le verrou de cadence sera accepté et maintiendra les données sur le bus MA à cet instant. Ainsi, une instruction de sortie I/01 reprogramme le verrou de cadence. Seize mots différents à 8 bits, dans cette-forme de réalisation, désignent 16 cadences de 8 pps à 200 pps. Le nombre binaire maintenu par le verrou Mo est appliqué à des entrées de bourrage parallèles préposition- nées d'un opérateur de division prépositionnable par un compteur descendant "N+1" M2 actionné par]l'horloge lente 54 (Fig.3). La sortie de barre (ZERO) du compteur de cadence M2 est normalement haute. Toutefois, lorsqu'une série d'impulsions d'horloge égale en nombre au nombre binaire présent aux entrées de bourrage a été appliqué à l'entrée d'horloge du compteur, la sortie de barre (ZERO) descend. A la prochaine impulsion d'horloge (1,67 ms plus tard), la sortie retourne à l'état élevé, en préposi- tionnant le'compteur descendant interne à la valeur des sorties de bourrage par l'intermédiaire d'un prépositionne- ment synchrone met en service l'entrée de barre (SPE). L'effet est de diviser la fréquence d'horloge par N+1 o N est la valeur aux entrées de bourrage. Cette valeur est positionnée pendant la programmation 'du verrou de cadence et est maintenu là par le verrou de cadence lui- même. Par exemple, une cadence de stimulation de 100 impulsions par seconde (pps) correspond à un intervalle de 10 ms. Puisque la période de l'horloge lente est de 1,67 ms, cela nécessite que les 6 impulsions d'horloge atteignent 10 ms. Toutefois, puisque le compteur de ca- dence divise par N+1, le verrou de cadence 70 est program- mé à 5 pour fournir la cadence de stimulateur désirée. A, chaque instant le compteur de cadence 72 "se dérègle", la baisse de transition.de la sortie normalement élevée de barre (ZERO) indique qu'il est temps de délivrer une impulsion de stimulation. Sur la figure 3, l'entrée de prépositionnement du basculeur 74 (auquel on se référera dans ce qui suit comme basculeur EP1) est connecté à la sortie de donnée du récepteur IR36 (Fig. 2) pour alerter le microprocesseur d'incorporer des données. La première impulsion IR fait que la sortie de la bascule 74 s'abaisse ce qui aler- te le microprocesseur 50 par l'intermédiaire d'une première entrée de barre (EF1) pour rechercher des données à la barre (EF2). Le basculeur 74 retourne à son état élevé initial I/01, lorsque le verrou de cadence est reprogrammé. La sortie de barre (ZERO) du compteur de cadence 72 (Fig. 4) alerte le microprocesseur 50 par l'intermédiaire de l'entrée de demande d'interruption, barre (INT). Cette entrée est accessible par l'intermédiaire d'un multiplexeur 76 (Fig. 3) qui est utilisé pour couperen deux l'impulsion de 1,67 ms pour être sûr que la sortie du compteur de cadence ne s'interrompt pas deux fois sur le même cycle. La sortie de barre (ZERO) du compteur de cadence 72 met également en service l'horloge rapide 56 (Fig. 3). Les multiplexeurs 58 et 60 appliquent chacun l'entrée X à la sortie sur-une entrée de contrôle "0" et l'entrée Y à la sortie sur une entrée de contrôle "I". Les entrées de contrôle aux multiplexeurs d'horloge 58 et 60 sont à la fois fournies par la sortie d'une porte ET78 qui reçoit la sortie "Q', d'un basculeur EF1 M4 et la sortie de barre (ZERO) du compteur de cadence 72.- La sortie de barre Q du basculeur 38 à donnée IR (Fig. 2) est nor- malement basse. Ainsi, la sortie Q du basculeur EF1 et la sortie de barre (ZERO) sont normalement hautes et la sortie haute de la porte ET78 fait normalement que les multiplexeurs d'horloge connectent leurs entrées respec- tives Y à leurs sorties respectives. Ceci se traduit par le fait que l'horloge lente 54 sollicite le microproces- seur 50 lorsqu'on arrête l'horloge rapide 56. Cette condi- tion est inversée lorsque le compteur de cadencése dérégle et que la sortie de barre (ZERO) s'abaisse de sorte que l'horloge rapide 56est disponible pour rythmer la durée de pulsation. La sortie basse de la bascule EF1 qui se produit à la-première impulsion IR branche l'entrée d'hor- loge rapide du microprocesseur pour permettre à ce dernier de décoder de façon précise les données modulées de largeur d'impulsions relativement rapide à partir du récepteur IR. En résumé, ensuite, durant chaque cycle lorsque le compteur de cadence se dérègle, la transition vers l'état bas de la sortie de barre (ZERO) produit une inter- ruption au microprocesseur 50, actionne l'horloge rapide 56 et la branche audit microprocesseur 50. Avant de déli- vrer l'impulsion de stimulateur, le microprocesseur 50 décide s'il est dans la position de fonctionnement ou de repos du cycle du train d'impulsion (c'est-à-dire la mise en ou hors service de l'interruption, respectivement) et reprogramme les connexions des électrodes et du boîtier qui alteroeryd'impulsion en impulsion si c'est programmé ainsi. La ligne de rythme I/02 actionne un verrou de durée de pulsation à 4 bits (Fig. 4) qui acquiert les quatre bits d'ordre inférieur du code de durée à partir du bus MA. Il y a huit durées possibles de 50 à 400 mi- crosecondes. Un multiplet complet désigne chaque durée mais les deux bits d'ordre supérieur, b7, b6, sont toujours à 0 et les deux bits d'ordre supérieur voisins, sont, b5, b4 sont dirigées vers une zone de report d'un verrou différent, comme explicité dans ce qui suit. La sortie du verrou 80 est connectée aux entrées de bourrage d'un compteur de durée 82 qui estmis en oeuvre de la même façon que le compteur de cadence 72 par compteur descendant prépositionnable par division par N+1. La sortie de barre (ZERO) normalement haute s'abaisse pour une période d'horloge lorsqu'un nombre d'impulsions d'hor- loge égal au nombre prépositionné a été compté et rétablit le compte prépositionné via une barre (SPE) sur la prochai- ne impulsion d'horloge. A. d'autres égards, toutefois, le compteur 82 diffère de façon significative du compteur de cadence 72. D'abord, toutes les huit entrées de bourra- ge ne sont pas sollicités par le-même verrou de durée no actionné par I/02. Les deux bits d'ordre les plus élevés (b6, b7) sont branchés en "0" et les deux bits d'ordre les plus élevés voisins sont alimentés à partir d'un verrou de durée d'ordre supérieur à 2 bits séparé qui est rythmé par I/05 en relation avec le verrou de polarité de boîtier 84b. Les verrous 84a et b comportent un simple verrou à 4 bits. En second lieu, l'entrée d'hor- loge est connectée à l'horloge rapide 56 qui normalement ne vient que brièvement pour une "rupture" de 100 KHz suivant la sortie de barre (ZERO) basse du compteur de cadence. En outre, l'entrée de barre (mise en service de comptage) au compteur de durée 82 est dirigée vers la sortie Q d'un basculeur de pulsation 86 qui synthétise l'impulsion d'entrée à l'amplificateur de stimulateur. I/03 sollicite un verrou 88 de courant de sortie à 7 bits qui prend le mot correspondant à 7 bits sortant du bus. Lorsqu'il est mis, en service par le basculeur de pulsation, le verrou 88 fait que le niveau de sortie choisi est appliqué par un amplificateur 90 qui produit la sortie du générateur d'impulsion 22. L'impulsion de sortie est appliquée aux électrodes (et au boîtier métal- lique- de î'implant, si désiré) via un bloc mémoire de MOSFET (transistors à effet de champ semi-conducteur à base d'oxyde métallique). Pour permettre la connection de chaque électrode ou du boîtier comme anode ou cathode, deux transistors à effet de champ sont utilisés par élec- trode. Ainsi, un groupe de huits transistors à effet de champ 92 sont utilisés pour les quatre électrodes E1-E4 et une simple paire de ces transistors 94 sont utilisés pour le boîtier métallique. Chaque électrode peut être soit connectée soit déconnectée comme anode ou connectée comme cathode selon le schéma de connexion établi par le verrou de polarité d'électrode 96 qui accepte et main- 1? tient le nombre à 8 bits présenté sur le bus lorsque I/04 est rythmé. De façon similaire, le boîtier peut être soit déconnecté ou connecté comme anode en continu ou en alternatif, comme anode ou cathode. Ces connexions sont établies par le verrou de polarité de boîtier 84b qui accepte et maintient le mot de polarité du boîtier à 2 bits sur le bus lorsque I/05 est rythmé. I/04 et I/05 sont rythmés dans cet ordre à chaque interruption du micro- processeur, c'est-à-dire lorsque le compteur de cadence se dérègle quand il est temps de délivrer une impulsion à moins que l'interruption ne soit mise hors service par le logiciel de cycle fonctionnement/repos. Un exemple de forme d'onde de tension sur une électrode connectée en l'état alternatif est représenté sur la figure 5, ligne A. Le basculeur de pulsation 86 est réarmé par le rythme I/04 produit comme partie du sousprogramme de service d'interruption. Ceci provoque une baisse de la sortie Q du basculeur qui met simultanément en service le compteur de durée 82 et le verrou de courant de sortie 88, après quoi une impulsion du stimulateur est annoncée par l'amplificateur. Le déréglage du compteur de durée 82 fait passer le basculeur d'impulsion à l'état élevé puisque la sortie de donnée est amenée au niveau logique positif. Lorsque la sortie Q du basculeur passe à -l'état haut, le compteur de durée et le verrou de courant de sortie sont mis hors service. Toutefois, dans l'inter.Val- le, le compteur de durée 82 a déjà été prépositionné-par la sortie de barre (ZERO) pour annoncer le prochain décompte. Le basculeur d'impulsion est positionné afin de mettre hors service le compteur de durée et le verrou de courant de sortie en- n'importe quelle situation par la sortie de barre (ZERO) du compteur de cadence M2 retournant à l'état haut. Une impulsion du stimulateur ne peut être mise hors service que. par l'apparition d'un rythme I/04 puisque celui-ci est la seule entrée qui peut provoquer la baisse de la sortie Q du basculeur de pulsation 86. Si le micro- processeur détermine que le stimulateur est dans la zone de repos d'un cycle de train d'impulsions fonctionnement/ repos, le signal I/04 suivant une interruption est omis jusqu'au moment o le microprocesseur décide que la phase de repos du cycle est terminée. Dans l'intervalle, toute- fois, le compteur de cadence 72 continue de fonctionner et ainsi continue de fournir des interruptions et l'horlo- ge rapide met en service des signaux à intervalles réguliers. Le compteur de durée 82, toutefois, se maintient au seuil de son décompte prépositionné pendant la période de repos, même si l'horloge rapide est mise en service. Sur la figure 2, l'interrupteur à languette 14 permet au patient d'arrêter ou de mettre à nouveau en marche le stimulateur implanté en mettant hors ou à nouveau en service l'horloge lente 54 via la porte NAND 99 (Fig. 3). L'horloge lente 54 est en fonctionnement lorsque la sortie de barre Q du basculeur à interrupteur à languette 42 (Fig. 2) à la porte 98 est bas. Le patient arrête l'horloge 54 en fermant momentanément l'interrupteur à languette au moyen d'un aimant qui inverse l'état du basculeur 42. La sortie de barre Q à la porte NAND 98 passe à l'état haut et provoque l'arrêt immédiat de l'horloge lente 54 à moins que le compteur de cadence 72 à ce moment ne soit o dans ce cycle d'horloge/la sortie de barre (ZERO) est basse et que l'horloge rapide fonctionne. Dans ce dernier cas, l'horloge s'arrête lorsque le compteur de cadence 72 finit son décompte et que la sortie de barre (ZERO) retourne à sa condition normalement haute. Si la programmation est tentée lorsque l'horloge lente a été mise hors service de cette façon, la première impulsion IR Positionne EF1 et met en marche l'horloge rapide. Le logiciel actionne I/01 tout en programmant, ce qui positionne le basculeur à interrupteur à languette 42 provoquant l'état bas de sa sortie de barre Q pour mettre en service l'horloge lente 54. Le double but du contrôleur de microprocesseur 18, en cas de nontraitement d'une transmission de donnée est: (1) de décider si l'on omet l'impulsion prochaine du fait que le stimulateur est dans la zone de repos du cycle fonctionnement/repos dans un mode de train d'impul- sions de fonctionnement,et (2) si le stimulateur est dans la zone de fonc- tionnement, de reprogrammer les oonnexions des électrodes et du boitier juste avant la prochaine impulsion. Le rythme du cycle fonctionnement/repos et l'alternance des connexions des électrodes et du boîtier pendant l'état d'interruption sont réalisés selon des programmes de routi- ne mémorisés sur la ROM 52. Dans la forme de réalisation préférée, une fonction additionnelle du microprocesseur est de ralentir la cadence d'impulsion pendant la partie de repos d'un cycle fonctionnement/repos-de sorte que l'intervalle entre les sollicitations de l'horloge rapide soit aussi long que possible pour épargner le courant. Dans le tableau ci-dessus, sont indiquées les spécifications des 16 composants intégrés normalisés de l'implant des figures 2-4 dans un but uniquement illustra- tif de la forme de réalisation actuellement préférée de l'invention. Récepteur IR36 monostable 34 Basculeurs 38, 42, 74, 86 Microprocesseur 50 ROM 52 MUX 58, 60, 76 Verrous 70,80,88,84,96 Compteurs 72, 82 Décodeur 62 Porte ET 78, portes pour le décodeur 62 Porte NAND 98, portes dans les horloges 54, 56 LEAU Motorola LM 3078 RCA CD 4098 (double monostable) 2 RCA CD 4013 (double "D") RCA CDP 1802 RCA CDP 1833 RCA CD 4053 (triple 2 bits) 4 RCA CD 4508 (double 4 bits) 2 RCA CD 40103 RCA CD 4028 RCA CD 4081 (quad 2-in) RCA CD 4093 (quad 2-in) Le système télémétrique implanté à deux voies caractérisé la communication synchrone avec les codes de modulation de largeur d'impulsions identiques. Comme 1 5 représenté à la figure 5, ligne B, les données sont codiées en binaire 1 et O en utilisant un signal d'impulsion à * deux niveaux présentant une période de répétition d'impul- sion de 3 ms. Une largeur d'impulsion de 1 ms indique un binaire "0" tandis qu'une largeur d'impulsion de 2 ms indique un binaire "1". Pour la transmission à partir de la tête télémétrique, les zones hautes du signal binaire correspondent aux intervalles ou la commande IR est mise en service et les émetteurs lumineux sont allumés. Pour le transpondeur résonant 30 de la figure 2, les zones élevées du signal de données binaire modulée de largeur d'impulsion correspondent aux intervalles o le transis- tor shunt est conducteur. Le pupitre de programmeur 12 converse avec l'implant au moyen de deux différentes sorties de mots: un mot de commande à 3 bits et un mot de donnée de valeur paramé- trique à 27 bits, comme représenté sur la figure 6. Les mots de commande appellent les sous-programmes de routine correspondant sur la ROM 52. Les commandes "en soi" ne sont pas mémorisées dans le microprocesseur 50; elles y sont directement appliquées. Le mot de donnée à 27-bit, par ailleurs, contient toutes les données paramétriques d'impulsion et est mémorisé dans le microprocesseur 50. Parmi les registres de mémoire-brouillon dans le micropro- cesseur (CDP 1802), deux paires de registre sont choisies comme registres temporaires et de contrôle pour le mot de donnée paramétrique transmise par le programmeur 12. La première paire de registre est désignée registre tempo- raire A (TEMPA) et registre temporaire B (TEMPB). Chacun présente une capacité à 16-bit pour un total combiné de un 32 bits dont cinq bits sont spécialisés à/nombre d'identi- fication de modèle fixé. La seconde paire de registre est désignée contrôle A (CONTA) et contrôle B (CONTB) de la même manière. Le Vocabulaire de commande renferme les commandes suivantes désignées par les six codes correspondants à 3 bits:CHARGE T, ACTIF, XMIT T, XMIT C, ROM DMP et STAT REPOS. La commandeCHARGE T sollicite le microprocesseur pour placer le mot de donnée à 27 bits qui suit immédiate- ment dans les registres temporaires A et B comme représenté dans la figure 7. Le mot de donnée comporte 27 bits en série qui sont codés en position. Les trois premiers bits commençant avec bO dicbttila- durée de pulsation par référence à une table de paramètres mémorisés dans la ROM 52. Les huit prochains bits commençant avec la posi- tion de bit b3 définissent les connections d'électrode (repos, anode, cathode, c'est-à-dire deux bits pour. chacune des quatre électrodes). Le prochain bit, en position bll, indique si le boîtier démarrera comme anode ou sera déconnectée. Le bit b12 choisit le mode de polarité cons- tant ou alternatif de fonctionnement. Les trois prochains bits commençant avec la position de bit b13 établissent le temps de repos pour un mode de train d'impulsions de fonctionnement et les trois bits suivants commençant avec b16 déterminentle temps de fonctionnement. Les temps fonc- tionnement/repos peuvent chacun être longs de zéro à sept minutes dans des accroissements de une minute, et sont ef- fectivement donnés dans la table de paramètres. Les quatre bits commençant avec b19 indiquent l'amplitude du courant de sortie et les quatre derniers bits, b237b26 désignent la cadence de pulsation programmée. Les bits de cadence et d'amplitude se référas également à la table de paramètres. -Le stimulateur implanté 10 peut être interrogé et reprogrammé--avec de nouveaux paramètres d'impulsion au moyen d'un programmeur de stimulateur neural externe, comme représenté sur la figure 8. Le programmeur est un système interactif intelligent, basé sur microprocesseur et capable de programmer, d'interroger et de vérifier de façon non-intruse les valeurs paramétriques de l'implant de stimulateur neural 10. Le système de programmation comprend deux composants séparés: un pupitre de program- meur à tableau haut 12 et une tête télématique tenue à la main et connectée par câble 16, décrite en détail par Slocum et al. dans la demande américaine précitée. Le pupitre de programmeur 12 est actionné par un simple mi- croprocesseur 100 intégré CMOS à 8 bits du même type que le microprocesseur 50 dans l'implant, c'est-à-dire que le logiciel RCA CDP 1802 est mémorisé sur une mémoire morte électriquement programmable (EPROM 102). Le pupitre 12 comporte un clavier 104 du type calculateur à 20 touches pour la sélection des paramètres, la révision et la programmation par l'opérateur. Le clavier 104 est constitué de quatre touches de commande dans la colonne de droite, portant les lettres F, Pt S et T et 16 touches numériques (0-15) agencé dans une rangée 4x4. Les touches numériques 0-10 sont marquées avec des régences correspondant aux divers paramètres programmables tels que la cadence, l'amplitude etc. La touche n0 15 porte une légence ROM DMP. En bref, la touche "S" est utilisée pour programmer l'implant à l'état de repos de façon auto- matique; la touche "P"' programme le stimulateur pour de nouvelles valeurs du paramètre d'impulsion; la touche "F" est utilisé pour proposer une nouvelle valeur pour l'un quelconque des paramètres programmables; et la touché "T" affiche simplement la valeur déjà proposée pour le paramètre choisi. Adjacente au pupitre 104, une paire de diodes émettrices en lumière visible (CED) 106 et 108 sont connec- tées pour indiquer respectivement, une entrée de pupitre non-valide et la proximité de la tête de programme 16 à l'implant 10. Egalement adjacent au pupitre 104, on a prévu un affichage 110 à quatre digits du type horloge 2CD à sept segments, actionné par un décodeur classique, un circuit de commande et de verrouillage 112 et un oscil- lateur de 30 Hertz 114. L'affichage 110 est contrôlé par l'intermédiaire d'un décodeur I/O 116.sensible aux trois bits de commande N du microprocesseur 100. La don- née à afficher est prélevée du bus de données à 8 bits. Lre pupitre 104 est interrogé via le décodeur I/O 110 qui commande un verrou d'entrée de colonne 118 et le circuit de la rangée de commande et de verrouillage 120. Les rangées de touches sont individuellement interrogées par ce circuit 120 et l'information introduite est portée sur le bus de données via le verrou d'entrée de colonne 118. Une mémoire vive 122 à 32 multiplets est utilisée pour la mise en mémoire temporaire des mots de données de para- mètre proposés. L'EPROM 102 et le RAM 122 sont à.la fois accessibles par un circuit décodeur d'adresse 124 via le bub d'adresse du microprocesseur. Les données entrant et sortant des mémoires 102 et 122 sont placés sur le bus de donnée. Le décodeur I/O de bits de commande 116 en relation avec le bus de donnée actionne également la sortie de mise en service du télémètre et les LED 106 et 108 via les commandes 126 de LED et de verrou. La tête télémétrique 16 exécute des fonctions de détection de proximité, de transmission et de réception. Pour les signaux destinés à l'implant 10, la tête 16 ren- ferme une commande pour infrarouge 128 qui actionne un certain nombre de LED infrarouges (non représenté) logés à la surface de la tête 16. La commande à infrarouge 128 est commandée directement par la sortie Q de bit de série du microprocesseur 100 dans le pupitre 12. La sor- tie Q est fournie sous forme modulée de largeur d'impul- sion (à savoir des impulsions de 1 et 2 ms), et la commande 128 met en marche et arrête les LED à IR selon l'état de la sortie Q. A l'intérieur de l'implant 10, ce signal de donnée est reçu par le circuit récepteur IR 36 représen- té sur la figure 2. La tête télémétrique 16 renferme le transmetteur porteur magnétique 130 pour inonder l'implant 10 avec un signal magnétique de fréquence myriamétrique d'ondre continue. Le signal magnétique irradié à nouveau ou réflé- chi de l'implant 10 est repris avec un décalage de phase caractéristique. L'amplitude du décalage de phase est détectée au seuil par un détecteur de proximité 132, La sortie ACQ du détecteur 132 positionne un repère externe à l'entrée de barre (EF1) du microprocesseur 100 pour indiquer que la tête de programmation 16 est positionnée de façon appropriée par rapport à l'implant 10 pour réali- ser la communication à deux voies. Un récepteur télémé- trique 134 dans la tête 16 produit un signal de sortie à l'entrée de barre (EF2) du microprocesseur 100. La sortie du récepteur 134 double le signal de donnée binaire modulé de largeur d'impulsion appliqué au circuit transpondeur résonant 30 (Fig. 2) dans l'implant. Le décalage de phase provoqué par le shuntage de la bobine syntonisée dans l'implant est démodulé par le récepteur 134. Le signal de mise en service de la télémétrie à partir de la console 12 active le récepteur 134 lorsque le programmeur externe attend une transmission de donnée de l'implant. Le programme de logiciel mémorisé sur EPROM 102, qui actionne le système de programmation, peut être codé sous forme numérique hexadécimale mais également en langage assembleur complètement annoté. Ce matériel, comme pour la ROM 52 de l'implant, est basé sur le répertoire de programmation normalisé du RCA CDP 1802. Lorsque le programmeur est mis en marche, avant la mise en route du clavier, le logiciel actionne le systè- me de programmation par l'intermédiaire d'un programme routine automatique d'interrogation initiale répartis en vingt-six étapes dans le Tableau 1 ci-dessous. TABLEAU I Programme d'interrogation ACTION DE PROGRAMMEUR 1) Attente pour détection de proximité 3) Impulsion "Demande.d'envoi" en transmission et attente pour im- pulsions "PRET A ENVOYER" -5) Commande "REGISTRE DE CONTROLE D'INTERROGATION" en-transmission initiale REPONSE DE STIMULATEUR 2) Détecteur.d'infra- rouge mis en -service 4) 2 impulsions "PRET A ENVOYER" transmises 6) Commande de décodage 7) Contenus du registre de contrôle transmis 8) Train d'impulsion du registre de contrôle décodé 9) Valeurs du registre de contr8ôle mémorisées )Attente pour détection de proxi- mité 11)Impulsion "Demande d'envoi" en transmission et attente pour im- pulsions "PRET A ENVOYER" )Commande "REGISTRE TEMPORAIRE D' INTERROGATION" 23)Train d'impulsion du registre temporaire décodé 24)Valeurs de registre - mémorisé )Valeurs 'de registre comparé aux valeurs de contrôle. Allez si inégal. 12) 2 impulsions "PRET A ENVOYER" transmises 21) Commande de décodage temporaire temporaire de registre au stade 1 26) Stimulation reprise Fn marche, le programmeur efface l'affichage 110 et attend que la tête de programmation soit placée sur l'implant. Une fois que le programmeur détecte la proximi- té via la ligne ACQ, le programmeur allume l'indicateur 5 de proximité LED 108 et commence à interroger et à vérifier les valeurs programmées du courant de stimulateur implanté, c'est-à-dire.les valeurs mémorisées dans les registres de contrôle A et B du microprocesseur 50 à l'intérieur de l'implant. Dans l'intervalle, à l'intérieur de l'implant, le champ magnétique de 16 KHz met en service le détecteur infrarouge 36 (fig. 2). Ensuite, au stade 5, du tableau 1, la commande "registre de contrôle d'interrogation", c'est-à-dire la commande "001" XMITC à 3 bits, est transmise par les impul- sions IR. Le stimulateur décode la commande avec le logi- ciel et ensuite transmet les contenus à 32 bits des regis- tres de contrôle double dans le microprocesseur implanté 50. Les contenus des registres de contrôle sont décalés en série hors de la sortie Q du microprocesseur implanté dans un code modulé de largeur d'impulsion et transmis via le transpondeur résonant à la tête extérieure 16. Le logiciel dans le pupitre de programmeur 12 décode î.e train de pulsation du registre de commande (stade 8) et mémorise les valeurs du registre de contrôle (stade 9). A ce point, le programme de routine d'interrogation initiale automatique répète le programme de routine action- néeà la main dans les stades 10, il et 12 après quoi le programme transmet la commande charge T suivie des contenus en série des valeurs de registre de contrôle mémorisées, qui sont transmises au préalable à l'étape 7 de l'implant. Des étapes 14 et 16 dans le stimulateur provoquent le placement de la valeur de registre de contrôle mémorisée extérieurement dans les registres temporaires A et B, dans le microprocesseur 50 de l'implant. A ce point, les valeurs de courant des paramètres de stimulation ac- tuels dans les registres de contrôle ont été transférées à des registres temporaires de sorte que présentemment, les registres de contrôle et temporaires dans l'implant doivent être à la fois identiques aux valeurs reçues et mémorisées par le programmeur externe. Les étapes 17 à 19 répètent le programme de routine manuel une fois encore pour assurer une proximité continue pour l'acquisition du signal proprement dit. Dans l'étape , le programmeur provoque la transmission de la commande XMIT T à 3 bits via la commande IR 128, qui amène le stimu- lateur à transmettre les contenus de ces registres tempo- raires. Les valeurs des registres temporaires sont mémori- sées extérieurement dans la mémoire vive 122 et comparées dans les étapes 24 et 25 aux valeurs de registre de contrôle mémorisées auparavant. Si elles concordent, l'interroga- tion couronnée de succès est indiquée à l'opérateur par 4 tirets dans les positions chiffrées du dispositif d'affi- chage 110 /--:--7. Si les valeurs ne concordent pas, le programme de routine d'interrogation en entier est répété. Dans l'intervalle, en l'absence de commandes externes non exécutées, le stimulateur reprend la stimu- lation. L'interaction de l'interrogation initiale automati- que du tableau I est un programme de routine de vérification de transfert de données. Ainsi, l'implant transfère un mot à 32 bits au programmeur; le programmeur transfère le même mot à 32 bits en retour à l'implant et ensuite demande à l'implant de transférer le même mot à 32 bits à nouveau au programmeur qui le compare avec la réception originale pour voir si les deux concordent. Cet échange assure l'intégrité de la transmission et du décodage du système de communication. Une fois que le programme de routine d'interroga- tion initiale est terminé avec succès, le logiciel arrête l'indicateur de proximité LED 108 et commence à contrôler le pupitre. Toutefbis, les contenus des registres de contrôle dans l'implant sont maintenus dans la mémoire (RAM 122) réfléchissant les paramètres de courant qui se sont avérés avoir un effet sur l'implant pendant le programme de routine d'interrogation initiale. Le tableau II ci-dessous indique les nombres de référence d'afficha- ge correspondant aux valeurs programmables qui peuvent être choisies par l'intermédiaire du pupitre 104. Paramètre Cadence TABLEAU II Affichage Réf. 4 o0 1il Valeur actuelle 8 pps. pps. 12 pps. pps. pps. pps. pps. 33 pps. pps. pps. pps. pps. pps. pps. pps. pps. Amp (amplitude) o0 0,1 ma. 0,2 ma. 0,4 ma. 0,6 ma. 0,8 ma. 1,0 ma. 1,2 ma. 1,4 ma. 2,0 ma. 3,0 ma. 4,0 ma. ,0 ma. 6,0 ma. 7,0 ma. 8,0 ma. ,0 ma. Paramètre Ton (Temps de fonction- nement) TABLEAU II (suite) Affichage Réf. * O - 1 Valeur actuelle 0 mn 1 mn 2 mn 3 mn 4 mn mn 6 mn 7 mn Toff. (Temps de repos) même que Ton même que Ton 0o continu alternatif non connecté anode Elec 1 (Electrode 1) Elec 2 (Electrode 2) Elec 3 (Electrode 3) Elec 4 (Electrode 4) même que Elec 1 -même que Elec 1 même que Elec 1 anode non connectée invalidée cathode même que Elec 1 même que Elec 1 même que Elec 1 Dur (Duration) s s s s 250 s 300 s 350 s 400 s La touche de commande "F"' appelle un sous-program- me de routine qui est utilisé pour afficher la valeur du courant etproposer une nouvelle valeur pour n'importe lequel des paramètres programmables désignés ci-dessus par les touches numériques 0-10. L'enfoncement de la touche Mode Boîtier "F" affiche un "1-4" sur la moitié gauche du dispositif d'affichage. Exemple 1: Touche enfoncée Affichage résultant F /-4: 1 (amp).1:1Q/ La séquence ci-dessus d'enfoncement des deux touches, F, 1, se traduit dans l'affichage de la valeur de courant pour l'amplitude selon les teneurs mémorisées des registres de contrôle. Le "1" sur la moitié gauche du dispositif d'affichage correspond à la touche numérique ci-dessus qui est marquée "amp" pour l'amplitude sur le pupitre 104 de la figure 8. Le nombre "10" sur la moitié droite du dispositif d'affichage est un chiffre de référence pour la valeur 4,0 ma du tableau de paramètres II ci-dessus. Pour proposer une nouvelle valeur,un troisième enfoncement de touche consécutif, "9" par exemple, se traduit par un affichage /f1: 9/. Le chiffre "1" représente encore le paramètre amplitude, et le chiffre "9" représente la nouvelle valeur proposée correspondant à 3,0 ma, qui est présentement maintenue en mémoire par le pupitre program- meur 12. Cette opération est répétée pour chacun des autres paramètres, CADENCE, TEMPS DE FONCTIONNEMENT, TEMPS DE REPOS, MODE, BOITIER, ELECTRODES 1, 2, 3 et 4, et DUREE (largeur de pulsation). Initialement, toutefois, le regis- tre dans le programmeur externe qui sert à maintenir les valeurs proposées est positionné à égalité avec les valeurs de courant reçues du registre de contrôle implantées. En conséquence, seuls ceux des paramètres qu'il est désira- ble de modifier ont été entrés via la séquence d'enfonce- ment de la touche "F". Après avoir fait entrer les nouvelles valeurs de paramètres, la touche de commande "P" est utilisée pour programmer l'implant à la nouvelle valeur proposée "Pl'. L'enfoncement de la touche "P" efface l'affichage jusqu'à ce que la vérification de la programmation couron- née de succès soit indiquée par l'apparition de "-3" dans la partie gauche du dispositif d'affichage /-23: _. Une description étape par étape du programme de routine commen- cé en enfonçant la touche "P" est indiquée dans le tableau suivant III. TABLEAU III Programme de routine ACTION DE PROGRAMMEUR REPONSE DU STIMULATEUR 1) Attente pour la détection 2) Mise en service de l'in- de proximité. frarouge 3) Transmission de la pulsation 4) Transmission de 2 pulsa- "REQUETE POUR ENVOI" et at- tions "PRET A ENVOYER" tente des pulsations "PRET A ENVOYER". ) Transmission de commande 6) Commande de décodage "REGISTRE DE CONTROLE d' INTERROGATION" 8) Décodage du train de pulsa- tion du registre de contrôle 9) Comparaison des données re- cues "Registre de contrôle" aux données antérieures "Re- gistre de contrôle".Si elles ne sont pas égales, le pro- grammeur adopte de nouvelles attitudes patientes et va au stade 1 du tableau I. )Attente pour une détection 12) Transmission de 2 impul- de proximité sions "PRET A ENVOYER" 11)Transmission d'une impulsion "REQUETE AU RENVOI" et atten- te des impulsions "PRET A EN- VOYER". 13)Transmission d'une commande 14) Commande de décodage. "REGISTRE TEMPORAIRE DE CHAR- GE". )Transmission "VALEURS PROPO- 16) Décodage du train d'im- SEES". pulsion et mémorisation dans le registre tempo- raire. TABLEAU III (suite) ACTION DE PROGRAMMEUR 17) Attente pour détection de proximité. 18) Transmission de la commande 21) "REGISTRE TEMPORAIRE D'IN- TERROGATION". 23) Décodage et mémorisation des valeurs du train d'im- pulsion du registre tempo- raire. 24) Comparaison des valeurs du registre temporaire aux va- leurs proposées. Passage à l'étape 1 (Tableau III) en cas d'inégalité. 25) Attente pour détection de proximité 26) Transmission de l'impulsion "REQUETE POUR ENVOI" et at- tente des impulsions "PRET A ENVOYER". 28) Transmission de la commande "ACTIVATION". 3u 31) Attente pour détection de proximité 32) Transmission de l'impulsion "REQUETE POUR ENVOI" et at- tente des impulsions "PRET A ENVOYER" 34) Transmission de la commande "REGISTRE DE CONTROLE D'IN- TERROGATION". REPONSE DU STIMULATEUR Commande de décodage 22) Transmission des contenus du registre temporaire (valeurs proposées). 27) Transmission de 2 impul- sions "PRET A ENVOYER". 29) Décodage de la commande ) Transfert et valeur de registre temporaire au registre de contrôle. *33) Transmission de 2 impul- sions "PRET POUR ENVOYER" ) Décodage de la commande. TABLEAU III (suite) ACTION DE PROGRAMMEUR REPONSE DE STIMULATEUR 37) Décodage et mémorisation des valeurs du registre de con- trône. 38) Comparaison des valeurs du 39) Reprise de la registre de contrôle reçues stimulation. aux valeurs proposées. Passage à l'étape 1 (Tableau III) si elles sont inégales. Les premières huit étapes de la séquence automatique mise en route en enfonçant la touche "P" sont les mêmes que dans le programme de routine d'interrogation initiale dans lequel les- teneurs des registre de contrôle de l'im- plant sont transmises après la détection de proximité et la manipulation. A ce moment, le programmeur compare les données du registre de contrôle nouvellement reçues aux données du registre de contrôle mémorisées auparavant et qui sont prises pendant l'interrogation initiale. Si les deux ne concordent pas, le programmeur adopte une nouvelle attitude de patience et sollicite le programme de routine d'interrogation initiale du tableau I. Ceci est indiqué, pourvu que l'interrogation initiale soit couronnée de succès par 4 tirets apparaissant dans les positions numériques de l'affichage /--:-=/. Si les con- tenus du registre de contrôle concordeWfans le stade 9 du tableau III, le programme de routine se poursuit par l'acquisition et la combinaison commence ensuite le char- gement des registres temporaires dans le microprocesseur 50 de l'implant en transmettant la commande à 3 bits CHAR- GE T suivie par le mot de donnée à 27 bits. La routine de programmation se reporte à nouveau aux étapes 17-19 et interroge les registres temporaires venant d'être chargés en délivrant une commande à 3 bits XMIT T. Dans les étapes 23 et 24, les valeurs de regis- tre temporaire transmises par l'implant sont comparées aux valeurs proposées et s'il n'y a pas concordance, la routine de programmation du tableau III recommence. S'il y a accord, le programmeur ré-acquiert, recombine manuelle- ment avec l'implant (étapes 25-27) et transmet la commande ACTIVE qui fait que ltimplant transfère les valeurs des re- gistres temporaires aux registres de contrôle (étape 30). Cette commande reprogramme le stimulateur aux valeurs de paramètre désirées'comme explicité ci-dessous en relk- tion avec le logiciel du stimulateur. Toutefois, la routi- ne de programmation externe n'est pas encore terminée. Après recombinaison manuelle, elle ordonne à l'implant de transmettre les valeurs du registre de contrôle en envoyant une commande à 3 bits XMIT C, comme dans la rou- tine d'interrogation initiale. Si les valeurs du registre de contrôle venant d'être transmises ne sont pas égales aux valeurs proposées encore mémorisées dans le programmeur extérieur, le programme de routine recommence.Si elles sont correctes, les tirets d'affichage' [-3: j&/signalanN la fin de la routine de programmation et la reprise de là stimulation par l'implant selon les paramètres de stimula- tion nouvellement programmés. Il existe deux autres fonctions qui peuvent être choisies par le clavier de programmation 104. La touche de commande "T" est similaire à la touche de commande "F" mais est utilisée pour afficher seulement la valeur proposée du paramètre choisi. Exemple 2: Enfoncement de touche Affichage résultant T /31: 7 1 d1: 9? La séquence ci-dessus à deux enfoncements affiche la va- leur proposée pour l'amplitude qui était entrée au premier exemple. Si la touche "FI' a été utilisée à la place de la touche "T", la valeur du paramètre d'amplitude qui a été trouvée pendant l'interrogation initiale (c'est- a-dire "10"), aurait été affichée. La touche de commande "S" est utilisée pour program- mer l'implant automatiquement en phase de repos sans avoir à utiliser la touche F pour faire entrer toutes les condi- tions de repos comme valeurs nouvelles proposées. L'en- foncement de la touche "S" est indiqué par l'affichage d'un chiffre "-2" dans la partie gauche du dispositif d' affichage. Outre, les quatre commandes décrites ci-dessus, le programmeur est capable de vérifier les contenus des rmminoires mortes de l'implant. Cette caractéristique ne devrait se trouver habituellement que dans un programmeur utilisé en fabrication pour vérifier les teneurs des mémoi- res mortes des stimulateurs implantables avant expédition. Cette caractéristique est réalisable par la séquence sui- vante d'enfoncement de touche: Exemple 3: Enfoncement de touche Affichage résultant F /-4:2 15 /15: _ Le cycle de machine du microprocesseur externe est originellement d'environ 1,25 microsecondes. Ainsi, l'horloge à cristal pour le microprocesseur externe devrait être nominalement de 6,5 mégahertz. Puisque les dispositifs implantés et externes fonctionnent avec des alimentations en énergie indépendantes et que l'horlo- ge interne, au moins dans la présente réalisation, n'est pas un oscillateur à cristal, il est possible avec des piles veillissantes pour le rythme du code de pulsation télémétrique d'éluder l'intervalle d'échantillonnage 1,5 ms. Ainsi, il peut être avisé de tebter la largeur d'impulsion des impulsions prêtes à l'envoi, par exemple, et de régler l'intervalle d'échantillonnage en conséquence avec un logiciel additionnel. Les commandes de ROM DMP et STAT OFF du program- meur extérieur appellent des sous-programmes de routine spé- cifique dans l'implant. Le sous-programme de la ROM DMP décharge automatiquement les contenus en série de la ROM implantée 52 par/ sortie de donnée Q du microprocesseur 50 dans un code modulé de largeur d'impulsion. Le sous-pro- gramme du STAT OFF de l'implant établit automatiquement les paramètres de repos directement via un sous-programme de routine d'initialisation interne sur la ROM 52. Le stimulateur neural implanté contrôlé par micro- processeur décrit ci-dessus optimise la flexibilité de contrôle sur les paramètres d'impulsion de stimulation pour le façonnier comme pour le médecin tout en minimisant le nombre de composants et la perte de courant pour une longue durée de vie des piles. L'énergie est épargnée en mettant hors service l'horloge rapide qui rythme la largeur de pulsation, excepté lorsqu'elle était absolument nécessaire ppur cette fonction ou pour faire fonctionner le microprocesseur. La capacité de communication à deux voles de l'implant assure une entrée de programme fiable et offre un canal pour interroger les paramètres de fonc- tionnement du stimulateur à n'importe quel moment. La division unique du travail entre le microprocesseur program- mé mémorisé et le compteur numérique discret offre le maximum de souplesse et d'efficacité. Le mode de polarité alternante de fonctionnement est un mode de stimulation jusqu'à présent non réalisable qui aura; Jas avantages physiologiques dans certaines situations. En particulier, on peut prévoir que les actions électrochimiques sur les tissus au site de l'électrode seront améliorées par la polarité alternative pendant une longue thérapie. L'uti- lisation d'une table de paramètres mémorisés pour la ca- dence, la largeur, l'amplitude et les temps de repos et de fonctionnement ajoute à la capacité d'altérer les para- mètres mémorisés par masquage, sans avoir d'effets sur le système de fonctionnement. Le circuit décrit ci-dessus peut être modifié et changé à de nombreux égards, sans s'écarter des princi- pes de base de l'invention telle que spécifiée ci-dessus. Par exemple, le fonctionnement des microprocesseurs ne dépend pas d'une forme spécifique de transmission de don- nées. Quoiqu'une transmission par infrarouge modulé de longueur de pulsation et une télémétrie magnétique de signal réfléchi soient préférées;. d'autres modes de com- munication pourront être mis en oeuvre si le système est adapté à décoder les données. Le microprocesseur RCA CDP 1802 est préféré pour l'implant du fait de sa construc- tion CMOS et de l'abondance de ses registres internes. Nonobs- tant d'autres systèmes de microprocesseurs du commerce peuvent être utilisés, et avec les progrès de la technolo- gie, de nouveaux composants seront sans doute bien mieux appropriés. Une mémoire vive extérieure peut être utilisée le cas échéant. Les-horloges lentes et rapides peuvent être montées-de différentes façons, bien que les combinai- sons de déclencheur de Schmitt RC illustrées à la figure 3 soient préférées du fait de leur faible consommation de courant. En variante, il peut être possible d'utiliser un simple oscillateur et de modifier uniquement la partie de l'oscillateur qui détermine la cadence. Toutefois, ceci pourrait encore être réalisé avec deux configurations d' oscillateurs séparés. L'invention ne dépend pas des détails spécifiques du pupitre de programmeur et un format de données ou de commandes spécifiques en tant que programme mémorisé peut être modifié pour satisfaire aux besoins d'un format rai- sonnable quelconque. Les principes de l'invention ne sont pas limités aux stimulateurs neuraux à plusieurs électrodes mais sont applicables à tous les stimulateurs implantables qui fonctionnent en appliquant des pulsations d'électrici- té à une électrode de stimulation. Quoique des composants discrets sônt utilisés dans la forme de réalisation préfé- rée pour les verrous de paramètres et les fonctions de générations d'impulsions, ceci ne signifie pas qu'il faut exclure la possibilité de mettre en oeuvre ces fonctions dans un logiciel réalisé par le même microprocesseur qui est utilisé pour la programmation ou par un second micro- processeur destiné à la fonction de génération d'impulsion. Certains aspects du système ne sont pas limités au système de traitement de données de programme mémorisé et sont applicables en général aux implants de stimulateur. Par exemple, le mode de polarité alternante peut être mis en oeuvre entièrement en matériel comme peut l'être le système de génération d'impulsion épargnant l'énergie de l'horloge double. Comme des modifications variées peuvent être réa- lisées dans la construction ci-dessus sans s'écarter du do- maine d'application de l'invention, il est clair que toutes les indications contenues dans la description ci-dessus ou représentées dans les dessins annexés doit être inter- prêtée comme illustratifs et non-limitatifs. 3X' 2499265 RrVENDICATIONS 1. Système d'entrée de programme de paramètre d'im- pulsion pour un stimulateur de tissu implantable, caracté- risé par le fait qu'il comporte des modules de communica- tion (14) pour recevoir des commandes extérieurement trans- mises et des données de paramètre d'impulsion et pour pro- duire une sortie binaire en série indicatrice de ces derniè- res, un processeur de données de programme mémorisé compre- nant des moyens de programme mémorisé (52) contenant des instructions fixées, des moyens de traitement (50) pour appeler et mettre en oeuvre des instructions à partir des- ditsmoyens de programmation mémorisée, un certain nombre de registres de mémoire-brouillon, une entrée de donnée en série connectée en fonctionnement pour recevoir la sortie dudit module de communication, un certain nombre de sorties de commande et un bus de donnée (24), lesdits moyens de programmation mémorisée (52) renfermant des instructions pour amener lesdits moyens de traitement (SO) à répondre à une série prédéterminée de commande à ladite entrée de données en série par charge d'un mot de donnée subséquent indicateur des paramètres d'impulsion choisis dans au moins un registre de mémoire-brouillon interne des moyens de trai- tement (50), lesdits moyens de programmation mémorisée (52) renfermant des instructions pour amener lesdits moyens de traitement (50) à transférer les contenus de l'un des regis- tres de mémoire-brouillon (TEMPA, TEMPB, CONTA, CONTB) inter- ne à d'autres registres de mémoire-brouillon en-réponse à une série prédéterminée de bits de commande à l'entrée des données en série, un certain nombre de moyens de verrouilla- ge (20) de paramètres d'impulsion pour établir lesdits para- mètres d'impulsion désirés, lesdits moyens de programmation mémorisée comportant des instructions pour amener lesdits moyens de traitement à produire une commande de sortie cor- respondant à un type particulier de paramètre et à appliquer simultanément audit bus de donnée, un mot de donnée corres- pondant à la partie des contenus de l'autre registre de mémoire-brouillon pour déterminer le paramètre correspon- dant, lesdits moyens de verrouillage étant connectés en 2 4 99265 fonctionnement pour obtenir le mot de donnée sur ledit bus de donnée en réponse à ladite commande de sortie. 2. Système selon la revendication 1, caractérisé par le fait que ledit module de commutation (14) présente une entrée de donnée et des moyens pour transmettre les données, lesdits moyens de programmation mémorisée (52) comportant des instructions pour amener lesdits moyens de traitement (50) à décaler les contenus de l'un ou l'autre des registres de mémoirebrouillon en série en dehors de ladite entrée de donnée dudit module de communication pour transmission en réponse à une série de bits de commande à une entrée de données en série.