Conditionnement du signal ECG

Les filtres analogiques

Un filtre est un circuit électronique qui réalise une opération de traitement du signal.
Autrement dit, il atténue certaines composantes d’un signal et en laisse passer d’autres. Un filtre modifie certaines parties d’un signal d’entrée dans le domaine temps et dans le domaine fréquence. D’après la théorie de Fourier, tout signal réel peut être considéré comme composé d’une somme de signaux sinusoïdaux (en nombre infini si nécessaire) à des fréquences différentes ; le rôle du filtre est de modifier la phase et l’amplitude de ces composantes. On peut classer les filtres à partir de la forme de leur fonction de transfert ou par le comportement des éléments passifs qui composent le filtre. Les filtres les plus courants appartiennent à l’un des quatre types suivants : passe-bas, passe-haut, passe-bande ou réjecteur de bande.
Un filtre passe-haut ne laisse passer que les fréquences au-dessus d’une fréquence déterminée, appelée fréquence de coupure. Il atténue les autres (basses fréquences). Autrement dit, il « laisse passer ce qui est haut ». C’est un atténuateur de graves pour un signal audio. On pourrait aussi l’appeler coupe-bas.
• Un filtre passe-bas ne laisse passer que les fréquences au-dessous de sa fréquence de coupure. C’est un atténuateur d’aigües pour un signal audio. On pourrait l’appeler coupe-haut.
• Un filtre passe-bande ne laisse passer qu’une certain bande de fréquences et atténue tout ce qui est au-dessus ou en-dessous.
• Un filtre réjecteur, aussi appelé filtre trappe, cloche ou coupe-bande, est le complémentaire du passe-bande. Il atténue une plage de fréquences. Cela peut être utile pour diminuer certains parasites par exemple.
Techniquement, un filtre peut être réalisé de différentes manières : passive, active ou numérique [9].

LES CIRCUITS LOGIQUES PROGRAMMABLES: FPGA

Notion générale sur les FPGA

Les FPGAs se traduisent en français par « Circuits Prédiffusés Programmables ». Les circuits prédiffusés sont des circuits partiellement préfabriqués. Ils contiennent un ensemble d’éléments (transistors, diodes, résistances, capacités, etc…) qui ne sont pas interconnectés entre eux. Contrairement aux circuits prédiffusés conventionnels, les circuits prédiffusés programmables ne demandent pas de fabrication spéciale en usine, ni de matériels de développement coûteux.
Un circuit logique programmable, ou réseau logique programmable, est un circuit intégré logique qui peut être reprogrammé après sa fabrication. Il est composé de nombreuses cellules logiques élémentaires librement assemblables. Celles-ci sont connectées de manière définitive ou réversible par programmation, afin de réaliser la ou les fonctions numériques voulues. L’intérêt est qu’une même puce peut être utilisée dans de nombreux systèmes électroniques différents. Ce type de composant électronique est communément désigné par différents sigles anglais FPGA (field-programmable gate array, réseau de portes programmables).
Les FPGA ont plusieurs avantages :
• délai de mise sur le marché plus court, car ce sont des composants standards,
• temps de développement plus court, car on réutilise des fonctions de base et la reconfigurabilité autorise une validation préalable moins stricte,
• coût inférieur pour de petites séries (moins de 10 000 unités). Avec l’évolution technologique, cette quantité tend à augmenter : en effet, le prix d’une puce est proportionnel à sa surface, qui diminue avec la finesse de gravure.
Les FPGA modernes sont assez vastes et contiennent suffisamment de mémoire pour être configurés pour héberger un cœur de processeur. On parle dans ce cas de processeur softcore, par opposition aux microprocesseurs hard-core enfouis dans le silicium. Afin de pouvoir finaliser un FPGA, il est nécessaire d’utiliser un langage de description matériel ou bien un outil de saisie graphique. Après compilation de cette description, on obtient un fichier de configuration pour le FPGA choisi. VHDL et Verilog sont les deux langages de description les plus répandus.
Les FPGA ont été inventés et commercialisés la première fois par la société Xilinx en 1985. Ils sont de la famille des Application Specific Integrated Circuit ou ASIC. Ils se situent entre les réseaux logiques programmables et les circuits prédiffusés. C’est donc des composants standard combinant la densité et les performances d’un circuit prédiffusé avec la souplesse due à la reprogrammation des PLD (Programmable Logic Device : circuit logique programmable).
Parmi les fabricants de tels circuits programmables, on trouve Abound Logic, Achronix, Actel, Altera, Atmel, Cypress, Lattice Semiconductor, Nallatech, QuickLogic, SiliconBlue, Tabula Inc., Tier Logic et Xilinx . [10]

Présentation du circuit FPGA utilisé

