共工科技

i2c传输(I2C传输协议中,SCL线是高电平时)

本篇目录:

I2C总线的位传输

1、由于连接到I2C 总线的器件有不同种类的工艺(CMOS、NMOS、PMOS、双极性),逻辑0(低)和逻辑1(高)的电平不是固定的,它由电源VCC的相关电平决定,每传输一个数据位就产生一个时钟脉冲。

2、在I2C总线传输过程中,将两种特定的情况定义为开始和停止条件(见图3):当SCL保持“高”时,SDA由“高”变为“低”为开始条件;当SCL保持“高”且SDA由“低”变为“高”时为停止条件。开始和停止条件均由主控制器产生。

i2c传输(I2C传输协议中,SCL线是高电平时)-图1

3、i2c有定义 字节格式 发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。

4、连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。

I2C总线的数据传输

1、所有主机在SCL线上产生它们自己的时钟来传输I2C总线上的报文。数据只在时钟的高电平周期有效,因此需要一个确定的时钟进行逐位仲裁。时钟同步通过线与连接I2C 接口到SCL 线来执行。

i2c传输(I2C传输协议中,SCL线是高电平时)-图2

2、在I2C总线传输过程中,将两种特定的情况定义为开始和停止条件(见图3):当SCL保持“高”时,SDA由“高”变为“低”为开始条件;当SCL保持“高”且SDA由“低”变为“高”时为停止条件。开始和停止条件均由主控制器产生。

3、如果收到的器件码不是自己的地址,那么接下来不管收到的是什么码它都会无视就算是自己的地址也无视,直到收到结束码才认为本次传输结束。也只有收到结束码,它才会再次识别开始码和器件码。所以它绝对不会冲突。

4、i2c有定义 字节格式 发送到SDA 线上的每个字节必须为8 位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。

i2c传输(I2C传输协议中,SCL线是高电平时)-图3

5、I2C总线的最大长度是:小于200mm~300mm,跟传输速度、布线等有关系,延长距离可以用I2C中继器芯片,NXP如P82B71P82B96等等;在标准上没有看到明确规定有效的传输距离。

6、连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s。

I2C的传输速率由什么决定?

传输的速率由时钟信号SCK决定,SI为数据输入、SO为数据输出。

I2C传输的距离应该取决信号的稳定性,而稳定性由总线负载,传输速度,总线电容,甚至外部干扰等因素决定,因此有可能出现5米的通讯距离换个位置或者加个设备就出问题。

I2C总线传输的数据速率完全由SCLK控制,可快可慢。与UART接口不同,I2C总线有严格的速度要求。看门狗:看门狗也是大部分MCU的基本配置。大多数单片机的看门狗只能允许程序复位它,但不能 关机。

因此信息传输速率即比特率在数值上和波特率有这样的关系:I = S * log(N);其中I 为传信率,S 为波特率,N 为每个符号负载的信息量,以比特为单位。

每一器件的输入端都相当于一个等效电容,由于I2C总线扩展器件的连接关系为并联,因此,I2C总线总等效电容等于每一器件等效电容之和,等效电容的存在会造成传输信号波形的畸变,超出范围时,会导致数据传输出错。

驱动器、存储器或键盘接口),而且都可以作为一个发送器或接收器(由器件的功能决定)。很明显,lcd 驱动器只是一个接收器,而存储器则既可以接收又可以发送数据。

到此,以上就是小编对于I2C传输协议中,SCL线是高电平时的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。

分享:
扫描分享到社交APP
上一篇
下一篇