I2C总线的SDA和SCL

串行数据线SDA——负责在设备间传输串行数据 
串行时钟线SCL——负责产生同步时钟脉冲
SCL\SDA是I2C总线的信号线。

I2C总线是共享的总线系统,因此可以将多个I2C设备连接到该系统上。连接到I2C中总线上的设备既可以用作主设备,也可以用作从设备。

主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并响应命令的接收。且同步时钟信号只能由主设备产生。

当总线空闲时,SDA和SCL都处于高电平状态,当主机要和某个从机通讯时,会先发送一个开始条件,然后发送从机地址和读写控制位,接下来传输数据秘数据传输结束时,主机会发送停止条件。传输的每个字节为8位,高位在前,低位在后。(SDA是双向数据线,SCL是时钟线SCL。在I2C总线上传送数据,首先送最高位,由主机发出启动信号,SDA在SCL高电平期间由高电平跳变为低电平,然后由主机发送一个字节的数据。数据传送完毕,由主机发出停止信号,SDA在SCL高电平期间由低电平跳变为高电平。)

开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据,数据传输过程中只有在SCL线为低电平期间,SDA上的电平允许变化。
在这里插入图片描述

从机地址:主机发送的第一个字节为从机地址,高7位表示地址,最低位为R/W读写控制位,1表示读操作,0表示写操作。

应答信号:每传输完成一个字节的数据,接收方就需要回复一个ACK(acknowledge)。写数据时由从机发送ACK,读数据时由主机发送ACK。当主机读到最后一个字节时,可发送NACK然后跟结束信号。

数据:从机地址发送完后可能会发送一些指令,依从机而定,然后开始传输数据,由主机或者从机发送,每个数据为8位,数据的字节数没有限制。在开始信号之后,SDA和SCL先都处于低电平,当要传输数据时SDA先为高,之后SCL再跳变为高,才可进行数据的传输:
在这里插入图片描述

重复开始信号:在一次通信过程中,主机可能需要和不同的从机传输数据或者需要切换读写操作时,主机可以再发送一个开始信号。

结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。

  • 65
    点赞
  • 397
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值