单片机学习小组
直播中

李桂兰

7年用户 1447经验值
私信 关注

I2C通信的特点是什么?

I2C通信的特点是什么?

回帖(1)

朱虹博

2022-2-8 14:13:07
介绍:I2C通讯协议(Inter-Integrated Circuit)引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成威廉希尔官方网站 (IC)间的通讯。
特点:
1.只需要一根数据线SDA和一根时钟线SCL,SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线
SCL(Serial Clock):串行时钟线,传输CLK信号,一般是主设备向从设备提供
SDA(Serial Data) :串行数据线,传输通信数据
2.实现真正的多主机总线,任何器件既可以作为主机又可以作为从机,但是同一时刻只能有一个主机
3.可以通过外部连线检测,便于系统故障诊断和调试
4.连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达400Kbit/s,高速模式下可达3.4Mbit/s
5.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,抗高噪声干扰,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽
6.接口威廉希尔官方网站 为开漏输出,需通过上拉电阻接电源VCC,当总线空闲时,两根线都是高电平,连接总线的外同器件都是CMOS器件输出级也是开漏威廉希尔官方网站

数据传输:
发送到SDA线上的每个字节必须为8位,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。首先传输的是数据的最高位(MSB),如果从机要完成一些其他功能后(例如一个内部中断服务程序)才能接收或发送下一个完整的数据字节,可以使时钟线SCL保持低电平,迫使主机进入等待状态,当从机准备好接收下一个数据字节并释放时钟线SCL后数据传输继续。

空闲时候:SDA数据线和SCL时钟线都是高电平
开始信号:SCL处于高电平,SDA由高到低
结束信号:SCL处于高电平,SDA由低到高
应答信号:当传输完8位数据以后,在第9个SCL时钟周期
主机释放SDA控制权交给从机,由于上拉电阻的作用,此时该电平为高,但是如果从机正确接受了数据,就会将SDA拉低
发送数据:SDA上的数据必须在SCL高电平周期时保持稳定,数据的高低电平翻转变化发生在SCL低电平时期
非应答信号:如果第9个SCL时钟周期,SDA保持高电平,则代表非应该信号

非应答信号可能是主机发出的也可能是从机产生的
有几种可能:


  • I2C总线上没有主机所指定地址的从机设备
  • 从机正在执行一些操作,处于忙状态,还没有准备好与主机通讯
  • 主机发送的一些控制命令,从机不支持
  • 主机接收从机数据时,主机产生非应答信号,通知从机数据传输结束,不要再发数据了

通讯特征:
1)串行通信,所有的数据以位为单位在SDA线上串行传输
2)同步通信:通过时钟同步
3)非差分:I2C通信速率不高,且通信距离近,使用电平信号通信。
4)低速率:I2C一般是同一个板子上的两个IC芯片间通信,数据量不大,速率低。速率:几百KHz,速率可能不同,不能超过IC的最高速率。
模式:
标准模式(Standard):100kbps
快速模式(Fast):400kbps
快速模式+(Fast-Plus):1Mbps
高速模式(High-speed):3.4Mbps
超快模式(Ultra-Fast):5Mbps(单向传输)
举报

更多回帖

发帖
×
20
完善资料,
赚取积分