Vous êtes sur la page 1sur 74

Dakar-SENEGAL

Mmoire de fin de formation pour l'obtention du diplme de :


Ingnieur des Travaux des Tlcommunications
Option : Technique
Spcialit : Commutation
Thme :
ETUDE ET PROGRAMMATION D'UN AUTOCOMMUTATEUR TEMPOREL
PEDAGOGIQUE : ETD500
Prsent et soutenu par : Sous la direction de :
APOUDJAK Moustapha Mr. BARRY Mamadou Alpha
LAWSON-BANKU A. Latvi Formateur /Consultant l'ESMT
Promotion : 2007 - 2009
DEDICACES
A nos familles,
Vous qui nous avez toujours soutenus, encourags et prodigus des
conseils tout au long de nos tudes,
Vous qui vouliez le meilleur pour nous,
Vous qui, dans nos moments de faiblesses, de doutes et d'angoisse nous
avez toujours consol,
Voici la preuve que vos efforts ont port leur fruit.
A nos professeurs
Nous vous ddions ce travail qui vous montrera surement que vos efforts n'ont pas
t vains et que vos conseils et enseignements nous ont bien t utiles.
Merci vous.
REMERCIEMENTS
Ce travail que nous avons l'honneur de prsenter est le fruit de la collaboration de
plusieurs personnes que nous tenons remercier.
Tout d'abord, nous tenons remercier DIEU pour avoir t nos
cts tout au long de notre vie, du cycle IGTT et du stage ; et pour la grce qu'il
nous accorde.
Nous adressons nos vifs remerciements M. Alpha Mamadou BARRY pour avoir bien
voulu superviser notre travail et pour sa disponibilit inconditionnelle.
Nos remerciements vont aussi l'administration de l'ESMT et nos professeurs
qui se sont dvous leur tche et pour leur soutient inconditionnel.
Nous remercions nos familles pour leur soutient moral, affectif et financier, pour
leurs prires ainsi que pour tous les sacrifices auxquels ils ont bien voulu consentir
pour notre panouissement; c'est grce vous si nous sommes ici.
Merci.
Enfin nous remercions tous ceux qui de prs ou de loin ont contribu l'achvement de ce travail.
GLOSSAIRE
BF : Basse Frquence
CBS : Compteur Binaire Synchrone
CCF : Circuit de Confrence
CEPT : Commission Europenne des Postes et Tlcommunications
COFIDEC : Codeur -Filtre-Dcodeur
D : Abonn Demand
DR : Abonn Demandeur

EB : lment Binaire
FS : Frame Synchronisation
GT : Gnrateur de Tonalits
HE : Horloge Emission
HR : Horloge Rception
IUP : Institut Universitaire Professionnalis
LME : Liaison Multiplexe d'Entre
LMS : Liaison Multiplexe de Sortie
LRE : Liaison Rseau d'Entre
LRS : Liaison Rseau de Sortie
LSB : Least Significant Bit (Bit du Poids le plus faible)
MCM : Mmoire de Commande
ME : Mic distant Emission
MIC : Modulation par Impulsion et Codage
MR : Mic distant Rception
MSB : Most Significant Bit (Bite du Poids le plus fort)
MTC : Mmoire Tampon de Conversation
PAM : Pulse Amplitude Modulation
RCX : Rseau de Connexion
RF : Rcepteur de Frquences
SLIC : Subscriber Line Interface Circuit
UR : Unit de Raccordement
URA : Unit de Raccordement Abonn
URM : Unit de Raccordement Multiplexe
SOMMAIRE
Introduction gnrale1
1re Partie : Etude thorique...3
Chapitre 1 : Prsentation du cadre d'tude4
Chapitre2 : Gnralit sur la commutation temporelle9
Chapitre 3 : Etude de l'autocommutateur pdagogique ETD 500.36
2me PARTIE : Programmes du logiciel.49
Chapitre 1 : Les bibliothques et Les programmes compilables.51
Chapitre 2 : Excution du logiciel..55
Conclusion Gnrale.66
INTRODUCTION GENERALE
La commutation est ne pratiquement en mme temps que le tlphone. Aprs une courte priode pendant
laquelle l'tablissement de la communication s'oprait de faon manuelle par l'intermdiaire d'opratrices, les
premiers systmes de traitement automatiques sont apparus. Ils ne couvraient cependant pas tous les types
d'appels et pendant longtemps ils ont voisin avec des exploitations manuelles (traitement du trafic interurbain et
international), ou ont t combins avec celles-ci pour crer le service semi-automatique.

La recherche en commutation lectronique a commenc dans les annes 60. En effet il a fallu attendre les
annes 50 pour que le trafic interurbain se dveloppe et les annes 60 pour le service international automatique.
Ce passage l'automatisation intgrale suppose en effet la normalisation des changes entre commutateur d'un
mme rseau puis entre les rseaux des diffrents pays.
Les tlcommunications ont profit de l'volution exponentielle de la recherche lectronique. En effet la
numrisation va permettre l'avnement des commutateurs temporels.
Le laboratoire de commutation de l'ESMT dans le souci de renforcer l'enseignement pratique li la commutation
temporelle s'est procur l'ETD500 : un autocommutateur temporel pdagogique.
Afin de pouvoir bien exploiter la maquette ETD500, il nous a t demand de concevoir et corriger des
programmes qui permettraient l'tablissement d'un appel local (fonction de l'unit de commande), cela nous
amne prendre comme thme de mmoire ETUDE ET PROGRAMMATION D'UN AUTOCOMMUTATEUR
TEMPOREL Pdagogique : ETD500.
Pour mener bien, le travail a t scind en deux grandes parties :

La premire partie (I) portera sur l'tude thorique qui subdivise en trois (3) chapitres

Chapitre 1 : Prsentation du cadre d'tude et la problmatique

Chapitre 2 : Gnralit sur la commutation temporelle. Ce chapitre abordera les bases de la commutation
tlphonique, l'architecture et les phases d'tablissement d'une communication.

Chapitre 3 : Etude de l'autocommutateur pdagogique ETD500. Ce chapitre concerne la prsentation matrielle


de l'ETD500, des registres des mmoires, et de son fonctionnement.

La deuxime partie (II) sur les programmes du logiciel qui est dtaille sur deux (2) chapitres

Chapitre 1 : Les bibliothques et programmes compilables. Il dtaille les bibliothques et programmes complts
et amends pour tre compils.

Chapitre 2 : Traite principalement de l'excution du programme COMLOCAL et des cas pratiques.


Au terme de l'tude une conclusion gnrale, dans laquelle nous allons faire la synthse de ce qui nous a t
demand, du travail effectu, des problmes rencontrs, les solutions apportes ainsi qu'une perspective pour
orienter les probables futures recherches sur l'ETD500.
1re Partie :
Etude thorique
CHAPITRE 1 :
Prsentation du cadre d'tude
PRESENTATION DE l'ESMT
1.1.1 - Historique
L'ESMT (Ecole Suprieure Multinationale de Tlcommunications), centre d'excellence pour l'Afrique
francophone pour la formation en tlcommunications et en tlinformatique, forment des techniciens, des
ingnieurs ainsi que des mastres.
C'est un centre d'excellence de l'UEMOA (Union Economique et Montaire OuestAfricaine) et l'un des sept centres d'excellence de l'UIT (Union Internationale des
Tlcommunications). Comme centre d'excellence, elle se doit de former pour l'Afrique, des cadres et du
personnel comptents dans ce vaste domaine en volution constante : NTIC. En effet, l'ESMT fut cr en 1981 et
compte de nos jours 7 pays membres d'Afrique de l'Ouest :
Bnin, Burkina Faso, Mali, Mauritanie, Niger, Guine Conakry et le Sngal.

Pour ce faire et pour mieux rpondre aux besoins de nos tats, elle se veut un ple de convergence en matire
de formation, d'enseignement, de recherche et d'expertise rgionale dans le domaine des technologies de
l'information et de la communication.
1.1.2 - Organisation et fonctionnement
1.1.2.1 - Organisation
Comme toute structure organise, l'ESMT comprend :

Un conseil des Ministres,

Un conseil d'administration

Une direction Gnrale,

Un conseil scientifique et pdagogique

Un audit contrle de gestion

Un dpartement marketing

Une Direction de l'Enseignement de la Formation et de la Recherche (DEFR)

Une Direction Administrative et Financire (DAF)


La DEFR et la DAF contiennent des dpartements comme explicit dans l'organigramme ci-aprs :

1.1.2.2 - Fonctionnement
Le fonctionnement de l'cole est assur par:

Un Conseil d'Administration, o sont reprsents tous les pays membres, qui arrte les grandes orientations de
l'cole et dfinit le budget de chaque anne d'exercice. Sa prsidence est assure tour de rle par un Ministre
de tutelle des tlcommunications d'un pays membre. Les autres membres du Conseil d'Administration sont les
Directeurs Gnraux des organismes de tlcommunication (offices et socits nationales ou oprateurs
historiques).

Un Directeur Gnral, ressortissant d'un pays membre de l'ESMT, qui assure la gestion et le fonctionnement de
l'tablissement, ainsi que la mise en uvre de la coopration internationale.

Un Directeur de l'Enseignement de la Formation et de la Recherche, ressortissant d'un pays membre de l'ESMT,


qui est charg de la coordination des enseignements, de la documentation et du rgime d'tude des lves.

Un Conseil Scientifique et Pdagogique, organe consultatif, qui regroupe le Directeur, le Directeur de la


Formation et de la Recherche, le personnel enseignant, deux reprsentants des utilisateurs et deux reprsentants
des lves. Son rle est d'tudier les aspects pdagogiques, en particulier les volutions de programmes et leur
adaptation aux besoins du march, les propositions de nouvelles formations, etc.
Il effectue entre autre les tches suivantes :

Etudes techniques

Mise en place et suivi de projets informatiques

Mise en place d'actions qualit

Mise en place de dmarches et d'outils de management et de communication

Expertises de gestion et de dveloppement des ressources humaines

Expertises en gestion et en organisation

Appui la dfinition et la mise en uvre d'actions commerciales

Diagnostics et plans de formation

Changement de plan de numrotation


1.2 - PROBLEMATIQUE
Les domaines d'applications des rseaux de tlcommunications s'accroissent de jour en jour et les
commutateurs temporels sont les nuds incontournables de cette gigantesque toile. Organes intelligents du
rseau, les commutateurs tablissent la demande d'un abonn, la connexion, la supervision et la rupture des
communications. Afin d'illustrer aux tudiants les principes de la commutation temporelle et les techniques de
signalisation associes, l'exprimentation est indispensable. De petites configurations de commutateurs
commerciaux (commutateurs privs PABX) destins au trafic tlphonique des entreprises peuvent tre utilises
pour une approche externe des fonctions ralises et de la configuration des services dsirs. Il serait intressant
de pouvoir entrer au cur de ces machines qui implantent de nombreuses techniques de communications qui
sont la base de la formation de tout ingnieur et technicien suprieur des secteurs des tlcommunications et
rseaux.
Avec des autocommutateurs pdagogiques de type ETD500, qui sont munis des systmes reprogrammables, il
est possible de rentrer au cur de ces machines pour configurer et visualiser les processus d'tablissement des
appels. Ceci est possible qu' partir des programmes informatiques crits et adapts aux ETD500.
1.3 - CONTEXTE DE L'ETUDE
L'intrt de ce mmoire est essentiellement but pdagogique. L'ETD500 qui est quip d'un systme
reconfigurable va permettre aux diffrents cycles DTS et INGENIEUR de pouvoir raliser les diffrents TPs
(simulation, visualisation des processus de l'tablissement d'un appel) lis la commutation temporelle.
Chapitre2 :
Gnralit sur la commutation temporelle
2.1 - DEFINITION [4]
La commutation tlphonique est l'ensemble des techniques que l'on met en uvre afin de choisir, d'tablir, de
maintenir et, la fin, de librer les circuits entre les couples d'usagers abonns au rseau.
La transmission tlphonique assure l'change ou le transport des informations utiles (signaux de conversation
ou donnes) sur les circuits ainsi tablis. Les nuds qui permettent d'tablir les connexions entre les usagers en
fonction de leur demande sont les centres de commutation, communment appels autocommutateurs, car leur
exploitation est maintenant toujours automatique.
Les autocommutateurs permettent d'interconnecter, deux deux, les voies de transmission qui aboutissent en
grand nombre leurs accs, qu'il s'agisse de lignes d'abonns ou de circuits (jonctions) reliant les
autocommutateurs entre eux. Pour le besoin de l'tablissement des trajets, soit entre l'abonn et son
autocommutateur de rattachement, soit entre autocommutateurs, le rseau tlphonique utilise des changes
d'informations de commande que l'on appelle la signalisation.
2.2 - FONCTIONNEMENT DE BASE D'UN COMMUTATEUR TELEPHONIQUE
2.2.1 - Structure d'un commutateur tlphonique
Le schma simplifi d'un autocommutateur, quelle que soit la technologie employe, peut se reprsenter par un
synoptique de trois grands blocs regroupant toutes les fonctions tlphoniques, mais aussi les moyens de gestion
et les outils de maintenance.

Fig 1-1: schma simplifi d'un autocommutateur [4]


2.2.2 - Le bloc de raccordement
Il joue d'une faon gnrale, le rle d'interface avec le rseau tlphonique, en adaptant les diffrentes tensions
mises en jeu sur les lignes et les circuits, ainsi que le langage utilis sur ces supports, qui peut s'exprimer sous
forme de codes de signalisation varis. On y trouvera plus particulirement les fonctions suivantes :

URA
Alimentation microphonique des postes d'abonns (48v)

Production du courant d'appel (80 V - 25 Hz)

Conversion analogique / numrique et vice versa

Concentration du trafic

URM
Synchronisation des dbits binaires

Transformation HDB3 en binaire et vice versa

Assure l'interface entre les MIC externes et l'autocommutateur

Extraction, injection et prtraitement de la signalisation voie par voie de l'IT16


2.2.3 - Le rseau de connexion et blocs auxiliaires
Commuter signifie relier temporairement une entre une ou plusieurs sorties.
C'est le vritable cur de la chane commute, permettant les diffrents types de connexions :

Etablissement de communications bidirectionnelles

Diffusion des tonalits, des frquences de code, et des annonces parles

Connexions simples avec les auxiliaires de signalisation (rcepteurs multi frquences)


Connexions spciales : conversation trois, liaisons de donnes, etc ...)

Il existe deux grandes familles de rseau de connexion :

