I2C总线

本文详细解释了I2C总线接口的设计,包括SCL和SDA线的连接方式、开漏输出与上拉电阻的应用,以及起始、终止时序和数据发送/接收过程。重点介绍了如何解决多机通信中的干扰问题和数据应答机制。
摘要由CSDN通过智能技术生成

要求:

所有的I2C设备的SCL连在一起,SDA连在一起; 

设备的SCL和SDA均要配置成开漏输出模式;

SCL和SDA各添加一个上拉电阻;

开漏输出和上拉电阻的共同作用实现了“线与” 的功能,此设计主要是为了解决多机通信互相干扰的问题

上拉电阻模型,开关断开输出1,开关闭合输出0,因此高电平驱动能力弱,低电平驱动能力强

开漏输出模型,开关断开时,电压不稳定,为悬空输出

I2C时序

起始时序:SCL高电平期间,SDA从高电平切换到低电平

终止时序:SCL高电平期间,SDA从低电平切换到高电平

发送一个字节:SCL低电平期间,主机将数据位依次放到SDA线上(高位在前),然后拉高SCL,从机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可发送一个字节

接受一个字节:SCL低电平期间,从机将数据位依次放到SDA线上(高位在前),然后拉高SCL,主机将在SCL高电平期间读取数据位,所以SCL高电平期间SDA不允许有数据变化,依次循环上述过程8次,即可接收一个字节(主机在接收之前,需要释放SDA

发送应答:在接收完一个字节之后,主机在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答

接收应答:在发送完一个字节之后,主机在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA

发送一帧数据

完成任务:向谁发送了什么

接收一帧数据

完成任务:向谁接收什么

复合格式

完成任务:向谁收指定的什么

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值