I2C 总线驱动

目录

一、I2C 总线概念

二、I2C 总线工作原理

三、I2C驱动

四、I2C设备驱动步骤

一、I2C 总线概念

1、构成:I2C总线是由时钟线(SCL)和数据线(SDA)组成的串行总线,用于主控器件(CPU)和外围设备(IC)之间的连接。

2、特点:简单(布线及管脚少)、有效(传输速率100Kb/s、400Kb/s、3.4Mb/s)。

3、两根线都接上拉电阻,默认高电平(1),数据传输方式MSB(高位到低位)

二、I2C 总线工作原理

1、信号类型

类型 说明
开始信号(Start) SCL为高电平时,SDA由高到低跳变,即为开始
结束信号(End) SCL为高电平时,SDA由低到高跳变,即为结束
数据传输信号 信号(S)后,SCL高电平期间,数据线稳定SDA数据有效,即数据可以进行读操作;当SCL低电平期间,SDA数据才允许有改变,每一个数据需要一个时钟脉冲。
应答信号 当接收数据IC接收到一个字节(8bit)数据后,向发送数据的IC发出低电平信号(ACK),表示收到数据;若为高电平则表示NACK

2、总线读写

       总线必须由主控器件控制,SCL串行时钟需主控器件提供,决定开始和停止条件。SDA数据线上的数据状态在SCL时钟为低电平时才能改变,SCL时钟线为高电平时,SDA数据线的改变用来表示I2C信号的开始与结束。

片选信号(首字节=从机地址+方向控制)

1)写:7位地址+0(低电平代表写)

2)读:7位地址+1(高电平代表读)

3、I2C总线位数

位数 说明(从设备个数)
7位 127(2^7)
10位 (2^10)11110 + 10位 + 1位方向控制

4、总线仲裁 

        是指根据SDA数据线决定,也就是说哪个主设备先将SDA数据线拉低,谁就拥有优先权,其他设备就会得知SDA的实际电平与自身所发出的数据高低不匹配就会让出总线归属权。(多主机模式存在仲裁)I2C多主总线接口含有冲突检测机制,当两个设备试图同时改变SDA和SCL的电平时&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值