(1)LinuxI2C驱动--概述

来源:互联网 发布:钢筋含量 大数据 编辑:程序博客网 时间:2024/06/04 19:13

1. 写在前面

本人学生一枚,之前没有详细的接触过linux驱动,只是读过宋宝华的《Linux设备驱动开发详解》,这段时间想静下心来学习下linux i2c驱动,在网上找了很多资料,前辈们写的文章让我受益匪浅,但是一开始上手真的很痛苦,基本上大家都是从linux i2c体系结构的三大组成谈起:i2c核心,i2c总线驱动,i2c设备驱动,好抽象。所以我才想写这个文章,从一个新人的角度分享下我学习linux i2c驱动的心得,写的不对的地方欢迎大家批评指正。

因为对Linux设备模型还不是很熟悉,所以我按照如何去实现一个i2c传输来讲述,对于平台总线、设备与总线如何去匹配等暂时忽略。

当然很多东西都是我从网上搜刮而来的,也请大家原谅。我会把一些有用的博文链接放在最后,希望对大家有用。

2. I2C

I2C总线是由Philips公司开发的两线式串行总线,这两根线为时钟线(SCL)和双向数据线(SDA)。由于I2C总线仅需要两根线,因此在电路板上占用的空间更少,带来的问题是带宽较窄。I2C在标准模式下传输速率最高100Kb/s,在快速模式下最高可达400kb/s。属于半双工。

在嵌入式系统中,I2C应用非常广泛,大多数微控制器中集成了I2C总线,一般用于和RTC,EEPROM,智能电池电路,传感器,LCD以及其他类似设备之间的通信。

3. 硬件

开发板:飞凌OK210
CPU型号:Samsung S5PV210
EEPROM型号:AT24C01A
这里写图片描述

4. 软件

linux版本:Linux 2.6.35.7
I2C总线驱动:drivers/i2c/busses/i2c-s3c2410.c
eeprom驱动:drivers/misc/eeprom/at24.c

5. 参考

  • 《Linux设备驱动开发详解》 宋宝华
  • http://blog.csdn.net/liaozc/article/details/6655015 Zechin的专栏
  • http://www.linxh.blog.chinaunix.net/uid/25445243/sid-179653-list-1.html 辉辉308
  • http://www.linuxidc.com/Linux/2011-11/47651.htm Linux社区 作者:cjok376240497
  • http://www.embedu.org/Column/Column190.htm 作者:刘老师,华清远见嵌入式学院讲师。
  • http://www.linuxidc.com/Linux/2013-10/91993p14.htm Linux社区 作者:赵春江
0 0
原创粉丝点击