Dans les systmes lectromcaniques, le signal arrivant sous forme analogique de faon continue, il tait
ncessaire d'tablir une connexion mtallique entre entres et sorties pendant toute la dure de la
communication : c'est la commutation spatiale. Un tel rseau est dit rseau de connexion spatial.
Lorsque le signal arrive sous forme d'chantillons analogiques ou numriques, il n'est plus ncessaire d'tablir la
continuit mtallique pendant toute la dure de la communication, mais seulement d'assurer le transfert des
lments binaires reprsentant la valeur des chantillons de parole prlevs. Il s'agit de la commutation
temporelle, et ce rseau est dit rseau de connexion temporel.
Bloc des Auxiliaires :
Ce bloc donne les diffrentes tonalits de fonctionnement de l'autocommutateur (Invitation numroter, tonalit
d'occupation, retour d'appel, etc. . .), on peut citer entre autres :
RF : Rcepteur de la numrotation clavier des abonns (Q23)
Rcepteur signalisation entre centraux (R2)
GT : Gnrateur de tonalit (tonalit d'invitation numroter, tonalit d'occupation, tonalit d'acheminement. )
CCF : Circuit de confrence
2.2.4 - Le bloc de commande
Il s'agit de la partie intelligente du systme o se prennent les dcisions en temps rel d'aprs des
programmes enregistrs ou cbls, o l'on trouve en particulier :

Les fonctions tlphoniques (tablissement des appels, relchement d'appels, taxation, supervision, observation
de trafic).

Les programmes d'exploitation du systme : gestion des paramtres d'acheminement et de taxation, gestion des
quipements d'abonns, traitement des rsultats d'observation.

Le logiciel de maintenance : outils de localisation de dfauts, supervision des alarmes, collationnement des fautes
logicielles

2.3 - LES PHASES D'ETABLISSEMENT D'UNE COMMUNICATION LOCALE


2.3.1 - Prslection
2.3.1.1 - Exploration des quipements et dtection du changement d'tat
Les quipements d'abonns sont rpartis sur des cartes d'abonns assurant les fonctions BORSHT :
B = Battery (alimentation)
O= Overload (protection contre les surtensions)
R = Ringing (mission de la sonnerie)
S = Supervision (surveillance de l'tat de boucle)
H = Hybrid (transformation 2 fils/4 fils)
T = Test (renvoi au dispositif d'essai)
Ces cartes sont regroupes par ensemble, dont la modularit dpend des systmes. Chaque ensemble tant
sous le contrle d'une logique appele processeur de pritlphonie. Ce dernier est charg d'interprter tout
vnement survenant sur un quipement, et de prendre la dcision approprie.
L'exploration des quipements est assure par un compteur qui valide tour tour la lecture de l'tat de boucle de
chaque ligne. En cas de modification, le nouvel tat est mmoris pendant un dlai permettant sa confirmation.
A l'issue de ce dlai, la logique de contrle procde une prise de ressources vers le bloc de commande. Ce
dernier regroupe les processeurs chargs du traitement d'appel ; leur nombre diffre suivant le type de systme
de commande (commande centralise ou rpartie). Cette prise de ressources se manifeste gnralement par
l'envoi d'un message sur une liaison, car les processeurs du bloc de commande sont logs dans un ensemble
matriel distinct.
2.3.1.2 - Recherche des discriminations du demandeur

Le processeur de traitement d'appel effectue une recherche en mmoire (tables associes ce processeur ou
fichiers grs par un processeur ddi). Cette recherche est destine dterminer la nature de l'quipement en
appel ainsi que la prsence ventuelle de discrimination
2.3.1.3 - Initiation de l'observation de trafic
La prise en compte d'un nouvel appel par le processeur de traitement d'appel provoque galement le dmarrage
d'une observation de trafic, dont le rsultat servira connatre le temps d'tablissement des communications, la
rpartition des flux de trafic, etc ...)
2.3.1.4 - Test et connexion d'un rcepteur de frquence
Suite la recherche de discrimination, s'il apparat que le demandeur est quip d'un poste clavier, le
processeur de traitement d'appel procde la recherche d'un rcepteur de frquence libre, puis sa connexion
l'quipement en appel, via le rseau de connexion. Ce rcepteur est un filtre numrique qui, l'aide d'un
algorithme prslectionn, est capable de reconnatre, sur une srie d'chantillons, les frquences de code
mises par le clavier du poste de l'abonn.
2.3.1.5 - Envoi de la tonalit au demandeur
Une fois les quipements ncessaires connects, le processeur commande l'mission de la tonalit d'invitation
numroter. Celle-ci est gnralement distribue par le rseau de connexion qui la reoit lui-mme sous forme
d'chantillons en provenance d'un gnrateur de totalit. Ce denier est en fait une mmoire contenant une srie
ordonne d'chantillons permettant de reconstituer la tonalit.
2.3.2 - Signalisation du demandeur
2.3.2.1 - Rception de la numrotation
Les chiffres mis par le demandeur traversent le rseau de connexion et sont interprts par le rcepteur de
frquence, lequel assure le filtrage numrique. Les chantillons sont stocks sur plusieurs trames (une quinzaine
sont ncessaires), et le rsultat est envoy au processeur de traitement d'appel directement sous la forme du
chiffre compos par l'abonn.

Si le demandeur est quip d'un poste dcimal, les chiffres arrivent sous forme de rupture de boucle, et sont
interprts directement par le processeur de traitement d'appel.
2.3.2.2 - Arrt de l'mission de la tonalit
Ds la rception du premier chiffre, le processeur doit commander la dconnexion de l'quipement du gnrateur
de tonalit. Ceci est fait suite un ordre envoy par le processeur au rseau de connexion.
2.3.3 - Slection
Lorsque le processeur aura reu suffisamment de chiffres de l'abonn, leur analyse permettra de dterminer par
quel chemin la connexion pourra tre assure jusqu'au demand, et sur quelle base devra tre effectue la
taxation de la communication.

Toutefois, afin de rduire le temps de slection, on commence en gnral la traduction de la numrotation aprs
la rception du second chiffre, quitte faire plusieurs tentatives si le nombre de chiffres s'avre insuffisant.
2.3.3.1 - Pr analyse
Aprs la rception des deux premiers chiffres, le processeur effectue une premire traduction destine faciliter
la suite du traitement : il est presque toujours possible ce stade de dterminer le nombre total de chiffres
recevoir, et dans certains cas de connatre les conditions d'acheminement de l'appel. Dans tous les cas, cette
premire analyse fournit le nombre de chiffres qu'il faudra attendre pour une traduction complte de l'indicatif.
2.3.3.2 - Analyse
Une fois le nombre de chiffres requis parvenus au processeur, celui-ci consulte une nouvelle fois les tables de
traduction pour obtenir tous les paramtres associs l'indicatif reu. Les informations recueillies seront :

L'acheminement utiliser, c'est--dire l'itinraire emprunter pour atteindre le demand, (en cas de
communication dpart figureront aussi les lments permettant de faire suivre le numro vers l'autocommutateur
destinataire).

Le palier de taxe appliquer, indiquant le nombre d'units de taxation attribuer au demandeur, ainsi que leur
priodicit, ventuellement.

Le numro de l'quipement demand, s'il s'agit d'une communication locale.


2.3.3.3 - Fin de numrotation du demandeur
Le demandeur ayant compos son dernier chiffre, il faut dconnecter le rcepteur de frquence utilis en code
clavier (message de dconnexion expdi par le processeur de traitement d'appel au rseau de connexion).
2.3.4 - Mise en relation
L'tablissement de la communication passe maintenant par une phase d'attente pendant laquelle le demandeur
peroit le retour d'appel, alors que, dans l'autocommutateur destinataire, l'quipement du demand reoit le
courant de sonnerie.
2.3.4.1 - Retransmission
Lorsque le demand dcroche, son processeur de pritlphonie dtecte le changement d'tat. La diffrence se
situe toutefois dans la table d'tat des quipements qui contient l'information : l'quipement n'aura alors qu'
signaler le dcrochage au bloc de commande, par l'envoi d'un message.

2.3.4.2 - Double connexion (Dr D)


Jusqu' ce stade, la connexion n'avait pas t effectue dans le rseau de connexion, compte tenu de la
diffrence de nature des signaux mis vers les deux quipements. A la rception du dcrochage du demand, le
processeur de traitement d'appel prend les mesures ci-aprs :

Arrt de l'mission de la sonnerie cadence vers le demand

Arrt de l'mission du retour d'appel vers le demandeur

Envoi d'un message destination du rseau de connexion pour assurer la connexion bidirectionnelle entre le
demandeur et le demand.
2.3.4.3 - Dmarrage de la taxation
Le processeur de traitement d'appel ayant termin sa tche de mise en relation, il lui faut initialiser le processus
de taxation sur la base des informations obtenues lors de la traduction. Ainsi, si la taxation est fixe, le compte de
l'abonn sera incrment du nombre d'units fourni dans le palier de taxe ; si au contraire, la taxation est
priodique, le programme de taxation commencera comptabiliser les units correspondant chaque priode,
afin de les ajouter au compte de l'abonn la fin de la communication.
2.3.4.4 - Libration des ressources
Bien que la taxation et l'observation de trafic exigent le maintien de certaines ressources pendant la dure de la
conversation, il est indispensable de librer celles qui ont t utilises pour le stockage des informations pendant
la phase d'tablissement (zones de traitement).
2.4 - PRINCIPE DE LA CONNEXION TEMPORELLE
2.4.1 - La trame MIC
La trame MIC (Modulation par Impulsions et Codage) a t dveloppe pour la commutation temporelle de voies
tlphoniques numrises. Elle a t normalise par la Commission Europenne des Postes et
Tlcommunications (CEPT).
Elle permet de multiplexer, sur une mme paire, 30 voies tlphoniques numrises.
Par la suite, les 30 voies numriques de la trame MIC ont t utilises pour transmettre toutes sortes de donnes
numriques (FAX, donnes en X25, vido...)
La trame MIC permet la transmission de 30 voies numriques, la signalisation pour les 30 voies et la
synchronisation de l'ensemble des informations

La modulation par Impulsion et Codage (MIC) a pour but de convertir le signal tlphonique analogique en un
signal numrique. Le signal analogique est chantillonn toutes les 125 microsecondes.
30 voies tlphoniques sont ainsi vhicules sur un mme support.
La modulation par impulsion et codage fait correspondre un signal analogique un signal numrique.

La mise sous forme numrique d'un signal analogique se fait en trois oprations essentielles.

L'chantillonnage
La Quantification
Le codage

Fig 1-2 : Une trame (avec les 32 IT)


2.4.1.1 - Echantillonnage
L'chantillonnage est, aprs le filtrage, une opration effectue sur le signal transmettre en vue de raliser la
conversion "analogique / numrique".
Il consiste substituer, au signal d'origine, une suite de valeurs instantanes prleves sur le signal et
rgulirement espaces dans le temps.
A des instants prcis, rgulirement espacs, on prlve un chantillon du signal, qui sera reprsentatif de
l'amplitude de celui-ci.
A la rception, pour retrouver le signal original, on filtre les chantillons par un filtre "passe-bas" 4000 Hz.
Le thorme de Shannon montre qu'on ne peut pas reconstituer correctement le signal origine si la frquence
d'chantillonnage n'est pas suprieure 2 fois la frquence suprieure du signal transmettre. Pour la trame
MIC la frquence d'chantillonnage Fe est de 8000 Hz.
Fe > 2 Fmax
2.4.1.2 - Quantification
L'chantillonnage d'un signal BF (Base Frquence) consiste en une modulation d'un peigne d'impulsions par le
signal BF. Le rsultat est une modulation d'amplitude de l'impulsion par le signal encore appele PAM (Pulse
Amplitude Modulation). Nous pouvons transmettre ces impulsions modules en amplitude mais elles seraient trs
sensibles aux bruits et distorsions.
Pour reconstituer le signal la rception, il n'est pas indispensable de transmettre directement ces impulsions. Il
suffit de transmettre une information caractrisant l'amplitude de chacune d'entre elles. Pour cette raison, nous
quantifions le signal en faisant correspondre chaque amplitude d'chantillon, l'amplitude la plus voisine d'une
suite discrte et finie d'amplitudes "talons" appeles "niveaux". C'est la valeur de ces niveaux qui, l'mission,
aprs codage, sera transmise en ligne. Chaque niveau de l'chelle de quantification est caractris par un
numro binaire.
2.4.1.3 - Compression et Codage [5]
L'opration de compression numrique est une opration exclusivement logique qui consiste confondre
certaines plages obtenues par une quantification linaire. Cela diminue le nombre de plages et permet de rduire
d'lments binaires de chaque mot huit.
On effectue le codage aprs la compression en dfinissant la constitution du mot binaire.
Un mot binaire de 8 bits, correspondant une plage du signal, est constitu ainsi

Fig1-3 : Constitution d'un mot binaire

Le bit S est le bit de signe ( 1 pour tension positive) Les bits A, B, C reprsente le numro de segment de
droite.
Les bits W, X, Y, Z indiquent la plage parmi les 16 plages possibles sur le segment de droite slectionn.
Le mot 1 1 0 0 1 0 1 0 reprsente une impulsion positive de la plage 10 du segment 4.
RESUME DE TRAITEMENT D'UNE VOIE

Fig 1-4 : illustration du traitement d'une voie temporelle


2.4.2 - Le rseau de connexion un MIC
2.4.2.1 - Prsentation
Au niveau du bloc de connexion la liaison entre l'UR et le RCX a la mme structure qu'une liaison MIC et est
appele Liaison Rseau (LR).

Considrons la conversation entre le demandeur et le demand reprsente sur la figure ci-dessous :


RXC

Fig 1-5 : Rseau de connexion et Unit de Raccordement [4]


Lorsqu'un abonn demandeur dcroche l'UR lui affecte une voie (IT) parmi les 30 dont elle dispose ; supposons
que ce soit l'IT4.
Aprs avoir test la ligne du demand l'UR lui affecte aussi un IT. L'IT 4 tant pris par le demandeur, l'UR en
recherche un autre disponible par exemple l'IT 12.
Lorsque le demandeur parle sa parole emprunte le chemin reprsent sur la figure de la page qui suit.

L'chantillon arrive dans le RCX en t4 et en sort en t12, comme indiqu sur le schma suivant :

Fig 1-6: Rseau de connexion (Avec I T4 affect au DR et IT12 au DE)


Lorsque le demand parle, sa parole emprunte le chemin indiqu sur la figure ci-dessous. L'chantillon de parole
du demand arrive dans le RCX au t12 et en sort vers le demand au t4 de la trame suivante.

Fig 1-7: Rseau de connexion (Chemin emprunt par la voix)


2.4.2.2 - Ralisation du transfert dans le sens Dr D
Pour raliser ces transferts le RCX dispose de deux mmoires vives :

une mmoire tampon de conversation (MTC)

une mmoire de commande (MCM)

Fig1-8 : Ralisation transfert DR DE 1 [4]

Fig1-9 : Ralisation transfert DR DE 2 [4]

Fig1-10 : Ralisation transfert DR DE 3 [4]


Dans un intervalle de temps de 3,9 s (un ITi), le dispositif d'adressage de la MTC reoit 2 adresses :

Une adresse d'criture pour mmoriser un ventuel entrant : exemple, au t12, il faut adresser le mot 12 de MTC
pour mmoriser un chantillon entrant, IT12, c'est le cas quand le demand parle.

Une adresse de lecture pour transfrer cet chantillon sur l'IT sortant (toujours dans l'exemple choisi, au T12 le
dispositif d'adressage de la MTC reoit aussi l'adresse 4).
Chaque intervalle de temps de 3,9 s est donc dcoup en deux parties : une partie pour travailler en criture et
une partie pour travailler en lecture.

