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选项应该是移植性更强。
首先在一个链接中详细的介绍了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选项应该是移植性更强。
相关文章推荐
- mini2440 I2C驱动的分析与学习(一)
- mini2440 I2C驱动的分析与学习(二)
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析【转】
- BeagleBoneBlack学习(3)——U-Boot中的I2C驱动分析
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的I2C驱动架构分析
- MINI2440i2c驱动学习二
- 学习笔记 --- LINUX I2C总线驱动框架分析
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】PowerPC + Linux2.6.25平台下的I2C驱动架构分析
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- 学习笔记 --- MINI2440 linux按键驱动代码分析
- MINI2440i2c驱动学习一
- linux驱动学习(八) i2c驱动架构(史上最全) davinc dm368 i2c驱动分析
- 内核编程学习笔记(004) 对某某游戏的驱动双开的分析及其学习
- Linux内核学习实践之红外驱动分析—RCA38KHz软解码
- Linux的i2c驱动分析