8-1 单片机系统扩展概述 8-2 串行扩展总线接口技术 8-3 ...

32
8-1 8-1 单单单单 单单单单 单单单单 单单单单 8-2 8-2 单单单单单单单单单单 单单单单单单单单单单 8-3 8-3 单单单单单单单单单单 单单单单单单单单单单 8-4 8-4 单单单单单单单单 单单单单单单单单 8 8 单单单单单 单单单单单 单单单单单 单单单单单

Upload: allie

Post on 19-Jan-2016

171 views

Category:

Documents


8 download

DESCRIPTION

第 8 章 单片机小系统及片外扩展. 8-1 单片机系统扩展概述 8-2 串行扩展总线接口技术 8-3 并行扩展三总线的产生 8-4 外部存储器的扩展. 8-1 单片机系统扩展概述. 89C51 本身是一个完整的最小微机系统,若在实际应用中,片内资源不能满足系统功能要求情况下,可进行外扩。. 外扩内容: 存储器、 I/O 接口、各种管理功能器件(如定时器 / 计数器、 A/D 、 D/A 、时钟芯片、看门狗等等)。. 外扩方法: 并行扩展:选用并行操作器件,通过并行总线扩展连接。 串行扩展:选用串行操作器件,通过串行总线扩展连接。. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

8-1 8-1 单片机系统扩展概述单片机系统扩展概述8-2 8-2 串行扩展总线接口技术串行扩展总线接口技术8-3 8-3 并行扩展三总线的产生并行扩展三总线的产生8-4 8-4 外部存储器的扩展外部存储器的扩展

第第 88 章 章 单片机小系统及片外扩展单片机小系统及片外扩展

Page 2: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

8-1 8-1 单片机系统扩展概述单片机系统扩展概述 89C51 本身是一个完整的最小微机系统,若在实际应用中,片内资源不能满足系统功能要求情况下,可进行外扩。

外扩内容: 存储器、 I/O 接口、各种管理功能器件(如定时器 / 计数器、

A/D 、 D/A 、时钟芯片、看门狗等等)。

外扩方法: 并行扩展:选用并行操作器件,通过并行总线扩展连接。 串行扩展:选用串行操作器件,通过串行总线扩展连接。

Page 3: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

8-2 8-2 串行扩展总线接口技术串行扩展总线接口技术 串扩总线接口技术是指通过串行总线外扩芯片,以串行方式传输数据。 目前常用的串行总线有三种: SPI 、 I2C 、单总线。 值得一提是: 89C51 本身不具备实际意义上的 SPI 、 I2C 、单总线,但可模拟应用,且编程较麻烦。

Page 4: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

一、 SPI 总线(由 Motorola 公司推出)

1. 基本概念 SPI ( Serial Peripheral Interface )总线——串行外设接口

总线。用以扩展具备 SPI 接口的芯片。 SPI 构成:

SCK —— 串行时钟线;MISO —— 主机输入 / 从机输出数据线;MOSI —— 主机输出 / 从机输入数据线;/CS —— 从机片选线。

SPI 系统可配置为主、从工作模式。以串行方式通信, 8 位数据同步发送和接收。

Page 5: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

2. SPI 系统扩展示意图

允许含多个单片机,但只能一个为主器件。 彼此的 SCK 、 MOSI 、 MISO 同名端相连。 外围器件可进行选通操作(含片选端 /CS )。 主机可向 1 个或多个从器件传送控制数据,而从器件只能在主

机发命令时,才能接收或向主机传送数据。 主机的 SCK 信号使传输同步。主机的 MOSI/MISO= 输出 / 输

入,从机则相反。 数据传送高前低后,速度最高可达 1.05Mb/s 。 提供频率可编程时钟、发送结束中断标志、写冲突保护、总线

竞争保护等。

Page 6: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

3. 89C51 模拟 SPI 接口方法

例 1 :用 I/O 线模拟 SPI ,扩展一片 MCM2814 (带 SPI 接口的串行 E2PROM )。

应用要点: P1.1=SCK 、 P1.0=MOSI 、 P1.3=MISO 、 P1.2= 片选控制。 89C51 只能软件模拟串行时钟、数据输入和输出操作。 编程前,先搞清被扩芯片的时钟时序,不同芯片的时钟时序

有所不同。通常有两种:SCK 上沿输入数据,下沿输出数据。SCK 下沿输入数据,上沿输出数据。

Page 7: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

SPIIN: SETB P1.1 :使 P1.1 (时钟)输出为 1

