Conception et realisation
d'une camera CCD


Sommaire

  Introduction, objectifs et principes [voir]
  Le CCD Thomson TH7852 [voir]
  Generation des horloges [voir]
  La carte d'alimentation [voir]
  La carte horloge [voir]
  La carte CCD [voir]
  La carte de connexion [voir]
  La carte amplificatrice et CAN [voir]
  La mise au point [voir]
  Le programme d'aquisition [voir]
  Les resultats [voir]
  Liens vers les composants [voir]

Generation des horloges

       Pour générer les horloges nécessaires au fonctionnement du capteur CCD nous avons opter pour une réalisation informatique, ce qui permet de gérer au mieux les problèmes de synchronisation entre les différentes horloges. Pour cela nous utilisons une carte décodage d'adresse ainsi qu'une carte d'entrées-sorties qui génère ainsi informatiquement des états haut et bas à une cadence voulue. Par contre les paramètres du chronogramme sont étroitement liés aux performances de l'ordinateur utilisé. Ainsi la fréquence de lecture du CCD est limitée par la fréquence d'horloge de l'ordinateur et plus précisément par le nombre de cycles horloge nécessaires pour écrire dans le circuit d'Entrées/Sorties. Sur une machine de faible puissance, le temps de lecture d'une matrice de moyenne dimension peut devenir assez grand (plus de dix secondes). Dans ce cas il faut absolument optimiser le logiciel en l'écrivant en assembleur. Dans notre cas nous utilisons un PC 450MHz avec programmation en Pascal. (Turbo Pascal sous DOS et Delphi sous Windows). Nous verrons à la fin de ce rapport, les performances réelles de notre caméra.


6.1. La carte décodage d'adresse

        6.1.1. Présentation

Sur les cartes mères des PC et compatibles, il existe un domaine d'adresses réservé à ce que l'on nomme les cartes prototypes. Ce domaine s'étend de l'adresse H300 à l'adresse H31F, ce qui permet la gestion de 32 cartes n'utilisant pour leur fonctionnement qu'une seule adresse. Les adresses issues de la carte mère sont codées sur 12 bits.(A0….A11) C'est à dire que pour être entre les adresses H300 et H31F il faut que les bits A8 et A9 soient à l'état haut et A10 et A11 à l'état bas. Etant donné que nous avons besoin au minimum de 2 adresses : une adresse pour générer les signaux et une autre pour recueillir les données numérisées issues du capteur CCD, nous réalisons une carte décodage d'adresse qui permettent de décoder toutes les adresses possibles.

Notre carte découpe en réalité le domaine d'adressage en 8 parties :
1) H300 à H303
2) H304 à H307
3) H308 à H30B
4) H30C à H30F
5) H310 à H313
6) H314 à H317
7) H318 à H31B
8) H31C à H31F

Cette carte décodage d'adresse ne réalise que ces blocs d'adresses, il faudra ensuite réaliser un autre décodage pour pouvoir avoir accès aux adresses de chaque bloc.
Ces 8 blocs pourront être sélectionnés à l'aide de la broche CS (voir figure ci-après).

a) On limite les adresses entre H300 et H31F :
Rappel : H300=1100000000 et H31F=1100011111
Pour cela, on utilise un comparateur 8 bits de type 74LS688 et on câble les bits A5…A11 de telle manière que sa sortie P=Q passe au niveau bas que lorsque les bits A8 et A9 passent au niveau haut et que toutes les autres lignes restent au niveau bas.
Le comparateur n'est actif (entrée G) que si un ordre de lecture (IORD) ou d'écriture (IOWR) est lancé : cette fonction est réalisée à l'aide d'une porte logique OU de type 78LS08.
La sortie P=Q du 74LS688 passant au niveau bas, valide d'une part le circuit tampon de bus bidirectionnel IC1 (74LS245) et d'autre part le décodeur IC4 (74LS138).

b) Le circuit tampon de bus bidirectionnel possède une direction de transfert qui dépend si l'on se trouve en mode de lecture ou en mode d'écriture. L'état du signal IORD va commander cette direction puisque si on a IOWR a l'état haut on aura IORD a l'état bas. (IOWR=IORD/).

