一、 i 2 c 串行扩展总线 1.i 2 c 总线接口电路结构

34
1 一、 I 2 C 串串串串串串 1.I 2 C 串串串串串串串串 #1 #2 #3 #4 V DD SD A SCL R P R P SD A SD A SD A SD A SCL SCL SCL SCL 串I 2 C 串串串串串串串串串串串串串串串串 RAM/EEPROM 串串 / 串串串 A/D 串串串D/A 串串串 串串串 I/O 串 串串串串串串串串串串串串串 、。 SDA 串串串串串 SCL 串串串串

Upload: sienna

Post on 17-Jan-2016

151 views

Category:

Documents


0 download

DESCRIPTION

一、 I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构. SDA :串行数据线 SCL :串行时钟. 在 I 2 C 总线上可以挂接各种类型的外围器件,如 RAM/EEPROM 、日历 / 时钟芯片、 A/D 转换器、 D/A 转换器、以及由 I/O 口、显示驱动器构成的各种模块。. 例: AT24C01 是 Atmel 公司生产的具有 I 2 C 总线接口的 E 2 PROM ,是 AT24C×× 系列存储器中的一种,芯片存储容量为 1Kb(128×8 位 ) 。 AT24C01 引脚如下图所示。. SCL :串行时钟端。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

1

一、 I2C 串行扩展总线 1.I2C 总线接口电路结构

#1 #2 #3 #4

VDD

SDA

SCL

RP RP

SDA SDA SDA SDA SCL SCL SCL SCL

在 I2C 总线上可以挂接各种类型的外围器件,如 RAM/EEPROM 、日历 / 时钟芯片、 A/D 转换器、 D/A 转换器、以及由 I/O 口、显示驱动器构成的各种模块。

SDA :串行数据线

SCL :串行时钟

Page 2: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

2

例: AT24C01 是 Atmel 公司生产的具有 I2C 总线接口的 E2PROM ,是 AT24C×× 系列存储器中的一种,芯片存储容量为 1Kb(128×8位 ) 。 AT24C01 引脚如下图所示。

SCL :串行时钟端。SDA :串行数据端,漏极开路,需接上拉电阻到 VCC 。WP :写保护, 当 WP 为高电平时存储器只读; 当 WP 为低电平时存储器可读可写。A2 ~ A0 :芯片地址。

Page 3: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

3

2.I2C 数据格式

启动信号

从器件地址、读 / 写位

应答信号

若干数据字节

停止信号

Page 4: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

4

3.I2C 地址设定

I2C 总线器件的 7 位从器件地址( SLA-Slave Address )

R/WA0A1A2DA0DA1DA2DA3

器件识别码

如: RTC 1101

EEPROM 1010

器件选择码

允许在共用的 I2C 总线上同时接 8 个同类器件

Page 5: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

5

4.I2C 数据传送

I2C 的主要命令只有读、写两种,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生改变。

例: Dallas 公司的时钟发生器 DS1085 操作时序。

Page 6: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

6

Page 7: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

7

Page 8: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

8

5.I2C 虚拟实现

I2C 器件

SCL EQU P1.0

SDA EQU P1.1

Page 9: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

9

( 1 )发送起始信号和停止信号

SDA

SCL

起始条件 停止条件

Page 10: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

10

START :SETB SDA

SETB SCL

NOP ; NOP 的数目根据时钟频率确定NOP ;此处用 NOP 来延时CLR SDA

NOP

NOP

CLR SCL

RET

Page 11: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

11

STOP : CLR SDA

SETB SCL

NOP ;此处用 NOP 来延时NOP ; NOP 的数目根据时钟频率确定SETB SDA

NOP

NOP

CLR SDA

CLR SCL

RET

Page 12: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

12

( 2 )应答位检查子程序

TACK :SETB SDA ;设置 SDA 为输入方式SETB SCL ;产生第 9 个时钟脉冲NOP ;此处用 NOP 来延时NOP ; NOP 的数目根据时钟频率确定CLR 30H ;正常标志MOV C , SDA

