Répondre à la discussion
Affichage des résultats 1 à 25 sur 25

Interface capteurs RS232



  1. #1
    theshadow18

    Interface capteurs RS232


    ------

    Bonjour tout le monde !
    Je souhaites concevoir une carte permettant de mesurer plusieurs grandeurs physiques et de les lire sur un PC via une liaison RS232. La conversion des signaux des capteurs en 0-5V n'est pas un souci, mais c'est plutot apres que j'ai un probleme. Je souhaiterais convertir ces signaux et envoyer des trames RS232 au PC sans composant programmable (PIC, FPGA,...). Y a t'il un moyen d'y arriver sans trop de difficulté ?
    Merci de votre aide !

    -----

  2. Publicité
  3. #2
    gienas
    Modérateur

    Re : Interface capteurs RS232

    Bonjour theshadow18 et tout le groupe

    Citation Envoyé par theshadow18 Voir le message
    ... Y a t'il un moyen d'y arriver sans trop de difficulté ? ...
    Y arriver, sûrement. Sans difficulté, alors là NON!

    Si tu ne veux pas accoucher d'une usine à gaz, oublies cette possibilité. Tous les circuits destinés à ce genre d'interface, sont conçus pour être programmables. Réinventer la roue, en 2007 ....

    Sans compter que le temps passé à concevoir un ensemble sans intérêt, et quasiment indépannable et figé, sera sans commune mesure avec l'apprentissage nécessaire du produit programmable que tu auras choisi.

  4. #3
    PA5CAL

    Re : Interface capteurs RS232

    Bonjour

    On peut très facilement fabriquer une interface série (RS232) pour transmettre les mesures d'un convertisseur analogique/numérique sans passer par un composant programmable.

    Les trames émises par un tel système peuvent par exemple être composées d'un bit à 0 (start), de 8 bits de données et d'un bit à 1 (stop). Une logique capable de générer une séquence de 10 états successifs cadencée à la fréquence de transmission est donc suffisante pour une sortie sur 8 bits ou moins. En compliquant légèrement le circuit, on peut transmettre plus de 8 bits, répartis sur plusieurs octets.

    Les données peuvent provenir directement de la sortie série d'un convertisseur analogique/numérique, ou bien d'un registre à décalage PISO (parallel in/serial out) branché sur la sortie parallèle du convertisseur.


    As-tu déjà une idée du convertisseur analogique/numérique que tu souhaites utiliser, ou alors de sa résolution (nombre de bits), de sa rapidité (temps de conversion) et de son débit (nombre de mesures par seconde) ? D'autre part, de combien de canaux de mesure as-tu besoin, et quelle est la vitesse de transmission maxi de ton interface RS232 (bauds) ?

  5. #4
    Chimimic

    Re : Interface capteurs RS232

    Bonjour,

    oui, tu peux effectuer cette tache sans composant programmable, même si cela demande presque forcement un peu plus de composants. Quoique tout dépend du type de trames à envoyer.

    J'ai réalisé il y a quelques années un circuit d'acquisition multivoies analogiques, sans aucun composant programmable, avec seulement deux circuits intégrés, données récupérées via RS232. Le seul inconvénient : la disponibilité des circuits trop spécifiques pas toujours évidente quelques années après.

    Pour l'interfaçage RS232, il faut juste transformer le +5V en -12V, et le 0V en +12V (les logiques positive et négative sont inversées). Ce qui peut être fait soit avec des composants spécifiques (tel le MAX232) soit avec de simple transistors, mais dans ce dernier cas tu dois fournir les tensions +12V et -12V.

    Cordialement.
    Dernière modification par Chimimic ; 06/04/2007 à 11h10.

  6. A voir en vidéo sur Futura
  7. #5
    theshadow18

    Re : Interface capteurs RS232

    Merci beaucoup pour votre aide,
    Pourl'instant je suis juste à une étude de faisabilité, une résolution de 8 bits sera surement suffisant, le temps de réponse n'est pas LA priorité, mais je sais qu'il y a un composant comme le MIC 640 qui fait un peu la fonction désiré (un peu trop lent : 1 mesure/sec, et 4 entreés analogiques : il m'en faudrais 12).
    Un max232 est tout a fait enviseageable, mais il faut lui envoyer des trames de 10 bits (8 bits de données + 2 bits de start/stop). En effet le top serait un CAN capable de faire tous cela, mais je n'en ai pas trouvé...

  8. #6
    PA5CAL

    Re : Interface capteurs RS232

    Choisis d'abord un CAN qui te convient, et ensuite on verra comment brancher l'interface RS232 dessus.

    Je n'ai pas bien compris quand tu dis qu'il t'en faudrait 12. Il te faudrait 12 canaux avec 1 mesure par seconde, ou bien 4 canaux avec 12 mesures par seconde ? Et tu compte le nombre de mesures par canal, ou pour l'ensemble des canaux ?

  9. Publicité
  10. #7
    theshadow18

    Re : Interface capteurs RS232

    Non il me faut mesurer 12 capteurs, donc 12 entrées analogiques 0-5V.
    Pour la fréquence des mesure, il faudrais 5 mesures/sec environ pour chaque capteur, donc 60 trames de 8 bits de données/secondes (sans compter les bits de stop et start). En gros une vitesse de 600 octest/sec serais bien. N'importe quel CAN ferait l'affaire mais une fois les 8 bits convertis, il me faudrais un convertisseur 8bit-->RS232.

  11. #8
    Chimimic

    Re : Interface capteurs RS232

    pour ce qui est de l'envoi des données, tu n'es pas obligé de les mettre en forme (ASCII ou Hexa) avant de les envoyer, tu peux très bien traiter les changements d'état des bits de données directement au niveau logiciel sur PC. Le débit dont tu as besoin le permet.
    Mais cela évidement, n'est faisable que si tu peux programmer un petit soft d'acquisition spécifique pour cet usage (pas forcement complexe). Si tu veux exploiter des données toutes prêtes pour pouvoir les afficher dans un simple terminal ou dans un "logiciel réceptionneur" existant, c'est évidement une autre histoire, et il te faut bien dans ce cas transformer tes données acquises en données compatibles.

  12. #9
    theshadow18

    Re : Interface capteurs RS232

    Le souci est bien la et je n'arrive pas a trouver ce dont j'ai besoin, a part le mic 640 :
    http://www.selectronic.fr/includes_s...ics/mic640.pdf
    Il me faudrait un composant plus rapide en tps de conversion et 12 entrés analogique...

  13. #10
    theshadow18

    Re : Interface capteurs RS232

    C'est bon j'ai trouvé ce que je voulais !
    un convertisseur analogique-numérique avec 11 entrées analogiques et une sortie RS232 !
    http://focus.ti.com/lit/ds/slas052g/slas052g.pdf
    Merci a tous

  14. #11
    PA5CAL

    Re : Interface capteurs RS232

    Attention, la sortie n'est pas "RS232", mais simplement "série". ll y a plus de 8 bits, pas de bit Stop ni de bit Start. De plus il faut également entrer le numéro du canal en série.

    Il faut donc y adjoindre un circuit séquenceur, comme évoqué plus haut.

  15. #12
    PA5CAL

    Re : Interface capteurs RS232

    Je pensais qu'un tel CAN pouvait fonctionner avec une fréquence d'horloge très faible (fmin=0Hz, d'après la datasheet).

    Mais en fait, une particularité bien cachée va devoir compliquer le fonctionnement du montage : le temps écoulé entre le 10ième front descendant et le 11ième front montant du signal d'horloge doit être inférieur au temps de conversion du CAN, soit 21s.

    Cela signifie que le montage devra être cadencé au minimum à 48000Hz, alors que la vitesse de transfert serait plutôt de l'ordre de quelques centaines ou milliers de bauds (600bauds/8bits et 1200bauds/16bits mini).

    Mais c'est encore jouable.

  16. Publicité
  17. #13
    PA5CAL

    Re : Interface capteurs RS232

    En fait, ce CAN n'a que 11 canaux, et pas 12.

  18. #14
    PA5CAL

    Re : Interface capteurs RS232

    Que penses-tu du TLC548 (ou TLC549) ? As-tu le moyen de t'en procurer ?

    C'est un convertisseur série 8 bits, et on peut l'utiliser avec un multiplexeur analogique 12 canaux extérieur.

  19. #15
    PA5CAL

    Re : Interface capteurs RS232

    Voici un schéma de principe avec un TLC549, en simplifiant au maximum. Il y a de ce fait 16 canaux analogiques (au lieu de 12), mais on peut réduire ce nombre en complétant le circuit.

    La partie conversion CMOS/RS232 (avec un MAX232), l'alimentation +5V (avec un 7805 ?), les capas de découplage et la partie analogique qui précède le montage (amplis de mesure par exemple) n'ont pas été représentées.


    Dans la première partie, il y a tout ce qu'il faut pour convertir et transmettre un canal analogique.

    L'entrée analogique se fait en "AIN" (en provenance de la seconde partie) et la sortie numérique en série se fait en "DOUT" (à brancher sur le MAX232).

    L'oscillateur construit autour de C1+R1+R2 fournit la fréquence qui cadence le circuit et la transmission, soit 1200Hz pour obtenir un débit standard de 1200 bauds. R2 sert à régler précisément cette fréquence.

    Le 4017 sert de séquenceur à 10 états.

    La base de temps C2+R3 permet de temporiser le démarrage du circuit à la mise sous tension.

    La base de temps C3+R5 introduit un léger retard pour garantir le séquencement correct des signaux de commande du convertisseur analogique/numérique.

    R4 impose un niveau de tension quand la sortie du convertisseur est à haute impédance.

    Quand il est en position "test", le strap JP2 permet d'imposer une transmission continue de la valeur 01 sur l'interface RS232, afin de pouvoir régler précisément la fréquence de l'horloge du circuit à partir de la valeur effectivement reçue par le PC et du débit calculé sur une longue période. En utilisation normale, JP2 est en position "data".

    Quand il est en position "c15", le strap JP1 supprime la mesure d'un canal (I/O14) et la remplace par la valeur FF, qui peut servir de repère dans le flux de données. Quand il est en position "c16", les mesures des seize canaux sont transmis, et la synchronisation du flux par le PC doit être réalisée par un autre moyen.

    Un niveau haut sur la sortie "SYNC" indique que le canal I/O15 est en cours de conversion, et que sa mesure sera la prochaine transmise. Cette sortie peut être branchée, via le MAX232, à l'une des pins de handshake de l'interface RS232 (RI ou DCD, par exemple) afin de permettre la synchronisation du flux de mesures par le PC.


    Dans la seconde partie, on trouve un compteur binaire (4029) et un multiplexeur analogique à 16 canaux (4067). Le tout permet de présenter successivement les 16 entrées analogiques au convertisseur analogique/numérique de la partie précédente.


    Un chronogramme présente l'aspect des principaux signaux du montage.

    On remarquera le décalage entre le numéro du canal en cours de transmission sur l'interface RS232 et le numéro du canal en cours de conversion. Cela est dû au principe de fonctionnement du TLC549. Le logiciel d'acquisition du PC devra en tenir compte.

    Les bits transmis par le montage sont dans l'ordre inverse de celui attendu pour obtenir la valeur binaire finale (le TLC549 commence par le bit de poids fort, alors que la RS232 devrait commencer par le bit de poids faible). Le logiciel d'acquisition du PC devra également en tenir compte.

    Ne pas tenir compte du premier schéma, qui contient une erreur, mais qui reste pour la cohérence du fil. Le bon schéma est le dernier de la série, recopié du #21, et réputé juste.

    Modifié avec l'accord de PA5CAL
    Images attachées Images attachées
    Dernière modification par gienas ; 12/04/2007 à 20h07.

  20. #16
    PA5CAL

    Re : Interface capteurs RS232

    Voici un exemple de pseudo-code pour l'acquisition en continu des 16 canaux analogiques :
    Code:
    00: Initialisation de l'interface RS232
    
    01: Temporisation 2ms
    
    02: Nouvel octet reçu ?
        oui -> continuer
        sinon -> aller en 01
    
    03: Lecture de l'octet reçu
        "Mesure" = octet reçu
    
    04: Temporisation 2ms
    
    05: Bit synchro actif ?
        oui -> continuer
        sinon -> aller en 08
    
    06: "Synchronisation effectuée" = vrai
    
    07: "Numéro canal" = 1
    
    08: Synchronisation effectuée ?
        oui -> continuer
        sinon -> aller en 01
    
    09: Inverser l'ordre des bits de l'octet reçu
        "Mesure" = retourner("Mesure")
    
    10: Enregistrer l'octet pour le canal "Numéro canal"
        Tableau_mesures["Numéro canal"] = "Mesure"
    
    11: Incrémenter "Numéro canal"
    
    12: "Numéro canal" > 16 ?
        oui -> continuer
        sinon -> aller en 01
    
    13: Enregistrer les mesures des 16 canaux
        Tableau_mesures[1...16] -> fichier
    
    14: "Synchronisation effectuée" = faux
    
    15: Aller en 01

  21. #17
    PA5CAL

    Re : Interface capteurs RS232

    Voici un autre exemple de pseudo-code qui permet d'afficher une mesure du débit, réactualisée deux fois par secondes, afin de régler précisément la fréquence d'horloge du montage. L'heure système donnée par le PC doit être suffisamment précise (à quelques ms près).
    Code:
    00: Initialisation de l'interface RS232
    
    01: Noter l'heure initiale
        "T0" = heure()
    
    02: Initialiser les compteurs
        "Nbre overflow" = 0
        "Nbre trop lent" = 0
        "Nbre OK" = 0
        "Nbre autres" = 0
    
    03: Noter l'heure actuelle
        "T1" = heure()
    
    04: "T1" > "T0" + 0,5 s ?
        oui -> aller en 20
        sinon -> continuer
    
    05: Temporisation 2ms
    
    06: Test de l'état de l'interface RS232
    
    07: Overflow ?
        oui -> continuer
        sinon -> aller en 10
    
    08: Incrémenter "Nbre overflow"
    
    09: Aller en 03
    
    10: Nouvel octet reçu ?
        oui -> continuer
        sinon -> aller en 03
    
    11: Lire l'octet reçu
        "Test" = octet reçu
    
    12: "Test" = 00 ?
        oui -> continuer
        sinon -> aller en 15
    
    13: Incrémenter "Nbre trop lent"
    
    14: Aller en 03
    
    15: "Test" = 01 ?
        oui -> continuer
        sinon -> aller en 18
    
    16: Incrémenter "Nbre OK"
    
    17: Aller en 03
    
    18: Incrémenter "Nbre autres"
    
    19: Aller en 03
    
    20: Effacer le débit et les indicateurs affichés
    
    21: "Nbre trop lent" = 0 ?
        oui -> aller en 23
        sinon -> continuer
    
    22: Afficher l'indicateur "Trop lent"
    
    23: "Nbre autres" = 0 ?
        oui -> aller en 25
        sinon -> continuer
    
    24: Afficher l'indicateur "Valeurs inattendues"
    
    25: "Nbre overflow" = 0 ?
        oui -> aller en 28
        sinon -> continuer
    
    26: Afficher l'indicateur "Overflow"
    
    27: Aller en 01
    
    28: Calculer le nombre d'octets reçus
        "Nbre" = "Nbre trop lent"+"Nbre OK"+"Nbre autres"
    
    29: Calculer le débit
        "Débit" = "Nbre"/("T1"-"T0")
    
    30: Afficher le débit
    
    31: Aller en 01

  22. #18
    theshadow18

    Re : Interface capteurs RS232

    Merci beaucoup à vous, ça à l'air de répondre parfaitement à ce que je recherche, mais t'as trouvé ça ou PA5CAL ?

  23. Publicité
  24. #19
    PA5CAL

    Re : Interface capteurs RS232

    Citation Envoyé par theshadow18 Voir le message
    t'as trouvé ça ou PA5CAL ?
    Dans ma tête. C'est mon métier.

  25. #20
    theshadow18

    Re : Interface capteurs RS232

    Par contre je vois pas comment ton horloge peut fonctionner, l'entrée Reset du 4017 passe à "0" apres l'initialisation, ce qui force l'entrée clock du 4017 à "1", c'est pas plutot une porte NOR qu'il faut en entrée de Clock du 4017 ???

  26. #21
    PA5CAL

    Re : Interface capteurs RS232

    Citation Envoyé par theshadow18 Voir le message
    Par contre je vois pas comment ton horloge peut fonctionner, l'entrée Reset du 4017 passe à "0" apres l'initialisation, ce qui force l'entrée clock du 4017 à "1", c'est pas plutot une porte NOR qu'il faut en entrée de Clock du 4017 ???
    En fait il y a une erreur de retranscription dans le schéma. Désolé.

    L'entrée de l'oscillateur doit être branchée à l'entrée de la porte NAND du reset (sur la capa) et non à la sortie.

    Le schéma corrigé est en pièce jointe.

    J'espère que je n'ai pas fait d'autre erreur.
    Images attachées Images attachées  

  27. #22
    gienas
    Modérateur

    Re : Interface capteurs RS232

    Bonjour PA5CAL et tout le groupe

    Citation Envoyé par PA5CAL Voir le message
    ... il y a une erreur de retranscription dans le schéma ... Le schéma corrigé est en pièce jointe ...
    Il y a donc un schéma inutilisable en #15. Pour la "propreté" du fil, n'y aurait-il pas quelque chose à faire? Ceci bien entendu et si possible, sans dénaturer la discussion.

    - Mettre une mise en garde sur le #15;
    - supprimer l'image fausse de ce #15 (pas top)
    - la remplacer par la bonne (pas top)
    - autre(s) auxquels je n'ai pas pensé...

    Que proposes-tu?

    Après que le problème aura été réglé, je pourrai supprimer mon intervention ici, et d'éventuelles réponses relatives à cette modification proposée, qui peut être prise comme un HS

  28. #23
    PA5CAL

    Re : Interface capteurs RS232

    Citation Envoyé par gienas Voir le message
    Bonjour PA5CAL et tout le groupe

    Il y a donc un schéma inutilisable en #15. Pour la "propreté" du fil, n'y aurait-il pas quelque chose à faire? Ceci bien entendu et si possible, sans dénaturer la discussion.

    - Mettre une mise en garde sur le #15;
    - supprimer l'image fausse de ce #15 (pas top)
    - la remplacer par la bonne (pas top)
    - autre(s) auxquels je n'ai pas pensé...

    Que proposes-tu?

    Après que le problème aura été réglé, je pourrai supprimer mon intervention ici, et d'éventuelles réponses relatives à cette modification proposée, qui peut être prise comme un HS
    Mettre un message d'avertissement sur le #15 me convient tout-à-fait.

    Ou bien on pourrait remplacer le schéma erroné ET mettre un message pour relater la modification.

    Fais au mieux, selon ton avis.

  29. #24
    gienas
    Modérateur

    Re : Interface capteurs RS232

    Citation Envoyé par PA5CAL Voir le message
    ... Fais au mieux, selon ton avis.
    J'ai fait ce que j'ai pu. Si ça te convient, je supprime les #22, 23, 24 (présent) et celui de ton approbation éventuelle
    (qui devrait clore le HS)

  30. Publicité
  31. #25
    domija

    Re : Interface capteurs RS232

    Bonjour à tous

    Je suis très intéressé par l'article que je viens de lire avec beaucoup attention.
    Mes compétences en électronique sont assez ancienne (Etudiant) et depuis je me suis orienté vers le développement de logiciel.

    Aujourd'hui, je suis en charge d'un projet qui intégrera un petit montage électronique.
    C'est la que commence mes soucies.

    J'ai besoin d'un système pour lire des températures avec une sonde TP100 en liaison avec une interface RS232.
    J'ai cherché des solutions avec des circuits MAX232 et TLC549 mais j'avoue que j'ai besoin d'aide.

    Si vous avez des exemples de montage mais sans le circuit MIC640 que je ne trouve plus dans le commerce cela m'arrangerais beaucoup.

    Je vous remercie par avance

Discussions similaires

  1. interface 1 wire - rs232 maison
    Par j_francois70 dans le forum Électronique
    Réponses: 1
    Dernier message: 21/07/2007, 09h54
  2. cherche carte interface capteurs-PC
    Par alainL dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 24/11/2006, 19h22
  3. Interface RS232 <=> JTAG
    Par WhiteBird dans le forum Électronique
    Réponses: 2
    Dernier message: 17/07/2006, 00h01
  4. interface RS232 isolée
    Par j.mcgrath12 dans le forum Électronique
    Réponses: 3
    Dernier message: 05/05/2006, 14h12
  5. monnayeur et interface rs232
    Par servietsky dans le forum Électronique
    Réponses: 2
    Dernier message: 08/10/2005, 18h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.