c) Le circuit décodeur des blocs d'adressage :
C'est un circuit de type 74LS138 un décodeur 3->8 bits qui permet de sectionner chaque bloc mémoire à partir des bits d'adresse A2, A3, A4. Ce circuit est actif lorsque P=Q du comparateur 8 bits passe au niveau bas.

d) Le circuit tampon IC2 de type 74LS541 tamponne les lignes d'écriture, de lecture, la ligne de RESET et les lignes d'adresses A0 et A1 qui seront utilisés par les cartes suivantes afin de décoder chaque adresse utile.

Remarque : Cette carte possède aussi une entrée IOREADY qui permet de bloquer le processeur pendant quelques millisecondes dans le cas où des circuits périphériques peu rapides seraient utilisés.

Tous les circuits sont découplés par des condensateurs afin de supprimer tous parasites.

        6.1.2. Schéma de principe :


        6.1.3. Réalisation pratique

La carte est réalisée avec de l'époxy double face car elle doit être enfichée dans le slot de l'ordinateur. On place les composants sur des supports afin de pouvoir changer les composants en cas de nécessité. La sortie des différentes lignes de connexion aux cartes externes s'effectue sur un connecteur SUBD 25 de type femelle, et à l'aide d'un câble en nappe 25 fils point à point.
Voici les typons de cette carte ainsi que l'implémentation des composants.



Carte décodage d'adresses (coté composant)



Carte décodage d'adresses (coté cuivre)



Implémentation des composants sur la carte décodage d'adresses

        6.1.4. Essais de la carte

On place la carte dans le slot de l'ordinateur celui-ci étant obligatoirement éteint pour des raisons évidentes. Pour ces essais on utilise une sonde logique et on rentre le programme suivant : En Pascal : repeat Port[&300] :=0 ; Port[&304] :=0 ; Port[&308] :=0 ; Port[&30C] :=0 ; Port[&310] :=0 ; Port[&314] :=0 ; Port[&318] :=0 ; Port[&31C] :=0 ; until keypressed On place la sonde sur les sorties Y0 à Y7 du 74LS138 et on doit constater une série d'impulsion correspondant au passage à l'état bas des sorties du décodeur. Ensuite on teste le bus de données dont les lignes, lors de chaque validation du circuit bidirectionnel, doivent passer à l'état bas un court instant : on doit observer une brève série d'impulsion sur la sonde logique.



Câblage du connecteur de sortie de la carte décodage d'adresse

6.2. Carte d'Entrées-Sorties

        6.2.1. Présentation

Nous avons besoin de générer des signaux horloges et de récupérer les données numérisées sur l'ordinateur donc nous avons besoins de 8 sorties correspondant aux différents signaux et d'un nombre d'entrées dépendant du CAN utilisé. Dans notre cas nous utiliserons un CAN 8 Bits mais un CAN 12 Bits ou encore plus performant permet d'augmenter la résolution et par conséquent, la qualité des images. La carte entrée-sortie réalisée permet d'avoir 32 entrées et 32 sorties, elle nous permettra donc de ne pas être limité en nombre de signaux possibles, et au vu de sa simplicité on n'a pas de quoi se priver. Ainsi ci après on veut numériser sur 20 Bits et ajouter des signaux de commande on pourra le faire facilement.


        6.2.2. Schéma de principe



Schéma de principe de la carte entrées-sorties

Les signaux issus de la carte de décodage d'adresse parviennent à la carte via le SUBD 25 broches. Tous les signaux ne sont pas utilisés. Cette carte réalise en réalité un décodage d'adresse aussi.

a) Les entrées : elles se situent aux adresses H304,H305,H306 et H307 En fait elles sont composées de 4 groupes de 8 entrées. Ces entrées sont tamponnées par un circuit de type 74LS541 (vu précédemment) et comportent un réseau de résistances de rappel au +5V de l'alimentation. Le dispositif externe qui utilise cette carte doit donc présenter un niveau bas sur les entrées pour que l'ordinateur prenne en compte l'entrée concernée ; il suffit de placer en amont une porte NON si on veut l'inverse.

