0

我正在尝试通过 SMBus 监控我的电池状态。

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

然后这个控制板通过一个 I2C-USB 模块连接到我的主板。

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

在处理智能电池和 I2C/SMBus 时,我是一个初学者,我对如何解决这个问题有些迷茫。

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

4

1 回答 1

1

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

基本上你需要的是控制板的 I2C 地址(一个字节)。当您获得地址时,您(作为主机)使用其地址通过 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 回答