第4章MCS-51单片机系统的扩展技术

Download Report

Transcript 第4章MCS-51单片机系统的扩展技术

单片机原理与应用
四川文理学院
Email:[email protected]
2020年4月28日
第4章
MCS-51单片机系统的扩展技术
主要内容:MCS-51单片机系统扩展的基本原理和方法。常用
器件的选择和应用,常用总线标准和典型接口电路。要求学生
掌握单片机系统扩展的原理、方法,并能根据工程要求进行系
统扩展。重点在于常用器件的选择和应用,常用总线标准和典
型接口电路,单片机系统扩展的基本原理和方法。难点在于存
储器地址重叠,灵活运用所学知识根据实际需要进行系统扩
展。。
4.1
MCS-51单片机系统扩展概述
系统扩展是指为加强单片机某方面功能,
在最小应用系统基础上,增加一些外围功能
部件而进行的扩充。
4.1.1
MCS-51系列单片机的外部扩展原理
1.MCS-51系列单片机的片外总线结构
MCS-51系列单片机具有很强的外部扩
展功能。其外部扩展都是通过三总线进行的。
4.1
MCS-51单片机系统扩展概述
(1)地址总线(AB)
地址总线用于传送单片机输出的地址信号,宽度为16
位, P0口经锁存器提供低8位地址,锁存信号是由CPU的
ALE引脚提供的;P2口提供高8位地址。
(2)数据总线(DB)
数据总线是由P0口提供的,宽度为8位。
(3)控制总线(CB)
控制总线实际上是CPU输出的一组控制信号。
4.1
MCS-51单片机系统扩展概述
MCS-51单片机通过三总线扩展外部设备的总体结构
图如下图所示。
2.MCS-51系列单片机系统的扩展能力
片外可扩展存储器的最大容量为216=64KB,
地址范围为0000H~FFFFH。允许片外程序存
储器和数据存储器的地址重叠。
I/O接口的编址方法:一种是独立编址,
另一种是统一编址。MCS-51单片机采用了统一
编址方式,即I/O端口地址与外部数据存储单元
地址共同使用0000H~FFFFH(64KB)。当
MCS-51单片机应用统扩展较多外部设备和I/O
接口时,要占去大量的数据存储器的地址。
4.1.2
MCS-51单片机系统地址空间的分配
系统空间分配:通过适当的地址线产生各外部扩展器
件的片选/使能等信号就是系统空间分配。
编址:编址就是利用系统提供的地址总线,通过适当
的连接,实现一个编址惟一地对应系统中的一个外围
芯片的过程。编址就是研究即系统地址空间的分配问
题。
片内寻址:若某芯片内部还有多个可寻址单元,则称
为片内寻址。
编址的方法:芯片的选择是由系统的高位地址线通过
译码实现的,片内寻址直接由系统低位地址信息确定。
产生外围芯片片选信号的方法有三种:线选法、全地
址译码法和部分译码法。
外围芯片的片选方法
1、线选法
线选法:直接以系统空闲的高位地址线作为芯
片的片选信号。优点是简单明了,无须另外增
加电路,缺点是寻址范围不惟一,地址空间没
有被充分利用,可外扩的芯片的个数较少。线
选法适用于小规模单片机应用系统中片选信号
的产生。
外围芯片的片选方法
2. 全地址译码法
全地址译码法:利用译码器对系统地址总线中
未被外扩芯片用到的高位地址线进行译码,以
译码器的输出作为外围芯片的片选信号。常用
的译码器有:74LS139,74LS138,74LS154等。
优点是存储器的每个存储单元只有惟一的一个
系统空间地址,不存在地址重叠现象;对存储
空间的使用是连续的,能有效地利用系统的存
储空间。缺点是所需地址译码电路较多,。全
地址译码法是单片机应用系统设计中经常采用
的方法。
外围芯片的片选方法
3. 部分地址译码法
部分地址译码法:单片机的未被外扩芯片用到的
高位地址线中,只有一部分参与地址译码,其余
部分是悬空的。优点是可以减少所用地址译码器
的数量。 缺点是存储器每个存储单元的地址不
是惟一的,存在地址重叠现象。因此,采用部分
地址译码法时必须把程序和数据存放在基本地址
范围内,以避免因地址重叠引起程序运行的错误。
4.2
存储器的扩展
存储器是计算机系统中的记忆装置,用来存
放要运行的程序和程序运行所需要的数据。单片
机系统扩展的存储器通常使用半导体存储器,根
据用途可以分为程序存储器(一般用ROM)和
数据存储器(一般用RAM)两种类型。
4.2
存储器的扩展
MCS-51单片机对外部存储器的扩展应考虑的问题:
(1)选择合适类型的存储器芯片
只读存储器( ROM )常用于固化程序和常数,可分为掩膜
ROM、可编程PROM、紫外线可擦除EPROM和电可擦除E2PROM
几种。若所设计的系统是小批量生产或开发产品,则建议使用
EPROM和E2PROM;若为成熟的大批量产品,则应采用PROM或
掩膜ROM 。
随机存取存储器( RAM )常用来存取实时数据、变量和运算
结果。可分为静态RAM(SRAM)和动态RAM(DRAM)两类。
若所用的RAM容量较小或要求较高的存取速度,则宜采用SRAM;
若所用的RAM容量较大或要求低功耗,则应采用DRAM,以降低成
本。
此 外 , 还 可 以 选 择 OTP ROM 、 Flash 存 储 器 、 FRAM 、
NVSRAM、用于多处理机系统的DSRAM(双端口RAM)等。
4.2
存储器的扩展
(2)工作速度匹配
MCS-51的访存时间(单片机对外部存储器
进行读写所需要的时间)必须大于所用外部存储
器的最大存取时间(存储器的最大存取时间是存
储器固有的时间 )
(3)选择合适的存储容量
在MCS-51应用系统所需存储容量不变的前
提下,若所选存储器本身存储容量越大,则所用
芯片数量就越少,所需的地址译码电路就越简单。
4.2
存储器的扩展
(4)合理分配存储器地址空间的分配
存储器的地址空间的分配必须满足存储器本
身的存储容量,否则会造成存储器硬件资源的浪
费。
(5)合理选择地址译码方式
可根据实际应用系统的具体情况选择线选法、
全地址译码法、部分地址译码法等地址译码方式。
4.2.1
程序存储器扩展
单片机内部没有ROM,或虽有ROM但容量
太小时,必须扩展外部程序存储器方能工作。最
常用的ROM器件是EPROM。
1. 常用EPROM程序存储器
EPROM 主 要 是 27 系 列 芯 片 ,
如:2764(8K)/27128(16K) /27256(32K) /27040
(512K)等,一般选择8KB以上的芯片作为外部程
序存储器。其引脚图如下图所示。
4.2.1
程序存储器扩展
4.2.1
程序存储器扩展
引脚符号的含义和功能如下:
D7~D0:三态数据总线;
A0~Ai:地址输入线,i=12~15。2764的地址线为13位,
i=12;27512的地址线为16位,i=15;
CE :片选信号输入线;
OE
:输出允许输入线;
VPP:编程电源输入线;
PGM
:编程脉冲输入线;
VCC:电源;
GND:接地;
NC:空引脚。
4.2.1
程序存储器扩展
2732~27512芯片的读、维持操作方式各引脚的状
态如下表所示。
2. 地址锁存器
程序存储器扩展时,还需要地址锁存器,地址锁存器常用的
有带三态缓冲输出的8D锁存器74LS373、带有清除端的74LS273。
74LS373是带有三态门的8D锁存器,当三态门的使能信号线
为低电平时,三态门处于导通状态,允许锁存器输出,锁存控制端为
OE11脚LE,采用下降沿锁存,控制端可以直接与CPU 的地址锁存控制
信号ALE相连。
74LS273是带有清除端的8D触发器,只有在清除端保持高电平
时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。
CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端
CLK 端相连。
地址锁存器使用74LS373较多。引脚图如下页图所示。与8051
连接电路如下页图所示。
2. 地址锁存器
3.典型扩展电路
MCS-51外扩存储器时应考虑锁存器的选择与
连接,译码方式,存储器的选择与连接。访问程
序存储器的控制信号有:
ALE----地址锁存信号
PSEN----片外程序存储器读信号
EA----片内、外程序存储器访问选择信号
EA=0:访问片外;
EA=1:访问片内。
3.典型扩展电路
8051扩展2764的电路连接方法:
数据线:P0口接EPROM的D0~D7 ;
地址线: 2764容量为8KB,213=8KB,需要A0~
A12共13根地址线。P0口经地址锁存器后接
EPROM的A0~A7 ; 为了与片内存储器的空间地址
衔接,P2.0~P2.3接EPROM的A8~A11 , P2.4经非
门后与A12连接。
控制线:ALE接373的LE,PSEN接EPROM的OE,
EA接VCC,只有一片EPROM,片选CE接地。
3.典型扩展电路
扩展电路如下:
2764的地址范围为:1000H~2FFFH。8051片内存储
器的范围为: 0000H~0FFFH。
4. 超出64KB容量程序存储器的扩展
MCS-51单片机提供16位地
址线,可直接访问程序存储器的
空间为64 KB(216),若系统的
程序总容量需求超过64 KB,可
以采用区选法来实现。单片机系
统的程序存储器每个区为64 KB,
由系统直接访问,区与区之间的
转换通过控制线的方式来实现。
如下图所示为系统扩展128 KB程
序存储空间(2×64 KB)示意图。
P1.0输出高电平,访问A芯
片;
P1.0输出低电平,访问B芯
片。
4.2.2
数据存储器扩展
单片机内部的RAM为128B(或256B),有的单片机
应用系统需要扩展外部数据存储器RAM (如数据采集系统
数据量较大,需要专设 RAM或 Flash RAM)。最常用的
RAM器件是静态RAM( SRAM )。
1. 常用静态RAM存储器
常用的SRAM有6116(2K)、6264(8K)、62128(16K)、
62256(32K)、 628128(128K)等。一般选择8KB以上的芯
片作为外部程序存储器。其引脚图如下页图所示。
4.2.2
数据存储器扩展
4.2.2
数据存储器扩展
引脚符号的含义和功能如下:
D7~D0:双向三态数据总线;
A0~Ai:地址输入线i=10(6116芯片),i=12(6264芯片),i=14
(62256芯片);
CS ( CS1):片选信号输入端,低电平有效;
CS2:片选信号输入端,高电平有效(仅6264芯片有);
OE :读选通信号输入线,低电平有效;
WE :写选通信号
输入线,
低电平有效;
Vcc:电源+5V;
GND:地。
4.2.2
数据存储器扩展
静态RAM存储器有三种工作方式:数据的读出、
写入和维持,其操作控制如下表所示。
MCS-51扩展数据存储器与扩展程序存储器电路的异同
(1)所用的地址总线,数据总线完全相同;
(2)读/写控制线不同:扩展程序存储器的读选通信号由
PSEN 控制,扩展数据存储器的读、写控制线用RD 、WR
分别控制存储器芯片的OE和WE ;
(3)数据存储器与程序存储器的地址可以重叠,因为扩
展它们的控制信号不同。
(4)I/O扩展的地址空间与数据存储器扩展的空间是共用
的,所以扩展数据存储器涉及到的问题远比扩展程序存储
器扩展多。
2.数据存储器典型扩展电路
MCS-51扩展6264的电路连接方法:
数据线:P0口接RAM的D0~D7 ;
地址线: 6264容量为8KB,213=8KB,需要A0~A12共13
根地址线。P0口经地址锁存器后接RAM的A0~A7 ;
P2.0~P2.4接RAM的A8~A12 。
控制线:ALE接373的LE,RD接RAM的OE、WR接RAM
的WE,
只有一片EPROM,且系统无其他I/O接口及外围设备扩展,
片选CE可以接地。扩展电路如下页图所示。
2.数据存储器典型扩展电路6264
6264的地址范围为:0000H~1FFFH。
2.数据存储器典型扩展电路6264
[例题] 在上页图的数据存储器扩展电路中,将片内RAM 以50H单元
开始的16个数据,传送片外数据存储器0000H开始的单元中。
程序如下:
ORG 1000H
MOV R0, #50H
MOV R7, #16
MOV DPTR, #0000H
0000H单元
AGAIN: MOV A, @R0
MOVX @DPTR, A
INC R0
INC DPTR
DJNZ R7, AGAIN
RET
END
; 数据指针指向片内50H单元
; 待传送数据个数送计数寄存器
; 数据指针指向数据存储器6264的
; 片内待输出的数据送累加器A
; 数据输出至数据存储器6264
; 修改数据指针
; 判断数据是否传送完成
4.2.3 MCS-51对外部存储器的扩展
下 图 所 示 的 8031 扩 展 系 统 中 , 外 扩 了
16KB程序存储器(使用两 片2764芯片)和
8KB数据存储器(使用一片6264芯片)。采
用全地址译码方式,P2.7用于控制2―4译码
器的工作,P2.6, P2.5参加译码,且无悬空地
址线,无地址重叠现象。1# 2764, 2# 2764, 3#
6264 的 地 址 范 围 分 别 为 : 0000H ~ 1FFFH,
2000H~3FFFH, 4000~5FFFH。
4.2.3 MCS-51对外部存储器的扩展
4.2.4 程序存储空间和数据存储空间的混合
在硬件结构上将 PSEN 信
号和 RD 信号相“与”后连接
到RAM芯片的读选通端,这
样就能使程序存储空间和数据
存储空间混合。如右图所示。
将程序装入6264中,很容易进
行读写修改,执行程序时,由
信号选通RAM读出。调试通
过后,再将 RAM6264调换成
EPROM2764。
4.3 并行I/O口的扩展
MCS-51单片机具有四个并行 8位 I/O口
(即P0, P1, P2, P3),原理上这四个I/O口均
可用做双向并行I/O接口,但在实际应用中,
可提供给用户使用的I/O口只有P1口和部分P3
口线及作为数据总线用的P0口。,在单片机的
I/O口线不够用的情况下,可以借助外部器件
对I/O口进行扩展。可资选用的器件很多,方
案也有多种。
4.3 并行I/O口的扩展
4.3.1
概述
1. 单片机I/O口扩展方法
并行I/O口扩展的目的:为外围设备提供一
个输入输出通道。
(1)并行总线扩展的方法
(2)串行口扩展方法
(3)I/O端口模拟串行方法
这里只介绍总线扩展方式下I/O接口的扩展方法。
4.3 并行I/O口的扩展
2. MCS-51单片机扩展并行I/O口的扩展性能
① 访问扩展I/O口的方法与访问数据存储器完全相同,使
用相同的指令,所有扩展的I/O口与片外数据存储器统一
编址。
② 利用串行口扩展法扩展的外部并行I/O口不占用外部
RAM地址空间。
③ 利用并行总线扩展的方法扩展外部并行I/O口时,必须
注意P0, P2, P3口的负载问题,若负载能力不够,必须进
行总线驱动能力扩展。
④ 扩展外部并行I/O口对外设的硬件具有依赖性(驱动功
率、电平匹配、干扰抑制、隔离等)。
4.3.2
普通并行I/O口扩展
普通并行I/O口在扩展时,它们的选通端或时钟信号端要与地
址线和控制线的逻辑组合输出端相连。其特点是电路简单、成本
低、配置灵活方便等特点,应用广泛。
1.扩展并行输出口
(1)用74LS 377扩展并行输出口
74LS377是带有输出允许端的8D锁存器,硬件电路如右图所示。
E
程序如下:
MOV DPTR, #7FFFH
; 数据指针指向74LS377
MOV A, 60H
; 输出的60H单元数据送累加器A
MOVX @DPTR, A
; P0口将数据通过74LS377输出
4.3.2
普通并行I/O口扩展
4.3.2
普通并行I/O口扩展
(2)用74LS374扩展并行输出口
74LS374是具有三态输出的8D边沿触发器,
与单片机接口电路如下图所示,74LS374的地址
为7FFFH。
程序如下:
MOV DPTR, #7FFFH
MOV A, 60H
MOVX @DPTR, A
4.3.2
普通并行I/O口扩展
4.3.2
普通并行I/O口扩展
2.扩展并行输入口
用单向总线缓冲器74LS244扩展并行输入口 ,硬件电
路如下图所示。74LS244的地址为7FFFH。
程序如下:
MOV DPTR, #7FFFH
; 数据指针指向74LS244
MOVX A, @DPTR
; 外部数据经过74LS244送入累加器A
MOV 61H, A
; 数据送61H单元保存
4.3.2
普通并行I/O口扩展
4.3.3 可编程并行I/O接口芯片扩展
可编程I/O接口芯片的特点:适应多种功能需求,
使用灵活,可扩展多个并行I/O口,可以编程设定为输
入或输出口,应用非常广泛。
1.可编程并行口8255A芯片
Intel 8255A芯片是通用可编程并行接口电路,广泛
应用于单片机扩展并行I/O口。它具有3个8位并行口PA,
PB和PC,一个8位的数据口D0~D7 ,PC口分高4位和
低4位。高4位可与PA口合为一组(A组),低4位可与PB口
合为一组(B组) ,PC口可按位置位/复位。40条引脚,
DIP封装。 引脚图如右图所示。
4.3.3 可编程并行I/O接口芯片扩展
4.3.3 可编程并行I/O接口芯片扩展
(1)8255A的3种工作方式
方式0(基本输入/输出方式):不需要任何选通信号,适合于
无条件传输数据的设备,数据输出有锁存功能,数据输入有
缓冲(无锁存)功能。
方式1(选通输入/输出方式):A组包括A口和C口的高四位
(PC7~PC4),A口可由程序设定为输入口或输出口,C口
的高四位则用来作为输入/输出操作的控制和同步信号;B组
包括B口和C口的低四位(PC3~PC0),功能和A组相同。
方式2(双向I/O口方式):仅A口有这种工作方式,B口无此工
作方式。此方式下,A口为8位双向I/O口,C口的PC7~PC3
用来作为输入输出的控制和同步信号。此时,B口可以工作
在方式0或方式1。
4.3.3 可编程并行I/O接口芯片扩展
8255A在不同的工作方式下,各口线的功能如下表所示。
4.3.3 可编程并行I/O接口芯片扩展
(2)8255A的控制操作状态
8255A芯片的工作方式是通过地址线A1, A0选择端口、
通过读写控制逻辑的组合状态来实现的。其操作状态如
下表所示。
4.3.3 可编程并行I/O接口芯片扩展
(3)8255A芯片的控制字
8255A芯片的初始化编程是通过对控制口写
入控制字的方式实现的 。
方式控制字:字控制8255A芯片三个端口的工
作方式,特征是最高位为1。如下图所示。
4.3.3 可编程并行I/O接口芯片扩展
4.3.3 可编程并行I/O接口芯片扩展
C口的按位置位/复位控制字:C口具有位操作能力,
其每一位都可以通过软件设置为置位或复位。其特征是
最高位为0。格式如下图所示。
D7
D6
D5
D4
1
x
x
x
D3
D2
D1
D0
0
1
复位
置位
000
001
010
011
100
101
110
111
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
(4)接口与编程方法
MCS-51单片机外扩8255A芯片的电路原理图如
下图所示。8255A芯片内部已有数据总线驱动器,可
以直接与MCS-51单片机总线相连接(P0口接D0~
D7)。8255A的RESET,RD ,WR 分别与MCS-51单
片机的RESET,RD ,
WR
相连, CS 接P2.7,单片机
地址线最低2位分别接8255A芯片的A1,A0。PA, PB,
PC及控制寄存器的地址分别是7FFCH, 7FFDH,
7FFEH和7FFFH。
(4)接口与编程方法
(4)接口与编程方法
[例题]如图上页所示,假设8255A芯片的PA接一
组8只状态指示灯,PB接一组8个开关,现须将开
关闭合的状态输入到片内60H单元保存,将70H
单元的内容送状态指示灯显示,并置位PC7引脚,
编写相应程序。
解:根据题意,设置8255A的A口方式0输出,B
口方式0输入,C口高四位输出,则8255A的方式
字为82H(10000010B),C口置位/复位字为0FH
(00001111B),8255A的方式字及置位/复位控
制字地址为7FFFH。初始化过程及输入/输出的程
序如下:
(4)接口与编程方法
ORG 1000H
DSP8255: MOV DPTR, #7FFFH
; 数据指针指向8255A控制口
MOV A, #82H
MOVX @DPTR, A
; 工作方式字送8255A控制口
MOV A, #0FH
MOVX @DPTR, A
; C口置位/复位字送8255A控制口
MOV DPTR, #7FFDH
; 数据指针指向8255A 的B口
MOVX A, @DPTR
MOV 60H, A
; 将B口开关状态送入60H单元
MOV DPTR, #7FFCH
; 数据指针指向8255A 的A口
MOV A, 70H
MOVX @DPTR, A
RET
END
; 70H单元内容A口指示灯显示
2.RAM/IO扩展芯片8155
(1)功能与引脚
8155芯片内具有256B的静态RAM,2个8
位可编程并行I/O口PA、PB, 1个6位可编程
并行I/O口PC, 1个14位计数器。其特点是接
口简单、内部资源丰富、应用广泛。引脚图如
右图所示。。
2.RAM/IO扩展芯片8155
2.RAM/IO扩展芯片8155
(2)8155芯片的RAM和I/O地址编码
8155的I/O端口及RAM地址在单片机应用
系统中与外部数据存储器是统一编址的,其控
制操作如左下表所示,对应I/O口寄存器的地址
编码如右下表所示。
2.RAM/IO扩展芯片8155
2.RAM/IO扩展芯片8155
(3)命令/状态寄存器
8155芯片的命令/状态寄存器物理上只有
一个端口地址,对该端口写操作,命令字被写
入命令寄存器;对该端口读操作,则从状态寄
存器读出状态字。8155的命令字格式如下图所
示。
2.RAM/IO扩展芯片8155
2.RAM/IO扩展芯片8155
8155的状态字格式如下图所示。
8155有2种工作方式:基本I/O和选通I/O。
(4)定时器/计数器
8155芯片内有一个14位的减法计数器,可对
输 入 脉 冲 进 行 减 法 计 数 , 它 可 以 在 0002H ~
3FFFH之间选择计数器初值,TIMER IN为定时
器时钟输入引脚,TIMER OUT为定时器输出引
脚,可输出方波、脉冲等信号。定时器的计数单
元和工作方式由8155内部两个寄存器确定。格式
如下图所示。其中,高字节寄存器的最高两位
M2, M1用于设定定时器/计数器的工作方式。
(4)定时器/计数器
(4)定时器/计数器
M2,M1 定义定时/计数器从TIMEROUT输出信号的形式:
M2,M1=00
输出单个方波
单方波宽度约等
计数开始
计数结束
于初值的一半
M2,M1=01
常常用作分频器
输出连续方波
(自动重装初值)
M2,M1=01
负脉冲宽度约等于
输出单个脉冲
输入TI的时钟周期
M2,M1=01
常常用作分频器
输出连续脉冲
(自动重装初值)
(4)定时器/计数器
定时器/计数器的使用(初始化):
① 对(04H)(05H)寄存器装入14位初值和输出信号形式
。14位初值的范围是2~3FFFH。
② 启动定时器/计数器。即对命令/状态字寄存器(00H)
的最高两位M2,M1写入“11”。
如果定时器/计数器在运行中要改换新的时间常数,必须
先装入
③ 新的初值,然后再发送一次启动命令,即写入:M2,
M1=11。
注意:8155定时器/计数器的最小初值为2。分频应用时
,初值若为偶数,则输出等占空比方波;若为奇数,则
正半周多一个脉冲周期。
(5)接口与编程
8155芯片可以直接与MCS-51单片机连接,
不需要任何外加逻辑电路,扩展一片8155系统
可以增加256B片外RAM、22位I/O口线及一个
14位减法计数器,MCS-51与8155芯片的连接电
路如下图所示。
(5)接口与编程
(5)接口与编程
上页图中RAM和各端口的地址为:
RAM字节地址范围:7E00H~7EFFH;命
令/状态寄存器:7F00H;PA口:7F01H;PB口:
7F02H;PC口:7F03H;定时器低8位寄存器:
7F04H;定时器高8位寄存器:7F05H。
(5)接口与编程
[例题] 在上页图中,将单片机片内RAM 40H~4FH单元
的内容,送8155芯片内的00H~0FH单元,并设定8155芯
片的工作方式为:A口基本输入方式,B口基本输出方式,
C口输入方式,定时器作为方波发生器,对输入脉冲100
分频。
解:程序如下:
ORG 1000H
MOV R0, 40H
单元地址指针送R0
MOV DPTR, #7E00H
部RAM单元
; CPU片内RAM 40H
; 数据指针指向8155内
(5)接口与编程
LP:
MOV A, @R0
; 数据送累加器A
MOVX @DPTR, A
; 数据从累加器A送8155内部RAM单元
INC DPTR
; 指向下一个8155内部RAM单元
INC R0
; 指向下一个CPU内部RAM单元
CJNE R0, #50H,LP
; 数据未传送完返回
MOV DPTR, #7F04H
; 指向定时器低8位
MOV A, #64H
; 分频系数(64)16=(100)10
MOVX @DPTR, A
; 低8位初值装入
INC DPTR
; 指向定时器高8位
MOV A, #40H ; 设定时器方式为连续方波(40H=0100 0000B)
MOVX @DPTR, A
; 定时器/计数器方式及高6位初值装入
MOV DPTR, #7F00H
; 数据指针指向控制字寄存器
MOV A, #0C2H
; 设定A, B, C口方式
MOVX @DPTR, A
; 启动定时器(0C2H=1100 0010B)
RET
END
4.3.4
可编程逻辑器件(PLD)扩展
在 功 能 上 , 单 片 机 与 大 规 模 CPLD
(Complex Programmable Logic Device,复杂可
编程逻辑器件)有很强的互补性。CPLD/FPGA
(Field Programmable Gate Array,现场可编程
门阵列)具有高速、高可靠及开发便捷、规范等
优点。以此两类器件相结合的电路结构在许多高
性能仪器仪表和电子产品中被广泛应用。
4.3.4
可编程逻辑器件(PLD)扩展
单片机与CPLD/FPGA的接口方式有以下两种:
总 线 方 式 : MCS-51 单 片 机 按 外 部 总 线 时 序 与
CPLD/FPGA进行数据与控制信息通信。其特点是速度快,
节省CPLD芯片的I/O口线,单片机编程简捷,控制可靠,
易于扩展SRAM或ROM(通过CPLD/FPGA中的逻辑切
换)。 8051单片机与CPLD/FPGA之间的连接图如下页
图所示。
4.3.4
可编程逻辑器件(PLD)扩展
INT1
4.3.4 可编程逻辑器件(PLD)扩展
MCS-51以总线方式工作, CPLD/FPGA与MCS-51系列单
片机接口采用VHDL电路设计,其总线接口逻辑的外部接口如
下图所示。
4.3.4 可编程逻辑器件(PLD)扩展
MCS-51以总线方式工作, CPLD/FPGA与MCS-51系列单
片机接口采用VHDL电路设计,其总线接口逻辑的外部接口如
下图所示。由8031将数据#5AH写入目标器件中的第一个寄存器
LATCH_OUT1的指令是:
MOV A, #5AH
MOV DPTR, #6FF5H
MOVX @DPTR, A
4.3.4
可编程逻辑器件(PLD)扩展
独立方式:MCS-51单片机与CPLD/FPGA之间各自
相对独立地完成自己的通信功能。其特点是CPLD/FPGA
中的接口逻辑无需遵循单片机内固定总线方式的读/写时
序。 CPLD/FPGA的逻辑设计与接口和单片机程序设计
可以分先后相对独立地完成,接口设计方法比较简单。
通信的时序方式可由所设计的软件自由决定,形式灵活
多样。几乎所有单片机都能以独立接口方式与
CPLD/FPGA进行通信。
4.4
时钟芯片的扩展
实现实时时钟的方法:
(1)软件时钟:由软件计时实现。其特点是硬件开销小、
成本低、外围电路简单、占用CPU的时间、计时精度低、
走时误差较大。
(2)硬件时钟:由硬件时钟芯片实现,其特点是计时精确,
不占用CPU资源,扩展电路简单。在单片机系统中应用
较为广泛。
(3)GPS时钟:由全球卫星定位系统提供。其特点是精度
高,成本高。
4.4.1
时钟芯片概述
1.DS1302
DS1302是美国达拉斯(Dallas)半导体公
司推出的一种高性能、低功耗、带RAM的实
时时钟芯片,它可以对年、月、日、星期、时、
分、秒进行计时,且具有闰年补偿功能。采用
三线串行数据传输接口与CPU进行同步通信,
内部有一个31B的高速RAM,工作电压范围为
2.5~5.5V。
4.4.1
时钟芯片概述
2. MC146818
MC146818是Motorola公司生产的时钟芯
片。它支持时间(时、分、秒),也支持日期
(世纪、年、月、日、星期)及闰月的自动调
整 。 工 作 电 流 小 ( 几  A ) 。 内 部 有 64B 的
RAM,可设定报警时间(日、时、分、秒)
并在报警时间到时产生中断。
4.4.1
时钟芯片概述
3. M41T50/60/65
M41T50/60/65 STM公司的实时时钟产品,
具有尺寸小、功耗低(电源电压为3.0V时,工作
电流为350A,待机电流小于650nA )等特点。
可通过I2C串行总线提供从秒到世纪的数据和时
间信息,自动实现闰年调整。总线工作电压为
1.3~3.6V。尤其适用于电池操作和便携式应用,
也适用于工业系统、医学及大型家用电器。
4.4.1
时钟芯片概述
4. X1203
X1203是一个带时钟/日历和两个闹钟(报警)的实
时时钟芯片。内含双端口时钟和报警器寄存器,能以秒、
分、时、日、星期、月和年为单位跟踪时间,具有闰年
校正功能。其电压为2.5~6V。
此外,DS12887是实时日历时钟芯片,DS1644-120
是非易失性时钟芯片,DS1387是带有看门狗的时钟芯片,
M6242B是直接与CPU总线连接的定时时钟/日历芯片,
PCF8563P是宽电压I2C接口实时时钟/日历芯片等等。
4.4.2
DS12C887的结构及工作原理
DS12C887是美国Dallas公司生产的实时日历时钟芯片,
采用CMOS技术,与MC146818B和DS1287管脚兼容,特点如
下: (1)具有秒、分、时、星期、日、月、年计数功能,有
12小时制和24小时制两种模式。
(2)可实现闰年调整。时间可用二进制数和BCD码表示。
(3)内部有128字节RAM,其数据具有掉电保护功能。
(4)可以选择Motorola和Intel总线时序。通过编程可实现多
种方波输出。
(5)工作电压为4.5~5.5V,工作电流为7~15mA。在断电情
况下运行十年以上不丢失数据。
(6)功耗低、外围接口简单、精度高、工作稳定可靠,可广
泛用于各种需要较高精度的实时时钟场合中。
1. DS12C887的基本组成及引脚
组成:石英晶体振荡器、锂电池、总线接口、控制寄存器
A~D、实时时钟、日历时钟、报警时钟、方波电路和用
户RAM等。24脚DIP封装,其引脚如下图所示。
WR
RD
CS
IRQ
RESET
1. DS12C887的基本组成及引脚
引脚的功能如下:
MOT:模式选择( Motorola模式和Intel模式)。
SQW:方波输出,通过对控制寄存器A编程,有13种方波信号的输出。
AD0~AD7:地址/数据复用总线。
AS:地址锁存。
:写数据控制输入。
WR
RD :读数据控制输入。
CS :片选信号输入线。
IRQ :中断请求输出线。
RESET :复位输入线。
NC:空引脚。
2. DS12C887的状态控制寄存器
DS12C887状态控制寄存器及存储单元功能表如下表所示。
(1)状态控制寄存器A(地址为xx0AH)
控制寄存器A控制字的格式如下表所示。
其中:
UIP位:更新周期标志位。
DV0~DV2:芯片内部振荡器RTC控制位。
RS3~RS0:周期性中断或可编程方波输出速率选择位。
各种不同的组合可以产生不同的输出。
(2)控制寄存器B(地址为xx0BH)
控制寄存器B控制字的格式如下表所示。
其中:
SET位:更新周期/芯片停止工作选择位。
PIE, AIE, UIE位:周期中断、报警中断、更新结束中断允许位。
SQWE位:方波输出允许位。
DM位:时标寄存器用十进制BCD码表示或用二进制表示格式选择
位。
24/12位:24/12小时模式设置位。
DSE位:夏令时服务位。
(3)控制寄存器C(地址为xx0CH)
控制寄存器C控制字的格式如下表所示。
其中:
IRQF位:中断申请标志位。
PF, AF, UF位:周期中断、报警中断、更新结束中断标志位。
以上四个标志位在程序读取状态控制寄存器C的内容后,或
者引脚变有效时(低电平),自动清0。
D0~D3位:保留标志位。
(4)控制寄存器D(地址为xx0DH)
控制寄存器D控制字的格式如下表所示。
控制寄存器D只有VRT位可用,该位用于指示芯片内
锂电池的工作状态。正常时,VRT=1,锂电池耗尽时,
VRT=0,此时读出的数据无效。该寄存器的其他各位均
为厂家保留位,读出值始终为零,不允许用户向这些位
写入数据。
3.DS12C887的中断和更新周期
DS12C887处于正常工作状态时,每秒将产生一
个更新周期。
更新周期的基本功能为:
(1)刷新各个时标寄存器的内容,同时,
秒时标寄存器内容加1,并检查其他时标寄存器
内容是否有溢出,如有溢出则相应的日、月、
年进位。
(2)检查时、分、秒报警时标寄存器的内
容是否与对应时标寄存器的内容相符。
3.DS12C887的中断和更新周期
避开更新周期内访问时标寄存器的方案:
(1)利用更新周期结束发出的中断,提醒
CPU将有998ms左右的时间去获取有效的数据。
(2)利用寄存器A中的UIP位来指示芯片是
否处于更新周期。在UIP位从低变高到244μs后,
芯片将开始其更新周期,到UIP位为低电平时,
则利用244μs的间隔时间去读取时标信息。
4.4.3
DS12C887与MCS-51的接口
由 于 DS12C887 片内 自带 地址锁 存 器 , 故 AD0 ~
AD7与单片机处理器的 P0口直接相连 ,将单片机的
ALE信号连到DS12C887的AS引脚。其他的引脚与单片
机的连接如下图所示。DS12C887内部存储器起始地址
为7F00H,时间、日历及报警信息分别存储在7F00H~
7F09H单元中,状态控制寄存器A~D的地址分别为:
7F0AH, 7F0BH, 7F0CH, 7F0DH。
4.4.4 DS12C887的应用举例
1.DS12C887的初始化设置
(1)禁止芯片内部的更新周期操作(寄存器B中的SET位置1 ),
(2)初始化时标参数寄存器(00H~09H单元)和状态寄存器A,
(3)清除寄存器C中的PF、AF、UF标志位。
(4)判断DS12C887内部锂电池的状态,决定片内的RAM内容是否可
用。
(5)状态寄存器B中的SET位置0,芯片开始计时工作。
2.DS12C887的闹钟设置
DS12C887共有3个闹钟单元(时、分、秒),DS12C887根据用
户对3个单元设定的初值能够提供两种闹钟报警方式。
(1)每日一次报警。
(2)固定间隔时间报警。
3.DS12C887的初始化编程 (见教材)
4.5
系统监控芯片的扩展
为了提高单片机应用系统的抗干扰性能,可外扩电源监控电路、看
门狗、系统监控芯片等。
电源监控电路:利用监控芯片及少量的外围元件组成的各种有效复位电
路,能对电源异常情况进行监控。其特点是监控功能强,可靠性高,外
围元件少,监控电路简单,体积小。
“看门狗(Watchdog)”:在系统设计中通过软件或者硬件方式在一定
的周期内监控单片机或者其他处理器的运行状况,如果在规定的时间内
没有收到来自被监控单片机或者其他处理器的正确触发信号,则“看门
狗”会强制系统复位,以保证系统在受到干扰时仍能够维持正常的工作
状态。
软件“看门狗”是利用单片机内部空闲的定时器/计数器实现的,其
特点是无需外加硬件电路,但占用片内定时器/计数器资源。
硬件“看门狗”是指集成在专用芯片或单片机内部的专用电路,该
电路实际上是一种特殊的定时器。
系统监控芯片(也称处理器监控芯片μP ):可实现实时监控电源电压、
看门狗定时输出、备份电池切换、系统复位等功能。
4.5.1
概述
1. MAX703~708/813/L系列
MAX703~708/813/L系列是美国美信(Maxim)公司
推出的低价位微处理器监控芯片,具有看门狗定时器、自
动和手动复位以及电压门限监测等功能。引脚图如下图所
示。
2. IMP705~708/813L系列
IMP705~708/813L系列CMOS微处理器监控器能实时
监控电源、电池电压和微处理器的工作状态,可替换
Maxim公司的MAX705/6/7/8及MAX813L。具有精确的电源
监控、去抖动的手动复位输入、看门狗定时器
(IMP705/706)、200ms复位脉冲宽度、高电平有效的复
位输出(IMP707/708/813L)等。引脚图如下图所示。
3. SP705~708/ 813L/813M系列
SP705/706/707/708/813L/813M系列微处理器(μP)监控器,
包含一个看门狗定时器,一个μP复位模块,一个供电失败比较器,
及一个手动复位输入模块。可监测μP及数字系统中的供电情况。
其特点是高精度电压监控器(4.65V),溢出周期为1.6s的独立看
门狗定时器,复位脉冲宽度为200ms,具有开关式手动复位输入,
支持对供电失败及低电池警告进行监控。引脚图如下图所示。
4. 带有串行E2PROM的微处理器监
控器X25045
X25045是带有串行E2PROM的
CPU监控器。它具有上电复位控制、
电源电压监控、看门狗定时器等功
能,片内含512字节存储单元的串
行E2PROM。
4.5.2 MAX692A的工作原理
特点:MAX692A是美国Maxim公司的系统监控芯片产品,
具有后备电池切换、电源失效和电池低电压报警,掉电判
断(低于4.4V将产生复位信号)、“看门狗”监控(定时
时间为1.6s )等功能。工作电压:1.2V~5.5V,静态电流:
200μA,备用电池方式静态电流:50μA。
1.MAX692A引脚功能
DIP(双列直插式)或
者SO(表面贴片)8引脚封
装,引脚图如右图所示。
各引脚含义如下:
VOUT : 电 源 输 出 引 脚 , 在 正 常 情 况 下 , IOUT=50mA , VOUT=
( VCC0.5 ) ~ ( VCC0.25 ) V 之 间 ; 在 备 用 电 池 模 式 下 ,
IOUT=250μA,VOUT=(VBATT0.5)~(VBATT0.25)V。
VCC:电源引脚,电压范围1.2~5.5V。
GND:地。
PFI:电源失效输入,当PFI低于1.25V时,引脚变低。
PFO :电源失效输出,当PFI低于1.25V时,引脚变低,其他情
况为高。
WDI:“看门狗”输入。
RESET :复位输出引脚。
VBATT:备用电池电源输入。
2.MAX692A工作原理
MAX692A由复位电路、看门狗电路、电压比较和备
用电池切换电路四部分组成。
复位电路:在微处理器上电、掉电及低压供电时,监控器
发生复位脉冲信号。
看门狗电路:定时时间为1.6s。若WDI脚输入一个脉冲,
定时器开始计数,若在1.6s内不能向WDI端输入脉冲,监
视器将输出一个复位信号。
电压比较器:用于低电压检测。
电 池 切 换 电 路 :在VBATT端接上电池,MAX692A会在
VCC掉电时,自动切换到电池供电,为RAM提供电源。
4.5.3
MAX692A与MCS-51的接口
MAX692A自动监控MCS-51微处理器的典型电路如下页
图所示。在电路设计中,应合理选择R1,R2的值,使得+5V
电压跌落到某个电压值(如本设计中的4.5V),PFI的输入电
压低于1.25V,导致
输出低电平,作为单片机中断的输入
PFO
信号,使单片机系统能够进行一些必要的处理(如保存某些
重要数据等)。R1,R2选取的计算方法如下:
R1
1.25V
1


