I2C设备驱动(一)--工作原理
2017-05-17 23:04
141 查看
1.协议简介
I2C,inter-IC control。该协议是由Philips公司提出的一种两线式通信方案,有如下特点: (1)只需要两线,SDA和SCL (2)连接到总线的设备有唯一地址,master-slave工作模式 (3)multi-master,需要arbitration来确定通信关系 (4)串行,半双工,standard mode最高100kb/s,fast mode最高400kb/s,high spedd mode最高3.4Mb/s (5)On-chip filtering保护数据的完整性
2. 工作原理
master和slave同时连接在SDA和SCL上,master需根据唯一的slave地址实现与对应设备间的通信
上图是一个实际的原理图,SDA和SCL与VDD间需要连接一个上拉电阻,电路中常见Rp为400k欧,SDA和SCL在非工作状态下都为高电平。
上图是一次I2C transaction的完整时序,需要注意sda在scl为高电平时有效
(1)start, 即起始信号,SCL为高,SDA拉低
(2)stop, 即结束信号,SCL为高,SDA拉高
(3)8-bit transfer,由高到低
(4)ACK,8-bit传输结束,master等待slave拉低SDA进行ack
3. 数据传输
常见的传输方式有如下三种:(1)数据方向master–>slave
(2)数据方向master<–slave
(3)数据方向可转换,如图所示,Sr之前master–>slave,Sr和Slave Address后数据方向可调换
相关文章推荐
- Linux I2C设备驱动编写(三)-实例分析AM3359
- Linux下DM644x设备驱动I2C之总线驱动(一)详解
- 第十五章 Linux I2C核心、总线与设备驱动
- 【转】Linux I2C设备驱动编写(一)
- Linux的I2C 设备驱动 -- mini2440 上i2c接口触摸屏驱动
- Linux 设备驱动篇之I2c设备驱动
- I2C设备驱动编写,struct i2c_device_id,struct i2c_driver,i2c_add_driver,i2c_register_board_info
- Linux设备驱动之I2C架构分析
- Linux I2C设备驱动编写(一)
- Linux下I2C设备驱动开发和实现
- Linux设备驱动之I2C架构分析
- 嵌入式Linux驱动笔记(十一)------i2c设备之mpu6050驱动
- linux I2C设备驱动
- Linux I2C子系统分析-I2C设备驱动 2
- I2C设备驱动(四)-- 调试问题
- I2C设备驱动的编写(二)
- 【转】Linux I2C设备驱动编写(二)
- Linux设备驱动之I2C设备驱动
- [置顶] Linux 设备驱动篇之I2c设备驱动
- I2C设备驱动的编写(一)