b) Les sorties : elles se situent aux adresses H300,H301,H302 et H303 Elles sont elles-aussi composées de 4 groupes de 8 sorties. Ces sorties sont issues d'un circuit intégré de type 74LS574 qui n'est rien d'autre qu'une octuple bascule pouvant fournir un courant relativement important (suffisant pour allumer une LED). Sa broche de validation de sortie OC/ est connectée à la masse, ce qui permet de maintenir toujours présentes en sortie les données qui sont envoyées. Chacun des 74LS574 trouve sa place à une adresse précise qui est uniquement disponible en écriture.

c) Décodage des adresses :
-Les adresses de chaque sortie sont déterminées par le décodeur IC1A, un 74LS139 qui est un double décodeur multiplexeur 2/4 bits. Les deux entrées de ce dernier sont connectées aux lignes d'adresse A0 et A1, et sa broche de validation est reliée à la sortie d'une porte OR, IC12A (74LS32) combinant le signal CS0 (adresse H300) et le signal IOWR. Le signal disponible en sortie de chaque broche du 74LS139 est inversé par quatre portes de IC2, un 74LS04, car le 74LS574 nécessite un front montant pour sa validation. On peut utiliser aussi un 74LS573 qui paraît plus robuste.

-Les adresses de chaque entrée sont déterminées par le second décodeur d'adresse IC2B (74LS139). Aux deux entrées de ce dernier sont connectés les lignes A0 et A1 issues de la carte de décodage des adresses, et sa broche de validation st connectée à la sortie de la porte OR IC2B. Cette porte combine le signal CS1 (adresse H304) et le signal de lecture IORD. Remarque : Nous aurions pu réaliser les entrées et les sorties en utilisant un seul groupe d'adresse : H300,H301,H302,H303 ; On aurait eu ainsi la même adresse pour les entrées et les sorties mais le fait d'avoir des adresses distinctes facilite la programmation et la compréhension. L'alimentation de +5V n'est pas issue de l'ordinateur pour des raisons évidentes de sécurité et surtout pour avoir une alimentation stabilisée car la tension issue de la carte mère est fortement bruitée.

Remarque : Dans notre montage le régulateur de tension de type 7805 chauffe dans ce cas il est préférable de le monter sur un radiateur-dissipateur. 6.2.3. Réalisation de la carte Pas de problème majeur. Les circuits sont toujours implémentés sur des supports afin de pourvoir les changer si nécessaire. Voici les typons, ainsi que l'implémentation des composants.

 


Typon de la carte entrées-sorties


Implémentation des composants sur la carte entrées-sorties

        6.2.4. Essais de la carte

Une fois reliée à la carte décodage d'adresses on alimente la carte d'Entrées/Sorties Et on exécute le programme suivant :

{Ecriture sur les ports}
Repeat Port[&300]=0 ; {tous les bits à 0}
Port[&301]=0 ;
Port[&302]=0 ;
Port[&303]=0 ;
Port[&304]=0 ;
Delay(1) ; {durée de l'état haut}
Port[&300]=255 ; {tous les bits à 1}
Port[&301]=255 ;
Port[&302]=255 ;
Port[&303]=255 ;
Port[&304]=255 ;
Delay(1)
{durée de l'état bas}
Until keypressed {Lecture du port 305h}
Var a : byte;
Repeat
a:=Port [$305] ; {On lit la valeur du port $305}
writeln(a) ; {On affiche la valeur à l'écran}
Until keypressed

On vérifie alors a l'aide d'une sonde logique que les sorties fournissent un signal carré d'amplitude 5V et de période 2ms (500 Hz). Puis, dans la seconde partie du programme, on met les bits des entrées successivement à la masse est on vérifie que le nombre obtenu soit égal à 255 moins les bits mis à la masse.




Copyright © 2001 http://www.astrosurf.com/april