简谈I2C总线

I2C总线概述:

  I2C总线(I2C bus,Inter-IC bus)是一个双向的两线连续总线,提供集成电路(ICs)之间的通信线路。I2C总线是一种串行扩展技术,最早由Philips公司推出,广泛应用于电视,录像机和音频设备。I2C总线的意思是“完成集成电路或功能单元之间信息交换的规范或协议”。Philips公司推出的I2C总线采用一条数据线(SDA),加一条时钟线(SCL)来完成数据的传输及外围器件的扩展;对各个节点的寻址是软寻址方式,节省了片选线,标准的寻址字节SLAM为7位,可以寻址127个单元。

I2C总线基本原理:

  I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。
  在I2C总线的数据传输过程中,主控器和被孔器工作在两个相反的状态,并且在一次通信过程中一般不发生转换;
  1. 主控器为发送器(主控发送器)时被控器为接收器(被控接收器);
  2. 主控器为接收器(主控炫收器)时被控器为发送器(被控发送器)。
下图为一次完整的通信过程时序,在I2C总线上进行的每一次通信过程,都存在在如下规律:

I2C总线信号时序图

  1. 由主控器主动发起,并且以发送启动信号S和停止信号P分别来掌管总线和释放总线。
  2. 通信过程都是以启动信号S开始、以停止信号P结束。
  3. 传送的数据字节数没有限制。
  4. 主控器在启动信号后紧接着发送一个地址字节,其实包含7位被控器地址码和1位读/写控制位R/W。
  5. 读/写控制位R/W(或称作方向位)用于通知被控器数据传送的方向,0表示这次通信是由主控器向被控器写数据,1表示这次通信是主控器从被控器读数据。
  6. 每传送1个地址字节或数据字节共需要9个时钟脉冲, 其中第1~8个时钟脉冲对应的是由发送器向接收器发送的信息,笫9个脉冲对应的是由接收器句发送器反馈的一个应答位ACK。
  7. 所有挂接到I2C总线上的被控器件都接收启动信号后的地址字节,并且把接收到的7位地址码与自己的地址进行比较,如果相符即为主控器寻址的被控器,在第9个时钟脉冲期间反馈应答信号。
  8. 每个数据字节在传送时都是高位(MSB)在前。
    I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。
      开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。
      结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。
      应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。

I2C总线的基本特征:

(1)只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL
(2)每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址:主机可以作为主机发送器或主机接收器
(3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏
(4)串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s
(5)片上的滤波器可以滤去总线数据线上的毛刺波,保证数据完整
(6)连接到相同总线的IC数量只受到总线的最大电容400pF限制

I2C总线的应用:

  I2C总线是一种两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发。如今主要在服务器管理中使用,其中包括单个组件状态的通信。由于其简单性,还广泛用于微控制器与各种功能模块的连接,可以说是学单片机的人,入门之后,必定要涉及到的。

应用实例:(I2C总线技术在彩电中的应用)

1、I2C总线与集成电路的连接

  CPU利用串行时钟线发出时钟信号,利用串行数据线发出或接收数据。CPU通过I2C总线对单元电路进行控制,但由于总线上挂接的集成电路多为模拟电路,而CPU发出的信号是数字信息,因此,I2C总线与功能电路(即被控电路)间的连接必须经过特定的电路来完成。
  I2C总线与被控电路的连接方法可分为直接连接和隔离连接。
直接连接:被控对象直接接在I2C总线上(如下图 1 所示),并通过电阻、电容来提高电路的抗干扰性,防止外部干扰脉冲使系统发生错误。

     这里写图片描述

隔离连接:被控对象和CPU之间由三极管隔离,以避免被控对象发生故障时对CPU产生影响,从而对CPU起到更好的保护作用。

2、 I2C总线系统的功能

以CPU为核心的I2C总线系统与电视机中的其他电路相结合,其主要功能主要表现在一下四个方面:
(1) 用户操作功能
用户对电视机的操作功能,如节目预选、音量、亮度、色度的控制等。通常这些操作可以通过CPU、I2C总线和受控集成电路来完成。
(2) 维修调整功能
普通彩电中,需要利用半可调电位器进行调整的项目很多,例如高放AGC、副亮度、副色饱和度、副音量、场幅、场中心、行幅、枕校、白平衡等。在采用I2C总线的彩电中,这些项目均可由维修人员进入专门的维修调整状态后,通过遥控器或本机操作键来完成,从而可省掉很多半可调电位器,提高了产品的可靠性。
(3) 故障自控功能
I2C总线具有双向数据传输功能,CPU可对I2C总线通信情况和被控集成电路的工作状态进行监测,并为维修人员提供故障信息,以帮助维修人员判断故障部位。
(4) 生产自动化调整功能
即电视机生产时的自动化调整功能,采用I2C总线的电视机省掉了大量半可调电位器,大大简化了调整工艺,产品一致性好。生产调整时,可将调整用计算机与电视机的I2C总线相连,将最佳调整数据传送到电视机的EEPROM存储器中,也可以将标准数据固化在CPU的只读存储器(ROM)中 。

3、 I2C总线彩电的电路结构

  I2C总线彩电的电路结构(如图 2 所示)由图可知,I2C总线彩电与普通遥控彩电的电路组成基本相同,但与普通遥控彩电相比,它们的控制方法及控制信号都不一样。I2C总线彩电控制线路只有两条,其他被控制器均挂接在这两条控制总线上。I2C总线系统中,CPU输出的是数字信号,各被控电路不能直接使用,必须由接口电路进行翻译和转换才能使用。

这里写图片描述

  I2C总线彩电是近年来的来的新型彩电,其产品一致性好、故障率低、质量可靠。但由于其特殊的结构,使很多彩电维修人员感到棘手。只有很好地掌握I2C总线系统的工作原理及控制调整方法,才能在I2C总线彩电的使用和维修中得心应手,取得事半功倍的效果。
在I2C总线的应用中应注意的事项总结为以下几点 :
1) 严格按照时序图的要求进行操作,
2) 若与口线上带内部上拉电阻的单片机接口连接,可以不外加上拉电阻。
3) 程序中为配合相应的传输速率,在对口线操作的指令后可用NOP指令加一定的延时。
4) 为了减少意外的干扰信号将EEPROM内的数据改写可用外部写保护引脚(如果有),或者在EEPROM内部没有用的空间写入标志字,每次上电时或复位时做一次检测,判断EEPROM是否被意外改写。

你可能感兴趣的:(其他,通信,应用实例,I2C总线基本原理,I2C总线)