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

Android Discussion :

Communication avec un périphérique USB


Sujet :

Android

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut Communication avec un périphérique USB
    Bonjour,

    Je suis en train de réaliser une application qui doit communiquer avec un ARM-M3 (sans OS) configuré comme device USB.
    Je travaille actuellement sur l'ARM en question et j'ai terminé la partie énumération.

    Il me faut évidemment choisir un mode de fonctionnement (vendeur spécifique/HID/ SDC etc), et donc je regarde côté Android ce qui est supporté et qui m'arrange le plus parce que le HID n'est pas le top pour moi (pour l'instant je travaille plutôt comme une interface USB/RS232 genre FTDI).

    J'ai bien trouvé l'USBManager et ce qui lui correspond, mais j'ai deux questions préalables pour éviter de tout fouiller avant de commencer la partie Android, et donc pour finir ma partie ARM:

    1- Sous windows on a le choix entre utiliser un class-generic (HID etc) pour un accès direct depuis l'application, soit utiliser un fonctionnement spécifique (vendor-specific etc) MAIS à condition d'écrire le driver correspondant. Sous Android j'ai cru comprendre qu'on adressait son device "en direct" et donc sans passer par un driver: Ai-je bien compris et donc puis-je configurer mon ARM comme je l'entend sans respecter les class-generic et sans devoir créer de driver spécifique?

    2- J'ai noté la remarque suivante dans le document USB Accessory: https://developer.android.com/guide/...html#working-a :

    "Note: Only one connected accessory is supported at a time."


    Est-ce que ça veut dire que je ne peux gérer qu'un seul device USB à partir de mon application (mon host Android dispose de 4 ports USB HOST), ou ai-je mal compris?
    Parce que cette application-ci doit gérer un seul device, mais la suivante devra au minimum en gérer 3 simultanément.

    Merci d'avance pour vos réponses,
    Claude

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Aucun spécialiste pour me répondre?
    Personne n'a développé d'application avec pilotage USB pour répondre à mes deux questions génériques?

    Je sais que tout est expliqué dans les documents relatifs à UsbManager, et je compte bien évidemment tout lire. C'est juste que pour l'instant je travaille côté device ARM et j'aimerai terminer avant de lire la doc côté host. Une réponse basique me ferait gagner du temps.

    Merci d'avance,
    Claude

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Par défaut
    Bon,

    Finalement j'ai démarré la partie Android et donc je me réponds à moi-même au cas où quelqu'un d'autre se poserait les mêmes questions:

    1- Effectivement on peut travailler en direct avec les devices USB SANS passer par un driver. L'OS prend en charge la partie énumération du device, dont:
    - La requête de device descriptor sur l'adresse 0
    - Le reset du device
    - Le SetAddress en fournissant l'adresse définitive USB
    - La requête du device descriptor sur l'adresse attribuée
    - Les requêtes de String Descriptor concernant les chaînes existantes
    - La requête du configuration descriptor
    - La commande SetConfiguration pour déterminer la configuration adaptée

    Ensuite la main est passée à l'application, qui peut donc commencer le dialogue sur un device totalement énuméré dont on se contente de récupérer les informations avant d'établir l'échange d'informations utiles

    2- En fait la partie "accessory" permet de connecter un accessoire en tant que host. Pour gérer des périphériques classiques "slave/device" il n'y a pas de limitation annoncée: On peut donc connecter plusieurs périphériques simultanément.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/04/2015, 20h36
  2. Communication avec un périphérique USB
    Par Corendos dans le forum C++
    Réponses: 14
    Dernier message: 07/11/2012, 13h21
  3. Communication avec un périphérique USB
    Par schneed dans le forum Linux
    Réponses: 0
    Dernier message: 26/02/2010, 11h38
  4. Réponses: 5
    Dernier message: 01/06/2006, 10h53
  5. [débutant] communication avec un périphérique
    Par Anthony17 dans le forum Delphi
    Réponses: 1
    Dernier message: 18/05/2006, 16h58

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