Forum Linux.général Acquisition de données (USB temps réel) sous Linux Xenomai

Posté par  .
Étiquettes : aucune
0
23
juin
2008
Bonjour,

je dois faire l'achat d'un module USB d'acquisition de données fonctionnant sous Linux + Xenomai.

Le 6218 de chez National Instruments m'intéresse, il est livré avec drivers linux.

Je voulais m'assurer que ce matériel fonctionnera avec l'API Xenomai, RTDM et Comedi. J'aurais certainement à modifier ou à créer un driver s'adaptant aux contraintes temps réel.

Comment s'assurer que ce matériel fonctionnera avec Xenomai ?

Quelles sont les méthodes traditionnelles pour créer ou modifier un driver pré-existant afin de le porter vers les API Linux temps réel ?

Merci,
Antoine
  • # usb4rt est ton ami

    Posté par  . Évalué à 2.

    Il te faudra probablement une pile usb temps-réel
    http://developer.berlios.de/projects/usb4rt
    • [^] # Re: usb4rt est ton ami

      Posté par  . Évalué à 1.

      Merci, effectivement on m'en avait parlé.

      Et sais-tu s'il existe des méthodes "génériques" qui permettraient à un développeur quelconque de créer un driver pour un matériel bien particulier, qui plus est en temps réel ?

      A-t-on nécessairement besoin des sources des drivers natifs ou/et de la documentation technique détaillée du matériel pour espérer faire quelque chose ?

      je doute que NI livre les sources...
      • [^] # Re: usb4rt est ton ami

        Posté par  . Évalué à 2.

        C'est sûr que si t'as les sources ou la documentation technique, ça aide.
        Ce que tu peux faire, c'est utiliser un sniffer usb pour tracer les trames, après selon la complexité du gadget, ça te prendra plus ou moins de temps. Snoopy Pro est pas trop mauvais mais il tourne sous Win-beurk
        http://sourceforge.net/projects/usbsnoop/


        Quelques ressources:
        http://www.linux-usb.org/
        http://www.lrr.in.tum.de/Par/arch/usb/usbdoc/

        Il n'y a pas vraiment de méthodes génériques. Si tu as les sources, étudie-les, fais les tourner, modifie-les (notamment en rajoutants des logs). Si tu ne les as pas, établis des cas d'utilisations simples et trace les communications de façon à retrouver les spécifications. Si tes spécifications sont bonnes, au bout d'un moment, tu dois avoir un comportement déterministe.
        Comme c'est de l'usb, tu pourras écrire un "brouillon" de pilote avec libusb, l'avantage c'est que c'est en espace utilisateur, ça te permettra de tester rapidement les choses sans faire planter ta machine. Ben oui, pas de débogueur en espace noyau !
        Bien sûr, tu peux faire les choses en parrallèle, si tu as compris comment initialiser ton gadget, tu commencer à écrire ton pilote et continuer le sniffage à côté etc ...

        http://libusb.sourceforge.net/doc/
        • [^] # Re: usb4rt est ton ami

          Posté par  . Évalué à 1.

          ok, j'y vois plus clair, encore merci.

          Pour ce qui est du produit NI, il semblerait qu'il existe "NI-KAL, the Hardware Abstraction Layer for the NI products", qui permettrait "éventuellement" de le faire fonctionner sous Xenomai.

          Sinon il existe aussi NI MHHDDK ( National Instruments Measurement Hardware Driver Development Kit ) qui est une API bas niveau forcément plus frustre.

          J'ai pu télécharger la "register map" de la série M, qui correspond au module USB 6218. Ce n'est donc pas spécifique à ce produit et il est mentionné que la documentation n'est pas complète. Cela reste certainement une précieuse aide. J'attends des exemples de drivers par mail.

          Avec ces éléments, j'espère pouvoir m'en sortir...

Suivre le flux des commentaires

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