Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Informatique » Matériel » gestion du port com ou usb

AbrahamZ
ProgBoarder
Citer Windows XP Firefox 2 - Posté le 23/06/2007 à 00:01
Bonjour à tous,
pour un projet, j'ai besoin de récupérer des informations venant de capteurs de compression (ils émettent un signal analogique) et de les traiter sur un ordinateur.
Je suppose qu'il faut utiliser un convertisseur analogique - numérique puis transmettre les informations sur port com ou usb.

Voici donc ma première question : vaut-il mieux utiliser le port COM ou le port USB ? Le port USB est plus récent et semble fonctionner mieux, mais il nécessite peut etre aussi plus de composants électroniques du côté du CAN ?

Puis la seconde question : je veux coder un logiciel qui s'occupe de traiter les données. Je suppose qu'il va falloir faire au moins une partie en C pour communiquer avec le matériel, mais je n'y connais absolument rien (j'ai des bases en C, mais j'ai jamais fait de drivers). La solution peut etre donnée pour Windows ou pour Linux, peu importe. Pourriez-vous m'indiquer des liens concernant la gestion des ports COM ou USB, en C ?

Merci et bon week end ! (langue)
--
zuzuf
ProgBoarder
RemonterCiter Linux Firefox 2 - Posté le 23/06/2007 à 00:17
Pour la gestion des ports je te conseilles Linux tu trouveras facilement pas mal de doc dessus, en plus c'est assez simple à manipuler.

Pour le port, prend plutôt un port série(COM), c'est plus lent mais c'est aussi beaucoup plus simple à mettre en place (au pire passe à l'USB après avoir vu comment fonctionnait le port série c'est le même type de protocole de communication) et fonctionne avec des circuits à plus basse fréquence.

Pour ce qui est du traitement avant d'arriver à l'ordinateur il te faudra un microcontrôleur programmable (1 PIC de chez microchip par exemple) avec un convertisseur analogique->numérique et la gestion du port série (ou USB). Un pic de la gamme 18F***** semble être ce qu'il te faut, après ça se code en assembleur ces petites bêtes (en C aussi mais vu que ça manipule les bits de données un par un la plupart du temps il vaut mieux coder en assembleur).

Pour la question du pilote, pas besoin d'en créer un à moins de vouloir le réutiliser pour plusieurs applications. Sinon un simple code faisant l'interface entre le pilote du port série (ou USB) et ton programme en espace utilisateur fera l'affaire.

j'espère avoir répondu aussi clairement que possible à ta question
Linux a un noyau, windows un pepin
Fred
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 23/06/2007 à 11:57
Zuzuf (flèche) Comme AbrahamZ ne connait pas bien les protocoles de transmission
sériels dont l' USB, je ne pense pas qu'il faille se lancer a écrire une interface
USB pour un PIC qui est loin d'être une chose aisée.

Ton application nécessite un bon DAC ou CAN et d'un buffer pour
vérrouiller les sorties du convertisseur (changeantes) afin d'avoir des
mesures à un temps T précises.

Le port parallèle me parait tout indiqué, ca va te permettre de lire
(et d'écrire) octet par octet, la gestion sera donc beaucoup plus
simple au niveau du PIC, surtout si ton convertisseur est un 8bit.

Tu n'auras plus qu'a définir une fréquence d'échantillonnage compatible
avec la vitesse du port et de ton application, t'occuper d'une synchronisation
entre le PC et la carte.

Protèges bien ton port parrallèle bien qu'il y ait déjà des résistances pour
limiter le courant de sortie du PC. Si t'es sur de toi, vas gaiment, mets
8 résistances de 500Ohm sur ta carte sur le bus de données, sinon utilises
des optocoupleurs ou un réseau de darlingtons (c'est pas cher et pratique).

L'application tu pourras la faire en n'importe quel langage, et ca marchera
sur n'importe quel PC même 808x.

Si tu veux plus d'infos, dis le moi, j'irai consulter mon casier pour les références
des composants dont tu aurais besoin.
(héhé
Purée faut que je change d'avatar !
AbrahamZ
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 24/06/2007 à 11:24
Merci Zuzuf et Fred,

Après avoir lu vos deux réponses, je pencherais plutôt pour le port parallèlement finalement : étant donné que je ne connais pas bien l'assembleur, et que visiblement il est nécessaire de programmer en puce pour se servir du port série, je vais choisir la solution la plus facile.

Fred :
Pour ce qui est du choix du convertisseur (8 bits ou plus), faut que je réfléchisse à la précision (ou l'imprécision) que cela induit par rapport à la grandeur mesurée.
Je suis quand même intéréssé par de la documentation et des références, si tu en as.

Bonne journée
--

Edit : j'ai plusieurs capteurs à gérer, est-ce que ca ne pas m'obliger à programmer une puce, de toute façon, meme en utilisant le port parallèle ?

Edité par AbrahamZ ( 24/06/2007 13:37:25 )
AbrahamZ
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 03/07/2007 à 23:28
Finalement je vais choisir une solution encore plus simple : en prenant une carte d'acquisition analogique (langue)

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,025 s - Crédits - Stats
1 connecté