CLR Pl. 2 ;选择从机 MOV R1 ,# 08H ;置循环次数SPIN1 : CLR P1. 1 ;使 P1. 1 (时钟)输出为 0

NOP ;延时 NOP

MOV C , Pl.3 ;从机输出 SPISO 送进位 C

RLC A :左移至累加器 ACC

SETB Pl. 1 ;使 P1. 1 (时钟)输出为 1

DJNZ R1 , SPIN1 ;判断是否循环 8 次( 1 字节数据) MOV R0 , A ; 1 字节数据送 RO

RET ;返回

① 读子程序 SPIIN

从 MCM2814 中读出 1 字节数据放入 R0 。

P1.0 —— MOSIP1.1 —— SCKP1.2 —— 从机选择P1.3 —— MISO

程序设计(适用芯片是 SCK 上沿写入数据,下沿读出数据):

Page 8: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

SPIOUT: SETB Pl.l ;使 Pi. 1( 时钟)输出为 1

CLR P1.2 ;选择从机 MOV R1 , #08H ;置循环次数

MOV A , R0 ; 1 字节数据送累加器 ACC

SPIOT1 : CLR P1. 1 ;使 Pi. 1 (时钟)输出为。 NOP ;延时 NOP

RLC A ;左移至累加器 ACC 最高位至 C

MOV P1. 0 , C ;进位 C 送从机输人 SPISI 线上 SETB P1. 1 ;使 Pl. 1( 时钟)输出为 1

DJNZ Rl, SPIOT1 ;判断是否循环 8 次 (1 字节数据) RET ;返回

② 写子程序 SPIOUT

将 R0 内容传写入 MCM2814 中。

P1.0 —— MOSIP1.1 —— SCKP1.2 —— 从机选择P1.3 —— MISO

Page 9: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

③ 读 / 写子程序 SPIIO 。将 R0 内容写入 MCM2814 中,同时从 MCM2814 中读出 1 字节数据存入 R0 。

P1.0 —— MOSIP1.1 —— SCKP1.2 —— 从机选择P1.3 —— MISO

SPIIO: SETB Pl.l ;使 P1. 1 (时钟)输出为 1 CLR P1.2 ;选择从机

MOV R1 ,# 08H ;置循环次数MOV A , R0 ; 1 字节数据送累加器 ACC

SPIO1 : CLR P1.1 ;使 P1. 1 (时钟)输出为。NOP ;延时NOPMOV C , P1.3 ;从机输出 SPISO 送进位 CRLC A ;左移至累加器 ACC 最高位至 CMOV P.0 , C ;进位 C 送从机输人SETB P1. l ;使 P1. 1 (时钟)输出为 1DJNZ R1 , SPIO1 ;判断是否循环 8 次( 1 字节数

据) MOV R0 , ARET ;返回

Page 10: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

例 2 :在 89C51 串口上扩展多个 SPI 接口芯片。

除打印机机外,其余都是串行接口芯片。 单片机用串口方式 0 工作。 RXD 既可收又可发,但不能同时

进行, RXD 同时充当了主机的 MOSI/MISO 线功能。 通信时,均要求先传送命令 / 地址,再传送数据,大都具有如

下的时序波形。编程较前例简单。

Page 11: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

二、 I2C 总线(由 PHILIPS 公司推出)1. 基本概念

I2C 构成: SDA — 数据线、 SCL — 时钟线。 被扩器件需带 I2C 接口,所有节点上的 SDA 和 SCI 同名端相连。 允许含两个以上主机存在(必须有仲裁功能),但不能同时控

制总线,只允许一个有效。 启动通信器件为主器件,被寻址的任何器件看作从器件。并可根据不同的工作状态分为主控发 / 收器、被控发 / 收器。

Page 12: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

无需片选,由主机通过发送寻址字节来寻址被控器件,并规定数据传送方向。

寻址字节: D7~D1 位为从机地址, D0 位为方向位( =0 读;=1 写)。

主机发寻址字节后,线上所有器件作识别比较,若相同认为被主机寻址,并确定发送还是接收。

Page 13: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

例 1 :单片机 A 作主控发送器向被控单片机 B 发信息的过程。

第一步: A 发送起始信号和时钟寻址B ,并确立信息传送方向。第二步: A 向 B 发送信息,发完后再发终止信号,结束发送过程。

例 2 :单片机 A 作主控接收器向被单片机 B 读信息的过程。

