F1FAU - F9ZG - F1GFF radio amateurs
Christian  
Rolf  
Amand  
Mise à jour le 22/02/2015

Document sans nom

UN LECTEUR DE FICHIER IQ A DISQUE DUR

(### Photo ###)

Présentation

Votre engouement pour la télévision est bien réel depuis la publication de l’exciter et de la mire numérique sur notre site Internet. Cette première réalisation offre l’opportunité de se familiariser avec le traitement numérique d’images assemblées. En effet, nous avons oeuvré pour que chacun puisse construire et programmer le fichier de la mire à l’aide d’un tutorial et de moulinettes misent à disposition sur le site NETONOFF. Après la mire, voici un nouvel équipement plus ludique, qui sans le recours à un ordinateur portable permet de stocker et de diffuser des vidéos issus d’une caméra numérique ou de toute autre source. Le montage se présente sous la forme d'un disque dur autonome et portatif capable de stocker 16 heures de lecture. Les fichiers vidéo au nombre de 15 maximum sont affectés à une plage fixe de 2 giga octets et placé les uns derrière les autres sur le disque. Les fichiers seront enregistrés via une connexion USB, mais vous devrez au préalable convertir vos fichiers vidéo au format IQ avant de les transférer à l’aide d’un petit programme écrit en Visual Basic. La réalisation de ce dispositif n'est pas difficile. Les composants sont classiques hormis le contrôleur USB FT245BL (disponible chez Farnell) en version CMS. La rigueur et l’autocontrôle à toute les étapes de la fabrication sont totalement requis pour le démarrage instantané. Bien entendu, si la carte que vous avez réalisé ne fonctionne pas du premier coup suite à quelques erreurs, le dépannage deviendrait laborieux. Aussi , nous avons un petit dispositif sous la forme d’un fichier capable de générer une dents de scie numérique dont le signal est visualisé sur un oscilloscope à l'aide d'un convertisseur numérique analogique branché sur la sortie du lecteur sur la prise DB25.

Présentation et analyse du synoptique

Voir sur la page synoptique (### Photo ###)

Le mode lecture

En lecture, le débit des données à envoyer au modulateur QPSK doit être d'une régularité parfaite or il faut savoir que l'accès aux données sur un disque dur se fait par paquets de 512 octets et entre chaque paquet il peut s'écouler plusieurs millisecondes. Pour régulariser parfaitement le débit des données entre le disque et le modulateur QPSK nous avons eu recours à 2 mémoires tampon type FIFO (first in – firts out) IC3 et IC4 de 8ko chacune associées à 2 compteurs d'adresse IC5 et IC6 cet ensemble constituant le cœur du système. Pendant qu'une mémoire est lue l'autre est remplie avec les données issues du disque. Les broches de données des mémoires sont alternativement reliées d'un coté au modulateur QPSK (lecture des mémoires) et de l'autre coté à IC1 dont la fonction est le remplissage des mémoires). Les circuits de IC7 à IC10 réalisent la fonction de commutation des mémoires. Les circuits de IC11, IC12 et IC13 quant à eux assurent l'aiguillage des signaux de contrôle des mémoires. IC2 fabrique 2 signaux à partir du signal ACK (acknowledge) issu du modulateur QPSK. 1 - Le signal CLK de IC2 est une impulsion qui incrémente les compteurs d'adresses des mémoires. Ce signal est généré à chaque transition du signal ACK (acknoledge) 2 - Le signal M/K est un signal carré de 16ms généré par IC2 qui permute les 2 mémoires. Sachant que la capacité d'une mémoire est de 8192 octets et qu'un octet doit être envoyer au modulateur à chaque transition de ACK, Le contenu total d'une mémoire est lu en 8192 changements d'états sur ACK. Comme La durée entre 2 changements d'état sur ACK étant de 3.906 micro seconde, on vérifie donc au niveau du signal M/K un basculement des mémoires tous les 3.906 x 8192 soit 16 ms. Le circuit intégré IC1 s’occupe du remplissage des mémoires avec les données en provenance du disque dur. De plus, il surveille le signal MEM qui n'est autre que le signal M/K inversé. Quand MEM change d'état, le signal RAZ généré par IC1 (16F877) remet à 0 le compteur d'adresse de la mémoire. Le transfert de données entre le disque dur et les mémoires se déroule de la façon suivante : Le disque dur délivre les données sous forme d'un mot de 16 bits correspondant un octet de poids faible et un octet de poids fort. Le premier octet est transféré directement à l'une des mémoires par une impulsion sur ECR. (les 8 bits de poids faible sont reliés directement à l'entrée du permutateur aussitôt le bus de donnée du disque) . Ensuite les 8 bits de poids fort sont sauvegardés temporairement dans un registre interne du PIC. On envoie une impulsion sur H/PIC pour passer à l'adresse mémoire suivante et le bus de donnée du disque est placé en haute impédance. L'octet sauvegardé dans le registre est envoyé à l'entrée du permutateur et une impulsion sur ECR valide la mise en mémoire Une autre impulsion sur H/PIC fait passer à l'adresse suivante et le cycle recommence. Se sont ainsi 8192 octets en provenance du disque qui sont transférés dans la mémoire, suivi d'une impulsion sur RAZ pour re positionner le compteur d'adresse des mémoires à zéro. Pour terminer le PIC il attend le prochain changement d'état du signal MEM. Cette opération de transfert qui dure environ 20ms , en partie à cause du disque dur, ne peut excéder 32ms. Pendant le cycle qui vient d'être décrit le bus de données du contrôleur USB (U1) est mis nécessairement en position haute impédance.

Le mode chargement du disque dur par l'USB :

L'application DATV_USB.exe se charge de transférer le fichier IQ dans le disque dur. (Voir plus loin). Vous noterez que le disque dur n'est géré par aucun système de fichier. L'espace disque est simplement organisé en plage de données auquel correspond une adresse de secteur. Cette gestion très basique du disque est absolument nécessaire car le PIC ne pourrai pas gérer un surcroît de travail. Chaque secteur du disque contient exactement 512 octets. Le disque est adressé en mode LBA 28 bits soit 3 octets et 4 bits. Ce qui fait que 137.438.952.960 octets au total soit un peu plus de 137 giga octets peuvent être adressé par ce mode. Pour cette le fichier sur la plage numéro 15 peut être extrêmement long ! Pendant un transfert USB les mémoires continues d'être lue et leur contenu envoyé au modulateur sachant que ces données sont inchangée et que le démodulateur ne verra aucune image. Le programme « DATV_USB.exe » écrit sous VB5 a besoin de la dll « Vb5fr.dll  ». Vous pourrez le cas échéant, la télécharger sur le net et la placer dans le répertoire system32 de windows. Au démarrage tous les boutons sont grisés sauf le bouton « quitter » et « connexion ». Avant de lancer la connexion en cliquant sur ce bouton, le lecteur doit être connecté au PC et le menu "PORT USB" doit être sélectionné. Un voyant passe au vert dés que la connexion est établie et passe au rouge si l'in débranche le lecteur du PC En interrogeant le disque dur, le programme vérifie sa capacité et en fonction du résultat dégrise un certain les boutons associé aux 15 plages vidéo. Pour transférer un fichier dans le lecteur on clique sur un de ces boutons, ce qui fait apparaître le menu fichier de Windows. Le transfert démarre et une barre de progression s'affiche.

Le panneau de contrôle

Les opérations de lecture et d'écriture des fichiers sont gérées par un panneau de contrôle muni d’un afficheur 1 ligne 16 caractères et de 4 boutons poussoir le tout piloté par un PIC 16F628, qui est lui même en liaison avec le 16F877. Cette liaison constituée d’un câble de 6 conducteurs dont seul 4 sont utilisés, véhicule l'alimentation 5V du panel control, le reset du 16F877, une ligne de data bidirectionnelle et la masse. Le format d'échange des données sur ce bus utilise le même codage que le circuit MM53200 utilisé dans les télécommande domestique. Le dialogue entre le 16F877 et le panel control s'effectue par l'échange de commandes. Sur les 4 boutons, 2 permettent la navigation dans le menu, 1 sert à la validation et un au reset.

La réalisation

L’ensemble est constitué de quatre circuits imprimés. La carte de pilotage et d’interface du disque dur, la plus dense et la plus complexe, la carte panneau de contrôle, muni de 4 boutons poussoirs et d’un afficheur LCD et deux cartes d’alimentation à découpage très compacte. Ces alimentations ont une tension d'entrée de 10 à 15 volts et délivrent respectivement 5 et 12 volts. Le recours à des alimentations à découpage rend l’ensemble compacte pour une utilisation en portable, mais nous ne les publierons pas à priori, chacun trouvera personnellement sa solution. Le montage des circuits intégrés sur des supports tulipe est indispensable; le surcout est négligeable, mais salutaire en cas de panne. Des circuits imprimés étamés sont disponibles auprès de F1GFF. Vous percerez vous même l’ensemble des trous avec un forêt de 7/10 e et les agrandirez ensuite à la demande. Par exemple les connecteurs type HE10 sont percés à 9/10e. Je vous recommande d’utiliser des forêts au cobalt de couleur blanc inox. Ils sont à la fois souple et plus résistant que les forêt HSS noirs. Après le perçage vous passerez au câblage des « via » avec du fils 5 ou 6/10 pour connecter les pistes situées entre le recto et le verso verso du CI. D’un coté, vous câblerez les composants traditionnels, de l’autre les composants CMS. Je rappelle une fois de plus l'absolue nécessité de tester la valeur des composants que vous utiliserez en particulier les condensateurs CMS qui n’ont jamais de marquage. Vous pourrez par vous-même programmer les 3 micro-PIC. Les fichiers correspondants au format « hex » ne seront pas mis en ligne, mais envoyés individuellement car nous souhaitons constater votre intérêt pour cet équipment.

Mise en service du lecteur

Après la traditionnelle vérification qui passe par la traque des erreurs et des courts circuits, vous pourrez mettre l’appareil sous tension. Le fonctionnement est immédiat et ans aucun réglage. A la mise sous tension le message « INIT HARD DISK EN COURS » s'affiche pendant une trentaine de secondes. Ensuite si tout se passe bien, le message « PORT USB ? » apparaît sinon c'est le message "DISK FAIL". A partir de la il faut appuyer sur le bouton poussoir « validation » pour sélectionner le mode transfert de fichiers. voici les opérations à effectuer : 1 - Connecter le lecteur au PC avec un cordon USB 2 - Lancer l'application « DATV_USB.exe » 3 - Cliquer sur le bouton "Connexion" pour établir le dialogue avec le lecteur. A ce moment le voyant passe au vert et les plages vidéo disponibles sur le disque dégrisent. 4 - Charger un fichier dans le lecteur. Pour cela cliquer sur une plage vidéo par ex : plage vidéo 1 , sélectionner le fichier à télécharger et valider. Le transfert commence, la barre de progression évoluant en fonction du transfert. 5 - Une fois le transfert terminé, quitter l'application et débrancher le lecteur du PC 6 - Pour passer en mode lecture, appuyer sur le BP de raz du lecteur, attendre le message « PORT USB ? » et à l'aide des poussoirs de navigation choisir le message "Plage vidéo 1 ?". Appuyer sur le poussoir «validation», le message « VIDEO 1 ON AIR » s'affiche indiquant que la transmission est en cours et vérifier sur l’écran du démodulateur les images.

Remarques :

Tant que la led rouge est allumée il n'est pas conseillé de couper l'alimentation du lecteur mais faire un reset et attendre le message. « USB ? » L'alimentation du lecteur ne sera débranchée qu’après. Le cavalier du disque dur est positionné en maître et le câble en nappe reliant l'interface au disque dur doit être le plus court possible, de même celui qui relie le lecteur au modulateur. En cas de difficulté de mise en route du lecteur Voici une méthode qui permet de se tirer d'affaire lorsque le lecteur semble fonctionner correctement mais que le démodulateur refuse de d’afficher les images. Un montage tout simple permet de visualiser sur un oscilloscope le contenu d'une plage vidéo en cours de lecture. Réalisation et marche à suivre : 1 - Fabriquer un fichier IQ contenant un signal en dents de scie à l'aide du petit programme suivant (### lien vers le prg. ###). Il s'agit d'une moulinette qui génère un fichier IQ d'environ 100 Mo contenant une succession d'octets incrémentés de 0 à 255. 2 - Transférer ce fichier dans le lecteur. 3 - Brancher un convertisseur N/A constitué de quelques résistances à 1% câblées sur une prise DB25 et branché à la place du modulateur QPSK. (### photo schéma du CNA ###) 4 - Connecter un générateur de signaux carrés sur l'interface (acknowledge) et l'ajuster à une fréquence de 100Khz environ. 5 - Visualiser une dent de scie sur un oscilloscope.

(### photo signal correct ###) (### photo signal défectueux ###)

Interprétation

Cette manipulation permet de voir si une mémoire est défectueuse ou s'il y a une coupure au niveau du bus de données, ou un problème au niveau des compteurs d'adresses. La dent de scie doit être correcte jusqu'à une fréquence de 200KHz minimum. Si elle décroche avant ce peut être le disque dur qui n'est pas assez rapide. Sur le lecteur prototype testé par F1FAU le signal décroche à partir de 250Khz. Si l'ensemble fonctionne correctement on doit observer un signal carré sans décrochement sur chacun des bits de données D0 à D7 du connecteur DB25. La fréquence du signal sur D6 est le double de celle sur D7 et double sur chacun des bits précédents, Elle est la plus faible sur D0.

Conclusion

Avec la mire numérique vous avez appris à traiter des images et des photos, avec le lecteur de fichier IQ à disque dur, vous vous familiariserez avec le traitement des vidéos, une opération encore plus facile que précédemment ! Quelques OM ont déjà construit le lecteur de fichier IQ, F9ZG, F4NAS en autre. Nous espérons par cette réalisation, avoir contribué à vulgariser et à démystifier la télévision digitale amateur. Il y a beaucoup d’informatique et de logique, dans cette technologie, mais cela ne doit pas rebuter car au final l’utilisation des équipement sont simple est simple pour goûter un nouveau mode de trafic. Dans tous les cas nous seront là pour vous épauler techniquement. Vous souhaitant une très bonne réalisation et beaucoup de plaisir à trafiquer. Quelques point seront précisés ultérieurement !

 

Novembre 2007 réalisé par F1gff