Fig1-11 : intervalle de temps d'une voix


L'criture en mmoire de commande se fait lors de l'tablissement de la connexion sous le contrle du bloc de
commande comme indiqu sur le schma suivant :

Fig1-12 : Ecriture en MCM [5]


2.4.2.3 - Ralisation du transfert dans le sens D Dr
On affecte l'IT 5 l'abonn demandeur, l'IT 24 l'abonn demand et on ralise la connexion entre eux. Les 2
schmas qui suivent expliquent comment la connexion se fait.

Fig1-13 : Ralisation transfert DE DR 1 [4]

Fig1-14: Ralisation transfert DE DR 2 [4]


2.5 - ALGORITHME D'ETABLISSEMENT D'UN APPEL
Fonction rech_vt()
Entier rech_vt()
Debut
entier i -1
Pour i=4 30 faire
Si (tab_vt[i]=libre) alors
Retourner(i)
Retourner (-1)
Fin
Fonction rech_ rnc()
Entier rech_rnc ()
Dbut
entier i -1
Pour i=0 2 faire
Si (tab_rnc[i]=dispo) alors
Retourner(i)
Retourner (-1)
Fin
Fonction affect_vt (VT_choisie : entier)
Dbut
Tab_vt [VT_choisie] affectee
Fin
Fonction affect_rnc (RNC_choisi : entier)
Dbut
Tab_rnc [RNC_choisi] occupe
Fin
Fonction presel (equip : entier)
Dbut
//test si une VT Libre et affectation (marquage)
entier VT_DR rech_vt ()
Si (VT_DR<>-1) alors
Dbut
affect_vt (VT_DR)
affecte_codec (equip,VT_DR)
contextes[equip].no_Vt_affectee VT_DR

Fin
Sinon retourner rien
//test si LES DISCRIS sont bonnes:
Si ((contextes[equip].discri_poste=spe_arrivee)ou(contextes[equip].discri_poste=hors_service))
Dbut
connexion (VT_OCCUP, VT_DR)
tab_rcx[VT_DR] VT_OCCUP
Contextes[equip].etat_poste faux_app_deur
Retourner rien
Fin
//test si RNC dispo et affectation:
entier RNC rech_rnc()
Si(RNC<>-1)
Dbut
contextes[equip].no_RNC_affecte RNC
affect_rnc(RNC)
Fin
Sinon
Dbut
connexion(VT_OCCUP,VT_DR)
tab_rcx[VT_DR] VT_OCCUP
Contextes[equip].etat_poste faux_app_deur
Retourner rien
Fin
//connexion au RNC affecte et envoi d'IN:
connexion(VT_DR,RNC+1)
connexion(VT_INVIT,VT_DR)
tab_rcx[RNC+1] VT_DR
tab_rcx[VT_DR] VT_INVIT
//lancement tempo de 20 secondes:
contextes[equip].time_out (SEC+20)%3600
contextes [equip].etat_poste num_chif1
Fin
Fonction recept_chif1( equipt:entier)
Dbut
//test tempo de 20 secondes:
clock_t tempo contextes[equipt].time_out
entier rnc contextes[equipt].no_RNC_affecte
Si (SEC>=tempo) alors
Dbut
//liberation RNC et cxion a l'occup
contextes[equipt].no_RNC_affecte NON_AFFECTE
tab_rnc[rnc] dispo
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_OCCUP
connexion(contextes[equipt].no_VT_affectee,VT_SILEN)
tab_rcx[rnc+1] VT_SILEN
contextes[equipt].time_out 0
contextes[equip].etat_poste faux_app_deur
fin
Si (etat_joncteur(equipt)=faux) //raccrochage
debut
contextes[equipt].no_RNC_affecte NON_AFFECTE
tab_rnc[rnc] dispo
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee)
contextes[equipt].no_VT_affectee NON_AFFECTE
tab_vt[contextes[equipt].no_VT_affectee] libre
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
contextes[equipt].time_out 0
contextes[equip].etat_poste repos
Fin
Si(contextes[equipt].no_compose.nb_chif=1) alors
Dbut
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
contextes[equip].etat_poste num_chif2

Fin
Fin
Fonction recept_chif2 ( equipt:entier)
Dbut
//test tempo de 20 secondes(idem recept_chif1)
clock_t tempo contextes[equipt].time_out
int rnc contextes[equipt].no_RNC_affecte
Si (SEC>=tempo)
Dbut
contextes[equipt].no_RNC_affecte NON_AFFECTE
tab_rnc[rnc] dispo
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_OCCUP
connexion(contextes[equipt].no_VT_affectee,VT_SILEN)
tab_rcx[rnc+1] VT_SILEN
contextes[equipt].time_out 0
contextes[equip].etat_poste faux_app_deur
Fin
Si (etat_joncteur(equipt)=faux) alors //raccrochage
Dbut
contextes[equipt].no_RNC_affecte NON_AFFECTE
tab_rnc[rnc] dispo
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee)
contextes[equipt].no_VT_affectee NON_AFFECT
tab_vt[contextes[equipt].no_VT_affectee] libre
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
contextes[equipt].time_out 0
contextes[equip].etat_poste repos
Fin
Si (contextes[equipt].no_compose.nb_chif=4) alors
Dbut
contextes[equipt].no_RNC_affecte NON_AFFECTE
tab_rnc[rnc] dispo
connexion(contextes[equipt].no_VT_affectee,VT_SILEN)
tab_rcx[rnc+1] VT_SILEN
contextes[equipt].time_out 0
contextes[equip].etat_poste select_de
contextes[equipt].no_compose.nb_chif 0
Fin
Fin
Fonction faux_appel1( equipt :entier)
Dbut
//traitement du faux appel du demandeur:
Si (etat_joncteur(equipt)=faux) //racrochage
Dbut
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
tab_vt[contextes[equipt].no_VT_affectee] libre
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee)
contextes[equipt].no_VT_affectee NON_AFFECTE
contextes[equip].etat_poste repos
contextes[equipt].time_out 0
Fin
Fin
Fonction faux_appel2(equipt :entier)
Dbut
//traitement du faux appel du demand:
Si (etat_joncteur(equipt)=faux)alors //racrochage
Dbut
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
tab_vt[contextes[equipt].no_VT_affectee libre
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee)
contextes[equipt].no_VT_affectee NON_AFFECTE
contextes[equip].etat_poste repos
contextes[equipt].time_out 0

Fin
Fin
Fonction renvoi_occ_deur (equipt :entier)
Dbut
connexion(VT_OCCUP,contextes[equ].no_VT_affectee)
tab_rcx[contextes[equ].no_VT_affectee] VT_OCCUP
contextes[equ].etat_poste faux_app_deur
Fin
Fonction Rech_ vt_ de
entier rech_vt_de()
Dbut
Entier i -1
pour i=4 30 faire
Si (tab_vt[i]=libre) alors
Retourner(i)
retourner(-1)
Fin
Fonction slect_de ( equipt :entier)
Dbut
//analyse du numero reu(4 hciffres dans le tableau tab_chif[equipt]du DEUR
entier m contextes[equipt].no_compose.tab_chif[0]
entier c contextes[equipt].no_compose.tab_chif[1]
entier d contextes[equipt].no_compose.tab_chif[2]
entier u contextes[equipt].no_compose.tab_chif[3]
entier norecu 1000*m+100*c+10*d+u
//recherche du nd'equipement correspondant:
Entier equ_de=-1
Pour i=0 4 faire
Dbut
Si (norecu=contextes[i].no_de_telephone)alors
debut
equ_de i
Fin
Fin
Si(equ_de=-1) alors
renvoi_occ_deur(equipt)
sinon
Dbut
//on a trouve le numero d'equipementdu DE(mis dans equ_de)
si (contextes[equ_de].etat_poste<>repos) alors
renvoi_occ_deur(equipt)
Sinon
Dbut Si((contextes[equ_de].discri_poste=spe_depart)ou(contextes[equ_de].discri_poste=hors_service)) alors
renvoi_occ_deur(equipt)
sinon
debut
entier VT_DE rech_vt_de()
si(VT_DE=-1) alors
renvoi_occ_deur(equipt)
sinon
Dbut
tab_vt[VT_DE] affectee contextes[equ_de].etat_poste son_de
contextes[equipt_de].etat_poste ra_deur
affecte_codec(equipt,VT_DE)
contextes[equ_de].no_VT_affectee VT_DE
contextes[equ_de].no_VT_du_distantcontextes[equ_de].no_VT_affectee
contextes[equ_de].no_VT_du_distant VT_DE
connexion(VT_RETAP, contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_RETAP
contextes[equipt].time_out (SEC+120)%3600 //2mn max de sonnerie
contextes[equ_de].time_out 0
Fin
Fin
Fin
Fin
Fin
Fonction sonnerie (equipt : entier)

Dbut
Si(contextes[equipt].time_out=1) alors
Dbut
mettre_en_sonnerie(equipt)
Fin
si(contextes[equipt].time_out=20) alors
Dbut
arret_sonnerie(equipt)
Fin
Si(contextes[equipt].time_out>=60) alors
Dbut
contextes[equipt].time_out 0
Fin
Fonction ret_appel( equipt :entier)
Dbut
//a)raccrochage du DEUR en cours de sonnerie
Si(etat_joncteur(equipt)=faux)alors //raccrochage DEUR
Dbut
entier VT_DE contextes[equipt].no_VT_du_distant
entier equipt_de -1
Pour(entier i 0,i<NB_EQUIPEMENT)
Dbut
Si (contextes[i].no_VT_affectee=VT_DE)
equipt_de i
Fin
Si (equipt_de<>-1)alors
Dbut
arret_sonnerie(equipt_de)
tab_vt[contextes[equipt_de].no_VT_affectee] libre
desaffecte_voie_de_codec(contextes[equipt_de].no_VT_affectee)
contextes[equipt_de].no_VT_affectee NON_AFFECTE
contextes[equipt_de].no_VT_du_distant NON AFFECTE
contextes[equipt_de].time_out 0
contextes[equipt_de].etat_poste repos
Fin
sinon
mess_test "Pas trouv le DE en sonnerie!!"
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
tab_vt[contextes[equipt].no_VT_affectee] libre
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee)
contextes[equipt].no_VT_affectee NON_AFFECTE
contextes[equipt].no_compose.nb_chif 0
pour entier j=0 4faire
contextes[equipt].no_compose.tab_chif[j] 0
contextes[equip].etat_poste repos
contextes[equipt].time_out 0
//b)fin tempo de 2 minutes
Si (SEC>=contextes[equipt].time_out)alos
Dbut
entier VT_DE contextes[equipt].no_VT_du_distant
entier equipt_de -1
Pour entier i=0 i<NB_EQUIPEMENT faire
Dbut
Si (contextes[i].no_VT_affectee=VT_DE)
equipt_de i
Fin
Si(equipt_de<>-1)alors
Dbut
arret_sonnerie(equipt_de)
tab_vt[contextes[equipt_de].no_VT_affectee] libre
desaffecte_voie_de_codec(contextes[equipt_de].no_VT_affectee)
contextes[equipt_de].no_VT_affectee NON_AFFECTE
contextes[equipt_de].no_VT_du_distant NON AFFECTE
contextes[equipt_de].time_out 0
contextes[equipt_de].etat_poste repos
Fin

Sinon
mess_test="Pas trouv le DE en sonnerie!!"
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_OCCUP
contextes[equipt].time_out 0
contextes[equipt].etat_poste faux_app_deur
Fin
//c)tester si decrochage du demend en sonnerie
entier VT_DE contextes[equipt].no_VT_du_distant
entier equipt_de -1
pour i=0 i<NB_EQUIPEMENT faire
Dbut
Si (contextes[i].no_VT_affectee=VT_DE) alors
equipt_de i
Fin
Si (equipt_de=-1) alors
Dbut
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_OCCUP
contextes[equipt].time_out 0
contextes[equipt].etat_poste faux_app_deur
mess_test"Pas trouv le DE en sonnerie!!"
Fin
Sinon
Dbut
Si (etat_joncteur(equipt_de)=vrai)
Dbut
arret sonnerie(equipt_de)
contextes[equipt_de].time_out 0
affecte_codec(equipt_de,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
connexion(contextes[equipt].no_VT_affectee,contextes[equipt].no_VT_du_distant)
connexion(contextes[equipt].no_VT_du_distant,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] contextes[equipt].no_VT_du_distant
tab_rcx[contextes[equipt].no_VT_du_distant] contextes[equipt].no_VT_affectee
contextes[equipt].etat_poste conv_deur
contextes[equipt].etat_poste conv_de
contextes[equipt].time_out 0
tab_tax[equipt]+ //une unite de taxe a la mise en communication
Fin
Fin
Fonction racc_deur( equipt :entier)
Dbut
Si (etat_joncteur(equipt)=faux)
Dbut
entier VT_DE contextes[equipt].no_VT_du_distant
entier equipt_de -1
pour entier i=0 i<NB_EQUIPEMENT faire
Dbut
Si (contextes[i].no_VT_affectee=VT_DE)
equipt_de i
Fin
Si (equipt_de<>-1)
Dbut
connexion(VT_OCCUP,contextes[equipt_de].no_VT_affectee)
tab_rcx[contextes[equipt_de].no_VT_affectee] VT_OCCUP
contextes[equipt_de].no_VT_du_distant NON_AFFECTE
contextes[equipt_de].time_out 0
contextes[equipt_de].etat_poste faux_app_deur
Fin
Sinon
mess_test"Pas trouv le correspondant DE!!"
//puis liberer tout du cot DEUR
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
tab_vt[contextes[equipt].no_VT_affectee] libre
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee

contextes[equipt].no_VT_affectee NON_AFFECTE
contextes[equipt].no_VT_du_distant NON AFFECTE
contextes[equipt].time_out 0
contextes[equip].etat_poste repos
Fin
Fin
Fonction racc_de( equipt : entier)
Dbut
Si (etat_joncteur(equipt)=faux)alors
Dbut
//trouver le DEUR et renvoyer celui-ce en occupation
entier VT_DEURcontextes[equipt].no_VT_du_distant
entier equipt_deur-1
pour entier i=0 i<NB_EQUIPEMENT faire
Dbut
Si (contextes[i].no_VT_affectee=VT_DEUR)
equipt_deuri
Fin
si(equipt_deur<>-1)
debut
//renvoi en occupation de DEUR
connexion(VT_OCCUP,contextes[equipt_deur].no_VT_affectee)
tab_rcx[contextes[equipt_deur].no_VT_affectee] VT_OCCUP
contextes[equipt_deur].no_VT_du_distant=NON_AFFECTE
contextes[equipt_deur].time_out0
contextes[equipt_deur].etat_postefaux_app_deur
Fin
Sinon
mess_test"Pas trouv le correspondant DEUR!!"
// liberer tout du cote DE
connexion(VT_SILEN,contextes[equipt].no_VT_affectee)
tab_rcx[contextes[equipt].no_VT_affectee] VT_SILEN
tab_vt[contextes[equipt].no_VT_affectee] libre
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee)
contextes[equipt].no_VT_affecteeNON_AFFECTE
contextes[equipt].no_VT_du_distantNON AFFECTE
contextes[equipt].time_out0
contextes[equip].etat_posterepos
Fin
Fin
Programme principale
Dbut
pour entier eq=0 eq<NB_EQUIPEMENT faire
Dbut
etatcontextes[eq].etat_poste
selon que (etat)
Dbut
Cas repos:
Si (etat_joncteur(eq)=vrai)
contextes[eq].etat_postepreselection
Cas preselection:
presel(eq)
Cas num_chif1:
recept_chif1(eq)

