当前位置:文档之家› 单片机实用技术基础.ppt

单片机实用技术基础.ppt

目前很多单片机内部都集成了I2C总线接口,对 89C51单片机而言,内部没有集成I2C总线接口, 但可以通过软件实现I2C总线的通信。
下一页 返回
6.9 I2C总线扩展
6.9.1 I2C总线基础知识
I2C总线是由数据线SDA和时钟线SCL构成的串行总线, 可以发送和接收数据。在CPU和被控制器件间双向传送, 最高传送速率为400kb/s。SDA是双向串行数据线,用 于地址、数据的输入和数据的输出,使用时需加上拉电 阻。SCL是时钟线,为器件数据传输的同步时钟信号。
有体积小、接口简单、数据保存可靠、可在线改写、 功耗低等特点,常用于单片机应用系统掉电时保存一 些重要的数据。 24C02是内含256×8位低功率CMOS的E2PROM, 具有功率小、工作电压宽(2.5~5.5V)、擦写次数多 (大于10000次)、写入速度快(小于10ms)等特 点。
上一页 下一页 返回
2. 24C02的主要操作
当I2C总线产生开始信号后,主控器件首先发出控制字节, 用于选择从1 器0件并1 控0 制总线A的2 传A送1 方A0 向。其R结/ W构如下:
I2C 从器件类型标识符
片选或块选
读/写控制位
上一页 下一页 返回
6.9 I2C总线扩展
I2C总线的控制字节的高四位是器件类型识别符, 24C02的器件类型识别符是1010。接着的三位是由A2、 A1、A0决定的器件地址,这三位受不同的电平控制,可 实现在一个系统中扩展多片串行E2PROM 芯片。对于 24C0W2,这三位不起作用,可以接高电平或低电平。最 低位是读写控制位R/ ,“0”表示写操作,“1”表示 读操作。
起始位 写控制字节 ACK 字节地址 ACK 数据字节 ACK 停止位
24C02允许多个字节顺序写入,在以上格式中,连续送 多个字节数据,再送停止位。
②字节读操作 字节读操作需要在读之前,先用写操作指定字节地址,
主器件在收到应答信号ACK后,再发送读控制字节,从 器件24C02发出应答信号ACK后发出8上位一数页据下,一当页主返器回
上一页 下一页 返回
6.9 I2C总线扩展
总 还线 是上 发的 送地 信址 息一则致由,第则8位该(器R件/即W)为确被定CP。U寻址的器件,其接收信息 在I2C总线上以字节为单位进行传送,每次先传送最高位。每次先传
的数据字节数不限,在每个被传送的字节后面,接收器都必须发一 位应答位(ACK),总线上第9个时钟脉冲对应于应答位,数据线上 低电平是为应答信号,高电平是为非应答信号。待发送器确认后, 再发下一数据。 数据格式如下:
6.9 I2C总线扩展
图6-43为X24C02的引脚图。图中A0、A1、A2是三条 地址线,用于确定从芯片的器件地址。Vcc和Vss分别是 为正、负电源。SDA为串行数据输入/输出,数据通过这 条双向I2C总线串行传送。SCL为串行时钟输入线。WP 为写保护控制端,接“0”允许写入,接“1”禁止写入。
3. 24C02的扩展应用
上一页 下一页 返回
6.9 I2C总线扩展
例如:如图6-44所示为24C02与89C51单片机 的接口电路。已知写器件地址为0A0H,读器件 地址为0A1H。用89C51单片机的P1.0和P1.1 分别发出SDA和SCL信号。驱动程序如下:
在I2C总线开始信号后,送出的第一个字节数据是W用来 选择从器件地址,其中前7位为地址码,第8位为方式 位(R/ )方式位为“0”表示发送,即CPU把信息写 到所选择的接口或存储器;方式位为“1”表示CPU将 从接口或存储器读信息。系统发出开始信号后,系统 中的各个器件将自己的地址和CPU发送到总线上的地 址进行比较,如果与CPU发送到
①字节写操作 在主器件单片机送出起始位后,接着发送写控制字节,
即1010 A2A1A0 0,指示从器件被寻址。当主器件接 收到来自从器件24C02的应答信号ACK后,将发送待写 入的字
上一页 下一页 返回
6.9 I2C总线扩展
节地址到24C02的地址指针。主器件再次接收到来自 24C02的应答信号ACK后,将发送数据字节写入存储器 的指定地址中。当主器件再次收到应答信号ACK后,产 生停止位结束一个字节的写入。格式如下:
I2C总线的通信协议可简述如下: 当总线处于等待状态时,数据线SDA和时钟线SCL都必
须保持高电平状态。
上一页 下一页 返回
6.9 I2C总线扩展
当时钟线SCL保持高电平时,且数据线SDA出现由高 变低的变化时,为I2C总线工作的起始信号,此时I2C 被启动。当SCL为高电平时,且SDA由低变高时,为 I2C总线停止信号,此时I2C总线停止数据传送。SDA 上的数据在SCL高电平时必须稳定,在SCL低电平时 才允许变化。
单片机实用技术基础
1.IC总线技术 B总是由Philips公司推出的一种双向二线制总 线。具有控制方式简单灵活,器件体积小,通信速 率高、低功耗等特点。I2C总线允许接入多个器件, 如A/D及D/A转换器、存储器等。总线上的器件既 可作为发送器,也可作为接收器。按照一定的通信 协议进行数据交换。在每次数据交换开始时,作为 主控器的器件需要通过总线竞争获得主控权。每个 器件都具有唯一的地址,各器件间通过寻址确定接 收方。
6.9 I2C总线扩展
信号后(即主器件不产生确认位)发出一个停止位,结
束读操作。格式如下:
写控制
字节
读控制
数据
起始位
ACK
ACK 起始位
ACK
ACK 停止位
字节
地址
字节
字节
24C02允许多个字节顺序读出,在以上格式中,每当从 器件A2C4KC02发出一个位数据后,主器件发送确认信号 ACK,就可以控制24C02发送下一个地址的数据。直到 主器件发出 信号为止。
起始位 从器件地址 R/W ACK 数据 ACK 数据 ACK … 停止位
上一页 下一页 返回
6.9 I2C总线扩展
6.9.2 I2C总线的应用
这里以89C51单片机扩展串行E2PROM存储器 24C02为例,介绍I2C总线接口的设计方法。
1. 串行E2PROM 24C02 串行E2PROM是可以在电擦除和电写入的存储器,具
相关主题