2010-07-21 19 views
0

Je suis actuellement en train d'essayer de surveiller l'état de la batterie via SMBus.Accès/surveillance de l'état de la batterie via SMBus

J'ai une batterie avec une carte de contrôle qui sort constamment l'état de la batterie.

Cette carte de contrôle est ensuite connectée à ma carte mère via un module I2C-USB.

J'ai besoin d'écrire un programme pour reconnaître la connexion SMBus et transmettre l'état de la batterie à l'utilisateur. Je suis un débutant quand il s'agit de batteries intelligentes et I2C/SMBus, et je suis un peu perdu avec la façon d'aborder ce problème.

Toute aide de suggestions serait appréciée. Merci.

Répondre

1

Votre question fait un peu défaut. Quel type de module I2C-USB? Ou plutôt ça vient avec un pilote Linux? Si c'est le cas, vous n'aurez probablement pas besoin d'en écrire un. Une application va faire. Vous pouvez en savoir plus sur I2C et SMBus here.

Fondamentalement, ce dont vous avez besoin est l'adresse I2C de la carte de contrôle (un seul octet). Lorsque vous avez l'adresse vous (en tant que maître) question lire les commandes sur le bus I2C à la carte de contrôle en utilisant son adresse et lit la réponse. S'il y a un pilote pour le module I2C-USB, cela devrait être assez simple. Branchez l'appareil et ouvrez() l'appareil (/ dev/[i2c-usb-name] où [i2c-usb-name] est le nom de l'appareil). Ensuite, suivez le guide d'implémentation du pilote pour configurer et envoyer des données sur ce périphérique (généralement en utilisant read()/write() ou ioctl()). Voici quelques informations supplémentaires sur le travail avec I2C à partir de l'espace utilisateur: http://www.mjmwired.net/kernel/Documentation/i2c (sélectionnez les sujets dans le menu sur le côté gauche).

Si vous devez écrire le pilote vous-même, le premier arrêt pour un débutant de pilote de périphérique Linux est le LDD3. Lisez-le, c'est une lecture plutôt agréable.