Interface d'entrée
pour émetteur numérique
- initiation à
l'utilisation des CPLD -

Un émetteur numérique doit nécessairement
être relié à une source de données extérieure.
Le dispositif qui est décrit ici assure au moyen d'une liaison
RS-422 exploitée à 2 Mbit/s, le lien entre une source de
données extérieure et le modulateur QPSK de la partie radio
de l'émetteur. Il inclut de plus des fonctions annexes comme un
générateur pseudo-aléatoire de test, un générateur
de réglage +pi/2 -pi/2, et une commutation de ces diverses sources
numériques.
La présente réalisation constitue en même
temps une première confrontation à la mise en oeuvre et
à la programmation des CPLD (Complex Programmable Logic Devices),
de structure voisine de celle des FPGA (Field Programmable Gate Array).
Fonctions à réaliser
et synoptique de l'interface
Le recours
à une liaison RS-422 permet de s'affranchir dans une certaine mesure
des contraintes de distance entre la source de données et l'émetteur.
Une distance de plus de 10 mètres est possible à 2 Mbit/s.
La transmission des signaux de données s'effectue sur trois paires
symétriques torsadées de câble pour réseau
LAN (câble catégorie 5). Trois récepteurs RS-422 assurent
la conversion en niveaux TTL, puis deux bascules D régénèrent
le signal. Le protocole de transmission des données à l'interface
est simple : Les données I et Q issues de la source distante sont
présentées à l'interface sur deux bascules D. Lorsque
le front montant d'horloge, lui aussi issu de la source distante, est
à son tour présenté, les données sont validées
et transmises sans délai au modulateur QPSK de l'émetteur.
Le générateur
pseudo-aléatoire fournit un signal numérique de test normalisé
cadencé à 2 Mbit/s (2048 kbit/s, plus précisément)
et ressemblant à une émission normale. Il permet de valider
le fonctionnement de la partie radio. Les deux générateurs
de signaux à 2 Mbit/s en quadrature avance ou retard permettent
de vérifier facilement l'isolement des voies I et Q du modulateur
QPSK. Enfin une matrice de commutation permet de choisir la source de
données depuis un commutateur situé en face avant du coffret
radio.
Le synoptique
ci-dessous montre l'agencement d'ensemble :

Schéma
Les composants retenus :
Le choix d'un CPLD (Complex Programmable Logic Device) permet
de réaliser des fonctions logiques complexes sans avoir recours
à un câblage entre composants logiques élémentaires
: les liaisons sont simplement définies par programme. Nous utiliserons
le circuit EPM7064S du fabricant Altera en raison de son faible coût,
de sa disponibilité dans le commerce de détail, et de la
mise à disposition gratuite d'un outil de développement
logiciel très performant : MaxPlus+
II, téléchargeable sur le site
Altera. Le circuit EPM7064S est très rapide, s'alimente en
+ 5V et possède 64 macrocellules logiques, ce qui est tout à
fait suffisant pour notre application. Les sorties peuvent chacunes délivrer
25 mA.
Téléchargez la documentation
du circuit EPM7064 sur le site Altera.
Le quadruple récepteur RS-422 : nous utiliserons
un circuit 26C32 très répandu et dont il existe plusieurs
sources (National Semiconductor DS26C32, Texas AM26C32,...). Ce circuit
s'alimente en + 5V et transforme un signal RS-422 en signal TTL. Même
si le besoin fonctionnel n'est que de trois récepteurs, les quatre
récepteurs seront câblés dans notre montage.
Téléchargez la documentation
du circuit 26C32 sur le site de Texas Instruments.
Le schéma :

(cliquer pour agrandir)
Réalisation matérielle
Le circuit
imprimé est réalisé en époxy double face de
1,6 mm d'épaisseur. La réalisation du circuit imprimé
avec de petits moyens amateur nécessite un peu de soin. En effet
la plupart des pistes ont une largeur de 16 mils (0,4 mm), ce qui impose
un bon contrôle des paramètres de gravure (température
du bain de perchlorure de fer, homogénéité de l'attaque
du cuivre). Après gravure, il est conseillé de vérifier
le travail réalisé à la loupe.
téléchargez
le circuit imprimé aux formats .bmp et Eagle .brd (50 ko zippés)
NB : le logiciel Eagle est disponible en version gratuite
limitée (dans notre cas suffisante) sur le site de l'éditeur
Cadsoft.
Une face sert de plan de masse. Des fils traversants et
soudés des deux côtés assurent les liaisons de masse.
Les découplages doivent être soignés : 2 condensateurs
de 1 nF au plus près des broches du circuit, puis 2 condensateurs
de 100 nF. Un petit régulateur 7805 est ajouté dans le boîtier
pour garantir une tension d'alimentation correcte. Un connecteur Sub-D
à 9 broches permet la connexion des trois entrées RS-422.
En fait la quatrième entrée qui est disponible est elle
aussi câblée en vue d'extensions ultérieures.
Logiciel
Quelle que
soit la manière envisagée pour l'écriture du logiciel,
il est conseillé d'utiliser l'outil de développement appelé
Max+plus II mis à disposition gratuitement par Altera et téléchargeable
sur son site. Pour réaliser des fonctions logiques aussi simples
que celles décrites plus haut, il n'est pas nécessaire de
savoir programmer en VHDL langage ouvert, ou AHDL langage propriétaire.
Altera met gratuitement à la disposition de ses clients dans MaxPlus+
II un éditeur graphique intégrant une bibliothèque
de modules logiques configurables (Library of Parameterized Modules, ou
LPM). Nous trouvons dans la bibliothèque toutes les fonctions qui
nous sont nécessaires pour notre projet. Il suffit alors d'ouvrir
l'éditeur graphique, de placer les modules logiques élémentaires
et de les relier par des connexions en respectant quelques règles
simples. Par exemple, un générateur pseudo aléatoire
à 15 cellules répondant à la recommandation UIT 0.150,
possède la structure suivante :

