一、 i 2 c 串行扩展总线 1.i 2 c 总线接口电路结构
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 PresentationTRANSCRIPT
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 :串行时钟
2
例: AT24C01 是 Atmel 公司生产的具有 I2C 总线接口的 E2PROM ,是 AT24C×× 系列存储器中的一种,芯片存储容量为 1Kb(128×8位 ) 。 AT24C01 引脚如下图所示。
SCL :串行时钟端。SDA :串行数据端,漏极开路,需接上拉电阻到 VCC 。WP :写保护, 当 WP 为高电平时存储器只读; 当 WP 为低电平时存储器可读可写。A2 ~ A0 :芯片地址。
3
2.I2C 数据格式
启动信号
从器件地址、读 / 写位
应答信号
若干数据字节
停止信号
4
3.I2C 地址设定
I2C 总线器件的 7 位从器件地址( SLA-Slave Address )
R/WA0A1A2DA0DA1DA2DA3
器件识别码
如: RTC 1101
EEPROM 1010
器件选择码
允许在共用的 I2C 总线上同时接 8 个同类器件
5
4.I2C 数据传送
I2C 的主要命令只有读、写两种,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生改变。
例: Dallas 公司的时钟发生器 DS1085 操作时序。
6
7
8
5.I2C 虚拟实现
I2C 器件
SCL EQU P1.0
SDA EQU P1.1
9
( 1 )发送起始信号和停止信号
SDA
SCL
起始条件 停止条件
10
START :SETB SDA
SETB SCL
NOP ; NOP 的数目根据时钟频率确定NOP ;此处用 NOP 来延时CLR SDA
NOP
NOP
CLR SCL
RET
11
STOP : CLR SDA
SETB SCL
NOP ;此处用 NOP 来延时NOP ; NOP 的数目根据时钟频率确定SETB SDA
NOP
NOP
CLR SDA
CLR SCL
RET
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
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 )字节发送子程序
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 )字节接收子程序
15
10.5 10.5 单片机系统的抗干扰技术单片机系统的抗干扰技术
一、干扰源及其分类
所谓干扰 , 一般是指有用信号以外的噪声 , 在信号输入、 传输和输出过程中出现的一些有害的电气变化现象。这些变化迫使信号的传输值、 指示值或输出值出现误差 , 出现假像。
干扰对电路的影响 , 轻则降低信号的质量 , 影响系统的稳定性 ; 重则破坏电路的正常功能 , 造成逻辑关系混乱 , 控制失灵。
16
常见干扰的种类
17内部和外部干扰示意图
18
1.装置开口或隙缝处进入的辐射干扰 (辐射 )
2. 电网变化干扰 ( 传输 )
3. 周围环境用电干扰 (辐射、 传输、 感应 )
4. 传输线上的反射干扰 ( 传输 )
5. 系统接地不妥引入的干扰 ( 传输、 感应 )
6. 外部线间串扰 ( 传输、 感应 )
7. 逻辑线路不妥造成的过渡干扰 ( 传输 )
19
8. 线间串扰 (感应、 传输 )
9. 电源干扰 ( 传输 )
10.强电器引入的接触电弧和反电动势干扰 (辐射、 传输、 感应 )
11.内部接地不妥引入的干扰 ( 传输 )
12. 漏磁感应 (感应 )
13. 传输线反射干扰 ( 传输 )
14 . 漏电干扰 ( 传输 )
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
21
三、硬件抗干扰技术1. 抗干扰稳压电源
(1) 应用系统的供电线路和产生干扰的用电设备分
开供电。
(2) 通过低通滤波器和隔离变压器接入电网。
(3) 整流组件上并接滤波电容。滤波电容选用
1 000 pF ~ 0.01 μF 的瓷片电容 , 。
(4) 采用高质量的稳压电源。
22
抗干扰稳压电源抗干扰稳压电源
23
89C51
2. 输入输出隔离
光电耦合器隔离
24
光电耦合式固态继电器
25
3. 过压保护电路
在输入通道上采用一定的过压保护电路 , 以防
引入高压 , 损坏系统电路。 过压保护电路由限流电
阻和稳压管组成 , 稳压值以略高于最高传送信号电
压为宜。对于微弱信号 ( 0.2 V 以
下) , 采用两支反并联的二极管 , 也可起到过压保
护作用。
26
四、软件抗干扰技术 1. 开关量输入方法
27
2. 程序执行过程中的软件抗干扰
“指令冗余”与“软件陷阱”
下面三条指令即组成一个“软件陷阱” :
NOP
NOP
LJMP ERR
一般使用在:
1 )未使用的中断向量区
2 )未使用的大片 EPROM空间
28
3.WATCHDOG
如果“跑飞”的程序落到一个临时构成的死循环中 , 冗余
指令和软件陷阱都将无能为力 , 这时可采取WATCHDOG (俗称“看门狗”)措施。 WATCHDOG 有如下特性 :
(1) 本身能独立工作 , 基本上不依赖于 CPU 。 CPU 只在一个固定的时间间隔内与之打一次交道 , 表明整个系统“目前尚属正常”。
(2) 当 CPU落入死循环后 , 能及时发现并使整个系统复位。
29硬件 WATCHDOG 电路
30
4. 数字滤波
数字滤波有如下优点 :
(1) 数字滤波是由软件程序实现的 , 不需要硬件 , 因此不存在阻抗匹配的问题。
(2) 对于多路信号输入通道 , 可以共用一个软件“滤波器” , 从而降低设备的硬件成本。
(3) 只要适当改变滤波器程序或运算参数 , 就能方便地改变滤波特性 , 这对于低频脉冲干扰和随机噪声的克服特别有效。
31
( 1 )限幅滤波
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
33
( 2 )中值滤波
中值滤波是对某一被测参数连续采样 n次(一般 n取奇
数) , 然后把 n次采样值按大小排列 , 取中间值为本次采样
值 , 中值滤波能有效地克服偶然因素引起的波动或采样器不稳
定引起的误码等脉冲干扰。
设 SAMP 为存放采样值的内存单元首地址 , DATA 为存放
滤波值的内存单元地址 , N 为采样值个数 , 中值滤波程序如
下 :
34
( 3 )算术平均滤波
对目标参数进行连续采样 , 然后求取算术平均值作为有效采样值 , 该算法适用于抑制随机干扰。