Jean-François FOURCADIER
F4DAY

Montpellier  (France)

projets radioamateurs

écrivez moi !  
© 2000-2004- J.F. Fourcadier
page d'accueil
haut débit télévision antennes hyperfréquences relais divers

Sérialisateur pour port parallèle
d'ordinateur

Le dispositif décrit ci-dessous est un sérialisateur qui assure la liaison entre le port parallèle d'un ordinateur de type PC et l'émetteur radio numérique 2 Mbit/s QPSK décrit dans un article précédent . Il permet à l'émetteur radio de transmettre à la vitesse de 2 Mbit/s de longs messages binaires préenregistrés sur le disque dur d'un ordinateur. Ces messages pourront par exemple représenter des données quelconques ou bien des séquences d'images animées codées à la norme de télévision numérique DVB-S. Pour des raisons de facilité de réalisation et de mise au point, le sérialisateur fait appel à un CPLD (Complex Programmable Logic Device).

Fonctions remplies par le sérialisateur

Le sérialisateur reçoit les données de l'ordinateur. Il est connecté sur la sortie d'une carte parallèle pour bus PCI et reçoit naturellement sur 8 fils les octets en provenance de l'ordinateur. Un fil supplémentaire est utilisé entre le port parallèle et le sérialisateur pour permettre à ce dernier d'assurer le contrôle du flux de données entrant.

Le sérialisateur émet les données sérialisées vers l'émetteur numérique. Deux fils sont nécessaires pour définir en binaire un état de phase parmi quatre dans l'émetteur numérique. Un troisième fil véhicule le signal d'horloge qui assure de manière synchrone la validation des données à des instants précis. La sérialisation consiste en la transmission de chaque octet en provenance de l'ordinateur, sous forme de quatre groupes de deux bits successifs en direction de l'émetteur.

Le sérialisateur contient l'horloge maître définissant le débit binaire de 2,048 Mbit/s transmis par l'émetteur.

Enfin, le sérialisateur assure la transformation des signaux de type TTL en provenance de la logique CPLD en signaux symétriques RS-422 pour transmission sur paire torsadée (câble informatique catégorie 5). Par ce moyen, les contraintes de localisation des équipements s'assouplissent. L'ordinateur peut être éloigné jusqu'à une dizaine de mètres de l'émetteur radio.

 

 

Synoptique et fonctionnement

Le principe de fonctionnement du sérialisateur est relativement simple. Le sérialisateur est composé de deux registres de 8 bits, A et B, qui assurent la mémorisation des données entrantes issues du port parallèle du PC. Le registre A puis le registre B sont sollicités alternativement toutes les 4 µs pour accueillir les octets entrants. Lors de l'écriture du registre B, on procède à la lecture du registre A, deux bits par deux bits, toutes les 1 µs. Lorsque le registre A est totalement lu, on poursuit par la lecture du registre B, et on commande simultanément l'écriture de l'octet suivant dans le registre A.

Le port parallèle du PC est conservé dans son mode de base, le mode SPP. Un circuit d'horloge à 8192 kHz, fournit les différents signaux de positionnement des commutateurs, de contrôle de flux côté entrée, et de validation des données côté sortie.

On notera que la cadence d'extraction des données côté carte parallèle PC est de 256 ko/s, et que la cadence d'émission des données vers l'émetteur radio est de 1024 kdibit/s. (Un dibit = un groupe de deux bits).

Réalisation matérielle

La réalisation de la fonction décrite ci-dessus pourrait s'envisager au moyen de circuits logiques traditionnels mais. Cependant, pour des raisons de compacité et de souplesse de mise au point, nous ferons appel à un CPLD d'entrée de gamme à faible coût EPM7064SLC44-10, fabriqué par Altera.

Préalablement à l'établissement du schéma électrique, il est nécéssaire d'établir le schéma fonctionnel détaillé au moyen du logiciel MAXplus+II fourni par le fabricant du CPLD. Ce logiciel nous servira également ensuite à la programmation du composant par l'intermédiaire d'une interface JTAG et d'un petit programmateur ByteBlasterMV déjà décrit par ailleurs.

- schéma fonctionnel détaillé :

cliquer pour agrandir

(cliquer pour agrandir)

télécharger l'ensemble des fichiers descriptifs produits par le logiciel MAXplus+II (50 ko zippés)

 

- schéma électrique :

Le schéma électrique n'appelle pas beaucoup de commentaires : un oscillateur à 8192 kHz fournit le signal d'horloge au circuit CPLD Altera EPM7064SLC44-10, un circuit DS26C31 assure la transformation des niveaux logiques issus du CPLD en signaux symétriques RS 422 pour l'attaque du câble de liaison à l'émetteur. Deux broches "test" sont disposées pour des essais lors de la mise au point ou bien pour couvrir des besoins futurs. Un connecteur à broches normalisé JTAG permet la programmation in-situ du CPLD.

cliquer pour agrandir

(cliquer pour agrandir)

- circuit imprimé :

Le circuit imprimé est dessiné à l'aide du logiciel Eagle, dont la version limitée (mais suffisante) est disponible gratuitement en téléchargement. Pour des raisons de routage, on fera appel à du circuit imprimé double face, une face jouant simplement le rôle de plan de masse. De ce fait, les liaisons entre le CPLD et le câble de liaison du connecteur DB25 seront réalisées au moyen de conducteurs de faible diamètre. Les CPLD sont des composants rapides : une grande vigilance doit être observée dans l'établissement des découplages d'alimentation.

cliquer pour agrandir