R1  R 2 4.4V 3.6
可取R1=10k,R2=26k。最好选取精度较高的金属膜
电阻。当+5V电压跌落到4.5V时,VR=1.25V,电压如果继续
跌落, 便输出低电平,触发
中断。
PFO
复位按钮是为手动复位而设置的,在系统需要人为干预
INT0
或者测试时使用,R4与C值的选择可按前述章节的方法进行。
4.5.4 MAX692A的编程应用
为保证CPU在正常工作时,Watchdog定时器不产生复位信号,必须在
1.6s内改变MAX692A的WDI引脚上输入电平,按照上页图的电路,WDI引脚
的电平变化由MCS-51处理器的P1.0引脚控制,与Watchdog定时器有关的程
序段如下:
ORG 0000H
LJMP
MAIN
; 转至主程序
ORG 0050H
MAIN: …
; 初始化
SETB P1.0
CLR P1.0
; 在P1.0引脚上输出一个正脉冲,两个正脉冲之
间
…
的时间间隔小于1.6s
SETB P1.0
CLR P1.0
; 在P1.0引脚上输出一个正脉冲
…
SETB P1.0
CLR P1.0
; 同上,与上个正脉冲间隔时间小于1.6s
…
LJMP MAIN
END
当MCS-51系统受到干扰而使处理器出现“死机”
时,单片机将不能定期执行上述两条指令,则WDI引脚
上也就不能定时输入脉冲,看门狗定时器会在1.6s后产
生一个复位信号,使单片机复位。程序将会从0000H单
元重新开始程序的执行,保证了系统的正常运转。
4.6 总线接口扩展
总线种类繁多,可分为局部总线、系统总线和通信
总线。通信总线是系统之间或CPU与外设之间进行通信
的一组信号线。通信总线接口按电气标准及协议来分包
括RS-232, RS-422, RS-485, MODEM, USB, IEEE 1394,
Internet网络芯片等,它们在不同的领域得到了广泛的应
用。这里主要介绍MCS-51单片机应用系统中常用的通信
总线标准及接口。
4.6.1
EIA RS-232C总线标准与接口电路
EIA RS-232C是异步串行通信中应用最广泛的标准总
线,是美国EIA(Electronic Industries Association,电子
工业联合会)开发公布的通信协议。适合于数据传输速
率在0~20kb/s范围内的通信,包括了按位串行传输的电
气和机械方面的规定。在微机通信接口中被广泛采用。
1. 电气特性
(1)采取不平衡传输方式,是为点对点(即只用一对收、发
设备)通信而设计的;
(2)采用负逻辑。
(3)适用于传送距离不大于15m,速度不高于20kb/s的本地
设备之间通信的场合。
2. 连接器
(1)DB-25连接器
DB-25型连接器的外形及信
号线分配如图右所示。25芯RS232C接口具有20mA电流环接口
功能,用9, 11, 18, 25针来实现。
(2)DB-9连接器
DB-9连接器只提供异步通信的9
个信号,其外形及信号线分配如图右
所示。
DB-25与DB-9型连接器的引脚分
配信号完全不同。
3. RS-232C的接口信号
RS-232C标准接口有25条线,其中常用的有如下几条:
DSR:数据装置准备好; DTR:数据终端准备好;
RTS:请求发送;
CTS:允许发送;
DCD:接收线信号检出; RI:振铃指示;
TXD:发送数据;
RXD:接收数据;
SGND、PGND:地线,SGND(信号地)、PGND(保护地)。
4.电平转换
RS-232C采用负逻辑,为了能够同计算机接口或终端的TTL器件
连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换。
常用的转换器件有MC1488, SN75150(TTL电平到EIA电平的转换),
MC1489, SN75154( EIA电平到TTL电平的转换),MAX232(完成
TTL到EIA的双向电平转换)。
MAX232 芯 片 是 Maxim 公 司
生产的低功耗、单电源、双RS232发送/接收器,可实现TTL到
EIA的双向电平转换。其引脚排
列如下图所示。
5. EIA RS-232C与单片机系统的接口
RS-232C与单片机系统的接口电路如图下所示。MAX232外围的4
个电解电容Cl, C2, C3, C4,是内部电源转换所需电容,其取值均为
1F/25V , C5 为 0.1F 的 去 耦 电 容 。 MAX232 的 引 脚 T1IN, T2IN,
R1OUT, R2OUT为接TTL/CMOS电平的引脚,引脚T1OUT, T2OUT,
R1IN, R2IN为接RS-232C电平的引脚。
所以,T1IN, T2IN
引 脚 应 与 MCS-51 的 串
行发送引脚TXD相连接。
R1OUT, R2OUT 应 与
MCS-51 的 串 行 接 收 引
脚RXD相连接。T1OUT,
T2OUT 应 与 PC 机 的 接
收端RD相连接。R1IN,
R2IN 应 与 PC 的 发 送 端
TD相连接。
4.6.2 RS-422/RS-485总线标准与接口电路
采用RS-232C标准进行通信,负载能力差,通信范围小,
传送距离不超过15m,难以满足远距离的数据传输和控制。
当测量与控制系统中需要长距离数据传输时,广泛采用的是
RS-485总线标准。
1. RS-422串行总线标准
RS-422由RS-232发展而来,是一种单机发送、多机接收
的单向、平衡的通信总线标准。传输速率可达10Mb/s,传输
距离延长到1220m(速率低于100kb/s时),并允许在一条平
衡总线上最多连接10个接收器。
2. RS-485串行总线标准
EIA在RS-422的基础上制定了RS-485标准,增加了多点、
双向通信能力。RS-485总线标准采用平衡发送和差分接收,
能检测低至200mV的电压,具有抑制共模干扰的能力,数据
传输可达千米以上。
3. 平衡传输
RS-422, RS-485的数据信号采用差分传输方式,也称做平
衡传输,它使用一对双绞线,将其中一条线定义为A,另一条线
定义为B。
接收器与发送端的规定相同,收、发端通过平衡双绞线将AA
与BB对应相连,当在接收端AB之间有大于+200mV的电平时,
输出逻辑1,小于200mV时,输出逻辑0。接收器接收平衡线上
的电平范围通常在200mV至6V之间。
4. RS-485串行总线的特点
机械特性:采用RS-232/RS-485转换器(如ADAM4520)将PC串
行口RS-232信号转换成RS-485信号,或接入TTL/RS-485转换器
(如MAX485),将I/O接口芯片TTL电平信号转换成RS-485信号,
进行远距离高速双向串行通信。
电气特性:RS-485标准采用正逻辑,+1.5V~+6V表示“1”,6V~
1.5V表示“0”,二线双端半双工差分电平发送与接收,传输距离
1.2km,最高数据传输速率可达10Mb/s,抗干扰能力较强
功能与规程特性:网络媒体采用双绞线、同轴电缆或光纤,安装简易,
电缆数量、连接器、中继器、滤波器使用数量较少(每个中继器可延
长线路1.2km),网络成本低廉。
数据帧格式:一般以异步通信为基础,相应的帧格式如下:
节点数:节点数是指每个RS-485接口芯片的驱动器能驱
动多少个标准RS-485负载,其范围为:32~256个。
通信方式:半双工、全双工两种通信方式。如下页图所
示。
5. 终端匹配
RS-422与RS-485总线网络一般要使用终接电阻进行匹配。但
在短距离与低速率下可以不用考虑终端匹配。一般终端匹配采用终
接电阻方法,RS-422在总线电缆的远端并接电阻,RS-485则应在
总线电缆的开始和末端都需并接终接电阻。终接电阻一般在RS422网络中取100,在RS-485网络中取120。相当于电缆特性阻
抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120。电
阻匹配的方法简单有效,其缺点是要消耗较大功率。6.RS-485与
单片机系统的接口
单片机与RS-485总线标准
之间必须进行转换,常用的转
换 芯 片 有 MAX485, SN5176 等 。
MAX485芯片是MAXIM公司的
电平转换芯片,其引脚如右图
所示。
各引脚含义如下:
RO:接收器输出端。若A端高于B端200mV以上,RO为高;否则
RO为低。
RE :接收器输出使能端。为低时,RO有效,否则RO为高阻态。
DE:驱动器输出使能端。若DE为高,驱动输出A和B有效,器件
作为线驱动器用(发送);若DE为低,它们呈高阻态,这时为低,
器件作线接收器用(接收)。
DI:驱动器输入。DI为低,将迫使输出为低,若DI为高,将迫使
输出为高。
B:反相接收器输入和反相驱动器输出。
A:同相接收器输入和同相驱动器输出。
GND:接地。
VCC:电源正极。
MAX485与单片机系统连接如下图所示。RO与DI
是标准的TTL电平,与MCS-51系统的TXD和RXD直接
连接即可。由于RS-485总线工作于半双工状态,P1.0引
脚用于控制MAX485是工作于收数据状态,还是工作于
发数据状态,为低时是收数据。A, B端为RS-485总线的
数据传输线路。
4.6.3
I2C总线标准与接口电路
I2C总线(Inter Integrated Circuit Bus):是Philips公司推出的串行总
线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线
寻址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总
线。
1. I2C总线工作原理
组成: 串行数据线SDA和串行时钟线SCL构成的,可发送和接收数
据。
要求:所有挂接在I2C总线上的器件和接口电路都应具有I2C总线接口,
且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的
地址信号寻址,不需要片选线。
特点:组成系统结构简单,占用空间小,无需专门的母板和插座,
芯片管脚的数量少,无需片选信号,价格低。允许若干兼容器件共
享 总 线 , 应 用 比 较 广 泛 。 总 线 的 长 度 可 达 7.6m , 传 送 速 度 可 达
400kbps,标准速率为100kbps。支持多个组件。支持多主控器件(某
时刻只能有一个主控器件)。I2C总线上所有设备的SDA, SCL引脚必
须外接上拉电阻。
I2C总线系统结构
一个典型的I2C总线结构如下图所示。系统中所有的器件均有I2C
总线接口,所有器件通过两根线SDA(串行数据线)和SCL(串行时
钟线)连接到I2C总线上,并通过寻址识别。
I2C总线中的器件既可以作为主控器,也可以作为被控器,系统
中每个器件均具有惟一的地址,各器件之间通过寻址确定数据交换方。
任何时刻总线只能由一个主控制器,数据的传输只能在主、从器件间
进行。
2.
3. I2C总线协议
I2C总线在传送数据过程中共有三种类型信号:开始
信号、停止信号和应答信号。
开始信号:SCL保持高电平的状态下,SDA出现下降沿。
出现开始信号以后,总线被认为“忙”。
停止信号:SCL保持高电平的状态下,SDA出现上升沿。
停止信号过后,总线被认为“空闲”。
应答信号:接收数据的器件在接收到8位数据后,向发送
数据的器件发出特定的低电平脉冲,表示已收到数据。
总线空闲:SCL和SDA都保持高电平。
总线忙:在数据传送开始以后,SCL为高电平的时候,
SDA的数据必须保持稳定,只有当SCL为低电平的时候
才允许SDA上的数据改变。
4. I2C总线的传送格式
I2C总线的传送格式为主从式,对系统中的某一器件
来说有四种工作方式:主发送方式、从发送方式、主接收
方式、从接收方式。
(1)主发送从接收
主器件产生开始信号以后,发送的第一个字节为控制
字节。前七位为从器件的地址片选信号。最低位为数据传
送方向位(高电平表示读从器件,低电平表示写从器件),
然后发送一个选择从器件片内地址的字节,来决定开始读
写数据的起始地址。接着再发送数据字节,可以是单字节
数据,也可以是一组数据,由主器件来决定。从器件每接
收到一个字节以后,都要返回一个应答信号(ASK=0)。
主器件在应答时钟周期高电平期间释放SDA线,转由从器
件控制,从器件在这个时钟周期的高电平期间必须拉低
SDA线,并使之为稳定的低电平,作为有效的应答信号。
(2)从发送主接收
在开始信号以后,主器件向从器件发送控制字节。如果从
器件接收到主器件发送来的控制字节中的从地址片选信号与该
器件相对应,并且方向位为高电平(R/=1),就表示从器件将
要发送数据。从器件先发送一个应答信号(ASK=0)回应主器
件,接着由从器件发送数据到主器件。如果在这个过程之前,
主器件发给从器件一个片内地址选择信号,那么从器件发送的
数据就从该地址开始发送;如果在从器件接收到请求发送的控
制信号以前,没有收到这个地址选择信号,从器件就从最后一
次发送数据的地址开始发送数据。发送数据过程中,主器件每
接收到一个字节都要返回一个应答信号ACK。若ACK=0(有
效应答信号),那么从器件继续发送;若ACK=1(停止应答信
号),停止发送。主器件可以控制从器件从什么地址开始发送,
发送多少字节。
5. I2C总线的基本操作
I2C总线运用主/从双向通信。器件发送数据到总线上,
则定义为发送器,器件接收数据则定义为接收器。主器件
和从器件都可以工作于接收和发送状态。总线必须由主器
件控制,主器件产生串行时钟(SCL)控制总线的传输方
向,并产生起始和停止条件。SDA线上的数据状态仅在
SCL为低电平的期间才能改变,SCL为高电平的期间,
SDA状态的改变被用来表示起始和停止条件。如下图所
示。
(1)控制字节
在起始条件之后,必须是器件的控制字节,其中,高
四位为器件类型识别符(不同的芯片类型有不同的定义,
如E2PROM为1010),接着三位为片选,最低位为读写控
制位,为“1”时为读操作,为“0”时为写操作。如下图所
示。
(2)写操作
写操作分为字节写和页面写两种操作,对于页面写,
根据芯片的一次装载的字节不同有所不同。页面写的地
址、应答和数据传送的时序如下图所示。
(3)读操作
读操作有三种基本操作:当前地址读、随机读和顺
序读。下图给出的是顺序读的时序图。应当注意的是,
为了结束读操作,主机必须在第9个周期间发出停止条件
或者在第9个时钟周期内保持SDA为高电平,然后发出
停止条件。
6. 单片机的I2C总线接口
如果单片机自带I2C总线接口,则所有I2C器件对应连接到
该总线上即可;若无I2C总线接口,则可以使用I/O口模拟I2C总
线。
使用单片机I/O口模拟I2C总线时,硬件连接非常简单,只
需两条I/O口线即可,在软件中分别定义成SCL和SDA。MCS51单片机实现I2C总线接口电路如下图所示。
电路中单片机的P1.0引脚
作为串行时钟线SCL,P1.1引
脚作为串行数据线SDA,通
过程序模拟I2C串行总线的通
信方式。I2C总线适用于通信
速度要求不高而体积要求较
高的应用系统。
7. I2C总线的典型应用
X24C04是Xicor公司的CMOS 4096位串行E2PROM,
内部组织为512×8位。16字节页面写,采用I2C总线结构。
与MCS-51单片机接口如下图所示。上拉电阻R1,R2的选
择可参考X24C04的手册。
8051通过I2C总线接口对X24C04
进行单字节写操作的程序流程图如下
图所示。
子程序如下:
ORG 1000H
BSEND: MOV R2, #08H ; 1字节8位
SENDA: CLR P3.2
; SCL置低
RLC A
; 左移一位
MOV P3.3, C
; 写一位
SETB P3.2
; SCL置高
DJNZ R2, SENDA; 写完8个字节?
CLR P3.2
; 应答信号
SETB P3.3
; SDA置高
SETB P3.2
; SCL置低
RET
END
4.6.4 其他常用总线标准
1. 通用串行总线USB
通用串行总线USB(Universal Serial Bus)是在1994年底由康柏、
IBM、Microsoft等多家公司联合制定的.其特点是 数据传输速率高(达
480Mbps )、传输可靠、传输距离不大于5米,可通过菊花链的形式
同 时 挂 接 多 个 ( 可 达 127 个 ) USB 设 备 , 能 为 设 备 供 电 , 可 提 供
100mA~500mA的电流,支持热插拔,具有实时性、联合性、多能性。
USB接口主要应用于计算机周边外部设备,如电话、MODEM、键盘、
U盘、光驱、摇杆、磁带机、软驱、扫描仪、打印机、数码相机/摄相
机等。
2. MODEM (Modulator Demodulator,调制解调器)
通信原理:MODEM可实现数字信号到模拟信号及模拟信号到数字信
号的转换。来自发送端的数字信号被MODEM转换成模拟音频信号,
利用公共电话网传输到接收端的MODEM上。在接收端接收到的模拟
音频信号被MODEM转换为相应的数字信号,传送到接收数据终端。
通信系统操作模式:全双工模式和半双工模式。
适用于较远距离利用电话线或电力线进行远程数据传输的场合。
3.单总线
单总线(1-Wire)是Dallas公司推出的外围串行扩展总线,它只有
一根数据输出线DQ,总线上所有器件都挂在DQ上。适用于单主机系统,
能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单
总线器件,它们之间的数据交换只通过一条信号线。
4.串行外设总线SPI
SPI(Serial Peripheral Interface)是Motorola公司推出的串行
外设总线。由时钟线SCK、数据线MOSI(主发从收)和MISO(主收从发)
组成。单片机与外围扩展器件在时钟线SCK、数据线MOSI, MSIO上都是
同名端相连。带SPI接口的外围器件都有片选端。其特点是数据传送速
度较高(可达1.05 Mbps ),硬件扩展比较简单,软件实现方便。
5. 高性能的串行总线标准IEEE 1394
IEEE 1394串行总线标准适合视频数据传输,支持外设热插拔、同步
数据传输 , 同时可为 外 设提供电 源 。Apple公 司称之为火线 (Fire
Wire),Sony公司称之为i.Link,Texas Instruments公司称之为Lynx。
目前主要用于计算机及外围设备。
其特点是高速(可达400Mbps )、实时,它无需集线器,每个总线
最多可以支持63个设备,有1023个总线进行互连。它是一个对等标准
IEEE 1394标准定义了两种总线模式( Backplane和Cable模式 )。
作业与练习:
4.1
4.5
4.8
4.12
4.15
4.17
4.19
4.21
4.3
4.7
4.9
4.14
4.16
4.18
4.20