通过SMBus访问/监控电池状态

时间:2010-07-21 20:35:00

标签: linux-kernel usb linux-device-driver power-management i2c

我当前正试图通过SMBus监控我的电池状态。

我有一块电池和一块不断输出电池状态的控制板。

然后通过I2C-USB模块将该控制板连接到我的主板。

我需要编写一个程序来识别SMBus连接并将电池状态传输给用户。

在处理智能电池和I2C / SMBus方面,我是初学者,我对如何处理这个问题感到有些迷茫。

任何建议的帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

你的问题有点缺乏。什么样的I2C-USB模块?或者更确切地说它是否带有Linux驱动程序?如果是的话,你可能不需要写一个。一个应用程序会做。您可以阅读有关I2C和SMBus here的更多信息。

基本上你需要的是控制板的I2C地址(单字节)。当您拥有地址时(作为主站)通过I2C总线向控制板发出读取命令,并使用其地址读取响应。如果有一个I2C-USB模块的驱动程序,这应该足够简单。插入设备并打开()设备(/ dev / [i2c-usb-name],其中[i2c-usb-name]是设备的名称)。然后按照驱动程序实现者指南,了解如何通过该设备设置和发送数据(通常使用read()/ write()或ioctl())。以下是从用户空间使用I2C的一些其他信息:http://www.mjmwired.net/kernel/Documentation/i2c(在左侧菜单中选择主题)。

如果您必须自己编写驱动程序,那么Linux设备驱动程序初学者的第一站就是LDD3。阅读它,这是一个非常愉快的阅读。