Cas num_chif2:
recept_chif2(eq)
Cas faux_app_deur:
faux_appel1(eq)
Cas select_de:
selection(eq)
Cas ra_deur:
ret_appel(eq)
Cas son_de:
sonnerie(eq)
Cas conv_deur:
racc_deur(eq)
Cas conv_de:
racc_de(eq)
Cas faux_app_de:
faux_appel2(eq)
Fin
Fin
Chapitre 3 :
ETUDE de
L'AUTOCOMMUTATEUR pdagogique TEMPOREL ETD 500
3.1- PRESENTATION
L'autocommutateur temporel ETD500 est un matriel pdagogique destin l'initiation la commutation
tlphonique temporelle.
L'ETD500 utilise la transmission de la parole par modulation par impulsions codes
(MIC). Le signal analogique de la parole est chantillonne des intervalles de temps rguliers. La valeur
analogique est code en numrique sous forme d'un mot 8 bits, qui est ensuite transmis en srie sur une ligne. A
la rception, le mot binaire est reconstitu, converti en analogique et un filtre passe bande permet de restituer le
signal d'origine.
La bande passante tlphonique est comprise entre 300 et 3400 Hz.
Le thorme de Shannon impose un chantillonnage au moins suprieur au double de la frquence la plus
leve, soit 6800 Hz.
En gnral, la frquence d'chantillonnage choisie est de 8 KHz, soit une priode de
125 s. Donc Il faut 15,5 s pour un vit, soit une frquence de 64,5 KHz.
La rapidit des circuits intgr permet de travaill des frquences plis leves,
Permettant un taux de transmission plus grand, et une dure de transmission plus basse. Ce qui permet d'utiliser
des temps morts entre les mots, pour transmettre d'autres suites d'impulsions correspondant d'autres
communications. Cela permet de raliser le multiplexage de plusieurs accs sur le mme bus grce au procd
de rpartition dans le temps.

Les caractristiques de l'ETD500 :

RCX 32 voies temporelles

4 quipements comprenant :

1 SLIC (Subscriber Line Interface Circuit),

1 gnrateur de sonnerie,

1 gnrateur de tonalit,

1 dcodeur DTMF,

2 Codecs ralis avec des COFIDEC,

3 adaptateurs BNC 2 mm,

1 alimentation uniquement gnrant les diffrentes tensions,

Un microsystme grant le fonctionnement de l'autocom,

Une liaison intercom permettant de faire un rseau en anneau de plusieurs autocom.

Fig1-15 : ETD500 (RCX et UR) [1]


3.2- DESCRIPTION MATERIELLE DE LA MAQUETTE
3.2.1 - Alimentation Electrique
Le bloc alimentation gre l'alimentation de l'etd500 partir d'une alimentation 12 V
AC ou DC.
L'interrupteur permet de mettre sous tension l'ETD500.
La prsence tension est repre par une led.

Fig1-16 : Alimentation ETD500 [1]


3 .2.2 - Liaison avec un ordinateur PC
La liaison avec l'ordinateur P.C. s'effectue par l'intermdiaire d'une liaison srie de type RS232.
On relie le cordon srie entre la prise srie et un port srie du P.C.

Fig1-17 : Prise RS232 [1]


3.3 - BASE DE TEMPS

A partir d'une horloge de 8.192 MHz, la base de temps gnre tous les signaux d'horloge ncessaires au
fonctionnement de l'autocommutateur.
La base de temps est ralise par un EPLD.

Fig1-18 : Base de temps [1]


A partir de l'horloge hw 2.048 MHz, on en dduit les horloges suivantes :

Fig1-19 : Chronogrammes des horloges [1]


Pour crire et lire dans la MTC, il faut les signaux h1 et h2, dont le chronogramme est le suivant :

Fig1-20 : Les horloges


Chaque intervalle de temps, est dcompos en 8 intervalles de temps W1 W8.
Le chronogramme suivant le montre sur l'it0 :

Fig1-21: Horloge HW [1]


3.4 - LE RESEAU DE CONNEXION : RCX
Le rseau de connexion permet de connecter l'une des 32 voies temporelles d'une ligne rseau entrante (LRE)
avec une quelconque voie temporelle d'une ligne du rseau sortante (LRS).
Le rseau de connexion est compos de 2 mmoires :

Une mmoire de signal note MTC,

Une mmoire d'adresse note MCM.


La mmoire MTC a autant de case mmoire qu'il y a d'intervalle de temps. La mmoire
MCM est de 32 octets.
La mmoire MCM doit contenir autant de case mmoire qu'il y a d'intervalle de temps.
La mmoire MCM est 32 x 5 bits.
Le schma fonctionnel du RCX est le suivant :

Fig1-22 : RCX ETD500 [1]


Les signaux T [1..5] mis par la base de temps, dfinissent les adresses 0 31 des voies
Temporelles
L'adressage de la MTC s'effectue en 2 temps dpendant du signal w1 :
1 : l'adresse est gal T [1..5],
0 : l'adresse est dlivr par la mmoire de commande MCM
L'adresse de la MCM s'effectue en 2 temps dpendant du signal ADR :
1 : l'adresse de la MCM est gal au registre Adresse MCM,
0 : l'adresse est gal T [1..5].
Le RCX est interfac avec le microsystme travers 4 registres :

3.5 - LE MICRO-SYSTEME
Le microsystme gre le fonctionnement de l'autocommutateur, configure l'ETD500
Le microsystme de l'ETD500 est ralis par la carte EID210, qui est une carte base
de 68332 de chez Motorola.
L'adresse de base sur le buspc104 de l'autocom est 0xB30000.
3.5.1 - Gestion du RCX
La gestion du RCX se fait par l'intermdiaire du bus PC104.
Le microsystme crit dans chaque case de la MCM, le numro du MIC.
3.5.1.1 - Adresse MCM
L'adresse du registre est 0xB30082
Le registre est accessible en criture

3.5.1.2 - Donne MCM


L'adresse de base est 0xB30083
Le registre est accessible en lecture et criture :
En lecture, il correspond lecture MCM,
En criture, il correspond info MCM.

3.5.1.3 - Registre de contrle


L'adresse de base est 0xB30080
Le registre est accessible en criture uniquement

Avec
ECRITURE : commande d'criture de la MCM l'adresse MCM la valeur info MCM
LECTURE : commande de lecture de la MCM l'adresse MCM
3.5.1.4 - Registre de statut
L'adresse de base est 0xB30080
Le registre est accessible en lecture uniquement

ECRITURE : commande d'criture de la MCM l'adresse MCM la valeur info MCM


LECTURE : commande de lecture de la MCM l'adresse MCM.
ECR : tat de l'criture dans la MCM
0 : criture non effectue,
1 : criture effectue.
LECT : tat de la lecture dans la MCM
0 : lecture non effectue,
1 : lecture effectue.
3.5.1.5 - Le canal smaphore
Le canal smaphore est associ la voie temporelle 16
L'adresse du registre d'criture sur le MIC sortant sur la voie 16 est 0xB30085 (accessible en criture).
L'adresse du registre de lecture sur le MIC entrant sur la voie 16 est 0xB30086 (accessible en lecture).
Les registres du canal smaphore sont sur 8 bits.
D7

D6

D5

D4

D3

3.5.2 - Gestion des quipements


Sur l'ETD500, il y a 2 types d'quipements :

Les COFIDECs,

Les SLICS.
Les cofidecs sont grs par le bus pc104.
Les slics sont grs par une liaison srie SPI en mode daisy chane
3.5.2.1 - Les cofidecs
Registre d'affectations de voie temporelle
Ces registres sont accessibles en criture

3.5.2.2 - Les slics


Pour commander les leds de visualisation de l'tat des slics

Avec
Ei : tat du combin

D2

D1

D0

0 : led allume.
1 : led teinte.
Si : tat de la sonnerie
Avec i le numro de l'quipement
3.5.3 - Gestion de la liaison intercom
La liaison intercom est gre travers le bus PC104. L'adresse de base est 0xB30048, le registre est accessible
en criture uniquement.
INTER

HDB3

Avec :
INTER : 0 : intercom non valid,
1 : intercom valid
HDB3 : 0 : transmission N-RAIL
1 : transmission en mode HDB3.

Remarque : En mode intercom, l'attribution des voies temporelles est la suivante :


IT 0 : voie temporelle systme

IT 1 IT 15 : communication locale

IT 16 : canal smaphore

IT 17 IT 31 : communication distante
3.6 - LES CODECS
Les codecs sont raliss avec des COFIDEC MC14LC5480 de chez Motorola

Fig1-23 : Codec ETD500

Frame synchronisation est une horloge de 8KHz qui synchronise le cofidec. Le mode utilis dans l'ETD500 est le
mode short frame Sync.
Le schma fonctionnel du cofidec est le suivant :

Fig1-24 : Cofidec
3.7 - LES EQUIPEMENTS
Les quipements sur l'ETD500 sont raliss par des composants Proslic de SILICON
LABORATORIES.
Il intgre :

Un SLIC : (ralise la fonction BORSHT )

Batterie : fourniture du courant continu sur la ligne, pour faire fonctionner le tlphone,

Overload protection : protection des surtensions pouvant venir de la ligne,

Ringing : envoi du courant de sonnerie,

Supervision : dtection des dcrochages et raccrochages,

Hybrid : passage 2 fils-4 fils avec sparation su sens aller et retour de la parole,

Transmission : adaptation d'impdance, amplification, suppression du bruit, attnuation d'cho.

Un dcodeur (DTMF) : effectue la reconnaissance de la numrotation frquences vocales

Un CODEC,

Un gnrateur de sonnerie,

Un gnrateur de tonalit.

Fig1-25 : Equipement (URA)


Avec

LRE : Mic entrant

LRS : Mic sortant

FS : Frame synchronisation

Etat combin : combin raccroch ou dcroch

Sonnerie : tat sonnerie


3.8 - GENERATEUR DE SONNERIE
Le gnrateur de tonalit 2 ne peut pas tre utilis lorsque le gnrateur de sonnerie est activ.
3.9 - LIAISON INTERCOM
L'ETD500 dispose en option d'une interface liaison intercom.

Fig1-26 : Liaison inter commutateur [1]


Avec :

HE : horloge mission

ME : Mic distant mission

HR : horloge rception

MR : Mic distant rception.

SYN : Signal de synchronisation trame paire trame impaire


3.10 - FONCTIONS LOGICIELS
Les registres de la carte ETD500 accessible par le bus PC104 sont dclarer dans le
Fichier ETD500.h
Ainsi on a :
Le fichier de la bibliothque de gestion du rcx qui est dans le fichier rcx.c
Le module qui gre la liaison Spi est dans le fichier spi.c .
Le module permettant la gestion des proslic SI3210 et les registres du si3210 sont dclar dans le fichier
proslic.h
Le module de gestion des abonnes qui se trouve dans le fichier <<abonne.c>>
2me PARTIE :
Programmes du logiciel
INTRODUCTION
En informatique un logiciel (Un logiciel ou une application est un ensemble de programmes, qui permet
un ordinateur ou un systme informatique...) ou une application est un ensemble (En thorie des
ensembles, un ensemble, dsigne intuitivement une collection d'objets (que l'on appelle lments...) de
programmes, qui permet un ordinateur ou un systme informatique (L'informatique dsigne l'automatisation
du traitement de l'information par un systme, concret (machine) ou abstrait....) d'assurer une tche ou une
fonction bien dtermine. Notre logiciel est un didacticiel c'est--dire un logiciel d'enseignement qui permet de
prendre en main l'ETD500 mais aussi de jouer la fonction de l'unit de commande de ce dernier.
Il va permettre le pilotage du central pdagogique en mode manuel, automatique ou mme de raliser des
travaux pratiques d'informatique industrielle applique la commutation temporelle.
Fonctionnement en mode manuel, il permet :
Affectation d'une adresse mmoire MTC au MIC sortant,
Affectation d'un Intervalle Temporel MIC la liaison inter commutateur,
Attribution d'un Intervalle Temporel MIC un COFIDEC (entre analogique directe),
Attribution d'un Intervalle Temporel MIC un SLIC d'abonn,
Fonctionnement en mode automatique, il permet :
Affectation d'un numro d'abonn un quipement d'un prfixe MC un autocommutateur,
Affectation d'un palier de taxe un abonn (forfaitaire, fonction de la dure, N gratuit, distant),
Consultation du compteur de taxation,
Modification des caractristiques d'une ligne d'abonn,
Rservation d'un Intervalle Temporel MIC (Blocage manuel),
Suppression d'un abonn,
Transfert d'un compte abonn d'un numro d'quipement un autre quipement (du mme central).
Informatique industrielle :
Le logiciel est structur sous forme de modules, il est possible de rcrire chaque module au titre de travaux
pdagogiques, de raliser des travaux pratiques de cration de nouveaux services.
Le langage de programmation que nous avons utilis est le C++ qui est d'ailleurs recommand par le
constructeur de l'quipement

- LES BIBLIOTHEQUES

Chapitre 1 :
Les bibliothques et les Programmes compilables

Une bibliothque est un ensemble de fonction et/ou de procdures, ayant de prfrence un point commun. Les
fichiers contenant les bibliothques en C++ ont l'extension .h
1.1.1 - Bibliothque T2000.h
La bibliothque T2000.h dfinit les caractristiques principales du commutateur.
En d'autres terme, cette bibliothque de dfinit les caractristiques gnrales de l'autocommutateur, la plupart
des variables y sont dclares.
Cette bibliothque contient aussi quelques fonctions et des types prdfinis
Exemple de quelques variables dclares et fonctions ou types prdfinis :
#define NB_MIC xxx pour dclarer le nombre de mic de l'autocom
# define NB_CHIF_NUM xxx nombre de chiffres du numro compos
#define RING xxx temps en sec de sonnerie
Tnum : est un type prdfini qui compte le nombre de chiffre reu et permet leur stockage
Discris : caractristique abonnement usager
Pour voir le programme complet T2000.h rfrez vous l'annexe N1
1.1.2 - Bibliothque Interf.h
INTERF.h dfinit les adresses d'entres-sorties du PC (UC) vers l'autocommutateur ETD500, ainsi que la liste
des fonctions matrielles pour piloter le commutateur.
Pour voir le programme INTERF.h aller l'annexe N 2
1.1.3 - Bibliothque Modules.h
Elle Contient les constantes et fonctions ncessaire au programme modules.cpp .Dfinit les vecteurs
d'interruption horloge.
Pour voir le programme MODULES.H aller l'annexe N3
1.1.4 - Bibliothque Abonne.h
La bibliothque Abonne.h Contient des fonctions qui permettent l'enregistrement des abonns et leur gestion.
Pour voir le programme ABONNE.H
Aller l'annexe N 4
1.1.5 - Bibliothque sujet.h
Dans cette dernire se retrouvent les fonctions et constantes utiliser dans les modules SUJETx.CPP (sujet 4
9).Ces fonctions et constantes sont ajoutes au fur et mesure qu'on crit les programmes SUJETx.CPP
Annexe N5 pour voir la bibliothque SUJET.H
1.2 - LES PROGRAMMES COMPILABLES
1.2.1 - Les sous-programmes
1.2.1.1 - Interf.CPP
Ce programme permet de prendre en main le matriel autrement dit il gre les interfaces.
Il permet le contrle du PPI, l'activation et la dsactivation des codecs,
Permet la mise en sonnerie d'un quipement
Annexe N 6 pour voir le programme interf.CPP
1.2.1.2 - Modules.CPP
Il contient la dfinition de fonctions appeles par le programme principal et les programmes d'interruptions.
Annexe N7 pour voir le programme Modules.CPP

1.2.1.3 - SujetX.CPP
Les programmes SUJETx.CPP (sujet 4 9) sont des modules qui permettre le traitement de l'tablissement
d'un appel local donc ils ont interdpendants des uns des autres.

Sujet4.CPP
Il sert faire le test de la ligne d'abonn et permet la dtection du dcrochage (vrification de l'tat de boucle).Il
permet aussi la prslection c'est--dire l'affectation des voix temporelles
Voir Annexe N8

Sujet5.CPP
Ce programme permet de faire un test raccrochage du Demandeur, la dsactivation de la temporisation et la
rception des chiffres composs par ce dernier s'il n'a pas raccroch.
Voir Annexe N9

Sujet6.CPP
Il correspond aux traitements l'tat faux appel du demandeur et du demand.

Etat faux appel Demandeur : Si on dtecte le raccroche du ct demandeur, on efface la connexion la tonalit
d'occupation dans le rseau de connexion et on met jour la mmoire image RCX. On met ensuite en Standby le Cofidec du demandeur et on met jour la table d'occupation des voies. On passe l'tat repos (tat de
boucle =0).On rinitialise son texte d'quipement.

Etat faux appel Demand : Si on dtecte le raccroche du ct demand ; on effectue les mmes actions que le
cas de l'tat faux appel Demandeur .
Voir Annexe N10

Sujet7.CPP
Il dcrit la fonction slection quipement appele par le programme principal. Pour cela il utilise la bibliothque
interf.h .Si on se confre aux fonctions de l'unit de commande, ce programme joue le rle de la fonction
traduction. A un Numro de Dsignation il associe un Numro d'quipement.
Voir Annexe N11

Sujet8.CPP
Le sujet8.CPP utilis par le programme principal, joue le rle de la fonction sonnerie (quipement) et retour
d'appel (quipement).
Voir Annexe N12

Sujet9.CPP
Il traite la conversation entre le demandeur et le demand dans les 2 sens et assure aussi la fonction taxation.
Voir Annexe N13
1.2.2 - Le programme principal : COMLOCAL.CPP
Le but ce programme est l'tablissement d'une communication locale. Pour cela le logiciel va scruter en boucle
les mots d'tats des contextes d'quipements, et en fonction de chaque mot d'tat il va effectuer une srie de
tests et/ou d'action en utilisant les modules (programmes) dcrits plus haut. L'obtention du fichier
COMLOCALE.exe intervient aprs avoir fait le lien entre les diffrents sous programmes et le programme
principal nomm COMLOCALE.CPP.
Logiquement on obtient ce graphique
Comlocale.exe

Comlocale.cpp
Modules.cpp
Interf.cpp
Sujet4.cpp
Sujet5.cpp
Sujet6.cpp
Sujet7.cpp
Sujet8.cpp
Sujet9.cpp
Voir Annexe N14
Chapitre 2 :
Excution du logiciel :
Avant toute chose il faut :

Alimenter la maquette

Brancher les postes

Relier la maquette au PC grce au port COM

lancer le logiciel, en double-cliquant sur l'icne du fichier excutable (le logiciel ne pourra pas s'excuter tant que
l'ETD500 n'est pas dtect).
2.1 - DEMARRAGE DU LOGICIEL
Si la maquette est dtecte on l'image suivante qui illustre que le mode par dfaut est Manuel que nous
pouvons changer en mode automatique.

Fig2-1 : ETD500 non initialis


Comme on peut le constater les postes sont en tat initialisation , seuls les IT0 et IT16 sont occups par le
systme, les autres sont libres.
2.2 - CHOIX DU PORT COM
Il convient de configurer l'autocommutateur si on veut tablir la communication.

Par dfaut le port COM utilis est COM1 mais si votre PC contient plusieurs port COM il est ncessaire de
prciser sur quel port, l'ETD500 est branch comme l'indique l'image ci-dessous

Fig2-2 : Choix port COM


2.3- CREATION DES ABONNES
Aprs le choix du port utilis, nous allons crer les abonns. Pour cela on va dans Edition puis Annuaire

Fig2-3 : Cration d'abonns


2.3.1- Annuaire
On aura l'image suivante en cliquant sur Annuaire

Fig2-4 : Annuaire (vide)


2.3.1.1 Editer les abonns
La liste d'abonns est vide, on clique ensuite sur Ajouter pour configurer le premier abonn, on aura
l'illustration suivante :

Fig2-5 : Edition nom Abonn