La traduction de ce synoptique dans l'environnement graphique
de Max+plus II est la suivante :

Le passage d'une représentation à l'autre
appelle peu de commentaires. Le registre à décalage à
15 cellules et la porte ou-exclusif sont construits à l'aide du
"MegaWizard" disponible dans l'éditeur graphique sous
la rubrique "Symbol". Les symboles des connexions d'entrée
et de sortie sont créées par les commandes "input"
et "output", toujours sous la rubrique "Symbol". Les
traits fins représentent des liaisons simples.
Le trait gras représente un "bus", c'est
à dire ici un paquet de 15 liaisons, numérotées de
0 à 14, correspondant aux 15 sorties des registres élémentaires.
Seules les sorties numérotées 13 et 14 sont utilisées.
Attention à bien positionner les étiquettes des connexions
au contact des liaisons. Attention également à éliminer
les points de connexions créés automatiquement entre les
liaisons simples et le bus.
La représentation graphique de la totalité
des fonctions souhaitées sur la carte est la suivante :

(cliquer pour agrandir)
Pour éviter la saisie, téléchargez
le fichier interface.gdf (4 ko zippé).
Lors de la compilation on prendra soin de désactiver l'option "clock"
sous Assign/Global Project Synthesis/Automatic Global. Dans le cas contraire
le compilateur renvoie une erreur due à l'impossibilité
de la connexion de l'entrée d'horloge à la broche 41. En
effet, l'inaccessibilité de la broche n°2 du CPLD sur le circuit
imprimé pour des questions de routage simple face rend nécessaire
une connexion d'horloge "enfouie" et celle-ci ne peut être
gérée qu'en désactivant l'option "clock".
Transfert
de la configuration dans le composant CPLD
Altera
propose plusieurs type de programmateurs pour ses circuits. Le programmateur
ByteBlasterMV utilise le port parallèle d'un PC et est simple à
construire. On pourra se reporter au site de Altera qui fournit tous les
détails de ce programmateur
ainsi que les drivers indispensables.
Construction
du programmateur ByteBlasterMV :
Le schéma
:

Le circuit
imprimé :

téléchargez
le circuit imprimé au format Eagle, ou au format .bmp (49 ko zippé)
Les
étapes de la construction :
Les amateurs économes observeront qu'il existe plusieurs
circuits 74HC244 (buffer 8 bits trois états) sur toutes les vieilles
cartes d'ordinateurs : inutile donc d'acheter le nôtre, il suffira
d'en dessouder un soigneusement sur une carte destinée au rebut
!
Le circuit imprimé n'est pas percé. Les fils
des deux câbles sont simplement soudés directement sur les
pastilles. Une fois le boîtier fermé, il n'y a aucun risque
d'arrachement.
Attention, très important ! Pour un fonctionnement
correct, le câble de liaison à la prise parallèle
du PC doit être court. Ne pas dépasser une longueur de 40
cm pour le câble SubD et de 40 cm pour le câble ruban JTAG.
Pour la programmation, on alimente le circuit CPLD sous
+ 5V, puis on connecte le programmateur, d'un côté sur le
port parallèle d'un PC, de l'autre sur l'interface JTAG. La programmation
est très rapide et s'effectue en quelques secondes.
Utilisation
Le montage
fonctionne immédiatement, dès qu'il est mis sous tension.
Un commutateur à 3 circuits 5 positions, fournit sur trois
fils aux entrées "mode select", sous forme binaire, le
code nécessaire au choix des sources numériques : porteuse
pure, I et Q en quadrature avance, I et Q en quadrature retard, générateur
pseudoaléatoire, données externes.
Fonction
générateur de signaux en quadrature :
Q en quadrature avance par rapport à I (à
gauche), en quadrature retard (à droite)
(500 ns/div)
Fonction générateur pseudo-aléatoire
:
A gauche : examen du signal à l'oscilloscope (500 ns/div)
A droite : examen du signal à l'analyseur de spectre (1 MHz/div)
Fonction données externes : test des liaisons RS-422
effectué avec un générateur BF à 1 MHz, couplé
au moyen d'un tore.
Conclusion
Nous
avons vu que les CPLD se prêtaient facilement à la réalisation
de fonctions logiques complexes. Une fois pris en main, les grandes qualités
de ces composants se révèlent : compacité des circuits
et souplesse d'utilisation. L'apprentissage des langages AHDL ou VHDL
permettra d'envisager des montages de traitement de signaux numériques
encore plus performants.
allumons
nos fers à souder !