USB dur, dur.

tabliertablier Membre
18:49 modifié dans Actualités #1
Je vais avoir des questions à  vous poser sur l'USB dans un cas réel. Mais comme tout un chacun j'ai commencé par naviguer sur le Web et par lire de la documentation Apple.  J'en conclus que j'ai deux niveaux de compréhension à  franchir:
1 - Comment marche le bus USB
2 - Comment on s'en sert sous MacOSX.

Pour le 1, j'ai trouvé 2 adresses ou les explications sont en Français, ce qui simplifie la compréhension mais risque parfois d'amener des erreurs d'interprétations.
1 court sur les principes, mais comporte un exemple complet [url=http://"http://g.fondeville.free.fr/usb_cours.html"]g.fondeville[/url]
2 S'attache plus précisément à  la norme USB (téléchargeable en pdf): [url=http://"http://acquier.developpez.com/cours/USB/"]b.acquier[/url]
Si vous en connaissez d'autres indiquez-les, merci.

Sur le 2, je n'ai rien trouvé en dehors de la doc Apple, et ça parait plus complexe que le 1!!!

Réponses

  • wiskywisky Membre
    18:49 modifié #2
    Il y a également http://www.usb.org/home (anglais) pour la norme USB. Après il y a plusieurs moyen d'utiliser le bus USB.
    La première question qui me viens à  l'esprit c'est : à  tu la possibilité de modifier le firmware du matériel  ?
    Si oui, cela aide grandement. Si non, c'est moins simple mais faisable.
    Deuxième chose à  faire dans le cas du non, connaitre la configuration USB du périph. Pour cela ouvre USB Prober qui est dans les utilitaires des dev tools et recherche ton périph. Ci-joint usb prober pour le clavier Apple. Il montre que le périphérique utilise la class USB HID.
    Le but des class USB est de simplifier la communication de certain apareil ayant le même but. Les périphérique d'entrée sont facilement des HID ce qui évite le développement de pilote spécifique. Les fonctions de base fonctionne nativement.
    Un exemple concret : une webcam VideoClass sera automatiquement reconnu par iChat !

    Voilà  pour le début...
  • tabliertablier Membre
    mars 2010 modifié #3
    Là , tu me presses un peu. Je voulais d'abord lire les explications en Français avant d'aborder les textes Anglais.
    Néanmoins et pour d'autre raisons, j'ai mis un document incomplet à  cette adresse: Documation-Aconit
    Le document décrit ce qui à  déjà  été fait en électronique et indique que le PIC à  été programmé (c'est modifiable évidemment).
    Les deux premiers chapà®tres sont rédigés et explique bien le problème. Je suis électronicien, même si je programme en Obj-C, je n'ai jamais touché à  la programmation du noyau ou des drivers! L'informaticien qui m'accompagne dans ce projet travaille sur la parallellisation de problèmes complexes et ne connaà®t rien au Mac!

    Bon, Je vais continuer à  lire les docs.
  • wiskywisky Membre
    18:49 modifié #4
    Oublit tout de suite le pilote kext. Il faut écrire en C et c'est le meilleur moyen de faire planter le Mac !
    Il est possible d'embarquer le pilote USB dans le programme. Autre chose : fait attention au BIG-ENDIAN ou LITTLE-ENDIAN pour les infos de l'USB.
    En plus commencer sur l'usb avec une comunication BULK n'est pas de tout repos. Au final j'ai utilisé un frameworks privé (je peux pas te le passer il est payant).
    Autre infos qui te sera utile. Le pilotage USB se fait entièrement en C et il faut des class OBJ-C pour wrapper les fonctions.
  • tabliertablier Membre
    18:49 modifié #5
    Comme tu l'as vu le document n'est pas terminé!
    Oublit tout de suite le pilote kext
    J'en suis arrivé aussi à  cette conclusion: KEXT trop compliqué pour moi et pas nécessaire car une seule application se connectera sur le lecteur.  Fabien propose d'utiliser la libusb sur linux et sur mac. Est-ce que c'est faisable et une bonne idée, ou est-il préférable de faire quelque chose de plus "do it yourself"?
    Si j'utilise la libusb, faut-il la rentrer dans le code de l'application ou la compiler à  part et la mettre dans les ressources (frameworks?)  pour l'appeler quand c'est nécessaire?
    je peux pas te le passer il est payant
    c'est cher?  nota: comme c'est pour une association, nous travaillons juste pour le plaisir et la gloire!!!!! (le matériel nous a été remboursé).

    Pour ceux qui ont ouvert le document cité plus haut, que pensez-vous de ce projet?
  • wiskywisky Membre
    mars 2010 modifié #6
    dans 1269451228:

    Comme tu l'as vu le document n'est pas terminé!

    Bah pourtant c'est marqué sur la description du firmware du PIC 18F4550. Pour info le 2550 est moins gros et moins cher. Mais la production de masse n'étant pas le but cela ne change rien au projet !
    Autre point, j'aurai utilisé l'USB Class CDC qui permet de faire croire au système que le périph est un port com. Il y a des exemples de code dans PicBasicPro de Microchip. C'est compatible avec tout les systèmes actuels ! Et la priorité n'est pas le débit !

    dans 1269451228:

    Oublit tout de suite le pilote kext
    J'en suis arrivé aussi à  cette conclusion: KEXT trop compliqué pour moi et pas nécessaire car une seule application se connectera sur le lecteur.  Fabien propose d'utiliser la libusb sur linux et sur mac. Est-ce que c'est faisable et une bonne idée, ou est-il préférable de faire quelque chose de plus "do it yourself"?
    Si j'utilise la libusb, faut-il la rentrer dans le code de l'application ou la compiler à  part et la mettre dans les ressources (frameworks?)  pour l'appeler quand c'est nécessaire?

    Les solutions peuvent être nombreuses. Faire un frameworks de wrapping n'est pas nécessaire. Un classe ou deux suffirons. Il est même possible que cela existe déjà  dans le frameworks IOKit. Il faut fouiller car la doc est peu nombreuses !

    dans 1269451228:

    je peux pas te le passer il est payant
    c'est cher?  nota: comme c'est pour une association, nous travaillons juste pour le plaisir et la gloire!!!!! (le matériel nous a été remboursé).

    2000€ pour le code source du frameworks.

    dans 1269451228:

    Pour ceux qui ont ouvert le document cité plus haut, que pensez-vous de ce projet?

    Je répond quand même et je trouve ça génial !!!!
  • tabliertablier Membre
    18:49 modifié #7
    2000€ pour le code source du frameworks

    Oullala, c'est au dessus des possibilités d'une association. Pour l'instant l'ensemble du projet à  coûté 125 euro.
    Il est même possible que cela existe déjà  dans le frameworks IOKit. Il faut fouiller car la doc est peu nombreuses !
    et pas évidente pour moi, car je n'y connais rien au départ!!!
    Je réponds quand même et je trouve ça génial !!!!
    stoooop! j'ai les chevilles qui gonflent et je ne vais plus rentrer dans mes godasses de montagne!

    Merci pour ces réponses.
  • wiskywisky Membre
    18:49 modifié #8
    Bon ok, j'arrête le cirage de pompe. Ceci dit là  où j'ai le plus appris sur l'USB et cela malgré mon anglais minable c'est sur le site du standard !

    Bonne chance !
Connectez-vous ou Inscrivez-vous pour répondre.