Sur l'image on voit dj les options qu'on peut configurer, savoir le Nom de l'abonn, le N d'quipement
(adresse physique), le N de dsignation (N d'abonn), catgories de ligne (discrimination) et type de taxation.
On saisit le Nom de l'abonn, ici Mousto tout temps en prenant la prcaution de lui affecter un N
physique ici 0 (Slic 0)

Fig2-6 : Affectation d'un numro d'quipement


2.3.1.2 Choix du plan de numrotation, caractristique de la ligne et type de taxation
Il est important d'opter un plan de numrotation avant d'affecter les numros de dsignation.
L'abonn Mousto aura pour numro 0010 , choisir les caractristique de l'abonn ainsi que le type de
taxation correspondant.

Fig2-7 : Affectation numro d'Abonn


On valide pour prendre crer notre abonn.

Fig2-8 : Annuaire avec un abonn


On effectue la mme procdure pour crer les autres abonns

Fig2-9 : Annuaire (Avec les 4 abonns)


On valide l'annuaire pour le prendre en compte. On peut sauvegarder notre annuaire ainsi crer et le tlcharger
chaque fois qu'on aura besoin.
Aprs validation de l'annuaire il faudrait initialiser le central, et cela peut se faire de faon manuelle ou de
faon automatique .
2.4 - INITIALISATION DU PROGRAMME

La figure suivante montre l'initialisation en cours du central

Fig2-10 : Initialisation du central


2.5 - DEMARRAGE COMPLET DE L'AUTOCOMMUTATEUR

Fig2-11 : Dmarrage ETD500 (Abonns sont en tat raccrochs)


L'image ci-dessus indique que l'autocommutateur est prt fonctionner. En effet on peut constater que les postes
sont passs au vert ce que confirme l'UR en indiquant Raccrocher comme tat des postes. Le rseau de
connexion quand lui indique que tous les IT sont libres sauf les IT0 et IT16 bloqus par le systme,
respectivement pour la synchronisation et la signalisation.
2.6 - DETECTION DU DECROCHAGE ET AFFECTATION DES IT
Que se passe t-il visiblement quand un abonn dcroche son combin ?

Selon ses caractristiques, le rseau de connexion lui affecte par dfaut le premier IT disponible.

Fig2-12 : Affectation d'un IT un Abonn


L'abonn affect au SLIC 2 a dcroch, l'IT 1 qui est le premier sur la liste des IT libre l'a t affect. Son tat
pass de l'tat Raccrocher (25) l'tat dialtone (2) tonalit d'invitation numroter.
3.7 - SONNERIE
Si un abonn quelconque appelle un autre que doit-on observer ?

Par exemple sur l'image suivante l'abonn affect au SLIC1 sollicite celui du SLIC0 , L'IT1 et l'IT2 sont
respectivement occups par le demandeur et le demand. Le demandeur sur l'image est en ETAT 13 c'est-dire en retour d'appel alors que le combin du demand sonne ETAT 32 .

Fig2-13 : Un abonn en tat sonnerie


3.8 - CONVERSATION

Si l'abonn affect au SLIC0 dcroche son combin, le demandeur et le demand changent d'tat et passent
tous l'tat dcroch (26) qui correspond la conversation. Les ITs sont maintenus jusqu' la libration de la
liaison.

Fig2-14 : Conversation
CONCLUSION GENERALE
Dans le cadre du travail qui nous a t confi consistant tudier et programmer l'autocommutateur
pdagogique temporel : ETD500, nous avons t amens dans un premier temps faire une tude thorique qui

traite des concepts gnraux de la commutation temporelle en gnral et de la description matrielle de


l'autocommutateur pdagogique ETD500
Dans un deuxime temps il a fallu raliser une communication locale avec l'ETD500, s'est essentiellement base
sur l'laboration des programmes nous permettant d'tablir une communication locale avec la maquette ETD 500
dans un langage de programmation spcifique le C++.
En effet durant notre travail de recherche nous avons eu a complt et crire les codes sources des tapes et
le programme principal permettant l'tablissement d'une communication locale ainsi que les bibliothques
permettant de faire fonctionner ces programmes a partir des directives qui nous ont t donn dans le document
pdagogique de l'autocommutateur ETD 500. A noter aussi l'laboration d'un algorithme permettant de dcrire les
tapes d'tablissement (prslection, rception des chiffres, analyse, etc.) d'une communication locale selon la
maquette.
Les rsultats que nous avons obtenus la fin de nos travaux de recherches ne sont pas ngligeables. En effet
toutes les bibliothques sont sans erreur et ainsi que certains modules.
Dans l'accomplissement de nos travaux c'est--dire l'tablissement de la communication locale travers la
maquette ETD 500 nous nous sommes confronts pas mal de problmes. Les problmes sont plus de l'ordre
logistique, les outils de programmation qu'on utilisait, pour la plupart ne prenaient pas en compte certaines
bibliothques. D'autres problmes sont lis du fait que l'cole n'a pas les documents des dernires mises jour
de l'quipement.
Rsultat d'une rflexion et d'une exprience pdagogique de plusieurs annes, le commutateur ETD500 est
utilis en enseignement. Il favorise l'assimilation des connaissances acquises lors des cours magistraux
d'introduction aux tlcommunications. L'architecture matrielle du commutateur peut voluer grce au circuit
logique reconfigurable qui hberge les fonctions essentielles. Les autocommutateurs ETD 500 sont quips
d'interfaces rseau standards ETSI/UIT-T (notamment G703, I431 et G732), il est donc possible de raccorder
jusqu' 99 autocommutateurs sur une structure anneau. Cette structure permet d'tudier les connexions inter
autocommutateurs or nous, nos travaux de recherche se sont focaliss sur l'tablissement d'une
communication locale , donc l'avenir ceux qui travailleront sur cet quipement (notamment les populations
d'ingnieur technique, tlinformatique et conception) pourraient dvelopper des programmes permettant les
appels distants c'est--dire inter autocommutateur, ils pourront aussi dvelopper des programmes ralisant les
certaines fonctions que nous n'avons pas abord telles que : la confrence trois, mise en attente, etc.
Pour pouvoir atteindre ces objectifs et orientations cits prcdemment nous pouvons suggrer a l'ESMT de :

S'acqurir les mises jour de la documentation des programmes de la maquette, car ceci a t l'un de nos
problmes principaux rencontrs et de tous les outils ncessaires permettant une bonne exploitation de la
maquette pdagogique.

Renforcer l'enseignement de la programmation au cycle IGTT technique.


Au terme de nos travaux de recherche essentiellement bass sur la commutation temporelle, vu les outils que
nous avons utiliss pour raliser notre travail, nous concluons en affirmant avec certitude que de nos jours les
tlcommunications et l'informatique sont insparables.
Bibliographie
[1] ETD 500 010 : Guide technique
[2] ETD 500 030 : Manuel de rfrence Principes de la commutation numrique
[3] ETD 500 040 : Manuel de travaux pratiques
[4] COURS ESMT : BASES de la COMMUTATION TEMPORELLE (BCT), anne 2007
[5] COURS ESMT : BASE de TRANSMISSION NUMERIQUE (BTNU)
[6] Claude Delannoy (2004), Programmer langage en C++ , N9138, 5ieme dition
Webographie :
[7] http://www.didalab-didactique.fr/2008/achat/produit_details.php?id=572
[information sur ETD500] Consult en Juillet 2009
[8] www.patrimoine-de-france.org/mots-neo-0-2721.html [Commutation]Consult en Juillet 2009
[9] http://www.aconit.org/histoire/colloques/chi04 [historique des autocoms] Consult en

Juillet 2009
[10] http://fr.wikipedia.org/wiki/Compression_de_donn%C3%A9es [compression]
http://fr.wikipedia.org/wiki/Num%C3%A9risation [Numrisation]
http://fr.wikipedia.org/wiki/Commutateur_t%C3%A9l%C3%A9phonique
[commutateur] consult en Juillet 2009
ANNEXES :
ANNEXE 1 : Programme en C++ de la bibliothque T2000.H
//fichier:"t2000.h"
#ifndef t2000
#define t2000
#include <iostream.h>
#include <time.h>
//-----------------------------------// caractristiques gnrales
//-----------------------------------#define NB_MIC 1
#define VT_SILEN 0 //Mic mission
#define VT_INVIT 1
#define VT_RETAP 2
#define OCCUP 3
#define SUP_VT 31 //numro vt
#define NB_RNC 3
//diverses
#define NON_AFFECTE -1
#define TOUS_RNC_OCCUPES -1
#define COM_LOCAL -1
#define NB_CHIF_NUM 4
/*Nb de chiffres du numro*/
#define RING 1
/*temps en secondes de sonnerie*/
#define NO_RING 2
/*temps en sec arrt sonnerie */
#define TIME_OUT 20
/*temps en secondes de times out*/
#define TIMEOUT_DISTANT 2
/* temps en secondes de time out distant*/
//constantes hard
#define ADBASE 0*700
#define NB_VOIE 32
#define NB_EQUIPEMENT 4
#define DEBUT_VT_LOCALE 4
#define FIN_VT_LOCALE 15
#define DEBUT_VT_EXTERNE 17
#define FIN_VT_EXTERNE 31
//codes des fonctions
#define ATTENTE 0<<5
//Dcalage gauche de 5 bits
#define LECTEUR_JONCTEUR 1<<5
#define SONNERIE_ON 3<<5
#define SONNERIE_OFF 2<<5
#define AFFECTE_CODEC 4<<5
#define ECRIRE_MCM 5<<5
#define LECTURE_RNC 7<<5
//types prdfinis
struct Tnum {
int nb_chif; //Nb de chiffres reus
int tab_chif[4]; //stockage chiffres reus
};
enum ej {
raccroche,
decroche
};
enum es {
sonnerie_off,
sonnerie_on
};

enum etat_vt {
libre,
affectee,
reservee_system
};
enum etat_rnc {
locale,
externe
};
enum discris { //caractristique abonnement usager
spe_depart,
spe_arrivee,
mixte,
hors_service
};
enum etats_no_compose {
no_premier_chiffre,
no_non_fini,
no_distant,
no_inexistant,
no_local_existant
};
enum etats_poste {
repos,
preselection,
num_chif1,
num_chif2,
faux_app_deur,
select_de,
ra_deur,
son_de,
conv_deur,
conv_de,
faux_app_de
};
struct Ttab_interne {
enum ej etat_joncteur;
enum es etat_sonnerie;
int no_vt_affectee;
};
struct Ttab_synthese {
etats_poste etat_poste;
discris discri_poste;
int appel_distant; /* utilise par les communication distantes*/
int no_de_telephone;
Tnum no_compose;
int no_VT_affectee;
int no_RNC_affectee;
int no_VT_du_distant; // n de VT du correspondant s'il existe
clock_t time_out;
};
#endif //t2000
ANNEXE2 : Programme en C++ de la bibliothque INTERF.H
//fichier : interf.h
#ifndef interf
#define interf
#include "t2000.h"
/*adresse des lments des registres du PPI. */
#define PORTA 0*00
#define PORTB 0*01
#define PORTC 0*02
#define RC_PPI 0*03
/* Modes du PPI pour le registre RC_PPI*/
const unsigned char PPI_MODE_PORTA_ENTREE=0*10;
const unsigned char PPI_MODE_PORTB_ENTREE=0*02;
const unsigned char PPI_MODE_PORTCSUP_ENTREE=0*08;
const unsigned char PPI_MODE_PORTCINF_ENTREE=0*01;

const unsigned char PPI_MODE_PORTC_ENTREE=PPI_MODE_PORTCSUP_ENTREE|


PPI_MODE_PORTCINF_ENTREE;
/*Active le mode en RC_PPI*/
const unsigned char PPI_MODE_ACTIVATION_MODE=0*80;
const unsigned char PPI_MODE_ECRIRE_PORTS_AB=PPI_MODE_PORTC_ENTREE|
PPI_MODE_ACTIVATION_MODE;
/*Signification des bits du port C*/
/*Bit 1 quand l'affectation de VT valide*/
const unsigned char PORTC_BIT_AFFECTE_VT_DONE=0*02;
/* Bit dcrivant l'tat joncteur (0=raccroche) */
const unsigned char PORTC_BIT_EJ =0*04;
/* Bit 1 quand un chiffre est prsent dans le RNC interroge */
const unsigned char PORTC_BIT_PRESENCE_DIGIT=0*08;
/*Le chiffre frapp est present sur C7~C4*/
const unsigned char PORTC_MASK_DIGIT =0*0F0;
/*signification des bits du port B*/
void init_interface();
void mettre_en_sonnerie(int no_equipement);
void arret_sonnerie(int no_equipement);
bool etat_joncteur(int no_equipement);
void affecte_codec(int no_equipement, int voie);
void desaffecte_voie_de_codec(int voie);
void connexion(int voie_e, int voie_s);
int lecture_RNC(int no_rnc);
void control_ppi(unsigned char r_c);
void ppi_write(int a, int b, int c);
int ppi_read(int port_number);
void attente_fonction(int no_equipement);
void fct_strobe(int a, int b, int c);
#endif
ANNEXE3 : Programme en C++ de la bibliothque Modules.H
//fichier "modules.h
//Contient les constantes et fonctions ncessaires "modules.cpp".
#ifndef_MODULES
#define_MODULES
#include <dos.h>
#include "t2000.h"
#define INTR 0X08
/*vecteur d'interruption horloge, 18,6 fois par seconde*/
#define INTR5 8+5
/*vecteur d'interruption 5 pour la reception des chiffres MF*/
void install_new_timer();
void restor_old_timer();
void install_new_irq5();
void restor_old_irq5();
void interrupt(new_irq5)(...);
void interrupt(new_timer)(...);
void init_tables();
void affiche_etats();
#endif
ANNEXE4 : Programme en C++ de la bibliothque ABONNE.H
#ifndef __abonne_h
#define __abonne_h
typedef struct{
char Nom[20];
char numero[10];
BYTE n_equipement;
void (*action)();
} Abonne;
int GestionAbonne(int n_equip);
void DeconnectPCM(int adr);
void connectRcx(int n_chip,int mode);
#endif
ANNEXE 5 : Programme en C++ de la bibliothque SUJET.H
// fichier "sujet.h"
//contient les constantes et fonctions ncessaires au sujets 4 9 (tablissement d'une communication locale)
#ifndef_SUJETS

#define_SUJETS
#include "t2000.h"
//-#endif
ANNEXE 6 : INTERF.CPP
#include<stdio.h>
#include"interf.h"
#include<dos.h>
void init_interface(){
int i;
control_ppi(PPI_MODE_ECRIRE_PORTS_AB);
ppi_write(0, 0, 0);
for(i=0; i<NB_EQUIPEMENT; i++){
arret_sonnerie(i);
}
for(i=0; i<NB_VOIE; i++){
//Dsactivation des Codecs:
desaffecte_voie_de_codec(i);
//RAZ de la mmoire MCM du RCX:
connexion(VT_SILEN, i);
}
}
//ppi_rcc:registre de configuration du PPI
void control_ppi(unsigned char ppi_rc)
{
outportb (ADBASE+RC_PPI,(unsigned char) ppi_rc);
}
//lecture ou criture sur le PPI en fonction de registre de contrle
void ppi_write(int a, int b, int c)
{
outportb (ADBASE+PORTA, (unsigned char)a);
outportb (ADBASE+PORTB, (unsigned char)b);
outportb (ADBASE+PORTC, (unsigned char)c);
}
int ppi_read(int port_number)
{
int coucou;
coucou=inportb(ADBASE+port_number);
//cout<<"Coucou=portC="<<coucou<<"\n";
return(coucou);
}
//-----------------------------------------void attente_fonction(int numero_equipement)
{
//var locale
int a;
a=0;
a|=(numero_equipement & 0*03);
ppi_write(a, 0, 0); //info utile sur A
}
ANNEXE 7 : Modules.cpp
//Fichier "modules.cpp"
//Contient la dfinition de fonctions appeles par le programme principal
//et les programmes d'interruptions.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<dos.h>*#include"interf.h"
#include"modules.h" */
/* Variables dfinies ailleurs(dans le programmes principal); ce sont en
quelque sorte les variables globales du logiciel:*/
extern char*mess_test;
extern int COUNT_TICK, SEC, NB_AUTOC, tab_vt[], tab_rcx[], tab_rnc[];
extern Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des tats des quipements
extern int tab_tax[NB_EQUIPEMENT]; //table de taxation
void interrupt(*old_timer)(...);//c'est une variable et non une fonction:
//donc ne pas mettre dans fichier "*.h"

void interrupt(*old_irq5)(...);
//**********************************************************************
void install_new_timer()
{
//save the old interrupt vector
old_timer=_dos_getvect(INTR); // sauvegardede l'ancien handler
//installation du nouveau handler d'interruption
disable();
setvect(INTR, new_timer);
/* dmasquage de l'interruption au niveau du 8259:
ceci consiste forcer 0 le 1er bit partir de la droite de
l'octet d'adresse 0*21, ceci dmasque l'IRQ0;
on lit donc d'abord l'octet en 0*21, puis on fait le AND avec
l'octet 1111 1110 (soit le complment de 0000 0001 soit ~0*01)*/
int c=importb(0*21);
c&= ~0*01;
outportb(0*21,c); //dmasquage de l'IRQ0(horloge tick 18,6 par second)
enable();
}
//******************************************************************
//******************************************************************
void install_new_irq5()
{
/*save the old interrupt vector*/
old_irq5=_dos_getvect(INT5); // sauvegardede l'ancien handler
/*installation du nouveau handler d'interruption */
disable();
setvect(INTR, new_irq5);
/* dmasquage de l'interruption au niveau du 8259:
ceci consiste forcer 0 le 6me bit partir de la droite de
l'octet d'adresse 0*21, ceci dmasque l'IRQ5;
on lit donc d'abord l'octet en 0*21, puis on fait le AND avec
l'octet 1101 1111 (soit le complment de 0010 0000 soit ~0*20) */
int c=importb(0*21);
c&= ~0*20;
outportb(0*21,c); //dmasquage de l'IRQ5(mise 0 du bit de masquage IRQ5)
enable();
}
//******************************************************************
void restor_old_timer()
{
disable();
_dos_sevect(INTR, old_timer);
enable();
}
//******************************************************************
//******************************************************************
void restor_old_IRQ5()
{
disable();
_dos_sevect(INTR5, old_IRQ5);
enable();
}
//******************************************************************
void interrupt(new_timer)(...)// handler d'interrupt. qui compte le temps
{
/*comptage du temps
L'horloge temps rel provoque 18,6 interuptions par seconde
dsactivation interruptions pendant l'xecution du programme */
disable();
COUNT_TICK++;
//cration d'un compteur de secondes.
if(COUNT_TICK>=18) {
SEC=SEC++%3600;//modulo 3600 (1heure)
COUNT_TICK=0; }
//-- des choses installer ici suivant les TP..
//acquitement de l'interruption et ractivation des interruptions

outportb (0*20, 0*20);


enable();
}
//****************************************************************
void init_tables() {
// initialisation des contextes d'quipements:
for( int i=0; i<NB_EAQUIPEMET; i++)
{
contextes[i].etat_poste=repos;
contextes[i].discri_poste=mixte;
contextes[i].appel_distant=NON_AFFECTE;
contextes[i].no_de_telephone=NB_AUTOC+i;
contextes[i].no_compose.nb_chif=0;
for(int j=0; j<4; j++)contextes[i].no_compose.tab_chif[i]=0;
contextes[i].no_VT_affectee=NON_AFFECTE;
contextes[i].no_RNC_affecte=NON_AFFECTE;
contextes[i].no_VT_du_distant=NON_AFFECTE;
contextes[i].time_out=0;
}
//initialisation de la table d'occupation des voies temporelles:
for(int i=0; i<SUP_VT; i++)tab_vt[i]=libre;
tab_vt[0]=reservee_systeme;
tab_vt[1]=reservee_systeme;
tab_vt[2]=reservee_systeme;
tab_vt[3]=reservee_systeme;
tab_vt[16]=reservee_systeme;
//initialisation de la mmoire image du rseau de connexion
for(int i=0; i<31; i++) tab_rcx[i]=0;
//initialisation de la table d'occupation des RNC:
for (int i=0; i<2; i++)tab_rnc[i]=dispo;
//initialisation de la table de taxation:
for (int i=0; i<NB_EQUIPEMENT; i++)tab_tax[i]=0;
}
void affiche_etats(){
//affichage tats quipement
char*msg_etat_poste[11]= {
"repos ","preselection",
"num_chif1 ","num_chif2 ",
"faux_app_dr ","select_de ",
"ra_deur ","son_de ",
"conv_deur ","conv_de ",
"faux_app_de ",
};
gotoxy(1,3);
cout<<"equipt n0 equipt n1 equipt n2 equipt n3 \n";
gotoxy(2,4);
for(int i=0; i<NB_EQUIPEMENT; i++) cout<<"n"<<contextes[i].no_de_telephone<<" ";
gotoxy(1,6);
cout<<"Etats des postes:";
gotoxy(3,7);
//clreol();
cout<<msg_etat_poste[(int) contextes[0].etat_poste];
cout<<msg_etat_poste[(int) contextes[1].etat_poste];
cout<<msg_etat_poste[(int) contextes[2].etat_poste];
cout<<msg_etat_poste[(int) contextes[3].etat_poste];
gotoxy(1,9);
cout<<"RNC n:\n ";
cout<< contextes[0].no_RNC_affecte<<" ";
cout<< contextes[1].no_RNC_affecte<<" ";
cout<< contextes[2].no_RNC_affecte<<" ";
cout<< contextes[3].no_RNC_affecte<<" ";
gotoxy(1,12);
cout<<"affichage des chiffres reus: \n";
for(int i=0; i<4; i++)cout<<contextes[0].no_compose.tab_chif[i];
cout<<" ";
for(int i=0; i<4; i++)cout<<contextes[1].no_compose.tab_chif[i];
cout<<" ";

for(int i=0; i<4; i++)cout<<contextes[2].no_compose.tab_chif[i];


cout<<" ";
for(int i=0; i<4; i++)cout<<contextes[3].no_compose.tab_chif[i];
gotoxy(1,15);
cout<<"Mmoire image du RCX: \n";
for(int i=0; i<16; i++)cout<<tab_rcx[i]<<" ";
cout<<"\n";
for(int i=16; i<32; i++)cout<<tab_rcx[i]<<" ";
gotoxy(1,19);
cout<<"Mmoire d'occupation des voies temporelles: \n";
for(int i=0;i<16; i++)cout<<tab_vt[i]<<" ";
cout<<"\n";
for(int i=16;i<32; i++)cout<<tab_vt[i]<<" ";
gotoxy(1,23);
cout<<"Mmoire de taxation: ";
for(int i=0;i<NB_EQUIPEMENT;i++)cout<<tab_tax[i]<<" ";
cout<<"\n MESSAGE DE TEST: ";
cout<<mess_test;
}//affiche_etats
ANNEXE 8 : SUJET4.CPP
//PROGRAMME SUJET4
#include <conio.h>
#include <stdio.h>
#include "interf.h"
#include "sujets.h"
extern Ttab_synthese contextes[NB_EQUIPEMENT];
extern etat_vt tab_vt[32]; //table d'occup des VT
extern etat_rnc tab_rnc[3]; //table d'occup des 3 RNC
extern int SEC; //compteur des secondes
extern tab_rcx[32];
int rech_vt()
{
int i=-1;
for (i=4;i<=30;i++)
if(tab_vt[i]==libre)return(i); //on sort avec le n de VT
return(i); //on sort avec -1
}
int rech_rnc()
{
int i=-1;
for(i=0;i<=2;i++)
if(tab_rnc[i]==dispo)
return(i); //on sort avec le n de RNC
return(-1);
void affect_vt(int VT_choisie)
{//marquage VT occupe
tab_vt[VT_choisie]=affectee;
}
void affect_rnc(int RNC_choisi)
{//marquage RNC occupe
tab_rnc[RNC_choisi]=occupe;
}
void presel(int equip)
{
//test si une VT Libre et affectation(marquage):
//sinon on reste en tat prselection (attente).
int VT_DR = rech_vt();
if(VT_DR!=-1)
{
affect_vt(VT_DR); //marquage dans tab_vt
affecte_codec(equip,VT_DR); //activation cofidec
contextes[equip].no_Vt_affectee = VT_DR;
}
else return; //on sort:le poste reste a l'etat "preselection"
//test si LES DISCRIS sont bonnes:
if((contextes[equip].discri_poste==spe_arrivee)||(contextes[equip].discri_poste==hors_service))
{

//renvoien occupation avec marquagefaux_app_deur


connexion(VT_OCCUP,VT_DR);
//mise a jour memoire imageRCX.
tab_rcx[VT_DR]=VT_OCCUP;
contextes[equip].etat_poste=faux_app_deur;
return; //on sort de la fonction
}
//test si un RNC dispo et affectation:
int RNC = rech_rnc();
if(RNC!=-1)
{
contextes[equip].no_RNC_affecte = RNC;
affect_rnc(RNC); //marquage rnc occupe
}
else
{//pas de RNC:
//renvoi en occupation avec marquagefaux_app_deur
connexion(VT_OCCUP,VT_DR);
//mise en memoire image RCX.
tab_rcx[VT_DR]=VT_OCCUP;
contextes[equip].etat_poste=faux_app_deur;
return; //on sort de la fonction
}
//connexion au RNC affecte et envoi d'IN:
connexion(VT_DR,RNC+1);
connexion(VT_INVIT,VT_DR);
//mise en memoire image RCX:
tab_rcx[RNC+1]=VT_DR;
tab_rcx[VT_DR]=VT_INVIT;
//lancement tempo de 20 secondes:
contextes[equip].time_out=(SEC+20)%3600;
//marquage du nouvel etat:
contextes[equip].etat_poste=num_chif1;
} //presel
ANNEXE 9 : SUJET5.CPP
//Programme sujet 5
#include<conio.h>
#include<stdio.h>
#include"interf.h"
#include"sujets.h"
extern Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des etats des equipements
extern etat_vt tab_vt[32]; //table d'occup des VT
extern etat_rnc tab_rnc[3]; //table d'occup des 3 RNC
extern int SEC; //compteur des secondes
extern tab_rcx[32]; //memoire image du rcx
void recept_chif1(int equipt)
{
//test tempo de 20 secondes:
clock_t tempo=contextes[equipt].time_out;
int rnc=contextes[equipt].no_RNC_affecte;
if(SEC>=tempo)
{
//liberation RNC et cxion a l'occup
contextes[equipt].no_RNC_affecte=NON_AFFECTE;
tab_rnc[rnc]=dispo;
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_OCCUP;
connexion(contextes[equipt].no_VT_affectee,VT_SILEN);
//mise a jour memoire image du rcx:
tab_rcx[rnc+1]=VT_SILEN;
//desactivation temporisation:
contextes[equipt].time_out=0;
//marquage nouvel etat:
contextes[equip].etat_poste=faux_app_deur;
}//tempo
if(etat_joncteur(equipt)==false) //raccrochage

{
//liberation RNC
contextes[equipt].no_RNC_affecte=NON_AFFECTE;
tab_rnc[rnc]=dispo;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt].no_VT_affectee]=libre;
//raz memoire MCM du rcx:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//desactivation temporisation
contextes[equipt].time_out=0;
//marquage nouvel etat:
contextes[equip].etat_poste=repos;
} //etat_joncteur
//test si l'on a recu un chiffre dans le pg d'interrupt new_int5:
if(contextes[equipt].no_compose.nb_chif==1)
{ //il est dans tab_chif[1];
//couper la tonalit:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//marquage du nouvel etat:
contextes[equip].etat_poste=num_chif2;
} //chif reu
} //recept_chif1
void recept_chif2(int equipt)
{
//test tempo de 20 secondes(idem recept_chif1):
clock_t tempo=contextes[equipt].time_out;
int rnc=contextes[equipt].no_RNC_affecte;
if(SEC>=tempo)
{
//liberation RNC et cxion a l'occup
contextes[equipt].no_RNC_affecte=NON_AFFECTE;
tab_rnc[rnc]=dispo;
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_OCCUP;
connexion(contextes[equipt].no_VT_affectee,VT_SILEN);
//mise a jour memoire image du rcx:
tab_rcx[rnc+1]=VT_SILEN;
//desactivation temporisation:
contextes[equipt].time_out=0;
//marquage nouvel etat:
contextes[equip].etat_poste=faux_app_deur;
}//tempo
//test raccrochage DEUR(idem recept_chif1):
if(etat_joncteur(equipt)==false) //raccrochage
{
//liberation RNC
contextes[equipt].no_RNC_affecte=NON_AFFECTE;
tab_rnc[rnc]=dispo;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt].no_VT_affectee]=libre;
//raz memoire MCM du rcx:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;