L’entreprise Actel propose plusieurs cartes d’acquisition ou cartes d’expérimentation sur le marché avec différents circuits FPGA; elle les classe chacunes dans une certaine famille. Ce qu’on va utiliser dans notre projet de Biomedicalscope est la carte d’acquisition d’Actel « Fusion Embedded Development Kit ». Elle est construite avec huit couches de cartes à circuits imprimés (cf. ANNEXE I). Elle embarque un FPGA nommé « M1AFS1500- FGG484 » appartenant à la famille « Actel Fusion » et ce kit dispose d’un grand nombre d’E/S et d’un convertisseur analogique numérique intégré, et il supporte un signal mixte. Elle est aussi livrée avec le M1AFS1500-FGG484 [5] qui possède 1500000 portes logiques assemblables à souhait à l’aide du VHDL. Nous avons donc choisi d’utiliser ARM Cortex-M1 grâce à sa haute performance avec une petite dimension dans les FPGAs. En effet, c’est un microprocesseur 32 bits, Cortex – M1 exécute un sous-ensemble de « Thumb-2 instruction set » (ARMv6-M) et cela inclut toutes les bases d’instructions 16 bits et quelques instructions « Thumb-2 » 32 bits (BL, MRS, MSR, ISB, DSB, et DMB). Cela permet l’écriture très serré et efficace du code du processeur qui est idéal pour une mémoire limitée typiquement trouvée dans des applications profondément intégrées. La carte « Fusion Embedded Development Kit » est présentée sur la figure 3.4:

Programmation du FPGA

Actuellement la densité de fonctions logiques (portes et bascules) intégrée dans les circuits programmables comme les FPGA est telle (plusieurs milliers de portes voire millions de portes) qu’il n’est plus possible d’utiliser les outils tels que les langages de bas niveau comme ABEL, PALASM, ORCAD/PLD. Le langage de description VHDL a été donc créé pour pouvoir programmer les FPGA de nos jours. Mais puisqu’on a parlé de programmation, il existe des outils de développements spécifiques proposés par les constructeurs des circuits programmables. Le langage de description utilisé est pourtant le même, c’est le langage VHDL. Les outils de développement sur le marché sont:
− Actel: Libero (environnement de conception intégré), SmartTime (analyse des délais), SmartPower (analyse de la consommation), SmartGen,.
− Altera: Quartus II (environnement de conception intégré), SOPC Builder (développement de systèmes), DSP Builder, TimeQuest (analyse des délais), PowerPlay (analyse de la consommation),
− Lattice: ispLever (environnement de conception intégré), ispLeverDSP,
− Mentor Graphics: Precision RTL (synthèse logique), Precision Physical (synthèse physique), ModelSim (simulation numérique), CatapultC (synthèse de haut niveau),.
− Synplicity: Synplify Pro (synthèse logique), Synplify Premier (synthèse physique), Synplify DSP, Certify (prototypage des circuits spécifiques), Identify (instrumentation embarquée et débogage),
− Xilinx: ISE (environnement de conception intégré), System Generator for DSP et AccelDSP, ChipScope Pro (débogage embarqué), PlanHead,
Il est à noter que les noms en caractères gras qui suivent représentent des noms d’entreprises de semi-conducteurs les plus connus à travers le monde, et que les noms en italique correspondent à leurs propres outils de développement.[19] Puisque nous travaillons sur la carte « Fusion Embedded Development Kit » d’Actel, alors nous nous intéressons à l’outil Libero (environnement de conception intégré).
Le logiciel Libero IDE (Integrated Design Environment) est un logiciel complet et puissant en matière de développement des FPGA, développée par Actel, une des plus grandes entreprises américaines dans le monde en matière de composant logique programmable. En fait, Libero IDE nous permet de programmer le FPGA dans la carte « Fusion Embedded Development Kit », en d’autres termes de concevoir, simuler, synthétiser, placerrouter et valider facilement des blocs décrits en VHDL (ou autre langage) dans un seul environnement.

LE LANGAGE DE DESCRIPTION MATERIEL: VHDL

Le Very High Speed Integrated Circuit Hardware Description Language (abrégé en VHDL, qui lui-même est une abréviation de VHSIC HDL) est un langage de description du matériel, destiné à décrire le comportement et/ou l’architecture d’un « module » de logique matérielle, c’est-à-dire une fonction combinatoire et/ou séquentielle.

Historique

Originellement commandé par le ministère de la défense américain, celui-ci lui a finalement préféré le langage Verilog HDL, très similaire. Il existe de ce fait une quasi équivalence entre les deux langages, d’où l’existence de nombreux scripts de traduction de l’un vers l’autre. Le langage VHDL est maintenant principalement utilisé par les entreprises européennes.
La version initiale de VHDL, standard IEEE 1076-1987, incluait un large éventail de types de données, numériques (entiers, réels), logiques (bits, booléens), caractères, temps, plus les tableaux de bits et chaînes de caractères.
L’un des principaux problèmes concernait le type bit. Celui-ci ne pouvant prendre que 2 valeurs (0, 1), il était impossible de représenter les signaux de valeur inconnue ou encore les signaux en haute impédance, ainsi que la “force” d’un signal (faible, forte ou nulle). La norme IEEE 1164 définit le type std_logic avec 9 états possibles. Ceci a été adopté dans le VHDL-93 (seconde version de la norme IEEE 1076).

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *