I2C子系统
详细介绍I2C子系统
cjok376240497
这个作者很懒,什么都没留下…
展开
-
Linux驱动子系统之I2C(6)
6 总结下图根据之前的分析丰富的架构图Tips:I2C适配器驱动不一定是基于platform实现,这里是以s3c-i2c为例。 I2c_driver、i2c_client与i2c_adapterI2c_driver与i2c_client是一对多的关系,一个i2c_driver上可以支持多个同等类型的i2c_client。调用i2c_add_driver函数将I2c_dr原创 2011-11-23 19:17:20 · 4742 阅读 · 6 评论 -
Linux驱动子系统之I2C(5)
5 客户驱动5.1 概述I2C客户驱动是对I2C从设备的实现,一个具体的I2C客户驱动包括两个部分:一部分是i2c_driver,用于将设备挂接于i2c总线;另一部分是设备本身的驱动。I2C客户驱动程序主要由i2c_driver和i2c_client来描述。 5.2 实例源码分析好了,我们来深入了解客户驱动代码的实现,drivers/misc/eeprom/at24.c文件原创 2011-11-21 20:06:02 · 6553 阅读 · 3 评论 -
Linux驱动子系统之I2C(4)
4 总线驱动4.1 概述I2C总线驱动是I2C适配器的软件实现,提供I2C适配器与从设备间完成数据通信的能力,比如起始,停止,应答信号和master_xfer的实现函数。I2C总线驱动由i2c_adapter和i2c_algorithm来描述 4.2 S3c2440I2C控制器的硬件描述S3c2440处理器内部集成了一个I2C控制器,通过四个寄存器来进行控制:IIC原创 2011-11-19 12:25:53 · 4756 阅读 · 0 评论 -
Linux驱动子系统之I2C(3)
3 i2c-dev3.1 概述之前在介绍I2C子系统时,提到过使用i2c-dev.c文件在应用程序中实现我们的I2C从设备驱动。不过,它实现的是一个虚拟,临时的i2c_client,随着设备文件的打开而产生,并随着设备文件的关闭而撤销。I2c-dev.c针对每个I2C适配器生成一个主设备号为89的设备文件,实现了i2c_driver的成员函数以及文件操作接口,所以i2c-dev.c的原创 2011-11-17 17:31:31 · 6087 阅读 · 1 评论 -
Linux驱动子系统之I2C(2)
2 I2C子系统2.1 LinuxI2C子系统架构在内核中已经提供I2C子系统,所以在做I2C驱动之前,就必须要熟悉该子系统。2.2 三大组成部分1、I2C核心(i2c-core)I2C核心提供了I2C总线驱动和设备驱动的注册、注销方法,I2C通信方法(algorithm)上层的、与具体适配器无关的代码以及探测设备、检测设备地址的上层代码等。 2、I2C总原创 2011-11-16 19:58:15 · 6402 阅读 · 3 评论 -
Linux驱动子系统之I2C(1)
1 硬件特性1.1 概述I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2C在标准模式下传输速率最高100Kb/s,在快速模式下最高可达400kb/s。属于半双工。在嵌入式系统中,I2C应用非常广泛,大多数微控制器中集成了I2C总线,一原创 2011-11-15 11:27:00 · 5509 阅读 · 3 评论