SYSTEME D'ACQUISITION MODULAIRE ET TEMPS REEL DE SIGNAUX, ET NOTAMMENT DE SIGNAUX BIOMEDICAUX
DOMAINE TECHNIQUE La présente invention concerne l'acquisition temps réel de signaux
(physiques ou électriques). Elle a pour principal objet un système d'acquisition temps réel qui est modulaire et facilement configurable en fonction du type de signaux à acquérir pour une application donnée. L'invention trouve préférentiellement, mais non exclusivement, son application dans le domaine médical, pour l'acquisition temps réel de signaux biomédicaux, tels que par exemple un signal électrocardiographique (ECG), un signal représentatif de la pression sanglante, un signal représentatif de la température corporelle d'un individu, un signal représentatif du pouls d'un individu, un signal représentatif de la pression ou du débit des voies respiratoires d'un individu, etc.. ART ANTERIEUR Dans le domaine médical, pour contrôler l'état physiologique d'un individu, il est usuel d'utiliser un système d'acquisition temps réel des principaux signaux biomédicaux mesurés sur cet individu, tels que par exemple un signal électrocardiographique (ECG), un signal représentatif de la pression sanglante, un signal représentatif de la température de l'individu, un signal représentatif du pouls d l'individu, un signal représentatif de la pression ou du débit des voies respiratoires de l'individu, etc...(énumération non limitative de l'invention et non exhaustive) Dans une version simplifiée, ce système d'acquisition temps réel peut être conçu pour remplir le simple rôle d'acquisition temps réel et de stockage chronologique des données, lesquelles données sont ensuite analysées en différé, par exemple pour un diagnostique médical de l'état de l'individu. Dans une version plus sophistiquée, le système d'acquisition temps réel peut être conçu pour également traiter les données acquises dans un but par exemple de surveillance continue de l'état de l'individu (« monitoring »), et éventuellement d'alerte automatique en cas de détection d'une défaillance sur l'un des signaux biomédicaux.
Le système d'acquisition temps réel peut être un dispositif fixe du type station d'acquisition. Dans le but d'éviter d'entraver la mobilité du patient, on propose également des systèmes d'acquisition qui sont en tout ou partie réalisés sous la forme de dispositifs ambulatoires portatifs. Les signaux biomédicaux qui sont acquis en temps réel peuvent indifféremment, et selon le type de capteurs utilisés, être des signaux électriques de type analogique ou numérique, ou encore un signal physique (température, pression,...). 1ere contrainte : Dans tous les cas de figures, il est essentiel que l'acquisition de la valeur instantanée des différents signaux par le système d'acquisition soit réalisée en temps réel et en même temps pour chaque signal, de telle sorte que l'on puisse valablement comparer les évolutions temporelles de ces signaux. 2πde contrainte : il est également important de pouvoir facilement configurer et modifier à volonté le système d'acquisition, en sorte de l'adapter au cas par cas en fonction du type des signaux que l'on souhaite acquérir. Un système de surveillance médical mettant en oeuvre une pluralité de modules d'acquisition déportés est par exemple décrit dans la demande de brevet internationale WO 02/35997. Dans ce système, chaque module d'acquisition (Figure 1 / « Device #3.2.4..1 » ;
« Device#3.2.4.2 » ) est conçu pour réaliser des opérations d'acquisition qui sont cadencées par une horloge qui lui est propre, et qui n'est pas synchrone avec les horloges des autres modules d'acquisition. Il en résulte que les opérations d'acquisition par les modules d'acquisition déportés sont totalement asynchrones les unes par rapport aux autres. Ce système ne permet pas de satisfaire la première contrainte précitée. Dans la demande de brevet européen EP 0 354 251 de la société
Hewlett-Packard GmbH, il a déjà été proposé un système d'acquisition temps réel et modulaire qui satisfait les deux contraintes précitées. Ce système est constitué par une station d'acquisition configurable qui comporte une unité de traitement comprenant un processeur maître, et une pluralité de modules d'acquisition déportés et équipés chacun d'un processeur esclave. Le processeur maître communique avec les
processeurs esclaves via un bus de communication filaire, en adressant à chaque fois (Figure 2/ lignes d'adressage référencées 20, 21, 25, 26, 27) le processeur esclave avec lequel il souhaite communiquer. Dans cette solution, une partie du bus de communication filaire (Figure 2/ ligne de communication référencée 30) forme un premier canal monodirectionnel d'émission (du processeur maître vers les modules d'acquisition) et une partie du bus (Figure 2/ ligne de communication référencée 31) forme un second canal monodirectionnel de réception (des modules d'acquisition vers le processeur maître) distinct du canal d'émission. Plus particulièrement, chaque module d'acquisition est prévu pour être connecté de manière amovible dans un rack, ledit rack étant équipé de moyens de décodage (Figure 2/ moyens référencés 22, 23, 24) de l'adresse physique dudit module d'acquisition. Dans la solution technique ci-dessus proposée par la société
Hewlett-Packard GmbH, le processeur maître est cadencé par une horloge temps réel et communique avec les processeurs esclaves selon des cycles de communication successifs de durée fixe (2ms dans l'exemple des chronogrammes des figures 4 et 5). Au cours d'un cycle de communication, le processeur maître interroge certains processeurs esclaves (en fonction d'une liste contenue dans une matrice d'interrogation), et en adressant successivement chaque processeur esclave de la liste. Chaque processeur esclave, adressé à un instant donné par le processeur maître, renvoie au processeur maître (Figure 2/ ligne de communication série (31)) la donnée qui a été échantillonnée et mémorisée par le module d'acquisition lors du cycle de communication précèdent. A chaque fin de cycle de communication, tous les modules d'acquisition détectent parallèlement et simultanément le changement d'état (fin du cycle de communication) du signal de communication généré par le processeur maître sur la ligne de transmission (Figure 2/ Ligne de transmission (30)) et réalisent, ainsi de manière synchrone, leur opération d'échantillonnage. La solution technique précitée présente toutefois plusieurs inconvénients.
1er Inconvénient : vitesse de communication limitée entre le processeur maître et les modules d'acquisition Pour chaque donnée échantillonnée transmise au processeur maître, il est nécessaire que le processeur maître adresse préalablement le processeur esclave du module d'acquisition concerné. Cette contrainte d'adressage ralentit de manière préjudiciable le dialogue entre le processeur maître et les modules d'acquisition, et de ce fait limite le nombre de modules pouvant communiquer avec le processeur maître pendant un cycle de communication de durée fixe.
2eme inconvénient : Adressage physique Pour un système d'acquisition donné, la taille du bus d'adressage entre le processeur maître et les modules d'acquisition conditionne le nombre maximum de modules d'acquisition pouvant être utilisés (pour un bus d'adressage comportant (n) fils, le nombre maximum de modules d'acquisition est 2n). Ainsi, lorsqu'en final le système est configuré par l'utilisateur avec un faible nombre de modules par rapport à la taille du bus d'adressage, on se retrouve en pratique avec un bus d'adressage surdimensionné et ayant entraîné des coûts de fabrication inutiles. A l'inverse, si pour des raisons de réduction de coûts de fabrication, on réalise d'emblée un système d'acquisition comportant un bus d'adressage de faible dimension, l'utilisateur final est pénalisé en étant réduit à ne pouvoir utiliser qu'un faible nombre de modules d'acquisition. De surcroît, l'adressage physique des modules d'acquisition impose la mise en œuvre de moyens de décodage de l'adresse (figure 2/ Moyens référencés 22,23,24), qui sont dissociés du module d'acquisition et qui sont prévus au niveau du rack d'adaptation des modules. Cette contrainte rend difficile et est inadaptée à la réalisation d'un système d'acquisition ambulatoire et portatif.
3eme inconvénient : solution nécessairement limitée à une communication filaire La solution technique décrite dans la demande de brevet européen EP 0 354 251 repose intrinsèquement sur une communication via une liaison filaire entre le processeur maître et les processeurs esclaves des modules d'acquisition. Cette solution est inadaptée à la mise en
œuvre d'une communication à distance sans fil entre le processeur maître et les modules d'acquisition. OBJECTIF DE L'INVENTION L'invention vise à proposer une nouvelle solution qui permet de répondre aux deux contraintes précitées (acquisition temps réel et synchrone des signaux ; modularité), et qui pallie tout ou partie des inconvénients susmentionnés de la solution technique décrite dans la demande de brevet européen EP 0 354251. RESUME DE L'INVENTION L'objectif ci-dessus est atteint par le système d'acquisition modulaire et temps réel de l'invention présentant les caractéristiques techniques de revendication 1. Dans le présent texte, les termes « module d'acquisition » désignent d'une manière général tout module conçu pour remplir au moins une fonction d'acquisition d'au moins un signal sur au moins une entrée du module. Il peut s'agir d'un module conçu uniquement pour acquérir un ou plusieurs signaux ou d'un module plus complexe pouvant, remplir d'autre(s) fonction(s), en plus d'une fonction d'acquisition ; en particulier et de manière non exhaustive, il peut s'agir d'un module mixte (acquisition /sortie) apte à délivrer en sortie au moins un signal pour un dispositif annexe. Dans le cadre de l'invention, le signal présent sur une entrée d'un module d'acquisition peut indifféremment être un signal électrique de type analogique ou numérique, ou encore être un signal physique (chaleur, force,..), la notion « d'acquisition » au sens de l'invention consistant d'une manière générale à acquérir la valeur instantanée de ce signal. Dans le présent texte, la notion de « canal de communication bidirectionnelle semi duplex» désigne tout canal de communication sur lequel des informations peuvent être échangés dans les deux sens et la transmission d'informations sur le canal de communication a lieu alternativement dans chaque sens. Dans le cadre de l'invention, le canal de communication bidirectionnel semi duplex pourra selon le cas être implémenté sous forme filaire ou être constitué par un canal de communication à distance sans fil (canal de communication hertzien ou équivalent).
Selon une caractéristique additionnelle préférée du système de l'invention, les modules d'acquisition sont conçus pour émettre sur le canal de communication bidirectionnel, et les uns à la suite des autres, leur(s) donnée(s) d'acquisition selon un ordre d'émission prédéterminé, et sans être adressés par le module de commande. L'invention trouve préférentiellement (mais non exclusivement) son application dans le domaine médical, les modules d'acquisition du système de l'invention permettant l'acquisition de signaux biomédicaux. BREVE DESCRIPTION DES FIGURES D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description détaillée ci-après d'un exemple préféré de réalisation de l'invention, laquelle description détaillée est donnée à titre d'exemple non limitatif et en référence aux figures annexées sur lesquelles : - la figure 1 représente un exemple d'architecture électronique générale d'un système d'acquisition modulaire de l'invention, - la figure 2 représente un exemple d'architecture électronique d'un module d'acquisition/sortie, - la figure 3 représente un exemple d'architecture électronique du module de commande (tête de réseau) du système de l'invention, la figure 4 représente un exemple de trames de données échangées en semi-duplex entre le module de commande (Tête de réseau) et les modules d'acquisition du système, - les figures 5 à 7 sont des organigrammes illustrant les principales étapes de fonctionnement du processeur du module de commande (tête de réseau), et - les figures 8 et 9 sont des organigrammes illustrant les principales étapes de fonctionnement du processeur d'un module d'acquisition DESCRIPTION DETAILLEE DE L'INVENTION Système d'acquisition - Architecture générale (Figure 1) On a représenté sur la figure 1 , un exemple préféré d'architecture électronique d'un système d'acquisition de l'invention comportant : - une pluralité de modules n°AAA, BBB XXX, - un module de commande 1 (désigné ci-après « tête de réseau ») connecté à tous les modules n0AAA,...,XXX, par un réseau de
communication filaire qui est géré en sorte de former un canal de communication bidirectionnel 2 semi-duplex (« half duplex »), - un module de traitement 3. Dans l'exemple illustré sur la figure 1 , les modules n°AAA et n°BBB sont des modules qui permettent d'une manière générale d'acquérir en parallèle des signaux (Ea à Eg) présents à l'entrée des modules. Selon le type de module utilisé, le signal en entrée (Ea,...,Eg) peut indifféremment selon l'invention être un signal électrique de type analogique ou numérique délivré par un autre dispositif non représenté (par exemple capteur, appareil de mesure,...) ou être un signal représentatif d'une grandeur physique telle qu'une force (notamment lorsque le module d'acquisition intègre un transuducteur). Le module n°XXX constitue en revanche un module de sortie permettant de délivrer dans l'exemple illustré deux signaux Si. Un module peut également être mixte (Module d'acquisition/sortie) et permettre en parallèle l'acquisition d'un ou plusieurs signaux en entrée et délivrer en sortie un ou plusieurs signaux, tel que dans l'exemple particulier de module 4 de la figure 2. Module d'acguisition et/ou sortie-Architecture généralefFigure 2) En référence à la figure 2, un module 4, quel que soit son type (module d'acquisition, module de sortie, ou module mixte acquisition/sortie), comporte de préférence un sous-module 4a de conditionnement des signaux en entrée et/ou sortie et un sous-module 4b de traitement numérique. Le sous-module de traitement numérique 4b comporte plus particulièrement un processeur programmable (type microprocesseur avec de la mémoire locale ou microcontrôleur) cadencé par sa propre horloge (non représentée) et une interface réseau 41 permettant de connecter le processeur 40 du sous-module de traitement numérique 4b au réseau de communication bidirectionnel 2. En pratique, chaque module est équipé d'un connecteur permettant de facilement brancher ou déconnecter le module sur le réseau 2. Dans l'exemple illustré sur la figure 2, les deux sous-modules 4a et 4b communiquent via un bus parallèle d'entrées/sorties (ES) bidirectionnel. Lorsque le module 4 remplit une fonction d'acquisition, le sous-module de traitement numérique 4b comporte un convertisseur
analogique/numérique 42 dont les entrées analogiques (signaux 43) sont connectées respectivement aux sorties analogiques (signaux 44) de la partie du sous-module 4a dédiée au conditionnement des signaux d'entrée, via le bus de communication local (E/S) précité ; les sorties numériques (signaux 45) du convertisseur analogique/numérique 42 sont connectées sur un ou plusieurs ports d'entrée du processeur 40. Lorsque le module 4 remplit une fonction de « sortie », le processeur 40 du sous-module de traitement numérique 4b communique localement avec la partie du sous-module 4a dédiée au conditionnement des signaux de sortie via le bus de communication local (E/S) précité. Plus particulièrement, pour la commande du sous-module de conditionnement, le processeur 40 délivre deux signaux de commande 45 et 46 qui transitent via le bus local E/S. Tête de réseau (1) - Architecture générale (Figure 3) En référence à l'exemple particulier de la figure 3, la tête de réseau 1 comporte essentiellement : - un processeur programmable (type microprocesseur avec de la mémoire ou microcontrôleur) qui est cadencé par une horloge 11 délivrant un signal d'horloge CLK ; de préférence, la fréquence du signal d'horloge CLK est programmable par le processeur 10 ; une interface de communication 12 série bidirectionnelle de type duplex intégral (« full duplex ») (signaux Tx et Rx) ; cette interface peut prendre toutes les formes connues de transmission série bidirectionnelle (interface type RS232, USB, « Bluetooth », « Wif », Ethernet,...) - une interface réseau 13 bidirectionnelle qui permet de faire communiquer la tête de réseau 1 avec le réseau de communication bidirectionnel 2. Plus particulièrement dans l'exemple illustré sur la figure 3, le processeur 10 reçoit sur un port d'entrée série les données série reçues en entrée par la tête de réseau 1 via l'interface de communication sériel 2 (signalTx1/Rx2), et délivre en sortie des données série à destination de l'interface réseau 13 (Signal Tx2). L'interface réseau 13 permet en outre de faire communiquer directement le réseau 2 avec l'interface de communication série 12 (signal Rx1) dans le sens : Réseau 2 vers interface 12. De la sorte, les données émises par les modules 4 sur le
réseau 2 à destination de la tête de réseau 1 ne sont pas reçues et traitées par le processeur 10 de la tête réseau, mais sont directement transmise au module de traitement 3 via l'interface de communication bi directionnelle 12 de la tête de réseau 1. Cette caractéristique préférentielle (mais non limitative de l'invention) permet avantageusement d'accélérer la communication de données depuis les modules 4 vers le module de traitement 3, par rapport à une solution moins performante dans laquelle le processeur 10 servirait d'intermédiaire. Le processeur pilote en outre l'interface réseau 13 au moyen de deux signaux de commande Cjn et Cout pouvant prendre les états logiques suivants :
I.C. : Interface de Communcation - Proc. : Processeur Module de traitement (3) - Figure 1 Le module de traitement 3 assure d'une manière générale l'interface entre la structure matérielle (modules 4 et tête de réseau 1) et l'utilisateur. Ce module de traitement 3 est par exemple implémenté sous la forme d'un micro-ordinateur ou équivalent, et comporte classiquement et d'une manière générale au moins un processeur, de la mémoire, une interface utilisateur avec périphérique(s) d'entrée type clavier, souris, ... , et au moins un périphérique de sortie type écran de visualisation. En référence à la figure 1 , le module de traitement 3 comporte pour la communication avec la tête de réseau : - une mémoire tampon d'entrée 30 type FIFO, - une mémoire tampon de sortie 31 type FIFO, - une interface de communication série bidirectionnelle 32 (compatible avec l'interface 12 précitée de la tête de réseau 1), et reliée en entrée ( signal Rx) à la mémoire tampon d'entrée 30 et en sorte (signal Tx) à la mémoire tampon de sortie 31.
En fonctionnement, le module de traitement 3 et la tête de réseau 1 communiquent entre elles de manière bidirectionnelle et asynchrone via leurs interfaces de communication série respectives 32 et 12. L'architecture logicielle du module de traitement 3 comporte essentiellement un module logiciel pilote (« driver ») 33 , et un module applicatif 34. Le module pilote 33 sert d'interface entre le module applicatif 34 et les mémoires tampon 30 et 31 , et est plus particulièrement conçu : - d'une part pour récupérer (lecture) les données stockées les unes à la suite des autres dans la mémoire tampon d'entrée 30, et pour mettre en forme (Figure 1/ programme 330) lesdites données pour le module applicatif 34, et - d'autre part pour mettre en forme (Figure 1/ programme 331) les données (données de commande ou de configuration de la structure matérielle : Tête de réseau 1 et modules 4) et pour charger (écriture) ces données mises en forme dans la mémoire tampon de sortie 31, dans leur ordre d'émission par le module applicatif 34. Le module applicatif 34 permet de traiter, et notamment de représenter graphiquement sur un écran pour l'utilisateur, chaque signal d'entrée Ea,
.... acquis par les modules. Il est également conçu pour envoyer des données de commande et/ou configuration à destination de tout ou partie des modules 4 et/ou de la tête de réseau 1. Dans l'exemple particulier de la figure 1 , la tête de réseau 1 (module de commande) et le module de traitement 3 consistent avantageusement en deux modules séparés distincts, communiquant à distance par une interface de communication série bidirectionnelle standard. Cette caractéristique technique avantageuse n'est toutefois pas indispensable.
Dans une autre variante de réalisation de l'invention, la tête de réseau pourrait communiquer avec le module de traitement via tout type connu d'interface de communication. De surcroît, dans une autre variante de réalisation de l'invention, le module de commande (tête de réseau) pourrait être intégré au module de traitement 3, par exemple sous la forme d'une carte insérable sur un bus de communication local du module de traitement.
Dans l'exemple particulier de la figure 1 , les mémoires tampon d'entrée
30 et de sortie 31 sont intégrées au module de traitement 3. Ceci n'est pas limitatif de l'invention. Dans une autre variante, la mémoire tampon d'entrée 30 et /ou la mémoire tampon de sortie 31 pourrait être intégrée à la tête de réseau 1.
Fonctionnement du système- Généralités
Communication entre la tête de réseau 1 et le module de traitement 3 La communication, entre la tête de réseau 1 et le module de traitement 3, est réalisée de manière asynchrone via les mémoires tampon 30 et 31. En d'autres termes, le processeur 10 de la tête de réseau 1 lit et traite, de manière asynchrone par rapport au fonctionnement du module de traitement, les données qui sont stockées les unes à la suite des autres dans la mémoire tampon de sortie 31 par le sous-module pilote 33 du module de traitement 3. A l'inverse, le sous-module pilote 33 du module de traitement 3 lit et traite, de manière asynchrone par rapport au fonctionnement du processeur 10 de la tête de réseau 1 et au fonctionnement des processeurs des modules 4, les données stockées les unes à la suite des autres dans la mémoire tampon d'entrée 30. Communication entre la tête de réseau 1 et les modules 4 Généralités : En fonctionnement, le processeur 10 de la tête de réseau remplit les fonctions principales suivantes : - lecture, de manière asynchrone par rapport au fonctionnement du module de traitement 3, de chaque commande qui a été éventuellement stockée dans la mémoire tampon de sortie 31 par le module de traitement 3, - envoi synchronisé sur le réseau 2 de commandes d'acquisition selon des cycles de communication prédéfini de durée fixe, - gestion de la communication bidirectionnelle semi-duplex sur le réseau 2 au moyen des signaux Cjn et Cout- Tel que cela apparaîtra plus clairement dans l'exemple particulier de réalisation ci-après, la commande qui est générée par le processeur 10 sur le réseau 2 à chaque cycle de communication est par exemple soit une commande d'acquisition simple, soit une commande d'acquisition complexe qui correspond à une commande d'acquisition simple à laquelle
est ajoutée une commande supplémentaire qui lui a été transmise par le module de traitement 3 via la mémoire tampon 31. Plus particulièrement, la synchronisation de l'envoi de chaque commande sur le réseau 2 par le processeur 10 est réalisée au moyen de l'horloge temps réel 11 , par exemple sur chaque front montant du signal horloge CLK. La durée d'un cycle de communication est ainsi fixée par la fréquence du signal horloge CLK. Egalement, le processeur 10 peut remplir d'autres fonctions supplémentaires, tel que par exemple et de manière avantageuse une fonction de configuration de l'horloge temps réel 11 (réglage de la fréquence du signal CLK). Au cours d'un cycle de communication :
- le processeur 10 envoie sur le réseau 2 une commande synchronisée par le signal d'horloge CLK, - ladite commande est lue sur le réseau 2 simultanément par l'ensemble des modules et est traitée localement par les modules, - Plus particulièrement, lorsque la commande est une commande d'acquisition (simple ou complexe) tous les modules 4 remplissant une fonction d'acquisition (par exemple les modules n°AAA, et n°BBBB de la figure 1) effectuent en parallèle et de manière synchrone une acquisition du ou des signaux sur leurs entrées, puis les modules d'acquisition émettent sur le réseau 2 leur(s) données acquises (après numérisation par le convertisseur analogique/numérique 42) les uns à la suite des autres, et selon un ordre d'émission prédéfini. Dans une variante simplifiée de module d'acquisition (dite à transmission « non différée»), la ou les données d'acquisition sont stockées temporairement dans une mémoire tampon locale du module d'acquisition, et la ou les données d'acquisition qui sont renvoyées par le module d'acquisition sur le canal de communication bidirectionnel semi duplex, correspondent à la ou aux données qui ont été acquises au cours du cycle de communication en cours, c'est-à-dire la ou les données d'acquisition qui résultent de l'opération d'acquisition courante déclenchée par la réception de la dernière commande d'acquisition. Au cycle suivant, les modules d'acquisition, sur réception d'une commande d'acquisition, déclenchent chacun en parallèle une nouvelle opération d'acquisition, et renvoient les données résultant de cette nouvelle opération d'acquisition.
Dans une autre variante de réalisation de l'invention plus sophistiquée (dite à transmission « différée »), un module d'acquisition peut être conçu pour, sur réception d'une commande d'acquisition [cycle de communication (n)] : (i) d'une part déclencher une opération d'acquisition et stocker la ou les données d'acquisition qui en résultent dans une mémoire tampon locale (par exemple dans un registre de type FIFO) (ii) et d'autre part renvoyer la ou les données d'acquisition acquises et stockées en mémoire locale au cours d'un cycle précédent (cycle (n-1) ou (n-2) ou etc.).
Dans ce cas, la tâche (ii) précitée peut, indifféremment selon l'invention, être réalisée avant ou après la tâche (i). Dans la variante de réalisation la plus simple d'un module d'acquisition, la ou les données d'acquisition qui sont renvoyées par le module d'acquisition sur le canal de communication bidirectionnel semi duplex, résultent directement de l'échantillonnage (selon le cas avec ou non conversion analogique/numérique) du signal présent sur au moins une entrée du module d'acquisition. Dans une variante de réalisation plus sophistiquée, un module d'acquisition peut être conçu pour réaliser en local, sur chaque donnée échantillonnée sur une de ses entrées, une ou plusieurs étapes de traitement supplémentaires plus ou moins complexe (par exemple filtrage numérique ou analogique), et pour renvoyer les données résultant de la ou des étapes de traitement supplémentaires. Dans ce cas, la ou les données d'acquisition au sens de l'invention, qui sont renvoyées sur le canal de communication bidirectionnel semi duplex par le module d'acquisition correspondent aux données résultant de la ou des étapes de traitement supplémentaires. De préférence (mais non nécessairement) ce type de variante sophistiquée se combine avec la variante précitée de réalisation dite à transmission « différée ». Les données d'acquisition émises sur le réseau 2 les unes à la suite des autres par les modules 4 sont stockées directement dans la mémoire tampon d'entrée 30, en vue d'être lues et traitées de manière asynchrone par le module de traitement 3 Plus particulièrement, chaque module 4 ayant une fonction d'acquisition comporte en mémoire locale un paramètre identifiant son
rang d'émission. Ce paramètre est plus particulièrement une information qui permet au module de déterminer le nombre de données qui doivent transiter sur le réseau 2 avant que le module en question ne commence à émettre sa ou ses données d'acquisition sur le réseau 2. Ainsi, chaque module 4 ayant une fonction d'acquisition compte les données qui transitent sur le réseau, et commence à émettre sa ou ses données d'acquisition lorsque le nombre requis de données ayant transité sur le réseau a été atteint. Le fonctionnement général du système d'acquisition qui vient d'être décrit, ainsi que d'autres caractéristiques de l'invention, vont à présent être détaillés en référence à un exemple de protocole de communication particulier, non limitatif de l'invention, et en référence aux organigrammes de fonctionnement particuliers des figures 5 à 9. Fonctionnement du système- Exemple particulier On a représenté sur la figure 4, un exemple particulier de flux de données circulant sur le réseau 2. Dans cet exemple particulier chaque donnée émise en série (bit à bit) sur le réseau 2 forme un octet. En outre, dans cet exemple particulier de la figure 4, le flux de données correspond à un système d'acquisition de l'invention comportant trois modules d'acquisition 4 connectés au réseau 2, et chaque module d'acquisition émet en série à chaque opération d'acquisition sur le réseau 2 une donnée d'acquisition codée sur un octet. Bien entendu, on pourra généraliser cet exemple à un nombre de modules d'acquisition différents. Dans le flux de données de l'exemple de la figure 4, les trames de données sont codées sur 7 octets successifs de la manière suivante : 1er octet : Séparateur de trame codé « FF »
2eme octet : donnée d'estampillage générée par le processeur 10 de la tête de réseau de manière incrémentale à chaque émission d'une commande (c'est-à-dire à chaque nouvelle trame) 3ème octet : Commande
4eme octet au 7eme octet : données d'acquisition renvoyées sur le réseau 2 par les trois modules d'acquisition, les uns à la suite des autres, et selon un ordre d'émission prédéfini. Dans l'exemple de la figure 4, dans les trois trames successives représentées, la commande (3ème octet) est identique (codée « 00 ») et
correspond à une commande d'acquisition simple. Cette commande n'est suivie d'aucun paramètre. Dans la suite de l'exposé, on considérera que le processeur 10 peut également générer des commandes d'acquisition complexe, qui dans les organigrammes annexées sont codées « 01 », et qui sont suivies d'au moins un paramètre (arguments de la commande). Fonctionnement de la tête de réseau 1 Le fonctionnement de la tête de réseau 1 est basé sur trois routines exécutées par le processeur 10 : - une routine principale dont les étapes sont illustrées par l'organigramme de la figure 5, - une routine secondaire déclenchée sur interruption par l'horloge 11 , et dont les étapes sont illustrées par l'organigramme de la figure 6 - une routine déclenchée sur interruption générée par le module de traitement 3, et dont les étapes sont illustrées par l'organigramme de la figure 7. Ces différentes routines vont à présent être commentées. Par soucis de clarté, ces routines seront commentées dans l'ordre des figures 7 à 5. Routine de la figure 7 : réception des commandes envoyées par le module de traitement 3 Lorsque le sous module pilote 33 du module de traitement 3 écrit une donnée dans la mémoire tampon de sortie 31 , il génère également une interruption qui est reçue par le processeur 10 de la tête réseau 1 sur l'un de ses ports de communication. Sur détection de ce signal d'interruption (figure 11 Bloc 701), le processeur 10 récupère la donnée émise dans la mémoire tampon de sortie 31 et la stocke dans une mémoire tampon locale de la tête de réseau (figure 11 Bloc 702). Ensuite, il teste (test 703) si les données reçues forment une commande complète. Dans l'affirmative, le processeur 10 positionne un drapeau « CmdPC » à 1 (bloc 704). Ce drapeau est utilisé par les deux autres routines pour tester si une commande envoyée par le module de traitement 3 doit être envoyée sur le réseau 2. Routine secondaire de la figure 6 : Sur détection de chaque interruption générée au moyen du signal horloge CLK (figure 6/ Bloc 601), le processeur 10 commence (bloc 602) par émettre le séparateur de trame (1er octet de la trame de données) sur
le réseau 2 et également à destination du module de traitement 3 (désigné « PC »dans les organigrammes). L'interruption générée par le signal horloge CLK est prioritaire par rapport à l'interruption générée par le module de traitement 3 (figure 7). Ensuite le processeur 10 émet la donnée d'estampillage (valeur courante de la variable CPTACQ) sur le réseau 2 et également à destination du module de traitement 3, puis incrémente pour le cycle suivant la variable d'estampillage CPTACQ (bloc 603). Si aucune commande émise par le module de traitement 3 n'est en attente (Test 604 et bloc 605), le processeur 10 émet sur le réseau 2 (et également vers le module de traitement 3) la commande d'acquisition simple codée « 00 ». A l'inverse, si une commande émise par le module de traitement 3 est en attente (Test 604 et bloc 606), le processeur 10 positionne à la valeur 1 un drapeau désigné « Synchro ». Ce drapeau est utilisé par la routine principale de la figure 5. Routine principale de la figure 5 : En tâche de fond, le processeur 10 attend qu'une commande émise par le module de traitement soit en attente de traitement (Figure 5 / test 501). Dès qu'une commande est en attente (drapeau CmdPC positionné à 1 par la routine précédemment décrite de la figure 7), le processeur 10 test en boucle la valeur du drapeau « Synchro » ( test 502). Dès que le processeur 10 détecte (test 502) un changement d'état à 1 du drapeau « Synchro » (voir routine précitée de la figure 6), il émet sur le réseau 2 (et également vers le module de traitement 3) la commande d'acquisition complexe codée « 01 » (bloc 503), puis successivement un ou plusieurs paramètres en fonction de la commande qui lui a été envoyée par le module de traitement 3 (bloc 504, test 505, bloc 506). Lorsque toutes les données de la commande (code « 01 » + paramètre(s)) ont été émises, le processeur vérife (test 507) si la commande lui est destinée. Dans l'affirmative (bloc 508), il exécute localement la commande. Il peut par exemple s'agir d'une commande d'initialisation, ou encore une commande de réglage de la fréquence du signal horloge CLK. Dans la négative, le processeur reboucle sur la tâche de fond précitée (attente d'une commande émise par le module de traitement 3)
Fonctionnement de chaque module d'acquisition (4) Le fonctionnement de chaque module d'acquisition 4 est basé sur l'exécution par le processeur 40 du module de la routine dont les étapes sont illustrées sur les figures 8 et 9. Organigramme de la figure 8 : En tâche de fond, le processeur 40 du module d'acquisition scrute les données qui transitent sur le réseau 2 dans le but de détecter si une nouvelle donnée est en attente sur le réseau 2 ( Test 801). Dans l'affirmative, le processeur 40 vérifie (Test 802) si les données qui circulent sur le réseau 2 correspondent à un début de trame, c'est-à-dire si les deux premières données qui transitent sur le réseau 2 sont successivement le code de séparation de trame (FF) suivi de la donnée d'estampillage (donnée d'estampillage de la trame précédemment traitée incrémentée de 1). Dans l'affirmative, le processeur 40 initialise un compteur (« CP ») (bloc 803), et attend de recevoir sur le réseau 2 la prochaine donnée (test 804). Cette prochaine donnée est soit une commande d'acquisition simple (« 00 ») , soit une commande d'acquisition complexe (« 01 »). Si la donnée suivante reçue n'est pas une commande d'acquisition simple (test 805 ; bloc 806), le processeur positionne un drapeau (« Cmd ») à 1 , permettant de mémoriser temporairement que la donnée reçue est en l'espèce une commande d'acquisition complexe. Organigramme de la figure 9 : Après réception de la commande (acquisition simple ou complexe) sur le réseau, le processeur 40 déclenche une opération d'acquisition (bloc 901) du ou des signaux sur sa ou ses entrées. Dans le cas d'un module d'acquisition ayant l'architecture électronique particulière de la figure 1 , cette opération d'acquisition se traduit par un échantillonnage et une conversion numérique du ou des signaux d'entrée électriques analogiques au moyen du convertisseur analogique/numérique. Tous les modules recevant la commande d'acquisition (simple ou complexe), ils réalisent l'opération d'acquisition en même temps. L'émission sur le réseau 2 de la commande d'acquisition (simple ou complexe) étant en outre synchronisée par le signal horloge (CLK) de la tête de réseau, on réalise ainsi une acquisition simultanée et en temps réel de tous les signaux présents sur les entrées des différentes modules d'acquisition.
Il convient toutefois de souligner que l'invention n'est pas limitée à la mise en œuvre de modules d'acquisition de signaux électriques analogiques (avec une conversion analogique /numérique intégrée au module). Il est notamment envisageable dans le cadre de l'invention que le module d'acquisition reçoive en entrée un signal numérique (par exemple un signal émit par un autre dispositif sur un port de communication auquel est connecté le module d'acquisition ; dans ce cas, le module d'acquisition n'intègre pas de convertisseur analogique/numérique, et l'opération d'acquisition consiste uniquement à mémoriser le ou les signaux numériques présents sur l'entrée du module d'acquisition. Egalement, le module d'acquisition pourrait recevoir en entrée un signal physique (force, chaleur, ....) et intégrer un transducteur électrique (Capteur) permettant de transformer ledit signal physique en entrée en un signal électrique analogique ; dans ce cas, le module d'acquisition intègre également un convertisseur analogique/numérique, de manière comparable au module d'acquisition de la figure 1. Après l'opération d'acquisition (bloc 901), le processeur 40 teste si la commande reçue est une commande d'acquisition complexe (test 902), et dans l'affirmative stocke les octets constitutifs de cette commande dans une mémoire tampon locale réservée à la mémorisation des commandes d'acquisition complexe (Bloc 903), et positionne (bloc 904) un drapeau (« Cmd reçue ») à 1 , indiquant que la commande complète a été reçue en locale par le module. Ensuite (Test 905, Test 906, Bloc 907, et Bloc 908) le processeur 40 du module scrute le réseau 2 en comptant (Bloc 908 / incrémentation du compteur « Cpt à chaque nouvelle données reçue) le nombre de données qui sont émises sur le réseau. Lorsque le nombre de données reçues (test 905) est égal au paramètre (« Données à attendre ») qui est mémorisé localement dans le module, et qui est spécifique et différent pour chaque module, le processeur 40 émet sur le réseau 2 sa donnée d'acquisition (Bloc 909). Le paramètre « Données à attendre » est ainsi utilisé pour configurer chaque module de manière distincte (le nombre de données à attendre sur le réseau 2 avant d'émettre étant différent pour chaque module) de telle sorte les modules émettent sur le réseau 2 leur donnée d'acquisition les un à la suite des autres selon un ordre prédéfini.
Après émission de la donnée d'acquisition sur le réseau 2, le processeur 40 teste si la commande qui a été reçue est une commande d'acquisition complexe (Test 910), et dans l'affirmative exécute localement (bloc 911), en plus de l'opération d'acquisition précitée, l'opération supplémentaire codée par la commande reçue. Configuration du système La configuration du système consiste essentiellement à faire initialiser la tête de réseau 1 et les modules d'acquisition connectés au réseau 2 par le module de traitement 3, et également à faire paramétrer par l'utilisateur du système le module applicatif 34 du module de traitement 3, de telle sorte que chaque module (Physique) soit identifié de manière logicielle et que les signaux correspondant puissent être identifiés et visualisés sur un écran. Plus particulièrement, l'initialisation de la tête de réseau 1 consiste essentiellement à régler la fréquence du signal horloge CLK. De préférence, la valeur de la fréquence est un paramètre qui est entré par l'utilisateur au niveau du module de traitement 3 (par exemple saisie au moyen d'un clavier ou équivalent de la fréquence d'acquisition souhaitée), et le module de traitement 3 génère pour le processeur 10 de la tête de réseau une commande particulière avec comme paramètre la fréquence entrée par l'utilisateur. Cette commande est reçue et décodée par le processeur 30 de la tête de réseau, qui commande l'horloge 11 en sorte de régler la fréquence voulue qui conditionne la durée de chaque cycle de communication. Plus particulièrement, l'initialisation des modules d'acquisition consiste à faire envoyer, par le module de traitement 3, à chaque module d'acquisition, un paramètre codant son rang d'émission (c'est-à-dire dans le cas de l'exemple particulier de réalisation précédemment en référence aux figures 4 à 9, le nombre de données à attendre sur le réseau 2 avant d'émettre/ voir notamment figure 9 / test 905). Dans ce cas particulier de cette configuration des modules d'acquisition, il est nécessaire que chaque module d'acquisition soit identifié par un code d'identification qui lui est propre et qui est connu du module de traitement 3. Ce code d'identification est stocké dans une mémoire locale du module, accessible en lecture par le processeur 40 du module.
En cas d'ajout d'un module d'acquisition sur le réseau, il suffit simplement de le configurer avec le paramètre codant son rang d'émission. En cas de suppression d'un module sur le réseau, il faut reconfigurer les modules d'acquisition qui étaient configurés pour émettre près ce module, en sorte de décaler leur rang d'émission. Application dans le domaine biomédical Le système de l'invention trouve avantageusement son application dans le domaine biomédical notamment pour l'acquisition en temps réel de signaux physiologiques ou bioélectriques. Par exemple, les modules à fonction d'acquisition peuvent être choisies parmi la liste suivante : - Module ECG permettant l'acquisition d'un signal électrocardiographique à partir d'électrodes cutanées usuelles ; - Module d'acquisition d'un signal de pouls et éventuellement de calcul en local de la saturation partielle en oxygène (SP02) ; ce module intègre par exemple un capteur infrarouge annulaire standard ; - Module d'acquisition de signaux de pression sanglante utilisant des capteurs usuels ; - Module de mesure de la pression et /ou du débit des voies respiratoires au moyen deux capteurs de pression différentielle ; - Module d'acquisition de la température corporelle utilisant un capteur de température usuel ; - Module d'acquisition multivoies analogiques permettant d'acquérir en parallèle sur (n) voies des signaux analogiques provenant de dispositifs annexes ; - Module d'échanges de donnée numériques avec des équipements biomédicaux (par exemple avec un pousse-seringue automatique) dotés par exemple d'une connexion série type RS2332 ou autre ; dans ce cas le module présente un architecture du type de la figure 2 ; Egalement, en plus des modules remplissant une fonction d'acquisition tel que les modules n°AAA, et n°BBB de la figure 1 ou le module représenté sur la figure 2, il est en envisageable de connecter sur le réseau 2 du système d'acquisition un ou plusieurs modules ayant uniquement une fonction de « sortie », tel que par exemple le module n°XXX de la figure 1. De tels modules peuvent par exemple servir à
commander des actionneurs. Dans le cas de l'exemple particulier de réalisation précédemment décrit en référence aux figures 4 à 9, ces modules de sortie sont commandés par le module de traitement 3, via la tête de réseau 1 , au moyen des commandes d'acquisition complexes; dans ce cas l'organigramme de fonctionnement des processeurs de ces modules de sortie est simplifié, et correspond par exemple à l'organigramme de la figure 8 et à l'organigramme de la figure 9 sans les opérations des blocs 901 et 909. Avantages de l'invention Le système d'acquisition de l'invention est modulaire et facilement configurable (facilité et rapidité d'ajout ou de suppression de modules 4 d'acquisition et/ou de sortie). Il peut en outre combiner à la fois des modules ayant une fonction d'acquisition et des modules ayant une fonction de « sortie ». II permet une acquisition en temps réel et synchrone de plusieurs signaux en parallèle, et le cas échéant la représentation temps réelle de ces signaux sur un écran ou équivalent pour un utilisateur. L'acquisition de signaux est très rapide, car contrairement par exemple à la solution retenue dans la demande de brevet européen EP 0 354 251 de la société Hewlett-Packard GmbH, lors des opérations d'acquisition les modules ne sont pas adressés individuellement par la tête de réseau, mais émettent les un à la suite des autre leurs données d'acquisition selon un ordre prédéfini. La solution de l'invention n'est pas (à l'inverse de la solution retenue dans la demande de brevet européen EP 0 354 251) limitée à une communication de type filaire entre la tête de réseau et les modules d'acquisition et/ou sortie, ou encore entre la tête de réseau et le module de traitement. Pour adapter la solution filaire de l'exemple de réalisation décrit en référence aux figures annexées, il suffit d'équiper chaque module d'acquisition et/ou sortie ainsi que le module de la tête de réseau d'un émetteur/récepteur sans fil et de régler tous les émetteurs/récepteur sur le même canal de communication bidirectionnel (fréquence unique d'émission et de réception). Egalement la communication entre la tête de réseau 1 et le module de traitement 3 peut être une communication à distance sans fil.
Avantageusement, les commandes d'acquisition simples étant émises directement par la tête de réseau 1, et la communication entre le module de traitement 3 et la tête de réseau étant asynchrone, la vitesse de communication entre la tête de réseau 1 et le module de traitement, de même que la vitesse de traitement des données par le module de traitement 3 n'ont pas d'incidence sur l'acquisition temps réelle des signaux. Dans le cadre de l'exemple particulier de réalisation qui a été décrit en référence aux figures, à chaque cycle de commutation, la tête de réseau 1 envoie sur le réseau 2 une commande d'acquisition (commande acquisition simple codée « 00 » ou commande d'acquisition complexe codée « 01 » dans l'exemple). Ce fonctionnement particulier n'est pas limitatif de l'invention. Dans une autre variante de réalisation entrant dans le cadre de l'invention, certains cycle de communication pourraient être utilisés pour envoyer vers les modules, et notamment vers les modules de sortie, des commandes variées, sans que les modules d'acquisition ne reçoivent de commande d'acquisition au cours de ces cycles de communications particuliers.