MAX517与单片机的I2C总线数据通信MAX517与单片机的I2C总线数据通信摘要:介绍了I2C总线的特点及数据通信的基本协议,并以AT89C51单片机与美国MAXIM公司的8位电压输出DAC数模转换器MAX517之间的通信为例,详细介绍了通过I2C总线进行数据通信的具体硬件电路连接和其通信子程序的编程方法。关键词:I2C总线;AT89C51;MAX517;数据通信1I2C总线的特点及基本通信协议I2C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线串行数据线和串行时钟线即可使连接于总线上的器件之间实现信息传送,同时可通过对器件进行软件寻址,而不是对硬件进行片选寻址的方式来节约通信线数目,从而减少了硬件所占空间。因为总线已集成在片内,所以大大缩短了设计时间,此外,在从系统中移去或增加集成电路芯片时,对总线上的其它集成芯片没有影响。1.1I2C总线的主要特点I2C总线通常由两根线构成:串行数据线(SDA)和串行时钟线(SCL);总线上所有的器件都可以通过软件寻址,并保持简单的主从关系,其中主器件既可以作为发送器,又可以作为接收器;I2C总线是一个真正的多主总线,它带有竞争监测和仲裁电路。当多个主器件同时启动设备时,总线系统会自动进行冲突监测及仲裁,从而确保了数据的正确性;I2C总线采用8位、双向串行数据传送方式,标准传送速率为100kB/s,快速方式下可达400kB/s;同步时钟可以作为停止或重新启动串行口发送的握手方式;连接到同一总线的集成电路数目只受400pF的最大总线电容的限制。1.2I2C总线数据通信基本协议利用I2C总线进行数据通信时,应遵守如下基本操作:(1)总线应处于不忙状态,当数据总线(SDA)和时钟总线(SCL)都为高电平时,为不忙状态; (2)当