0

現在、SMBus を介してバッテリーの状態を監視しようとしています。

バッテリーの状態を常に出力するコントロールボードと一緒にバッテリーを持っています。

この制御ボードは、I2C-USB モジュールを介してマザーボードに接続されます。

SMBus 接続を認識し、バッテリーの状態をユーザーに送信するプログラムを作成する必要があります。

私はスマート バッテリと I2C/SMBus を扱うことに関しては初心者であり、この問題にどのように対処すればよいか迷っています。

提案の助けをいただければ幸いです。ありがとう。

4

1 に答える 1

1

あなたの質問は少し不足しています。I2C-USBモジュールとは?それともLinuxドライバーが付属していますか?もしそうなら、あなたはおそらくそれを書く必要はないでしょう。アプリケーションが行います。I2C と SMBus の詳細については、こちらを参照してください。

基本的に必要なのは、制御ボードの I2C アドレス (1 バイト) です。アドレスを取得したら、(マスターとして) そのアドレスを使用して I2C バス経由で制御ボードに読み取りコマンドを発行し、応答を読み取ります。I2C-USB モジュール用のドライバーがあれば、これは簡単です。デバイスを接続し、open() デバイス (/dev/[i2c-usb-name] [i2c-usb-name] はデバイスの名前) を開きます。次に、ドライバー実装ガイドに従って、そのデバイスを介してデータをセットアップおよび送信する方法を説明します (通常は read()/write() または ioctl() を使用)。ユーザー空間からの I2C の操作に関する追加情報を次に示します: http://www.mjmwired.net/kernel/Documentation/i2c (左側のメニューでトピックを選択)。

ドライバーを自分で作成する必要がある場合、Linux デバイス ドライバーの初心者が最初に立ち寄るのはLDD3です。それを読んで、それは非常に楽しい読書です。

于 2010-09-08T12:23:52.310 に答える