2014-04-08 设备管理之I2C框架

内核:Linux 2.6.38


例子:

i2c设备驱动程序:Z2_battery.c

i2c总线驱动程序:i2c-s3c2410.c


I2C总线,同步串行接口,存在两条信号线SCL,SDA,因此简化了硬件资源和PCB板的布线,适合于很多设备。适合于交换少量数据,速度较慢的场合,速度最快只能达到400kbit/s。


i2c通常是作为某些设备的辅助手段,它适用于交换少量数据,速度较慢,在i2c_driver中通常有attach_adapetr, detach_client来检测设备的接入和分离,在接入设备时,我们通常可以注册一些基本操作,在分离时,清空这些操作,有些不依赖于i2c的操作,可以再调用入口和退出出口来操作。这两个函数最好不要用了,可使用新增的的probe和remove


Linux内核中的I2C驱动框架主要分为以下几个部分:

(1)i2c-core:即I2c核心,它提供了i2c总线驱动和i2c设备驱动的注册,注销,以及i2c的通信方法,与具体硬件适配器无关,提供探测设备,地址的等体系无关代码。i2c-core其实也就是i2c总线驱动和i2c设备驱动的桥梁,也与i2c-dev相连。

(2)i2c总线驱动:是针对i2c的硬件体系中适配器端的实现,i2c-adapter,i2c-algorithm的实现,涉及i2c通信底层,如如何配置,如何发送,接受等.

(3)i2c设备驱动:是针对i2c的硬件体系中设备端的实现,i2c-driver,i2c-client,与底层无关,通过设备地址,通常是桥梁,比如在字符设备中来注册i2c设备驱动,然后read,write中既可以用i2c通信的方式来获得相关数据。

(4)i2c-dev,提供给用户空间访问i2c设备的方法,其实也就是内核中已有一套实现好的i2c通信方法,有固定的主次设备号,用户空间可通过相关规范来访问。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值