Download presentation
Presentation is loading. Please wait.
Published byMarie-Dominique Côté Modified 6年之前
1
第4章 MCS-51单片机系统的扩展技术 主要内容:MCS-51单片机系统扩展的基本原理和方法。常用器件的选择和应用,常用总线标准和典型接口电路。要求学生掌握单片机系统扩展的原理、方法,并能根据工程要求进行系统扩展。重点在于常用器件的选择和应用,常用总线标准和典型接口电路,单片机系统扩展的基本原理和方法。难点在于存储器地址重叠,灵活运用所学知识根据实际需要进行系统扩展。。
2
4.1 MCS-51单片机系统扩展概述 4.1.1 MCS-51系列单片机的外部扩展原理 (1)地址总线(AB)
系统扩展是指为加强单片机某方面功能,在最小应用系统基础上,增加一些外围功能部件而进行的扩充。 MCS-51系列单片机的外部扩展原理 1.MCS-51系列单片机的片外总线结构 MCS-51系列单片机具有很强的外部扩展功能。其外部扩展都是通过三总线进行的。 (1)地址总线(AB) 地址总线用于传送单片机输出的地址信号,宽度为16位, P0口经锁存器提供低8位地址,锁存信号是由CPU的ALE引脚提供的;P2口提供高8位地址。 (2)数据总线(DB) 数据总线是由P0口提供的,宽度为8位。
3
(3)控制总线(CB) 控制总线实际上是CPU输出的一组控制信号。 MCS-51单片机通过三总线扩展外部设备的总体结构图如下图所示。
4
2.MCS-51系列单片机系统的扩展能力 片外可扩展存储器的最大容量为216=64KB,地址范围为0000H~FFFFH。允许片外程序存储器和数据存储器的地址重叠。 I/O接口的编址方法:一种是独立编址,另一种是统一编址。MCS-51单片机采用了统一编址方式,即I/O端口地址与外部数据存储单元地址共同使用0000H~FFFFH(64KB)。当MCS-51单片机应用统扩展较多外部设备和I/O接口时,要占去大量的数据存储器的地址。
5
4.1.2 MCS-51单片机系统地址空间的分配 系统空间分配:通过适当的地址线产生各外部扩展器件的片选/使能等信号就是系统空间分配。
编址:编址就是利用系统提供的地址总线,通过适当的连接,实现一个编址惟一地对应系统中的一个外围芯片的过程。编址就是研究即系统地址空间的分配问题。 片内寻址:若某芯片内部还有多个可寻址单元,则称为片内寻址。 编址的方法:芯片的选择是由系统的高位地址线通过译码实现的,片内寻址直接由系统低位地址信息确定。 产生外围芯片片选信号的方法有三种:线选法、全地址译码法和部分译码法。
6
1. 线选法 线选法:直接以系统空闲的高位地址线作为芯片的片选信号。优点是简单明了,无须另外增加电路,缺点是寻址范围不惟一,地址空间没有被充分利用,可外扩的芯片的个数较少。线选法适用于小规模单片机应用系统中片选信号的产生。 2. 全地址译码法 全地址译码法:利用译码器对系统地址总线中未被外扩芯片用到的高位地址线进行译码,以译码器的输出作为外围芯片的片选信号。常用的译码器有:74LS139,74LS138,74LS154等。优点是存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间。缺点是所需地址译码电路较多,。全地址译码法是单片机应用系统设计中经常采用的方法。
7
3. 部分地址译码法 部分地址译码法:单片机的未被外扩芯片用到的高位地址线中,只有一部分参与地址译码,其余部分是悬空的。优点是可以减少所用地址译码器的数量。 缺点是存储器每个存储单元的地址不是惟一的,存在地址重叠现象。因此,采用部分地址译码法时必须把程序和数据存放在基本地址范围内,以避免因地址重叠引起程序运行的错误。
8
4.2 存储器的扩展 存储器是计算机系统中的记忆装置,用来存放要运行的程序和程序运行所需要的数据。单片机系统扩展的存储器通常使用半导体存储器,根据用途可以分为程序存储器(一般用ROM)和数据存储器(一般用RAM)两种类型。 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)等。
9
(2)工作速度匹配 MCS-51的访存时间(单片机对外部存储器进行读写所需要的时间)必须大于所用外部存储器的最大存取时间(存储器的最大存取时间是存储器固有的时间 ) (3)选择合适的存储容量 在MCS-51应用系统所需存储容量不变的前提下,若所选存储器本身存储容量越大,则所用芯片数量就越少,所需的地址译码电路就越简单。 (4)合理分配存储器地址空间的分配 存储器的地址空间的分配必须满足存储器本身的存储容量,否则会造成存储器硬件资源的浪费。 (5)合理选择地址译码方式 可根据实际应用系统的具体情况选择线选法、全地址译码法、部分地址译码法等地址译码方式。
10
单片机内部没有ROM,或虽有ROM但容量太小时,必须扩展外部程序存储器方能工作。最常用的ROM器件是EPROM。
程序存储器扩展 单片机内部没有ROM,或虽有ROM但容量太小时,必须扩展外部程序存储器方能工作。最常用的ROM器件是EPROM。 1. 常用EPROM程序存储器 EPROM主要是27系列芯片,如:2764(8K)/27128(16K) /27256(32K)/27040(512K)等,一般选择8KB以上的芯片作为外部程序存储器。其引脚图如下图所示。
11
引脚符号的含义和功能如下: D7~D0:三态数据总线; A0~Ai:地址输入线,i=12~15。2764的地址线为13位,i=12;27512的地址线为16位,i=15; :片选信号输入线; :输出允许输入线; VPP:编程电源输入线; :编程脉冲输入线; VCC:电源; GND:接地; NC:空引脚。
12
2732~27512芯片的读、维持操作方式各引脚的状态如下表所示。
13
2. 地址锁存器 程序存储器扩展时,还需要地址锁存器,地址锁存器常用的有带三态缓冲输出的8D锁存器74LS373、带有清除端的74LS273。 74LS373是带有三态门的8D锁存器,当三态门的使能信号线 为低电平时,三态门处于导通状态,允许锁存器输出,锁存控制端为11脚LE,采用下降沿锁存,控制端可以直接与CPU 的地址锁存控制信号ALE相连。 74LS273是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。 CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。 地址锁存器使用74LS373较多。引脚图如下页图所示。与8051连接电路如下页图所示。
15
3.典型扩展电路 MCS-51外扩存储器时应考虑锁存器的选择与连接,译码方式,存储器的选择与连接。访问程序存储器的控制信号有: ALE----地址锁存信号 PSEN----片外程序存储器读信号 EA----片内、外程序存储器访问选择信号 EA=0:访问片外;EA=1:访问片内。 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接地。
16
扩展电路如下: 2764的地址范围为:1000H~2FFFH。8051片内存储器的范围为: 0000H~0FFFH。
17
4. 超出64KB容量程序存储器的扩展 MCS-51单片机提供16位地址线,可直接访问程序存储器的空间为64 KB(216),若系统的程序总容量需求超过64 KB,可以采用区选法来实现。单片机系统的程序存储器每个区为64 KB,由系统直接访问,区与区之间的转换通过控制线的方式来实现。如下图所示为系统扩展128 KB程序存储空间(2×64 KB)示意图。 P1.0输出高电平,访问A芯片; P1.0输出低电平,访问B芯片。
18
数据存储器扩展 单片机内部的RAM为128B(或256B),有的单片机应用系统需要扩展外部数据存储器RAM (如数据采集系统数据量较大,需要专设 RAM或 Flash RAM)。最常用的 RAM器件是静态RAM( SRAM )。 1. 常用静态RAM存储器 常用的SRAM有6116(2K)、6264(8K)、62128(16K)、62256(32K)、 (128K)等。一般选择8KB以上的芯片作为外部程序存储器。其引脚图如下页图所示。
19
引脚符号的含义和功能如下: D7~D0:双向三态数据总线;
A0~Ai:地址输入线i=10(6116芯片),i=12(6264芯片),i=14(62256芯片); ( ):片选信号输入端,低电平有效; CS2:片选信号输入端,高电平有效(仅6264芯片有); :读选通信号输入线,低电平有效; :写选通信号 输入线, 低电平有效; Vcc:电源+5V; GND:地。
20
静态RAM存储器有三种工作方式:数据的读出、写入和维持,其操作控制如下表所示。
21
MCS-51扩展数据存储器与扩展程序存储器电路的异同:
(1)所用的地址总线,数据总线完全相同; (2)读/写控制线不同:扩展程序存储器的读选通信号由 PSEN 控制,扩展数据存储器的读、写控制线用RD 、WR分别控制存储器芯片的OE和WE ; (3)数据存储器与程序存储器的地址可以重叠,因为扩展它们的控制信号不同。 (4)I/O扩展的地址空间与数据存储器扩展的空间是共用的,所以扩展数据存储器涉及到的问题远比扩展程序存储器扩展多。
22
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可以接地。扩展电路如下页图所示。
23
6264的地址范围为:0000H~1FFFH。
24
[例题] 在上页图的数据存储器扩展电路中,将片内RAM 以50H单元开始的16个数据,传送片外数据存储器0000H开始的单元中。 程序如下:
ORG H MOV R0, #50H ; 数据指针指向片内50H单元 MOV R7, # ; 待传送数据个数送计数寄存器 MOV DPTR, #0000H ; 数据指针指向数据存储器6264的0000H单元 AGAIN: MOV ; 片内待输出的数据送累加器A MOVX @DPTR, A ; 数据输出至数据存储器6264 INC R0 INC DPTR ; 修改数据指针 DJNZ R7, AGAIN ; 判断数据是否传送完成 RET END
25
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。
26
程序存储空间和数据存储空间的混合 在硬件结构上将 信号和 信号相“与”后连接到RAM芯片的读选通端,这样就能使程序存储空间和数据存储空间混合。如右图所示。将程序装入6264中,很容易进行读写修改,执行程序时,由信号选通RAM读出。调试通过后,再将 RAM6264调换成EPROM2764。
27
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口进行扩展。可资选用的器件很多,方案也有多种。 概述 1. 单片机I/O口扩展方法 并行I/O口扩展的目的:为外围设备提供一个输入输出通道。 (1)并行总线扩展的方法 (2)串行口扩展方法 (3)I/O端口模拟串行方法 这里只介绍总线扩展方式下I/O接口的扩展方法。
28
2. MCS-51单片机扩展并行I/O口的扩展性能
① 访问扩展I/O口的方法与访问数据存储器完全相同,使用相同的指令,所有扩展的I/O口与片外数据存储器统一编址。 ② 利用串行口扩展法扩展的外部并行I/O口不占用外部RAM地址空间。 ③ 利用并行总线扩展的方法扩展外部并行I/O口时,必须注意P0, P2, P3口的负载问题,若负载能力不够,必须进行总线驱动能力扩展。 ④ 扩展外部并行I/O口对外设的硬件具有依赖性(驱动功率、电平匹配、干扰抑制、隔离等)。
29
4.3.2 普通并行I/O口扩展 1.扩展并行输出口 (1)用74LS 377扩展并行输出口 74LS377是带有输出允许端
的8D锁存器,硬件电路如右图所示。 程序如下: MOV DPTR, #7FFFH ; 数据指针指向74LS377 MOV A, 60H ; 输出的60H单元数据送累加器A MOVX @DPTR, A ; P0口将数据通过74LS377输出
30
74LS374是具有三态输出的8D边沿触发器,与单片机接口电路如下图所示,74LS374的地址为7FFFH。
程序如下: MOV DPTR, #7FFFH MOV A, 60H MOVX @DPTR, A
31
用单向总线缓冲器74LS244扩展并行输入口 ,硬件电路如下图所示。74LS244的地址为7FFFH。
2.扩展并行输入口 用单向总线缓冲器74LS244扩展并行输入口 ,硬件电路如下图所示。74LS244的地址为7FFFH。 程序如下: MOV DPTR, #7FFFH ; 数据指针指向74LS244 MOVX ; 外部数据经过74LS244送入累加器A MOV 61H, A ; 数据送61H单元保存
32
可编程并行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封装。 引脚图如右图所示。
33
(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。
34
8255A在不同的工作方式下,各口线的功能如下表所示。
35
(2)8255A的控制操作状态 8255A芯片的工作方式是通过地址线A1, A0选择端口、通过读写控制逻辑的组合状态来实现的。其操作状态如下表所示。
36
方式控制字:字控制8255A芯片三个端口的工作方式,特征是最高位为1。如下图所示。
37
C口的按位置位/复位控制字:C口具有位操作能力,其每一位都可以通过软件设置为置位或复位。其特征是最高位为0。格式如下图所示。
38
(4)接口与编程方法 MCS-51单片机外扩8255A芯片的电路原理图如下图所示。8255A芯片内部已有数据总线驱动器,可以直接与MCS-51单片机总线相连接(P0口接D0~D7)。8255A的RESET, , 分别与MCS-51单片机的RESET, , 相连, 接P2.7,单片机地址线最低2位分别接8255A芯片的A1,A0。PA, PB, PC及控制寄存器的地址分别是7FFCH, 7FFDH, 7FFEH和7FFFH。
39
[例题]如图上页所示,假设8255A芯片的PA接一组8只状态指示灯,PB接一组8个开关,现须将开关闭合的状态输入到片内60H单元保存,将70H单元的内容送状态指示灯显示,并置位PC7引脚,编写相应程序。 解:根据题意,设置8255A的A口方式0输出,B口方式0输入,C口高四位输出,则8255A的方式字为82H( B),C口置位/复位字为0FH( B),8255A的方式字及置位/复位控制字地址为7FFFH。初始化过程及输入/输出的程序如下: ORG H 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 MOV 60H, A ; 将B口开关状态送入60H单元 MOV DPTR, #7FFCH ; 数据指针指向8255A 的A口 MOV A, 70H MOVX @DPTR, A ; 70H单元内容A口指示灯显示 RET END
40
2.RAM/IO扩展芯片8155 (1)功能与引脚 8155芯片内具有256B的静态RAM,2个8位可编程并行I/O口PA、PB, 1个6位可编程并行I/O口PC, 1个14位计数器。其特点是接口简单、内部资源丰富、应用广泛。引脚图如右图所示。。
41
(2)8155芯片的RAM和I/O地址编码 8155的I/O端口及RAM地址在单片机应用系统中与外部数据存储器是统一编址的,其控制操作如左下表所示,对应I/O口寄存器的地址编码如右下表所示。
42
(3)命令/状态寄存器 8155芯片的命令/状态寄存器物理上只有一个端口地址,对该端口写操作,命令字被写入命令寄存器;对该端口读操作,则从状态寄存器读出状态字。8155的命令字格式如下图所示。
43
8155的状态字格式如下图所示。 8155有2种工作方式:基本I/O和选通I/O。
44
(4)定时器/计数器 8155芯片内有一个14位的减法计数器,可对输入脉冲进行减法计数,它可以在0002H~3FFFH之间选择计数器初值,TIMER IN为定时器时钟输入引脚,TIMER OUT为定时器输出引脚,可输出方波、脉冲等信号。定时器的计数单元和工作方式由8155内部两个寄存器确定。格式如下图所示。其中,高字节寄存器的最高两位M2, M1用于设定定时器/计数器的工作方式。
45
M2,M1 定义定时/计数器从TIMEROUT输出信号的形式:
单方波宽度约等于初值的一半 计数开始 计数结束 M2,M1=01 输出连续方波 常常用作分频器(自动重装初值) M2,M1=01 输出单个脉冲 负脉冲宽度约等于输入TI的时钟周期 M2,M1=01 输出连续脉冲 常常用作分频器(自动重装初值)
46
定时器/计数器的使用(初始化): ① 对(04H)(05H)寄存器装入14位初值和输出信号形式。14位初值的范围是2—3FFFH。 ② 启动定时器/计数器。即对命令/状态字寄存器(00H)的最高两位M2,M1写入“11”。 如果定时器/计数器在运行中要改换新的时间常数,必须先装入 ③ 新的初值,然后再发送一次启动命令,即写入:M2, M1=11。 注意:8155定时器/计数器的最小初值为2。分频应用时,初值若为偶数,则输出等占空比方波;若为奇数,则正半周多一个脉冲周期。
47
(5)接口与编程 8155芯片可以直接与MCS-51单片机连接,不需要任何外加逻辑电路,扩展一片8155系统可以增加256B片外RAM、22位I/O口线及一个14位减法计数器,MCS-51与8155芯片的连接电路如下图所示。
48
上页图中RAM和各端口的地址为: RAM字节地址范围:7E00H~7EFFH;命令/状态寄存器:7F00H;PA口:7F01H;PB口:7F02H;PC口:7F03H;定时器低8位寄存器:7F04H;定时器高8位寄存器:7F05H。 [例题] 在上页图中,将单片机片内RAM 40H~4FH单元的内容,送8155芯片内的00H~0FH单元,并设定8155芯片的工作方式为:A口基本输入方式,B口基本输出方式,C口输入方式,定时器作为方波发生器,对输入脉冲100分频。 解:程序如下: ORG 1000H MOV R0, 40H ; CPU片内RAM 40H单元地址指针送R0 MOV DPTR, #7E00H ; 数据指针指向8155内部RAM单元
49
LP: MOV ; 数据送累加器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= B) MOVX @DPTR, A ; 定时器/计数器方式及高6位初值装入 MOV DPTR, #7F00H ; 数据指针指向控制字寄存器 MOV A, #0C2H ; 设定A, B, C口方式 MOVX @DPTR, A ; 启动定时器(0C2H= B) RET END
50
可编程逻辑器件(PLD)扩展 在功能上,单片机与大规模CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)有很强的互补性。CPLD/FPGA(Field Programmable Gate Array,现场可编程门阵列)具有高速、高可靠及开发便捷、规范等优点。以此两类器件相结合的电路结构在许多高性能仪器仪表和电子产品中被广泛应用。 单片机与CPLD/FPGA的接口方式有以下两种: 总线方式:MCS-51单片机按外部总线时序与CPLD/FPGA进行数据与控制信息通信。其特点是速度快,节省CPLD芯片的I/O口线,单片机编程简捷,控制可靠,易于扩展SRAM或ROM(通过CPLD/FPGA中的逻辑切换)。 8051单片机与CPLD/FPGA之间的连接图如下页图所示。
52
MCS-51以总线方式工作, CPLD/FPGA与MCS-51系列单片机接口采用VHDL电路设计,其总线接口逻辑的外部接口如下图所示。
由8031将数据#5AH写入目标器件中的第一个寄存器LATCH_OUT1的指令是: MOV A, #5AH MOV DPTR, #6FF5H MOVX @DPTR, A
53
独立方式:MCS-51单片机与CPLD/FPGA之间各自相对独立地完成自己的通信功能。其特点是CPLD/FPGA中的接口逻辑无需遵循单片机内固定总线方式的读/写时序。 CPLD/FPGA的逻辑设计与接口和单片机程序设计可以分先后相对独立地完成,接口设计方法比较简单。通信的时序方式可由所设计的软件自由决定,形式灵活多样。几乎所有单片机都能以独立接口方式与CPLD/FPGA进行通信。
54
4.4 时钟芯片的扩展 实现实时时钟的方法: (1)软件时钟:由软件计时实现。其特点是硬件开销小、成本低、外围电路简单、占用CPU的时间、计时精度低、走时误差较大。 (2)硬件时钟:由硬件时钟芯片实现,其特点是计时精确,不占用CPU资源,扩展电路简单。在单片机系统中应用较为广泛。 (3)GPS时钟:由全球卫星定位系统提供。其特点是精度高,成本高。
55
时钟芯片概述 1.DS1302 DS1302是美国达拉斯(Dallas)半导体公司推出的一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿功能。采用三线串行数据传输接口与CPU进行同步通信,内部有一个31B的高速RAM,工作电压范围为2.5~5.5V。 2. MC146818 MC146818是Motorola公司生产的时钟芯片。它支持时间(时、分、秒),也支持日期(世纪、年、月、日、星期)及闰月的自动调整。工作电流小(几A )。内部有64B的RAM,可设定报警时间(日、时、分、秒)并在报警时间到时产生中断。
56
3. M41T50/60/65 M41T50/60/65 STM公司的实时时钟产品,具有尺寸小、功耗低(电源电压为3.0V时,工作电流为350A,待机电流小于650nA )等特点。可通过I2C串行总线提供从秒到世纪的数据和时间信息,自动实现闰年调整。总线工作电压为1.3~3.6V。尤其适用于电池操作和便携式应用,也适用于工业系统、医学及大型家用电器。 4. X1203 X1203是一个带时钟/日历和两个闹钟(报警)的实时时钟芯片。内含双端口时钟和报警器寄存器,能以秒、分、时、日、星期、月和年为单位跟踪时间,具有闰年校正功能。其电压为2.5~6V。 此外,DS12887是实时日历时钟芯片,DS 是非易失性时钟芯片,DS1387是带有看门狗的时钟芯片,M6242B是直接与CPU总线连接的定时时钟/日历芯片,PCF8563P是宽电压I2C接口实时时钟/日历芯片等等。
57
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)功耗低、外围接口简单、精度高、工作稳定可靠,可广泛用于各种需要较高精度的实时时钟场合中。
58
1. DS12C887的基本组成及引脚 组成:石英晶体振荡器、锂电池、总线接口、控制寄存器A~D、实时时钟、日历时钟、报警时钟、方波电路和用户RAM等。24脚DIP封装,其引脚如下图所示。 引脚的功能如下: MOT:模式选择( Motorola模式和Intel模式)。 SQW:方波输出,通过对控制寄存器A编程,有13种方波信号的输出。 AD0~AD7:地址/数据复用总线。 AS:地址锁存。 :写数据控制输入。 :读数据控制输入。 :片选信号输入线。 :中断请求输出线。 :复位输入线。 NC:空引脚。
59
2. DS12C887的状态控制寄存器 DS12C887状态控制寄存器及存储单元功能表如下表所示。
60
(1)状态控制寄存器A(地址为xx0AH) 控制寄存器A控制字的格式如下表所示。 其中: UIP位:更新周期标志位。 DV0~DV2:芯片内部振荡器RTC控制位。 RS3~RS0:周期性中断或可编程方波输出速率选择位。各种不同的组合可以产生不同的输出。
61
(2)控制寄存器B(地址为xx0BH) 控制寄存器B控制字的格式如下表所示。 其中: SET位:更新周期/芯片停止工作选择位。
PIE, AIE, UIE位:周期中断、报警中断、更新结束中断允许位。 SQWE位:方波输出允许位。 DM位:时标寄存器用十进制BCD码表示或用二进制表示格式选择位。 24/12位:24/12小时模式设置位。 DSE位:夏令时服务位。
62
(2)控制寄存器C(地址为xx0CH) 控制寄存器C控制字的格式如下表所示。 其中: IRQF位:中断申请标志位。
PF, AF, UF位:周期中断、报警中断、更新结束中断标志位。 以上四个标志位在程序读取状态控制寄存器C的内容后,或者引脚变有效时(低电平),自动清0。 D0~D3位:保留标志位。
63
(2)控制寄存器D(地址为xx0DH) 控制寄存器D控制字的格式如下表所示。 控制寄存器D只有VRT位可用,该位用于指示芯片内锂电池的工作状态。正常时,VRT=1,锂电池耗尽时,VRT=0,此时读出的数据无效。该寄存器的其他各位均为厂家保留位,读出值始终为零,不允许用户向这些位写入数据。
64
3.DS12C887的中断和更新周期 DS12C887处于正常工作状态时,每秒将产生一个更新周期。 更新周期的基本功能为: (1)刷新各个时标寄存器的内容,同时,秒时标寄存器内容加1,并检查其他时标寄存器内容是否有溢出,如有溢出则相应的日、月、年进位。 (2)检查时、分、秒报警时标寄存器的内容是否与对应时标寄存器的内容相符。 避开更新周期内访问时标寄存器的方案: (1)利用更新周期结束发出的中断,提醒CPU将有998ms左右的时间去获取有效的数据。 (2)利用寄存器A中的UIP位来指示芯片是否处于更新周期。在UIP位从低变高到244μs后,芯片将开始其更新周期,到UIP位为低电平时,则利用244μs的间隔时间去读取时标信息。
65
DS12C887与MCS-51的接口 由于DS12C887片内自带地址锁存器,故AD0~AD7与单片机处理器的P0口直接相连,将单片机的ALE信号连到DS12C887的AS引脚。其他的引脚与单片机的连接如下图所示。DS12C887内部存储器起始地址为7F00H,时间、日历及报警信息分别存储在7F00H~7F09H单元中,状态控制寄存器A~D的地址分别为:7F0AH, 7F0BH, 7F0CH, 7F0DH。
66
4.4.4 DS12C887的应用举例 1.DS12C887的初始化设置 2.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的初始化编程 (见教材)
67
4.5 系统监控芯片的扩展 为了提高单片机应用系统的抗干扰性能,可外扩电源监控电路、看门狗、系统监控芯片等。
4.5 系统监控芯片的扩展 为了提高单片机应用系统的抗干扰性能,可外扩电源监控电路、看门狗、系统监控芯片等。 电源监控电路:利用监控芯片及少量的外围元件组成的各种有效复位电路,能对电源异常情况进行监控。其特点是监控功能强,可靠性高,外围元件少,监控电路简单,体积小。 “看门狗(Watchdog)”:在系统设计中通过软件或者硬件方式在一定的周期内监控单片机或者其他处理器的运行状况,如果在规定的时间内没有收到来自被监控单片机或者其他处理器的正确触发信号,则“看门狗”会强制系统复位,以保证系统在受到干扰时仍能够维持正常的工作状态。 软件“看门狗”是利用单片机内部空闲的定时器/计数器实现的,其特点是无需外加硬件电路,但占用片内定时器/计数器资源。 硬件“看门狗”是指集成在专用芯片或单片机内部的专用电路,该电路实际上是一种特殊的定时器。 系统监控芯片(也称处理器监控芯片μP ):可实现实时监控电源电压、看门狗定时输出、备份电池切换、系统复位等功能。
68
概述 1. MAX703~708/813/L系列 MAX703~708/813/L系列是美国美信(Maxim)公司推出的低价位微处理器监控芯片,具有看门狗定时器、自动和手动复位以及电压门限监测等功能。引脚图如下图所示。
69
2. IMP705~708/813L系列 IMP705~708/813L系列CMOS微处理器监控器能实时监控电源、电池电压和微处理器的工作状态,可替换Maxim公司的MAX705/6/7/8及MAX813L。具有精确的电源监控、去抖动的手动复位输入、看门狗定时器(IMP705/706)、200ms复位脉冲宽度、高电平有效的复位输出(IMP707/708/813L)等。引脚图如下图所示。
70
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。
71
MAX692A的工作原理 特点:MAX692A是美国Maxim公司的系统监控芯片产品,具有后备电池切换、电源失效和电池低电压报警,掉电判断(低于4.4V将产生复位信号)、“看门狗”监控(定时时间为1.6s )等功能。工作电压:1.2V~5.5V,静态电流:200μA,备用电池方式静态电流:50μA。 1.MAX692A引脚功能 DIP(双列直插式)或者SO(表面贴片)8引脚封装,引脚图如右图所示。
72
各引脚含义如下: VOUT:电源输出引脚,在正常情况下,IOUT=50mA,VOUT=(VCC0.5)~(VCC0.25)V之间;在备用电池模式下,IOUT=250μA,VOUT=(VBATT0.5)~(VBATT0.25)V。 VCC:电源引脚,电压范围1.2~5.5V。 GND:地。 PFI:电源失效输入,当PFI低于1.25V时,引脚变低。 :电源失效输出,当PFI低于1.25V时,引脚变低,其他情况为高。 WDI:“看门狗”输入。 :复位输出引脚。 VBATT:备用电池电源输入。
73
2.MAX692A工作原理 MAX692A由复位电路、看门狗电路、电压比较和备用电池切换电路四部分组成。 复位电路:在微处理器上电、掉电及低压供电时,监控器发生复位脉冲信号。 看门狗电路:定时时间为1.6s。若WDI脚输入一个脉冲,定时器开始计数,若在1.6s内不能向WDI端输入脉冲,监视器将输出一个复位信号。 电压比较器:用于低电压检测。 电池切换电路:在VBATT端接上电池,MAX692A会在VCC掉电时,自动切换到电池供电,为RAM提供电源。
74
MAX692A与MCS-51的接口 MAX692A自动监控MCS-51微处理器的典型电路如下页图所示。在电路设计中,应合理选择R1,R2的值,使得+5V电压跌落到某个电压值(如本设计中的4.5V),PFI的输入电压低于1.25V,导致 输出低电平,作为单片机中断的输入信号,使单片机系统能够进行一些必要的处理(如保存某些重要数据等)。R1,R2选取的计算方法如下: 可取R1=10k,R2=26k。最好选取精度较高的金属膜电阻。当+5V电压跌落到4.5V时,VR=1.25V,电压如果继续跌落, 便输出低电平,触发 中断。 复位按钮是为手动复位而设置的,在系统需要人为干预或者测试时使用,R4与C值的选择可按前述章节的方法进行。
76
MAX692A的编程应用 为保证CPU在正常工作时,Watchdog定时器不产生复位信号,必须在1.6s内改变MAX692A的WDI引脚上输入电平,按照上页图的电路,WDI引脚的电平变化由MCS-51处理器的P1.0引脚控制,与Watchdog定时器有关的程序段如下: ORG 0000H LJMP MAIN ; 转至主程序 ORG 0050H MAIN: … ; 初始化 SETB P1.0 CLR P ; 在P1.0引脚上输出一个正脉冲,两个正脉冲之间 … 的时间间隔小于1.6s CLR P1.0 ; 在P1.0引脚上输出一个正脉冲 … CLR P1.0 ; 同上,与上个正脉冲间隔时间小于1.6s LJMP MAIN END
77
当MCS-51系统受到干扰而使处理器出现“死机”时,单片机将不能定期执行上述两条指令,则WDI引脚上也就不能定时输入脉冲,看门狗定时器会在1
当MCS-51系统受到干扰而使处理器出现“死机”时,单片机将不能定期执行上述两条指令,则WDI引脚上也就不能定时输入脉冲,看门狗定时器会在1.6s后产生一个复位信号,使单片机复位。程序将会从0000H单元重新开始程序的执行,保证了系统的正常运转。
78
4.6 总线接口扩展 4.6.1 EIA RS-232C总线标准与接口电路
4.6 总线接口扩展 总线种类繁多,可分为局部总线、系统总线和通信总线。通信总线是系统之间或CPU与外设之间进行通信的一组信号线。通信总线接口按电气标准及协议来分包括RS-232, RS-422, RS-485, MODEM, USB, IEEE 1394, Internet网络芯片等,它们在不同的领域得到了广泛的应用。这里主要介绍MCS-51单片机应用系统中常用的通信总线标准及接口。 EIA RS-232C总线标准与接口电路 EIA RS-232C是异步串行通信中应用最广泛的标准总线,是美国EIA(Electronic Industries Association,电子工业联合会)开发公布的通信协议。适合于数据传输速率在0~20kb/s范围内的通信,包括了按位串行传输的电气和机械方面的规定。在微机通信接口中被广泛采用。
79
1. 电气特性 (1)采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的; (2)采用负逻辑。 (3)适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。 2. 连接器 (1)DB-25连接器 DB-25型连接器的外形及信号线分配如图右所示。25芯RS-232C接口具有20mA电流环接口功能,用9, 11, 18, 25针来实现。
80
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(保护地)。
81
4.电平转换 RS-232C采用负逻辑,为了能够同计算机接口或终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换。常用的转换器件有MC1488, SN75150(TTL电平到EIA电平的转换),MC1489, SN75154( EIA电平到TTL电平的转换),MAX232(完成TTL到EIA的双向电平转换)。 MAX232芯片是Maxim公司生产的低功耗、单电源、双RS-232发送/接收器,可实现TTL到EIA的双向电平转换。其引脚排列如下图所示。
82
5. EIA RS-232C与单片机系统的接口 RS-232C与单片机系统的接口电路如图下所示。MAX232外围的4个电解电容Cl, C2, C3, C4,是内部电源转换所需电容,其取值均为1F/25V,C5为0.1F的去耦电容。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相连接。
83
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的电压,具有抑制共模干扰的能力,数据传输可达千米以上。
84
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信号,进行远距离高速双向串行通信。
85
电气特性:RS-485标准采用正逻辑,+1. 5V~+6V表示“1”,6V~1
电气特性:RS-485标准采用正逻辑,+1.5V~+6V表示“1”,6V~1.5V表示“0”,二线双端半双工差分电平发送与接收,传输距离1.2km,最高数据传输速率可达10Mb/s,抗干扰能力较强 功能与规程特性:网络媒体采用双绞线、同轴电缆或光纤,安装简易,电缆数量、连接器、中继器、滤波器使用数量较少(每个中继器可延长线路1.2km),网络成本低廉。 数据帧格式:一般以异步通信为基础,相应的帧格式如下: 节点数:节点数是指每个RS-485接口芯片的驱动器能驱动多少个标准RS-485负载,其范围为:32~256个。 通信方式:半双工、全双工两种通信方式。如下页图所示。
87
5. 终端匹配 RS-422与RS-485总线网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以不用考虑终端匹配。一般终端匹配采用终接电阻方法,RS-422在总线电缆的远端并接电阻,RS-485则应在总线电缆的开始和末端都需并接终接电阻。终接电阻一般在RS-422网络中取100,在RS-485网络中取120。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120。电阻匹配的方法简单有效,其缺点是要消耗较大功率。6.RS-485与单片机系统的接口 单片机与RS-485总线标准之间必须进行转换,常用的转换芯片有MAX485, SN5176等。MAX485芯片是MAXIM公司的电平转换芯片,其引脚如右图所示。
88
各引脚含义如下: RO:接收器输出端。若A端高于B端200mV以上,RO为高;否则RO为低。 :接收器输出使能端。为低时,RO有效,否则RO为高阻态。 DE:驱动器输出使能端。若DE为高,驱动输出A和B有效,器件作为线驱动器用(发送);若DE为低,它们呈高阻态,这时为低,器件作线接收器用(接收)。 DI:驱动器输入。DI为低,将迫使输出为低,若DI为高,将迫使输出为高。 B:反相接收器输入和反相驱动器输出。 A:同相接收器输入和同相驱动器输出。 GND:接地。 VCC:电源正极。
89
MAX485与单片机系统连接如下图所示。RO与DI是标准的TTL电平,与MCS-51系统的TXD和RXD直接连接即可。由于RS-485总线工作于半双工状态,P1.0引脚用于控制MAX485是工作于收数据状态,还是工作于发数据状态,为低时是收数据。A, B端为RS-485总线的数据传输线路。
90
I2C总线标准与接口电路 I2C总线(Inter Integrated Circuit Bus):是Philips公司推出的串行总线标准(为二线制)。总线上扩展的外围器件及外设接口通过总线寻址,是具备总线仲裁和高低速设备同步等功能的高性能多主机总线。 1. I2C总线工作原理 组成: 串行数据线SDA和串行时钟线SCL构成的,可发送和接收数据。 要求:所有挂接在I2C总线上的器件和接口电路都应具有I2C总线接口,且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的地址信号寻址,不需要片选线。 特点:组成系统结构简单,占用空间小,无需专门的母板和插座,芯片管脚的数量少,无需片选信号,价格低。允许若干兼容器件共享总线,应用比较广泛。总线的长度可达7.6m,传送速度可达400kbps,标准速率为100kbps。支持多个组件。支持多主控器件(某时刻只能有一个主控器件)。I2C总线上所有设备的SDA, SCL引脚必须外接上拉电阻。
91
2. I2C总线系统结构 一个典型的I2C总线结构如下图所示。系统中所有的器件均有I2C总线接口,所有器件通过两根线SDA(串行数据线)和SCL(串行时钟线)连接到I2C总线上,并通过寻址识别。 I2C总线中的器件既可以作为主控器,也可以作为被控器,系统中每个器件均具有惟一的地址,各器件之间通过寻址确定数据交换方。任何时刻总线只能由一个主控制器,数据的传输只能在主、从器件间进行。
92
3. I2C总线协议 I2C总线在传送数据过程中共有三种类型信号:开始信号、停止信号和应答信号。 开始信号:SCL保持高电平的状态下,SDA出现下降沿。出现开始信号以后,总线被认为“忙”。 停止信号:SCL保持高电平的状态下,SDA出现上升沿。停止信号过后,总线被认为“空闲”。 应答信号:接收数据的器件在接收到8位数据后,向发送数据的器件发出特定的低电平脉冲,表示已收到数据。 总线空闲:SCL和SDA都保持高电平。 总线忙:在数据传送开始以后,SCL为高电平的时候,SDA的数据必须保持稳定,只有当SCL为低电平的时候才允许SDA上的数据改变。
93
4. I2C总线的传送格式 I2C总线的传送格式为主从式,对系统中的某一器件来说有四种工作方式:主发送方式、从发送方式、主接收方式、从接收方式。 (1)主发送从接收 主器件产生开始信号以后,发送的第一个字节为控制字节。前七位为从器件的地址片选信号。最低位为数据传送方向位(高电平表示读从器件,低电平表示写从器件),然后发送一个选择从器件片内地址的字节,来决定开始读写数据的起始地址。接着再发送数据字节,可以是单字节数据,也可以是一组数据,由主器件来决定。从器件每接收到一个字节以后,都要返回一个应答信号(ASK=0)。主器件在应答时钟周期高电平期间释放SDA线,转由从器件控制,从器件在这个时钟周期的高电平期间必须拉低SDA线,并使之为稳定的低电平,作为有效的应答信号。
94
(2)从发送主接收 在开始信号以后,主器件向从器件发送控制字节。如果从器件接收到主器件发送来的控制字节中的从地址片选信号与该器件相对应,并且方向位为高电平(R/=1),就表示从器件将要发送数据。从器件先发送一个应答信号(ASK=0)回应主器件,接着由从器件发送数据到主器件。如果在这个过程之前,主器件发给从器件一个片内地址选择信号,那么从器件发送的数据就从该地址开始发送;如果在从器件接收到请求发送的控制信号以前,没有收到这个地址选择信号,从器件就从最后一次发送数据的地址开始发送数据。发送数据过程中,主器件每接收到一个字节都要返回一个应答信号ACK。若ACK=0(有效应答信号),那么从器件继续发送;若ACK=1(停止应答信号),停止发送。主器件可以控制从器件从什么地址开始发送,发送多少字节。
95
5. I2C总线的基本操作 I2C总线运用主/从双向通信。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总线必须由主器件控制,主器件产生串行时钟(SCL)控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。如下图所示。
96
(1)控制字节 在起始条件之后,必须是器件的控制字节,其中,高四位为器件类型识别符(不同的芯片类型有不同的定义,如E2PROM为1010),接着三位为片选,最低位为读写控制位,为“1”时为读操作,为“0”时为写操作。如下图所示。
97
(2)写操作 写操作分为字节写和页面写两种操作,对于页面写,根据芯片的一次装载的字节不同有所不同。页面写的地址、应答和数据传送的时序如下图所示。
98
(3)读操作 读操作有三种基本操作:当前地址读、随机读和顺序读。下图给出的是顺序读的时序图。应当注意的是,为了结束读操作,主机必须在第9个周期间发出停止条件或者在第9个时钟周期内保持SDA为高电平,然后发出停止条件。
99
6. 单片机的I2C总线接口 如果单片机自带I2C总线接口,则所有I2C器件对应连接到该总线上即可;若无I2C总线接口,则可以使用I/O口模拟I2C总线。 使用单片机I/O口模拟I2C总线时,硬件连接非常简单,只需两条I/O口线即可,在软件中分别定义成SCL和SDA。MCS-51单片机实现I2C总线接口电路如下图所示。 电路中单片机的P1.0引脚作为串行时钟线SCL,P1.1引脚作为串行数据线SDA,通过程序模拟I2C串行总线的通信方式。I2C总线适用于通信速度要求不高而体积要求较高的应用系统。
100
7. I2C总线的典型应用 X24C04是Xicor公司的CMOS 4096位串行E2PROM,内部组织为512×8位。16字节页面写,采用I2C总线结构。与MCS-51单片机接口如下图所示。上拉电阻R1,R2的选择可参考X24C04的手册。
101
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
102
其他常用总线标准 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转换为相应的数字信号,传送到接收数据终端。 通信系统操作模式:全双工模式和半双工模式。 适用于较远距离利用电话线或电力线进行远程数据传输的场合。
103
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模式 )。
104
作业与练习: 4.21
Similar presentations