您的位置:首页 > 其它

mini2440 I2C驱动的分析与学习(三)

2013-06-14 14:35 387 查看
最后说一下i2c和smbus的关系。

首先在一个链接中详细的介绍了smbus协议。http://www.mjmwired.net/kernel/Documentation/i2c/smbus-protocol

我理解的大意就是,i2c是smbus的一个子集,也就是说凡是支持i2c的设备应该都是支持smbus协议的。

在smbus协议中,定义了几种主机与外设交互的方法。支持i2c协议的设备可以通过这些方法进行交互,当然也可以有自己更加直接的方法。比如说在mini2440上面连接的eeprom,它就支持连续多字节的读和写,做多是16字节。这个操作起来是很方便的。

 

在i2c-core.c中,实现了i2c_smbus相关的一系列函数。如 i2c_smbus_write_byte、i2c_smbus_read_block_data等。

也就是说,用户操作eeprom既可以通过read、write等,也可以通过ioctl的smbus选项,对i2c设备进行读写。

个人觉得直接通过read、write更加方便。不过通过smbus选项应该是移植性更强。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: