| Auteur: : amando Créé le : le 20/10/2009 à 17h31 Modifié le :le 15/12/2009 à 11h58 Imprimer ce tutorial |
Carte d’interface USB entre un PC et un modulateur QPSK
destinée à la DATV en temps réel.
Introduction
En début d’année 2008 nous avons décrit un lecteur de fichier IQ, autonome, équipé d’un disque dur. Cette réalisation était destinée à la transmission de fichiers vidéo numérique au format MPEG 2. A l’automne 2008 le projet de télévision numérique « en temps réel » a démarré par l’étude d’une interface de liaison USB vers un port parallèle, entre un ordinateur et un modulateur QPSK. Le lecteur été modifié pour mener des tests qui ont montré la nécessité d’augmenter la capacité des mémoires pour garantir un flux régulier. Notre interface n'effectue aucun traitement sur les données, cette tâche est confiée exclusivement à l’ordinateur équipé d’une carte d’acquisition PVR 150 de chez HAUPPAUGE et du logiciel développé par Christian. Cette formule est très économique car aucune puce spécialisée n’est utilisée.
Après le développement « hard » F1FAU a étudié entièrement un « soft » sous la forme d’un programme rapide permettant, avec un ordinateur, de transposer le format MPEG au format I/Q. Christian a réussi ce challenge seul en 8 mois. Désormais il est possible de produire et de transmettre en temps réel des images numériques avec un débit de 1024 kilo symbols par seconde.
Le logiciel qui est mis ici en téléchargement tourne exclusivement sous Windows. Vous l’utiliserez pour faire les essais de la carte et transmettre des vidéos en différé. Pour démarrer en « live ». il faudra attendre la suite dans une seconde partie à venir et télécharger le nouveau logiciel qui tourne sous LINUX. La solution pour faire fonctionner la carte PVR 150 en temps réel avec l’OS de Microsoft n’a pas été trouvée. La solution F1FAU ne prêtant pas être définitive; des interfaces plus sophistiquées capable de traiter les données seront décrites dans le futur par des amateurs, elles existent peut être déjà !
Présentation & synoptique de la carte
La carte d’interface est munie d’un port USB en entrée et d’un port parallèle (LPT) en sortie pour être connectée entre un ordinateur et un modulateur QPSK. Le tampon mémoire de 128 Ko est assez conséquent pour maintenir un flux constant et régulier à l’entrée du modulateur. Le débit moyen sur un port USB est très élevé mais présente des ruptures de flux dont la durée de plusieurs millisecondes est, en l’absence d’un tampon mémoire, totalement incompatible avec un fonctionnement stable de la chaine numérique. La structure de l’interface ressemble à celle du lecteur à disque dur et les principaux composants utilisés sont : un contrôleur USB FT245, deux mémoires de 128 Ko et deux PIC 16F628.
Avant de réaliser une carte définitive des essais préliminaires ont été effectués pour vérifier la régularité du flux entre un PC et un modulateur et ainsi valider le schéma définitif. La nouvelle carte est équipée de 2 mémoires de 128 Ko chacune dont l’ensemble reproduit un mode FIFO ce qui signifie : first in - first out. L’emploi de mémoires FIFO dédiées n’a pas été possible car nous n’en avons pas trouvé avec une capacité suffisante et par ailleurs, connaissant le prix des FIFO de 16 Ko nous imaginions un coût élevé pour des FIFO de 128 Ko !
L’OM M0DTS, a développé une interface avec une mémoire FIFO de 1 Ko , dont la réalisation est visible sur son site
mais nous ne savons pas comment son montage se comporte. Notre circuit est en conséquence plus compliqué, mais avec une capacité mémoire de 128 Ko, la régulation du débit entre l’entrée et la sortie est efficace.
Synoptique de la réalisation (Cliquer sur l'image pour agrandir)
Réalisation de l’interface USB
La carte est réalisée avec des composants classiques et répandus le plus souvent disponibles dans nos stocks hormis quelques CMS comme le FT 245 (contrôleur USB qui n’est disponible que dans cette version et quelques résistances et condensateurs au format 1206 l'entourant.) En cas de mauvais fonctionnement la localisation du problème peut être difficile. Aussi il est fortement conseillé de monter tous les circuits intégrés sur support pour pouvoir les retirer au besoin.
Concernant l'Eeprom IC14 93LC46P, celle ci n'est pas nécessaire, elle a été prévue sur la carte lors des tests.
Etude du schéma et fonctionnement de la carte
Le micro processeur IC2 est véritablement le chef d’orchestre sur cette carte. Ce PIC génère les deux signaux H/PIC et M/K et en leur absence la carte ne démarre pas. Ces signaux apparaissent lorsque le signal ACK venant du modulateur QPSK est présent à l'entrée sur la broche RA0 de IC2.
Quand M/K est à l’état 1 la mémoire IC4 est en lecture et la mémoire IC3 en écriture. Cet état correspond a l’envoi des données, présentes dans IC4, vers le modulateur QPSK et au chargement de la mémoire IC3 reliée au contrôleur USB - U1.
Inversement, quand M/K est à 0 la fonction des mémoires et des circuits sont inversés.
Le signal H/PIC incrémente le compteur d'adresse associé a la mémoire en lecture.
Oscillogrammes IC2 (Cliquer sur l'image pour agrandir)
Le PIC IC1 réalise le chargement des données en provenance du PC vers la mémoire libre (l’autre mémoire est alors en mode lecture). Le PIC IC1 surveille le signal MEM (MEM est le signal M/K inversé par la porte IC11C) et à chaque changement d'état de MEM, il récupère un nouveau bloc de données de 128 Ko. Le transfert de ce bloc dans la mémoire doit être effectué en un temps inférieur a 512 ms (avant la permutation des mémoires). En réalité ce transfert requiert environ 300 ms. La mémoire connectée au modulateur QPSK est quant à elle lue en 512 ms ce qui laisse un temps d'environ 200 ms pour absorber les irrégularités du flux en écriture.
Oscillogrammes IC1 (Cliquer sur l'image pour agrandir)
Les circuits IC5 & IC16 sont les compteurs d'adresses de la mémoire IC3. Les circuits IC6 & IC15 sont les compteurs d'adresses de la mémoire IC4. Les circuits IC7 à IC10 aiguillent des données en lecture et écriture des mémoires. Les circuits IC11, IC12 et IC13 aiguillent les signaux de contrôle qui permutent les mémoires.
Etude des signaux traités par IC2 (ACK, H/PIC et M/K)
ACK est généré par le modulateur QPSK, sous la forme d’un signal carré qui change d'état toutes les 3.90625 us. Pendant ce laps de temps un octet est envoyé au modulateur (voir Oscillogramme). Toutes les secondes 256 Ko sont envoyés au modulateur QPSK ce qui correspond à un débit réel de 2048 Kbit/s et à débit symbole I & Q de 1024 KS/s.
H/PIC incrémente les compteurs d'adresses de la mémoire en phase de lecture. Ce signal a la forme d’une impulsion d'environ 130 ns, envoyée entre 0.6 et 1 us après le changement d'état du signal ACK.
M/K délivre le signal de permutation lecture/écriture des mémoires. Il s’agit d’un signal carré qui change d'état toutes les 512 ms. Pour générer ce signal IC2 compte le nombre de transition du signal ACK envoyé par le modulateur QPSK. Les mémoires ont 11 bits d’adresse ce qui fait une capacité de 131072 octets par mémoire. Pour un débit réel de 2048 Kbit/s les adresses changent toutes les 3.90625 us donc, pour envoyer les 131072 octets, il faut exactement 511967 us. En l’absence du signal ACK, provenant du modulateur, le signal M/K et H/PIC est figé et la carte ne démarre pas. C’est un point important à vérifier si vous avez des problèmes à la mise en route !
Etude des signaux traités par IC1 (CLK, RAZ, ECR, MEM et bus de contrôle du FT245)
Interface connectée au PC avec un transfert en cours : Après le changement d'état de MEM, IC1 envoie une impulsion positive sur RAZ pour remettre à zéro le compteur d'adresse de la mémoire en mode remplissage. Ensuite IC1 positionne ECR à l’état 1 pour mettre la mémoire en écriture pour une durée d'environ 300 ms correspondant au temps approximatif de remplissage. Une fois la mémoire remplie, ECR est remis à 0. IC1 génère alors un nouveau « pulse » sur RAZ pour remettre le bus d’adresse de la mémoire à 0 et IC1 se met en attente du prochain changement d'état de MEM.
Le signal CLK incrémente les compteurs d'adresse de la mémoire en position écriture. Chaque octet est mémorisé au changement d'adresse par l'envoi d'une impulsion sur CLK. Il n’est pas utile de d’entrer dans le détail de la gestion du FT245. Le PIC IC1 sait si l'interface est connectée au PC en vérifiant la présence d'octets dans le buffer de la puce USB. Les signaux, CLK, RAZ et ECR sont figés à zéro quand aucun transfert n'a lieu (Interface déconnectée du PC).
Schémas et implantation des composants de la carte
Schémas (Cliquer pour agrandir)
Le dossier « C: / VIDEO_DATV » (Lecteur DATV) contient :
DATV_DVB-S_Pb.exe (Lecteur de fichier MPEG exécutable Windows) Video.mpg (Fichier vidéo de test de 1 minute)Le dossier C: / VIDEO_DATV / Driver_FT245 (Pilote de l'interface) contient 2 dossiers :
Driver FT245 win 98-me (les pilotes du FT245 pour Win. 98 et Win. Millenium) Driver FT245 win XP (les pilotes du FT245 pour Win. XP)Le dossier C: / VIDEO_DATV / WinTvCap30fBin (Enregistreur vidéo) contient :
Record.bat (Batch de lancement d’un enregistrement) Register.bat (Enregistrement du fichier ax dans la base de registre) Unregister.bat (Supression du fichier ax de la base de registre) WinTvCap30.exe (Enregistreur en ligne de commmande pour WinTV PVR) WinTVCap30.ini (Fichier des paramétres d'encodage) WinTvCap30.log (Fichier log généré par WinTvCap30.exe ) wintvcap.htm (Documentation de Wintvcap) WinTVCapWriter.ax (Filtre direct show) Sources (Dossier contenant les sources de WinTVCap)Mise en route – Essais rapides de la carte
Remonter en haut | Exécution en 0.2019 secondes |
© Tous droits réservés 2006 François Marie | Hébergement : WDMédia-hébergement