Banière
Vous êtes ici --- > Netonoff.com > Informatique > Réalisation Lecteur HDD > Lecture du tutorial

Réalisation Lecteur HDD

Auteur: : amando
Créé le : le 01/04/2008 à 15h19
Modifié le :le 13/04/2008 à 15h34
Imprimer ce tutorial
Lecteur de fichiers IQ a disque dur

UN LECTEUR DE FICHIER IQ A DISQUE DUR

Image utilisateur

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 mises à 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 dent 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.

Image utilisateur Synoptique de la réalisation (Cliquer pour agrandir)

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 qu'il peut arriver qu'entre 2 paquets il y ait quelques ms d'attente.
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 IC3 et IC4 utilisées en FIFO (first in – first out). Elles ont une capacité de 8ko chacune mais seuls les 4096 premiers octets sont utilisés (la broche A12 des mémoires étant connectée à la masse).
Ces mémoires sont pilotées par 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 (16F877) qui se charge de les remplir.
Sachant que 4096 octets sont utilisés et qu'un octet doit être envoyé au modulateur à chaque transition de ACK, le contenu total d'une mémoire est lu en 4096 changements d'états sur ACK.
Comme La durée entre 2 changements d'état sur ACK est de 3.906 micro seconde, on a donc au niveau du signal M/K un basculement des mémoires tous les 3.906us x 4096 soit 16 ms.
Les circuits IC7 à IC10 réalisent la fonction de permutation des mémoires.
Les circuits IC11, IC12 et IC13 quant à eux assurent l'aiguillage des signaux de contrôle des mémoires.

Le tout est cadencé par IC2 (16F628), pour cela il fabrique 2 signaux à partir du signal ACK (acknowledge) issu du modulateur QPSK.

  • Le signal CLK qui est une impulsion incrémentant les compteurs d'adresses des mémoires.
    Ce signal est généré à chaque transition du signal ACK.
  • Le signal M/K qui est un signal carré de 16ms assurant la permutation des 2 mémoires.
    M/K change d'état toutes les 4096 impulsions de CLK.
Quant à IC1 (16F877), en mode lecture, il s’occupe du remplissage des mémoires avec les données en provenance du disque dur. Pour cela il surveille le signal MEM qui n'est autre que le signal M/K inversé. A chaque changement d'état de MEM, IC1 procède a un transfert.

Détails du transfert des données :
  • Au changement d'état de MEM, IC1 envoi une impulsion sur RAZ pour positionner l'adresse de la mémoire à zéro.
  • IC1 demande au disque dur une donnée, celle-ci se présente sous la forme d'un mot de 16 bits, ce mot est constitué d'un octet de poids faible qui est à charger à l'adresse N de la mémoire et d'un octet de poids fort à ranger à l'adresse N+1.
  • IC1 génère une impulsion sur ECR ce qui transfère l'octet de poids faible présent sur le bus du disque dur dans la mémoire (les 8 bits de poids faible du disque sont reliés directement à l'entrée du permutateur).
  • IC1 sauvegarde l'octet de poids fort dans un registre interne puis met le bus de données du disque en haute impédance.
  • IC1 passe à l'adresse mémoire suivante en envoyant une impulsion sur CLK.
  • IC1 dépose l'octet sauvegardé dans le registre à l'entrée du permutateur et valide la mise en mémoire de cet octet par l'envoi d'une impulsion sur ECR.
  • IC1 envoi une nouvelle impulsion sur CLK pour passer à l'adresse suivante et le cycle recommence.
  • Une fois le transfert de 4096 octets en provenance du disque effectué, IC1 envoi une impulsion sur RAZ pour repositionner le compteur d'adresse des mémoires à zéro.
  • IC1 se met en attente du prochain changement d'état du signal MEM.
Le chargement d'une mémoire dure environ 8ms. Pendant la lecture le bus de données du contrôleur USB (U1) est mis en position haute impédance.

Le mode chargement du disque dur par l'USB
C'est l'application DATV_USB.exe qui se charge de transférer un fichier IQ du PC vers le lecteur, ce programme écrit sous VB5 a besoin de la dll « Vb5fr.dll » pour fonctionner. Vous pourrez le cas échéant, la télécharger sur le net et la placer dans le répertoire system32 de windows.

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.

Le disque est adressé en mode LBA 28 bits soit 3 octets et 4 bits, ce qui permet d'adresser 268.435.455 secteurs comme un secteur contient 512 octets on a accés à 137.438.952.960 octets au maximun soit un peu plus de 137 giga octets.

Le mode lecture étant indépendant du mode transfert de fichiers, la lecture de la mémoire FIFO continuera de s'effectuer pendant le transfert USB mais comme le contenu des mémoires n'est pas réactualisé, aucune image ne sera décodée par le démodulateur.

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 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 équipement.

