一种基于SCL实时高电平脉宽的I2C从机电路制造技术

技术编号:27609094 阅读:13 留言:0更新日期:2021-03-10 10:34
本发明专利技术公开了一种基于SCL实时高电平脉宽的I2C从机电路,包括同步及判断电路模块和I2C从机状态机模块,所述同步及判断电路模块和I2C从机状态机模块之间设置有检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块,所述检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块能够预测SCL下降沿位置,并将预测出的SCL下降沿位置通知I2C从机状态机模块。本发明专利技术一方面可以使得I2C从机电路在现有的工作时钟频率下,完成更高频更高带宽I2C通信;另一方面也可以通过调低I2C从机电路的工作时钟频率,有效降低芯片的功耗。有效降低芯片的功耗。有效降低芯片的功耗。

【技术实现步骤摘要】
一种基于SCL实时高电平脉宽的I2C从机电路


[0001]本专利技术涉及I2C从机电路领域,具体涉及一种基于SCL实时高电平脉宽的I2C从机电路。

技术介绍

[0002]I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线(SCL和SDA)即可在连接于总线上的器件之间传送信息。
[0003]I2C总线中,SCL是时钟线,一般由主机发起,从机负责接收。
[0004]I2C总线中,SDA是数据线,主机和从机都会通过SDA发送信息给对方。主机和从机并不会同时在SDA上发送数据,通常会根据I2C协议中规定的时序,主机和从机选取适当的时刻发送数据到SDA。
[0005]根据I2C的协议,无论主机或者从机,想要在SDA上发送信息时,必须要遵守在SCL低电平区间,I2C主机或者从机才能改变SDA电平发送数据,在SCL高电平期间,不能改变SDA电平的规定。同时还需要满足SDA的建立时间以及保持时间等要求。否则,会造成数据传输的失败。
[0006]在芯片内实现I2C从机电路时,需要考虑到I2C总线上的时钟SCL和数据SDA相对于芯片内部工作时钟是异步关系,所以需要先对SCL和SDA做同步处理。如图2

3所示,I2C从机电路一般分为同步及判断电路模块和I2C从机状态机模块,所示同步处理一般是使用芯片内部时钟驱动的2个串联DFF采样异步信号,所以需要耗费2个工作时钟周期。I2C从机电路拿到同步后的SCL和同步后的SDA,会做出SCL/SDA上升沿和SCL/SDA下降沿的判断,再根据自身电路中设计的状态机,处理总线上主机需要的读写操作。
[0007]当I2C从机电路需要发送ACK或者发送寄存器读数据时,根据I2C协议必须要选择在SCL的低电平时发送。如果采用上述常规电路设计,如图2所示首先要对SCL做同步处理,同步处理过后,才能判断SCL的下降沿的时刻。在SCL的下降沿判断为真时,从机才能改变SDA电平,发送适当的数据。
[0008]因为SCL同步需要消耗2个工作时钟周期,判断SCL下降沿判断为真又需要一个时钟周期,再加上I2C从机电路内部的逻辑延迟,会导致最终I2C从机电路驱动SDA实际电平的变化,会晚于SCL实际的下降沿至少3个工作时钟周期。
[0009]当I2C主机需要较高的SCL频率来提高数据带宽,从而保证数据通信的实时性,此时I2C从机电路为了保证3个工作时钟周期的延迟不会违反SDA建立时间的要求,只能选择提高自身的工作时钟频率,如图1所示。
[0010]一方面,提高工作时钟频率意味着将会提升芯片的功耗,另一方面,如果芯片内部无法给I2C从机电路提供更高频率的工作时钟,I2C从机电路将无法支持I2C主机发起的高频高数据带宽I2C通信。

技术实现思路

[0011]本专利技术要解决的技术问题是提供一种基于SCL实时高电平脉宽的I2C从机电路,一方面该电路可以在现有的工作时钟频率下,完成更高频更高带宽I2C通信;另一方面也可以通过调低I2C从机电路的工作时钟频率,有效降低芯片的功耗。
[0012]为了解决上述技术问题,本专利技术提供了一种基于SCL实时高电平脉宽的I2C从机电路,包括同步及判断电路模块和I2C从机状态机模块,所述同步及判断电路模块和I2C从机状态机模块之间设置有检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块,所述检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块能够预测SCL下降沿位置,并将预测出的SCL下降沿位置通知I2C从机状态机模块。
[0013]本专利技术一个较佳实施例中,进一步包括所述检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块包括SCL实时高电平脉宽计数模块、SCL有效高电平脉宽期间判断模块、SCL高电平脉宽周期数判断及缓存模块和预测SCL下降沿时刻模块。
[0014]本专利技术一个较佳实施例中,进一步包括所述SCL实时高电平脉宽计数模块实时计数SCL每个高电平脉宽所需的工作时钟周期,所述SCL实时高电平脉宽计数模块在每个工作时钟上升沿的工作逻辑为:
[0015]逻辑S1

1:当检测到SCL时钟上升沿后,寄存器i2c_scl_period_cnt清零;
[0016]逻辑S1

