Forum Linux.embarqué Problème de communication

Posté par . Licence CC by-sa.
Tags : aucun
0
3
avr.
2018

Bonjour,

Je suis un grand débutant sur Linux et plus particulièrement avec le Raspberry 3b+ (le dernier)….
Je dois aujourd'hui réussir à envoyer des trames sur l'usb du Rpi et arriver à les capter par le terminal mais je n'arrive à rien…

A terme je voudrais pouvoir contrôler un matériel que je brancherais en USB sur le RPI… (envoi de données, réception…)

Mais je m’emmêle complètement les pinceaux et ne sait plus où donner de la tête… (libusb, minicom…dans le dev, j'ai beaucoup de tty mais pas de ttyUSB, je ne sais plus où chercher)

Auriez vous des conseils à me donner pour m'orienter au mieux dans cette tâche?

Je vous remercie d'avance.

  • # Quel type de matériel ?

    Posté par (page perso) . Évalué à 1.

    Que dit dmesg quand tu branches ce mystérieux matériel ?

    • [^] # Re: Quel type de matériel ?

      Posté par . Évalué à 1.

      Alors pour le moment, on me demande de me connecter d'un pc au Raspberry en SSH (ça c'est bon), et à partir de là, de lancer des trames USB et d'arriver à les récupérer (exemple: j'envoie toto, il me répond toto ok)…. Mais je patauge, je ne sais pas où trouver mes usb, et comment interagir avec, par le biais du terminal … Je crois que je ne suis même pas assez clair ^

      La connexion avec le matériel se fera dans un second temps (nouveau matériel qui n'est pas encore dispo)…

      • [^] # Re: Quel type de matériel ?

        Posté par . Évalué à 3.

        La connexion avec le matériel se fera dans un second temps (nouveau matériel qui n'est pas encore dispo)…

        ca va etre difficile de simuler si on ne te donne aucune info sur le futur materiel.

        • soit c'est un materiel "standard" qui va parler sur l'USB comme sur un port serie (PL2303 ou FTDI inside)
          auquel cas tu peux programmer et simuler un port serie avec un programme qui lit, et un programme qui ecrit sur le port

        • soit c'est une materiel "exotique/proprio" qui a son propre protocole et tu n'arriveras de toute facon à rien sans la documentation de ce dit protocole.

        neanmoins pour le premier cas, sache que ton port, comme le reste sous linux est un fichier,
        tu peux te contenter d'ecrire dessus/dedans, et tu peux l'ouvrir pour lire ce qu'il s'y passe.

        ex :
        dans un ecran :

        tail -f /dev/null

        dans l'autre

        echo "toto" >/dev/null

        il devrait apparaitre toto sur le premier ecran

        • [^] # Re: Quel type de matériel ?

          Posté par . Évalué à 1.

          Merci pour ce début de réponse…
          Je pense que le matériel sera un USB standard puisque je dois arriver à communiquer avec l'USB, le port RS232 et l'ethernet après. Le matériel sera une console sur laquelle je dois effectuer des tests… Mais Linux est tout nouveau pour nous…

          Par contre j'ai essayé tes deux commandes en ouvrant 2 écrans Putty mais je n'ai rien d'affiché à l'écran … Quand je tape tail -f /dev/null, il ne se passe rien, et la deuxième me renvoie à mon identifiant@raspberrypi …

          En vous remerciant de votre aide,

          • [^] # Re: Quel type de matériel ?

            Posté par . Évalué à 2.

            Je pense que le matériel sera un USB standard puisque je dois arriver à communiquer avec l'USB, le port RS232 et l'ethernet après

            c'est deja un debut,
            demande donc à ton maitre de stage quel est le protocole utilisé pour la communication sur l'USB,
            comme evoqué, si ca se trouve ton USB sera configuré comme un port serie classique (USB = RS232)

            ensuite dans la documentation du materiel tu trouveras comment lui parler.
            faut il faire un "hello" avant de parler, ou une commande "macommande\0", etc

  • # Deux trois choses à comprendre...

    Posté par . Évalué à 1.

    L'usb n'est pas qu'une super liaison série, c'est surtout un bus de communication .
    Un bus avec un maitre (host) et un/des esclave (device)
    Tu dois définir qui est le maitre et qui est esclave et invoquer les briques logiciel correspondante.

    Si ton RPI est device et ton PC host, alors sur le RPI tu dois avoir un kernel avec les modules host de non-installé pour le port spécifique (UHCI/EHCI)et les modules usb-gadget et g_serial d'installer et configurer pour gere le port. En branchant ton RPI sur le PC il verra un nouveau port usb-série de disponible.

    Si ton RPI est host il faut faire l'inverse.

    Si au final tu dois communiquer avec un device qui ne fera pas une émulation de port série il faudra utiliser libusb pour implémenter son protocole de communication spécifique OU développer un module kernel.

    • [^] # Re: Deux trois choses à comprendre...

      Posté par . Évalué à 1.

      Nota : En regardant la notice du RPI3 tu n'as en fait aucun choix, les ports USB passe par un LAN9514 qui fais HUB donc le rpi3 est obligatoirement HOST, tu peut passer ton pc en device (usb_gadget et g_serial à configurer sur ton pc) et quand tu le branchera sur ton RPI il verra un nouveau port usb-serial

      Pour faire un device usb seul le rpi zero dispose d'un port usb en connexion direct avec le proc que tu peut alors configurer en gadget via les modules pré-cités.

  • # terminé

    Posté par . Évalué à 1.

    Bonjour,

    Problème réglé, je me cassais la tête à vouloir faire de la comm très bas niveau, mais en fait le chef voulait seulement que j'arrive à lire, écrire sur une clé USB par exemple …
    Prochaine étape scrutage des ports, je vais me renseigner et revient vers vous si besoin d'aide, mais au moins ça c'est bon ….

    Merci pour l'aide apportée ;)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.