参考学习资料 单片机 STC51单片机入门(C语言)(中).pdfVIP

参考学习资料 单片机 STC51单片机入门(C语言)(中).pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多

第11章IIC通信

11.1I2C总线数据传输格式

I2C总线是两线式串行总线(连同地线为3线),仅需要时钟和数据两根线就可以进行数据传输,仅

需要占用微处理器的2个IO引脚,使用时十分方便。I2C总线还可以在同一总线上挂多个器件,每个器件

都有自己的器件地址(SPI总线没有器件地址,通过CPU提供片选线控制是否选中芯片),读写操作时需

要先发送器件地址,该地址的器件得到确认后便执行相应的操作,而在同一总线上的其它器件不做响应,

称之为器件寻址,这个原理就与我们打电话的原理相当。IIC总线长度最长可达25英尺(一般电路板不超

过一英尺),并且能以100Kbps的最大传送速率支持40个器件。

生产I2C总线EEPROM的厂商很多,如ATMEL、Microchip、ST公司,它们都是以24来开头命名

芯片型号,最常用就是24C系列。24C系列从24C01到24C512,C后面的数字与芯片存储容量有关。

24C01=128字节,,24C02=256字节,24C64=8192字节,24C256=32768字节,24C512=65536字节

它支持2.8V到5.5V电源,5V电源时时钟可以达到400KHz。并且有直插和贴片等多种封装可供选择。

24C01引脚与此完全相同

上图是ATMEL公司24C64的引脚定义图。A0-A2用于设置芯片的器件地址,在同一总线上有多个器

件时,可以通过设置A0-A2引脚来确定器件地址。SDA是串行数据引脚,用于在芯片读写时输入或输出

数据、地址等,这个引脚是双向引脚,它是漏极开路的,使用时需要加上一个上拉电阻。SLC脚是器件的

串行同步时钟信号,SLC脚由单片机控制,根据单片机的程序要求产生串行同步时钟信号,控制总线的

存取。WP脚是写保护脚,当这个脚接入高电平时,芯片内的数据均处于禁止写入状态(所禁止的地址段

要看各芯片的详细资料,有的甚至无保护),当把WP脚接到地线时,芯片处于正常的读写状态。当一个

电路要求正常使用时不允许程序修改EEPROM中的数据,只有在维护设置才可以修改数据,这时可以在

电路上设置WP跳线或用微处理器对WP进行控制,这样只有在特定的电路状态下才可以更改到数据。

要在单片机系统中应用I2C总线的EEPROM做存储设备时,先要了解I2C总线的基本驱动方法。在

I2C总线空闲时,SDA和SCL应为高电平,也只有在这个条件下,单片机才可以控制总线进行传输数据。

在数据传输的刚开始时,总线要求有一个START(开始位)位作为数据开始的标识,它的要求是SCL为

高时,SDA有一个从高到低的电平跳变动作,完成这个动作后才可以进行数据传输,时序图参看上图“开

始”。传输数据时,只有在SCL为高电平时,SDA上的电平为有效数据(从器件在SCL为高电平时采样

SDA线上的数据)。编写单片机向总线送数据程序时则可以在SCL还在低电平时,把数据电平送到SDA,

然后拉高SCL,这时SDA不应有电平跳变,延时后拉低SCL,再进行下一位的数据传送直到完成。在总

-1-

线上读数据时也是只有在SCL为高时,SDA为有效数据。时序参看上图“保持”。传送数据完成后,总

线要有一个STOP(结束位)位,来通知总线本次传输已结束,它的要求是SCL为高时,SDA有一个从

低到高的电平跳变动作,正好和START位相反。在编程时要注意的是:不要在SCL为高时改变SDA的

电平状态,否则可能会被误认为是停止位,而使得操作失败,起始与停止信号详细要求如下。

AT24C01英文手册中的参数:

TSU.STA(起始信号建立时间最小值):4.7uS(VCC=2.7V)0.6uS(VCC=5.0V)

THD.STA(起始信号保持时间最小值):4.0uS(VCC=2.7V)0.6uS(VCC=5.0V)

TSU.STO(停止信号建立时间最小值):4.7uS(VCC=2.7V)0.6uS(VCC=5.0V)

TBUF(总线空闲时间最小值):4.7uS(VCC=2.7V)1.2uS(VCC=5.0V)

文档评论(0)

工地殿小二 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档