第一步:同上。第二步: A 接收 B 发出的信息,收完后再发终止信号,结束接收过程。

Page 14: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

2. I2C 总线的应用示意图

I2C支持带电插拔,传输速率为 100~400kb/s 。 多主方式,通过仲裁主控制器取得总线控制权。 主从方式(单主),只须考虑主方式的 I2C 操作。

Page 15: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

3. I2C 的接口电路结构

每个器件都有虚框所示的一个 I2C 接口电路,用于与 I2C挂接。 SDA 和 SCL 都是双向传输线,平时均处于高电平备用状态。 使 SCL=0 ,可关闭 I2C 总线。 SDA 和 SCL 线需分别接上拉电阻。

Page 16: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

4. I2C 总线信号定义

在 SCL=1 时, SDA 线上数据才有效;反之则无效。据此,只有当 SCL=0 时, SDA 线上的电平状态才允许发生变化。

SDA 线传送数据均以起始信号开始,停止信号结束。 在不送数据时 SCL 线保持Mark ( =1 )。若 SDA 上发生一

个下降沿,即为起始信号;发生一个上升沿,即称为停止信号。

起始和停止信号均由主控器发出,并由被控器检测。

Page 17: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

5. I2C 总线的数据传送

传送格式:启动信号 + 地址 + 数据 +停止信号 只有当总线处于备用状态时,传输才能开始。 启动与停止信号,由主机产生,从器件检测。 地址: 1 字节 + 接收器应答位。 数据:字节数不限制,但每字节后须跟应答位。

Page 18: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

若接收器在接收中途需停顿时,接收器可使 SCL=0 ,迫使 SDA 线处于等待状态,若继续传输,再使 SCL =1 。

发送器每发完一个字节后,都要求接收方回一个应答信号, SDA=0 为应答信号( A ), SDA=1 为非应答信号( /A )。

被控器回一个 A ,主控器可发送下一字节。若被控器拒收可回一个 /A ,主控器据此可产生一个停止信号来终止数据传输。

当主控器接收被控器送来的最后一个数据时,必须给被控器发一个 /A ,令被控器释放 SDA 线,以便主控器可以发送停止信号来结束数据的传输。

Page 19: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

6. I2C 总线数据传输协议

主机产生起始条件后,发送一个寻址字节。系统中的每个器件都进行地址比较。对上号的器件会应答主机的寻址。

从机地址由两部分构成:固定的 + 可编程的。 任何时刻只有一个主控器件实现总线操作控制,对总线上的其他节点寻址,分时实现点—点的数据传送。

I2C 上的单片机都可为主节点,其器件地址由软件给定,存放在 I2C 总线的地址寄存器中,称为主器件的从地址。在 I2C 总线的多主系统中,单片机作为从节点时,其从地址才有意义。

① 总线节点的寻址字节

Page 20: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

外围器件寻址字节 SLA :

其各位含义如下:• 器件地址( DA3DA2DA1DA0 ):固有地址编码,出厂给定。

例: I2C 总线 E2PROM AT24C 的器件地址为 1010 , 4 位 LED驱动器 SAA1064 的器件地址为 0111 。

• 引脚地址( A2A1A0 ):由地址端口 A2A1A0 在电路中接正或地的不同而形成的地址数据。

