|
|
|
|||
Vous êtes ici : Home > Fiches Techniques > HDCS-1020 |
HDCS-1020
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oFonctionnement
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Le HDCS 1020 est divisé en deux parties : les registres de configuration (A gauche Timing Controller) et la partie capteur (A droite). Le capteur fonctionne de la façon suivante : On écrit dans les registres la configuration du capteur. Ensuite il suffit d'écrire un 1 dans le bit 2 du registre Control pour lancer la capture. Il y a d'abord une première phase d'intégration de chaque pixel, puis l'image est envoyé en série sur le port 8 bits, pixel par pixel. Un des principaux problèmes, est que pendant cette phase de transfert, la caméra est maître, car elle place la donnée sur le port 8 bit, met la sortie DRDY à 1 pendant la période de validité. La caméra n'attends pas d'accusé de réception de la part du système hote. Si le système hote n'est pas assez rapide, les données seront perdues. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oLes
registres
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nous allons présenter ici les registres avec une bréve description des registres les plus utilisés
La lecture et l'écriture des registres se fait pas la liaison série (Pins 29 (SCLK_RxD) et 30 (SDATA_TxD)). Nous avons cablé le composnat de façon à travailler en liaison série synchrone. La lecture (comme l'écriture) peut se faire de deux façons : soit en adressant les registres un par un, soit en mode incrément d'adresse, ou on adresse le premier registre, et les adresses suivantes sont automatiquement incrémentés. Pour pouvoir écrire dans les registres, il faut d'abord mettre le bit 5 du registre Control (PWR) à 0 pour sortir du mode faible consomation, et ainsi avoir le droit d'écrire dans les autres registres. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oLe
transfert de l'image
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Une fois que le bit 2 du registre control (RUN) est passé à 1, le transfert de l'image commence. Si DSYNC est activé, nFRAME_nSYNC va tomber à 0 jusqu'a ce que la capture soit finie (sauf en mode continu). Chaque fois qu'une donnée sera appliquée sur le bus DATA, DRDY passera à 1 durant un temps qui est configurable dans les registres. L'image compléte est composée de 352*288 pixels soit 101376 pixels dont 25344 rouges, 50688 verts et 25344 bleus. Les données sont renvoyées sur le port selon le schéma suivant : Durant le balayge des lignes paires, le capteur ne renvoit que les composantes bleus et vertes de l'image.Durant les lignes impaires, on ne récupére que les composantes rouges et vertes. Si DSYNC est activé, dés qu'un pixel est actif sur le port DATA, DRDY passe à un. Dés qu'une ligne est finie, nROW passe à 1, et quand l'image est complétement acquérie, nFRAME_nSYNC repasse à 1. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oLa
plateforme de test
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pour tester le composant, nous avons réalisé une petite plateforme de test sur PC104. Comme le BUS ISA est trés lent, nous risquions de perdre des données durant le transfert de l'image. Nous avons généré l'horloge du HDCS-1020 avec le PC, afin de passer la caméra en esclave du PC. La plate-forme de test fonctionne, mais il lui faut 6 secondes pour acquérir une image, car il faut générer env. 100000 cycles d'horloges par le bus ISA pour le traitement complet d'une image. Il est impensable d'embarquer le système tel quel sur un robot.
Voici ci-dessus les schémas des cartes. A gauche, le schéma de la caméra, et à droite le schéma de la carte PC104. Le composant étant en 3,3V il a fallu faire l'interfacage 3.3V / 5V. Les buffers 541 et 573 ont été choisis dans des familles VHC qui sont en 3.3V et 5V Tolerant. Cela signifie qu'ils sont en 3.3V mais acceptent des entrées de 5V. Le transistor permet de gérer le port bidirectionnel. Par la même occasion, on se sert des ces buffers pour faire l'interfacage sur le bus ISA, ce qui explique la simplicité de la carte PC104. Cliquez pour télécharger le programme de la caméra.
Voici 4 résultats d'acquisitions. En haut à gauche, la première acquisition réussie : les lignes horizontales sur l'image reflétent des temps d'expositions différents selon les lignes. Comme les temps d'expositions sont dépendants de l'horloge, et que notre horloge n'etait pas à fréquence fixe, l'image présente des défauts. Sur la deuxième image, le programme a été optimisé pour générer des signaux plus réguliers sur le bus ISA. Sur l'image en bas à gauche, le temps d'exposition est trop long, et enfin en bas à droite l'image est correcte. L'ancr tient à remercier KTy et Fred du Club de Robotique de l'ESEO, sans qui, je serais surement encore en train de chercher la configuration des registres |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oQuelques
liens
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oContact
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pour toutes questions envoyer moi un mail: Sinclair | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|