我是一只攻城狮

硬件开发者之路之——通讯协议之I2C简介

上一篇 / 下一篇  2018-03-11 12:22:07 / 个人分类:技术生涯

本篇来介绍一下I2C协议,多用于E2PROM等芯片间通讯,因为只有两根线,支持多主机应用,应用简单成本低,因此在设计中应用较多。
一、硬件连接
下图是STM32内部的I2C硬件结构:
对于I2C的连接最重要的是上拉电阻的设置,上拉电阻的设置目的是保证空闲电平为高,这样就可以实现总线仲裁检测而进行多主机通讯,这样的方式可参照CAN总线的方式。就是通过显性电平(低电平)来修改总线。下图是标准的OD方式的I2C接口:
那么上拉电阻如何设置,上拉电阻一般推荐的是1K~10K,具体的大小会影响上升沿和下降沿时间,因此I2C一般出现通讯问题因为上拉电阻的可能性较大,具体设计参数可以参考公式:
Rmin=(VDD(min)-0.4V)/3mA;  3mA为最大上拉电流
Rmax=(T/0.874)*c,T=1uS  100khZ  0.3uS 400KHz
C是总线寄生电容。上拉电阻设置不当会导致波形不稳定,通讯异常,寄生电容也会限制节点数目。
另外在信号线中加入匹配电阻也能防止波形反射振铃等异常现象。
二、通讯方式
下图是STM32中的I2C几种通讯特点
传输格式如图:
下图是网上找来的一张I2C波形图:
三、I2C的特点
1、同步串行通讯,非差分信号,远距离慎用。
2、非高速应用,100KHz,400KHz,3,4MHz。
3、主从模式,多主从模式。
4、两根线,应用简单。
5、通讯时序固定,驱动编写简单。
6、单工通讯

TAG: I2C 接口 嵌入式 通讯 协议 硬件开发

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar