i2c adapter、i2c总线控制器、I2C bus(帖子)
来源:互联网 发布:三维地质演示软件 编辑:程序博客网 时间:2024/04/29 04:57
i2c adapter是软件上抽象出来的i2c总线控制器接口
物理上一条i2c总线可以挂接多个硬件设备(slave),一个CPU可以挂接多条i2c总线(想象一下PCI总线)
i2c总线控制器就是CPU访问I2C总线的硬件接口,也就是你说的那几个寄存器
attach_adapter:I2C driver在调用I2C_add_driver() 注册时,对发现的每一个I2C adapter(对应一条I2C 总线)都要调用该函数,检查该I2C adapter是否符合I2C driver的特定条件,如果符合条件则连接此I2C adapter,并通过I2C adapter来实现对I2C总线及I2C设备的访问。
detach_client:I2C driver在删除一个I2C device时调用该函数,清除描述这个I2C device的数据结构,这样以后就不能访问该设备了。
command:针对设备的特点,实现一系列的子功能,是用户接口中的ioctl功能的底层实现
物理上一条i2c总线可以挂接多个硬件设备(slave),一个CPU可以挂接多条i2c总线(想象一下PCI总线)
i2c总线控制器就是CPU访问I2C总线的硬件接口,也就是你说的那几个寄存器
Linux I2C框架搞那么复杂是为了通用性及为了符合Linux内核驱动模式而制定的。
简单点了, 你的开发板上有几个I2C接口,就有几个adapter , 也就是有几条I2C bus , I2C CLIENT 对应的就是你的外围I2C 设备,有几个就有几个CLIENT ,
把这些设备插入开发板, 对应其中的一条BUS, 那么相应的就对应了其中的一个ADAPTER , 接下来的就是 CLIENT 与 ADAPTER 勾搭成对了, 后面就是做该做的事了
一个I2C设备驱动的开发过程。实现的关键分为两个部分,1. 对I2C core的接口,必须实现 struct i2c_drvier数据结构中的几个特定的功能函数。这些函数是I2C驱动与I2C总线物理层(I2C控制器)和I2C设备器件之间通信的基础。2.对用户应用层的接口,必须实现struct file_operation数据结构中的一些特定功能的函数,如 open ,release , read ,write,lseek等函数。以上两类接口中,对I2C core的接口是对I2C设备访问的基础,实现对I2C总线具体的访问方法;对用户应用层的接口则是方便应用程序开发,实现设备特定功能的必不可少的部分。
attach_adapter:I2C driver在调用I2C_add_driver() 注册时,对发现的每一个I2C adapter(对应一条I2C 总线)都要调用该函数,检查该I2C adapter是否符合I2C driver的特定条件,如果符合条件则连接此I2C adapter,并通过I2C adapter来实现对I2C总线及I2C设备的访问。
detach_client:I2C driver在删除一个I2C device时调用该函数,清除描述这个I2C device的数据结构,这样以后就不能访问该设备了。
command:针对设备的特点,实现一系列的子功能,是用户接口中的ioctl功能的底层实现
- i2c adapter、i2c总线控制器、I2C bus(帖子)
- I2C Bus
- i2c bus
- I2C总线(转)
- I2C总线(2)
- I2C总线(1)
- i2c总线(2)
- i2c总线(3)
- i2c总线(1)
- 关于I2C总线介绍的一个重要网站 http://www.i2c-bus.org/i2c-bus/
- I2C总线
- I2C总线
- I2C总线
- I2C总线
- i2c总线
- I2C总线
- I2C总线
- I2C总线
- mac下vim安装
- 对象的强、软、弱和虚引用
- 100个Java经典例子(1-10)初学者的利器高手的宝典JavaSE
- Oracle多行记录合并/连接/聚合字符串的几种方法
- 每天一道算法题,菜鸟也能成高手!哈哈(2011年10月篇)
- i2c adapter、i2c总线控制器、I2C bus(帖子)
- 逝去的岁月
- android学习——ExpandableListView控件
- SimpleCursorTreeAdapter
- 2011 上海交通大学考博金融学【zz】
- 经典算法:冒泡排序和选择排序
- 修改initrd.gz的方法
- Java线程学习笔记之并发集合类
- ResourceCursorTreeAdapter