1 / 95

第 8 章 单片机系统扩展

第 8 章 单片机系统扩展. 曲阜师范大学杏坛学院 付海燕. 第 8 章 单片机系统扩展. 目 录 8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接口技术. 第 8 章 单片机系统扩展. 本章主要介绍了 MCS-51 单片机系统扩展的方法。 通过扩展并行三总线来进行并行总线接口扩展;通过 UART 或 I/O 口模拟几种串行通信的特点来进行串行总线接口扩展。. 8.1 扩展并行三总线. 主要内容

iago
Télécharger la présentation

第 8 章 单片机系统扩展

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章 单片机系统扩展 曲阜师范大学杏坛学院 付海燕

  2. 第8章 单片机系统扩展 目 录 8.1 扩展并行三总线 8.2 扩展简单并行输入/输出口 8.3 扩展并行数据存储器 8.4 串行扩展总线接口技术

  3. 第8章 单片机系统扩展 本章主要介绍了MCS-51单片机系统扩展的方法。通过扩展并行三总线来进行并行总线接口扩展;通过UART或I/O口模拟几种串行通信的特点来进行串行总线接口扩展。

  4. 8.1 扩展并行三总线 主要内容 8.1.1 片外三总线结构 8.1.2 MCS-51系统扩展的实现 8.1.3 总线驱动

  5. 8.1.1 片外三总线结构 通常,微机的CPU外部都有单独的并行地址总线、数据总线、控制总线。 MCS-51单片机由于引脚的限制,数据总线和地址总线是复用的。 地址需要锁存:为了能把复用的数据总线和地址总线分离出来以便同外部的芯片正确的连接,需要在单片机的外部增加地址锁存器,从而构成与一般CPU相类似的三总线结构,如图8-1所示。

  6. 8.1.1 片外三总线结构 A8~A15 P2 地址总线 ALE 地址 锁存器 A0~A7 P0 D0~D7 数据总线 89C52 PSEN 控制总线 WR RD 图8-1 89C52扩展的三总线

  7. ALE P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 LE OE 8D 8Q 7D 7Q 6D 6Q 5D 5Q 4D 4Q 3D 3Q 2D 2Q 1D 1Q 89C52 A7 A6 A5 A4 A3 A2 A1 A0 74HC573 8.1.1 片外三总线结构 地址锁存器74HC573与单片机P0口连接,扩展地址总线,如图8-2所示。 图8-2 地址总线扩展电路

  8. 8.1.1 片外三总线结构 74HC573简介 74HC573是有输出三态门的电平允许8位锁存器。引脚信号如下: OE:输出允许端,为0时芯片有效。 LE:锁存控制端,高电平时,锁存器的数据输出端Q的状态,与数据输入端D相同,即锁存器是透明的;当LE端从高电平返回到低电平时(下降沿后),输入端的数据就被锁存在锁存器中,数据输入端D的变化不再影响Q端。

  9. 8.1.1 片外三总线结构 一、地址总线 地址总线(Address Bus,AB)用于传送单片机送出的地址信号,以便进行存储器单元和I/O端口的选择。 地址总线是单向的,只能由单片机向外发送信息。 地址总线的数目决定了可直接访问的存储单元的数目。

  10. 8.1.1 片外三总线结构 二、数据总线 数据总线(Data Bus,DB)用于单片机与存储器或I/O端口之间的数据传送。 一般数据总线的位数与CPU的字长一致,MCS-51单片机的数据总线是8位的。 数据总线是双向的,可以进行两个方向的数据传送。 三、控制总线 控制总线(Control Bus,CB)是单片机发出的以控制片外ROM、RAM和I/O口读/写操作的一组控制线。

  11. 8.1.2 MCS-51系统扩展的实现 一、以P0口作低8位地址及8位数据的复用总线 复用,即一段时间内作两种或两种以上用途。 在这里指P0口在每个CPU周期的前半个周期输出低8位地址,由地址锁存器锁存,然后由地址锁存器代替P0口输出低8位地址。后半个周期进行8位数据的输入输出。

  12. 8.1.2 MCS-51系统扩展的实现 二、以P2口作为高8位的地址总线 P0口的低8位地址加上P2的高8位地址就可以形成16位的地址总线,达到64KB的寻址能力。 实际应用中,往往不需要扩展那么多地址,扩展多少用多少口线,剩余的口线仍可作一般I/O口来使用。

  13. 8.1.2 MCS-51系统扩展的实现 三、控制信号线 ALE:地址锁存信号,用以实现对低8位地址的锁存。 PSEN:片外程序存储器读选通信号。 EA:程序存储器选择信号。为低电平时,访问外部程序存储器;为高电平时,访问内部程序存储器。 WR:片外数据存储器写选通信号。 RD:片外数据存储器读选通信号。

  14. 8.1.3 总线驱动 总线驱动的原因:在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、A/D接口、显示接口等,但总线接口的负载能力有限,因此常常需要通过连接总线驱动器进行总线驱动。

  15. 8.1.3 总线驱动 总线驱动器的作用:对于单片机的I/O口只相当于增加了一个TTL负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。 在对TTL负载驱动时,只需考虑驱动电流的大小。 在对MOS负载驱动时,MOS负载的输入电流很小,更多地要考虑对分布电容的电流驱动。

  16. 8.1.3 总线驱动 总线驱动器的选择: 系统总线中地址总线是单向的,因此驱动器可以选用单向的,如74LS244,还带有三态控制,能实现总线缓冲和隔离。 数据总线是双向的,其驱动器也要选用双向的,如74LS245。74LS245也是三态的,有一个方向控制端DIR。DIR=1时输出(An→Bn),DIR=0时输入(An←Bn)。

  17. 8.2 扩展简单并行输入/输出口 89C52有P0~P3四组I/O口,但是在某些特定的场合,可能会出现I/O口不够用的情况。这时就需要通过扩展来增加I/O口的数量以满足使用的需要。 在很多应用系统中,采用74系列TTL电路或4000系列MOS电路芯片,扩展并行数据输入输出。

  18. 8.2 扩展简单并行输入/输出口 例1在图8-4中,当P2.0=0,WR=1,RD=0时,通过74HC244(扩展输入)读入按键状态,当P2.0=0,WR=0,RD=1时,通过74HC573(扩展输出)根据按键状态驱动发光二极管发光。 74HC244、74HC573的操作地址设为0xfeff。

  19. 8.2 扩展简单并行输入/输出口 +5V 74HC573 D0 Q0 D1 Q1 D2 Q2 D3 Q3 D4 Q4 D5 Q5 D6 Q6 D7 Q7 LE VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 89C52 WR P2.0 RD 74HC244 Q0 D0 Q1 D1 Q2 D2 Q3 D3 Q4 D4 Q5 D5 Q6 D6 Q7 D7 G + + 图8-4 简单I/O接口扩展

  20. C语言程序清单: #include <reg52.h> void main() { unsigned char data tmp1, tmp2=0; unsigned char xdata *pt1; pt1=0xfeff; //给指针赋地址值0xfeff while(1) //循环 { tmp1=*pt1; //从74HC244输入数据 if (tmp1!=tmp2) //判断输入改变时, { *pt1 =tmp1; //从74HC573输出数据 tmp2=tmp1; } } }

  21. 8.2 扩展简单并行输入/输出口 汇编语言程序清单: MOV 30H,#00H ;设一初值 MOV DPTR,#0FEFFH ;设端口地址 LOOP: MOVX A,@DPTR ;从244读键盘新值 CJNE A, 30H, NEXT ;与上次值比较 SJMP LOOP ;相等再读键盘值 NEXT: MOV 30H,A ;保存新键盘值 MOVX @DPTR,A ;从573输出键盘值 SJMP LOOP ;继续读取键盘值

  22. 8.3 扩展并行数据存储器 主要内容 8.3.1 扩展存储器概述 8.3.2 数据存储器的扩展

  23. 8.3 扩展并行数据存储器 数据存储器即随机存取存储器(Random Access Memory,RAM),用于存放可随时修改的数据信息。 单片机使用的主要是静态RAM。 MCS-51系列单片机片外数据存储器的空间可达64KB,而片内数据存储器的空间只有128B或256B。如果片内的数据存储器不够用时,则需进行数据存储器的扩展。

  24. 8.3.1 扩展存储器概述 存储器扩展的核心问题是存储器的编址问题。所谓编址就是给存储单元分配地址。 由于存储器通常由多个芯片组成,为此存储器的编址分为两个层次: 即存储器芯片的选择和存储器芯片内部存储单元的选择。

  25. 8.3.1 扩展存储器概述 一、地址线的译码 存储器芯片的选择有两种方法:线选法和译码法。 1、线选法。所谓线选法,就是直接以系统的地址线作为存储器芯片的片选信号,为此只需把用到的地址线与存储器芯片的片选端直接相连即可。 2、译码法。所谓译码法,就是使用地址译码器对系统的片外地址进行译码,以其译码输出作为存储器芯片的片选信号。译码法又分为完全译码和部分译码两种。

  26. 8.3.1 扩展存储器概述 (1)完全译码。地址译码器使用了全部地址线,地址与存储单元一一对应,也就是1个存储单元只占用1个唯一的地址。 (2)部分译码。地址译码器仅使用了部分地址线,地址与存储单元不是一一对应,而是1个存储单元占用了几个地址。

  27. 8.3.1 扩展存储器概述 芯片译码地址:在设计地址译码器电路时,常采用地址译码关系图。所谓地址译码关系图,就是一种用简单的符号来表示全部地址译码关系的示意图,如图8-5所示。 图8-5 地址译码关系图

  28. 8.3.1 扩展存储器概述 二、扩展存储器所需芯片数目的确定 若所选存储器芯片字长与单片机字长一致,则只需扩展容量。所需芯片数目按下式确定: 芯片数目= 系统扩展容量 存储器芯片容量 若所选存储器芯片字长与单片机字长不一致,则不仅需扩展容量,还需字扩展。所需芯片数目按下式确定: 芯片数目= × 系统字长 存储器芯片字长 系统扩展容量 存储器芯片容量

  29. 8.3.1 扩展存储器概述 三、3—8译码器74LS138 3—8译码器74LS138为一种常用的地址译码器芯片。 其中,G1、G2A、G2B为控制端。只有当G1为“1”,且G2A、G2B均为“0”时,译码器才能进行译码输出。否则译码器的8个输出端全为高阻状态。 译码输入端与输出端之间的译码关系如表8-1所示。

  30. 8.3.1 扩展存储器概述 表8-1 74LS138的译码关系

  31. 8.3.2 数据存储器的扩展 一、常用静态RAM芯片 常见的静态RAM芯片有6264(8K×8位)、62256(32K×8位)、628128(128K×8位)等。 二、扩展数据存储器举例 例8-2采用6264芯片在89C52片外扩展24KB数据存储器,如图8-8所示。

  32. A0~A12 6264 CE WE OE A0~A12 6264 CE WE OE 解:根据公式可得 芯片数目= =3片 A0~A12 6264 CE WE OE 24KB 8KB 8.3.2 数据存储器的扩展 A8~A12 P2.0~P2.4 P0 ALE P2.5 P2.6 P2.7 WE RD D0~D7 74HC573 D Q LE A0~A7 74LS138 A Y0 B Y1 C Y2 图8-8 6264扩展24KB数据存储器

  33. 8.4 串行扩展总线接口技术 主要内容 8.4.1 常用的串行总线接口简介 8.4.2 I2C总线 8.4.3 SPI串行外设接口总线

  34. 8.4 串行扩展总线接口技术 串行扩展总线技术是新一代单片机技术发展的一个显著特点。 相对于并行总线接口,串行总线接口有着占用I/O口线少(一般3~4根),编程相对简单,易于实现用户系统软硬件的模块化、标准化等优点。 随着串行总线接口技术(SPI、I2C等)和各种串行接口芯片的发展,串行总线接口技术越来越受到人们的推崇。

  35. 8.4.1 常用的串行总线接口简介 一、I2C(Inter Integrated Circuit) I2C总线是Philips公司推出的芯片间串行传输总线。 I2C总线是二线制,采用器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。

  36. 8.4.1 常用的串行总线接口简介 二、SPI SPI总线是Motorola公司提出的一种同步串行外设接口。 SPI总线是三线制,可直接与多种标准外围器件直接接口。 三、Microware Microware总线是NS公司提出的串行同步双工通信接口。 Microware总线是三线制,由一根数据输出(SO)线、一根数据输入(SI)线和一根时钟(SK)线组成。

  37. 8.4.1 常用的串行总线接口简介 四、单总线(1-wire) 单总线及应用:1-wire总线是Dallas公司研制开发的一种协议,主要用于便携式仪表和现场监控系统。 单总线结构:是利用一根线实现双向通信,由一个总线主节点、一个或多个从节点组成系统,通过一根信号线对从芯片进行数据的读取。

  38. 8.4.1 常用的串行总线接口简介 五、USB(Universal Serial Bus) USB总线及应用:USB总线是Compaq、Intel、Microsoft、NEC等公司联合制定的一种计算机串行通信协议。 USB总线的主要优点:比较于其他传统接口的一个优势是即插即用的实现,即插即用(Plug-and-Play)也称为热插拔(Hot Plugging)

  39. 8.4.1 常用的串行总线接口简介 六、CAN(Controller Area Network) CAN总线及应用:CAN总线是德国Bosch公司最先提出的多主机局域网总线,是国际上应用最广泛的现场总线之一。 CAN总线的主要优点:在由CAN总线构成的单一网络中,理论上可以挂接无数个节点。

  40. 8.4.2 I2C总线 一、I2C总线的特点 I2C总线最主要的优点是其简单性和有效性。 I2C总线的特点:其接口直接集成在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。 I2C总线的其它优点:它支持多主控(Multimastering),其中任何能够进行发送和接收的设备(节点)都可以成为主控器。

  41. 静态RAM 或ROM 单片机A A/D、D/A 转换器 专用集成 电路 LCD 显示器 单片机B SDA SCL 8.4.2 I2C总线 I2C总线的主控器:一个主控器能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控器。如图8-9所示。 图8-9 典型I2C总线系统示意图

  42. 8.4.2 I2C总线 I2C总线支持多主和主从两种工作模式 多主方式:通过硬件和软件的仲裁,主控器取得总线控制权。 主从方式:从器件地址包括器件编号地址和引脚地址两部分,器件编号地址由I2C总线委员会分配,引脚地址由外界电平的高低决定。 器件内部子地址:当器件内部有连续的子地址空间时,对这些空间进行连续读写,子地址会自动加1。

  43. 8.4.2 I2C总线 CPU发出的控制信号:分为地址码和控制量两部分。 地址码:用来选址,即接通需要控制的电路,确定控制的种类。 控制量:决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。

  44. 8.4.2 I2C总线 二、I2C总线的时序 I2C总线的信号:I2C总线在传送数据过程中共有三种类型信号,分别是:开始信号、结束信号和应答信号。 I2C总线 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。

  45. 8.4.2 I2C总线 如图8-10所示,为I2C总线的一般时序。即起始信号、结束信号、允许数据线改变的条件等。 SDA SCL 开始信号允许数据变化 允许数据变化 允许数据变化 结束信号 图8-10 I2C总线的时序

  46. 8.4.2 I2C总线 三、I2C总线的数据传输过程 数据传输时,主机先发送启动信号和时钟信号,随后发送寻址字节来寻址被控器件,并规定数据传送方向。 寻址字节由7位从机地址(D7~D1)和1位方向位(D0,读0/写1)组成。 从机地址包括器件编号地址和引脚地址两部分。

  47. 8.4.2 I2C总线 I2C总线器件的7位从器件(机)地址: R/

  48. 8.4.2 I2C总线 从机对地址的响应:当主机发送寻址字节时,总线上所有器件都将其中的高7位地址与自己的比较,若相同,则该器件根据读/写位确定是从发送器还是从接收器。 对从接收器:在寻址字节之后,主控发送器通过SDA线向从接收器发送数据,数据发送完毕后发送终止信号,以结束传送过程。 对从发送器:在寻址字节之后,主控接收器通过SDA线接收被控发送器的发送数据。

  49. 8.4.2 I2C总线 每传输一位数据,都有一个时钟脉冲相对应。时钟脉冲不必是周期性的,它的时钟间隔可以不同。 I2C总线的备用状态(“非忙”状态):SDA和SCL都为“1”;只有当总线处于“非忙”状态时,数据传输才能被初始化。 I2C总线的关闭状态:SCL箝位在低电平。 I2C总线上传输的数据和地址字节均为8位,且高位在前,低位在后。

  50. 8.4.2 I2C总线 数据线SDA上的一般情况:I2C总线以开始信号为启动信号;接着传输的是地址和数据字节,数据字节是没有限制的;每个字节后必须跟随一个应答位(0);全部数据传输完毕后,以结束信号结尾。 SCL的“线与”特性:任一器件的SCL为低电平时,便时时钟线SCL变低,SDA上数据就被停止传送。

More Related