télécharger les fichiers du circuit imprimé aux formats Eagle .brd et .gif (55 ko zippés)

NB : Pour une qualité optimale, il est recommandé de réaliser le circuit imprimé à partir de son fichier source .brd, plutôt que du fichier .gif fourni.

 

cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir
cliquer pour agrandir

(cliquer pour agrandir)

 

Configuration du CPLD

Le fichier de configuration ne sera pas obtenu à partir d'un fichier source VHDL, mais plus simplement, comme vu plus haut, en utilisant l'outil graphique fourni gratuitement par Altera avec le logiciel MAXplus+II.

Les fichiers utiles ont été fournis plus haut, le processus de programmation déjà décrit est simple et très rapide.

Le protocole de contrôle de flux PC-sérialisateur

Le débit binaire transmis par l'émetteur est fixé par l'horloge à quartz de 8192 kHz du sérialisateur. Le protocole assurant le contrôle de flux, c'est à dire l'extraction des données du PC au rythme de 2048 kbit/s très exactement, est réduit à sa plus simple expression : Le sérialisateur délivre un signal logique rectangulaire de rapport cyclique 50/50 sur la broche nAck de la carte parallèle (broche n°10 du connecteur DB25). La durée de chaque état est fixée à exactement 3,906 µs par le quartz d'horloge du sérialisateur. Ce temps correspond à la durée de transmission d'un octet (8 bits) à la vitesse de 2,048 Mbit/s.

Le logiciel du PC vient lire par polling l'état de la broche nAck de son port parallèle en examinant le contenu de son "Status Register". Lorsqu'un changement d'état est détecté, le logiciel du PC présente immédiatement un nouvel octet sur le port parallèle par l'écriture d'une valeur dans le "Data Register" correspondant.

Au moyen de ce protocole très simple on peut atteindre en sortie un débit binaire voisin de 400 ko/s à 500 ko/s avec un flux parfaitement contrôlé. Pour parvenir à ce résultat, plusieurs conditions complémentaires doivent cependant être strictement respectées :

- travailler sous DOS : le DOS 7.1, dernier DOS livré de série avec Windows 98, convient parfaitement à cet usage,

- complèter le DOS par un "DOS extender" pour accèder à l'espace mémoire situé au dessus des 640 ko gérés normalement par le DOS,

- extraire les données depuis la mémoire vive de l'ordinateur (RAM). En effet, les accès disque produisent des irrégularités fatales dans le flux de données,

- programmer dans un langage compilé rapide. Le compilateur doit être du type 32 bits pour accèder directement à un espace mémoire important,

- interdire les interruptions matérielles du PC lors de la transmission,

- au niveau matériel, utiliser une carte parallèle connectée sur le bus PCI (proscrire les cartes ISA).

Logiciel PC

Comme on vient de le voir, l'ordinateur de type PC dans lequel se trouvent les données à transmettre doit être pourvu d'un logiciel destiné à présenter les données sur le port parallèle et à assurer contrôle de flux avec le CPLD du sérialisateur.

Les fonctions à réaliser par ce logiciel seront :

- de charger en RAM le fichier, présent sur le disque dur, des données à émettre,

- d'interdire les interruptions matérielles,

- de présenter, à chaque changement d'état de la broche nAck, les octets successifs sur le port parallèle désigné,

- à la fin de la lecture du fichier, d'arrêter le processus ou bien de le reboucler éventuellement sur son début pour obtenir une séquence infinie.

Pour des raisons de rapidité, le logiciel sera écrit en langage C au moyen du compilateur C 32 bits DJGPP disponible gratuitement par téléchargement. L'interface RHIDE qui est fournie, présente une ergonomie très proche du célèbre Borland TURBOC. Il existe une page guide, appelée zip-picker, pour aider l'utilisateur dans le choix des fichiers à télécharger pour l'acquisition du logiciel

télécharger le programme source du logiciel READ_PSK.C ( 4 ko zippés)

On observera deux entorses aux bonnes pratiques :

- dans le cas où l'on active une boucle infinie, l'arrêt du PC ne pourra être obtenu que par une coupure de son alimentation ! Ceci est la conséquence de l'interdiction de toute interruption, mais à l'usage, du fait d'un travail sous DOS, cet inconvénient se révèle sans graves conséquences.

- ce logiciel très simple n'est pas portable : pour une configuration donnée, l'adresse effective du port parallèle (ici 78C0) doit être notée lors de la première intialisation du PC, puis reportée dans le programme source READ_PSK.C.

La taille maximum du message enregistré en RAM, limitée par le DOS Microsoft à 32 Mo, permet deux minutes de transmission au rythme de 2 Mbit/s. Une durée quelconque de transmission peut cependant être obtenue en bouclant logiciellement, autant de fois que souhaité, la fin du fichier sur son début.

A titre d'information, les contenus des fichiers autoxec.bat et config.sys sont également fournis.

Conclusion

Le sérialisateur décrit ci-dessus est simple à construire et fait appel à un nombre réduit de composants. Avec ce dispositif qui complète l'émetteur numérique précédemment décrit, on dispose du moyen de transmettre à l'antenne, à un rythme de 2,048 Mbit/s, de longs messages binaires préenregistrés sur le disque dur d'un ordinateur de type PC. Ce petit montage ouvre la porte à la transmission de signaux de télévision numérique amateur.

allumons nos fers à souder !

 

B5+ et 73 de Jean-François Fourcadier, F4DAY

retour à la page d'accueil du site

 

© 2000-2004  J.F. Fourcadier F4DAY