//desactivation temporisation
contextes[equipt].time_out=0;
//marquage nouvel etat:
contextes[equip].etat_poste=repos;
}
//test si l'on a recu un chiffre dans le pg d'interrupt new_int5:
if(contextes[equipt].no_compose.nb_chif==4)
{ //numerotation termine
//liberation RNC
contextes[equipt].no_RNC_affecte=NON_AFFECTUE;
tab_rnc[rnc]=dispo;
//mise a jour memoire du rcx:
connexion(contextes[equipt].no_VT_affectee,VT_SILEN);
//mise a jour memoire image du rcx
tab_rcx[rnc+1]=VT_SILEN;
//desactivation temporisation:
contextes[equipt].time_out=0;
//marquage du nouvel etat select_de:
contextes[equip].etat_poste=select_de;
contextes[equipt].no_compose.nb_chif=0; //raz cpt chif
}
} //recept_chif2
ANNEXE 10 : SUJET6.CPP
//Programme sujet 6
#include<conio.h>
#include<stdio.h>
#include"interf.h"
extern Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des etats des equipements
extern etat_vt tab_vt[32]; //table d'occup des VT
extern etat_rnc tab_rnc[3]; //table d'occup des 3 RNC
extern int SEC; //compteur des secondes
extern tab_rcx[32]; //memoire image du rcx
void faux_appel1(int equipt)
{
//traitement du faux appel du demandeur:
if(etat_joncteur(equipt)==false)//racrochage
{
//raz memoire mcn du rcx:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt].no_VT_affectee]=libre;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
//par securite raz de la zone reception chiffres
//sinon il peut y avoir des surprises au decrochage suivant!
contextes[equipt].no_compose.nb_chif=0;
for(int j=0;j<4;j++)contextes[equipt].no_compose.tab_chif[j]=0;
//marquage nouvel etat
contextes[equip].etat_poste=repos;
//desactivation temporisation
contextes[equipt].time_out=0;
}
}//faux appel1
void faux_appel2(int equipt)
{
//traitement du faux appel du demand:
//a voir:pour l'instant memes actions sans doute que pour le demandeur
if(etat_joncteur(equipt)==false)//racrochage
{
//raz memoire mcn du rcx:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;

//effacement dans le table d'occupation des voies temporelles:


tab_vt[contextes[equipt].no_VT_affectee]=libre;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
//par securite raz de la zone reception chiffres
//sinon il peut y avoir des surprises au decrochage suivant!
contextes[equipt].no_compose.nb_chif=0;
for(int j=0;j<4;j++)contextes[equipt].no_compose.tab_chif[j]=0;
//marquage nouvel etat
contextes[equip].etat_poste=repos;
//desactivation temporisation
contextes[equipt].time_out=0;
}
}//faux appel2
ANNEXE 11 : SUJET7.CPP
// Programme sujet 7
#include "interf.h"
extern Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des etats des equipements
extern etat_vt tab_vt[32]; //table d'occup des VT
extern etat_rnc tab_rnc[3]; //table d'occup des 3 RNC
extern int SEC; //compteur des secondes
extern tab_rcx[32]; //memoire image du rcx
extern char *mess_test; //pour affichage
void renvoi_occ_deur(int equipt)
{
connexion(VT_OCCUP,contextes[equ].no_VT_affectee);
//mise a jour memoire image du rcx
tab_rcx[contextes[equ].no_VT_affectee]=VT_OCCUP;
//marquage nouvel etat
contextes[equ].etat_poste=faux_app_deur;
}//renvoi_occ_deur
int rech_vt_de()
{
int i=-1;
for(i=4;i<=30;i++)
if(tab_vt[i]==libre)return(i);//on sort avec le nde VT
return(i); //on sort avec-1
}
void selection(int equipt)
{
//analyse du numero reu(4 hciffres dans le tableau tab_chif[equipt]du DEUR:
//contextes[equipt].no_compose.tab_chif[i]
//contextes[equipt].no_compose.nb_chif doit contenir 4(nbre de chiffre reu)
//transformer les 4 chiffres en un entier:
int m=contextes[equipt].no_compose.tab_chif[0]; //chiffre millier
int c=contextes[equipt].no_compose.tab_chif[1]; //chiffre centaine
int d=contextes[equipt].no_compose.tab_chif[2]; //chiffre dizaine
int u=contextes[equipt].no_compose.tab_chif[3]; //chiffre unite
int norecu=1000*m+100*c+10*d+u;
//mess_test="traduction faite dans la selection";
//recherche du nd'equipement correspondant:
int equ_de=-1;
for(i=0;i<4;i++)
{
if(norecu==contextes[i].no_de_telephone)
{
equ_de=i;
break;
}
}//for
if(equ_de==-1)renvoi_occ_deur(equipt);
else
{ //on a trouve le numero d'equipementdu DE(mis dans equ_de)
if (contextes[equ_de].etat_poste!=repos)renvoi_occ_deur(equipt);
else

{ if((contextes[equ_de].discri_poste==spe_depart)||(contextes[equ_de].discri_poste==hors_service))
renvoi_occ_deur(equipt);
else
{
//le DE est au reposet ok en discirs:lui chercher une VT:
int VT_DE=rech_vt_de();
if(VT_DE==-1)renvoi_occ_deur(equipt);
else
{
tab_vt[VT_DE]=affectee;//marquer la vt occupee dans tab_vt
contextes[equ_de].etat_poste=son_de; //marquer le DE pris contextes[equipt_de].etat_poste=ra_deur; //marquer
le deur en retour d'appel
affecte_codec(equipt,VT_DE); //activer le cofidec du DE
//remplissage des contextes DEUR et DE (recopiage info sur les VT):
contextes[equ_de].no_VT_affectee=VT_DE;
contextes[equ_de].no_VT_du_distant=contextes[equ_de].no_VT_affectee;
contextes[equ_de].no_VT_du_distant=VT_DE;
//envoi de la sonnerie sur la ligne du DE:
mettre_en_sonnerie(equ_de);
//envoi tonalite de retour d'appel vers le DEUR,
//et mise a jour image RCX:
connexion(VT_RETAP, contextes[equipt].no_VT_affectee);
tab_rcx[contextes[equipt].no_VT_affectee]=VT_RETAP;
//initialisation des tempos pour le DEUR et le DE
contextes[equipt].time_out=(SEC+120)%3600; //2mn max de sonnerie
contextes[equ_de].time_out=0; //initialisation compteur
//voir le comptage precis du temps pour l'etat"son_de"dans la fonction
//new timer()(module modules.cpp):le "time_out" du DE est incremente de 18 coups/seconde
} //VT_DE
} //test discri
}//test repos
} //else equ_de
} //selection
ANNEXE 12 : Sujet8.CPP
// Programme sujet 8
//traitement al'etat "ra_deur" pour le DEUR et "son_de" pour le DE
//a faire
#include "interf.h"
extern Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des etats des equipements
extern etat_vt tab_vt[32]; //table d'occup des VT
extern etat_rnc tab_rnc[3]; //table d'occup des 3 RNC
extern int SEC; //compteur des secondes
extern tab_rcx[32]; //memoire image du rcx
extern char *mess_test; //pour affichage
extern int tab_tax[NB_EQUIPEMENT]; //table de taxation
void sonnerie(int equipt)
{
//cadencement de la sonnerie
//ds le programme d'interruption new timer (voir modules.cpp)est
//installe l'incrementation du time_out du DE(16,8 fois par seconde) pour
//les equipementsse trouvant dans l'etat "son_de"
if(contextes[equipt].time_out==1)
{
mettre_en_sonnerie(equipt);
}
if(contextes[equipt].time_out==20)
{
arret_sonnerie(equipt);
}
if(contextes[equipt].time_out>=60)
{
contextes[equipt].time_out=0;
} //sonnerie
void ret_appel(int equipt)
{
/*3 evenements peuvent se presenter:
raccrachage DEUR en cours de sonnerie

fin de tempo 2 minutes


dcrochage du demande en sonnerie*/
//a)raccrochage du DEUR en cours de sonnerie
if(etat_joncteur(equipt)==false) //raccrochage DEUR
{
//mess_test=raccrochage DEUR en sonnerie
//arreter la sonnerie du demande et remise au repos de DE
//trouver le DE(par son numero de VT)
int VT_DE=contextes[equipt].no_VT_du_distant;
int equipt_de=-1;
for(int i=0;i<NB_EQUIPEMENT;i++)
{
if(contextes[i].no_VT_affectee==VT_DE)
equipt_de=i;
} //i
if(equipt_de!=-1)
{ //remise au repos du DE
arret_sonnerie(equipt_de);
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt_de].no_VT_affectee]=libre;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt_de].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt_de].no_VT_affectee=NON_AFFECTE;
contextes[equipt_de].no_VT_du_distant=NON AFFECTE;
//desactivation temporisation
contextes[equipt_de].time_out=0;
contextes[equipt_de].etat_poste=repos;
} //equip_de
else mess_test="Pas trouv le DE en sonnerie!!";
//remise au repos du DEUR:
//raz memoire MCM du RCX:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt].no_VT_affectee]=libre;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
//par securite raz de la zone reception chiffres
contextes[equipt].no_compose.nb_chif=0;
for(int j=0;j<4;j++)contextes[equipt].no_compose.tab_chif[j]=0;
//marquage nouvel etat
contextes[equip].etat_poste=repos;
//desactivation temporisation
contextes[equipt].time_out=0;
} //raccrochage DEUR
//b)fin tempo de 2 minutes
if(SEC>=contextes[equipt].time_out)
{
//debordement 2 secondes
//liberer le DE et renvoyer DEUR en occupation
//trouver le DE(par son numero de VT)
int VT_DE=contextes[equipt].no_VT_du_distant;
int equipt_de=-1;
for(int i=0;i<NB_EQUIPEMENT;i++)
{
if(contextes[i].no_VT_affectee==VT_DE)
equipt_de=i;
} //i
if(equipt_de!=-1)
{ //remise au repos du DE
arret_sonnerie(equipt_de);
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt_de].no_VT_affectee]=libre;

//mise en stand by de son cofidec