Schémas, implantation et cuivre des 2 cartes
Schémas et implantation carte principale (Cliquer pour agrandir)
  • 1/3 Image utilisateur 2/3 Image utilisateur 3/3 Image utilisateur

  • Composants Image utilisateur Cuivre Image utilisateur
  • Typon au format PDF côté composants Image utilisateur
  • Typon au format PDF côté cuivre Image utilisateur
Schéma et implantation Panel control (Cliquer pour agrandir)
  • Schéma Image utilisateur Implantation Image utilisateur
  • Typon au format PDF côté cuivre Image utilisateur

Liste des composants de la carte principale
Condensateurs céramiques pas de 5.08 :
C3 33pF
C5 22pF
C8 1nF

Condensateurs céramiques CMS 1206 :
C2 22pF
C4 27pF
C9 22pF
C10 27pF
C11 33nF

Condensateurs multicouches CMS 1206 :
C14..34 100nF

Condensateurs chimiques :
C1, C6 10uF Radial 2,54
C7 47uF Radial 5,08
C12, C13 22uF Radial 5,08

Résistances Couche carbone 1/4W 5% :
R12 47
R14 470
R11 1k
R15 4k7
R13 47k

Résistances CMS 0805 5% :
R9 470

Résistances CMS 1206 5% :
R1 1k5
R2 330
R3, R4 27
R5, R7 4k7
R6, R16 470
R8, R17 10k
R10 2k2

Quartz HC49S :
Q1 6Mhz
Q2 20Mhz
Q3 27Mhz

Inductance :
L1 5.6uH Axiale

Diode :
D2, LED Rouge, 5mm

Transistor :
T1 BC557B TO92

Circuits intégrés :
IC1 PIC16F877A
IC2 PIC16F628A
IC3, IC4 HM6264P-15 (Electronique Diffusion)
IC5, IC6 74HCT4040N
IC7..10 74HC541N
IC11 74HCT00N
IC12 74HCT157N
IC13 74HCT08N
IC14 93LC46P (Eeprom facultatif)
U1 FT245BL CMS FTDI USB (Farnell)
U2 LM7805 TO220

Divers :
1 Support CI Tulipe 40 broches
1 Support CI Tulipe 18 broches
2 Supports CI Tulipe 28 broches
4 Supports CI Tulipe 20 broches
3 Supports CI Tulipe 16 broches
2 Supports CI Tulipe 14 broches
1 Support CI Tulipe 8 broches
1 Circuit imprimé Double Face FR4 172 x 100 mm

Liste des composants Panel Control
Condensateurs céramiques pas de 5.08 :
C1, C2 22pF

Condensateurs multicouches pas de 5.08 :
C3, C4, C5 100nF

Condensateurs chimiques :
C6 10uF 25v Axial

Résistances Couche carbone 1/4W 5% :
R1 4k7
R2, R3, R4, R5 10k

Ajustable :
P2 22k Vertical

Circuit intégré :
IC1 PIC16F628A DIP18 (Farnell)

Quartz :
Q1 4Mhz HC49S

Divers :
1 Barrette mâle coudée 2X3pts
3 Touches D6 rondes de différentes couleurs
1 Connecteur Barrette M. sécable 14pts
1 Afficheur LCD 1 ligne 16 caractères
1 Connecteur Barrette F. sécable 14pts
1 Support CI Lyre 18 broches
1 Circuit imprimé simple face 125 x 40 mm

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 sans 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 :
  • Connecter le lecteur au PC avec un cordon USB.
  • Télécharger le fichier : DATV_USB.exe
    Exécuter le programme.
  • 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.
  • 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.
  • Une fois le transfert terminé, quitter l'application et débrancher le lecteur du PC.
  • 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.
Au lancement de l'application 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'on 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 dés qu'un fichier est sélectionné.

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 QPSK.

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 :
  • Fabriquer un fichier IQ contenant un signal en dents de scie à l'aide du petit programme DatvDentScie.exe. Il s'agit d'une moulinette qui génère le fichier IQ « DentScie.iq » d'environ 100 Mo contenant une succession d'octets incrémentés de 0 à 255.
    Télécharger le fichier : DatvDentScie.exe
  • Transférer le fichier « DentScie.iq » dans le lecteur.
  • Brancher un convertisseur N/A constitué de quelques résistances à 1% câblées sur une prise DB25 et brancher à la place du modulateur QPSK.
    Cliquer sur les images pour les agrandir.
    Image utilisateur Photo du CNA Image utilisateur Schéma du CNA
  • Connecter un générateur de signaux carrés sur l'interface (acknowledge) et l'ajuster à une fréquence de 100Khz environ.
  • Visualiser une dent de scie sur un oscilloscope.
    Cliquer sur les images pour les agrandir.
    Image utilisateur Signal correct Image utilisateur 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 élevée 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 points seront précisés ultérieurement !




Retour au Sommaire

Remonter en haut | Exécution en 0.0924 secondes |

© Tous droits réservés 2006 François Marie | Hébergement : WDMédia-hébergement

AMIX-INFORMATIQUE.FR | TAI-JITSU-ALENCON.FR