2:当逻辑S1

1中没有检测到SCL时钟上升沿时,寄存器i2c_scl_period_cnt自动加1。
[0017]本专利技术一个较佳实施例中,进一步包括所述SCL有效高电平脉宽期间判断模块识别I2C数据传输区间,所述SCL有效高电平脉宽期间判断模块在每个工作时钟上升沿的工作逻辑为:
[0018]逻辑S2

1:当检测到i2c_stop和i2c_start时,寄存器i2c_scl_period_start清零;
[0019]逻辑S2

2:当没有检测到i2c_stop和i2c_start时,且检测到SCL上升沿时,寄存器i2c_scl_period_start置高;当检测到SCL下降沿时,寄存器i2c_scl_period_start清零;
[0020]逻辑S2

3:当没有检测到i2c_stop和i2c_start时,且没有检测到SCL上升沿或下降沿时,寄存器i2c_scl_period_start保持原值。
[0021]本专利技术一个较佳实施例中,进一步包括所述SCL高电平脉宽周期数判断及缓存模块根据SCL实时高电平脉宽计数模块、SCL有效高电平脉宽期间判断模块计数结果,计算出本次I2C全部传输周期内平均SCL高电平脉宽周期数,所述SCL高电平脉宽周期数判断及缓存模块在每个工作时钟上升沿的工作逻辑为:
[0022]逻辑S3

1:当检测到i2c_stop和i2c_start时,寄存器i2c_scl_period清零;
[0023]逻辑S3
‑2‑
1:当没有检测到i2c_stop和i2c_start时,且检测到SCL下降沿与寄存器i2c_scl_period_start为高时,如果寄存器i2c_scl_period当前值为0时,直接将寄存器i2c_scl_period_cnt赋值给寄存器i2c_scl_period;
[0024]逻辑S3
‑2‑
2:当没有检测到i2c_stop和i2c_start时,且检测到SCL下降沿与寄存器i2c_scl_period_start为高时,如果寄存器i2c_scl_period当前值不为0时,当寄存器i2c_scl_period当前值比寄存器i2c_scl_period_cnt值大的话,寄存器i2c_scl_period减1;当寄存器i2c_scl_period当前值比寄存器i2c_scl_period_cnt值小的话,寄存器i2c_
scl_period加1;当上述两个条件都不成立时,寄存器i2c_scl_period保持原值;<本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SCL实时高电平脉宽的I2C从机电路,包括同步及判断电路模块和I2C从机状态机模块,其特征在于,所述同步及判断电路模块和I2C从机状态机模块之间设置有检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块,所述检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块能够预测SCL下降沿位置,并将预测出的SCL下降沿位置通知I2C从机状态机模块。2.如权利要求1所述的基于SCL实时高电平脉宽的I2C从机电路,其特征在于,所述检测SCL实时高电平脉宽及预测SCL下降沿时刻功能模块包括SCL实时高电平脉宽计数模块、SCL有效高电平脉宽期间判断模块、SCL高电平脉宽周期数判断及缓存模块和预测SCL下降沿时刻模块。3.如权利要求2所述的基于SCL实时高电平脉宽的I2C从机电路,其特征在于,所述SCL实时高电平脉宽计数模块实时计数SCL每个高电平脉宽所需的工作时钟周期,所述SCL实时高电平脉宽计数模块在每个工作时钟上升沿的工作逻辑为:逻辑S1

1:当检测到SCL时钟上升沿后,寄存器i2c_scl_period_cnt清零;逻辑S1

2:当逻辑S1

1中没有检测到SCL时钟上升沿时,寄存器i2c_scl_period_cnt自动加1。4.如权利要求2所述的基于SCL实时高电平脉宽的I2C从机电路,其特征在于,所述SCL有效高电平脉宽期间判断模块识别I2C数据传输区间,所述SCL有效高电平脉宽期间判断模块在每个工作时钟上升沿的工作逻辑为:逻辑S2

1:当检测到i2c_stop和i2c_start时,寄存器i2c_scl_period_start清零;逻辑S2

2:当没有检测到i2c_stop和i2c_start时,且检测到SCL上升沿时,寄存器i2c_scl_period_start置高;当检测到SCL下降沿时,寄存器i2c_scl_period_start清零;逻辑S2

3:当没有检测到i2c_stop和i2c_start时,且没有检测到SCL上升沿或下降沿时,寄存器i2c_scl_period_start保持原值。5.如权利要求2所述的基于SCL实时高电平脉宽的I2C从机电路,其特征在于,所述SCL高电平脉宽周期数判断及缓存模块根据SCL实时高电平脉宽计数模块、SCL有效高电平脉宽期间判断模块计数结果,计算出本次I2C全部传输周期内平均SCL高电平脉宽周期数,所述SCL高电平脉宽周期数判断及缓存模块在每个工作时钟上升沿的工作逻辑为:逻辑S3...

【专利技术属性】
技术研发人员:卓越朱建银
申请(专利权)人:江苏科大亨芯半导体技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1