• 数据方向( R//W ):主节点对从节点的传送方向。

Page 21: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

起始信号地址字节 A (数据字节 +A ) N /A 停止信号,结束传输。

若主机仍希望在总线上通信,它可以产生重复的起始信号( Sr )并寻址另一个从机,而不是首先产生一个停止信号。

② I2C 总线数据传输的格式

Page 22: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

总线上数据传输有多种组合方式:

( l )主控器的写数据操作格式

( 2 )主控器的读数据操作格式

Page 23: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

( 3 )主控器的读 / 写数据操作格式

Page 24: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

7. 51 单片机与 I2C 总线的接口

应用要点: 用两根 I/O 线模拟 I2C 总线,与从机相连。 确定从机地址和从机中要操作的内部单元的地址。 根据 I2C 总线数据传送格式及 SDA 和 SCL 的时序要求编写

程序。

Page 25: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

三、单总线(由 Dallas 公司推出)

单总线( 1 - Wire )只有一根数据输人/输出线,所有的器件都挂在这根线上。

如:一个由单总线构成的分布式温度监测系统。

其中, DS18S20 是带有单总线接口的数字温度计集成电路,单片机对每个 DS18S20 通过总线 DQ寻址。 DQ 为漏极开路,须加上拉电阻 RP 。

Page 26: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

在微机系统中,系统扩展(存储器、 I/O 接口等)亦可用并行三总线来实现。

地址总线 AB :传送存储器和 I/O 接口的地址信息。其宽度决定计算机最大寻址空间。

数据总线 DB :传送程序和数据的二进制代码。其宽度一般与微机的字长相同。

控制总线 CB :传送各种控制脉冲、联络信号、状态电平等,协调各部件工作。控制总线的根数视微机控制功能的需要而定。

1KB 存储器

地址 存储内容

0 10011010

1 01101011

1023 10100111

CPU

地址

内容

读写控制

所谓三总线是:

如: MCS-51 有 16根地址总线,寻址空间 216 = 64KB

8-3 8-3 并行扩展三总线的产生并行扩展三总线的产生

Page 27: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

WR

A8~A15

P0 口ALE

PSEN

地址锁存器

D0~D7

A0~A7

P2 口

RDEA

89C51

AB 总线

DB 总线

CB 总线

一、 MCS-51 的外部三总线形成 P0.0~ P0.7 : 8 位数据线 / 低

8 位地址线( DB0 ~ DB7/AB0~ AB7 )复用总线。

P2.0~ P2.7 :高 8 位地址 AB8~ AB15 。

ALE :地址锁存允许控制信号。 /PSEN :片外 ROM 读控制信

号。 /RD :片外 RAM 读控制信号。 /WR :片外 RAM 写控制信号。 /EA :片内、外 ROM 选择。

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

RST/VPD

RXD、P3.0TXD、P3.1INT0、P3.2INT1、P3.3

T0、P3.4T1、P3.5

WR、P3.6RD、P3.7

XTAL2XTAL1

VSS

VCC

P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPP

ALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0

89C51

1234567891011121314151617181920

4039383736353433323130292827262524232221

Page 28: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

GD1 Q1︰ ︰︰ ︰︰ ︰D8 Q8 OE

A8~A15

P0 口

ALE

D0~D7

A0~A7

P2 口

WRPSEN

RDEA

89C51

AB 总线

DB 总线

CB 总线

373

ALE

地址

锁存

地址

锁存

地址输出

数据有效

地址输出

数据有效AD0 ~ 7

数据

采样

数据

采样

RD/WR

地址锁存器可用 74LS373 充当

锁存 G 输出允许 /OE 输出 Qi

1 0 Di

0 0 不变× 1 Z

Page 29: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

8-4 8-4 外部存储器的扩展 外部存储器的扩展 一、半导体存储器概述 单片系统扩展用存储器,通常都是半导体存储器芯片。

ROM :只能读不能写,掉电后信息不丢失。品种包括:掩膜 ROM :信息由厂家写入。PROM :只能一次性编程。 EPROM :可用紫外光反复擦除反复改写。 E²PROM :可用电信号进行清除和重写。FLASH (闪速存储器):兼有 E2PROM 和 SRAM 的优点。

半导体存储

器RAM :随机存取存储器,掉电后信息自然丢失。品种包括:

SRAM (静态 RAM ):上电信息保持稳定。特点:功耗大、容量小、速度快、价格贵。DRAM (动态 RAM ) :工作时信息保持不稳定要不断进行信息恢复。特点:容量大、速度较慢、价格低。

Page 30: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

常用 SRAM 芯片有:6116 : 2K × 8 位,地址线 11根 A0~A10 。 6264 : 8K × 8 位,地址线 13根 A0~A12 。62256 : 32K × 8 位,地址线 15根 A0~A14 。

二、数据存储器扩展

Page 31: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

例: 89C51 单片机扩展一片 6264SRAM电路。

注意: RAM 能读能写,必须分别用 /RD 、 /WR 进行读、写控制。

89C51

+5V

Page 32: 8-1   单片机系统扩展概述 8-2   串行扩展总线接口技术 8-3   并行扩展三总线的产生 8-4   外部存储器的扩展

地址范围分析:A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 X X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X X 1 1 1 1 1 1 1 1 1 1 1 1 1

6000H~7FFFH 是一种地址范围。

当向该片 6000H 单元写一个数据 DATA 时 , 可用如下指令 :

MOV A, # DATA

MOV DPTA, # 6000H

MOVX @DPTR, A

从 7FFFH 单元读一个数据时 , 可用如下指令 :

MOV DPTR, # 7FFFH

MOVX A , @DPTR

89C51

+5V

第 8 章作业: 2 、 3 、 8 、 10