I2C通讯协议简介
由PHILIPS开发的一个简单的双向两线总线,实现有效的IC控制,这个总线就称为Inter IC或I2C总线。现在I2C总线实际上已经成为一个国际标准,I2C总线规范的版本也从1992年的VERSION 。在加强功能的同时也在满足现在对总线速度更高,电源电压更低的要求。
I2C总线具有以下特性:
1) 只要求两条总线线路:一条串行数据线(SDA );一条串行时钟线(SCL)。
2) 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址;主机可以作为主机发送器或主机接收器。
3) 它是一个真正的多主机总线。如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。
4) 串行的8 位双向数据传输位速率在标准模式下可达100kbit/s 。快速模式下可达400kbit/s 。
I2C 总线支持任何IC 生产过程(NMOS CMOS 双极性),两线――串行数据(SDA) 和串行时钟(SCL) 线在连接到总线的器件间传递信息。每个器件都有一个唯一的地址编码,而且都可以作为一个发送器或接收器(由器件的功能决定)。很明显地,存储器则既可以作接收器又可以作发送器。除了发送器和接收器外,器件在执行数据传输时也可以被看作是主机或从机(见表1-1)。主机在发送数据前负责对总线的初始化并产生允许传输的时钟信号。此时,任何被寻址的器件都被认为是从机
术语
描述
发送器
发送数据到总线的器件
接收器
从总线接收数据的器件
主机
初始化发送,产生时钟信号和终止信号的器件
从机
被主机寻址的器件
多主机
同一时间段有多个主机尝试控制总线,但没有破坏总线上的数据
仲裁
多主机争用总线时,只允许有唯一的一个主机获得总线的使用权
同步
两个或多个器件同步时钟信号的过程
表 1-1
这里我们举个例子说明I2C总线的主机从机和接收器发送器的关系,但是这种关系并不是持久的,只是由当时的数据的传输方向决定,如下所示:
1 假设微控制器A 要发送信息到微控制器B
. 微控制器A(主机)寻址微控制器B(从机)
. 微控制器A(主机-发送器)发送数据到微控制器B(从机-接收器)
. 微控制器A 终止传输
2 如果微控制器A 想从微控制器B 接收信息
. 微控制器A(主机)寻址微控制器B(从机)
. 微控制器A(主机-接收器)从微控制器B(从机-发送器)接收数据
. 微控制器A 终止传输
I2C工作原理
I2C的起始和停止条件
在I2C 总线中唯一出现的是被定义为起始S 和停止P 条件见图1-1 的情况
其中一种情况是在SCL 线是高电平时,SDA 线从高电平向低电平切换。这个情况表示起始条件;当SCL 是高电平时,SDA 线由低电平向高电平切换。表示停止条件
起始和停止条件一般由主机产生。总线在起始条件后被认为处于忙的状态。在停止条件的某段时间后,总线被认为再次处于空闲状态。
如果产生重复起始Sr 条件而不产生停止条件,总线会一直处于忙的状态此时的起始条件S和重复起始Sr 条件在功能上是一样的。见
i2c通讯协议说明 来自淘豆网m.daumloan.com转载请标明出处.