IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Communication Port USB [Non suivi]


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 5
    Points
    5
    Par défaut Communication Port USB
    Bonjour. Dans le cadre des mes études je dois réaliser un capteur de température. dans le montage électronique nous devons inclure un port USB pour pouvoir connecté le capteur a un PC. Ce port USB servira a aller récolter des informations(les températures) toutes les X secondes, ces informations devront être enregistré dans un fichier. Puis nous devons faire une alerte sonore ou textuel, lorsque nous dépassons une valeur Y de la températures.

    Nous devons programmer en language C sous Linux. Je possède des notions de ce language mais nous n'avons jamais fait du controle de port USB via ce language.

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Programmation- Communication Port USB
    Citation Envoyé par gdumouli
    Bonjour. Dans le cadre des mes études je dois réaliser un capteur de température. dans le montage électronique nous devons inclure un port USB pour pouvoir connecté le capteur a un PC. Ce port USB servira a aller récolter des informations(les températures) toutes les X secondes, ces informations devront être enregistré dans un fichier. Puis nous devons faire une alerte sonore ou textuel, lorsque nous dépassons une valeur Y de la températures.
    Cool, j'en veux un !
    Nous devons programmer en language C sous Linux. Je possède des notions de ce language mais nous n'avons jamais fait du controle de port USB via ce language.
    C'est quoi un language ?

    Et ta question sur le langage C est ?

    Ok, j'arrête de faire le malin. Vu du C, un port USB n'est qu'un périhérique comme un autre. Donc, si il a un nom de fichier associé, fopen() fread(), fwrite() etc. comme n'importe quel flux.

    Mais il est possible qu'il faille contrôler le périphérique directement. Pour celà, on utilise les fonctions système. Pour Linux (qui est conforme à POSIX.1), ce sont les fonctions open() close() read() write() ioctl() select(), poll() etc.

    Il doit y avoir une documentation précise sur ta machine qui indique les détails, notamment quels paramètres passer à ioctl().

    man usb

    sinon, le header /usr/include/usb.h donne quelques pistes... et fourni une API plus ou moins partique (usb_xxx())

    http://docs.sun.com/app/docs/doc/816-5173/6mbb8advr?a=view

    Détails sur le forum "Développement Linux".
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Merci Manu. Je dois faire çà pour dans 2 mois . je n'y arriverai jamais . je sais qu'on va commencé par déterminé les bibliothèques, les variables. Je sais faire de la progarmmation basique, style tétris pour ma 1ere anné d'informatique ( j'avoue j'ai galéré a mort et il y a des trus qui merdent grave mais bon ... ) Je continue a rasembler des petites notions par ci par là pour le port USB, mais toujours aucun programme qui se tape.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gdumouli
    <...>Je continue a rasembler des petites notions par ci par là pour le port USB, mais toujours aucun programme qui se tape.
    Tu as essayé usb_open(), usb_close() ? Il se passe quoi ?
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    J'ai pas encore créer mon capteur. Et on doit déja créer la programmation.

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gdumouli
    J'ai pas encore créer mon capteur. Et on doit déja créer la programmation.
    Ok, mais est-ce qu ça compile, as-tu les headers qui vont bien, les bibliothèques ... Et puis tu dois bien avoir une clé USB pour faire des essais, non ?
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 23
    Points : 5
    Points
    5
    Par défaut
    Avec une clé, a oui!!!! Explique moi que dois-je faire concrétement ?? Créer un programme qui permet d'ouvrir la clé ???

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gdumouli
    Avec une clé, a oui!!!! Explique moi que dois-je faire concrétement ?? Créer un programme qui permet d'ouvrir la clé ???
    On verra plus tard. Commence déjà par écrire du code qui compile et qui ne plante pas la machine.
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Slt,
    Je ne sais pas trop ou tu en es depuis le temps, mais comme sa a vu de nez je me pencherai du coté sur la norme USB qui te donne plien d'info pour communiquer sur un port USB. Tu trouveras une structure qui te permet d'envoyer tous ce que tu veux sur le port USB. En voici un exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    typedef union DATA_PACKET
    {
        byte _byte[USBGEN_EP_SIZE];  //For byte access
        word _word[USBGEN_EP_SIZE/2];//For word access(USBGEN_EP_SIZE msut be even)
        struct
        {
            enum
            {
                READ_VERSION    = 0x00,
                ID_BOARD        = 0x31,
                UPDATE_LED      = 0x32,
                SET_TEMP_REAL   = 0x33,
                RD_TEMP         = 0x34,
                SET_TEMP_LOGGING= 0x35,
                RD_TEMP_LOGGING = 0x36,
                RD_POT          = 0x37,
                RESET           = 0xFF
            }CMD;
            byte len;
        };
        struct
        {
            unsigned :8;
            byte ID;
        };
        struct
        {
            unsigned :8;
            byte led_num;
            byte led_status;
        };
        struct
        {
            unsigned :8;
            word word_data;
        };
    Avec cette structure tu peux la paramètrée pour envoyer des requêtes a ton capteur puis recevoir la réponse à ta requête.
    Si tu veux plus d'info il y à ce lien : http://acquier.developpez.com/cours/USB/
    qui est très bien fais, et si tu veux encore plus d'info fais moi signe.
    Ciao

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 69
    Points : 69
    Points
    69
    Par défaut
    Pour créer ton capteur, utilise un composant comme le FT232 de FTDI http://www.ftdichip.com
    Ensuite, vu du PC et de ton microcontrôleur, ta connection USB devient un port série.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut endpoint FT232
    Bonjour, je voudrais utiliser un module USBMOD3 (composant FT232 intégré), mais comme j'ai beaucoup de données à envoyer, je voulais savoir le nombre d'endpoints maximal en entrée et en sortie, j'ai pas trouvé cette information dans les datasheets de FTDI chip.

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Points : 1 111
    Points
    1 111
    Par défaut [Linux Kernel Interface]
    Bonjour. J'ai eu le même genre de projet, et non abouti. Voilà les indications que je peux vous donner :

    Inutile de choisir une liaison rapide pour un objet de type thermomètre. Les première liaisons à 1,5Mbits/s ou encore les USB 2.0 en mode faible bande passante (12Mbits/s) devraient suffire, je pense que vous devez déjà le savoir.

    Le kernel linux est très bien documenté au sujet de l'interface USB, et dispose de toutes les fonctions de programmation de driver en adéquation avec la norme, je crois qu'au prix d'éplucher un peu de doc vous n'aurez pas de mal à programmer un driver vite fait bien fait.

    Avant toute chose il est indispensable de consulter la norme USB pour en savoir plus à ce sujet, il existe pas mal de liens sur le web ...

    Pour l'API du kernel, c'est assez costaud comme documentation, il y a un bon tutorial sur www.developpez.com pour apprendre la base de la conception de driver pour le kernel Linux, qui est certainement plus facile à appréhender que toute cette documentation en anglais. De même pour le posteur précédent qui a donné un lien vers une documentation de la norme USB sur www.developpez.com , n'hésitez pas à la consulter.

    Bon courage.

  13. #13
    Membre du Club Avatar de Electroniktor
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 150
    Points : 55
    Points
    55
    Par défaut
    Bonjour !

    Je n'ai aucune connaissance sur le passage d'informations via le port USB, mais pour la suite de ton projet, lorsque tu devras faire une alerte si un seuil de température est dépassé, je te conseille d'aller voir sur ce lien où plein de choses sont expliquées !

    Cordialement !

    PS : si par la suite tu as des problèmes avec l'éléctronique, tu peux m'en faire part ! J'ai aboutis à la programmation en voulant utiliser des micros-controleurs dans les circuits éléctroniques de mes robots !

Discussions similaires

  1. API communication port / USB
    Par usbeck dans le forum Visual C++
    Réponses: 15
    Dernier message: 24/03/2009, 11h01
  2. communication Port Usb en mode non bloquant
    Par laurentleroy dans le forum C
    Réponses: 4
    Dernier message: 28/10/2007, 23h29
  3. Communication Port USB
    Par Skarsnick dans le forum Administration système
    Réponses: 2
    Dernier message: 28/03/2007, 13h41
  4. communication port usb
    Par ledaker dans le forum Windows
    Réponses: 3
    Dernier message: 21/03/2006, 09h28
  5. Communication ASP et Port USB ?
    Par nizarsm dans le forum ASP
    Réponses: 2
    Dernier message: 20/01/2006, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo