I2C总线接口基本知识总线和接口的区别:总线是一组传输通道,比如说IIC总线。接口是一种连接标准,比如说IIC接口。两者之间的关系就是IIC接口的设备都要通过IIC总线来进行通信,而IIC总线上走的设备并不全是IIC接口的。什么是I2C总线?I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的两线式串行总线,一根数据线SDA,一根串行时钟线SCL,用于连接微处理器及其外围设备,实现全双工同步数据处理。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。两根线I2C串行总线有两根信号线:一根双向的数据线SDA;另一根是时钟线SCL。所有接到I2C总线上的设备的串行数据都接到总线的SDA线,各设备的时钟线SCL接到总线的SCL。上拉电阻与传输速率I2C总线的SCL和SDA端口输出为漏极开路,因此使用时必须连接上拉电阻。上拉电阻的大小与电源电压,传输速率等由关系。这是由于外围器件是漏极开路,上拉电阻的大小在一定程度上影响外围器件信号传输的延迟时间。串行的8位双向数据传输位速率在:标准模式下可达100kbit/s,采用10K欧姆的上拉电阻。快速模式下可达400kbit/s,采用2K欧姆的上拉电阻。高速模式下可达3.4Mbit/s,高速模式下不执行仲裁和时钟同步以加速位处理能力,同时高速模式主机器件有一个SDAH信号的开漏输出缓冲器和一个在SCLH输出的开漏极下拉和电流源上拉电路。这个电流源电路缩短了SCLH信号的上升时间,任何时侯在Hs模式,只有一个主机的电流源有效I2C总线上的外围扩展器件的数量I2C总线上的外围扩展器件为电压型负载的CMOS器件,因此总线上的器件数量不是由电流负载能力决定,而是由电容负载能力决定。通常I2C总线的负载能力为400PF。同时由于外围器件的地址唯一,所以外围器件的数量还受器件地址空间的限制。地址唯一I2C总线上所有的外围器件都需要唯一的地址由器件地址和引脚地址两部分构成,共七位。器件地址是I2C器件固有的地址编码,器件出厂时就已经给定,不可更改。引脚地址由I2C总线外围器件的地址引脚(A2,A1,AO)决定,根据其在电路中接电源正极,接地或悬空的不同,形成不同的地址代码。引脚地址数决定了同一种器件可接入总线的最大数目。R/W ̄是方向位,R/W ̄=0表示主器件向从器件发送数据,R/W ̄=1表示主器件读取从器件数据。I2C总线上所有的外围器件都需要唯一的地址,由器件地址和引脚地址两部分构成,共七位。器件地址是I2C器件固有的地址编码,器件出厂时就已经给定,不可更改。引脚地址由I2C总线外围器件的地址引脚(A2,A1,AO)决定,根据其在电路中接电源正极,接地或悬空的不同,形成不同的地址代码。引脚地址数决定了同一种器件可接入总线的最大数目。R/W ̄是方向位,R/W ̄=0表示主器件向从器件发送数据,R/W ̄=1表示主器件读取从器件数据。位序D7D6D5D4D3D2D1D0定义器件地址引脚地址方向位DA3DA2DA1DA0A2A1A0_R/W主从通信I2C规程运用主/从双向通讯。I2C总线的运行(数据传输)由主机控制。所谓主机即启动数据的传送时(发出启动信号)发出时钟信号,传送结束时发出停止信号的设备,通常主机是微处理器。被主机寻访的设备都称为从机。主机和从机的数据传送,可以由主机发送数据到从机,凡是发送数据到总线的设备称为发送器,也可以是从机发到主机。从总线上接收数据的设备被称为接受器。总线竞争的仲裁总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况,这种情况叫做总线竞争。I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级。总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于是利用I2C总线上的信息进行仲裁,因此不会造成信息的丢失。I2C总线在传送数据过程中共有三种类型信号,它们分别是:启动信号、停止信号和应答信号。启动信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。停止信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。I2C接口应用由于串行总线连线少,结构简单,往往不用专用的母板和插座而直接用导线连接各个设备即可。因此,采用串行总线大大简化了系统硬件设计。PHILIPS公司早在十几年就前推出了I2C串行总线,它是具备多主机系统所需的包括裁决和高低速设备同步等功能的高性能串行总线。最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。