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 Log0.
-
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