1 / 32

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

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

allie
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

  4. 一、SPI总线(由Motorola公司推出) • 基本概念 • SPI(Serial Peripheral Interface)总线——串行外设接口总线。用以扩展具备SPI接口的芯片。 • SPI构成: SCK —— 串行时钟线; MISO —— 主机输入/从机输出数据线; MOSI —— 主机输出/从机输入数据线; /CS —— 从机片选线。 • SPI系统可配置为主、从工作模式。以串行方式通信,8位数据同步发送和接收。

  5. SPI系统扩展示意图 • 允许含多个单片机,但只能一个为主器件。 • 彼此的SCK、MOSI、MISO同名端相连。 • 外围器件可进行选通操作(含片选端/CS)。 • 主机可向1个或多个从器件传送控制数据,而从器件只能在主机发命令时,才能接收或向主机传送数据。 • 主机的SCK信号使传输同步。主机的MOSI/MISO=输出/输入,从机则相反。 • 数据传送高前低后,速度最高可达1.05Mb/s。 • 提供频率可编程时钟、发送结束中断标志、写冲突保护、总线竞争保护等。

  6. 89C51模拟SPI接口方法 例1:用I/O线模拟SPI,扩展一片MCM2814(带SPI接口的串行E2PROM)。 • 应用要点: • P1.1=SCK、P1.0=MOSI、P1.3=MISO、P1.2=片选控制。 • 89C51只能软件模拟串行时钟、数据输入和输出操作。 • 编程前,先搞清被扩芯片的时钟时序,不同芯片的时钟时序有所不同。通常有两种: SCK上沿输入数据,下沿输出数据。 SCK下沿输入数据,上沿输出数据。

  7. P1.0 —— MOSI P1.1 —— SCK P1.2 —— 从机选择 P1.3 —— MISO 程序设计(适用芯片是SCK上沿写入数据,下沿读出数据): • 读子程序SPIIN • 从MCM2814中读出1字节数据放入R0。 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 ;返回

  8. P1.0 —— MOSI P1.1 —— SCK P1.2 —— 从机选择 P1.3 —— MISO • 写子程序SPIOUT • 将R0内容传写入MCM2814中。 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 ;返回

  9. P1.0 —— MOSI P1.1 —— SCK P1.2 —— 从机选择 P1.3 —— MISO • 读/写子程序SPIIO。 • 将 R0内容写入MCM2814中,同时从MCM2814中读出1字节数据存入R0。 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 ;延时 NOP MOV C,P1.3 ;从机输出SPISO送进位C RLC A ;左移至累加器ACC最高位至C MOV P.0,C ;进位C送从机输人 SETB P1. l ;使P1. 1(时钟)输出为1 DJNZ R1,SPIO1;判断是否循环8次(1字节数据) MOV R0,A RET ;返回

  10. 例2:在89C51串口上扩展多个SPI接口芯片。 • 除打印机机外,其余都是串行接口芯片。 • 单片机用串口方式0工作。 RXD既可收又可发,但不能同时进行,RXD同时充当了主机的MOSI/MISO线功能。 • 通信时,均要求先传送命令/地址,再传送数据,大都具有如下的时序波形。编程较前例简单。

  11. 二、I2C总线(由PHILIPS公司推出) • 基本概念 • I2C构成:SDA — 数据线、SCL — 时钟线。 • 被扩器件需带I2C接口,所有节点上的SDA和SCI同名端相连。 • 允许含两个以上主机存在(必须有仲裁功能),但不能同时控制总线,只允许一个有效。 • 启动通信器件为主器件,被寻址的任何器件看作从器件。并可根据不同的工作状态分为主控发/收器、被控发/收器。

  12. 无需片选,由主机通过发送寻址字节来寻址被控器件,并规定数据传送方向。无需片选,由主机通过发送寻址字节来寻址被控器件,并规定数据传送方向。 • 寻址字节:D7~D1位为从机地址, D0位为方向位(=0读;=1写)。 • 主机发寻址字节后,线上所有器件作识别比较,若相同认为被主机寻址,并确定发送还是接收。

  13. 例1:单片机A作主控发送器向被控单片机B发信息的过程。例1:单片机A作主控发送器向被控单片机B发信息的过程。 第一步:A发送起始信号和时钟寻址B,并确立信息传送方向。 第二步:A向B发送信息,发完后再发终止信号,结束发送过程。 例2:单片机A作主控接收器向被单片机B读信息的过程。 第一步:同上。 第二步:A接收B发出的信息,收完后再发终止信号,结束接收过程。

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

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

  16. I2C总线信号定义 • 在SCL=1时,SDA线上数据才有效;反之则无效。据此,只有当SCL=0时,SDA线上的电平状态才允许发生变化。 • SDA线传送数据均以起始信号开始,停止信号结束。 • 在不送数据时SCL线保持Mark(=1)。若SDA上发生一个下降沿,即为起始信号;发生一个上升沿,即称为停止信号。 • 起始和停止信号均由主控器发出,并由被控器检测。

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

  18. 若接收器在接收中途需停顿时,接收器可使SCL=0,迫使SDA线处于等待状态,若继续传输,再使SCL =1。 • 发送器每发完一个字节后,都要求接收方回一个应答信号,SDA=0为应答信号(A), SDA=1为非应答信号(/A)。 • 被控器回一个A,主控器可发送下一字节。若被控器拒收可回一个/A,主控器据此可产生一个停止信号来终止数据传输。 • 当主控器接收被控器送来的最后一个数据时,必须给被控器发一个/A,令被控器释放SDA线,以便主控器可以发送停止信号来结束数据的传输。

  19. I2C总线数据传输协议 • 总线节点的寻址字节 • 主机产生起始条件后,发送一个寻址字节。系统中的每个器件都进行地址比较。对上号的器件会应答主机的寻址。 • 从机地址由两部分构成:固定的+可编程的。 • 任何时刻只有一个主控器件实现总线操作控制,对总线上的其他节点寻址,分时实现点—点的数据传送。 • I2C上的单片机都可为主节点,其器件地址由软件给定,存放在I2C总线的地址寄存器中,称为主器件的从地址。在I2C总线的多主系统中,单片机作为从节点时,其从地址才有意义。

  20. 外围器件寻址字节SLA: • 其各位含义如下: • 器件地址(DA3DA2DA1DA0):固有地址编码,出厂给定。 • 例:I2C总线E2PROM AT24C的器件地址为1010, • 4位LED驱动器SAA1064的器件地址为0111。 • 引脚地址(A2A1A0):由地址端口A2A1A0在电路中接正或地的不同而形成的地址数据。 • 数据方向(R//W):主节点对从节点的传送方向。

  21. I2C总线数据传输的格式 • 起始信号地址字节A (数据字节+A)N /A 停止信号,结束传输。 • 若主机仍希望在总线上通信,它可以产生重复的起始信号(Sr)并寻址另一个从机,而不是首先产生一个停止信号。

  22. 总线上数据传输有多种组合方式: (l)主控器的写数据操作格式 (2)主控器的读数据操作格式

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

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

  25. 三、单总线(由Dallas公司推出) • 单总线(1 - Wire)只有一根数据输人/输出线,所有的器件都挂在这根线上。 • 如:一个由单总线构成的分布式温度监测系统。 其中,DS18S20是带有单总线接口的数字温度计集成电路,单片机对每个DS18S20通过总线DQ寻址。 DQ为漏极开路,须加上拉电阻 RP。

  26. 1KB存储器 地址存储内容 0 10011010 1 01101011 … 1023 10100111 地址 CPU 内容 读写控制 8-3 并行扩展三总线的产生 在微机系统中,系统扩展(存储器、I/O接口等)亦可用并行三总线来实现。 所谓三总线是: • 地址总线 AB:传送存储器和 I/O接口的地址信息。其宽度决定计算机最大寻址空间。 如:MCS-51有16根地址总线,寻址空间216 = 64KB • 数据总线DB:传送程序和数据的二进制代码。其宽度一般与微机的字长相同。 • 控制总线CB:传送各种控制脉冲、联络信号、状态电平等,协调各部件工作。控制总线的根数视微机控制功能的需要而定。

  27. P1.0 V 40 1 CC P1.1 P0.0 39 2 A8~A15 P1.2 P0.1 38 3 P2口 P1.3 P0.2 37 4 P1.4 P0.3 36 5 AB总线 ALE P1.5 P0.4 35 6 A0~A7 地址 锁存器 P1.6 P0.5 34 7 P0口 P1.7 P0.6 33 8 89C51 RST/V P0.7 32 9 PD RXD P3 . 0 EA/V 、 31 10 PP 89C51 TXD P3 . 1 ALE/P ROG 30 、 11 D0~D7 INT0 P3.2 PSEN DB总线 、 29 12 INT1 P3.3 P2.7 28 、 13 T0 P3.4 P2.6 、 27 14 PSEN T1 P3.5 P2.5 、 26 15 WR P3.6 P2.4 25 、 WR 16 CB总线 RD P3.7 P2.3 24 、 17 RD XTAL2 P2.2 23 18 XTAL1 P2.1 22 EA 19 V P2.0 21 20 SS 一、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选择。

  28. A8~A15 P2口 G D1 Q1 ︰ ︰ ︰ ︰ ︰ ︰ D8 Q8 OE ALE AB总线 A0~A7 373 P0口 89C51 DB总线 D0~D7 ALE CB总线 PSEN 地址 锁存 地址 锁存 WR RD 数据 有效 数据 有效 地址 输出 地址 输出 AD0~7 EA 数据 采样 数据 采样 RD/WR 地址锁存器可用 74LS373充当

  29. ROM:只能读不能写,掉电后信息不丢失。品种包括:ROM:只能读不能写,掉电后信息不丢失。品种包括: RAM:随机存取存储器,掉电后信息自然丢失。品种包括: 掩膜ROM:信息由厂家写入。 PROM:只能一次性编程。 EPROM:可用紫外光反复擦除反复改写。 E²PROM:可用电信号进行清除和重写。 FLASH(闪速存储器):兼有E2PROM和SRAM的优点。 半导体存储器 SRAM(静态RAM ):上电信息保持稳定。特点:功耗大、容量小、速度快、价格贵。 DRAM(动态RAM):工作时信息保持不稳定要不断进行信息恢复。特点:容量大、速度较慢、价格低。 8-4 外部存储器的扩展 一、半导体存储器概述 单片系统扩展用存储器,通常都是半导体存储器芯片。

  30. 常用SRAM芯片有: 6116:2K × 8位,地址线11根A0~A10。 6264:8K × 8位,地址线13根A0~A12。 62256:32K × 8位,地址线15根A0~A14。 二、数据存储器扩展

  31. 89C51 +5V 例:89C51单片机扩展一片6264SRAM电路。 注意:RAM能读能写,必须分别用/RD、/WR进行读、写控制。

  32. 89C51 +5V 当向该片6000H单元写一个数据DATA时, 可用如下指令: MOV A, #DATA  MOV DPTA, #6000H MOVX @DPTR, A 从7FFFH单元读一个数据时, 可用如下指令:  MOV DPTR, #7FFFH MOVX A, @DPTR 地址范围分析: 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 第8章作业:2、3、8、10 6000H~7FFFH是一种地址范围。

More Related