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

最后说一下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选项应该是移植性更强。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值