JNC TEND ;若正常应答,则转移SETB 30H

TEND : CLR SCL

RET

Page 13: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

13

TXBYT : MOV R4 , #08H ;要发送的数据长度为 8 位TX0 : RLC A ;将待发送的位送入位 CY 中

JC TX1 ; CY 位为 1 转到 TX1

CLR SDA ;置为低电平,发送 0

SETB SCL ;时钟高电平数据保持数据稳定NOP ;延时NOP

CLR SCL ;时钟脉冲变为低电平,准备改变数据DJNZ R4 , TX0 ;若 8 位未发送完,转 TX0 继续RET ; 8 位发送完成返回

TX1 : SETB SDA ;置为高电平,发送 1

SETB SCL ;时钟为高电平保持数据稳定NOP ;延时NOP

CLR SCL ;时钟脉冲变为低电平,准备改变数据CLR SDA ;将数据改为低电平DJNZ R4 , TX0 ;若 8 位未发送完,转 TX0 继续RET ; 8 位发送完成返回

( 3 )字节发送子程序

Page 14: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

14

RXBYT : MOV R4 , #08H ;要接收的数据长度为 8 位RX0 : SETB SDA ;设置 SDA 为输入方式

SETB SCL ; SDA 上数据有效MOV C , SDA ;读入 SDA 引脚状态MOV A , R5 ;将存放结果送入 A 中RLC A ;将读出的 1 位移入 A 中MOV R5 , A

CLR SCL ;一个脉冲结束, SDA 上数据无效DJNZ R4 , RX0 ;未读完 8 位,转到 RX0

RET ;读完返回

( 4 )字节接收子程序

Page 15: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

15

10.5 10.5 单片机系统的抗干扰技术单片机系统的抗干扰技术

一、干扰源及其分类

所谓干扰 , 一般是指有用信号以外的噪声 , 在信号输入、 传输和输出过程中出现的一些有害的电气变化现象。这些变化迫使信号的传输值、 指示值或输出值出现误差 , 出现假像。

干扰对电路的影响 , 轻则降低信号的质量 , 影响系统的稳定性 ; 重则破坏电路的正常功能 , 造成逻辑关系混乱 , 控制失灵。

Page 16: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

16

常见干扰的种类

Page 17: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

17内部和外部干扰示意图

Page 18: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

18

1.装置开口或隙缝处进入的辐射干扰 (辐射 )

2. 电网变化干扰 ( 传输 )

3. 周围环境用电干扰 (辐射、 传输、 感应 )

4. 传输线上的反射干扰 ( 传输 )

5. 系统接地不妥引入的干扰 ( 传输、 感应 )

6. 外部线间串扰 ( 传输、 感应 )

7. 逻辑线路不妥造成的过渡干扰 ( 传输 )

Page 19: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

19

8. 线间串扰 (感应、 传输 )

9. 电源干扰 ( 传输 )

10.强电器引入的接触电弧和反电动势干扰 (辐射、 传输、 感应 )

11.内部接地不妥引入的干扰 ( 传输 )

12. 漏磁感应 (感应 )

13. 传输线反射干扰 ( 传输 )

14 . 漏电干扰 ( 传输 )

Page 20: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

20

二、干扰对单片机系统的影响

正常程序:

13F4 A274 MOV C, 2EH.4

13F6 E544 MOV A, 44H

13F8 3402 ADDC A, # 2

13FA 13 RRC A

13FB F544 MOV 44H, A

13FD 9274 MOV 2EH.4, C

如果干扰使程序计数器 PC 出错 , 在某时

刻变为 13F5H, CPU 将执行如下程序片段 ,

掉进一个死循环 :

13F5 74E5 MOV A, # 0E5

13F7 4434 ORL A, # 34

13F9 02113F5 LJMP 13F5H

Page 21: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

21

三、硬件抗干扰技术1. 抗干扰稳压电源

(1) 应用系统的供电线路和产生干扰的用电设备分

开供电。

(2) 通过低通滤波器和隔离变压器接入电网。

(3) 整流组件上并接滤波电容。滤波电容选用

1 000 pF ~ 0.01 μF 的瓷片电容 , 。

(4) 采用高质量的稳压电源。

Page 22: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

22

抗干扰稳压电源抗干扰稳压电源

Page 23: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

23

89C51

2. 输入输出隔离

光电耦合器隔离

Page 24: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

24

光电耦合式固态继电器

Page 25: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

25

3. 过压保护电路

在输入通道上采用一定的过压保护电路 , 以防

引入高压 , 损坏系统电路。 过压保护电路由限流电

阻和稳压管组成 , 稳压值以略高于最高传送信号电

压为宜。对于微弱信号 ( 0.2 V 以

下) , 采用两支反并联的二极管 , 也可起到过压保

护作用。

Page 26: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

26

四、软件抗干扰技术 1. 开关量输入方法

Page 27: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

27

2. 程序执行过程中的软件抗干扰

“指令冗余”与“软件陷阱”

下面三条指令即组成一个“软件陷阱” :

NOP

NOP

LJMP ERR

一般使用在:

1 )未使用的中断向量区

2 )未使用的大片 EPROM空间

Page 28: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

28

3.WATCHDOG

如果“跑飞”的程序落到一个临时构成的死循环中 , 冗余

指令和软件陷阱都将无能为力 , 这时可采取WATCHDOG (俗称“看门狗”)措施。 WATCHDOG 有如下特性 :

(1) 本身能独立工作 , 基本上不依赖于 CPU 。 CPU 只在一个固定的时间间隔内与之打一次交道 , 表明整个系统“目前尚属正常”。

(2) 当 CPU落入死循环后 , 能及时发现并使整个系统复位。

Page 29: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

29硬件 WATCHDOG 电路

Page 30: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

30

4. 数字滤波

数字滤波有如下优点 :

(1) 数字滤波是由软件程序实现的 , 不需要硬件 , 因此不存在阻抗匹配的问题。

(2) 对于多路信号输入通道 , 可以共用一个软件“滤波器” , 从而降低设备的硬件成本。

(3) 只要适当改变滤波器程序或运算参数 , 就能方便地改变滤波特性 , 这对于低频脉冲干扰和随机噪声的克服特别有效。

Page 31: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

31

( 1 )限幅滤波

Page 32: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

32

PUSH ACC ; 保护现场

PUSH PSW

MOV A, 30H ; Yn→A

CLR C

SUBB A, 31H ; 求 Yn-Yn-1

INC LP0 ; Yn-Yn-1≥0吗?

CPL A ; Yn<Yn-1 , 求补

LP0: CLR C

CJNE A, # 01H, LP2 ; Yn-Yn-1 >Δ Y ?

LP1 : MOV 31H, 30H ; 等于 ΔY, 本次采样值有效

SJMP LP3

LP2: JC LP1 ; 小于 ΔY, 本次采样值有效

; 大于 ΔY, Yn =Yn-1

LP3: POP PSW

POP ACC

RET

Page 33: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

33

( 2 )中值滤波

中值滤波是对某一被测参数连续采样 n次(一般 n取奇

数) , 然后把 n次采样值按大小排列 , 取中间值为本次采样

值 , 中值滤波能有效地克服偶然因素引起的波动或采样器不稳

定引起的误码等脉冲干扰。

设 SAMP 为存放采样值的内存单元首地址 , DATA 为存放

滤波值的内存单元地址 , N 为采样值个数 , 中值滤波程序如

下 :

Page 34: 一、  I 2 C 串行扩展总线 1.I 2 C 总线接口电路结构

34

( 3 )算术平均滤波

对目标参数进行连续采样 , 然后求取算术平均值作为有效采样值 , 该算法适用于抑制随机干扰。