当前位置:
文档之家› 微控制器原理及其应用第十一章
微控制器原理及其应用第十一章
;起始条件建立时间大于 4.7us
;起始条件锁定时大于 4us
;钳住总线 准备发数据
;结束总线子程序 STOP: CLR SDA NOP SETB SCL ;发送结束条件的时钟信号 NOP ;结束总线时间大于 4us NOP NOP NOP NOP SETB SDA ;结束总线 NOP ;保证一个终止信号和起始信号的空闲时间大 于 4.7us NOP NOP NOP RET
zhousun@
PDF created with pdfFactory Pro trial version
vI2C应用示例 ——主机接收
主模式数据接收的时序格式
主接收模式:
S 从器件地址 R A
0x40
数据
A
0x50
数据…
A
0x50 0x58
S R A A A P
从发送模式:
S S 从器件地址 W 从器件地址 R A A 数据 数据 A A 数据… 数据… S = 起始信号 P = 停止信号 RS = 重复起始信号 A/ A P/RS A P
从接收模式:
主机到从机 主机到从机
A = 应答(SDA为低) A = 非应答(SDA为高)
zhousun@
zhousun@
PDF created with pdfFactory Pro trial version
vI2C应用示例 ——主机发送
主模式数据发送的时序格式
S 从器件地址 W A
0x18
数据
A
0x28
数据…
A/ A
0x28 0x30
结束位,用于指 示传输的结束。
zhousun@
PDF created with pdfFactory Pro trial version
vI2C应用示例 ——主机发送
主模式数据发送的时序格式
S (1) 从器件地址 W (2) A 数据 (3) A 数据… (3) A/ A P (4)
vI2C应用示例 ——主机接收
主模式数据接收的时序格式
主接收模式:
S (1) 从器件地址 (2) R A 数据 (3) A 数据… (4) A P (4)
(1) 通过软件置位STA进入I2C主发送模式,I2C逻辑在总线空闲后立 即发送一个起始信号; (2) 在起始信号发送结束后,SI置位。将从机地址和读操作位装入 I2DAT,然后清零SI,将第一字节数据发出; (3) 当从机地址和R位发送结束并收到应答位(A)后,SI位再次置位。 此时设置AA位,然后清零SI位,开始接收数据; (4) 每接收到一字节数据,SI位再次置位,此时可以再次接收数据, 或者置位STO结束总线。
SDA SCL S 起始信号 P 结束信号
发送起始信号后传送的第一字节数据具有特别的意 义,其中前七位为从机地址,最后一位为读写方向位 (0表示写,1表示读)。
S 从器件地址 R/W
第一字节 zhousun@
PDF created with pdfFactory Pro trial version
P
0x08
正确的状态号
0x38 0x58
错误的状态号
0x48
在通信过程中,随着通信阶段的不同,I2STAT寄存 器中的状态号也相应的变化,并引起中断。在中断服务 程序中,根据当前的状态号来决定下一步的处理。如果 当前的状态号不符合正常操作的流程,那么就要作出相 应的错误处理,比如重新启动总线等。
zhousun@
PDF created with pdfFactory Pro trial version
12.1.2 89C51 I2ห้องสมุดไป่ตู้总线模拟
I2C 总线是 PHILIPS 公司推出的芯片间串行数 据传输总线 2 根线(SDA,SCL)即可实现完善的全双 工同步数据传送 能够十分方便地地构成多机系统和 外围器件扩展系统 IC 器件是把 I2C 的协议植入器件 的 I/O 接口 使用时器件直接挂到 I2C 总线上,这一 特点给用户在设计应用系统带来了极大的便利 I2C 器件无须片选信号 是否选中是由主器件发出的 I2C 从地址决定的 而 I2C 器件的从地址是由 I2C 总线委 员会实行统一发配我们推出的 I2C 总线的操作平台 软件包 只要你给出器件从地址[ 子地址 注 PCF8574 无子地址 ] 即可进行字节读 字节写 多字节读 多字 节写 能够非常方便地使用 I2C 器件 无须你介入底层 的 I2C 操作协议
zhousun@
PDF created with pdfFactory Pro trial version
1. I2C电气连接
VDD Rp Rp
总线速率越高,总线上拉电阻 就越小,100Kbit/s总线速率, 通常使用5.1K欧姆的上拉电阻
PDF created with pdfFactory Pro trial version
主机发送
vI2C应用示例
VDD Rp Rp
I2C BUS
SDA SCL SDA SCL
SCL出
SDA出
器件1
器件2
SCL入
SDA入
(主)
zhousun@
zhousun@
PDF created with pdfFactory Pro trial version
zhousun@
PDF created with pdfFactory Pro trial version
I2C总线时序(续) I2C总线数据传送时,每传送一个字节数据后都必 须有应答信号(A)。主控器接收数据时,如果要结束 __ 通信时,将在停止位之前发送非应答信号( )。 A
zhousun@
PDF created with pdfFactory Pro trial version
;将 SDA置 1
;保持数据时间 即 SCL为高时间大
; 检查应答位子程序 ; 返回值 ACK=1 时表示有应答 CACK: SETB SDA NOP NOP SETB SCL CLR ACK NOP NOP MOV C,SDA JC CEND SETB ACK CEND: NOP CLR SCL NOP RET
第一字节的前七位 起始位,用于指 包含接收器件的从 示传输的开始。 地址,第8位为1, 表示读操作。
每接收完一个字节数据,就发 结束位,用于指 送一个应答位。在接收最后一 示传输的结束。 个字节数据后,发送非应答 位,通知从机停止发送数据。
zhousun@
PDF created with pdfFactory Pro trial version
LOGO
第11章 I2C 串行总线
PDF created with pdfFactory Pro trial version
12.1 I2C 串行通信总线
I2C接口是Philips推出的一种串行总线方式,用 于IC器件之间的通信。它通过SDA(串行数据 线)和SCL(串行时钟线)两根线在连到总线 上的器件之间传送信息,并通过软件寻址识别 每个器件,而不需要片选线。I2C接口的标准传 输速率为100Kbit/s,最高传输速率可达 400Kbit/s。 12.1.1 I2C总线介绍 I2C总线接口均为开漏或开集电极输出,因 此需要为总线增加上拉电阻Rp。
zhousun@
PDF created with pdfFactory Pro trial version
;判断应答位
I2C总线时序(续)
主发送模式:
S 从器件地址 W 从器件地址 A 数据 数据 A 数据… 数据… A/ A P
主接收模式:
(1) 通过软件置位STA进入I2C主发送模式,I2C逻辑在总线空闲后立 即发送一个起始信号; (2) 在起始信号发送结束后,SI置位。将从机地址和写操作位装入 I2DAT,然后清零SI,将第一字节数据发出; (3) 当从机地址和W位发送结束并收到应答位(A)后,SI位再次置位。 此时将要发送的数据装入I2DAT,开始发送数据; (4) 在数据正确发送后,SI置位。此时如果要结束本次操作,那么置 位STO位,发送结束信号。
…
;启动 I2C 总线子程序 START: SETB SDA NOP SETB SCL NOP NOP NOP NOP NOP CLR SDA NOP NOP NOP NOP NOP CLR SCL NOP RET
zhousun@
PDF created with pdfFactory Pro trial version
器件1
器件2
SCL入
SDA入
(主)
zhousun@
PDF created with pdfFactory Pro trial version
vI2C应用示例 ——主机接收
主模式数据接收的时序格式
主接收模式:
S 从器件地址 R A 数据 A 数据… A P
PDF created with pdfFactory Pro trial version
vI2C应用示例 ——主机发送
主模式数据发送的时序格式
S 从器件地址 W A 数据 A 数据… A/ A P
第一字节的前七 起始位,用于指 每发送完一个字节数 位包含接收器件 示传输的开始。 据,接收数据的器件 就发送一个应答位 的从地址,第8位 表示为写操作。
P
0x08
正确的状态号
0x20 0x30
错误的状态号
0x38
在通信过程中,随着通信阶段的不同,I2STAT寄存 器中的状态号也相应的变化,并引起中断。在中断服务 程序中,根据当前的状态号来决定下一步的处理。如果 当前的状态号不符合正常操作的流程,那么就要作出相 应的错误处理,比如重新启动总线等。
zhousun@
I2C BUS
SDA SCL