UNIVERSITE D`ANTANANARIVO Spécialité ELECTRONIQUE
Transcription
UNIVERSITE D`ANTANANARIVO Spécialité ELECTRONIQUE
UNIVERSITE D’ANTANANARIVO ECOLE SUPERIEURE POLYTECHNIQUE D’ANTANANARIVO DEPARTEMENT ELECTRONIQUE MEMOIRE DE FIN D’ETUDES EN VUE DE L’OBTENTION DU DIPLOME D’INGENIEUR Spécialité ELECTRONIQUE Options : ELECTRONIQUE AUTOMATIQUE * INFORMATIQUE APPLIQUEE ** Analyse et Conception de Circuits Electroniques Assistées par Ordinateur Présenté par : RAJASPERA Tohavina Claude Sylvio* SALOMON Andrianjafy** Soutenu, le 7 juillet 2009 N° d’ordre : 01/EN/EA/08* 01/EN/ IA/08** Année Universitaire 2007-2008 ACCEAO Version 6 Analyse et Conception de Circuits Electroniques Assistées par Ordinateur MEMOIRE DE FIN D’ETUDE EN VUE DE L’OBTENTION DU DIPLOME D’INGENIEUR ___________________________________________________________ Spécialité ELECTRONIQUE ________________________ Options : ELECTRONIQUE AUTOMATIQUE * INFORMATIQUE APPLIQUEE ** Présenté par : RAJASPERA Tohavina Claude Sylvio* SALOMON Andrianjafy** Devant les membres du jury : Monsieur RASTEFANO Elisée Président Madame RABEHERIMANANA Lyliane Irène Examinateur Monsieur RAKOTONDRASOA Justin Examinateur Monsieur RATSIMBAZAFY Guy Prédon Claude Examinateur Rapporteur : Monsieur RABESANDRATANA ANDRIAMIHAJA Mamisoa Soutenu, le 7 juillet 2009 N° d’ordre : /EN/EA/08 /EN/ IA/08 Année Universitaire 2007-2008 REMERCIEMENTS Nous manifestons nos profondes reconnaissances à Dieu Tout Puissant pour toute Sa bonté et Sa générosité, nous ayant permis de garder force et santé tout au long du parcours dans la préparation de ce mémoire. La réalisation de ce travail a été possible grâce au concours de nombreuses personnes. Nous ne saurons constituer une liste exhaustive de toutes ces personnes, cependant nos premiers remerciements iront tout de même : A Monsieur RASTEFANO Elisée, Chef de département Electronique et Président de ce mémoire, qui a pris en charge notre promotion de jeunes adolescents pour en faire des ingénieurs adultes responsables au service de la Nation. A Monsieur RABESANDRATANA ANDRIAMIHAJA Mamisoa, rapporteur de ce mémoire, pour son encadrement et ses conseils fort judicieux. A Madame et Messieurs les membres du jury pour avoir pris soin d’examiner et d’évaluer notre travail malgré leurs obligations : Madame RABEHERIMANANA Lyliane Irène Monsieur RAKOTONDRASOA Justin Monsieur RATSIMBAZAFY Guy Prédon Claude A tous nos Professeurs de l’Ecole Supérieure Polytechnique d’Antananarivo, qui nous ont transmis leurs savoirs. A tout le Personnel Administratif et Technique, en particulier celui du Département Electronique, A nos familles respectives, pour tout le soutien, l’aide et l’affection qu’elles nous ont prodigués tout au long de nos études et recherches. A nos prédécesseurs, qui ont conçu et maintenu le logiciel ACCEAO. A nos amis, qui nous ont apporté leurs aides et leurs conseils. Salomon Sylvio i RESUME La migration sous le système d’exploitation Windows a privé le logiciel ACCEAO d’une fonctionnalité très importante qu’est le diagramme de Bode. La résolution prise dans la nouvelle version de ce programme a abouti à la réintégration de cette fonction, mais aussi à l’implantation d’une nouvelle interface consacrée à l’analyse des circuits numériques. Ainsi, la version 6 du logiciel ACCEAO incorpore désormais des outils pour concevoir des circuits logiques. Toutes les portes logiques usuelles ont été implémentées. Toutefois, on peut envisager de créer des circuits plus complexes grâce à une fonction permettant de créer des sous-circuits. Ces sous-circuits, appelés aussi modules, sont stockés dans une base de données en vue d’une réutilisation ultérieure. L’ensemble est réuni dans une interface ergonomique de manière à avoir une manipulation aisée. ii TABLE DES MATIERES REMERCIEMENTS .......................................................................................................................... i RESUME .................................................................................................................................................ii Liste des figures........................................................................................................................................v Liste des tableaux ................................................................................................................................... vii Liste des abréviations ............................................................................................................................ viii INTRODUCTION ................................................................................................................................... 1 Chapitre 1 : Le logiciel ACCEAO ........................................................................................................ 2 1.1 Logiciels de Conception Assistée par Ordinateur ................................................................... 2 1.2 Les versions antérieures sous MS-DOS d’ACCEAO.............................................................. 3 a. Fonctionnement du logiciel ................................................................................................... 4 b. Maintenance du logiciel ........................................................................................................ 5 c. Fonctions essentielles dans les versions DOS ...................................................................... 6 1.3 Vue générale de la dernière version ACCEAO V5.0 sous WINDOWS ................................. 7 a. Choix du système d’exploitation .......................................................................................... 7 b. L’interface graphique d’ACCEAO Version 5.0 ................................................................. 8 c. Les nouveaux composants dans ACCEAO Version 5 ........................................................ 9 d. Structure de la version 5 du logiciel ACCEAO ................................................................ 10 1.4 Conclusion ............................................................................................................................. 11 Chapitre 2 : OUTILS DE DEVELOPPEMENT .............................................................................. 12 2.1 Généralités sur les Environnements de Développements Intégrés ........................................ 12 2.2 L’Environnement de Développement Intégré CodeGear RAD Studio 2007 ........................ 15 a. Présentation de CodeGear RAD Studio ............................................................................ 15 b. Nouveautés dans CodeGear RAD Studio 2007 ................................................................. 17 c. Les outils de développement autonomes de CodeGear RAD Studio 2007 ..................... 18 d. Le débogage d’application avec CodeGear RAD Studio 2007 ........................................ 18 e. La compilation dans CodeGear RAD Studio 2007 ........................................................... 19 Chapitre 3 : Intégration du diagramme de Bode.............................................................................. 21 3.1 Le Diagramme de Bode ......................................................................................................... 21 3.2 ACCEAO et Diagramme de Bode ......................................................................................... 23 a. Diagramme de Bode sous les versions DOS de ACCEAO ............................................... 23 b. Absence du Diagramme de Bode dans la version 5 sous WINDOWS .......................... 24 c. Librairie NTL ...................................................................................................................... 26 d. Mise en route des fonctions de traçage du diagramme de Bode...................................... 26 e. Exemples de résultat obtenu ............................................................................................... 27 iii Chapitre 4 : Implémentation de circuits numériques dans la version 6.0 ...................................... 29 4.1 Objectif et besoins ................................................................................................................. 29 a. Implantation d’une nouvelle interface............................................................................... 29 b. Insertion des composants logiques usuels.......................................................................... 29 c. Besoin de nouveaux composants et création de sous-circuits .......................................... 30 d. Outils pour la simulation du circuit : Générateur - analyseur – sondes......................... 30 e. Moteur de calcul individuel pour la partie numérique .................................................... 31 f. Sauvegarde et réutilisation des circuits créés : Base de données ACCEAO .................. 31 4.2 Moteur de calcul .................................................................................................................... 31 a. Algorithme récursif ............................................................................................................. 34 b. Représentation algébrique des fonctions individuelles de portes .................................... 34 c. Séquence assurée par Timer ............................................................................................... 35 4.3 Arrangement des composants et les fils de connexions ........................................................ 36 Chapitre 5. 5.1 ACCEAO Version 6.0 ................................................................................................ 40 Présentation du logiciel ......................................................................................................... 40 a. la fonction « Diagramme de Bode » ................................................................................... 40 b. Nouvelle interface numérique ............................................................................................ 40 5.2 Exemple de manipulation ...................................................................................................... 41 a. Emploi de la fonctionnalité « Diagramme de Bode » ....................................................... 41 b. Présentation de la partie numérique.................................................................................. 44 c. Instruments utilisés dans la partie numérique.................................................................. 49 d. Utilisation de sous-circuits ou modules.............................................................................. 51 5.3 Consultation de la base de données ....................................................................................... 53 a. Circuits et Base de données : Acceao6DB.mdb................................................................. 54 b. Sous-circuits et Base de données : Acceao6Module.mdb ................................................. 55 c. Intérêts particuliers pour l’interactivité Acceao-Bdd ...................................................... 57 5.4 Nouvelle interface d’aide ...................................................................................................... 58 5.5 Déploiement du logiciel ........................................................................................................ 60 CONCLUSION ..................................................................................................................................... 62 ANNEXE A : CALCUL SUR LES DIAGRAMMES DE BODE ........................................................ 63 ANNEXE B : OPERATEURS LOGIQUES ASSOCIES A LEUR FONCTION ALGEBRIQUE ...... 66 ANNEXE C : PROCEDURE D’ACQUISITION DE CODEGEAR RAD STUDIO ........................... 68 ANNEXE D : CADRE THEORIQUE DES BASES DE DONNEES DANS ACCEAO ..................... 71 REFERENCES ...................................................................................................................................... 76 iv Liste des figures Figure 1.1 : Interface de la version sous DOS du logiciel ACCEAO ........................................ 4 Figure 1.2 : Arrangement de la fenêtre principale de ACCEAO Version 5 ............................... 9 Figure 3.1 : Diagramme de Bode d’un circuit du premier ordre sur papier logarithmique...... 22 Figure 3.2 : Commande de traçage du diagramme de Bode dans ACCEAO v4.3 depuis le menu Design ............................................................................................................................. 23 Figure 3.3 : Schéma d’un circuit dérivateur ............................................................................. 27 Figure 3.4 : Schéma d’un circuit intégrateur ............................................................................ 28 Figure 4.1 : architecture générale du moteur de calcul ............................................................ 32 Figure 4.2 : Algorigramme de détermination d’état des composants....................................... 33 Figure 4.3 : Listing extrait de la fonction surchargée récursive Isready .................................. 34 Figure 4.4 : Extrait de la représentation algébrique des portes logiques selon leur type ........ 35 Figure 4.5 : Architecture de la gestion des composants ........................................................... 36 Figure 4.6 : Schéma des interstices entre composants ............................................................. 37 Figure 4.7 : Architecture de la gestion des fils de connexion .................................................. 38 Figure 4.8 : Combinaison de connexions possibles et illustration d’une connexion du type Sud-Nord .................................................................................................................................. 39 Figure 4.9 : Listing notifiant l’identification des types de connexion ..................................... 39 Figure 5.1 : Nouvelle fenêtre d’affichage du diagramme de Bode .......................................... 40 Figure 5.2 : Interface graphique de l’analyse des circuits numériques .................................... 41 Figure 5.3 : Diagramme de Bode d’un circuit RLC ................................................................. 41 Figure 5.4 : Boite de Dialogue pour la spécification des bornes prises en compte pour l’analyse ................................................................................................................................... 42 Figure 5.5 : Boite de dialogue pour le choix de l’échelle adoptée ........................................... 42 Figure 5.6 : Boite de dialogue pour la détermination de l’intervalle de fréquence considéré par l’utilisateur ............................................................................................................................... 43 Figure 5.7 : Résultat obtenu pour le circuit RLC ..................................................................... 43 Figure 5.8 : Interface numérique ACCEAO version 6 ............................................................. 45 Figure 5.9 : Boutons outils ....................................................................................................... 47 Figure 5.10 : Boutons Composants .......................................................................................... 48 Figure 5.11 : Sondes, états et manipulation ............................................................................. 49 Figure 5.12 : Boite de configuration du générateur de mots .................................................... 49 Figure 5.13 : Analyseur d’états ................................................................................................ 50 Figure 5.14 : (a) Champs de création de modules, (b) Fenêtre d’affichage des modules ....... 52 Figure 5.15 : Insertion du module ADDC dans l’espace de travail ......................................... 52 v Figure 5.16 : Affichage des sous-circuits dans leur fenêtre d’édition ...................................... 53 Figure 5.17 : Schéma de démonstration ................................................................................... 54 Figure 5.18 : Création automatique de deux tables .................................................................. 54 Figure 5.19 : La table ExempleCirTbl correspondant à Exemple.cnao ................................... 55 Figure 5.20 : La table ExempleConTbl correspondant à Exemple.cnao .................................. 55 Figure 5.21 : Table Description d’Acceao6ModuleDb.mdb .................................................... 56 Figure 5.22 : Extrait de la table Contenu renfermant la liste des opérateurs utilisés pour la création d’un additionneur complet ADDC ............................................................................. 56 Figure 5.23 : (a) Schéma logique du demi-soustracteur avec les légendes reliées à la table brochage de Acceao6DB.mdb, (b) Extrait de la table Brochage de Acceao6ModuleDb.mdb correspondant ........................................................................................................................... 57 Figure 5.24 : Boite de dialogue d’importation de sous-circuits ............................................... 58 Figure 5.25 : Sommaire de l’aide du logiciel ACCEAO v6..................................................... 59 Figure 5.26 : Installation sous-jacente de la BDE sur la machine hôte .................................... 60 Figure 5.27 : Synoptique du processus de contrôle d’enregistrement...................................... 61 Figure A.2 : Tracé asymptotique du module de la fonction de transfert du circuit RC (diagramme de Bode) ............................................................................................................... 64 Figure C.1 : Centre de téléchargement des produits CodeGear RAD Studio .......................... 69 Figure D.1 : Listing sur une requête SQL executée à partir de la bibliothèque BDE .............. 75 vi Liste des tableaux Tableau 1 : Les outils autonomes intégrés par Borland dans CodeGear RAD Studio ............ 18 Tableau 2 : Types de données en C/C++ et plages de valeurs ................................................. 25 Tableau 3 : Symboles des opérateurs logiques selon la norme MIL ........................................ 30 Tableau B.1 : Table de vérité d’une porte NOT ....................................................................... 66 Tableau B.2 : Table de vérité d’une porte ET .......................................................................... 66 Tableau B.3 : Table de vérité d’une porte OU ......................................................................... 67 Tableau B.4 : Table de vérité d’une porte XOR ...................................................................... 67 Tableau B.5 : Symboles normalisés des portes logiques ......................................................... 67 Tableau D.1 : Les champs de la table Description dans la base de données des modules ....... 72 Tableau D.2 : Les champs de la table Contenu dans la base de données des modules ............ 73 Tableau D.3 : Les champs de la table Connexion dans la base de données des modules ........ 73 Tableau D.4 : Les champs de la table Brochage dans la base de données des modules .......... 74 vii Liste des abréviations ACCEAO Analyse et Conception de Circuits Electroniques Assistées par Ordinateur API Application Programming Interface BDE Borland Database Engine BMP Bitmap CAO Conception Assistée par Ordinateur DLL Dynamic Link Library DOS Disc Operating System EDI Environnement de Développement Intégré FAT File Allocation Table GUI Graphical User Interface HTML HyperText Markup Language IDE Integrated Development Environment ISO International Organization for Standardization KCL Kirchhoff Current Law NTL Non-standard Template Library PC Personal Computer RAD Rapid Aid Development SGBD Système de Gestion de Base de Données SPICE Simulated Program with Integrated Circuit Emphasis TCP/IP Transmission Control Protocol/Internet Protocol VCL Visual Component Library XML eXtensible Markup Language viii INTRODUCTION La veille technologique devient impérative dans le contexte actuel de l’évolution rapide de la technologie. Tous les domaines sont concernés. En effet, c’est la garantie d’une pérennité pour tout système économique et social. L’électronique, un des piliers de cette croissance, est une discipline qui, au fil des années, a su répondre aux exigences de l’homme afin de faciliter les traitements à grande échelle aussi bien en industrie qu’en gestion d’informations. C’est dans cette optique que l’Ecole Supérieure Polytechnique d’Antananarivo, dans son département Electronique, a initié le projet de développement du logiciel ACCEAO qui en est cette année à sa version 6. Ce logiciel connait une amélioration continue au profit du domaine pédagogique mais surtout il témoigne l’épanouissement au terme d’une formation ingénieuse. Des fonctionnalités importantes ont été intégrées pour entretenir une évolution constante d’ACCEAO. Parmi elles, la représentation du diagramme de Bode est une fonction disponible dans les versions sous le système d’exploitation MS-DOS du logiciel [1]. La migration sous le système d’exploitation Windows a privé la dernière version de cette tâche. Afin de remédier à cette lacune, des résolutions ont été prises pour ne pas handicaper le logiciel ACCEAO de cette fonctionnalité. Dans la même foulée, le programme a été amélioré de manière significative en y incorporant des outils qui permettent d’effectuer des analyses sur les circuits numériques. Le présent ouvrage orientera l’étude de la manière qui suit : - Le premier chapitre étudie à titre prospectif le logiciel ACCEAO. - Le second chapitre aborde les outils de développement pour parfaire le projet de maintenance. - Le troisième chapitre traite de l’intégration du diagramme de Bode dans cette nouvelle version. - Le quatrième chapitre décrit l’implémentation des circuits numériques dans le logiciel ACCEAO. - Le dernier chapitre concerne la présentation et l’utilisation de la version 6 du logiciel ACCEAO. 1 Chapitre 1 : Le logiciel ACCEAO ACCEAO (Analyse et Conception de Circuits Electroniques Assistés par Ordinateur) est un logiciel destiné à analyser, mais aussi à concevoir des circuits. Il a été développé intégralement par le Département Electronique de l’Ecole Supérieure Polytechnique d’Antananarivo. La dernière version est la version 5 [2]. 1.1 Logiciels de Conception Assistée par Ordinateur Définitions et besoins La Conception Assistée par Ordinateur (CAO) est un domaine subtil qui traite des moyens techniques permettant de créer, de simuler numériquement à l’aide d’un ordinateur. En réalité, les travaux d’ingénierie prennent source dans la conception d’un système. Les principes cernant l’enchaînement des fonctions du système ainsi que les interactions relèvent de ce fait des éruditions des ingénieurs. A mesure que le système accroît en étendue et en taille, de nouveaux paramètres entrent en jeu. Pour cette raison, il devient alors intéressant de mettre en place un moyen pour assister l’être humain. La CAO est en mesure de fournir une assistance que l’on ne peut négliger. Dans cet esprit, le système à créer bénéficie relativement d’une appréciation fiable grâce à la prévision de son comportement. L’assistance fournie par un ordinateur s’effectue dans la plupart des cas au moyen d’un logiciel installé sur celui-ci. La fonction attribuée à l’ordinateur est d’aider l’être humain à construire virtuellement un système qui réagit selon les principes programmés dans le logiciel. Tous les corps de métier peuvent faire appel aux instruments CAO. Dans le domaine de l’électronique, la Conception Assistée par Ordinateur contribue à créer des ensembles de dispositifs voire même des procédés qui peuvent dépasser la capacité de l’être humain. L’aboutissement est un prototype conforme appelé maquette numérique. A titre d’exemple, la conception d’un nouveau microprocesseur regroupant plusieurs millions de transistors ne pourra se faire sans la prévisualisation d’une maquette numérique. Dans le Département Electronique de l’Ecole, un volume d’heures important est consacré aux séances de travaux pratiques. Les résultats obtenus sont vérifiés théoriquement c’est-à-dire en requérant aux lois qui régissent les analyses de circuit en électronique. Mais les 2 mêmes résultats sont également relevés et comparés aux valeurs proposées par les logiciels de simulation. Le laboratoire du Département Electronique est doté de logiciels de simulation dont une version de SPICE qui fait par ailleurs l’objet d’une formation au cours des années d’étude à l’ESPA. PSPICE Ver. 5.2 est une version de SPICE adaptée sur PC pour être utilisé dans les universités. Il a servi notamment dans les comparatifs de résultats mais connaît tout de même un nombre d’inconvénients pouvant endiguer son utilisation : - L’interface utilisateur en mode texte. - L’intervention du concepteur dans la modélisation des composants. - L’intervention de l’utilisateur dans la programmation des types d’analyse de circuit à effectuer. Pour pallier à ces défauts relatifs aux failles des logiciels de Conception Assistée par Ordinateur, le Département Electronique a développé le logiciel ACCEAO. Exemples de logiciels de CAO De nos jours, le secteur de la CAO en électronique est largement prédominé par d’importants logiciels propriétaires dont le coût est souvent trop élevé : - Proteus édité par la société Labcenter Electronics. Il est composé de deux logiciels permettant respectivement la simulation électrique et la création de circuits imprimés. - OrCad est la propriété de Cadence Design Systems. OrCAD est rendu célèbre grâce à sa base de données de composants mise à jour régulièrement. - MultiSIM conçu par la compagnie National Instruments Electronics Workbench Group. Ce logiciel fait suite à la série très connue Electronics Workbench. - PSpice créé par MicroSim, est un logiciel de simulation reposant sur SPICE. La première lettre « P » dans son appellation se réfère surtout au fait que ce logiciel est consacré aux ordinateurs personnels ou PC. Sa conception remonte aux années 1980. - ACCEAO développé par le Département Electronique de l’Ecole Supérieure Polytechnique d’Antananarivo pour assister les étudiants dans les analyses et la conception de circuits électroniques. 1.2 Les versions antérieures sous MS-DOS d’ACCEAO ACCEAO est un logiciel pédagogique entièrement développé par le Département Electronique. Ses débuts ont été conçus pour le système d’exploitation MS-DOS. La 3 manipulation du logiciel ACCEAO s’est effectuée par l’intermédiaire du clavier, l’usage de la souris a été possible seulement à partir de la version 4.1 toujours sous MS-DOS [3]. Le compilateur Turbo C++ de Borland a été utilisé pour concevoir et maintenir dans le langage de programmation C++ les versions sous DOS du logiciel ACCEAO. C++ étant un langage orienté objet, des efforts ont été ménagés afin que la modularité du programme rende accessible les maintenances évolutives. Les interfaces ont également fait l’objet d’améliorations au cours des maintenances perfectives comme il est montré à la figure (Fig. 1.1) ci-dessous. Figure 1.1 : Interface de la version sous DOS du logiciel ACCEAO [4] 1 a. Fonctionnement du logiciel Les algorithmes de calcul sont basés essentiellement sur l’usage des nœuds [1], en appliquant entre autres les lois de Kirchhoff appliquées au courant ou KCL. Les paramètres et données du circuit sont ensuite traduits sous forme de matrice. L’interprétation des schémas électroniques s’effectue selon deux notions importantes dont le concept de point matériel et le concept de fil de connexion. i. Les points matériels Le tracé d’un schéma électronique est effectué par pixel. Ainsi, les programmeurs doivent envisager un niveau de tolérance afin de pallier les erreurs de coordonnées. Comme chaque 4 composant dispose d’au moins deux électrodes, un point matériel est le marquage des coordonnées d’une électrode selon la tolérance prédéfinie. ii. Les fils de connexion Les fils de connexion sont des objets reliant deux électrodes ou nœuds non contigus. Ils sont régis par deux règles : - Deux nœuds reliés par un fil de connexion doivent-être assignés d’un même numéro de nœud. - Les nœuds reliés à la masse doivent toujours être affectés du numéro 0. Les nœuds sont numérotés par un entier positif ou nul et selon les règles citées précédemment. Cette méthode de traitement des nœuds est cependant soumise à une pré-condition relative à leurs numérotations initiales : « chaque nœud est assigné de la valeur -1 ». Cette technique évite une initialisation aléatoire des valeurs de nœuds. b. Maintenance du logiciel i. Maintenance perfective : Dès sa version DOS, des travaux ont étés effectués pour que le logiciel ACCEAO n’occupe pas d’une manière excessive les ressources en mémoire d’un ordinateur aux configurations moyennes très modestes. La réduction de l’occupation en mémoire s’est réalisée : - En décomposant le logiciel en deux exécutables interagissant à savoir la manipulation des données d’une part, et le traitement des données d’autre part. - En diminuant l’utilisation des pointeurs. - En conservant les données dans des fichiers. - En restituant les espaces mémoires occupés par des objets rendus inutiles au cours du traitement. La récupération des espaces mémoires est accomplie grâce : - A l’instruction delete permettant de désallouer la mémoire réservée par new. - A un exécutable autonome « BALAI.EXE ». ii. Maintenance corrective : Les versions sous DOS du logiciel ACCEAO ont connu diverses corrections qui concernaient surtout les erreurs de codage. Ces erreurs sont détectées lors des tests. Elles touchaient particulièrement les opérations incluant les diodes : 5 - L’ajout d’une diode a été suppléé par l’ajout d’une diode Zener. - L’enregistrement d’un circuit à diode n’était possible qu’à partir de la version 3.2. iii. Maintenance évolutive : Comme tout logiciel évolué, ACCEAO a été amélioré au fil de son existence. De nouvelles fonctions y ont été ajoutées dont l’ajout d’une bibliothèque de composants pour sauvegarder en mémoire les caractéristiques de ces composants. Cette fonctionnalité permet en outre de s’approprier des paramètres exacts des composants et d’éviter ainsi des divergences dans les calculs. On note également la possibilité d’utiliser la souris à partir de la version 4.2. Toutefois, son usage a engendré des bogues dans cette même version mais le souci a été réglé dès la version 4.3. c. Fonctions essentielles dans les versions DOS Bien que le logiciel ACCEAO recèle une certaine autonomie, il proposait une coordination avec PSPICE Version 5.2. i. Fonctions d’analyse Le logiciel ACCEAO supporte divers types d’analyse : - L’analyse AC pour effectuer une analyse en régime variable en utilisant une méthode itérative. - L’analyse DC pour effectuer une analyse en régime continu. Cette analyse permet de déterminer la valeur de tension à chaque nœud du circuit. L’utilisateur doit cependant garantir la présence d’une masse et d’une alimentation continue. - L’analyse TRANSIENT pour effectuer une analyse en régime transitoire. Ce type d’analyse est associé au logiciel PSPICE Version 5.2. - L’analyse NODE pour attribuer les numéros pour chaque nœud du circuit. ii. Le diagramme de Bode. Comme son nom l’indique, cette fonctionnalité permet de tracer le diagramme de Bode pour le schéma électronique en cours. ACCEAO calcule la fonction de transfert et affiche la courbe de gain et la courbe de phase en fonction de sa pulsation. iii. La méthode QP Triangle ACCEAO renferme une fonctionnalité supplémentaire avantageuse qui est la méthode QP Triangle. 6 Cette méthode permet de concevoir des circuits simples à transistor dans le but d’obtenir un circuit stable relativement à sa température. Pour ce faire, l’utilisateur aura à spécifier les paramètres suivants : - Le type du transistor - Les paramètres du transistor - La polarisation - La tension d’alimentation - La valeur de la charge - La valeur de la tension crête-à-crête attendue aux bornes de la charge ACCEAO 4.3 est la dernière version qui a été dédiée au système d’exploitation MS-DOS. Cette version a été élaborée en 2004 et comprenait essentiellement une correction des erreurs concernant la gestion d’événement de la souris et du clavier. La suite du projet de développement du logiciel ACCEAO fonctionne désormais sous le système d’exploitation Windows. 1.3 Vue générale de la dernière version ACCEAO V5.0 sous WINDOWS ACCEAO Version 5.0 [2] voit sa compatibilité dans un système d’exploitation en constante évolution : Microsoft Windows. Il s’est doté d’une nouvelle interface graphique et vise désormais une facilité d’utilisation. Cette version a été construite autour de trois fenêtres principales pour schématiser le circuit, saisir les caractéristiques des composants et afficher les résultats [2]. a. Choix du système d’exploitation Le logiciel pédagogique ACCEAO a trouvé ses origines dans le système d’exploitation MSDOS. Cependant avec l’évolution technologique touchant à la fois les matériels et les services, MS-DOS s’est avéré limité et ceci dans divers aspects : - La gestion de la mémoire centrale est limitée à 1 Mo. - Les écritures dans des espaces mémoires non alloués ne sont pas contrôlées, et peuvent aboutir à un plantage du programme. - Les noms de fichiers sont limités à 8 caractères. Pour ces raisons, il convient de passer à un nouveau système d’exploitation qui est en mesure d’offrir plus de ressources. Tenant compte des équipements qui prédominent sur le marché, le système d’exploitation qui sera retenu doit fonctionner à priori sur une architecture 32 bits. 7 Microsoft Windows est un système d’exploitation disponible sur les architectures 32 bits et 64 bits. De plus, c’est un système multitâche préemptif, en ce sens qu’il contrôle les allocations des ressources pour les processus qui tournent. Windows est également un système multiutilisateur, ce qui lui concède déjà quelques avantages techniques faisant de lui un système d’exploitation de choix pour les développements futurs. La programmation sous Windows est marquée par la grande diversité de fonctions proposées dans le système. Le logiciel ACCEAO 5.0 a été développé avec l’Environnement de Développement Intégré C++ Builder 6, qui permet en quelques actions élémentaires de concevoir une interface graphique pour le logiciel ACCEAO. b. L’interface graphique d’ACCEAO Version 5.0 i. La fenêtre principale : La fenêtre principale du logiciel ACCEAO contient : - Une barre de menus proposant les principales commandes. - Une barre d’outils mettant en avant diverses fonctions raccourcis évitant à l’utilisateur de devoir scruter les menus pour une action donnée. - Une barre d’état affichant les messages qui prêtent concours aux utilisateurs durant les éditions du circuit. - Une boîte de composants. Elle est rassemblée dans un contrôle arbre regroupant les composants usuels. La disposition de la fenêtre est illustrée dans la figure (Fig. 1.2) ci-après. 8 Figure 1.2 : Arrangement de la fenêtre principale de ACCEAO Version 5 2 ii. La fenêtre de représentation graphique : Pendant l’analyse transitoire, une autre fenêtre est appelée pour afficher l’allure des courbes désirées. Elle permet notamment de garder en vue le schéma électronique étudié. Hormis pour l’analyse transitoire, les résultats sont affichés directement dans la fenêtre principale de l’application. iii. La fenêtre de saisie des caractéristiques d’un composant : Cette fenêtre varie selon le type du composant traité : - Dans le cas d’un composant actif, la fenêtre comporte une bibliothèque de composant dans sa partie gauche. - Dans le cas d’un composant passif, la fenêtre affiche la saisie des valeurs. c. Les nouveaux composants dans ACCEAO Version 5 La cinquième version d’ACCEAO a apporté quelques nouveaux outils par rapport à ses antécédents. i. Un composant nœud : Il consiste en un point de liaison entre deux fils. ii. Les instruments d’analyse : On peut recenser deux nouveaux éléments : 9 - Les composants dits « pointeurs » Ren et Rs qui indiquent respectivement la valeur de la résistance d’entrée et celle de la résistance de sortie. - Les sondes qui agissent à la manière d’un oscilloscope en relevant les numéros de nœud sur les fils de connexion pointés par l’utilisateur. iii. Impression d’un schéma de circuit électronique : ACCEAO Version 5 offre la possibilité d’imprimer sur un format de papier standard le schéma d’un circuit électronique. iv. Cliché du schéma ACCEAO Version 5 permet de prendre en image le circuit de l’espace de travail sous forme de fichier bitmap. d. Structure de la version 5 du logiciel ACCEAO Dans un souci de compatibilité, la cinquième version d’ACCEAO a été entièrement restructurée. i. Numérotation des nœuds L’ordre de numérotation des nœuds a subi une modification à partir de la version sous Windows de ACCEAO. Ce changement est dû notamment au nouveau composant « nœud » introduit dans cette version. ii. L’analyse en régime permanent Ce type d’analyse calcule les valeurs de tension sur chaque nœud du circuit. Ces valeurs sont déterminées à partir des lois fondamentales de l’électricité. Son codage a gagné en robustesse et en stabilité grâce à l’utilisation des conteneurs de la librairie standard C++. iii. L’analyse en régime transitoire Cette analyse sert à calculer et à représenter sur une courbe la tension sur un nœud spécifié par l’utilisateur. Dans les anciennes versions, seules une courbe d’entrée et une courbe de sortie peuvent être affichées simultanément. La version sous Windows d’ACCEAO permet de visualiser autant de courbes que l’on souhaite grâce aux composants « sondes ». Les sondes sont stockées dans des vecteurs qui sont des conteneurs de la STL. 10 iv. L’analyse en moyenne fréquence [5] Ce type d’analyse fournit soit la résistance d’entrée, soit la résistance de sortie, soit le gain en tension du circuit : - La résistance d’entrée est obtenue en court-circuitant les générateurs de tension indépendante et de tension continue, en mettant en circuit ouvert les générateurs de courant indépendants. - La résistance de sortie s’obtient en insérant un générateur de tension indépendant à la sortie et en court-circuitant le générateur de tension indépendant sur l’entrée. - Le gain en tension est déduit des expressions de la résistance d’entrée et de la résistance de sortie. 1.4 Conclusion Ainsi, le basculement sous le système d’exploitation Windows a été un pas énorme pour le projet de maintenance du logiciel ACCEAO. Le logiciel s’est doté d’une nouvelle interface mais aussi des fonctionnalités y ont été ajoutées. D’après les explorations des versions sous DOS et sous Windows d’ACCEAO, on a malgré tout constaté l’absence de fonctions intéressantes à l’image du diagramme de Bode. Le projet de maintenance du logiciel ACCEAO doit de ce fait envisager la réintégration de ces fonctions. Compte tenu de l’évolution continuelle du système d’exploitation Windows, le choix des outils qui serviront à la maintenance du logiciel ACCEAO doit être approprié. Cette corrélation conduit à l’étude des outils de développement dans le chapitre suivant. 11 Chapitre 2 : OUTILS DE DEVELOPPEMENT La maintenance du logiciel ACCEAO s’est effectuée à l’aide d’un Environnement de Développement Intégré (EDI) très évolué connu sous l’appellation « CodeGear RAD Studio 2007 ». Il convient de cadrer les facultés de cet outil de travail dans le but de l’exploiter de façon optimale. Pour ce faire, on présentera en premier lieu la définition d’un Environnement de Développement Intégré par son fonctionnement, les spécificités de CodeGear RAD Studio seront mises en exergue dans un second lieu. 2.1 Généralités sur les Environnements de Développements Intégrés Un Environnement de Développement Intégré est une suite de logiciels destinée au développement d’une application. Les EDI sont surtout très connus pour faciliter la création des interfaces graphiques (GUI en anglais pour Graphical User Interface). Ils intègrent également un système de gestion de versions permettant de maintenir l’ensemble des versions d’un logiciel. Beaucoup de langages possèdent des EDI qui leur correspondent. Le premier langage de programmation qui s’est doté d’un tel outil fut le Dartmouth BASIC en 1964. Le langage C++ utilisé pour maintenir ACCEAO dispose cependant d’un choix très diversifié d’EDI à savoir : - CodeGear RAD Studio de Borland, pour développer en C/C++ ou Delphi sous le système d’exploitation Windows. - Visual Studio de Microsoft, qui rassemble les produits Visual C++ pour développer en C/C++, et Visual Basic pour le langage Visual Basic, toujours sous le système d’exploitation Windows. - Kylix de Borland, supportant les langages C/C++ et Pascal sous le système d’exploitation Linux. - Eclipse de Eclipse Foundation pour développer en C/C++, Python, Perl, Ruby, HTML, PHP. - NetBeans de Sun utilisé surtout avec le langage Java mais supporte également les langages Python, C/C++, XML, Ruby et HTML. Les EDI renferment généralement un éditeur de texte, un compilateur, des outils automatiques de fabrication, un débogueur, et un interprète s’il s’agit d’un langage interprété. 12 Editeur de texte Un éditeur de texte est un logiciel attribué pour la création et l’édition de fichiers textes. Son usage est très courant dans le cadre d’un développement d’application. Chaque système d’exploitation fournit un éditeur de texte vu qu’il est incontournable pour beaucoup de tâches. Un éditeur de texte se distingue d’un logiciel de traitement de texte par le fait que la composition s’oriente plutôt sur les lignes de code que sur les paragraphes. Il en résulte que les fichiers textes ne comportent pas de mise en forme telle l’espacement des caractères ou encore la couleur de la police. Compilateur On peut définir un compilateur comme un programme servant à traduire un langage source en un langage nommé langage cible. Le langage cible présente habituellement un niveau d’abstraction plus élevé que le langage source. En terme technique, on dit que le langage source est de plus haut niveau que le langage cible. Pratiquement, le compilateur transcrit un code source écrit dans un langage de programmation, à l’exemple du langage C++, en un autre langage qui est souvent un langage d’assemblage ou langage machine. Ce programme produit en langage machine forme ce qu’on appelle code objet. Interpréteur Un interpréteur ou interprète analyse, traduit et exécute un programme écrit dans un langage de programmation dit interprété. A l’inverse du compilateur, l’interpréteur exécute les instructions du programme au fur et à mesure qu’il lit le code source. Le processus d’interprétation s’appuie sur l’exécution dynamique du programme par un autre programme qu’est l’interpréteur. La conversion du langage n’est donc plus nécessaire. L’interpréteur effectue cycliquement la lecture et l’analyse d’une instruction, exécute ou évalue celle-ci, et passe à l’instruction suivante. Débogueur (en anglais, debugger) Un débogueur sert à détecter les dysfonctionnements dans le programme. Il favorise également les tests du programme, et permet un suivi rapproché de celui-ci. Il est à noter que 13 le programme à déboguer s’exécute normalement à travers le débogueur. Cependant, le débogueur procure des façons diversifiées dans le but de contrôler l’exécution. Le débogueur offre notamment la possibilité d’arrêter ou de suspendre un programme sur un point que le programmeur aura à spécifier. A partir du moment où le programme s’est arrêté, les états des différentes variables stockées en mémoire peuvent être observés. Chaque anomalie résultant de la surveillance de ces variables peut être à l’origine d’un défaut de fonctionnement du programme. Les outils automatiques de fabrication Facteur déterminant dans le choix d’un EDI, les outils de conception peuvent différer selon les langages et les systèmes. Les fonctionnalités les plus privilégiées sont : - Les documentations du langage et de l’EDI. - Les assistants et les outils de développement rapide d’applications ou RAD (acronyme de l’anglais Rapid Aid Development). - Les interfaces de programmation (Application Programming Interface) La documentation Afin d’optimiser les possibilités du logiciel, les développeurs cherchent souvent à avoir à portée de main des sources d’informations qui leur permettraient d’exploiter toute la puissance de leur EDI. Aussi, il est important d’assurer la disponibilité des documentations si toutefois elles ne figurent pas dans l’EDI lui-même. Les types d’informations pouvant figurer à l’intérieur d’un EDI sont les documentations sur les fonctionnalités présentes dans celui-ci, les documentations sur les interfaces de programmation ainsi que leurs concepts. Les interfaces de programmation ou API Une interface de programmation est définie comme un ensemble de fonctions, procédures et classes mises au service des programmes informatiques. Les API sont fournies par l’intermédiaire d’une bibliothèque logicielle, d’un service, et par le système d’exploitation lui-même. Leur maîtrise est indispensable à l’interopérabilité des composants. Le logiciel ACCEAO a fait usage de bon nombre d’interfaces de programmation (API) à citer en particulier la bibliothèque standard C++ ou STL (Standard Template Library). En effet, la nouvelle version a fait un usage encore plus avancé de la STL grâce à l’introduction de la notion d’algorithme et de conteneurs. 14 Les assistants et outils de développement rapide d’applications Une méthode très cotée dans un processus d’élaboration est connue sous le nom de développement rapide d’applications ou RAD. Cette méthode est une technologie avancée d’assistant de développement. L’appellation RAD fut d’ailleurs retenu dans le nom de l’EDI CodeGear RAD Studio 2007, utilisé pour maintenir la nouvelle version du logiciel ACCEAO. L’approche RAD fut initiée par la firme IBM au cours des années 1980, et formalisée en 1991. Le principe de développement rapide d’application insiste sur les aspects de pilotage d’un projet par rapport à sa faisabilité. La méthode RAD découpe le cycle de vie d’un projet en 5 phases dont : - L’initialisation : décide du plan de communication et de son périmètre. - Le cadrage : constitue les objectifs, les moyens et les solutions. - Le design : modélise la solution et vérifie la cohérence du système. - La construction : valide en permanence la solution. - La finalisation : déploie la solution et contrôle sa qualité. Les outils RAD sont le plus souvent indiqués pour être appariés avec la méthode RAD. Ces outils renferment essentiellement des interfaces graphiques qui permettent euxmêmes de créer des interfaces graphiques. L’élaboration de l’interface graphique produit automatiquement des codes correspondant aux actions du programmeur. Ces caractéristiques ont fait de l’EDI CodeGear RAD Studio un instrument de choix pour la maintenance du logiciel ACCEAO. 2.2 L’Environnement de Développement Intégré CodeGear RAD Studio 2007 CodeGear RAD Studio est un environnement de développement intégré (EDI) pour la construction des applications destinées aux plateformes Windows. Il offre un ensemble complet d’outils qui rationalisent et simplifient le cycle de vie d’un développement. a. Présentation de CodeGear RAD Studio Au démarrage, CodeGear RAD Studio affiche plusieurs outils et menus. Il offre notamment les possibilités de concevoir visuellement les interfaces utilisateurs, définir les propriétés des objets, gérer l’application de diverses façons [6]. Le bureau par défaut comporte des outils les plus couramment utilisés. Les outils comprennent notamment : 15 - La page d’accueil qui propose divers liens vers des ressources destinées aux développeurs. Par exemple, la sixième version du logiciel a été celle qui a été proposée par CodeGear RAD Studio. - La palette d’outils qui contient des éléments permettant de développer l’application. Il est à noter que les éléments affichés dépendent de la vue en cours. Exemple : Si on visualise l’éditeur de code, la palette d’outils affiche des segments de code que l’on pourrait rajouter à l’application. Si c’est une fiche ou une fenêtre qui apparaît dans le concepteur, la palette d’outils affiche les composants appropriés à cette fiche ou à cette fenêtre. - Les fiches : elles représentent généralement les fenêtres dans l’interface utilisateur. Pendant la conception, une fiche s’affiche sur la surface du concepteur. Il suffit alors d’ajouter des composants de la fenêtre palette d’outils pour mettre d’autres contrôles de plus sur la fiche. - Le gestionnaire de projets. Un projet est composé de plusieurs fichiers applications. Le gestionnaire de projets permet de visualiser et d’organiser les fichiers du projet (fiches, exécutables, objets, bibliothèques, etc.). - L’explorateur de données : il offre la possibilité de parcourir les objets de schéma spécifiques au serveur de base de données à citer parmi eux les tables et les champs. Les menus contextuels de l’explorateur de données peuvent servir à créer et à gérer les connexions aux bases de données. - L’éditeur de code. Il propose un moyen pratique de visualiser et de modifier le code source. Il s’agit d’un éditeur UTF-8 complet et personnalisable comprenant entre autres la mise en surbrillance syntaxique, et les fonctions de sauvegarde automatique. - L’inspecteur d’objets qui permet de définir les propriétés de conception et de créer des gestionnaires d’évènements pour les composants. C’est le lien entre les codes de l’application et son apparence visuelle. L’onglet Propriétés modifie les attributs physiques des composants tandis que l’onglet Evènements spécifie les évènements d’un objet spécifique. - Le navigateur de fichiers. On l’utilise pour effectuer les opérations de base sur les fichiers 16 b. Nouveautés dans CodeGear RAD Studio 2007 i. Nouveau moteur de construction Le nouveau moteur de construction de CodeGear RAD Studio 2007 se nomme MSBuild. La structure du fichier projet a notamment été modifiée en un langage à balises appelé XML. Les projets peuvent à présent être construits à partir de la ligne de commande en utilisant la syntaxe MSBuild. ii. Meilleure organisation de la boîte de dialogue « Options de projet » De nouvelles pages ont été ajoutées dans la boîte de dialogue Options de projet. La nouvelle page Propriétés de projet permet par exemple de spécifier si le compilateur C++ gère les chemins de bibliothèque et affiche les dépendances d’en-tête. iii. Changement de l’ordre de construction MSBuild construit les fichiers en fonction du type de fichier, plutôt que selon l’ordre modifiable par l’utilisateur préalablement utilisé. Le nouvel ordre de construction devient : Delphi (.pas), C/C++ (.c/.cpp), assembleur (.asm), puis ressource (.rc). iv. Compilation des packages C++ avec Delphi C++ Builder, composant de CodeGear RAD Studio, prend en charge la compilation des packages de conception qui contiennent des fichiers source Delphi. v. Prise en charge des thèmes Vista et XP Sous le nouveau système d’exploitation de Microsoft, Windows Vista, les effets de transparence rend les fenêtres et les dialogues translucides afin de voir les graphiques de l’arrière plan. Cet effet est connu sous l’appellation Vista Aero. Par défaut, les thèmes Vista et XP sont activés. vi. Noms de fichiers dupliqués Un projet est autorisé à contenir plusieurs fichiers de même nom à partir de la version 2007 de CodeGear RAD Studio. vii. Nouvelle barre d’outils de la vue Structure Une nouvelle barre d’outils disponible uniquement pour C++ permet de trier les classes, les fonctions et les variables selon les critères suivants : Alphabétiquement, Groupés par type, Groupés par visibilité. viii. Nouveaux composants Des composants ont été ajoutés à la bibliothèque de composants visuels. Ils comprennent notamment des propriétés, des classes et des méthodes qui prennent en charge la 17 compatibilité avec le système d’exploitation Windows Vista. De même, la gestion du développement d’applications de bases de données a été améliorée. c. Les outils de développement autonomes de CodeGear RAD Studio 2007 RAD Studio possède des exécutables autonomes qui ne sont autres que des outils de développement dans l’EDI accroissant l’étendue de ses fonctionnalités. Ces outils sont des facteurs favorisant l’utilisation de l’EDI CodeGear RAD Studio 2007, ils sont résumés dans le tableau 1. Tableau 1 : Les outils autonomes intégrés par Borland dans CodeGear RAD Studio 1 Outil Utilisation Nom du fichier exécutable Editeur d’images Création et modification des fichiers images (icône, curseur et bitmap) et ajout aux fichiers ressources Win32 (fichiers .res) ou aux fichiers ressources de composants (fichiers .dcr). imagedit.exe Explorateur de données Parcours et modification des objets de schémas spécifiques au serveur de base de données, notamment les tables, les champs, les définitions de procédures stockées, les déclencheurs et les index. Dbexplor.exe Mappeur XML Mappage des nœuds d’un document XML en champs d’un paquet de données utilisé par un ensemble de données client. Xmlmapper.exe Editeur de collection de packages Visualisation et modification des packages Delphi et des autres fichiers associés à une collection de packages (fichiers .dpc). pce.exe Outil Reflection Inspection des types contenus dans un assemblage .NET. reflection.exe d. Le débogage d’application avec CodeGear RAD Studio 2007 CodeGear RAD Studio 2007 comporte le débogueur CodeGear.NET et le débogueur CodeGear Win32. Il choisit automatiquement le débogueur qui est approprié au type du projet actif. On peut déjà noter que le débogage multiplateforme dans un groupe de projets est pris en charge et partage une interface utilisateur commune dans la mesure du possible. Les débogueurs intégrés dans CodeGear RAD Studio 2007 autorisent la correction des erreurs d’exécution dans une application RAD Studio [6]. Le débogueur de l’EDI inclut toutes les fonctionnalités de base. 18 Les fenêtres du débogueur sont rassemblées dans un volet appelé « inspecteur de débogage » qui offre notamment la possibilité d’examiner les types de données tels les tableaux, les classes, les constantes, les variables scalaires, les pointeurs. L’option « inspecter » du menu « Exécuter » permet d’entreprendre cette action de suivi et évaluation. i. Les points d’arrêt de CodeGear RAD Studio 2007 Le débogueur de CodeGear RAD Studio 2007 gère quatre (4) types de points d’arrêt : - Les points d’arrêt source interrompent l’exécution à un emplacement donné du code source ; - Les points d’arrêt adresse interrompent l’exécution à une adresse mémoire donnée ; - Les points d’arrêt données interrompent l’exécution lorsque la mémoire change à une adresse particulière ; - Les points d’arrêt chargement de module suspendent l’exécution durant le chargement du module spécifié. ii. Evaluation/Modification dans CodeGear RAD Studio 2007 La fonctionnalité Evaluer/Modifier évalue une expression. On peut envisager la modification de la valeur des variables grâce à cette possibilité. iii. Points de suivi Les points de suivi permettent de suivre la valeur des variables ou des expressions du programme lorsque le code est exécuté en mode pas-à-pas. La valeur de l’expression point de suivi change si le programme met à jour l’une des variables contenues dans l’expression de suivi. iv. Débogage à distance CodeGear RAD Studio 2007 donne la possibilité de déboguer une application exécutée sur un ordinateur distant. La connexion se fait via le protocole TCP/IP, le débogueur étant sur la machine distante. e. La compilation dans CodeGear RAD Studio 2007 Au cours du développement d’une application, CodeGear RAD Studio 2007 permet de compiler, construire et exécuter l’application depuis sa fenêtre. Ces opérations se comportent d’une manière différente : - Compiler (ou Make) : compile uniquement les fichiers qui ont été modifiés depuis la dernière construction. Cette commande n’exécute donc pas l’application. 19 - Construire : compile tout le code source du projet en cours, qu’il ait été modifié ou non. La construction est impérative si les fichiers modifiés n’ont pas été relevés. - Exécuter : compile tout le code source modifié. Si la compilation réussit, l’application peut être testée et utilisée dans l’EDI. Il est aussi possible de supprimer les fichiers générés dans la précédente construction en utilisant tout simplement la commande Nettoyer. i. Les erreurs de compilation CodeGear RAD Studio 2007 affiche les messages du compilateur dans la fenêtre Messages. Mais il est aussi capable de fournir des explications concernant les messages d’erreurs en sélectionnant un message et en appuyant sur F1. ii. Les options de compilation Le programmeur peut définir de nombreuses options de compilation pour un projet en sélectionnant une page relative au compilateur dans le menu Projet > Options. On peut également invoquer le compilateur depuis la ligne de commande et spécifier d’autres options du compilateur. CodeGear RAD Studio 2007 est un Environnement de Développement Intégré assez riche pour prendre en charge les étapes d’amélioration du logiciel ACCEAO. Pour entamer les activités de maintenance, il faudrait rétablir la fonction de représentation du diagramme de Bode qui n’a pas été effectuée pendant la migration sous Windows du logiciel. Ce travail fera l’objet du prochain chapitre qui explicitera par ailleurs les spécificités de cette fonctionnalité. 20 Chapitre 3 : Intégration du diagramme de Bode 3.1 Le Diagramme de Bode Définition Le Diagramme de Bode constitue un outil de représentation du comportement fréquentiel d’un système à travers la paire « courbe de gain – courbe de phase ». Il permet une résolution graphique simplifiée, en particulier pour l'étude des fonctions de transfert de systèmes analogiques. Fonction de Transfert La fonction de transfert se définit comme le rapport de la fonction sinusoïdale de la sortie considérée s(t) = S 2cos(wt +j𝜑𝑠 ) (ou 𝑆 = S 2 𝑒 𝑗 (𝑤𝑡 +𝜑 𝑠 ) pour plus de commodité) avec celle de l’excitation e(t) = E 2 cos(wt +j𝜑𝑒 ) (ou 𝐸 = E 2 𝑒 𝑗 (𝑤𝑡 +𝜑 𝑒 ) ). La Fonction de transfert, appelée également « transmittance » est donc définie par la relation suivante [5] : 𝑆 𝑆 𝐻(jw) = 𝐸 = 𝑒 𝑗 (𝜑 𝑠 −𝜑 𝑒 ) = H (w)𝑒 𝑗 𝜑 𝐸 Dans laquelle on définit les deux fonctions de la pulsation w : - Le gain du circuit qui équivaut au module de la transmittance H(w) = | H(jw) | = - 𝑆(𝑤 ) 𝐸(𝑤 ) la phase du circuit qui équivaut à l’argument de la transmittance : Φ = arg(H(jw)) = 𝜑𝑠 − 𝜑𝑒 Le diagramme de Bode représentatif de cette fonction de transfert comprend : ·la courbe de gain qui représente l’évolution de la grandeur G(dB) = 20 log|H(jw)| = 20 log(H(w)) . G(dB) s’exprime en décibels (dB) avec la pulsation (ou la fréquence). ·la courbe de phase qui figure la variation de la grandeur Φ = arg(H( jw )) en fonction de la pulsation (ou la fréquence). 21 Courbes et Echelle des axes Pour le tracé du diagramme de Bode dans les deux repères respectifs des courbes, deux choix de représentation d’échelle sont possibles [7] : L’échelle linéaire Pour ce type d’échelle, la différence entre deux valeurs de graduations (principales) reste constante tout le long de l’axe considérée. Généralement il s’agit d’une assignation des valeurs d’abscisses (ou d’ordonnées selon le cas) égale ou proportionnelle à la variable considérée. L’échelle logarithmique Dans ce cas, on fait correspondre à chaque valeur d’abscisse (ou d’ordonnées selon le cas) son logarithme. Courbe réelle, Diagramme asymptotique Les Courbes réelles du diagramme de Bode sont les courbes de variations des grandeurs 20 Log| H(jw) | et arg(H(jw)) dans les deux repères de gain et de phase en fonction de la pulsation w. Par contre pour le cas des courbes dites asymptotiques, les deux fonctions citées précédemment sont interprétées à l’aide d’équivalents aux bornes du domaine de définition, c'est-à-dire en faisant tendre w vers ou w>>w0 ou w/w0 >>1, ou bien en faisant tendre w vers 0 ou w << w0. Les asymptotes constituent la courbe limitrophe de l’allure réelle. Figure 3.1 : Diagramme de Bode d’un circuit du premier ordre sur papier logarithmique 3 Fréquence de coupure, Bande passante Selon le tracé asymptotique de Bode de la figure (Fig. 3.1), on remarque que le circuit RC laisse passer, sans trop les atténuer, les signaux de « basse » fréquence et atténue 22 fortement les signaux de « haute » fréquence, à partir desquels on est amené à définir une limite entre les « basses » et les « hautes » fréquences. Cette limite aboutit aux notions de Bande Passante et de fréquences de coupure. Par définition, la Bande Passante (BP) est l’intervalle de fréquence f pour lequel : 1 𝑃𝑠 2 𝑃𝑒 max 𝑃𝑠 𝑃𝑠 ≤ 𝑃𝑒 𝑃𝑒 max Les fréquences de coupure du système sont les fréquences pour lesquelles on a H = En décibel cette relation devient : 20 Log( Hmax 2 Hmax 2 . ) = HdBmax – 3dB. On parlera dans ce cas de fréquence de coupure à -3 dB (cf. annexe A). 3.2 ACCEAO et Diagramme de Bode a. Diagramme de Bode sous les versions DOS de ACCEAO Les anciennes versions du logiciel pédagogique ACCEAO sous DOS intègrent la fonctionnalité Diagramme de Bode dans le menu Design (Fig. 3.2). Cette dernière permet le traçage des courbes de gain et de phases du circuit en cours. Figure 3.2 : Commande de traçage du diagramme de Bode dans ACCEAO v4.3 depuis le menu Design 4 La version 4.3 comporte des fonctions responsables du calcul des paramètres du diagramme de Bode ainsi que son affichage dans une nouvelle fenêtre. Les deux principales fonctions fournissant cette fonctionnalité sont les suivantes : la fonction freq_propre(), d’une part qui se charge du calcul de la fonction de transfert du circuit courant, puis la fonction 23 graph_FTR(), d’autre part, qui est responsable de l’affichage de la paire courbe de gain – courbe de phase. Au final, le diagramme est tracé, muni des informations relatives aux courbes : le gain maximal en dB, la bande passante, la ou les fréquences de coupure à -3 dB, la possibilité de balayage de l’entière courbe avec les valeurs concordantes au curseur. b. Absence du Diagramme de Bode dans la version 5 sous WINDOWS Sous sa dernière version, le logiciel ne possède pas la fonction Diagramme de Bode. Cette version opérait la migration du logiciel ACCEAO sous DOS vers WINDOWS, dans une optique de meilleur rendement des fonctionnalités avec l’interface utilisateur du logiciel. Il est à rappeler que cette dernière version (ACCEAO v5.0) consistait essentiellement en la réimplantation du logiciel anciennement sous DOS vers le système d’exploitation WINDOWS. Cette migration se traduit par une retranscription d’un langage natif (DOS) vers un autre (WINDOWS), toutefois, sans restructuration majeure des algorithmes d’implémentation qui ont été utilisés depuis les premières versions jusqu’alors. L’ordre de grandeurs est assujetti à des exposants atteignant les 1039 à 10309, notamment sur adjonction des composants actifs (les transistors, les diodes) compte tenu du fait que les calculs contenant ces composants électroniques accroissent l’ordre de puissances dans les matrices de calcul. Les transistors sont implantés et les modèles mathématiques de ses capacités Cmu , Cpi , qui sont logiquement négligés pour les petites et moyennes fréquences dans les études théoriques [5], ne sont nullement négligés dans les calculs internes de ACCEAO pour ces fréquences intermédiaires, ce qui implique l’occurrence de grandeurs d’ordres incommensurables dans le calcul opéré par l’entité de calcul du logiciel. Par-dessus tout, l’initialisation de grandes valeurs implantées au cœur du programme (depuis les versions précédentes sous DOS) réduit à néant le bon déroulement du cycle de calcul opéré par l’algorithme de calcul d’ACCEAO. Il faut savoir que toutes les versions du logiciel opérant sous DOS ont été développées à partir de l’EDI Turbo C++ (de Borland). La précision supportée et garantie par ces EDI effleure les 105000 comme il est montré dans le tableau 2 [8]. L’implémentation de l’algorithme de calcul d’ACCEAO n’est donc pas sujette au problème de pertes d’informations ou de précision. Dans la mesure où ce même algorithme de calcul ayant fonctionné sans encombre pour la version immédiatement précédente (et toutes les autres versions antérieures), l’algorithme a été dès lors laissé intact, sachant qu’après débogages successifs des lignes de 24 codes du programme, les erreurs et exceptions lancées par l’application proviennent principalement de la précision de calcul apportée par le logiciel de développement CodeGear C++Builder (C++ Builder en général). En effet, la précision de calcul garantie par CodeGear C++Builder avoisine les 10308. Autrement dit la plage des valeurs acceptée pour les nombres flottants entrant dans les calculs (double) ne doit pas dépasser les 10308. Outre cet ordre de grandeur, il apparaît une perte de précision influant grandement sur le résultat de calcul. Tableau 2 : Types de données en C/C++ et plages de valeurs 2 Type de donnée Signification Taille (en octets) Plage de valeurs acceptée char Caractère 1 -128 à 127 unsigned char Caractère non signé 1 0 à 255 short int Entier court 2 -32 768 à 32 767 unsigned short int Entier court non signé 2 0 à 65 535 int Entier 2 (sur processeur 16 bits) 4 (sur processeur 32 bits) -32 768 à 32 767 -2 147 483 648 à 2 147 483 647 unsigned int Entier non signé 2 (sur processeur 16 bits) 4 (sur processeur 32 bits) 0 à 65 535 0 à 4 294 967 295 long int Entier long 4 -2 147 483 648 à 2 147 483 647 unsigned long int Entier long non signé 4 0 à 4 294 967 295 float Flottant (réel) 4 -3.4*10-38 à 3.4*1038 double Flottant double 8 -1.7*10-308 à 1.7*10308 long double Flottant double long 10 -3.4*10-4932 à 3.4*104932 bool Booléen Même taille que le type int, parfois 1 sur quelques compilateurs Prend deux valeurs : 'true' et 'false' mais une conversion implicite (valant 0 ou 1) est faite par le compilateur lorsque l'on affecte un entier (en réalité toute autre valeur que 0 est considérée comme égale à True). 25 c. Librairie NTL Pour solutionner le problème de précision des calculs, il a fallu intégrer une approche d’élargissement du registre de calcul utilisé par CodeGear C++ Builder pour aboutir à un plus grand ordre précision dans les calculs, tels qu’implémentés au cœur de ACCEAO. Il a été opté l’apport de la bibliothèque NTL au sein du projet qui permet un accroissement de l’ordre de précision de calcul indifféremment de celui utilisé par l’environnement de développement. Cette solution n’est pas sans conséquence car elle ralentit considérablement le temps de calcul de l’application. Pour minimiser le problème, seules les fonctions afférentes à l’exécution du diagramme de Bode ont été réadaptées à partir de la bibliothèque NTL. Ainsi, le reste du projet n’est pas pénalisé. NTL est relativement facile à manipuler. Elle fournit un environnement satisfaisant pour une nouvelle implémentation d’algorithme basé sur les grands nombres. Elle est écrite entièrement en C++ et peut être installée sur une grande variété de plateformes à savoir les PC, les stations de travail 32 et 64 bits. Plus rapide que les librairies portables de son genre, NTL fournit des structures de données pour manipuler les nombres signés, les matrices et les polynômes [9]. Les algorithmes qui y sont implémentés sont des plus rapides au point où NTL est la librairie utilisée pour la factorisation des polynômes et du dénombrement des points dans les courbes elliptiques. Malgré cette rapidité de la librairie, le tracé du diagramme de Bode accuse une certaine lenteur. Face à cela, un indicateur de chargement (une barre de progression) a été implanté au niveau de la fenêtre d’affichage du diagramme montrant la progression du tracé. Celui-ci correspond à la progression des itérations de la boucle principale de balayage. Une fois le traçage accompli, le temps d’exécution est affiché en millisecondes (ms) au dessus de la barre de progression précédente. d. Mise en route des fonctions de traçage du diagramme de Bode Les méthodes et les propriétés qui régissent la représentation du diagramme de Bode ont été rassemblées dans une classe appelée Bode. Ce procédé nommé encapsulation consiste à réunir les données et les méthodes au sein d’une structure [10]. Ainsi, la classe Bode renferme en son sein les paramètres entrés par l’utilisateur telles les échelles et les plages de fréquence à étudier. La récupération de la fonction de transfert du circuit est effectuée en deux temps, l’extraction du numérateur et du dénominateur. Les données reçues sont ensuite traitées par la méthode bodeplots() de la classe Bode qui s’occupe du tracé proprement dit du diagramme de Bode. 26 L’interaction avec la librairie NTL est observable uniquement dans l’encapsulation relative à la fonction Diagramme de Bode. Le mécanisme de liaison du programme avec la bibliothèque mathématique a été intelligemment implémenté dans un fichier nommé clever.cpp. Les fonctions présentes dans ce fichier se chargent notamment de l’interprétation des types de données proposées par la NTL. En effet, la librairie NTL possède des classes pour la manipulation des grands nombres mais n’offre aucune méthode pour convertir ceux-ci en des données de type native (ex : double, int, …). Ces opérations de conversion sont effectuées dans le fichier clever.cpp en interceptant les flux de données traités par les classes de la librairie NTL. e. Exemples de résultat obtenu - Pour un circuit dérivateur (Fig. 3.3) réalisé à l’aide d’un amplificateur opérationnel avec une valeur de capacité à 1 uF, une résistance de 1 k et un amplificateur opérationnel avec facteur d’amplification à vide 500 v/v, l’exécution de la tache par ACCEAO dure 62 ms Figure 3.3 : Schéma d’un circuit dérivateur 5 27 - Pour un circuit intégrateur (Fig. 3.8) utilisant les mêmes composants, on obtient le résultat au bout de 93 ms. Figure 3.4 : Schéma d’un circuit intégrateur 6 La fiabilité du résultat acquis est garantie jusqu’à l’ordre 4 du circuit, au delà duquel des irrégularités dans les tracées pourraient subvenir. 28 Chapitre 4 : Implémentation de circuits numériques dans la version 6.0 Un circuit logique est un circuit électronique dans lequel uniquement deux valeurs logiques sont réalisables, si bien en entrée qu’en sortie, dans une optique d’implémentation d’une fonction logique formelle. De nombreuses applications des circuits logiques requièrent un circuit à entrées et sorties multiples, dans lequel les valeurs de sorties ne dépendent que de celles des entrées. Un tel circuit est dit combinatoire [11]. Par opposition, les fonctions logiques dites « séquentielles » résultent de l'association de plusieurs fonctions logiques combinatoires et qui supposent l'existence d'une horloge qui synchronise le temps, auquel cas, les valeurs de sorties dépendent non seulement des valeurs d'entrée, mais aussi des valeurs de sortie à l'instant précédent. 4.1 Objectif et besoins Depuis les anciennes versions du logiciel pédagogique jusque dans la version précédente sous l’environnement Windows, la principale exploitation du logiciel est dirigée sur les essais de circuits analogiques. A l’heure de la numérisation continuelle dans le secteur de la technologie, la présente réingénierie de logiciel est amenée à intégrer la simulation de circuits numériques, d’autant plus que l’étude de ces derniers fait partie intégrante des disciplines acquises au sein du Département Electronique. Pour cette première intégration, le principal tribut du logiciel consiste en la conception ou synthèse de circuits logiques combinatoires. Pour répondre à cet objectif, des étapes d’ouvrage ont dû être mises en place. Elles sont : a. Implantation d’une nouvelle interface. La création d’une fenêtre numérique a été de mise pour pourvoir à la simulation de circuits logiques exclusivement. ACCEAO peut désormais basculer sur deux interfaces graphiques, analogique et numérique. b. Insertion des composants logiques usuels Les portes constituent l’unité matérielle élémentaire à partir de laquelle tous les circuits logiques sont créés, elles symbolisent graphiquement les opérations de l’algèbre binaire ou booléenne, d’où l’appellation d’opérateurs logiques. Leurs représentations sont données dans le tableau 3 ci-après. 29 Tableau 3 : Symboles des opérateurs logiques selon la norme MIL 3 PORTES SYMBOLES NON ET / NON-ET OU / NON-OU XOR / XNOR c. Besoin de nouveaux composants et création de sous-circuits L’utilisateur peut avoir recours à manipuler des circuits complexes à plusieurs reprises. Cette possibilité de création de sous-circuits tend à substituer le circuit complexe précédent avec un symbole plus allégé, plus facile à manipuler qui n’enlève en rien les paramètres du circuit global à savoir le nombre de variables d’entrées correspondant au nombre de broches d’entrée et la même fonction logique à la sortie. Dans des cas de synthèse de circuits à plusieurs entrées, le concepteur tend généralement à réduire le nombre d’opérateurs utilisés et la variété de circuits employés en décomposant le schéma global en plusieurs sous-systèmes identiques. Par exemple, les nombres sont représentés en général par 8, 16 ou 32 bits. La conception d’un système combinatoire réalisant les opérations d’addition, de soustraction ou de comparaison sur ces nombres nécessite alors « 2n » variables à l’entrée soit 16, 32 ou 64 variables. Il est donc important de décomposer le système entier en plusieurs « soussystèmes » identiques mis en série d’où l’adoption des sous-circuits dans cette version du logiciel pédagogique. Par ailleurs, il pourrait être favorable pour les étudiants de construire par eux-mêmes certains circuits intégrés des data-book via la création de sous circuit à partir du logiciel et de les employer directement dans la simulation. d. Outils pour la simulation du circuit : Générateur - analyseur – sondes i. Apport de générateur de mots Celui-ci doit fournir les mots binaires et niveaux logiques à l’ensemble du circuit créé. 30 ii. Apport du panneau de visualisation d’états ou analyseur Il doit recueillir les états à la (aux) sortie(s) des composants en fonction des états d’entrée et les afficher à l'alternat, c'est-à-dire que celui-ci ne se chargera pas uniquement de l’affichage de l’état courant mais des états antérieurs également. iii. Insertion de Sondes Les sondes signalent l’état logique instantané d’un point quelconque dans le logigramme. e. Moteur de calcul individuel pour la partie numérique Il est nécessaire d’élaborer un moteur de calcul pour la gestion des circuits logiques. Les principaux éléments de calcul de la version analogique du logiciel ne permettent pas l’implémentation de calculs basés sur l’algèbre de Boole qui est indispensable pour la partie numérique. f. Sauvegarde et réutilisation des circuits créés : Base de données ACCEAO L’enregistrement des circuits et sous-circuits créés s’effectue au sein d’une base de données propre à ACCEAO. L’utilisateur pourra dès lors consulter la base de données pour relever tous les détails d’un circuit sauvegardé (composition, connexions). Il pourra également importer, à partir de cette base de données, tous les sous-circuits qui l’intéressent pour sa nouvelle synthèse de circuit logique. 4.2 Moteur de calcul Au préalable, il convient d’énumérer succinctement quelques objets et structures de données manipulés dans le programme : - class Component : classe de base des composants Les classes Not, And, Nand, Or, Nor, Xor et Xnor sont les classes filles de Component. - class AcceaoDatabase : classe de base de données Les classes: Table, CircuitTable, ConnectionTable et ModuleTable sont des classes filles de AcceaoDatabase. - struct WIREINDEXING : Structure de données pour les broches de composants. - struct REDZONE : Structure de données pour les espaces individuels de composants. - struct CONNECTING : Structure des données pour les connexions. - struct STRETCHING : Structure de données pour les embouts des modules. 31 Nous avons dénommé « algorithme basé sur la propagation d’informations séquencée » l’algorithme général du moteur de calcul numérique, étant donné qu’il s’agit de la diffusion, entre composants reliés, de la valeur booléenne de chaque composant d’où le terme propagation. Ce transfert s’effectue sur un intervalle de temps agencé par le « Timer » du programme d’où le terme séquencé. La figure ci-après (Fig. 4.1) illustre ce mécanisme. Figure 4.1 : architecture générale du moteur de calcul 7 Plus en détail, la figure suivante (Fig. 4.2) montre l’algorigramme de la vérification de l’état d’un composant logique qui forme le pilier principal du moteur de calcul. 32 Figure 4.2 : Algorigramme de détermination d’état des composants 8 33 L’explication de cet organigramme (Fig. 4.2) se fait en trois temps. a. Algorithme récursif Un composant est un opérateur logique qui peut délivrer à sa sortie le résultat de la fonction logique réalisée. La classe de base « class Component » possède un constructeur qui prend en argument le type de composant traité. L’opération binaire est exécutée si et seulement si l’intégralité des broches d’entrées du composant sont elles mêmes connectées à la sortie d’autres composants. Ce composant traité sera alors appelé composant prêt. En résumé, un composant est prêt si celui-ci est rattaché à la sortie d’autres composants qui sont déjà prêts. Au plancher de cette récursivité se trouvent les composants immédiatement connectés au générateur de mots binaires. Plus clairement ces opérateurs logiques sont, au niveau hiérarchique de la récursivité, les premiers composants prêts. Il en ressort l’aspect récursif de l’algorithme général adopté. Au niveau de la programmation, les fonctions prenant en charge l’examen des états des composants sont les suivantes : bool IsReady(int MyIndex); bool IsReady(int MyIndex, vector<WIREINDEXING> VectorWire); Ci-dessous (Fig. 4.3) un extrait de la programmation montrant la récursivité : Figure 4.3 : Listing extrait de la fonction surchargée récursive Isready 9 b. Représentation algébrique des fonctions individuelles de portes Une approche algorithmique utilisant les tables de vérité des fonctions logiques aurait été simple mais inadéquate pour un grand nombre de composants logiques dans la synthèse de circuit. Ceci se traduit par un nombre élevé de variables d’entrée qui pénalisera profondément 34 l’efficacité de calcul du logiciel. Par exemple, 10 entrées d’un circuit engendrerait 210 soit 1024 possibilités à la sortie de celui-ci ce qui équivaudrait à plusieurs branchements conditionnels. Puisque le langage C propose les opérateurs binaires suivants : | pour le OU, & pour le AND, ! pour le NOT et ^ pour le XOR. L’algorithme adopté est axé vers la suite d’opérations logiques successives des différents composants interconnectés, chaque opérateur ayant sa propre fonction logique telle que montrée par le listing extrait des lignes de codes du programme suivant (Fig. 4.4) : Figure 4.4 : Extrait de la représentation algébrique des portes logiques selon leur type 10 Dès que le composant est prêt, il transmet la valeur booléenne à sa broche de sortie conformément à sa représentation algébrique, le dit composant rendant prêt à son tour d’autres composants montés en aval et le cycle se poursuit. Il est à noter que la structure de données WIREINDEXING relative aux broches des composants contient un membre booléen « value » qui gardera pour chaque broche les valeurs booléennes acquises. c. Séquence assurée par Timer Toutes les étapes précédentes sont ordonnées et exécutées dans un intervalle de temps de 10 ms, ce qui permet un rafraichissement permanent des états des composants puis de leurs niveaux logiques au fur et à mesure que de nouvelles connexions sont établies. Ceci est assuré par l’objet TTimer de la bibliothèque VCL qui encapsule les fonctions Timer de l'API Windows. Ce rafraichissement constant effectue les mises à jour des états du processus de calcul d’ACCEAO et garantit la fiabilité et l’efficacité des résultats de simulation sous la version numérique. 35 4.3 Arrangement des composants et les fils de connexions L’aspect visuel de cette nouvelle interface a été édifié tel qu’aucun chevauchement ne soit possible au niveau de la manipulation. Au niveau des composants (Fig. 4.5) L’insertion de tout composant visuel passe par l’ajout dans la pile qui leur est dédiée (VecComponent pour les opérateurs logiques, VecNode pour les nœuds, VecProbe pour les sondes). Figure 4.5 : Architecture de la gestion des composants 11 La structure REDZONE indique la surface couverte par le composant sur l’espace de travail c'est-à-dire la taille du bitmap correspondant. Aucune insertion n’est possible au dessus d’un composant déjà en place. Une fois insérée dans la pile toute action utilisateur (suppression, déplacement) apporte les modifications appropriées aux piles en place instantanément : 36 L’insertion d’un nouveau composant ou le déplacement d’un autre sur l’espace de travail implique son changement de coordonnées. A cet effet, la mise à jour de la pile de coordonnées (vector<TPoint> VecCenter) est prise en charge par le programme. Grâce au « timer », l’ensemble des zones de composants (vector <REDZONE> VecRedzone) ainsi que les zones entre les composants sont instantanément réadaptés par rapport aux centres des différents composants. La position d’un composant est identique dans les trois vecteurs VecComponent (pile de composants), VecCenter (pile de coordonnées), VecRedZone (pile de zones composants). Ceci permet un meilleur contrôle lors des mises à jour de ces piles car finalement la modification d’une pile implique celle des autres piles complémentaires. Par exemple, toute suppression d’un composant dans l’espace de travail l’élimine dans les trois vecteurs simultanément. Concrètement, deux principales fonctions se chargent d’une part de la mise à jour des zones de composants, c’est le rôle de UpdateRedZone(),d’autre part celle des connexions par UpdateConnection(). Les images bitmaps ne peuvent se chevaucher grâce à l’apport de la fonction SafetyZone(). De manière concise elle impose un interstice entre composants voisins comme on peut le constater dans la figure (Fig. 4.6). Par la même occasion, aucun enchevêtrement de fil n’apparaît lors des connexions entre deux ou plusieurs composants étroitement adjacents. Figure 4.6 : Schéma des interstices entre composants 12 Au niveau des connexions (Fig. 4.7) Dès l’établissement d’une connexion entre deux composants, il y a insertion d’une structure CONNECTING dans le vecteur de connexion VecConnection. Tout déplacement de composant déjà connecté à d’autres provoque une mise à jour par l’intermédiaire de la fonction UpdateConnection() (dans la fonction Timer). Si par exemple une portion du fil traverse un composant en place pendant l’établissement de connexion, celle-ci contourne le 37 périmètre du composant une dizaine de millisecondes après (à la suite de UpdateConnection() du Timer). Figure 4.7 : Architecture de la gestion des fils de connexion 13 Par rapport au centre d’un composant, par convention de codage, toutes les broches à l’Est, au Nord, à l’Ouest et au Sud portent respectivement les indices 1, 2, 3 et 4. Entre deux composants, les combinaisons possibles de liaison sont mentionnées par la figure (Fig. 4.8). 38 Figure 4.8 : Combinaison de connexions possibles et illustration d’une connexion du type Sud-Nord 14 Le listing de la figure (Fig. 4.9) montre le cas d’une connexion d’une broche quelconque d’un composant avec la broche Est d’un second composant : Figure 4.9 : Listing notifiant l’identification des types de connexion 15 Chacune de ces combinaisons ont été traduites au niveau programmation par l’élaboration de fonctions : OneOne() pour la première combinaison 11, OneTwo() pour 12, OneThree() pour 13, OneFour(TPoint, TPoint) pour 14, etc … Pour garantir l’inexistence des enchevêtrements des fils de connexion pour chaque fonction de traçage, un paramètre proportionnel aux coordonnées des broches de connexion (WIREINDEXING) est pris en compte et est employé dans les calculs, parce que les coordonnées des broches sont complètement individuelles. 39 Chapitre 5. ACCEAO Version 6.0 5.1 Présentation du logiciel a. la fonction « Diagramme de Bode » Le diagramme de Bode est affiché sur cette fenêtre « ACCEAO v6 –Diagramme de Bode » (Fig. 5.1) comportant des mentions relatives au traçage comme la bande de fréquence de visualisation, l’échelle de tracé puis une barre de progression aboutissant à l’affichage du temps d’exécution du traçage. L’utilisateur pourra sauvegarder les courbes sous format d’images BMP. Figure 5.1 : Nouvelle fenêtre d’affichage du diagramme de Bode 16 b. Nouvelle interface numérique Toutes les images de composants que l’utilisateur pourrait percevoir dans la fenêtre numérique (Fig. 5.2) ont été créées individuellement à partir de logiciels d’édition graphique : 3DStudio Max, Adobe Photoshop, IcoFX. Il s’agit en général d’images bitmaps perçues avec une impression de relief. Le choix est justifié par l’attrait à un meilleur aspect général du logiciel, à une recherche d’intuitivité ralliée à l’efficacité, dans une optique d’ergonomie tant convoitée aux jours d’aujourd’hui. 40 Figure 5.2 : Interface graphique de l’analyse des circuits numériques 17 5.2 Exemple de manipulation a. Emploi de la fonctionnalité « Diagramme de Bode » La fonctionnalité « Diagramme de Bode » s’effectue en cliquant sur le bouton « Tracer » de la fenêtre Diagramme de Bode, ceci bien entendu après avoir choisi au préalable un circuit (à excitation en général). La validation de ce bouton entraîne l’apparition d’une séquence de boites de dialogues pour le paramétrage des courbes escomptées. Soit à tracer le diagramme de Bode du circuit RLC suivant (Fig. 5.3), tel que la sortie considérée soit aux bornes de la résistance R1. Figure 5.3 : Diagramme de Bode d’un circuit RLC 18 i. Analyse Nœud et Spécification des numéros Au préalable, il convient de procéder à l' « analyse des nœuds » (qui affiche les numéros des nœuds traités) avant chaque accès à la fonctionnalité diagramme de Bode, dans 41 la mesure où les numéros de nœuds doivent être inscrits dans la boite de dialogue de la figure (Fig. 5.4) pour déterminer la sortie à partir de laquelle les courbes de Bode doivent être tracées. En l’occurrence la sortie qui nous intéresse est celle aux bornes de la résistance (qui ont pour numéro de nœuds 1 et 2). Figure 5.4 : Boite de Dialogue pour la spécification des bornes prises en compte pour l’analyse 19 Choix de L’échelle : Il s’agit de choisir quelle échelle adopter pour le couple d’axes, respectivement de gain et de fréquence puis de phase et de fréquence, selon les besoins de l’utilisateur. Les boutons de choix (Fig. 5.5) indiquent en premier lieu l’échelle d’abscisse (soit de fréquence) suivie de celle des ordonnées (soit de gain ou de phase) pour chaque repère. A noter la simplicité de l’approche des choix-utilisateurs grâce aux indications inscrites au sein de la boite de dialogue même. Figure 5.5 : Boite de dialogue pour le choix de l’échelle adoptée 20 Spécification de l’intervalle de fréquence (Fig. 5.6) : Selon la nature du circuit figurant sur l’espace de travail, l’observation des courbes de gains et de phases ne pourrait être favorable qu’à partir d’une certaine bande de fréquence précise (si par exemple le circuit constitue un filtre passe-bas, passe-haut ou passe-bande). L’utilisateur valide la fréquence minimale et la fréquence maximale d’observation à partir desquelles les calculs au niveau du programme s’effectuent. 42 Figure 5.6 : Boite de dialogue pour la détermination de l’intervalle de fréquence considéré par l’utilisateur 21 Résultats (Fig. 5.7) : - La courbe de gain (exprimée par le Db en fonction de la fréquence), - Alignée avec la courbe précédente, la courbe de phase (exprimée par le Degré en fonction de la fréquence), - La barre en rouge indiquant la (les) fréquence(s) caractéristique(s), - Le curseur d’information en trait gris interrompu, - Les étiquettes et les valeurs caractéristiques : AMax gain maximum en V/V et Amin gain minimum en V/V F : fréquence pointée par le curseur d’information en Hz A : Valeur de gain pointée par le curseur d’information en V/V et en dB Φ : Valeur de phase pointée par le curseur d’information en degré Fmax : Valeur de la fréquence caractéristique (Fmin et Fmax dans le cas de deux fréquences de coupures) Pour le circuit RLC, Fmax indique la fréquence de résonance du circuit RLC. Figure 5.7 : Résultat obtenu pour le circuit RLC 22 43 b. Présentation de la partie numérique L’Interface numérique d’ACCEAO v6 constitue un véritable instrument de simulation de circuits logiques, lequel pour cette dernière version, comporte encore plus de fonctionnalités pour pourvoir à une amélioration des résultats d’études réalisées avec le logiciel. i. L’aide - Accéder à l'aide d’ACCEAO au moyen du sous menu aide. - Sélectionner une rubrique par un clic gauche de la souris dans le volet de navigation et à l’intérieur des pages même, à travers les liens internes. ii. La souris - Pointeur de la souris Infos bulle sur la nature des commandes parcourues par le curseur de la souris sur la barre d’outils - Déroulement des boutons de la palette de composants figurant sur la barre d’outils pour choisir le nombre de broches d’entrée pour chaque type de composant ; - En particulier pour un sous-circuit, une info bulle renseignant sur la description du module apparaît si on pointe le dit-composant Clic gauche Au niveau du menu : - Chaque clic au niveau de tous les boutons visibles de la fenêtre, des boutons des boites de dialogues puis des sous-menus rétractés provoque l’action relative escomptée, - Les boutons réduire – restaurer puis fermer de la barre de titres restent accessibles par clic gauche sur ces derniers. En particulier la réduction de la fenêtre numérique laisse place à l’interface analogique, à l’issue de laquelle chacune des sessions est gardée telle quelle. Au niveau espace de travail : - Sélection puis Insertion des composants depuis la palette de boutons de composants, - Sélection d’un composant sur l’espace de travail. Un composant sélectionné s’allumera en rouge, - Multi-sélection par enfoncement du clic gauche faisant figurer un rectangle bleu extensible en pointillé à l’intérieur duquel toute porte logique serait sélectionnée (virement au rouge). 44 Clic droit Un clic droit affiche un menu contextuel sur tout l’espace de travail. Si les clics sont effectués sur des composants sur l’espace de travail alors le menu contextuel comportera les contrôles d’édition couper, copier, supprimer, Tout Sélectionner, l’item « coller » figure dans un état inaccessible. En particulier, s’il s’agit d’instruments d’analyse c'est-à-dire le générateur ou l’analyseur alors en plus de ces contrôles d’édition vont s’ajouter respectivement les items « configurer générateur » affichant la boite de dialogue de configuration ou « afficher analyseur » affichant l’analyseur d’états. Si aucun élément n’est sélectionné alors seuls les items coller et Tout Sélectionner sont accessibles. A noter la représentation du pointeur de la souris sous la forme « » quand celui-ci pointe sur l’espace de travail. iii. Le menu (Fig. 5.8) Le menu de l’interface numérique comporte 4 menus : Fichier – Edition – Circuit – Analyse – Aide. Dans le menu "Fichier" figurent 4 sous-menus concernant les fichiers-circuits: - le sous-menu Nouveau (raccourci Ctrl+N) permet de disposer d’un espace de travail vierge. Cette fonction est précédée d’une confirmation de sauvegarde de modifications si des actions ont été entreprises durant la session précédente. Figure 5.8 : Interface numérique ACCEAO version 6 23 - le sous-menu Ouvrir accède à la boite de dialogue de chargement de fichiers uniquement d’extension « cnao » grâce à un filtre mis en place dans la boîte de dialogue. L’utilisateur choisit parmi les fichiers cnao du répertoire par défaut « Circuits Numériques ». - le sous-menu Sauvegarder prend en charge l’enregistrement du circuit de la session en cours sous forme de fichier portant l’extension cnao. 45 - le sous-menu Basculer en Mode Analogique passe dans la fenêtre analogique. - le sous-menu Quitter (raccourci Ctrl+W) permet de quitter l’interface numérique d’ACCEAO précédé bien entendu d’une confirmation de sauvegarde si des actions ont été entreprises durant la session précédente. Le menu "Edition" propose les contrôles d’éditions classiques. Les sous-menus interagissent sur les composants en place sur l’espace de travail. - Couper - raccourci Ctrl+X - Copier- raccourci Ctrl+C, - Coller - raccourci Ctrl+V, - Supprimer - raccourci Suppr - Le sous-menu Tout sélectionner - raccourci Ctrl + A - Le sous-menu Afficher les noms de composants / Ne pas afficher les noms de composants : ce sous menu change en fonction de l’état des composants sur l’espace de travail si le composant est déjà étiqueté ou non. Par défaut les étiquettes des portes logiques sont cachées. - Le sous-menu Ne pas afficher les noms de modules / Afficher les noms de modules : D’une manière analogue au sous menu précédent, il s’agit de l’affichage ou non des noms des sous-circuits placés sur l’espace de travail. Par défaut les étiquettes apparaissent au cœur du sous-circuit sur l’espace de travail, compte tenu du fait que le symbole des modules, mis à part le nombre de broches, apparaissent identiques. Remarque : Les options « couper » et « copier » agissent isolément sur les opérateurs logiques et ne peuvent agir sur un ensemble de composants sélectionnés. Le menu « Circuit » comporte les sous-menus afférent à la création de sous-circuits (ou modules). - Le sous-menu Créer Sous-circuit (raccourci Ctrl+B) permet la création d’un sous-circuit à partir d’un groupement sur l’espace de travail - Le sous-menu Charger un module accède à tous les sous-circuits disponibles de la session courante, - Le sous-menu Afficher sous-circuit affiche le schéma interne du sous-circuit sélectionné à partir d’une liste des sous-circuits disponibles au sein de la session courante - Le sous-menu Importer permet de charger tous les sous-circuits existants depuis la base de données jusque dans la session courante 46 Le menu « Analyse » comprend les commandes d’affichages des deux instruments de simulation : - Le sous-menu Configurer le générateur - raccourci Ctrl+Alt+G fait apparaître le panneau de configuration du générateur, pour générer les mots binaires ou niveaux logiques ordonnés, - Le sous-menu Afficher l’Analyseur - raccourci Ctrl+Alt+A affiche la fenêtre « panel visuel d’état » présentant les niveaux logiques des diverses sorties de composants rattachés au composant Analyseur. iv. La barre d’outils Première rangée : Raccourcis menus (Fig. 5.9) Figure 5.9 : Boutons outils 24 Il s’agit pour cette partie de la barre d’outils, de raccourcis des commandes les plus fréquemment utilisées en plus des fonctionnalités d’impression de schémas de circuits. Elle comprend dix (10) boutons : - Nouveau : pour démarrer une nouvelle session de travail - Ouvrir : pour sélectionner un fichier-circuit existant dans la boite de dialogue - Sauvegarder : pour sauvegarder la session de travail courante - Couper : pour couper un composant sélectionné et un seul - Copier : pour copier un composant sélectionné et un seul - Coller : pour coller sur l’espace de travail un composant préalablement coupé ou copié - Supprimer : pour supprimer un composant sélectionné - Tout Sélectionner : pour sélectionner tous les composants placés sur l’espace de travail. - Sauvegarder l’image : pour sauvegarder le schéma du circuit courant de telle manière que la mise en page soit centrée. Le format de sauvegarde de l’image est le bitmap (.bmp). - Imprimer l’image : pour effectuer l’impression du schéma de circuit courant. 47 Deuxième rangée : Barre des composants (Fig. 5.10) Figure 5.10 : Boutons Composants 25 Toute insertion d’éléments sur l’espace de travail passe par une sélection sur la barre des composants. Cette barre contient : - L’élément « Nœud » qui raccorde les liaisons pour plus de deux broches de composants, - Les boutons de portes logiques « NOT », « AND », « NAND », « OR », »NOR », « XOR », « XNOR » lesquels font apparaître une liste de boutons rétractables de chaque type d’opérateurs possédant deux jusqu’à quatre entrées. L’utilisateur choisit le composant selon le nombre de broches dont il a besoin. - Le Bouton raccourci de «chargement de module » : sélection des sous-circuits et insertion dans l’espace de travail - Le Générateur de mots : sélection du générateur de mots binaires et insertion dans l’espace de travail. - L’Analyseur de niveau logique : sélection du composant « analyseur logique » et insertion dans l’espace de travail Seul un exemplaire de ces deux derniers types de composant peut être installé sur l’espace de travail. - L’outil de visualisation Sondes : Insertion du composant « sonde » dans l’espace de travail faisant office de témoin pour toutes les broches d’entrée ou de sortie des opérateurs logiques, du générateur ou même de l’analyseur si besoin est. Trois états des sondes peuvent être perçus (Fig. 5.11) : - L’état Inactif : couleur grise. La sonde n’est connectée à aucune broche ou connectée à un composant ne transmettant aucun état à sa sortie. - L’état ON : couleur rouge. La sonde est connectée à une broche de composant à l’état « 1 ». 48 - L’état OFF : couleur noire. La sonde est connectée à une broche de composant à l’état « 0 ». Figure 5.11 : Sondes, états et manipulation 26 L’emploi de ces sondes est vivement sollicité pour leur simplicité d’usage et l’efficience de consultation d’état logique car permet de repérer en permanence les états, les changements de niveau etc., dans une optique de meilleur contrôle dans la réalisation de circuits élaborés. c. Instruments utilisés dans la partie numérique i. Le générateur de mots (Fig. 5.12) Figure 5.12 : Boite de configuration du générateur de mots 27 Le générateur de mots constitue l’unique instrument d’établissement de valeurs booléennes dans la partie numérique du logiciel. Cette boite de dialogue comporte : - Un champ d’édition multi-ligne: qui contient toutes les valeurs booléennes à valider - Quatre champs d’édition : en mode lecture seule, qui affichent respectivement le numéro de champ pointé par le curseur, l’octet en cours de validation (c'est-à-dire la ligne sélectionnée), ceux du début de la liste et de la fin de la liste du champ multiédition. 49 - Un champ d’édition à choix qui permet de choisir ou saisir la fréquence de cycle - Quatre boutons : Step : Mode de sélection d’octet pas-à-pas ; Burst : Mode de sélection séquentielle jusqu’à la fin de la liste, avec un temps de défilement régi par le champ d’édition à choix ; Break permet d’interrompre le défilement automatique initié par Burst ; Reset : Réinitialisation à 0 des champs. L’utilisateur ne peut saisir des valeurs non booléennes dans le champ édition multi-ligne sinon un message d’erreur s’affiche. La succession de cercles colorés indique la valeur de l’octet en cours de sélection, rouge pour le niveau « 1 » et noir pour le niveau « 0 ». Elle représente les états de sorties des huit ports de sortie du composant générateur sur l’espace de travail. ii. L’analyseur (Fig. 5.13) Figure 5.13 : Analyseur d’états 28 L’analyseur dispose de 32 divisions pour chaque axe dans la fenêtre de visualisation (fond noir). Chaque axe représente chacun des huit ports d’entrée du composant analyseur. Après toute activation de données dans le générateur de mots (validation, double clic, step, burst), les courbes de niveau sont mises à jour division par division. Le bouton « reset » permet de ramener la visualisation jusqu’aux premières divisions. 50 Les cercles rouges et/ou noirs indiquent l’état dernièrement acquis par l’analyseur pour chaque broche liée avec une sortie d’autres composants. Dans le cas contraire, des anneaux vides sont affichés à leur place et aucune courbe de niveau ne s’affiche sur l’espace de visualisation. d. Utilisation de sous-circuits ou modules i. Création et utilisation de sous-circuits sous ACCEAO version 6 Exemple de sous-circuits à structures itératives : module Additionneur Complet La première étape de la création de sous-circuits consiste à saisir le schéma sur l’espace de travail. A la suite de laquelle l’utilisateur doit sélectionner le groupement d’opérateurs logiques qui composera le module. Cette sélection peut s’effectuer de deux manières : soit l’utilisateur sélectionne un à un les opérateurs logiques en maintenant la touche Ctrl enfoncée, soit ce dernier maintient le clic gauche de la souris enfoncé faisant apparaître un rectangle de sélection bleu qu’il étire et cadre à l’occasion tous les opérateurs logiques choisis pour l’édition du sous-circuit. La création débute véritablement dans cette deuxième étape. L’utilisateur choisit le sous-menu « créer un module » du menu circuit ou bien choisit la combinaison de touches raccourci Ctrl + B. Un rectangle rouge encadre la partie présélectionnée pour bien mettre en évidence les composants du sous-circuit à créer. Simultanément la boite de dialogue dénommée « Création de sous-circuits » apparaît sur l’espace de travail et sert de boite de saisie du nom de module en cours de création. Un champ d’édition « Description » est à disposition de l’utilisateur pour d’éventuels commentaires à but mnémonique pour une future utilisation du sous-circuit (Fig. 5.14a). En validant à partir du bouton « Editer », la boite individuelle d’édition portant le nom du sous-circuit dans la barre des titres apparaît (Fig. 5.14b). L’utilisateur peut toujours annuler le processus de création par l’intermédiaire du bouton « Annuler ». Dans cette fenêtre individuelle d’édition de sous-circuits, il est possible de déplacer les opérateurs logiques à convenance. L’étirement des broches d’entrées et sorties jusqu’à la limite de la zone d’édition sont à la charge de l’utilisateur et concourt à l’extraction des broches du futur composant-module (broches de modules). La taille de la zone d’édition de la fenêtre individuelle d’édition équivaut à la dimension du rectangle rouge généré dans l’espace de travail. 51 Figure 5.14 : (a) Champs de création de modules, (b) Fenêtre d’affichage des modules 29 Une fois la création de module achevée, l’utilisateur peut fermer sa boite individuelle d’édition. A partir de cette étape l’utilisateur peut avoir accès au chargement et insertion du module nouvellement créé grâce au sous menu « Charger un module » du menu Circuit. L’utilisateur peut choisir librement parmi les modules existants à partir de la liste déroulante de la boite de dialogue « Chargement de module » à inclure dans l’espace de travail (Fig. 5.15). Figure 5.15 : Insertion du module ADDC dans l’espace de travail 30 Dans le cas où l’utilisateur voudrait revenir sur la fenêtre individuelle d’édition du sous-circuit après l’avoir fermée, celui-ci intervient en cliquant le sous menu « Afficher souscircuit » du menu « Circuit ». Une boite de dialogue dénommée Affichage des sous-circuits apparaît sur l’espace de travail à l’intérieur de laquelle sont listés tous les noms des modules de la session en cours ou bien de tous les sous-circuits existants depuis la base de données (Fig. 5.16). 52 Figure 5.16 : Affichage des sous-circuits dans leur fenêtre d’édition 31 L’utilisateur peut insérer autant de sous-circuits qui lui conviendraient dans l’espace de travail, mais par contre il ne pourra créer plus de 18 types de sous-circuits différents pour une même session. 5.3 Consultation de la base de données Pour cette version 6 d’ACCEAO, une des grandes innovations du logiciel s’illustre par l’instauration d’un Système de Gestion de Base de Données au sein du logiciel. Dans l’électronique numérique de synthèse (synthèse de circuits combinatoires en particulier), le besoin de conservation des circuits ou sous-circuits créés se fait très vite ressentir sachant que chaque projet de synthèse pourrait être amené à être utilisé au sein d’autres projets. Pour illustrer ces propos, il faut remarquer qu’à l’instar des conceptions de circuits numériques imprimés (ou bien des essais réalisés par les étudiants sur bread-board), nombre de circuits intégrés différents sont utilisés pour réaliser la nouvelle fonction logique voulue par le concepteur. A cet effet, la version du logiciel pédagogique ACCEAO dispose de son propre SGBD qui prend en charge l’enregistrement de tous les circuits et sous-circuits conçus à partir de cette dernière. L’enregistrement du circuit ou sous-circuit dans les bases de données a été réalisé de telle manière qu’à partir de la consultation du fichier Acceao6DB.mdb pour les circuits et du fichier Acceao6ModuleDB.mdb pour les sous-circuits, l’utilisateur pourrait reproduire à main levée sur un papier le schéma logique ou logigramme du circuit si besoin est, sans charger le fichier cnao à travers le logiciel. 53 a. Circuits et Base de données : Acceao6DB.mdb La consultation relative aux circuits s’effectue auprès de la première base de données Accea6DB.mdb. Pour chaque sauvegarde de fichier-circuit (c'est-à-dire sauvegarde de session), le programme construit deux tables distinctes dans Acceao6DB.mdb comprenant chacune le nom de sauvegarde de circuits, concaténé à « CirTbl » pour la Table de Circuit et concaténé à « ConTbl » pour la Table de Connexion. Prenons un exemple de circuit à sauvegarder, ne fournissant aucune fonction logique escomptée mais juste à titre de démonstration le schéma de la figure (Fig. 5.18) : Enregistrons le schéma (Fig. 5.17) sous le nom de «Exemple.cnao ». Aussitôt l’enregistrement exécuté, les deux tables ExempleCirTbl et ExempleConTbl apparaissent dans Acceao6DB.mdb. Figure 5.17 : Schéma de démonstration 32 Figure 5.18 : Création automatique de deux tables 33 CirTbl (Fig. 5.19): Cette table liste les différents composants mis en jeu dans le circuit avec respectivement leur emplacement géographique sur l’espace de travail et le nombre de broches d’entrée et de sortie. 54 Figure 5.19 : La table ExempleCirTbl correspondant à Exemple.cnao 34 ConTbl (Fig. 5.20) Cette seconde table créée consiste en l’énumération des liaisons existantes entre les composants. Le nombre d’enregistrements correspond de facto au nombre de liaisons ou connexions existant dans le circuit. Figure 5.20 : La table ExempleConTbl correspondant à Exemple.cnao 35 Il est alors possible de reproduire le logigramme du circuit à partir d’une lecture méthodique de la base de données Acceao6DB.mdb. Quand bien même cette reproduction devient très vite éprouvante pour des logigrammes complexes, aussi le recours à l’utilisation de sous-circuit est d’autant plus recommandé pour la facilité de lecture de la base de données. b. Sous-circuits et Base de données : Acceao6Module.mdb Cette deuxième source de données renferme toutes les informations relatives aux souscircuits créés lors de la session enregistrée. La base de données Acceao6Module.mdb comprend quatre tables par défaut. Chaque enregistrement de session contenant un ou plusieurs sous-circuits n’entraîne en aucun cas la création d’autres tables dans cette base de données mais par contre la mise à jour des quatre tables existantes telles que Description, Connexion, Contenu et Brochage. Si la session en cours de sauvegarde ne comporte aucun sous-circuit alors cette base de données est laissée intacte. La table de données Description (Fig. 5.21) Elle renseigne sur les informations générales décrivant les sous-circuits. Elle contient le 55 nombre d’opérateurs logiques utilisés pour l’élaboration du sous-circuit, le nombre de broches d’entrées et le nombre de broches de sortie du module et l’éventuel commentaire apporté par le concepteur du sous-circuit depuis l’étape de création, à partir du champ d’édition « description » de la boite de dialogue « création de sous-circuit ». Figure 5.21 : Table Description d’Acceao6ModuleDb.mdb 36 La table de données Contenu (Fig. 5.22) Cette table de données reprend exactement les mêmes descriptions que celles effectuées par *CirTbl au niveau d’un circuit entier dans l’espace de travail, mais cette fois-ci relativement à la fenêtre individuelle d’édition du sous-circuit choisi, le nom du module donné dans la fenêtre individuelle de création du sous-circuit dénommé par le champ « ModuleProprietaire ». Figure 5.22 : Extrait de la table Contenu renfermant la liste des opérateurs utilisés pour la création d’un additionneur complet ADDC 37 La table de données Connexion Cette table reprend exactement la description effectuée par *ConTbl de la base de données Acceao6DB.mdb à cette différence près qu’il s’agit d’une description par rapport à la fenêtre individuelle d’édition du sous-circuit, spécifié par le dernier champ ModuleProprietaire, non de l’espace de travail en entier réalisée par *ConTbl La table de données Brochage Les onze colonnes de cette table sont nécessaires quant à la représentation du lien entre les broches internes (à l’intérieur de sa fenêtre d’édition) et externes du module (donc la représentation en tant que composant du sous-circuit). 56 La figure ci-après montre un exemple de la relation entre le schéma de circuit d’un demisoustracteur (Fig. 5.23a) dénommé module SUB et la table Brochage de ce module (Fig. 5.23b). (a) (b) Figure 5.23 : (a) Schéma logique du demi-soustracteur avec les légendes reliées à la table brochage de Acceao6DB.mdb, (b) Extrait de la table Brochage de Acceao6ModuleDb.mdb correspondant 38 Si par inadvertance, l’utilisateur parvient à oublier d’étirer l’embout des composants à l’intérieur de la fenêtre individuelle d’édition, alors lors du chargement du module, seul le corps du module apparaîtra sans broches à l’extérieur. Il est alors obligé de réafficher la fenêtre d’édition du sous-circuit en question via le menu <Circuit | Afficher sous-circuits> et d’étirer les embouts requis pour sa conception. c. Intérêts particuliers pour l’interactivité Acceao-Bdd Importation de sous-circuit (Fig. 5.24) A partir de cette dernière version de ACCEAO, l’utilisateur pourra effectuer des importations de sous-circuits numériques à partir de leur session. En effet l’utilisateur pourrait avoir à sa disposition tous les sous-circuits créés antérieurement par d’autres utilisateurs du logiciel, à partir de la même machine bien entendu, qui révèle être assez favorable pour le besoin de sa nouvelle conception. 57 Le bouton « Importer… » du menu circuit effectue une série de requête vers la base de donnée Acceao6Module.mdb et dispose sur une nouvelle boite de dialogue dénommée « Base de données » la liste des sous-circuits existants depuis les tables de données locales de Acceao6ModuleDb.mdb. Figure 5.24 : Boite de dialogue d’importation de sous-circuits 39 L’utilisateur choisit parmi les sous-circuits qui lui sont nécessaires. Le sous-circuit choisi par l’utilisateur se met en surbrillance, à la suite de quoi ce dernier pourra soit « charger » le sous-circuit soit abandonner l’importation à partir du bouton « annuler ». Aussitôt le sous-circuit chargé, s’ajoute instantanément dans la liste déroulante du sous-menu « Charger un sous-circuit ». Celui-ci est désormais prêt à l’emploi. Intérêts de la consultation de la base de données La consultation de la base de données (Acceao6Db pour les circuits et Acceao6ModuleDb pour les sous-circuits) revêt une importance particulière pour la conception de circuits logiques dans la mesure où l’utilisateur pourrait surveiller le coût, exprimé en nombre d’opérateurs utilisés, du circuit logique par rapport à d’autres circuits déjà existant fournissant la même fonction. Ainsi le but final de l’utilisation du logiciel par l’étudiant ne concourt pas non seulement à la conception d’un tel ou tel circuit combinatoire mais à une recherche d’efficacité dans cette conception. 5.4 Nouvelle interface d’aide Architecture antérieure de la rubrique d’aide Sous l’ancienne version du logiciel (v5.0), la gestion de la rubrique d’aide est assurée par le concours de la propriété HelpFile de la classe TApplication, pour l’indication du chemin de fichier HLP d’une part et la méthode HelpCommand de cette même classe pour spécifier une commande précise au moteur d’aide WinHelp de WINDOWS d’autre part. La gestion de cet ancien système d’aide s’agence comme suit : à chaque rubrique est associé un titre unique, et si le programme est sollicité pour afficher une rubrique, il consulte le fichier 58 ACCEAO.IDX pour déterminer la position du texte dans ACCEAO.HLP, ainsi que la taille de l’information correspondante en octet. Contraintes du changement d’interface Devant le disfonctionnement de ce système d’aide sous Windows VistaTM ( ceci dû vraisemblablement à la modification du moteur d’aide de VistaTM) la courante réingénierie de projet est définitivement amenée à réviser le système d’aide du logiciel pour que celui-ci soit compatible avec le dernier système d’exploitation WindowsVistaTM accompagné de quelques améliorations au niveau du service fourni. Le fichier AIDE.HLP a été complètement supprimé au profit duquel prend place le nouveau fichier d’aide « Acceao help.chm ». Ce nouveau type de fichier d’aide a été entièrement conçu à partir de WinChmPro v3.523 © Copyright 2003-2009 Softany Software. Succinctement les types de fichier CHM compactent un ensemble de fichiers HTML et permettent de ce fait de naviguer aisément de rubrique en rubrique, de page en page. L’autre avantage majeur réside dans le fait que l’affichage de cette nouvelle interface d’aide soit complètement indépendant de l’application elle-même. L’approche adoptée a été de lancer ce fichier d’aide à partir de la commande ShellExecute() du shell interpellant hh.exe responsable de gestion de tous les fichiers types CHM sous Windows dès que l’utilisateur choisit le sous menu aide. Présentation du fichier d’aide (Fig. 5.25) Figure 5.25 : Sommaire de l’aide du logiciel ACCEAO v6 40 59 Volet d’exploration et navigation Il contient deux principaux titres représentant d’une part les pages d’aide relatives à l’interface analogique et d’autre part les pages relatives à l’interface numérique. Le contenu de la première partie a été extrait pour la plus grande partie des anciennes pages d’aides avec de légères modifications. Par exemple, une sous-rubrique a été ajoutée à l’élément de sommaire « diagramme de Bode » indiquant les étapes pas-à-pas de l’utilisation de la fonctionnalité diagramme de Bode implantée dans cette dernière version du logiciel. Le nombre d’index ou mots clé a été considérablement accru. Toute sélection ou clic sur un de ces index ramène automatiquement à l’intérieur des pages concernées. Il est possible entre autre de cliquer sur les liens internes d’une page pour pouvoir accéder à d’autres pages adressées par ces derniers. L’opération de recherche devient complètement assistée. Grâce à l’onglet « rechercher », les occurrences trouvées pour la chaîne saisie par l’utilisateur sont affichées ainsi que tous les titres de pages comportant cette chaîne. 5.5 Déploiement du logiciel Installation Le programme d’installation d’ACCEAO version 6 a connu une restructuration réalisée à travers l’installeur Inno Setup Compiler Version 5.1.12 Copyright © 1997-2007 de Jordan Russel, devant l’adjonction de nouveaux dossiers et fichiers d’accompagnement pour cette version, notamment en matière de Base de données. Une série de boites de dialogues afférentes à l’instauration de la BDE sur la machine hôte apparaissent successivement durant l’installation. Figure 5.26 : Installation sous-jacente de la BDE sur la machine hôte 41 60 Protection du logiciel Des dispositions sont mises en place quant aux options d’enregistrement du logiciel. Un nouveau DLL dénommé « ntlc.dll » a été conçu concernant l’accès à l’utilisation du logiciel. Figure 5.27 : Synoptique du processus de contrôle d’enregistrement 42 Le générateur de clé a été entièrement renouvelé et créé à partir de la technologie .NET. Configuration matérielle Pour un fonctionnement optimal de cette version 6, sont requis : - un processeur pentium 3 ou équivalent (indifféremment de la fréquence d’horloge), - un espace disque de 30 Mo, - une mémoire vive à partir de 256 Mo est vivement conseillée. Configuration logicielle Cette configuration comprend : - un système d’exploitation Windows XP ou Windows VISTA ™, - une base de données locale ACCESS 2003 (couverte par MS Office 2003) 61 CONCLUSION La présente maintenance du logiciel ACCEAO a assuré un renouvellement général tant par l’apport de nouveaux services que par l’aspect visuel. Il est à mentionner notamment l’intégration de la fonction Diagramme de Bode, l’implantation d’une nouvelle interface dédiée exclusivement à la simulation de circuits numériques et puis à l’incorporation d’une base de données ACCEAO pour la sauvegarde et l’importation de circuits numériques. Des problèmes ont été rencontrés lors de la prise en main du projet. En particulier on notera, au niveau codage, la rigidité de codage sous l’ancienne version, l’instabilité manifeste du codage sous l’EDI CodeGear RAD Studio en fonction du volume du projet ainsi que du nombre de lignes de codes par fichier. Outre les limites imposées par l’outil de développement du logiciel ACCEAO, le projet possède un avenir très promettant. CodeGear RAD Studio 2007 est a priori destiné à un développement de solution à proportion moyenne, il ne convient donc pas à la maintenance des prochaines versions d’ACCEAO. Le basculement vers un autre EDI sera donc une étape incontournable pour ce logiciel. Un exemple d’outil de développement approprié à la maintenance du projet serait la suite Visual Studio de Microsoft® en raison de sa stabilité et de son efficience. Ce renouvellement pourra être associé de près à une restructuration des codes sources appelée également refactoring, c’est-à-dire une normalisation des noms de variables et une réorganisation de l’encapsulation des objets. Parallèlement, nous proposons le rétablissement de la fonctionnalité « méthode QP Triangle » qui se destine à l’élaboration d’un circuit simple à transistor, et ensuite la prise en charge des circuits séquentiels à l’image des bascules dans l’interface numérique du logiciel. La mise en commun des interfaces analogiques et numériques est également envisageable dans un projet ultérieur. Bref, le projet de maintenance du logiciel ACCEAO revêt un intérêt instructif pour un développeur. Nous avons appris à aborder convenablement toutes les étapes de conception et de maintenance d’un programme. ACCEAO v6 regorge de lignes de codes subtiles grâce à l’usage des conteneurs et des algorithmes de la librairie standard C++, mais aussi à l’utilisation d’une bibliothèque de calcul qui renferme en son sein des astuces toutes didactiques pour un programmeur. Le projet incite également à une maîtrise des notions d’électronique nécessaires à l’accomplissement de celui-ci. En définitive, il enrichit ses concepteurs aussi bien en ingénierie électronique qu’en développement informatique. 62 ANNEXE A : CALCUL SUR LES DIAGRAMMES DE BODE Fonction de transfert Soit un schéma électrique quelconque disposant d’une fonction de transfert H(jw), en régime sinusoïdal permanent. Les amplitudes efficaces E et S peuvent être des fonctions de la pulsation. Sous notation symbolique, pour plus de commodité, on écrit : 𝐸 = E 2 𝑒 𝑗 (𝑤𝑡 +𝜑 𝑒 ) et 𝑆 = S 2 𝑒 𝑗 (𝑤𝑡 +𝜑 𝑠 ) La Fonction de transfert ou « transmittance » est donc définie par : 𝐻(jw) = 𝑆 𝐸 𝑆 = 𝐸 𝑒 𝑗 (𝜑 𝑠 −𝜑 𝑒 ) = H (w)𝑒 𝑗 𝛷 Différenciation entre l’échelle linéaire et échelle logarithmique Illustrons la différence à travers la figure ci-dessous : Figure A.1 : Echelle logarithmique et linéaire dans un même repère Echelle linéaire Concisément, il s’agit d’une échelle telle que la différence entre chaque valeur successive de coordonnées (graduation principale) reste constante [13]. Pour mieux discerner la différence entre les deux types d’échelle, on se penche sur le cas du module d’une fonction de transfert du premier ordre : H = 𝑊 1 1+(𝑤/𝑤 0 )2 En posant x = 𝑤 , la fonction de transfert devient H = 0 1 1+𝑥 2 . Si l’on représente H sur une échelle de fréquence linéaire, on obtient une courbe ne présentant pas d’asymptote, d’une part pour x << 1 lorsque w est très inférieure à w0 (c'est-àdire pour les basses fréquences), et d’autre part pour les hautes fréquences, x >> 1, correspondant à des valeurs de pulsation w largement supérieures à w0. Le tracé de H nécessite donc le calcul d’un grand nombre de points pour une meilleure précision de graphe. 63 Par la suite, par rapprochement avec l’échelle logarithmique, on pourra constater que ce premier choix d’échelle ne permet pas de dégager au mieux des informations de façon rapide et appréciable sur le système. Echelle logarithmique Pour cette partie, le but est de faire correspondre x à Log(x). La base décimale est la base plus couramment utilisée en Electronique. Par rapport à l’échelle linéaire la différence va dans ce sens que le rapport entre chaque valeur successive de coordonnées (graduation principale) reste constante [13]. Du point de vue pratique, il convient de garder à l’esprit que lorsque l’échelle logarithmique est utilisée : - L’échelle ne peut pas démarrer au point 0 (fréquence nulle) du fait que Log0. - Une décade (respectivement une octave) correspond à une multiplication par un facteur 10 (respectivement par un facteur 2) de la fréquence. Le module est représenté en dB sur l’échelle logarithmique. En reprenant l’exemple de la fonction de transfert du premier ordre précédent, on a : En échelle logarithmique, le module présente deux asymptotes, pour x >> 1 et x << 1, correspondant respectivement aux « hautes » fréquences et « basses» fréquences. Il implique que l’utilisation de l’échelle logarithmique se montre avantageuse pour le tracé et l’analyse du module d’une fonction de transfert du fait de l’approximation faite à partir des asymptotes. L’amplitude des signaux peut être observable sur plusieurs décades de surcroît. Figure A.2 : Tracé asymptotique du module de la fonction de transfert du circuit RC (diagramme de Bode) 43 Fréquence de coupure et bande passante Considérons un système auquel on applique un signal d’entrée de puissance Pe et qui délivre en sortie un signal de puissance Ps. Si le rapport (Ps/Pe)max est la valeur maximale du rapport 64 Ps/Pe, par convention on admet que le signal d’entrée « passe » tant que le rapport 𝑃𝑠 𝑃𝑒 ≥ 1 𝑃𝑠 2 𝑃𝑒 max et dans le cas contraire ne passe pas. La Bande Passante (BP) est l’intervalle de fréquence ∆f pour lequel : 1 𝑃𝑠 𝑃𝑠 max 2 𝑃𝑒 𝑃𝑒 ≤ Les fréquences pour lesquelles 𝑃𝑠 𝑃𝑒 max 𝑃𝑠 =2 𝑃𝑒 1 𝑃𝑠 max 𝑃𝑒 sont les fréquences de coupure du système considéré [12]. En général, on s’intéresse à l’amplitude Vs et Ve des signaux entrées/sorties plutôt qu’à leur puissance. Compte tenu du fait que 𝑃𝑠 𝑃𝑒 est proportionnel à 𝑆2 𝐸2 , la relation définissant la bande passante devient donc : 1 2 Entraînant : 1 2 1 2 | | 𝑆 𝐸 𝑆 𝐸 |2max≤ | |max≤ | 𝑆 𝐸 𝑆 𝐸 |2 ≤ | |≤| 𝑆 𝐸 𝑆 𝐸 |2 max 𝑆 |max et comme 𝐸 = H on tire la relation Hmax ≤ H ≤ Hmax Les fréquences de coupure du système sont les fréquences pour lesquelles on a H = décibel cette relation devient : 20Log( Hmax 2 Hmax ) = HdBmax – 3dB. On parlera dans ce cas de fréquence de coupure à -3 dB. 65 2 . En ANNEXE B : OPERATEURS LOGIQUES ASSOCIES A LEUR FONCTION ALGEBRIQUE Porte NON (NOT) : fonction Inverse ou négation La fonction NON (NOT en anglais) est un opérateur logique de l'algèbre de Boole. À un opérande, qui peut avoir la valeur VRAI ou FAUX, il associe un résultat qui a la valeur inverse de celle de l'opérande. Équation : Z= A Table de vérité (Tableau B.1) Tableau B.1 : Table de vérité d’une porte NOT 4 Entrée Sortie A Z 1 0 0 1 Exemple de circuits intégrés : Le CI 7404 intègre six portes logiques du type NON. Porte ET (AND) : fonction de Conjonction La fonction ET (AND en anglais) est un opérateur logique de l'algèbre de Boole. À deux opérandes, qui peuvent avoir chacun la valeur VRAI ou FAUX, il associe un résultat qui a la valeur VRAI si et seulement si les deux opérandes ont la valeur VRAI. Équation : Z=AB Table de vérité (Tableau B.2) Tableau B.2 : Table de vérité d’une porte ET 5 Entrées Sortie A B Z 0 0 0 1 0 0 0 0 1 1 1 1 Exemple de circuits intégrés : Le CI 7408 intègre quatre portes logiques du type ET. Porte OU (OR) : fonction de Disjonction La fonction OU (OR en anglais) est un opérateur logique de l'algèbre de Boole. À deux opérandes, qui peuvent avoir chacun la valeur VRAI ou FAUX, il associe un résultat qui a la valeur VRAI seulement si au moins un des deux opérandes a la valeur VRAI. Équation : Z=A+B Table de vérité (Tableau B.3) 66 Tableau B.3 : Table de vérité d’une porte OU 6 Entrées Sortie A B Z 0 0 0 1 1 0 0 1 1 1 1 1 Exemple de circuits intégrés : Le CI 7432 intègre quatre portes logiques du type OU. Porte OU EXCLUSIF ( XOR) : fonction de Disjonction exclusive La fonction OU exclusif, souvent appelée XOR (eXclusive OR), est un opérateur logique de l'algèbre de Boole. À deux opérandes, qui peuvent avoir chacun la valeur VRAI ou FAUX, il associe un résultat qui a la valeur VRAI seulement si les deux opérandes ont des valeurs distinctes. Son symbole est traditionnellement un signe plus dans un cercle : « ⊕ ». Cet opérateur est favorablement utilisé en informatique, et aussi en cryptographie du fait de ses propriétés, en particulier : Détection d’égalité (ou d’inégalité) de deux variables a⊕b = 0 si a = b ; a⊕b =1 si a ≠ b Détecteur d’imparité a⊕b⊕c = 0 si le nombre de variables à « 1 » est pair a ⊕b ⊕ c = 1 si le nombre de variables à « 1 » est impair. Equation : Z = A⊕B Table de vérité (Tableau B.4) Tableau B.4 : Table de vérité d’une porte XOR 7 A B Z=A⊕B 0 0 0 1 1 0 0 1 1 1 0 1 Exemple de circuits intégrés : Le CI 7486 intègre quatre portes logiques du type OU exclusif. Les symboles et normes Tableau B.5 : Symboles normalisés des portes logiques 8 NORMES NON MIL(américain) ET / NON-ET OU / NON-OU XOR / XNOR 67 CEI(international) ANNEXE C : PROCEDURE D’ACQUISITION DE CODEGEAR RAD STUDIO CodeGear RAD Studio 2007 est entré sur le marché le 5 septembre 2007 aux EtatsUnis. Dès le même mois, il fut disponible au grand public en quatre (4) langues (anglais, français, allemand, et japonais), et en trois (3) éditions principales : - L’édition Professional : vendu à 959 euros aux nouveaux utilisateurs. - L’édition Enterprise : vendu à 1999 euros aux nouveaux utilisateurs et 1359 euros pour les clients mettant à jour des versions précédentes des produits Borland Developer Studio, Delphi, C++ Builder Enterprise ou Professional. - L’édition Architect : pour le prix de 2639 euros pour les nouveaux utilisateurs et 1999 euros pour les clients mettant à jour des versions précédentes des produits Borland Developer Studio, Delphi, C++ Builder Enterprise ou Architect. Pour se procurer ce produit phare de Borland, quelques étapes préliminaires sont à prévoir. En effet, le marché local ne disposant pas de cet article, il aurait fallu intervenir auprès du site officiel de CodeGear pour réclamer une version de la gamme CodeGear RAD Studio. Lancement du téléchargement La page de téléchargement des versions d’essai et des versions gratuites de l’EDI CodeGear RAD Studio est accessible en cliquant sur son lien comme le montre la figure (Fig. C.1) ci-dessous. 68 Figure C.1 : Centre de téléchargement des produits CodeGear RAD Studio 44 Il est à noter que les liens proposés aux utilisateurs enregistrés et ceux proposés aux utilisateurs à l’essai sont distincts, comme le montre toujours la figure (Fig. C.1). La procédure d’acquisition de cet EDI s’effectue habituellement en 3 étapes : - Le téléchargement. - L’inscription auprès de Borland. - Vérification du courrier électronique (du demandeur). Aucune des étapes citées précédemment ne peut être ignorée. L’inscription est effectivement obligatoire car c’est l’unique moyen d’obtenir le code d’activation qui permettra d’installer le programme. CodeGear retourne après toutes les requêtes un numéro de série par l’intermédiaire de l’adresse e-mail de celui qui a demandé à obtenir le produit par voie de téléchargement. Tenant compte des privilèges accordés aux étudiants dans les pays développés, il faut formuler une requête en langue anglaise auprès de Borland pour obtenir une clé ou un numéro de série pour le produit afin que les contraintes soient minimisées durant le développement du logiciel ACCEAO. La taille du fichier contenant la suite de logiciel CodeGear RAD Studio est d’environ 4,20 Go. Ce fichier est une image de DVD portant l’extension « .iso » et est encodé selon la norme ISO appelé « UFS », système de fichier des disques DVD. Avec une vitesse de 69 téléchargement estimée à 10 koctets par seconde, le fichier complet est prévu être exhaustif en un temps de 126 heures, soit plus de 5 jours. Complications relatives au téléchargement de CodeGear RAD Studio : Un premier problème que l’on peut déjà soulever pendant le téléchargement de l’EDI CodeGear est qu’il n’est pas toujours aisé de s’en procurer. D’après les informations proposées par Borland sur le site dédié aux produits CodeGear RAD Studio, trois (3) évènements majeurs peuvent survenir : - Le téléchargement ne commence pas alors que le lien a bien été sélectionné. - Le téléchargement a été entamé mais ne peut pas reprendre. - Le téléchargement est terminé mais le fichier est corrompu. Par ailleurs, il est fort regrettable que le téléchargement de l’EDI CodeGear RAD Studio 2007 présente une contrainte majeure qui n’a pas été soulevée par le site officiel de CodeGear : il s’agit du système de fichier. En effet, comme il a été signalé, CodeGear RAD Studio 2007 est distribué sous forme d’un fichier au format DVD de 4,20 Go. Certains systèmes de fichiers ne permettent pas de stocker un tel volume de données, exemple le système de fichier FAT qui n’autorise pas les fichiers supérieurs à 4 Go. 70 ANNEXE D : CADRE THEORIQUE DES BASES DE DONNEES DANS ACCEAO En informatique une base de données (abrégé BD ou BDD) est un ensemble de fichiers organisés selon des procédés qui facilitent le stockage et la manipulation de très grandes quantités d'informations. Un système de gestion de base de données est un logiciel qui organise, contrôle et manipule le contenu de bases de données. Une banque de données est un stock d'informations relatives à un sujet de connaissances et librement consultables. Les informations en question sont souvent stockées dans des bases de données. Modèle de données Les données sont réunies en petits groupes appelés enregistrements. A chaque enregistrement correspond une entité, c'est-à-dire une notion concrète ou abstraite. Le modèle de données est l'organisation sémantique des différentes entités stockées dans une base de données. On distingue cinq modèles de base de données : - le modèle hiérarchique : les données sont classées hiérarchiquement, selon une arborescence descendante. Ce modèle utilise des pointeurs entre les différents enregistrements. Il s'agit du premier modèle de SGBD. - le modèle réseau : comme le modèle hiérarchique ce modèle utilise des pointeurs vers des enregistrements. Toutefois la structure n'est plus forcément arborescente dans le sens descendant. - le modèle relationnel (SGBDR, Système de gestion de bases de données relationnelles) : les données sont enregistrées dans des tableaux à deux dimensions (lignes et colonnes). La manipulation de ces données se fait selon la théorie mathématique des relations. - le modèle déductif : les données sont représentées sous forme de table, mais leur manipulation se fait par calcul de prédicats. - le modèle objet (SGBDO, Système de gestion de bases de données objet) : les données sont stockées sous forme d'objets, c'est-à-dire de structures appelées classes présentant des données membres. Les champs sont des instances de ces classes. 71 Base de données relationnelles En 1970 Edgar F. Codd (1923-2003), chercheur chez IBM propose dans une thèse mathématique d'utiliser les informations présentes dans les enregistrements - en lieu et place des pointeurs - pour assurer les liens entre les informations et de regrouper les enregistrements dans des tables. Cette proposition est la base du modèle de données relationnel modèle aujourd'hui utilisé par la quasi-totalité des SGBD. Dans ce modèle, tout comme dans le modèle réseau, les entités sont reliées par des relations « de-à », selon une organisation arbitraire. Les informations sont placées dans les champs des enregistrements de la base de données. Les enregistrements sont reliés pour former des collections. Dans les bases de données relationnelles les collections sont des tables avec lignes et colonnes. Les indexes sont des structures qui facilitent la recherche, le tri et le regroupement des informations d'une collection. Une clé primaire est un champ ou une combinaison de champs dont les valeurs sont différentes pour chaque enregistrement de la collection. La clé primaire permet de retrouver un et un seul enregistrement de la collection. Dans une base de données relationnelle une clé étrangère est un champ ou une combinaison de champs d'une table A qui sont en relation avec une clé primaire dans une table B. Le logiciel ACCEAO bénéficie du modèle relationnel offert par le SGBDR Microsoft Access. La conception des sous-circuits met à jour les tables de la base de données Acceao6ModuleDB.mdb. - La table de données Description : renseigne sur les informations générales décrivant le module. Cette table est explicitée dans le tableau D.1 ci-dessous. Tableau D.1 : Les champs de la table Description dans la base de données des modules 9 Champ Description N Clé primaire de la table Nom Nom choisi par le concepteur du sous-circuit depuis la création du module Sous-circuit Nombre d’opérateurs logiques utilisés pour l’élaboration du sous-circuit. Entrees Nombre de broche d’entrées du module Sorties nombre de broche de sorties du module Commentaire commentaire apporté par le concepteur du sous-circuit depuis l’étape de création 72 La table de données Contenu : détaille les circuits contenus dans le module (Tableau - D.2). Tableau D.2 : Les champs de la table Contenu dans la base de données des modules 10 Champ Description Représente la clé primaire de la table. Elle interdit tout risque de doublons (c'est-à-dire de doubles enregistrements d’une même information) au sein de la table. indique le type de composant. Dix types généraux peuvent être énumérés à savoir : les sept opérateurs logiques de base : Not-Or-Nor-And-Nand-XorXnor, le composant Nœud ou Node puis les outils d’analyse Générateur +Analyseur. Si le circuit comporte un ou plusieurs sous-circuits, l’attribut Type correspondant à ce ou ces modules est directement le nom de ce ou ces derniers. Indice Type spécifie l’abscisse du composant sur l’espace de travail. A noter que le système d’axe est un repère dont l’abscisse progresse selon l’horizontal, croissant de gauche à droite, l’ordonnée progresse selon la verticale, croissant de haut en bas. spécifie l’ordonnée du composant sur l’espace de travail dans le même système d’axe que précédemment. désigne le nombre d’entrées du composant du tuple. Pour le générateur, le nombre d’entrées est nul (car ne contient aucune broche d’entrée). désigne le nombre de sorties du composant du tuple. Pour l’analyseur d’états, le nombre de sorties est nul (car ne contient aucune broche de sortie) et par convention le nœud ne dispose d’aucune sortie non plus. Abscisse Ordonnees Entrees Sorties - La table de données Connexion : Il s’agit d’une description par rapport à la fenêtre individuelle d’édition du sous-circuit (Tableau D.3). Tableau D.3 : Les champs de la table Connexion dans la base de données des modules 11 Champ Description Numero constitue la clé primaire de cette table. Type1 - Type 2 Les types du premier et du second composant reliés NbEntrees1 - désignent le nombre de broches d’entrée et de sortie du premier composant. NbSorties1 NbEntrees2 NbSorties2 désignent le nombre de broches d’entrée et de sortie du second composant relié au premier. Indice1 - Indice2 désigne les indices de chaque composant (1 et 2) Jack1 - Jack2 constitue le numéro de broche Port1 - Port2 Vont de pair avec Jack1 et Jack2 pour la lecture. En effet ces deux attributs précisent si les attributs Jack1 et Jack2 s’agissent de broche d’entrées ou de broche de sorties. 73 La table de données Brochage : les onze colonnes de cette table sont nécessaires - quant à la représentation du lien entre les broches internes (à l’intérieur de sa fenêtre d’édition) et externes du module (Tableau D.4). - Tableau D.4 : Les champs de la table Brochage dans la base de données des modules 12 Champ Description N constitue la clé primaire de la table de données. Port indique si la broche du composant immédiatement étirée en tant qu’embout de la connexion forme une entrée ou bien une sortie Emplacement Composant Indice NbEntreesComp NbSortiesComp montre dans quelle partie de la fenêtre d’édition est placé l’embout. Par convention Nord est attribué aux embouts situés sur la partie haute de la zone d’édition, Sud pour la partie basse, Est pour la partie droite et Ouest pour la partie gauche. désigne le type d’opérateur logique immédiatement étiré jusqu’à l’embout du tuple consulté. désigne les indices de chaque composant du sous-circuit concerné par la connexion. - avisent quant au nombre de broches d’entrées ou de sorties de chaque composant concerné par la connexion. renseigne si l’embout servira d’entrée ou de sortie pour le composant module (anticipe sur la vue externe du sous-circuit). Par convention 1(un) pour l’emplacement à l’Est, 2(deux) au Nord, 3 JackNumero (trois) à l’Ouest et 4(quatre) au Sud ModulePropriétaire Le nom du sous-circuit à partir duquel tous les attributs précédents ont été définis. JackAttache SQL Structured Query Language (SQL), ou langage structuré de requêtes, est un pseudo-langage informatique (de type requête) standard et normalisé, destiné à interroger ou à manipuler une base de données relationnelle avec : un langage de définition de données (LDD, ou en anglais DDL, Data definition language), un langage de manipulation de données (LMD, ou en anglais DML, Data manipulation language), la partie la plus courante et la plus visible de SQL, un langage de contrôle de données (LCD, ou en anglais DCL, Data control language), un langage de contrôle des transactions (LCT, ou en anglais TCL, Transaction control language), et d'autres modules destinés notamment à écrire des routines (procédures, fonctions ou déclencheurs) et interagir avec des langages externes. 74 Les requêtes sont effectuées à partir du moteur de base de données de Borland appelé BDE. BDE est un mécanisme d'accès aux données pouvant être partagé entre plusieurs applications. Il définit une puissante bibliothèque d'appels API qui peuvent créer, restructurer, mettre à jour, interroger ou manipuler des serveurs de bases de données locaux ou distants. Un exemple de requête est montré dans la figure (Fig. D.1) ci-après. Figure D.1 : Listing sur une requête SQL executée à partir de la bibliothèque BDE 45 Dans cet exemple (Fig. D.1), ModQuery est un objet de type TQuery destiné à la récupération des données de la table Contenu. La commande SELECT est la principale commande du langage de manipulation de données en SQL. Interaction avec XML XML est un langage informatique de balisage générique. Il sert essentiellement à stocker et transférer des données de type texte Unicode structurées en champs arborescents. Ce langage est qualifié d'extensible car il permet à l'utilisateur de définir les balises des éléments. L'utilisateur peut multiplier les espaces de nommage des balises et emprunter les définitions d'autres utilisateurs. En informatique, un arbre a généralement une et une seule racine. La racine d'un document XML se situe donc derrière tous les nœuds. Pour être bien formé, un document XML doit avoir un et un seul élément à la racine, parfois désigné par « élément document ». La racine accepte aussi les commentaires, et des instructions de traitement, mais surtout pas de texte. L'élément a un nom et peut porter tous les types de nœuds : attributs, texte, éléments, etc. Le fait qu'un élément puisse avoir des enfants texte et des enfants éléments a beaucoup de conséquences pour en faire un format de données très souple comparé par exemple à une table relationnelle. La qualification des noms contribue aussi à la précision sémantique des contenus balisés. Le stockage des données dans le logiciel ACCEAO est effectué dans un fichier cnao en respectant le format de description des données XML. Ainsi, la manipulation des données est facilitée par l’utilisation d’un parseur sachant que la racine du document est dataroot. Les nœuds fils de dataroot sont au nombre de trois : la description du circuit avec un nom de nœud suffixé par CirTbl, la description des connexions avec un nom de nœud suffixé par ConTbl, et l’inventaire des modules dans le nœud moduledataset. 75 REFERENCES [1] RAZOARIHOLY Noroseheno et RANDIMBISOA Mahefa Vonjiniaina, « ACCEAO version 4.0 », Mémoire de fin d’études, Département Electronique, ESPA, 2002. [2] RAFIDINIAINA Tsiriantsolofo et MAHARAMBY Herizo Manitrarivo, « ACCEAO version 5.0 », Mémoire de fin d’études, Département Electronique, ESPA, 2007. [3] ANDRIAMAMPIANINA Herinirina et RATSIMBAZAFY Alfred C, « ACCEAO version 4.1 », Mémoire de fin d’études, Département Electronique, ESPA, 2003. [4] RABEATOANDRO Anjaranotahina et RAMASOMBOHITRA Nivonjy, « ACCEAO version 4.3 », Mémoire de fin d’études, Département Electronique, ESPA, 2005. [5] E 302 « Analyse et Conception de Circuits Electroniques », 3ème Année, Département Electronique, ESPA, 2005 [6] Réseau des développeurs CodeGear : http://dn.codegear.com/ [7] Cours de « Système Linéaire », 2ème Année, Département Electronique, ESPA, 2004 [8] E 331 « Programmation en C », 3ème Année, Département Electronique, ESPA, 2005. [9] Site officiel de la librairie mathématique NTL : http://www.shoup.net/ [10] E 410 « Programmation en Langage Orientée Objet », Cours de 4 ème Année, Département Electronique, ESPA, 2007. [11] Cours de « Logique Combinatoire », 2ème Année, Département Electronique, ESPA, 2004. [12] Jimmie Cathey, « Circuits et systèmes électroniques », 2ème édition, EdiScience, Nouvelle, Franche-Comté, 2003. [13] http://fr.wikipedia.org/wiki/Echelle_logarithmique 76 Auteurs : RAJASPERA Tohavina Claude Sylvio(*) SALOMON Andrianjafy (**) Titre : « ACCEAO v6 » (Analyse et Conception de Circuits Electroniques Assistées par Ordinateur Version 6) Nombre de pages : 76 Nombre de figures : 46 Nombre de tableaux : 12 RESUME La sixième et actuelle version du logiciel ACCEAO peut désormais prendre en charge l’analyse des circuits numériques. Cette version intègre également une commande permettant de tracer les diagrammes de Bode des circuits analogiques étudiés. Mots-clés : Analyse de Circuits Electroniques, diagramme de Bode, circuits numériques, maintenance de logiciel, programmation système, base de données, Programmation Orientée Objet Rapporteur : Monsieur RABESANDRATANA ANDRIAMIHAJA Mamisoa Adresse : (*) Lot II D 13 Tsiazotafo, Antananarivo - 101 (**) Lot IVR 72 D Ambohibary Antanimena, Antananarivo - 101