desaffecte_voie_de_codec(contextes[equipt_de].no_VT_affectee);
//effacement de vt dans le contexte
contextes[equipt_de].no_VT_affectee=NON_AFFECTE;
contextes[equipt_de].no_VT_du_distant=NON AFFECTE;
//desactivation temporisation
contextes[equipt_de].time_out=0;
contextes[equipt_de].etat_poste=repos;
} //equip_de
else mess_test="Pas trouv le DE en sonnerie!!";
//renvoyer le DEUR au repos
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_OCCUP;
//desactivation temporisation
contextes[equipt].time_out=0;
//marquage nouvel etat
contextes[equipt].etat_poste=faux_app_deur;
}//SEC(2 minutes ecoulees)
//c)tester si decrochage du demend en sonnerie
//trouver le DE(par son numero de VT)
int VT_DE=contextes[equipt].no_VT_du_distant;
int equipt_de=-1;
for(int i=0;i<NB_EQUIPEMENT;i++)
{
if(contextes[i].no_VT_affectee==VT_DE)
equipt_de=i;
} //i
if(equipt_de==-1)
{ //renvoyer le DEUR en occupation
connexion(VT_OCCUP,contextes[equipt].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_OCCUP;
//desactivation temporisation
contextes[equipt].time_out=0;
//marquage nouvel etat
contextes[equipt].etat_poste=faux_app_deur;
mess_test="Pas trouv le DE en sonnerie!!";
} //if equip_de
else
{
if(etat_joncteur(equipt_de)==true)
{ //decrochage DE
arret sonnerie(equipt_de);
contextes[equipt_de].time_out=0;
//activer le cofidec dans le VT choisie:
affecte_codec(equipt_de,contextes[equipt].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//faire la double connexion des VT du DEUR et VT du DE
connexion(contextes[equipt].no_VT_affectee,contextes[equipt].no_VT_du_distant)
connexion(contextes[equipt].no_VT_du_distant,contextes[equipt].no_VT_affectee);
//mettre a jour la memoire image du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=contextes[equipt].no_VT_du_distant;
tab_rcx[contextes[equipt].no_VT_du_distant]=contextes[equipt].no_VT_affectee;
//mettre l'etat du DEUR conv_deur et l'etat du DE conv_de:
contextes[equipt].etat_poste=conv_deur;
contextes[equipt].etat_poste=conv_de;
contextes[equipt].time_out=0;
tab_tax[equipt]++; //une unite de tase a la mise en communication
}//if etat joncteur
}//else
}//ret_appel
ANNEXE 13 : SUJET9.CPP
//Programme sujet9
#include"interf.h"
extern Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des etats des equipements

extern etat_vt tab_vt[32]; //table d'occup des VT


extern etat_rnc tab_rnc[3]; //table d'occup des 3 RNC
extern int SEC; //compteur des secondes
extern tab_rcx[32]; //memoire image du rcx
extern char *mess_test; //pour affichage
voidt_racc_deur(int equipt)
{
if(etat_joncteur(equipt)==false)
{ //racrochage DEUR
//trouver le DE et renvoyer celui-ce en occupation
int VT_DE=contextes[equipt].no_VT_du_distant;
int equipt_de=-1;
for(int i=0;i<NB_EQUIPEMENT;i++)
{
if(contextes[i].no_VT_affectee==VT_DE)
equipt_de=i;
} //i
if(equipt_de!=-1)
{ //renvoi en occupation de DE
connexion(VT_OCCUP,contextes[equipt_de].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt_de].no_VT_affectee]=VT_OCCUP;
//effacements dans contexte du DE
contextes[equipt_de].no_VT_du_distant=NON_AFFECTE;
contextes[equipt_de].time_out=0;
//marquage nouvel etat
contextes[equipt_de].etat_poste=faux_app_deur;
}
else mess_test="Pas trouv le correspondant DE!!";
//puis liberer tout cote DEUR
//raz memoire MCM du RCX:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt].no_VT_affectee]=libre;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacements dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
contextes[equipt].no_VT_du_distant=NON AFFECTE;
contextes[equipt].time_out=0;
//par securite raz de la zone reception chiffres
contextes[equipt].no_compose.nb_chif=0;
for(int j=0;j<4;j++)contextes[equipt].no_compose.tab_chif[j]=0;
//marquage nouvel etat
contextes[equip].etat_poste=repos;
}//if etat_joncteur
} //t_racc_deur
void t_racc_de(int equipt)
{
if(etat_joncteur(equipt)==false)
{ //racrochage DE
//trouver le DEUR et renvoyer celui-ce en occupation
int VT_DEUR=contextes[equipt].no_VT_du_distant;
int equipt_deur=-1;
for(int i=0;i<NB_EQUIPEMENT;i++)
{
if(contextes[i].no_VT_affectee==VT_DEUR)
equipt_deur=i;
} //i
if(equipt_deur!=-1)
{ //renvoi en occupation de DEUR
connexion(VT_OCCUP,contextes[equipt_deur].no_VT_affectee);
//mise a jour memoire image du rcx:
tab_rcx[contextes[equipt_deur].no_VT_affectee]=VT_OCCUP;
//effacements dans contexte du DE

contextes[equipt_deur].no_VT_du_distant=NON_AFFECTE;
contextes[equipt_deur].time_out=0;
//marquage nouvel etat
contextes[equipt_deur].etat_poste=faux_app_deur;
}
else mess_test="Pas trouv le correspondant DEUR!!";
//puis liberer tout cote DE
//raz memoire MCM du RCX:
connexion(VT_SILEN,contextes[equipt].no_VT_affectee);
//mise a jour memoire du rcx:
tab_rcx[contextes[equipt].no_VT_affectee]=VT_SILEN;
//effacement dans le table d'occupation des voies temporelles:
tab_vt[contextes[equipt].no_VT_affectee]=libre;
//mise en stand by de son cofidec
desaffecte_voie_de_codec(contextes[equipt].no_VT_affectee);
//effacements dans le contexte
contextes[equipt].no_VT_affectee=NON_AFFECTE;
contextes[equipt].no_VT_du_distant=NON AFFECTE;
contextes[equipt].time_out=0;
//par securite raz de la zone reception chiffres
contextes[equipt].no_compose.nb_chif=0;
for(int j=0;j<4;j++)contextes[equipt].no_compose.tab_chif[j]=0;
//marquage nouvel etat
contextes[equip].etat_poste=repos;
}//if etat_joncteur
} //t_racc_de
ANNEXE 14: COMLOCALE.CPP
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include"interf.h"
#include"modules.h"
#include"sujets.h"
/************************************
Programme principal "comlocale.cpp
************************************/
//dfinition de variables globales:
int COUNT_TICK, SEC;
Ttab_synthese contextes[NB_EQUIPEMENT]; //tableau des tats d'quipements
int NB_AUTOC=251; //numero du premier quipement
etat_vt[32]; //table d'occupation des voies temporelles
int tab_rcx[32]; //mmoire image du rseau de connexion
etat_rnc[3]; //table d'occupation des 3 RNC
int tab_tax[NB_EQUIPEMENT]; //table de taxation
char*mess_test; pour affichage lors de mise au point des TP
//fin de dfinition des variables globales.

main()
{
cout<<"\n Dbut`n";
init_interface();
COUNT_SEC=0;
SEC=0;
install_new_timer(); //sauvegarde vecteur d'IRQO,
//et installation du nouveau gestionnaire d'interruption new_irq5().
init_tables();
etats_poste etat;
while (!kbhit()) {// le programme s'arrtera ds qu'on frappe une touche clavier
/* scrutation des tats possibles: repos, preselection, num_chif1,num_chif2,
faux_app_deur, select_de, ra_deur, son_de, conv_deur, conv_de, faux_app_de
*/
for (int eq=0; eq<NB_EQUIPEMENT; eq++) {
etat=contextes[eq].etat_poste;
switch (etat)
{
case repos:
if(etat_joncteur(eq)==true) //test dcrochage ligne
contextes[eq].etat_poste=preselection;
break;
case preselection:
presel(eq)
break;
case num_chif1:
recept_chif1(eq);
break;
case num_chif2:
recept_chif2(eq);
break;
case faux_app_deur:

faux_appel1(eq);
break;
case select_de:
selection(eq);
break;
case ra_deur:
ret_appel(eq);
break;
case son_de:
sonnerie(eq);
break;
case conv_deur:
t_racc_deur(eq);
break;
case conv_de:
t_racc_de(eq);
break;
case faux_app_de:
faux_appel2(eq);
break;
default:
cout<<"Erreur: tat non prvu\n";
}// switch
}// for eq
}//kbit()
//On quitte le programme:
/* Restauration de l'ancien gestionnaire old_timer*/
restor_old_timer();
/* Restauration de l'ancien gestionnaire d'IRQ5 */
restor_old_irq5();
cout<<"\n\n Fin du programme.\n";
}//main

TABLE DES MATIERES


Ddicaces.....iRemerciements
...ii
Glossaireiii
Sommaire...iv
Introduction gnrale.1
1re Partie : Etude thorique.....3
Chapitre 1 : Prsentation du cadre d'tude..4
1.1 - Prsentation de l'ESMT5
1.1.1 - Historique..5
1.1.2 - Organisation et fonctionnement5
1.1.2.1 - Organisation ..5
1.1.2.2 - Fonctionnement .6
1.2 - Problmatique...7
1.3 - Contexte de l'tude.....8
Chapitre2 : Gnralit sur la commutation temporelle9
2.1 - Dfinition10
2.2 - Fonctionnement de base d'un commutateur tlphonique...............10
2.2.1 - Structure d'un commutateur tlphonique.10
2.2.2 - Le bloc de raccordement...11
2.2.3 - Le rseau de connexion et blocs auxiliaires..11
2.2.4 - Le bloc de commande.12
2.3 - Les phases d'tablissement d'une communication locale..12
2.3.1 - Prslection.12
2.3.1.1 - Exploration des quipements et dtection du changement d'tat..12
2.3.1.2 - Recherche des discriminations du demandeur..13
2.3.1.3 - Initiation de l'observation de trafic.....13
2.3.1.4 - Test et connexion d'un rcepteur de frquence.13
2.3.1.5 - Envoi de la tonalit au demandeur..13
2.3.2 - Signalisation du demandeur.14
2.3.2.1 - Rception de la numrotation14
2.3.2.2 - Arrt de l'mission de la tonalit.14
2.3.3 - Slection...14
2.3.3.1 - Pr analyse.......14
2.3.3.2 - Analyse.....14
2.3.3.3 - Fin de numrotation du demandeur.15
2.3.4 - Mise en relation..15
2.3.4.1 - Retransmission15
2.3.4.2 - Double connexion (Dr D)...15
2.3.4.3 - Dmarrage de la taxation..15
2.3.4.4 - Libration des ressources..16
2.4 - Principe de la connexion temporelle...16
2.4.1 - La trame MIC..16
2.4.1.1 - Echantillonnage..17
2.4.1.2 - Quantification..17
2.4.1.3 - Compression et Codage.17
2.4.2 - Le rseau de connexion un MIC...18
2.4.2.1 - Prsentation.18
2.4.2.2 - Ralisation du transfert dans le sens Dr D.19
2.4.2.3 - Ralisation du transfert dans le sens D Dr.22
2.5 - Algorithme de l'tablissement d'un appel.24
Chapitre 3 : Etude de l'autocommutateur pdagogique ETD 500.36
3.1 - prsentation.37
3.2 - description matrielle de la maquette..38
3.2.1 - Alimentation lectrique..38
3.2.2 - Liaison avec un ordinateur PC39
3.3 - Base de temps...39
3.4 - Le rseau de connexion : RCX41
3.5 - Le micro-systme..43
3.5.1 - Gestion du RCX...43
3.5.1.1 - Adresse MCM...43
3.5.1.2 - Donne MCM...43
3.5.1.3 - Registre de contrle43
3.5.1.4 - Registre de statut.44
3.5.1.5 - Le canal smaphore44
3.5.2 - Gestion des quipements44
3.5.2.1 - Les cofidecs..45

3.5.2.2 - Les slics.45


3.5.3 - Gestion de la liaison intercom..45
3.6 - Les codecs.46
3.7 - Les quipements...47
3.8 - Gnrateur de sonnerie...48
3.9 - Liaison intercom..48
3.10 - Fonctions logiciels.48
2me PARTIE : Programmes du logiciel...49
Introduction50
Chapitre 1 : Les bibliothques et les programmes compilables..51
1.1 - Les bibliothques..52
1.1.1 - Bibliothque T2000.h.52
1.1.2 - Bibliothque Interf.h..52
1.1.3 - Bibliothque Modules.h.52
1.1.4 - Bibliothque Abonne.h...52
1.1.5 - Bibliothque sujet.h53
1.2 - Les programmes compilables:.53
1.2.1 - Les sous programmes 53
1.2.1.1 - Interf.CPP.53
1.2.1.2 - Modules.CPP53
1.2.1.3 - SujetX.CPP53
1.2.2 - Le programme principal : COMLOCAL.CPP..54
Chapitre 2 : Excution du logiciel :55
2.1 - Dmarrage du logiciel56
2.2 - Choix du port COM.56
2.3 - Cration des abonnes...57
2.3.1 - Annuaire..58
2.3.1.1 - Editer les abonnes...58
2.3.1.2 - Choix du plan de numrotation, caractristique de la ligne et type de taxation.59
2.4 - Initialisation du programme61
2.5 - Dmarrage complet de l'autocommutateur62
2.6 - Dtection du dcrochage et affectation des IT...63
2.7 - Sonnerie...64
2.8 - Conversation65
Conclusion Gnrale66
Bibliographie68
Web graphie..68
Annexes...I

Mmoire de fin de formation pour l'obtention du diplme d'Ingnieur des Travaux des Tlcommunications
APOUDJAK Moustapha
LAWSON-BANKU A. Latvi
Thme : ETUDE ET PROGRAMMATION D'UN AUTOCOMMUTATEUR TEMPOREL PEDAGOGIQUE : ETD500
Directeur de mmoire : Mr. BARRY Mamadou Alpha
Nous prsentons une plateforme de commutateur temporel pdagogique : ETD500 spcialement conue comme
support l'enseignement des tlcommunications. Articul autour d'un circuit logique reprogrammable, ce
dispositif, utilis par plusieurs grandes coles et de l'IUP (Institut Universitaire Professionnalis)
Tlcommunications et Rseaux, est source d'enseignements varis tant matriels que logiciels.
L'intrt accru par l'ESMT, dans le souci de renforcer les enseignements magistraux par les travaux pratiques,
pour les systmes reprogrammables, nous a amen au cours de notre stage au laboratoire de commutation
tudier, programmer le commutateur temporel pdagogique : ETD500 et raliser quelques travaux
pratiques. L'quipement tait jusqu' lors inutilis malgr son importance pour l'enseignement et aussi du fait qu'il
a cot trs cher, donc peu d'tudiants connaissent son existence.

Etude et Programmation d'un Autocommutateur Pdagogique


Prsent et soutenu par Moustapha APOUDJAK et Latvi A. LAWSON-BANKU 126
COMPRESSION

Vous aimerez peut-être aussi