常见接口电路介绍
一、 I2C总线简介 1. 什么是I2C?
NXP 半导体(原Philips 半导体)于20 多年前发明了一种简单的双向二线制串行通信总线, 这个总线被称为Inter-IC 或者I2C 总线。目前I2C 总线已经成为业界嵌入式应用的标准 解决方案,被广泛地应用在各式各样基于微控器的专业、消费与电信产品中,作为控制、诊 断与电源管理总线。多个符合I2C 总线标准的器件都可以通过同一条I2C 总线进行通信, 而不需要额外的地址译码器。由于I2C 是一种两线式串行总线,因此简单的操作特性成为 它快速崛起成为业界标准的关键因素
2. I2C总线的基本概念
1) 发送器(Transmitter):发送数据到总线的器件 2) 接收器(Receiver):从总线接收数据的器件 3) 主机(Master):初始化发送、产生时钟信号和终止发送的器件 4) 从机(Slave):被主机寻址的器件 其线路结构图如下:
如上图示,I2C 总线具有如下特点:
1)I2C 总线是双向传输的总线,因此主机和从机都可能成为发送器和接收器。不论主机是发送器还是接收器,时钟信号SCL 都要由主机来产生
2) 只需要由两根信号线组成,一根是串行数据线SDA,另一根是串行时钟线SCL 3) SDA 和SCL 信号线都必须要加上拉电阻Rp(Pull-Up Resistor)。上拉电阻一般取值3~ 10KΩ
4) SDA 和SCL 管脚都是漏极开路(或集电极开路)输出结构
3. I2C总线的信号传输
1)3种速率可选择
标准模式100kbps、快速模式400kbps、最高速率3.4Mbps 2)具有特定的传输起始、停止条件
a)起始条件:当SCL 处于高电平期间时,SDA 从高电平向低电平跳变时产生起始条件。 起始条件常常简记为S
b)停止条件:当SCL 处于高电平期间时,SDA 从低电平向高电平跳变时产生停止条件。 停止条件简记为P
3) 数据传输从确定从机地址开始
a)多个从机可连接到同一条I2C 总线上,它们之间通过各自唯一的器件地址来区分
b)一般从机地址由7 位地址位和一位读写标志R/W 组成,7 位地址占据高7 位,读写位在最后。读写位是0,表示主机将要向从机写入数据;读写位是1,则表示主机将要从从机读取数据
4) 以字节为单位的数据传输方式
a)I2C 总线以字节(Byte)为单位收发数据,主机总是先发地址再发数据
b)在I2C 总线传输数据过程中,每传输一个字节,都要跟一个应答状态位。遵循“谁 接收谁产生”的原则,即总是由接收器产生应答位,应答位为0 表示接收器应答 (ACK);为1 则表示非应答(NACK)
c)如果接收器在接收完最后一个字节的数据,或者不能再接收更多的数据时,应当产 生非应答来通知发送器
4. I2C总线数据传输时序图示
1)传输格式图示
(灰色为主机的工作时隙,白色为从机的工作时隙) S:起始位(START)
SA:从机地址(Slave Address),7 位从机地址 W:写标志位(Write),1 位写标志 R:读标志位(Read),1 位读标志 A:应答位(Acknowledge),1 位应答 A:非应答位(Not Acknowledge),1 位非应答 D:数据(Data),每个数据都必须是8 位 P:停止位(STOP)
2)传输时序示例
5. I2C总线在手机上的常见应用
所应用范围包括:摄像头、调频收音机芯片、音频编解码芯片、模拟电视、光电鼠标等